[Seminar - Unix Shells, Alanlar] [Douglas Kline - Harvard Universiteti] [Bu CS50 edir. - CS50.TV] Bu gün mövzu Unix shell edir. Mən Douglas Kline, ekspert və ya shell ən azı əsaslı səlahiyyətli istifadəçi deyiləm. A shell kompüter əməliyyat sistemi üçün istifadəçi üçün interfeys. Adı, bir heyvan shell fərqli olaraq yanlış ağır və qoruyucu olan, kompüter shell ünsiyyət üçün imkan verir. Belə ki, məsaməli membran yəqin ki, daha yaxşı bir məcaz olardı. Unix üçün orijinal shell Bourne shell edir. Bourne B-O-U-R-N-E yazıldığına. Bourne, Unix orijinal müəlliflərindən biri idi və belə shell onun adını daşıyır. Bir komanda kimi shell adı sadəcə sh edir. Ki, həyata keçirə bilər, komanda var. Bu shell giriş başlayır. Siz kompüter daxil zaman, shell yalnız, sizin üçün çalışan başlayır və sizin əmrləri görür nə var. O, həmçinin digər vaxtlarda başlaya bilərsiniz. Heç bir başqa göstəricisi ilə pəncərə yetişdirmək varsa, bu sizin üçün bir shell başlayacaq. Ki, bir pəncərə getmək və əmrləri yazaraq başlaya bilərsiniz ki, necə və s var ki, pəncərə daxil etmirdi. Bundan əlavə, bir uzaq giriş əgər, o uzaq kompüter bir shell başlayacaq. Və bu interaktiv shell olmadan funksiyanı çalıştırmak mümkündür. Ki, cari əməliyyat çərçivəsində demək olar, və bu da uzaq bir əməliyyat ola bilər. Siz başqa bir kompüter üçün bir komanda göndərmək bilər, edən bir shell başlayaraq daxildir. Əslində, bu, bir shell başlayaraq daxil var ki, son məqsədi deyil, hətta. Bir şey bu kimi başlayır, o, mütləq yeni bir shell başlamaq deyil. Yeni bir pəncərə yetişdirmək varsa, bu redaktoru yetişdirmək demək mümkündür və ya digər komanda. Bu halda, redaktoru sıfırdan başlayacaq. Redaktoru başa zaman, pəncərə bitir. Bu bir az qeyri-adi, lakin bu edilə bilər. Belə hallarda, bir shell olmayacaq. Belə ki, mütləq bir pəncərə və ya bir belə proqram shell up gətirəcək işi deyil. Shell əmrləri çözümler. Təhlil müxtəlif elementləri müəyyən edilməsi və onları təsnif deməkdir. Bir komanda çərçivəsində, siz yazın ki, tam string, icra ediləcək 1 və ya daha çox tək əmrləri olacaq. Digər elementlər arqumentlər ola bilər. Də komanda icrasını təsir edən xüsusi simvol ola bilər. Onlar ekran çox başqa bir çıxış göndərə bilərsiniz komanda adətən ekran göndərmək əgər. Bu giriş yönlendirme bilər, həm də başqa şeylər edə bilərsiniz. S müxtəlif rəmzləri, simvol və var. Təhlil o şeyi aşkar və şərh edir. İndi heç bir daha çox insanlar var ildən daha çox güman ki çox suallar var, əgər, biz burada mənim növbəti səhifə getmək olacaq. Mən Bourne shell ilkin shell olduğunu bildirib. Başqaları var. Biri C-shell edir. Əmr csh edir. Adı C-shell sözləri yalnız bir oyun deyil. Bu shell ortalarında-1970-ci illərdə Berkeley Unix ilə tanış oldu. Berkeley Unix Unix inkişafında seminal hadisə idi. Bu böyük bir inqilab idi və bu shell tətbiqi daxildir. Sözləri ki, oyun üçün səbəb, C-shell, , C-shell C dil xatırladan bu bəzi xüsusiyyətləri var ki, olan Bourne shell yoxdur - və ya o vaxt yox idi. TC-shell də var. Bu C-shell bir superset edir. Bu, interaktiv istifadə üçün faydalı olan bir çox əlavə funksiyalar var Belə ki, tarixi mexanizmi əmrləri xatırladaraq kimi Mən bir qədər sonra təsvir lazımdır - sadə bir şəkildə, bir redaktoru sonra modellenmiştir. Bu da bir daha komanda qısa bir əsas simli lər üçün imkan verən cilddən var. Biz bu gün ki, daxil əldə etmək fikrində deyilik. Bu proqramlaşdırma üçün faydalı olan bəzi xüsusiyyətləri vardır. Lakin, C-shell tez-tez shell proqramlaşdırma üçün istifadə olunur. Shell proqramları, siz artıq bilirsiniz olmasaydı, shell xüsusiyyətləri ibarətdir proqramları var. Siz proqramları bu run bilər. Siz fayla shell əmrləri bir dəstə yazmaq və fayl icra. Siz tərtib etmək lazım deyil. Bu yorum dilidir. Bu orijinal C-shell, CSH yalnız istinad bilər-ci ildən söz C-shell, indi birmənalı deyil və ya Tcsh daxil olmaqla, bütün C-mərmi, üçün. Bu bir az qeyri-müəyyən var. A sonra shell proqramçı adına Korn shell, ksh, Korn edir. Bu shell 1 shell daxil cəhd interaktiv istifadə üçün C-shell üstünlükləri və Bourne proqramlaşdırma shell. Azlıq - Bu, bəzi insanlar tərəfindən interaktiv shell kimi istifadə edilmişdir. Daha sonra isə, başqa giriş var idi, Bash shell, BASH, yenidən sözlər bir oyun, Bourne yenidən shell. Bu Bourne shell uzadılması. Korn shell edir. İkisi də var. Bu qoşulduqları və Korn shell eyni məqsədlərə var C-shell-nin 1 shell və Bourne shell-nin üstünlükləri. Korn shell aksesuarları çoxu da Bash daxil edilir. Bash, lakin, daha çox var və buna görə də üstünlük verilir. The Bourne yenidən shell və Korn shell Bourne tipli mərmi deyilir onlar Bourne shell-nin xüsusiyyətləri daxildir, çünki, C-mərmi ilə bir cəhətdən zidd olan. , Bəzi məhdud istifadə üçün nəzərdə başqa mərmi var bəlkə bəzi əmrləri məhdud, bəlkə ixtisaslaşdırılmış məqsədləri, tez-tez istifadə. Okay. Burada Next item. The Bash shell Linux müxtəlif formaları ilə bağlı olmuşdur. Mən ki, hər formada doğru əgər əmin deyiləm. , Bir çox formaları var və mən onları bütün istifadə deyil lakin mən istifadə ki o bu ilə bağlı olmuşdur. İndiyə qədər mən bildiyiniz kimi, Bash haqqında heç bir şey yoxdur Linux ilə bir daha uyğun edir shell və əməliyyat sistemi hər hansı digər birləşməsi daha. Mən bu yəqin ki, yalnız proqramçılar istəklərinə əks etdirir düşünürəm. Bu Linux ilə bağlı olmuşdur KSH üçün Bash üstünlük üçün başqa bir səbəbdir ki, şeylər yazılması ehtimal olunur və bu dağılma ehtimalı var-ci ildən. Mən sonra sizə ki, digər səbəbləri verəcəyik. Bourne shell scripts Korn shell və ya Bash altında run lazımdır. Siz Bourne shell üçün bir şey yazmaq, siz yəqin ki, KSH və ya bash altında icra edə bilər. Korn shell scripts yəqin Bash altında davam edəcək, amma ki, təmin edə bilməz. Sonra burada, C-shell scripts TC-shell altında run lazımdır. The C-shell həqiqətən geniş scripting üçün istifadə heç vaxt Bourne shell və sonra Bourne tipli mərmi ki, məqsəd üçün üstünlük yana. Belə ki, həqiqətən, bütün vacib deyil. Çoxdan yazılmış olan Bourne shell scripts bir çox var Korn shell və ya Bourne yenidən shell əvvəl təqdim olunub. O, istifadə hələ də əməliyyat sistemləri hissəsi, Siz əməliyyat sistemi baxmaq əgər belə siz onları tapa bilərsiniz və ya bəzi köhnə proqramlaşdırma paketləri. Bash əməliyyat sistemləri üçün Lingua Franca bir növ olmaq müəyyən dərəcədə edir. Artıq Windows və VMS uzadıldı edilmişdir. VMS, bilmirəm halda, xüsusi əməliyyat sistemi əsasən pərdə arxasında, hələ də istifadə olan Digital Equipment Corporation. Və bir neçə müxtəlif əməliyyat sistemi çalışan olacaq əgər, güman ki, insanlar üçün shift edirlər. Lakin bu inkişaf nisbətən yenidir. Bu, yalnız başlayan, belə ki, bu, həqiqətən lingua franca o cür olmaq çıxmaq əgər mən proqnozlaşdırmaq bilməz. Həmçinin, fayl pathnames və kitabxanalar fərqlənir, çünki Bu müxtəlif əməliyyat sistemləri arasında, bir əməliyyat sistemi bir Bash script yazmaq ola bilər və sonra başqa bir axır. Siz müxtəlif Unix, Linux arasında hərəkət etmək lazımdır Mac OS əməliyyat sistemi lakin mütləq Windows və ya VMS üçün. Siz fayl pathname təsviri dəyişdirmək üçün ola bilər, və bəzi kitabxanalar müxtəlif ola bilər, bəzi əmrləri işləmək yolu təsir göstərə bilər və ya necə dəlilləri və bu kimi emal. Bundan əlavə, burada başqa ehtiyatla heç bir təminat yoxdur ki, ki, qeyd etdiyiniz bütün müxtəlif mərmi - Bourne shell, C-shell, TC-shell, Korn shell, Bourne yenidən shell - bir Unix altında mövcud olacaq və ya Linux və ya Mac OS kompüter. Onlar sadəcə ola bilər. Ki, burada xəbərdarlıq biri. Şeyi hər yerdə işləmək istədiyiniz çünki, burada talehsiz məhdudiyyət var lakin təəssüf ki, siz ki, etibar edə bilməz. Okay. Burada Next biridir. Gəlin bir shell script yazmaq istəyirəm ki, demək, shell əmrləri ibarət bir proqram. Siz əmrləri yazmaq bir fayl onları qoymaq, və fayl icra. Nə dəlilləri daxil istəyirsinizsə? Shell əməliyyatlarının halda, dəlilləri parametrləri və ya mövqeli parametrləri deyilir və onlar bir dollar işarəsi və say, $ 1, $ 2 adlı olacaq. Script bu adı var ki, mənim ilk arqument arqument 1 ola bilər və mənim ikinci, arqument 2 ola bilər və mənim script daxilində Mən bu şeyi istinad etmək istəyirsinizsə - Mən, həqiqətən run etmək niyyətində deyiləm ildən bu silmək edək - mənim script daxilində Mən arg1 müraciət $ 1 ola bilər, Ki, yol, arg2 çıxmaq edəcək $ 2,. Belə ki, həmin simvol dəlilləri müraciət mövcuddur, və həmin mərmi bütün müraciət. Bundan əlavə, digər simvol var. $ * Bütün arqument siyahısı, onların hamısı aiddir. $ # Dəlilləri sayına aiddir. Yenə də, bu bütün mərmi aiddir. Həmin simvol, * və #, başqa yerlərdə də bu mənaları ilə istifadə edilə bilər. Biz nəzərə almaq olmaz. Shell belirteci line. Ki, nədir? Siz bir script yazdıq və bir shell üçün deyək və siz run etmək istəyirəm. Necə əməliyyat sistemi çalıştırmanızı istifadə edəcək shell nə bilirik? Bir nöqtədə bu Bourne shell run ki, güman bilər başqa demək olmasaydı, lakin insanlar artıq Bourne scripts çox shell yazılı deyil və hətta artıq etibar edə bilməz. Belə ki, burada biz burada bir shell belirteci xətt var. Bu Bash göstərir. Bu pathname / bin / bash onu ifadə Qeyd edək ki,. Kompüter Bash shell varsa, lakin bin kataloq / bin, bu iş olmayacaq. Ki, burada başqa seçmələrində başqa ehtiyatla var. Funt işarəsi comment line karakter. Yəni bütün mərmi aiddir. Burada xüsusi halda, #! bir script başında, xüsusi bir haldır. Bu script çalıştırmak üçün olan shell müəyyənləşdirir. Mən deyən kimi, eyni yer / bin ola bilər. Bundan əlavə, burada başqa bir şey var. Siz yalnız heç bir ünlem və pathname ilə funt işarəsi istifadə etsəniz, ki, bir C-shell göstərilməlidir. I təmin edə deyiləm, çünki Lakin, mən bunu tövsiyə etmirik həmişə işləyəcək. Bir C-shell istəyirsinizsə, belə demək daha yaxşı olardı. Sonra burada daha confusing bir şey var. Əgər belə / bin / bash kimi shell belirteci xətt istifadə edin ki, shell, orada mövcud deyil xüsusi kompüter / bin / bash kimi bir şey var, ya fərqli bir yeri var, çünki Bash və ya deyil, çünki, Siz qaçdı script mövcud deyil ki, belirten bir səhv almaq lazımdır. Və əlbəttə, sizin script var, belə ki, səhv mesajı confusing edir. Əməliyyat sistemi, siz ki, səhv verir ki, səbəbi və ya, daha dəqiq, bu çalışan sizin interaktiv shell ki, səhv verir ki, Bu script adı istifadə edən komanda, məlumatına edir. Bu komanda səmərəli script adı ilə shell çağırıb. Ki, confusing səhv mesajı almaq harada. Shell script zəng etmək üçün başqa yol burada, command line shell ifadə edir. Bu əmr edir. Bu Bash run və sonra Bash mənim çalıştırmanızı deyir. Ki, bir belirteci xətt üstün tutacaq, və bu müxtəlif pathnames təmin etmək üçün imkan xüsusiyyət var. Yalnız bir komanda versələr, əməliyyat sistemi ki, komanda üçün baxmaq müxtəlif yerlərdə. Əgər varsa, onu tapmaq lazımdır. Kompüter bu tesis nin yerdə Bash tapmaq və onu davam edəcək, belə ki, onu tapır harada narahat, sonra ehtiyac yoxdur. Digər potensial narahatlıq, burada var Olsa olsa da mümkün olan Bash-dən çox 1 versiyası var sanki. Belə ki, bu şeyi ilə məşğul olmaq üçün başqa yol var. Belirteci xətləri hər hansı bir shell zəng edə bilərsiniz. Onlar həmçinin mərmi başqa şeylər zəng edə bilərsiniz. Mən burada nümunələri stream baş redaktoru olan, lakin olunur; AWK, bir model emal dili; və perl, bir çox yüksək inkişaf etmiş scripting dili. Siz başında həmin proqramların birini göstərən bir belirteci xətt qoymaq, bu proqram birbaşa getmək çox bir shell başlayaraq edəcək. Həmin proqramlar onların qabiliyyətlərinə məhdudiyyətlər var. Perl çox qadirdir. Sed redaktoru. Bu, sadəcə redaktə kənarda şeyi edə bilərsiniz. Amma bu proqram üçün çətin ola bilər. Bundan əlavə, script dəlilləri və stuff keçən mümkün və ya confusing ya. Belə ki, həmin hallarda, awk və ya lakin, bu, ən azı mənim təcrübəsi var bir shell script və zəng AWK yazmaq üçün üstünlük və ya shell script lakin daha AWK zəng və ya script belirteci xətt kimi lakin daha. Dediyim kimi Perl, bir çox diversifikasiya dilidir. Siz perl interaktiv əmrləri run bilməz, hansı sizin inkişaf edirik ki, scripts hissələri test bilməz o deməkdir ki, interaktiv onlara çalışan. Lakin, bir çox qadir dil var və bir çox geniş istifadə alət inkişaf etmişdir. Bu yalnız belirteci xətləri haqqında ara sözü bir az var. Bütün və ya Linux ən formaları - yenə, mən bütün ki, müəyyən ola bilməz - Siz CSH yazın əgər və Mac OS, siz Tcsh almaq və siz yazın əgər bash almaq sh. Onlar bu mərmi daha inkişaf etmiş versiyasını vermək üçün orada çalışır, lakin bu confusing ola bilər. Siz Tcsh istifadə edərək, bir script yazmaq və ya zəng zamanı Bash xüsusiyyətləri varsa csh və ya sh və sonra, Tcsh və ya Bash olmayan bir kompüter çalıştırmak üçün cəhd əmrləri orada var, əgər bəzi səhvlər almaq bilər olan mərmi tanımırıq. Bundan əlavə, sizin yerli bilgisayarınızda shell çağırılıb ola bilər sh və ya csh kimi zəng və sonra daha inkişaf etmiş mərmi əldə. Siz hətta daha inkişaf etmiş shell istifadə etdiyiniz ki, hesab edə bilər. Belə ki, bu potensial tələ edir. Necə ki, siz sh yazın əgər Bash almaq ki, müəyyən edilir Siz CSH yazın əgər tsch almaq? Links adlanan bu kompüter şeylər var eyni şey müraciət adları fayl qoşula bilər. Bu da eyni faylı və ya onun məqsədi başqa bir fayla istinad edir bir fayl üçün 2 adları ola bilər. Onlar ağır və rəmzi links adlı edirik. Biz bu gün artıq gedən olmaz. 1 fayl sh, 1 fayl Bash - - də ayrı-ayrı faylları ola bilər lakin onlar həm də Bash axır. Sonra başqa seçmələrində burada var. Bir adı bu örtüklərin bir zəng edirsinizsə, Siz başqa bir adı ilə zəng kimi eyni funksionallığı almaq istədiyiniz hesab edə bilər. Yaxşı ki, həqiqətən, mütləq doğru deyil. Bu əmrləri onlar adlanan tərəfindən adı yoxlamaq bilər və onlar ki, adı əsasında fərqli davranmaq bilər. Bir standart uyğun çalışır məsələlər ola bilər. Əgər bəziləri POSIX standart və ya digər eşitmişəm bilər, bəlkə digər xüsusiyyətləri. Bu command line dəlilləri ilə bəzən seçilə bilər və ya shell dəyişənlər qəbulu ilə. Sh və ya bash kimi zəng həqiqətən fərqli icrası gətirib çıxara bilər siz icra edirik ki, eyni fayl belə. Hesab başqa bir şey, başqa bir kompüter hətta əgər Tcsh və ya Bash var ki, onlar yerli bilgisayarınızda kimi onlar bağlı əgər Bir Linux və ya Mac OS yerli kompüter varsa, sonra yenidən sizə sh və ya csh zəng shell, siz tercih ola bilər ki, bir almaq lazımdır. Cari Bourne shell az Bash nisbətən aksesuarların var lakin orijinal Bourne shell keçmiş. Ki, nəticəsində, hətta indiki Bourne shell, sh, Bu Bash deyil hətta, C-shell yoxdur çox C dil daha bənzəyir. Bu C-shell ilk yaradılmışdır zaman doğru deyil, lakin bu yol inkişaf etmişdir. Siz burada qeyd edə bilər ki, Bourne shell istisna olmaqla, bütün bu shell adları csh, bash - - onlar olan shell göstərir üçün bir şey var lakin Bourne shell yalnız sh edir. Niyə? Ki, orijinal shell idi. Bu, sonra THE shell deyil, A shell idi Bu shell idi, başqa shell fərqləndirilməsi üçün heç bir səbəb var idi. Ki, adı var və hələ nə nə ki, var. Burada Bu top Mən var bir haqq-hesab üçün parol verilənlər bazası bir xətt başqa bir kompüter. Mən sizə, sonunda shell ki, iştirak edə bilərsiniz, belə ki, ad almaq üçün cəhd gedirəm. Bu parol verilənlər bazası bütün istifadəçilər üçün giriş xüsusiyyətləri keçirir. Əvvəlində siz artıq mina son 2 məktublar bilərsiniz olan istifadəçi adı edir. Burada sahələri colons ilə ayrılır. Son sahəsində, Gördüyünüz kimi, bin / Tcsh, shell edir. Bu shell belirteci var. Burada maraqlı bir şey var. Unix ilk inkişaf zaman, yalnız 1 shell var idi, belə ki, orada heç bir seçimi var idi. Belə ki, niyə onlar parol bazasında bir sahədə shell müəyyən imkan vermədi? Mən bilmirəm, lakin onlar etdi ki, uğurlu var. Bu parol verilənlər bazası formatında dəyişiklik etmək çox çətindir bir çox proqramlar formatında istinad çünki və yenidən etmək olardı. Onlar tarlanı daxil bir uğurlu və ya təsadüfi inkişaf var. Bir parol fayl line cür indiyə qədər mən bildiyiniz kimi bütün Unix və Linux kompüterlər istifadə olunur. Mac öz sistemi var. Bu, həqiqətən ki, formatında xətləri ilə bir parol fayl var istifadəçi xüsusiyyətləri müəyyən edilir yerləşir ki deyil. Orada başqa ara qeyd. Bir shell zəng edirsinizsə mövcud mərmi bir sub-shell kimi zəng edə bilərsiniz. Mən burada getmək əgər, nin bu şeyi qurtarmaq edək. Burada C-shell am. Dəqiq mənim shell müəyyən olan dəyişən, əslində həmişə çalıştırıyorsanız shell nə müəyyən bir etibarlı yol deyil, lakin bu halda deyil. Mən yalnız yazın əgər - İndi Bash oldum. Bəzi şeylər eyni olacaq. ls mənə əmrləri deyir. Mən geri C-shell, ls, eyni dayandırmaq yoxdur. Sağ? FG, ön, geri Bash shell. geri C-shell pudra, cari directory,. pudra, müxtəlif directory - bu halda həqiqətən fərqli bir directory. Bu eyni kataloq var. Mən burada bir komanda zəng etmək istəyirsiniz edək: Ü ls. O nə edir? Ls əmr yerləşir ki, mənə deyir Mənə bir directory siyahı verir ki, bir ls yerləşir. Geri Bash shell gedək. Eyni şey cəhd edək. Hmm, maraqlı var, Ü: komanda tapılmadı. Niyə ki? Bu harada komanda C-shell üçün inşa edilmişdir. Bu başqa bir yerdə olan yaddaş oxumaq və icra edilməlidir ki, bir komanda deyil. The C-shell öz kodu hissəsinə icrasını köçürərək çalışır və bu Bash shell deyil. Belə ki, Bash, belə bir daxili əmr olmayan, onu tapmaq deyil, görünür, və biz bir səhv almaq. Belə ki, orada biz C-shell altında çalışan bir Bash shell var, və biz bir sub-shell zəng. Və yalnız siz merak etdiyiniz halda, Bash shell əmrləri yerləşən öz yolu var. hashed, daha sürətlə icra oluna bilər ki, istinad daha sürətlə aşkar olan. Ki, bu mərmi bəzi tikilmiş aksesuarların biri. Bourne tipli mərmi proqramlaşdırma üçün seçim edilir. Onlar, loops, şərti hesabatları kimi nəzarət strukturları var C kimi proqramlaşdırma dilləri istifadə edə bilər ki, əmrləri sort və ya nə dil. Bəlkə Java proqramlaşdırma və ya nə edirik. Shells o çox var. The Bourne tipli mərmi, xüsusilə Bash, daha çox var və onlar daha çox rahatlıq ilə nəzərdə tutulmuşdur. The Bash shell serialların var. Orijinal Bourne shell deyil. Belə ki, proqramlaşdırma üçün xeyli faydalı ola bilər. The C-shell həqiqətən serialların var, lakin bu digər funksiyalar bir çox yoxdur. The Bourne tipli mərmi sürətli icra edəcək onlar interaktiv istifadə üçün nəzərdə xüsusiyyətləri yoxdur, əgər. Siz bir məqsəd üçün hər şeyi aşağı yük, bu başqa məqsəd üçün onları aşağı yükler. Var ki, ticarət-off var. Interaktiv istifadə üçün nəzərdə tutulan bu xüsusiyyətlər həqiqətən scripting üçün az və ya heç istifadə olunur. Bu, sadəcə orada açılmış kimi interaktiv sub-shell istifadə etmək mümkündür Bir script istifadə etmək niyyətində olan əmrləri test. Ki, Perl ilə edə bilməz nə. Siz mərmi ilə bunu edə bilərsiniz. S loops və hətta strukturları interaktiv davam edə bilər. Onlar interaktiv çalıştırmak üçün bəzən faydalı lakin daha çox bir script inkişaf üçün istifadə edirik. Adlar. Bu C-shell haqqında olacaq. Geri əvvəllər əmrləri almaq Tarix mexanizmi və ya siz artıq onların hissələri etdik ki. Yenə C-shell haqqında, Bourne shell və Korn shell, bu şeylər var amma onları almaq niyyətində deyiləm. Belə ki, burada var ki, bəzi faydalı takma var. Əvəzində ls yazaraq - bir ümumi komanda var - yalnız l yazın və özünüzü 1 xarakter edirsiniz. müxtəlif variantları ilə ls, bütün bu işləri. O anlayışlar onların ətrafında quotes var Qeyd edək ki,. Bu hallarda, quotes lazım deyil. Siz quotes olmadan takma müəyyən edə bilərsiniz, bu, hələ iş olardı. Onlar tövsiyə olunur. Siz quote istifadə edə olan hallar var Siz quote qarşısını alacaq baş bir şey istəyirəm, çünki. Bəzən müəyyən hissəsi sitat lakin bütün bu edə bilərsiniz. Bu da ümumiyyətlə tək quotes çox ikiqat quotes istifadə etmək tövsiyə olunur. Double quotes dəyişən anlayışlar təsir, xüsusilə onlara daha dayandırılması çox qiymətləndiriləcək səbəb olur. Niyə biz qiymətləndirmə dayandırmaq istəyirsiniz? Və quotes ki, bizim üçün nə etməliyəm? Burada maraqlı tapa biləcək bir komanda deyil. 'Ls g *' g *, siz yəqin ki, bildiyiniz kimi, bir wildcard ifadə g ilə başlayan bütün fayl adları üçün. Mən yalnız bir komanda ls g * yazmaq varsa, mən cari kataloq bütün bu adları bir siyahısını almaq lazımdır. Bu quotes ilə burada kimi ki, alias müəyyən edin Siz onu çalışan olduğunuz cari kataloq komanda davam edəcək. Amma quotes olmadan alias müəyyən run əgər, Bu müəyyən funksiyanı çalışır zaman bu wildcard g * qiymətləndirəcək. Belə ki, alias müəyyən ls kataloq faylların siyahısına təqib edəcək takma əmri icra edən, asılı olmayaraq, siz həqiqətən komanda run niyyətində harada. Bu çox istifadə deyil, və bir quotes ulduz qiymətləndirilməsi qarşısını alır. Belə ki, yalnız * müəyyən olan ls g almaq. Siz takma çalıştırdığınızda Sonra, LGS, sonra ki, həyata qoyur. İndi heç bir quotes var, və siz alias funksiyanı çalıştırın zaman bu ulduz qiymətləndirəcək. Belə ki, bir şey var. Double quotes, burada eyni təsir edəcəyini lakin ikiqat quotes yaxşı iş deyil ki, digər halları var. Burada başqa biridir. Siz grep komanda bilirik bilər. The grep komanda müəyyən strings olan xətləri üçün fayl scan üçün istifadə edilə bilər. Belə ki, burada artıq getmək bildirin və mən Bourne shell çıxmaq lazımdır. Okay. Burada bir fayl var. Nin grep abc strings var deyirlər. Orada deyil. Mən grep zddd varsa, mən heç bir şey almaq. Okay. Belə ki, bu hesabat, bir string tapır, bu tapmaq deyil, bu hesabat deyil. Bu ki, simli var olan hər hansı bir xətt nəticələr. Siz sənədlərin tapa bilərsiniz burada variantları bütün növ var. Burada bunu bir yoldur. Bu bir, alias grabc grep abc haqqında? Takma müəyyən edilir ki, 1 arqument daxil olacaq. Mən ki, əgər burada, indi grabc əgər, İndi alias sadə əmri daha çox daxildir. O, həmçinin dəlil var. Bu günə qədər ki, işləyir. Mən burada başqa bir komanda, bu var, belə ki, o orada müxtəlif strings var və uyğun deyil-ci ildən bu orada heç bir şey tapmaq deyil göstərir ki,. Mən alias müəyyən Mən axtarış gedirəm ki, fayl daxil istəyirsinizsə və mən alias I arıyorum ki, simli bir arqument kimi vermək istəyirsiniz? Mən, mənim alias üçün arqument kimi abc demək istəyirəm bilər lakin alias artıq fayl müəyyən. Bu ifadə girer harada ki var Biz əvvəl kimi grep var diqqət yetirin. Biz burada strings fayl var. \ ^!, Bir növ tək ifadə, Mən əvvəl bu görməmişik əgər, güman edirlər. Nida nöqtəsi C-shell tarixi mexanizminin hissəsidir. Əvvəllər əmrləri geri bilər, bu, s o əmrləri dəlilləri geri edə bilərsiniz. Tarixi mexanizmi aliasing hissəsi kimi istifadə olunur. Siz ünlem sonra bir xətt daxil, bu, tarixi siyahısında line müraciət edəcək Bu bütün digər mövzu var-ci ildən biz artıq nəzərə almaq olmaz. Bu xətt hissəsi müəyyən etmək mümkündür. Belə ki,! 3:2 command 3 nömrəli ikinci dəlil olardı. Burada bu ifadə caret ilk arqument üçün dayanır. Siz istinad etdiyiniz əmr göstəricisi vermək deyilsə ki, dərhal əvvəlki komanda aiddir və caret ilk arqument üçün bir rəmzidir. Bu caret və sayı var, çünki siz, kolon istifadə etmək lazım deyil belə! ^ əvvəlki komanda ilk dəlil deməkdir. Bir az burada qarışdırılır. Bu halda, bir alias müəyyən kimi istifadə zaman, tarixi arayış alias istifadə olunan əmrləri geri aiddir. Belə ki, bu, tarixi əməliyyat kimi geri 1 komanda gedir lakin bir alias əməliyyat kimi siz yazın ki hansı komanda aiddir, grstrings_file, deyirlər. Biz burada bu quotes var. Üçün backslash nədir? Bu halda, yerdə olduğu kimi, biz tarix mexanizmi icra etmək istəmirəm alias müəyyən edir. Biz orada backslash olmasaydı, shell ilk dəlil çəkmək olardı biz istəmirik ki, bu alias komanda, qaçdı sağ əvvəl komanda. Biz bu sonra bir dəlil zəng etmək alias komanda üçün inşa etmək istəyirəm. Single quotes bir ünlem tarixi arayış xilas yoxdur. Bəlkə ifadə escape şey mənasını dəyişdirmək deməkdir bilirik. Bu halda, bu xüsusi bir mənası olan bir şey dayandırmaq deməkdir. Exclamation point xüsusi mənası tarixidir. Escape və bu mənası yoxdur. Quotes bunu etmir; backslash yoxdur. Belə ki, biz, həqiqətən, burada qaçan 2 səviyyələri istifadə edirik. Mən bunu yazaraq olmadan digər pəncərə bu funksiyanı hərəkət etmək üçün gedirəm Bu redaktə əməliyyatları istifadə edərək, siz faydalı tapa bilərsiniz. Burada başqa bir şey sizə göstərmək lazımdır. Siz yalnız heç bir dəlilləri ilə alias yazın varsa, bu bütün dəlilləri deyir. Bu artıq burada idi takma bir dəstə Mən bu gün burada istifadə edilmişdir ki, bu başqa. Mən yalnız bir alias adı ilə yazın əgər Lakin, bu, nə deməkdir mənə deyir. Bu quotes getdi və backslash getdi fark. Burada Bu string ki, alias müəyyən nəticəsidir, və indi yalnız var! ^ ona. Bu şey üçün fayl strings baxmaq üçün gedir. Mən grstrings_file strings əgər Belə ki, I, orada axtarmaq üçün heç bir şey vermədi lakin strings axtarır. Bu fayl strings sözü strings tapmadı, lakin abc tapmaq deyil. Və bu ki, tapa deyil. Belə ki, burada biz alias müəyyən daxil edib ki, bir arqument verir, ki, daxil edilir. Bu ifadə gəlir harada var. Siz 1-dən artıq istifadə edə bilərsiniz. The caret ilk arqument üçün bir rəmzidir. Siz ikinci dəlil istifadə etmək istəyirdi, onda deyərdim: 2. İkinci arqument üçün xüsusi simvolu var. Bir say istifadə etdiyiniz, çünki, siz kolon istifadə etmək olardı. Burada bir seçim, lakin var. Dollar işarəsi son arqument üçün dayanır. Bu bir rəmzidir, çünki, siz kolon buraxmaq olar. Belə ki, siyahıda son arqument olacaq. Və bir də var. , Asterisk bütün deməkdir, belə ki, bu tam arqument siyahısı bir say deyil, çünki və, daha, siz kolon buraxmaq olar. Mən sizə bütün bu müşahidə ümid edirik. Tarixi mexanizmi tarixi siyahısına geri əvvəllər xətləri bilərsiniz. Siz alias müəyyən bunu edə bilər. Mən bunu görməmişəm. Bu tarixi siyahıdan əvvəllər əmrləri həyata çekme təsiri olardı müxtəlif əmrləri ola biləcək alias, icra zaman zaman və harada siz icra asılı olaraq. Conceivably Əgər belə bir arayış çıxarmaq istəyirəm bilər yalnız bir əvvəlki komanda idi nə. Mən bu baş görməmişəm. Mən kimsə istəyirəm bilər Güman, lakin bu, çox mümkün deyil. Burada başqa bir şey yoxdur. Ki, tarix tipli istinad istifadə etsəniz, sonra belə bir arayış var olan yalnız arqumentlər istifadə olunur. Bir tarixi tipli istinad istifadə etmir bir alias tərif varsa, yalnız komanda başından olarsa və daha dəlilləri, sonra bir şey ki, sonra yazın əmri əlavə olunacaq. Bu halda, mən yalnız orada verdi Məsələn, biz ilk dəlil istifadə; biz hər hansı digər istifadə etməmişdir. Digər dəlilləri command line verilsəydi, onlar istifadə edilə bilməz. Siz bütün tarixi istinad istifadə əgər Belə ki, sonra hər hansı bir dəlil almaq üçün istifadə etməlidirlər. Mən yalnız qismən parenthetically, qeyd etmək istəyirəm ki, burada başqa şey var, yəni ki, nida nöqtəsi ilə bu tarixi mexanizm geri orijinal C-shell gedir. The Tcsh tarixi əməliyyatları təqdim redaktorları əmrləri və strings növ istifadə edən, Emacs və ya vi ya. Mənim şəxsi fikrim Emacs bu məqsəd üçün istifadə etmək çox asandır edir Siz müntəzəm redaktə üçün vi istifadə hətta əgər. İndi tarixi üçün uyğunlaşdırılmış olan müxtəlif Emacs əmrləri var. Control P tarixi siyahısında əvvəlki xətti olur. Digər Control P ki, siz əvvəl bir olacaq. Yuxarı arrow eyni şey deyil. Əgər siz artıq bəzi yolları geri kaydırılmış olsanız Control N növbəti komanda olur. Down arrow çox yoxdur. Siz oxlar və digər şeylər ilə sağ sol hərəkət edə bilər. Bu tarix mexanizmi istifadə edə bilərsiniz nida point sintaksis istifadə edərək daha asan, lakin bir alias müəyyən istifadə deyil. Biz bəzi başqa vaxt ki, artıq getmək lazımdır. Dəyişənlər. Siz proqramlaşdırma dilləri nə dəyişənlərin bilirik. Bu mərmi də onlara var. The C-shell, dəyişənlərin təyin müəyyən əmr edir ki, b dəyəri dəyişən a edir - Mən yararsız definition lakin bu istifadə olunur necə bir illüstrasiya etdi. Bu artıq mövcud deyil əgər set command dəyişən yaradacaq. Shell scripts üçün mövqeli parametrləri dəyişənlər hesab edilə bilər, lakin onlardan istifadə və onlar üçün qaydaları bir qədər fərqlidir. Siz bir script ərzində $ 1 bir dəyər təyin edə bilməz. Siz bəzi istəyirdi ki, məqsəd üçün yeni bir dəyişən müəyyən etmək olardı. Dəlilləri heç bir ilə müəyyən yazın və siz bütün hazırda müəyyən dəyişənlərin bir siyahısını almaq. Və burada mənim digər shell üzərində almaq və biz bunu əgər biz almaq nə edək. Orada uzun bir siyahı, sağ? Bir az diyirləyin. Bütün baxın. Bu bəzi şeyləri shell avtomatik olaraq müəyyən edilir. Bu shell dəyişən yaradır və bir dəyər verir. Bəziləri shell tərəfindən müəyyən lakin sonra istifadəçi tərəfindən yenidən olunur onun üstünlükləri görə. Və onların bəziləri o gün bunu nə asılı olaraq istifadəçi tərəfindən yaradılmışdır. Bu yalnız dəlilləri heç bir müəyyən edir. Burada bu şey bir tək xüsusiyyət var. Bərabərdir imzalamaq və dəyişən adı arasında heç bir boşluq ya olmaq var və bərabər iki dəyəri və ya boşluq imzalamaq, bu bir kimi. Bu iş deyil, və bu, həqiqətən, cari command edir ancaq niyyətində nə deyil. Bu komanda işləyəcək, çünki yalnız bir dəyişən adı müəyyən və demək əgər heç bir işarə bərabər və ya seçin və bərabər bir dəyişən adı imzalamaq və heç bir dəyəri ilə bir null dəyəri dəyişən müəyyən edəcək. Belə ki, bir = müəyyən etibarlı əmr edir. Bu set command eyni xətt üzrə çox 1 dəyişən müəyyən edə bilərsiniz. Belə ki, burada bu komanda dəyərlər null A və B həm müəyyən təsiri var. Yəqin ki, nə istəyirəm. Burada Bu, əvvəllər qeyd, bir səhv gətirib çıxaracaq = b cari bir ifadə deyil. A dəyişən adı bərabər işarəsi ilə başlamaq bilməz. Və burada bu da şeylər var. The colons, tarixi xətləri olan arqumentlər seçmək üçün istifadə edilmişdir və onlar istifadə edilə bilər - və mən əvvəl daxil etməyib - o şeyi dəyişdirmək üçün. Onlar həmçinin shell dəyişənlər dəyişdirmək üçün istifadə edilə bilər. Burada Bu, bir $ bir dəyəri var. : R uzadılması off olacaq. Uzadılması bir nöqtə aşağıdakı bir şey olacaq, bir dot və bir fayl sonunda aşağıdakı bir şey, yalnız son çizgi sonra siyahının sonunda. Mən burada var. bir ki. Bu düşəcək. O. Heç bir məsləhət, son çizgi sonra yalnız pathnames varsa, heç bir təsiri olacaq. a: h, dəyişən ifadə, bir kataloq siyahısı son element off olacaq ki, yenə yalnız son çizgi sonra. Belə ki, / a / b / c / a / b olur, Siyahıda sonra element null çünki bu bir dəyişdirilir. Burada da vurğulamaq istəyirəm ki, bir şey var. Bu seçmələrində bu faylları mövcudluğu üçün axtarış yoxdur. Onlar yalnız strings üçün baxmaq. Bu, pathnames, fayl adları manipulyasiya üçün nəzərdə tutulub lakin onlar bir fayl adı deyil, hətta əgər hər hansı bir string istifadə edilə bilər. Onlar mövcudluğu üçün baxmaq yoxdur, belə ki, heç belə fayl var, / a / b / c, bu hələ də işləyəcək. Hər hansı bir istifadə olsun başqa məsələdir, lakin hələ də işləyəcək. Dəyişənlər Bourne mərmi fərqlidir. Biz sonra ki, almaq lazımdır. Dollar işarəsi yalnız ünlem və ulduz kimi xilas ola bilər. Dollar işarəsi bir backslash və ya bir quotes ilə xilas ola bilər. Double quotes bütün mərmi ilə tək təsir Bir dollar qiymətləndirilməsi məcbur dəyişən ifadə imzalamaq. Bir yol xilas olan varsa Belə ki, ikiqat quotes təsiri ola bilər bu halda qiymətləndirilməlidir səbəb olur. Bu bir az confusing edir. Belə ikiqat quotes daxilində vahid quotes kimi qaçan çox səviyyəsi, varsa və ya bir quotes daxilində ikiqat quotes, siz nə olacaq görmek üçün test olmalıdır bir kullanıyorsanız dəyişən. O 2 hallar - ikiqat vahid, vahid daxili ikiqat daxili - mütləq eyni nəticə vermir. Ekologiya dəyişənlərin bağlı C-shell dəyişənlər. Ətraf dəyişənlər də C-shell dəyişənlər var və onlar da digər mərmi də dəyişənlər var. C-shell, onlar fərqli dəsti var. Mən əvvəl deyirdim şeylər shell dəyişənlər haqqında. Ətraf dəyişənlər dəyişənlərin ayrı bir set var biz bound dəyişənlərin zəng bir neçə dəyişənlərin istisna olmaqla, çox vacibdir və biz sonra o nəzərə almaq lazımdır ki. Ətraf dəyişənlər avtomatik qəbul olunur mərmi və ya shell idarə olunur ki, əmrləri. Digər şeylər deyil. Bu shell dəyişənlərin, takma deyil. Ətraf dəyişənlər var. Biz mühit dəyişənlər onlara zəng niyə ki, fikir ətraf mühit yalnız cari shell keçmiş uzanır ki, olan. Onlar əmrləri üçün şeyi müəyyən etmək üçün istifadə edilə bilər. Burada bir nümunəsidir. PRINTER, LPDEST. Dəyişənlərin həm də komanda şeyi çap üçün istifadə edəcək ki, bir printer müəyyən edə bilərsiniz. Siz ətrafında çox printerlər varsa, istədiyiniz birini qoymaq istəyirəm bilər. Biz 2 dəyişənlər var səbəbi əmrləri müxtəlif dəstləri yazılmışdır ki, bu müxtəlif dəyişənlər istifadə. Siz onlara müxtəlif dəyərlər verir bilər. Çox güman ki, onlara eyni dəyər, həm də vermək lazımdır. Həmin şeylər işləmək çap ki, əmrləri bu dəyişənlərin dəyərləri yoxlamaq üçün proqramlaşdırılmış edilmişdir. Bir proqram yol yazılı idi, bu, başqa bir şey yazılı halda, dəyişən yersiz olardı. Belə ki, əməliyyat sistemi bu dəyişənlər üçün axtarır bir printer baxın hər zaman. Bu yol proqramlaşdırılmış əgər çap ki, bir skript bu dəyişənlər üçün axtarır. Bu dəyişənlər tez-tez başlatma faylları müəyyən edilir lakin mütləq. Siz command line onları müəyyən edə bilərsiniz. Onlar komanda müəyyən edilə bilər. Bir şey çalışır ki, bir command dəyişənlərin öz seçimi ola bilər - misal üçün xüsusi proqram paketi üçün unikal olan dəyişənlərin. Ki, paketi run zaman müəyyən olunacaq. Necə bu dəyişənlərin bir sub-shell qəbul olunur? Bir sub-shell yazılı, o, həmin ərazidə yazmaq deyil. Ətraf dəyişənlərin həsr ki, sub-shell sahəsi alt shell yazılı deyil, bu çıxarmaq tərəfindən yazılı. Əgər adi komanda çalıştırdığınızda, belə, bu əmrləri çap və ya nə kimi Onlar yeni shell yaratmaq başlamaq. Bu shell bir shell yaradır və sonra iştirak üzerine yazır bir az confusing olan çalışan etdiyiniz komanda ilə, lakin bu əmrlər mühit dəyişənləri almaq necə Onlar sonra baxın ki,. Dəyişən SetEnv müəyyən burada komanda. Siz onu müəyyən necə. SetEnv, dəyişən, dəyər: 3 elementləri var. Siz yalnız heç bir dəlilləri ilə SetEnv deyilsə, siz nə əldə edirsiniz? Bu dəyişənlərin bütün siyahısı. Yenə, bu, gözəl uzun siyahısı var və bu halda, başqaları kimi, Bu dəyişənlər shell özü mənim giriş əməliyyat əsasən müəyyən edilir daha mən bir şey daha. Burada bir komanda, printenv var. Bu da ətraf mühitə çap edir. Burada REDAKTORU = vi bu son şey edək. Ki, deyir ki Mən redaktoru çağırır ki, bir şey istifadə edirəm əgər və Mən redaktoru daxil deyil və bu mənə seçim verir, o, mənə vi verə bilər. Mən printenv REDAKTORU əgər? Bu nə mənə deyir. Sağ əvvəl, dəyişən, az var idi. Bu mən az funksiyanı çalıştırın zaman yetirilməməsi variantları var, olan faylları gösterir. Mən bunu Belə ki, printenv, 1 arqument və ya 0 arqumentlər bilər çox 1. Digər əmrləri də var, lakin biz bütün bu gün almaq üçün fikrində deyilik. Kimi shell dəyişənlər üçün modifikatorların var idi saxla: h, bir pathname son element düşəcək ki, və ya: r, uzadılması düşmək edəcək. Həmin indi də ətraf dəyişənlərin müraciət. Onlar üçün istifadə etmədi. Onlar redaktə ola bilməz olmaq üçün istifadə. İndi onlar ola bilər. Bu il ərzində mərmi inkişafları ilə avanslar biri. Deyirdim ki, mühit hissəsi kimi mərmi və C-shell shell dəyişənlər bəzi istisnalarla, fərqli dəsti ilə, var. Siz eyni adı ilə bir mühit dəyişən və bir shell dəyişən yarada bilər. Onlar müxtəlif dəyişənlərin olacaq, onlar müxtəlif dəyərlər ola bilər. Birinin dəyərini dəyişdirilməsi digər dəyəri dəyişməyəcək. Bu dəyişənlər bütün dollar işarəsi ilə qiymətləndirilir - $ a $ nə. Beləliklə, nə siz bu varsa? Siz almaq bir bilirsinizmi? Mənim testlər mən shell dəyişən var, lakin bu sənədləşdirilmiş deyil və siz ki, etibar edə bilməz. Mən shell və mühit dəyişənləri yaradılması, xahiş eyni adlar yaxşı bir fikirdir ilə? No OK. Olan ətraf mühit və shell dəyişənlər o böyük istisnalar hansılardır bir-birinə bağlıdır? Bu 4 var. Capital məktubu MÜDDƏTİ mühit dəyişən, kiçik məktublar, terminal emulation tipli dəyişən müddət shell. , Mən yalnız burada getmək gedirəm və mən burada echo bir faydalı əmr etmək üçün gedirəm $ TERM $ müddəti. Və orada. xterm X Window System göstərilir Windows üçün bir terminal növüdür. xterm-rəng müxtəlif rəng verir ki, bir variasiya edir. Niyə biz bu müəyyən edirsiniz? Bu üçün yaxşı nədir? Redaktoru kimi ekran yeniden ki, əmrləri escape ardıcıllığı adlı xüsusi ardıcıllığı, göndərmək, Bir terminal və ya pəncərə s yenidən və. Həmin ardıcıllığı terminalların müxtəlif növləri üçün müxtəlif var. Bu isə istifadə üçün bunu deyir. Bəzən məsələlər var. Siz dəyişə bilərsiniz. Hər şeyi iş deyil varsa, bəzən terminal növü, səhv müəyyən edilir Siz müddəti dəyişən yenidən düzeltmek edə bilər. Bu hallarda, bir dəyişən, ətraf mühitin dəyişən və ya shell dəyişən dəyişdirilməsi, Digər bir dəyişdirmək lazımdır. Mən təcrübə vasitəsilə aşkar etdik ki, hərflərlə MÜDDƏTİ dəyişən həmişə kiçik hərflərlə shell dəyişən müddət dəyişmir. Bu bir səhv deyil. Həmişə doğrudur, mən bilmirəm. Bu doğru deyil çox vaxt, lakin ola bilər. Əgər bir dəyişiklik Belə ki, yalnız kontrol. Bu ancaq bir dəfə siz bir müddət, siz ki, dəyəri dəyişdirmək lazımdır ki, tez-tez deyil. Ətraf mühit dəyişən USER. Yenə hərflərlə mühit dəyişən, kiçik hərflərlə dəyişən shell. Bu istifadəçi adı deyil. Bu, yalnız çox müstəsna hallarda var Əgər dəyişmək istəyirəm ki,. Sizin istifadəçi adı başqası varsa, bu şeyi bütün növ off atmaq olar. Home directory, istifadəçinin ana qovluğu. Yenə Əgər dəyişmək istəyirəm deyil. Biz, yol dəyişən əhatə haqqında olduğunu, bu hallarda və bir bütün bildiriş ətraf mühit dəyişən hərflərlə və bound shell dəyişən kiçik hərflərlə edir. Bir dəyişdirmək əgər, siz başqa dəyişdirmək lazımdır. 2 dəyişənlərin lər bilməz kimi məcburi bu cür müəyyən edilə bilməz, başqa, bu 4 və bu dəyişənlərin məcburi geri bilməz, Əgər siz onları ayıra bilməz. Belə ki, dəyişənlərin bu 4 cüt bağlıdırlar. Onlar həmişə olacaq. None başqaları olacaq. Bundan başqa, eyni adları ilə dəyişənlər yaratmaq mümkün olacaq əks növləri. Siz kiçik hərflərlə bir shell dəyişən müddət edə bilər və ya hərflərlə bir mühit dəyişən TERM. Bu dəyişənlər bu qoşalaşmış dəyişənlərin müstəqil olacaq və onlar bir-birindən müstəqil olacaq. Insanların çaşdırmaq üçün istədiyiniz halda bunu ki, niyə mən təsəvvür edə bilməz. Burada Bu, yol dəyişən, bu həqiqətən mühüm biridir. Burada başqa bir şey hallar ola bilər ki, bir-birinə bağlı olmayan oxşar Cütlənmiş adları ilə dəyişənlərin. Kapital və kiçik hərflərlə, dəyişənlərin, SHELL və shell ola bilər. Ki, dəyişən bir shell dəyişən olarsa, adı əsasında, bilmirəm və ya ətraf mühit dəyişən, və onlar bir-birinə bağlı deyilik. Belə ki, qoşalaşmış adları cür bound dəyişənlərin demək deyil. Mən əvvəl göstərən olan yol dəyişən, shell əmrləri üçün görünür olan pathnames siyahısı. Burada bu pəncərə üzərində almaq və biz echo $ PATH, hərflərlə edəcəyik - ətraf mühit dəyişən - $ yolu echo, kiçik məktublar - dəyişən shell. Rehberler siyahısı eyni olduğunu görürük. Bu bağlıdırlar. Bir dəyişiklik, digər dəyişir. Ətraf mühit dəyişən ünsürlər colons ilə ayrılır. Qeyd edək ki,. Bu shell dəyişənlər boşluq ayrılır. Bu mühit dəyişən bir simli edir. Bu shell dəyişən bir sıra edir. The Bourne shell serialların yox idi. Bash edir, lakin bu artıq shell sabit hissəsidir. Bu bir string və bir sıra edir. The C-shell həmişə Diziler idi. Bu serialların ilə işləmək üçün çox asandır. Siz hissələri müraciət edə bilərsiniz. Belə ki, echo $ yol [1] və mən almaq / usr / bin, ilk element. Yenə dollar yadda Bürc tarixi siyahısında son element üçün dayanır. Nə baş verir? Bu dəyişən rəmzi kimi dollar işarəsi tapmağa çalışdı. Mən bunu xilas. Oops. Bu da ki, almaq deyil. Bu bəzi şeyləri yaxşı iş deyil. Bəlkə biz yalnız buraxmaq lazımdır. Asterisk bütün şey edir, lakin bir element müəyyən etmir əgər siz almaq nə var. Array dəyişənlərin manipulyasiya edilə bilər ki, başqa bir yolu, orada elementləri, 7 elementlər sayı. Burada dəyişən adını əvvəl funt işarəsi qoydu. Burada başqa biri. Bir sual işarəsi qoyun. Ki, bir məntiqi dəyəri. Bu dəyişən mövcud olduğunu göstərir. Bu dəyişənlərin ilə iş bir yoldur. Ki, yolu ilə, bir sıra dəyişən olmaq yoxdur. Hər hansı bir dəyişən ola bilər. Mən əgər orada belə bir dəyişən var və mən bir 0 almaq. Dəyişən qiymətləndirmələr haqqında orada bir az şey. Geri bu bir burada, əgər bu iş istədi nədənsə daha sıra ilə iş çox, shell dəyişən, kolon əsasında bu şeyi ayırmaq olar ki, əmrləri var. Əslində, siz bəlkə Bash shell bunu etmək olacaq əgər, bir script bir növ ki, siz bunu necə yəqin olardı. Lakin C-shell bu array istifadə etmək çox asandır. Bu Bourne shell, dəyişənlərin bu kimi bir ifadə ilə təyin olunur, bir proqramlaşdırma dilində bir dəyişən təyin edə bilər yolu kimi, və burada heç bir boşluq olmalıdır. Bu yalnız 1 string ki, lazımdır. Bourne tipli mərmi, bütün dəyişənlər shell dəyişənlər var. Ətraf dəyişənlər shell dəyişənlər çoxluğudur. Onlar ixrac tərəfindən qeyri-mühit dəyişənlərin fərqlənir. Bunu etmək üçün komanda ixrac PRINTER kimi, ixrac edir. Biz belə bir dəyişən müəyyən etmək olsaydı, biz bunu tapmaq üçün çap komanda istəyirdi, əgər bir mühit dəyişən olmalıdır, və biz bir etmək necə. Burada cür confusing bir şey var. Bu ifadə, ətraf mühitə ixrac, bu Bourne shell konsepsiya irəli gəlir və hələ ki, ifadə, C-shell təsvirində istifadə olunur belə komanda ixrac olduğu. Siz yalnız özü tərəfindən ixrac demək, siz ixrac bir siyahısını almaq - Belə ki, mən yalnız burada ixrac, əgər belə bir şey. Okay, orada biz gedin. Bunlar, yolu ilə, həmçinin shell tərəfindən müəyyən edilir. Mən özümü bu hər hansı bir müəyyən etməyib. Bu shell özü şeyi bütün növ yoxdur. Bu avtomatik şeyi etməlidir. Bash ya Korn shell, siz bu kimi bir komanda çalıştırabilirsiniz bir dəyişən bir dəyər vermək və 1 komanda ixrac edəcək, həm də ki. Bu Bourne shell onlar ixrac a kimi ayrı-ayrı əmrləri olmalıdır. Burada confusing var ki, başqa aspektidir. C-shell müəyyən command dəyişənlərin müəyyən və heç bir dəlilləri ilə dəyişənlər 'dəyərlər nə sizə deyir. Bu Bash shell, heç dəlilləri ilə set command, eyni şey yoxdur lakin dəlilləri ilə kifayət qədər fərqli bir şey yoxdur. Belə ki, bu burada müxtəlif arqumentlər var. Bunlardan bəziləri bəziləri shell dəyişənlər var, ətraf mühit dəyişənlər var. Onların hamısı həqiqətən shell dəyişənlər var. Bəziləri mühit dəyişənlər var. Dəlilləri ilə set command fəaliyyət üçün istifadə edilə bilər bir script mövqeli parametrləri, olan bir dəfə onları bütün əldə bir yoldur. Biz, həqiqətən, bu gün getmək bilməz. O, həmçinin shell davranış dəyişdirmək üçün istifadə edilə bilər. Xüsusilə Bash shell davranır necə müəyyən edəcək dəyişənlər var. Sonra da siz görə bilərsiniz ki, yalnız bu bir komanda, bu komanda. Dəyişənlərin və dəyişən növləri izlədi typeset Korn və Baş mərmi istifadə olunur. Bu, məcburi deyil, lakin dəyişənlərin dəyərləri məhdudlaşdırmaq üçün istifadə edilə bilər səhvlərin qarşısını almaq üçün faydalı ola bilər, və bu, kifayət qədər ümumi var bilər. Mən yalnız halda bir yerdə görürük qeyd edirəm. The yerləşir komanda. Qeyd xatırlayıram əvvəllər olduğu C-shell command, bir komanda pathname yeri demək bilər. Burada komanda əvəzetmə edir. Siz haradasa sizin klaviatura bu kimi görünür ki, bir xarakter tapmaq lazımdır. Klaviatura yeri fərqli gedir. Biz bunu backquote adlı etdik. Bu quote ölçüsü haqqında. Bu hüququ aşağı yuxarı sol gedir. Burada mənim Mac klaviatura, yuxarı sol küncündə var. Ki, xarakter bir komanda ərzində bir əmr icra üçün istifadə edilə bilər. Siz backquotes daxilində ifadə varsa, ifadə run var, bir komanda deyil. Ki, komanda çıxış sonra bütün backquote ifadə əvəz olunur o çıxışı ilə çalışır uzun komanda daxilində s dəlilləri və onun simli hissəsi kimi. Burada ki, istifadə edən bir əmr edir. Burada əməliyyat göstərək. Bu backquotes almaq, burada gedək. Control A Emacs redaktə sintaksis ilə xəttin başında mənə olur. Bu günə qədər pathnames, harada nə edir Mən bu kimi bunu zaman, o pathnames ki siyahısında şamları Bu bütün backquote ifadə və onlara çalışır ls-l yerdə. Rahat cür, ha? Belə ki, bir səliqəli şey var. Bu backquotes necə var. İndi bir az daha aşağı gedək. Bu takma var. Mən, həqiqətən, bu istifadə edin. I 1 editing əməliyyat ilə bu almaq üçün cəhd edəcəyik. Okay. İndi o anlayışlar çıxdı necə edək. alias bu, müəyyən necə mənə izah lwh. Yalnız bu var, lakin xarici quotes off atılmışdır edək və nida point off alınır. * Bütün dəlilləri tam siyahısı. Bir alias müəyyən, mən bu istifadə etmək üçün geri müraciət edəcək. lwh ksh bash. Okay. Ki, işləri necə? Mənə bəzi yazaraq saxlayır. Yalnız burada başqa bir şey qeyd etmək bir az gedək. Bu müxtəlif mərmi edək. Mən əvvəl bu qeyd olmalıdır. The csh bir burada 2 və belə yoxdur / bin / Tcsh var. Biz o həqiqətən eyni fayl olan digər vasitələrlə təsis edə bilər. Siz bash almaq sh yazın əgər deyirdim xatırlayıram. Bu yazın və siz bu almaq. Lakin həmin bağlı deyil. Orada tək olanları var. Bu başqa bir zəng edə bilərsiniz olan fayl növü deyil. Belə ki, o ayrı-ayrı fayllar var; C-shell isə eyni faylı var. Geri aşağı burada, burada digər bir, bu alias, Bu komanda, fayl çalışan unutmayın. Yəni alias ki, çalışır. Fayl bir fayl növü deyir. Belə ki, fwh ksh bash. Okay. Bu fayl komanda çıxış edir. Bu burada nə deməkdir bilirsinizmi, mən bilmirəm 2 arxitekturaları ilə Mach-O universal ikili. Mac 2 mümkün prosessor növləri var və bəzi proqramları ilə run etmək üçün yazılmışdır, və fayl komanda müəyyən edə bilərsiniz, belə ki, bu nə deməkdir var. Bu faylların ki, həm də yol yazılmışdır. Belə ki, biz, biz backquote necə işlədiyini görmək, takma necə işlədiyini görmək biz faktiki fayl ls və ya fayl necə işlədiyini görmək. Bu iş ola bilər. "Harada" və "lwh harada" cəhd edin. OK, ki, cəhd edək. harada. bir shell daxili edir. Əvvəllər biz Bash harada olmadığını göstərdi saxla. Siz Bash shell yerləşir yazın əgər, siz bir səhv baş beledir almaq. Bu olduqca ayrı bir komanda olan çox shell bir hissəsidir. Mən lwh harada axtarır yazın ne olur? Orada nə baxın. Harada qaçdı yerləşir, bu çıxış var, və sonra ls run çalışdı bir shell daxili olduğu barədə l kimi. harada var, lakin digər olanları yoxdur. Bunların heç biri həqiqətən mövcuddur. Belə ki, həmişə iş deyil, və bu da necə bəzi şeylər göstərir siz fikir ola bilər çox nə yoxdur. Gələcək burada bir az aşağı getmək edək. Burada bu Bash edir. Bu da backquote kimi komanda əvəzetmə edir. Amma backquote fərqli olaraq, bu dəyişən stil istifadə edir. Bir dollar işarəsi ilə başlayır olan ifadələr bir sıra var Bu dəyişənlər deyil isə, onlar dollar işarəsi istifadə borc bir növ ifadə göstərir. Ki, parantez və ya Mötərizədə və ya ikiqat parantez ilə əhatə oluna bilər, olan müxtəlif məqsədi var. Burada Single parantez yalnız backquotes kimi bir komanda əvəzetmə var. Double parantez həqiqətən bir hesab əməliyyatdır. Digər syntaxes, digər əməliyyatları var. Backquote syntax Bash mövcuddur. Lakin bu, bir üstünlük. Bu oxumaq üçün çox asandır və bu quş balası imkan verir. Siz $ (komanda) içərisində bir komanda ola bilər kimi bir şey - Mən orada bir siyahısını almaq. Mən də backquote əgər iş ki,. Mən kimi bir şey istəyirsinizsə - Siz yəqin ki, həqiqətən, bu funksiyanı istifadə deyil, lakin bu daxili command əvəzetmə ilə başlayan bütün faylların adlarını əks etdirir, bu bir, bu faylları ls-l çalışır və sonra bu yalnız çıxış əks etdirir. Siz yəqin ki, bunu olmaz; yalnız əks-səda və ya ls edərəm lakin bu əmrləri yuva işləri necə göstərir. Belə ki, yalnız bir xüsusiyyət burada.  Mən bu əvvəllər qeyd, siz zaman olduğu C-shell, əmrləri yerləşdirilməsi üçün Bourne tipli örtüklərin işləri yazın. Mən orada deyərək nə yalnız Daxili əmrləri. Əmrləri olduğu kimi shell, hissəsidir. Shell ls kimi bir komanda icra, o, yolu vasitəsilə yerləşir , haradasa bir kataloq tapdığı yaddaş daxil, yeni shell yaradır deyilir ki, shell daxil komanda ls ya nə deyilir ətraf mühit dəyişənlər artıq yerləşdiyi, və sonra onu icra köçürür. Daxili komanda ki, komanda üçün kodu shell daxilində, belə shell yalnız öz kodu hissəsini həyata başlayır. belə bir əmr edir. Bu, faktiki olaraq daha sürətli olur. Bu yaddaş bir şey oxumaq deyil, bu yaddaş artıq var. Daxili əmrləri həmişə eyni adı ilə əmrləri üstün. Yolunda rehberler olan əmrləri eyni adı ola bilər, müxtəlif rehberler əmrləri, müxtəlif qovluqlarda faylları. Əvvəllər yolunda baş verir ki, bir almaq lazımdır biridir. Daxili command varsa, siz həmişə onu almaq. Bu yolu bir komanda aşağı üstün vermək üçün heç bir yol yoxdur. Ki, yol komanda almaq istəyirsinizsə, siz tam pathname edəbilərsiniz. Bir command yerləşir yerdə yolunda olsaydı, Siz / bin / Ü yazın bilər və bunu almaq istiyorum. Siz bütün yol adını yazın istəmirsinizsə, bir takma ad müəyyən edə bilər. Siz Alias ​​daxili komanda kimi eyni adı verdi əgər Əslində, bu iş takma definition qiymətləndirilir çünki shell bu icra olunmalıdır daxili command ki, müəyyən əvvəl. Sonra bu burada bəzi əmrləri ilə bir az daha mürəkkəb olur. Bəzi əmrləri işi həqiqətən inşa-in əmrləri və yolunda. Onlardan biri komanda Mən yalnız bu nümunələrdə bir az əvvəl istifadə echo edir. Echo yolunda bir komanda və hər shell var. Onlar mütləq bütün eyni şəkildə davranmaq deyil. Yalnız yolunda ilk bir komanda idi. Daha sonra mərmi üçün inşa edilmişdir. Ətraf mühitə asılı olan variantları var və command line variantları, daxili əmrləri yolunda olduğunu əmri eyni fəaliyyət üçün yazılmışdır, ki, onlar yol yazılı olardı çətin komanda artıq yoluna üçün yazılı olmasaydı. Belə ki, bu yan təsiri var. Onun tarixi burada təsiri var. Variantları var. Echo_style adlı Tcsh dəyişən müəyyən bir seçimi də var. Bu işləri əks-səda ki, yol dəyişə bilər ki, bu dəyişənlərin biri. Bir dəyişən təyin edə bilərsiniz olan digər halları var ki, daxili əmr, o cümlədən shell əməliyyat, çalışır ki, yolu dəyişir. Bu başqa bir şey təsir etməyəcək digər əmrləri shell dəyişənlər çıxışı yoxdur-ci ildən, yalnız mühit dəyişənlər. Amma shell əməliyyatlar shell dəyişənlər oxuya bilərsiniz. Bu CSH üçün iş deyil. Yalnız Tcsh var. Bu aksesuarların biri. Bu metacharacters qiymətləndirir zaman təhlil, ardıcıllığı var Bu dəyişənlər, takma, tarixi istinadlar qiymətləndirir zaman. Bu şeylər üçün xüsusi ardıcıllığı var. Bu xüsusi ardıcıllıqla etsə və bir növ bir ifadə var ki, bir şey olur artıq qiymətləndirdi edilmiş, yenidən bunu qiymətləndirmək olmaz. Onu alır, onda yalnız simvol keçəcək. Belə ki, əgər komanda əvəz kimi bəzi ifadələrin qiymətləndirilməsi və ya dəyişən və ya hər hansı bir ifadə yaranmasına səbəb olur siz qiymətləndirmək istəyirəm ki, ki, qiymətləndirmə sonra ardıcıllıqla yalnız baş əgər işləyəcək. Mən aydın orada olan alıram ümid edirik. Bu təhlil ardıcıllığı, C-shell bir əməliyyatda, qeyri-daxili əmrləri üçün olduğu kimi daxili əmrləri üçün eyni deyil. Mən orada Bash haqqında əmin deyiləm. Məsələn, bir shell dəyişən, bir tarixi arayış istehsal yəqin ki, geri tarixində getmək deyil. Bu, yalnız ünlem almaq olardı. Əslində, biz yalnız indi ki, cəhd edə bilərsiniz. bir = qurmaq və biz orada bu qoymaq lazımdır. Oh, gözləyin. Üzr istəyirik. Mən Bash bunu. Mən burada bunu etmək istəyirdi. Bax, belə ki, tarixi arayış qiymətləndirmək etməyib Bu tarix ifadələr qiymətləndirilməsi baxımından keçmiş artıq idi, çünki Bu dəyişən qiymətləndirdi zaman. Belə ki, təhlil 1 təsiri var. Və yenə, daxili əmrləri eyni şəkildə işlər deyil. Bütün hüquqlar. Burada növbəti bir gedək. Bu 1 line üçün nəzərdə tutulmuşdur, lakin bu asan oxumaq üçün edilməsi oldu. O nə edir? Əgər biz fayl joker kimi ulduz qiymətləndirmək olar ki, geri bilər, və sual işarəsi və bracket ifadələri kimi digər fayl joker var. Qiymətləndirilməsi bu cür globbing adlanır. Bu komanda başında noglob müəyyən yoxdur deyir. unset noglob geri bunu getmək deyir. Ki, set glob ki, təsir olmazdı Qeyd. Adi dildə, müəyyən glob və ya unset noglob, ekvivalent olmaq görünür lakin burada deyil. Bu unset noglob var. İndi tset. tset terminal set üçün dayandı. Windowing sistemləri oldu əvvəl ki, tez-tez istifadə, lakin deyil və bir terminal var idi, siz növü müəyyən etmək üçün ola bilər. Və bir şey bir Ethernet və ya şəbəkə gələn əgər, siz bir vt100 demək istəyirəm bilər. VT100 terminal iş standart növüdür. Bu DEC terminal gəlir. Yalnız Dialup varsa - fark? Bu, ha geri yolları gedir? Beləliklə, biz yalnız burada tset əgər, Mən yalnız tset əgər, bu, mənim terminal sıfırlama edir, lakin heç bir şey görmədim. Bu, həqiqətən bir şey dəyişmədi. -S Okay. SetEnv TERM xterm-color. Ki, dəyişməyib Biz artıq termini şəkildə müəyyən edilib ki, bilirik. Yəni biz bunu istəyirəm yolu var. Amma bu komanda, tset-s, yalnız çıxış bu əmrləri bilərsiniz. Onları etməyib. Bu əmrləri etməyib, onları çıxış. Belə ki, bu sonra davam edəcək olan əmrləri istehsal üçün nəzərdə tutulmuşdur. Siz fayl komanda xatırlayıram mən yalnız siz bir Q göstərdi. Belə ki, bunu bildirin. Q bəzi çıxış qarşısını almaq, ancaq siz bilərsiniz kimi, burada əhəmiyyətli deyil. Mən yalnız əhəmiyyətli olmadığını göstərmək üçün edirəm. Bu backquote sintaksis edir. Backquote burada, burada backquote Qeyd. Mən burada bu şeyi omitting alıram. Bu nə üçün izah halları terminalların xüsusi növ halda - Ethernet, şəbəkə, dialup, sizə nə. Biz, həqiqətən, bu şeylər hər hansı məşğul deyilik, çünki burada etməz. Mən yalnız əmr şərh edirəm. Mən backquote ilə bunu əgər, nə üçün gedirəm? Həmçinin bu set noglob və unset noglob daxil, burada qeyd, belə ki, bu, indi müəyyən lazımsız edilir. Ki, həmişə doğru deyil, lakin indi onlar bu əmri daxil edirik. Amma mən ki, əgər nə görmək edək və Control A xəttin əvvəlində getmək və mən bunu. Okay, set: Command tapılmadı. Bu cür tək, bu deyil? set tanınmış əmr edir. Bu shell hissəsi. müəyyən: Command tapılmadı? Niyə ki? Hmm. Yaxşı, bu barədə düşünmək bildirin. Bu backquote command əvəz çalışan, ki, komanda təhlil ardıcıllığı müəyyən bir hissəsi baş verir. set daxili əmr edir. Belə ki, komanda əvəzetmə yoxdur zaman, Bu artıq inşa-in əmrləri müəyyən baxımından keçmiş kazanılmış var. Belə ki, bu yolun bir command sanki müəyyən alır. Deməyə ehtiyac yoxdur, onu tapmaq deyil və bir səhv almaq. Yaxşı. Təhlil ardıcıllıqla bir misal var. Və biz bu barədə nə etməliyəm? Eval, burada bu çox maraqlı komanda edək. Mən nə wonder. Siz dərslik baxsaq - edək yalnız bunu Bu təlimatlar necə confusing göstərmək - man Tcsh, qarışıq manual, burada şeyi tapmaq və ya asan deyil. Burada eval ARG, getmək, belə ki, biz 1 və ya daha çox arqumentlər ola bilər və hər şeyi bir siyahısı var var. Shell giriş kimi dəlilləri alır və cari shell kontekstində nəticəsində əmrləri icra. Bu adətən komanda nəticəsində yaradılan əmrləri yerinə yetirmək üçün istifadə olunur və ya dəyişən əvəz təhlil bu Əvəzedicilərimiz əvvəl baş verir, çünki. Çox yaxşı. Və burada hətta bir nümunə istifadə üçün tset komanda baxın bir kimi mən yalnız siz göstərdi. İndi geri faydalı yerə pəncərə almaq lazımdır. Burada üzərində almaq və biz eval yalnız əvvəl istifadə olunur görəcəksiniz. Burada biz komanda üçün okları ilə getmək - Belə ki, biz qoymaq əgər nə görmək edək və əvvəlinə Control A, eval. OK, belə işləyir. Siz eval nə zaman, ondan sonra gəlir nə edir və bir komanda edir. Bu mahiyyətcə iki dəfə analiz imkan verir. Burada hissəsində, backquotes daxilində bu funksiyanı çalışır çıxış olur. Çıxış bu kimi burada həmin əmrləri run ehtimal edilir bu bir və bu bir. Belə ki, həmin əmrləri indi burada bu ardıcıllıqla, lakin bu əmrləri inşa və dərhal onları əldə edə bilməz. Beləliklə, biz Eval getmək, eval, qədər seçer təzədən bütün şey başlayır və işləyir. Nümunə backquoting, həm də eval, təhlil, təhlil nəticələri, və yəqin ki, indi sizə çox az istifadə olan bir komanda. Okay. Bütün sağ, Umask. , Burada bu əmri baxaq 022 Umask. Mən nə wonder. Yalnız bundan sonra heç bir şey Umask yazın edək. 22. Okay. 022 və daha bunu. Siz guessed ola bilər kimi, heç bir dəlilləri ilə Umask cari maska ​​deyir; dəlilləri ilə Umask ki edir, lakin mən artıq idi biri idi. 022 nə deməkdir? Bu burada bir fayl üçün mühafizəsi var. Onlar fayl oxumaq və ya yazmaq və ya icra etmək üçün icazə olan müəyyən. Mühafizəsi də icazələrin deyilir. The r, oxumaq, yazmaq üçün W dayanır və orada olmayan x, icra üçün dayanır. Orada 3 kateqoriyalar var. Son 3 elementləri istifadəçi kateqoriyadadır. O, mənə istifadəçi tətbiq olunur. Burada bu 3 qrup müraciət. Fayl 1 qrupuna aiddir, istifadəçi bir neçə qrupa üzv ola bilər, ancaq istifadəçi bu faylı aid olduğu qrup olduğu halda, o user deyil, əgər bu müdafiə ona müraciət edəcək. Və bu hər kəs edir. Bu kateqoriyalar qarşılıqlı eksklüziv. Istifadəçi müdafiə ona müraciət, qrup mühafizəsi, istifadəçi başqa qrup üzvlərinə şamil və digər müdafiə yalnız istifadəçi və qrup üzvləri çox digər insanlara müraciət. Bir və ya r aw və ya bir x varsa, bu müdafiə verilir deməkdir. Bir tire varsa, bu deyil deməkdir. Həqiqətən, bu başqa burada qoymaq olar ki, başqa şeylər var Mən indi nəzərə almaq deyil. Bu Umask yaratmaq fayllar üçün defolt müəyyən edir. Və bir maska ​​kimi, əsasən bu müəyyən deyil ki, bit deyir. Bu necə bit oldu? Bir octal sayı bu hər hesab edirəm ki, əgər Bu, 1s az bu 2s edir, bu 4s edir. Belə ki, 0 7 vasitəsilə Bu 3 Siz r nin nə birləşməsi, w, ve x nin təsvir edəcək və sonra bu və bu üçün bir oxşar sayı. Belə ki, 022 digər 0, qrup üçün 2, istifadəçi üçün 2 deməkdir. Amma bu bir maska. Bu maska ​​siz yoxdur nə. Üzgünüm. Mən yalnız səhv üçün, sizə verdi. Bu ilk 3 var. Bu 3 istifadəçi var, bu 3 qrup var, bu 3 digər var. Bağışlayın mən səhv üçün bu verdi. O ilk olan 0, dəyəri göstərmək deyil bir sıra deyil, bu, bir 0 var. Yəni bütün bunlar 3 icazə deməkdir. Bu bir x icazə verilmir ki, görürsünüz. Səbəbi shell müəyyən etməyə qadirdir ki, olub bir fayl icra və ya olmalıdır. Bu bir yürütülebilir fayl olduğundan, x müəyyən etməyib. Burada icazə, ikinci kateqoriya yazmaq ki, 2 vasitələri, ortada bir maneə törədildi. Belə ki, yenə bu inkar edən şeylər. Yaxşı, x icazə lakin yürütülebilir deyil, çünki burada deyil olunur və eyni başqaları üçün. Belə ki, bir ümumi Umask var. Digər ümumi bir 700 - Özünüzü hər şey və heç bir başqa bir şey verir. Və digər imkanları var. Mən ki, geri getmək lazımdır. Mən orada lwh ki, geri axtarış edə bilərsiniz tarixi istifadə edərək. Okay. Belə ki, burada, bu mərmi. Bash, sistem hesab olan sahibi, hər şeyi edə bilərsiniz. Group və hər kəs oxumaq və ya icra amma yazmaq edə bilərsiniz. Bu hətta sahibi yazmaq üçün imkan vermir. Sahibi, bu sistem hesab yazmaq istəyirdi o, ilk müdafiə dəyişdirmək lazımdır. Amma yenə Umask maskeleme tərəfindən default edir, müəyyən deyil ki, bit göstərilməklə. Bu C-shell üçün. Cshrc olan, sizin başlatma faylları bir adətən və ya Bourne tipli mərmi üçün. profile. Sistem digər başlatma faylları var ki, bu da başqa yerdə ola bilər. Hər halda, Umask var. Burada tək bir şey cür var ki, niyə bir komanda bu var, var? Mən bu yazı idi, mən bir dəyişən, Umask = bəzi dəyəri edəcək. Niyə bütün komanda yalnız bu məqsəd üçün var? Səbəbi yalnız geri Unix mənşəyi keçir. Unix erkən 1970-ci ildə Bell Labs yalnız bəzi proqramlaşdırma layihə idi. İnsanlar yalnız proqram birlikdə var. Onlar dünyanın bir əməliyyat sistemi olmaq üçün nəzərdə heç vaxt. Müxtəlif insanlar çox düşünmədən müxtəlif yazdı çox yarım yamalak - necə onlar üçün istifadə etmək niyyətində idi. Və bu kimi bir araya gəldi və bu, bəzi hallarda olduğu kimi hələ də var. Belə ki, tarixini əks etdirir və bu uyğunsuzluqlar və tək elementləri var. Okay. Burada Next biridir. Mən əvvəllər yazırdı ki, C-shell həqiqətən, proqramlaşdırma üçün çox istifadə olunur ola bilər, baxmayaraq. Bu, daha yavaş-yavaş, daha interaktiv istifadə arasında ticarət-off icra sürət daha cəlb daha emal var, olan emal olmadan edə bilərsiniz. Bu Korn və Bourne yenidən mərmi ilə Bourne shell əlavə əlavə funksiyalar onlara aşağı yavaş görünmüyor ki, niyə bilmirəm. Bu, yalnız daha yaxşı proqramlaşdırma ola bilər, amma bilmək iqtidarında deyiləm. Qeyd edilir, baxmayaraq ki, burada sürətləndirilməsi, həqiqətən, belə bir böyük deyil. Səbəbi shell scripts həqiqətən kifayət qədər sürətli almaq edir. Kimi əmrləri bir çox, bir calculational proqram varsa yəqin ki, bir shell script bunu deyil. Bu əməliyyatlar kifayət qədər sadə və sadə var. Çox yavaş ki, mən yaşadığınızı olanlar yavaş əmrləri təkrar applications daxildir. Əvvəllər mən lakin sel redaktoru qeyd. Bu komanda yavaş. Siz sed dəfələrlə icra, bir yavaş script almaq lazımdır, lakin yavaş olan shell deyil. Bourne shell çalışan, C-shell çalışan çox daha sürətli olacaq bəzi üstünlükləri var bəlkə var, baxmayaraq ki,. Əlavə proqramlaşdırma imkanları, digər tərəfdən, Siz Bourne tipli mərmi istifadə ki, niyə əhəmiyyətli səbəbləri var. C-shell bu tək xüsusiyyətləri vardır - Bir dəyişən bir shell dəyişən və ya ətraf mühit dəyişən əgər bilmirəm ki. Bu, çox confusing ola bilər. Bu yazmaq belə asan deyil yalnız digər dillərdə proqramlaşdırma sizin təcrübə əsaslanır. Mən sizin təcrübə ilə Bourne tipli mərmi daha ardıcıl tapa bilər. Bəzi scripts, baxmayaraq ki, uzunluğu xətlərinin minlərlə ola bilər. Mən gördüm ki, o əməliyyat sistemləri patching üçün istifadə olunur. O çox yavaş-yavaş icra edə bilər, lakin çox tez-tez bu run etməyin. Bu patching edirik yalnız var, və bu şeyi görən yalnız sistem meneceri var, belə ki, bir məsələ həqiqətən çox deyil. Xətləri yüzlərlə olan uzun həqiqətən kifayət qədər tez icra. Burada bu qeyd, o aksesuarların nə var? Diziler, hesablamalar, - mən artıq onlara bir neçə qeyd etdik dollar (bu Bash shell hesablamalar üçün) ifadəsi, komanda əvəz digər növ. Test əmrləri müxtəlif növ var olan bir fayl və ya digər şeylər mövcudluğu şərti test edə bilərsiniz. Burada davam, burada bu komanda. Bu nə və nə üçün heç kim istifadə edir? printenv variablename. Biz printenv nə bilirik. Bu, bizə bir dəyişən dəyəri deyir. Belə dəyişən var, çünki printenv variablename bizə çox demək deyil. Blank. Amma bu mənalı bir şey verək. Ki, ya yoxdur. Okay. Mən ki, heç vaxt müəyyən danışarlar. Yalnız mənim mühit yoxlamaq edək. Bu sizin ətraf mühit yoxlamaq bilər olan bir əmr edir. Yaxşı köhnə REDAKTORU, biz əvvəl gördüm, bir var. O nə edir? Burada biz bir backquote ifadə var. Bu C-shell saxla. Belə ki, printenv REDAKTORU bizə REDAKTORU bir dəyər verəcək. Bu vi var. Və sonra dəyişən a, set komanda ki, dəyəri müəyyən edəcək. Mən echo $ a əgər Belə ki, indi mən vi almaq. Bu olduqca faydalı görünmür. Lakin, həqiqətən bir məqsəd yoxdur. Biz bir dəyişən bir shell dəyişən və ya ətraf mühit dəyişən olub bilmirəm ildən dollar işarəsi qiymətləndirmə sintaksis istifadə edərək, biz printenv istifadə edə bilərsiniz bir mühit dəyişən ki, əmin olun. Bir shell dəyişən redaktoru var idi Belə ki, bu kazanılmış olmazdılar. Bu yalnız mühit dəyişən ilə işləyir. Bir shell dəyişən idi və mən onun dəyəri istəyirdi, Mən bunu bəzi digər yol tapmaq üçün var ediyorum. Bunu etmək üçün bir yol dəsti və boru etməklə olardı. Bu metacharacters, xüsusi simvol biridir. Bu başqa bir şey set çıxış göndərir. Biz orada tapa bilər nə görmək edək. Heç bir şey. Okay. Yalnız bütün birlikdə orada nə görmək edək. Bu echo_style, mən əvvəl qeyd biri idi. Okay, bunu edək. Mən echo_style, əvvəl qeyd saxla echo komanda davam edəcək yolu müəyyən edir. bsd Berkeley Standard Dağıtım dayanır. Bu 1970-dən Berkeley Unix edir. Bu çalıştırabilirsiniz əks-səda ki yollarından biri var. TC-shell ki, dəyəri echo_style qurulması echo yol davranmaq səbəb olacaq. Belə ki, yoxdur müəyyən lakin müəyyən yalnız shell dəyişənlər olur. Bu shell dəyişən deyil REDAKTORU tapmaq deyil. Heç bir şey. Belə ki, onları fərqləndirən bir yoldur. Amma var ki, belə bir qəribə komanda vasitəsilə getmək üçün shell dəyişənlərin və ya ətraf mühit dəyişənlər ayırmaq üçün bəzi məqsədlər üçün C-shell mümkün təbiətin cür göstərir. Və indi, son və bəlkə, ən azı, bu adam pages edir. Bildiyiniz kim, o, insan dərslik üçün komanda qısa. Bu mərmi üçün adam pages oxumaq çətindir. Onlar çox uzun istəyirik. Onlar çətin aradığınız nə tapmaq üçün edə bilər ki, bir şəkildə təşkil edirik. Belə bir məqsədi ilə bir şey axtarır əgər, ki, məqsəd bir shell dəyişən və ya başqa bir şey, əgər bilmirəm bilər belə ki, burada onu axtarmaq üçün bilmirəm bilər. Siz müxtəlif strings üçün baxa bilərsiniz, ancaq strings tez-tez təkrarlanır. Belə ki, ümumiyyətlə oxumaq çətindir. Biz yalnız eval komanda tapmaq üçün bir az əvvəl TC-shell man səhifəsində baxdı. Bəzi şeylər daha sürətli getmək. Bir yanaşma bir string axtarmaq üçün. Siz çağrı cihazı istifadə edə bilərsiniz. Çağrı bir çağrı cihazı əməliyyat daxilində əmr və ya bir string axtarmaq üçün çizgi var. Default Man az və ya çox ola, ya pagers istifadə edəcək. Siz ilə tanış değilseniz mən bilmirəm, lakin o bit ilə faylları az göstərmək olar. Mən biz burada var bu xüsusi faylları keçirmək üçün az istifadə etdik. Siz daxili axtarış edə bilərsiniz. Siz müxtəlif axtarış strings istifadə edərək, cəhd edə bilərsiniz. Həmçinin müxtəlif əməliyyat sistemləri man pages eyni olmaya bilər. Onlar CSH və Tcsh üçün ayrı-ayrı pages ola bilər. Onlar Mac deyil, lakin bu ayrı-ayrı əmrləri əgər onlar ola bilər. Sh həqiqətən Bash zəng deyilsə, yəqin ki, bir ayrı adam səhifə olacaq. Bəzi sistemləri yalnız C-shell daxili əmrləri üçün ayrı-ayrı man pages var. Bəzən daxili əmr təsviri oxumaq istəyirsinizsə ki, yol da var, əks-səda kimi, siz echo ki komanda adam səhifə oxumaq lazımdır bir daxili komanda kimi iş necə müəyyən etmək üçün Siz daxili komanda zəng deyilik olsa belə. Ki, ümumiyyətlə, əməliyyat sisteminin bir günah var, mərmi üçün deyil, Bu mərmi üçün xüsusi adam pages, olduqca uzun olmasına baxmayaraq qismən çünki onlar müsbət ola bilər, onlara faydalı funksiyalar ekledik. Okay. Hər hansı bir sualınız var? Siz gətirmək istədiyiniz mövzular? Burada müvafiq bir şey? Bəli, bu bütün söhbət çox gözəl oldu. Mən sizə bu seminar həyata bir şey var ümid ki, gələcək fəaliyyətində sizin üçün faydalı olacaq. [CS50.TV]