1 00:00:00,000 --> 00:00:02,320 >> [Seminár - Unix Mušle, prostredie] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [To je CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Dnešná téma je unixový shell. 5 00:00:12,770 --> 00:00:20,600 Som Douglas Kline, expert, alebo aspoň rozumne príslušný užívateľ, škrupiny. 6 00:00:20,600 --> 00:00:25,280 Shell je rozhranie pre užívateľa na operačnom systéme počítača. 7 00:00:25,280 --> 00:00:29,580 Názov je zavádzajúci, pretože, na rozdiel od shellu zvieraťa, 8 00:00:29,580 --> 00:00:34,890 , Ktorá je tvrdá a ochranné, počítač shell umožňuje komunikáciu. 9 00:00:34,890 --> 00:00:39,120 Takže porézna membrána by asi bolo lepšie metafora. 10 00:00:39,120 --> 00:00:44,500 >> Pôvodné Shell pre Unix je shell Bourne. 11 00:00:44,500 --> 00:00:46,450 Bourne sa píše B-O-u-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne bol jedným z pôvodných autorov Unix, 13 00:00:49,770 --> 00:00:51,700 a tak shell je pomenovaný po ňom. 14 00:00:51,700 --> 00:00:54,850 Názov tejto nádrži ako príkazu je jednoducho sh. 15 00:00:54,850 --> 00:00:57,400 To je príkaz, ktorý možno vykonať. 16 00:00:57,400 --> 00:01:00,810 Shell sa spustí pri prihlásení. 17 00:01:00,810 --> 00:01:04,459 Keď sa prihlásite k počítaču, shell len spustí za vás, 18 00:01:04,459 --> 00:01:06,820 a to je to, čo sa vaše príkazy. 19 00:01:06,820 --> 00:01:09,790 Je možné začať inokedy tiež. 20 00:01:09,790 --> 00:01:16,780 Ak máte vyvolať okno s žiadnym iným označením, bude to spustiť shell pre vás. 21 00:01:16,780 --> 00:01:20,450 To je, ako to je, že môžete ísť k oknu a začnite písať príkazy 22 00:01:20,450 --> 00:01:23,960 a tak ďalej, že aj keď ste sa prihlásiť do tohto okna. 23 00:01:23,960 --> 00:01:26,670 Navyše, ak si vzdialené prihlásenie, 24 00:01:26,670 --> 00:01:30,250 potom to začne shell na vzdialenom počítači. 25 00:01:30,250 --> 00:01:44,310 A to je možné spúšťať príkazy bez interaktívnym shellu. 26 00:01:44,310 --> 00:01:48,990 To môže znamenať priamo vo Vašom súčasnom prevádzky, 27 00:01:48,990 --> 00:01:50,700 a to môže tiež znamenať diaľkové ovládanie. 28 00:01:50,700 --> 00:01:52,900 Dalo by sa poslať príkaz k inému počítaču, 29 00:01:52,900 --> 00:01:55,460 ktorý zahŕňa spustenie shellu tam. 30 00:01:55,460 --> 00:01:57,760 V skutočnosti, že musí obsahovať zakladanie shell tam 31 00:01:57,760 --> 00:02:01,740 aj keď to nie je váš konečný účel. 32 00:02:05,310 --> 00:02:12,350 Keď sa niečo začne takto, to nemusí nutne začať nový shell. 33 00:02:12,350 --> 00:02:17,430 Ak máte vychovávať nové okno, je možné povedať, že, aby sa editor 34 00:02:17,430 --> 00:02:18,940 alebo nejaký iný príkaz. 35 00:02:18,940 --> 00:02:20,560 V tomto prípade, editor bude začínať od nuly. 36 00:02:20,560 --> 00:02:22,930 Keď editor skončí, skončí okno. 37 00:02:22,930 --> 00:02:24,620 To je trochu nezvyčajné, ale to môže byť vykonané. 38 00:02:24,620 --> 00:02:27,140 V týchto prípadoch nebude shell. 39 00:02:27,140 --> 00:02:31,890 Takže to nie je nevyhnutne pravda, že okno alebo niektoré z týchto aplikácií prinesie do shellu. 40 00:02:31,890 --> 00:02:34,030 >> Shell analyzuje príkazy. 41 00:02:34,030 --> 00:02:40,900 Analýze znamená identifikáciu jednotlivých prvkov a ich klasifikáciu. 42 00:02:40,900 --> 00:02:43,470 V rámci príkazu, kompletný reťazec, ktorý zadáte, 43 00:02:43,470 --> 00:02:47,310 tam bude jeden alebo viac jednotlivé príkazy, ktoré majú byť vykonané. 44 00:02:47,310 --> 00:02:50,050 Ostatné prvky môžu byť argumenty. 45 00:02:50,050 --> 00:02:55,020 Tam môže byť tiež špeciálne znaky, ktoré ovplyvňujú výkon príkazu. 46 00:02:55,020 --> 00:02:59,710 Môžu posielať výstup inam než na obrazovke 47 00:02:59,710 --> 00:03:01,750 v prípade, že príkaz by zvyčajne odoslať ju na obrazovke. 48 00:03:01,750 --> 00:03:04,390 Je možné presmerovať vstup, to môže robiť iné veci tiež. 49 00:03:04,390 --> 00:03:08,120 Existujú rôzne iné symboly, znaky, a tak ďalej. 50 00:03:08,120 --> 00:03:13,600 Syntaktická analýza zahŕňa detekciu a interpretáciu tie veci. 51 00:03:13,600 --> 00:03:19,560 >> Teraz, ak nie sú k dispozícii žiadne ďalšie otázky, ktoré je skôr pravdepodobné, pretože tam nie sú viac ľudí, 52 00:03:19,560 --> 00:03:24,620 pôjdeme na moje ďalšie stránky tu. 53 00:03:24,620 --> 00:03:29,170 >> Som povedal skôr, že Bourne shell je predvolený shell. 54 00:03:29,170 --> 00:03:31,550 Tam sú iní. 55 00:03:31,550 --> 00:03:34,520 Jedným z nich je C-shell. Príkaz je csh. 56 00:03:34,520 --> 00:03:36,830 Názov C-shell je len hra so slovami. 57 00:03:36,830 --> 00:03:41,260 Tento shell bol predstavený s Berkeley Unix v polovici roka 1970. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix bol významnou udalosťou vo vývoji Unixu. 59 00:03:44,830 --> 00:03:48,770 Bola to obrovská revolúcia a vrátane zavedenia tohto shellu. 60 00:03:48,770 --> 00:03:50,790 Dôvodom pre túto hru so slovami, C-shell, 61 00:03:50,790 --> 00:03:56,490 je, že C-shell má niektoré vlastnosti v ňom, ktoré sa podobajú jazyka C, 62 00:03:56,490 --> 00:03:59,740 ktoré Bourne shell nemá - 63 00:03:59,740 --> 00:04:02,140 alebo to nemal v tej dobe. 64 00:04:02,140 --> 00:04:05,190 K dispozícii je tiež TC-shell. 65 00:04:05,190 --> 00:04:07,360 To je nadmnožinou C-shell. 66 00:04:07,360 --> 00:04:11,470 To má ďalšie funkcie, z ktorých mnohé sú užitočné pre interaktívne použitie, 67 00:04:11,470 --> 00:04:16,050 ako je napríklad pripomínajúce príkazy v mechanizme histórie, 68 00:04:16,050 --> 00:04:18,459 ktoré budem popisovať niečo neskôr - 69 00:04:18,459 --> 00:04:23,120 jednoduchým spôsobom, modeled po editore. 70 00:04:23,120 --> 00:04:29,170 Má tiež viazanie, ktoré vám umožní zviazať krátky reťazec kľúče na dlhšiu príkazu. 71 00:04:29,170 --> 00:04:31,440 Nebudeme sa dostať do toho dnes. 72 00:04:31,440 --> 00:04:33,650 To má niektoré funkcie, ktoré sú užitočné pre programovanie. 73 00:04:33,650 --> 00:04:37,020 Avšak, C-shell nie je často používaný pre shell programovania. 74 00:04:37,020 --> 00:04:39,080 Programy Shell, ak ste už nevedeli, 75 00:04:39,080 --> 00:04:41,690 sú programy, ktoré sa skladajú z vlastností shellu. 76 00:04:41,690 --> 00:04:43,220 Dalo by sa spustiť to ako programy. 77 00:04:43,220 --> 00:04:46,760 Môžete napísať veľa príkazov shellu do súboru a spustiť súbor. 78 00:04:46,760 --> 00:04:49,760 Nemusíte ho skompilovať. To je interpretačné jazyk. 79 00:04:49,760 --> 00:04:57,320 Frázy C-shell je teraz nejasný, pretože by mohol odkazovať len na pôvodného C-shellu, csh, 80 00:04:57,320 --> 00:05:01,200 alebo na všetkých C-škrupiny, vrátane tcsh. Je to trochu nejasné. 81 00:05:01,200 --> 00:05:08,250 >> Neskôr shell je shell Korn, ksh, pomenovaný po programátor, Korn. 82 00:05:08,250 --> 00:05:14,160 Tento shell pokúšal začleniť do 1 shellu 83 00:05:14,160 --> 00:05:16,960 výhody C-shell pre interaktívne použitie 84 00:05:16,960 --> 00:05:19,230 a Bourne shell pre programovanie. 85 00:05:19,230 --> 00:05:25,440 To bolo použité ako interaktívny shell niektorými ľuďmi - minoritné. 86 00:05:25,440 --> 00:05:32,050 Neskôr však došlo k ďalšiemu predstavenie, Bash shell, bash, 87 00:05:32,050 --> 00:05:35,290 opäť hra so slovami, Bourne-znovu shell. 88 00:05:35,290 --> 00:05:43,830 Je to rozšírenie plášťa Bourne. Korn shell je tiež. Obaja z nich sú. 89 00:05:43,830 --> 00:05:48,100 Má rovnaké ciele Korn o zlúčenie C-shell je 90 00:05:48,100 --> 00:05:50,980 a výhody Bourne Shell v roku 1 škrupine. 91 00:05:50,980 --> 00:05:56,810 Mnoho vylepšení z Korn shellu sú tiež zahrnuté v Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, má však viac, a je preto vhodnejšie. 93 00:06:00,710 --> 00:06:05,180 Bourne-znovu shell a Korn shell sa nazýva Bourne typu škrupiny 94 00:06:05,180 --> 00:06:07,730 pretože obsahujú vlastnosti Bourne Shellu, 95 00:06:07,730 --> 00:06:11,180 ktoré sú v rozpore v niektorých ohľadoch s C-škrupiny. 96 00:06:11,180 --> 00:06:15,520 Existujú aj iné škrupiny okrem tých, niektoré určené pre obmedzené použitie, 97 00:06:15,520 --> 00:06:20,670 možná len na niektorých príkazov, možno špecializované účely, nie je často používaný. 98 00:06:20,670 --> 00:06:24,240 >> Dobre. Ďalšia položka tu. 99 00:06:31,300 --> 00:06:38,970 Bash shell stalo sa spojené s rôznymi formami Linuxu. 100 00:06:38,970 --> 00:06:41,550 Nie som si istý, či je to pravda, každej forme. 101 00:06:41,550 --> 00:06:43,280 Existuje mnoho foriem tam, a ja som nepoužil všetky, 102 00:06:43,280 --> 00:06:46,870 ale tie, ktoré som použil to stalo s ním spojené. 103 00:06:46,870 --> 00:06:49,670 Takže pokiaľ viem, neexistuje nič, čo Bash 104 00:06:49,670 --> 00:06:52,210 čo je viac, kompatibilný s operačným systémom Linux 105 00:06:52,210 --> 00:06:55,020 než akékoľvek iné kombinácie plášťa a operačný systém. 106 00:06:55,020 --> 00:06:59,690 Myslím, že to asi len odráža sklony programátorov. 107 00:06:59,690 --> 00:07:07,500 To, že má byť spájaná s operačným systémom Linux je ďalší dôvod, prečo radšej Bash na KSH 108 00:07:07,500 --> 00:07:11,820 od veci, je pravdepodobné, že bude v ňom napísané, a je pravdepodobné, že sa šíri. 109 00:07:11,820 --> 00:07:15,410 Dám vám ďalšie dôvody, ktoré neskôr. 110 00:07:15,410 --> 00:07:21,330 Bourne shell skripty by mali prebiehať pod Korn shellu alebo Bash. 111 00:07:21,330 --> 00:07:22,650 Ak máte napísať niečo pre Bourne shellu, 112 00:07:22,650 --> 00:07:26,180 môžete pravdepodobne spustiť pod ksh alebo bash. 113 00:07:26,180 --> 00:07:30,610 Korn shell skriptov bude pravdepodobne spustený pod Bash, ale nemôžem zaručiť, že. 114 00:07:30,610 --> 00:07:36,040 Neskôr tu na, C-shell skripty by mali prebiehať v rámci TC-shell. 115 00:07:38,850 --> 00:07:41,690 C-shell bol vlastne nikdy vo veľkej miere používajú pre skriptovanie 116 00:07:41,690 --> 00:07:48,110 od Bourne shell a neskôr Bourne typu škrupiny boli vhodnejšie na tento účel. 117 00:07:48,110 --> 00:07:50,620 Takže to naozaj nie je tak dôležité. 118 00:07:50,620 --> 00:07:53,480 Existuje pomerne veľa Bourne shell skripty, ktoré boli napísané dávno, 119 00:07:53,480 --> 00:07:56,860 pred Korn shellu alebo Bourne-znovu shell boli zavedené. 120 00:07:56,860 --> 00:07:59,300 Tí, ktorí sú ešte v použití, ktorý je súčasťou operačných systémov, 121 00:07:59,300 --> 00:08:01,590 a tak zistíte, je, ak sa pozriete do operačného systému 122 00:08:01,590 --> 00:08:03,760 alebo niektoré staré programové balíčky. 123 00:08:03,760 --> 00:08:12,840 >> Bash je do istej miery stáva akási lingua franca operačných systémov. 124 00:08:12,840 --> 00:08:17,580 Je to už bola rozšírená na Windows a VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, v prípade, že neviete, je proprietárny operačný systém 126 00:08:20,440 --> 00:08:25,480 Digital Equipment Corporation, ktorý je ešte v použití, a to predovšetkým v zákulisí. 127 00:08:25,480 --> 00:08:29,250 A ak to bude beh na niekoľkých rôznych operačných systémov, 128 00:08:29,250 --> 00:08:31,110 pravdepodobné, že ľudia majú tendenciu sa posúvať za to. 129 00:08:31,110 --> 00:08:33,840 Ale tento vývoj je pomerne nedávny. 130 00:08:33,840 --> 00:08:39,490 Je to len začiatok, takže nemôžem predvídať, či to bude dopadať byť naozaj ten druh lingua franca. 131 00:08:39,490 --> 00:08:43,539 Tiež preto, že cestami súborov a knižníc sa líšia 132 00:08:43,539 --> 00:08:46,210 medzi rôznymi operačnými systémami, 133 00:08:46,210 --> 00:08:50,250 nemusíte byť schopní napísať bash skript na jednom operačnom systéme 134 00:08:50,250 --> 00:08:51,840 a spustite ho na iný. 135 00:08:51,840 --> 00:08:54,440 Mali by ste byť schopní sa pohybovať medzi rôznymi Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Operačné systémy Mac OS, ale nie nevyhnutne na Windows alebo VMS. 137 00:08:59,020 --> 00:09:01,390 Možno budete musieť zmeniť popis súboru názov cesty, 138 00:09:01,390 --> 00:09:03,180 a niektoré knižnice sa môže líšiť, 139 00:09:03,180 --> 00:09:05,230 ktoré môžu ovplyvniť spôsob, akým niektoré príkazy pracovať 140 00:09:05,230 --> 00:09:09,730 alebo ako spracovať argumenty a podobne. 141 00:09:09,730 --> 00:09:19,230 Okrem toho, ďalšie opatrnosť je, že neexistuje žiadna záruka 142 00:09:19,230 --> 00:09:23,570 že všetky rôzne mušle som sa už zmienil - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn shell, Bourne-znovu shell - bude k dispozícii v každom Unixu 144 00:09:29,880 --> 00:09:33,750 alebo Linux alebo Mac OS počítača. 145 00:09:33,750 --> 00:09:35,620 Oni proste nemusí byť tam. 146 00:09:35,620 --> 00:09:38,300 To je jeden z upozornenia tu. 147 00:09:38,300 --> 00:09:41,490 Je to nešťastné obmedzenia tu, pretože ste chceli veci pracovať všade, 148 00:09:41,490 --> 00:09:44,380 ale bohužiaľ, môžete sa spoľahnúť na to. 149 00:09:44,380 --> 00:09:47,230 >> Dobre. Ďalší, kto tu. 150 00:09:50,280 --> 00:09:54,370 Povedzme, že chcete napísať skript, 151 00:09:54,370 --> 00:09:57,170 Program sa skladá z príkazov shellu. 152 00:09:57,170 --> 00:10:01,200 Môžete písať svoje príkazy, dať ich do súboru a spustiť súbor. 153 00:10:01,200 --> 00:10:04,230 Čo keď chcete zahrnúť argumenty? 154 00:10:04,230 --> 00:10:09,650 V prípade škrupinových operácií, argumenty sa nazývajú parametre a pozičné parametre 155 00:10:09,650 --> 00:10:15,940 a oni budú volány znak dolára a číslice, $ 1, 2 doláre. 156 00:10:15,940 --> 00:10:27,000 Takže v prípade, že skript má toto meno, môj prvý argument by mohol byť argumentom 1 157 00:10:27,000 --> 00:10:30,540 a môj druhý by mohol byť argument, 2, 158 00:10:30,540 --> 00:10:34,110 a vo vnútri môjho scenára, keď chcem, aby sa na tieto veci - 159 00:10:34,110 --> 00:10:36,810 poďme vymazať to, pretože som naozaj chystá spustiť - 160 00:10:36,810 --> 00:10:42,160 v mojom skriptu budem mať $ 1 odkazujú na arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, ktorý príde na to, že spôsob, arg2. 162 00:10:45,890 --> 00:10:50,080 Takže tie symboly sú k dispozícii odkazovať na argumenty, 163 00:10:50,080 --> 00:10:52,390 a tie sa vzťahujú na všetky granáty. 164 00:10:52,390 --> 00:10:56,520 Okrem toho existujú ďalšie znaky. 165 00:10:56,520 --> 00:11:01,700 $ * Sa vzťahuje na celý zoznamu argumentov, všetky z nich. 166 00:11:01,700 --> 00:11:05,390 $ # Sa odkazuje na počet argumentov. 167 00:11:05,390 --> 00:11:07,910 Opäť platí, že to platí pre všetky škrupiny. 168 00:11:07,910 --> 00:11:15,540 Tieto symboly * a #, môže byť použitý s týmito významy v iných miestach tiež. 169 00:11:15,540 --> 00:11:17,940 Nebudeme sa dostať do toho. 170 00:11:17,940 --> 00:11:20,460 >> Shell špecifikátor riadok. Čo to je? 171 00:11:20,460 --> 00:11:27,760 Povedzme, že ste napísali scenár a je to pre konkrétny shell a chcete ho spustiť. 172 00:11:27,760 --> 00:11:33,500 Ako viete, čo shell váš operačný systém bude používať na spustenie skriptu? 173 00:11:33,500 --> 00:11:37,230 Na jednom mieste, kde by mohol predpokladať, že by ho spustiť v Bourne shellu 174 00:11:37,230 --> 00:11:39,440 ak ste nepovedal inak, 175 00:11:39,440 --> 00:11:41,730 ale ľudia nie sú písanie skriptov v Bourne shell, ktorý už toľko 176 00:11:41,730 --> 00:11:43,750 a nemôžete ani spoliehať na to už. 177 00:11:43,750 --> 00:11:48,740 Takže tu máme shell špecifikátor linku tu. 178 00:11:48,740 --> 00:11:52,450 To určuje Bash. 179 00:11:52,450 --> 00:11:56,750 Všimnite si, že to určuje ju v cestu k priečinku, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Ak počítač má Bash shell, ale nie v adresári bin, / bin, to nebude fungovať. 181 00:12:02,870 --> 00:12:06,870 To je ďalší kvalifikátor, ďalšie opatrnosť tu. 182 00:12:06,870 --> 00:12:09,500 Krížik je komentár linka charakter. 183 00:12:09,500 --> 00:12:12,300 To platí pre všetky granáty. 184 00:12:12,300 --> 00:12:18,610 Najmä prípad, #! na začiatku skriptu, je zvláštny prípad. 185 00:12:18,610 --> 00:12:23,410 To určuje shell, v ktorom je skript spustený. 186 00:12:23,410 --> 00:12:30,230 Ako som hovoril, to nemusí byť rovnaké miesto / bin. 187 00:12:30,230 --> 00:12:34,880 Okrem toho je tu ešte jedna vec tu. 188 00:12:34,880 --> 00:12:41,250 Ak stačí použiť znak libry bez výkričníkom a cestu k priečinku, 189 00:12:41,250 --> 00:12:44,640 , Že by malo byť uvedené C-shell. 190 00:12:44,640 --> 00:12:48,300 Avšak, ja neodporúčam robiť to, pretože nie som schopný zaručiť 191 00:12:48,300 --> 00:12:49,750 že bude vždy fungovať. 192 00:12:49,750 --> 00:12:52,220 Ak chcete C-shell, že by bolo lepšie, aby to tak povedať. 193 00:12:52,220 --> 00:12:58,450 Potom je tu niečo, čo skôr mätúce tu. 194 00:12:58,450 --> 00:13:03,940 Ak používate shell Špecifikátor líniu, ako je / bin / bash 195 00:13:03,940 --> 00:13:07,070 a že shell nie je k dispozícii tam, 196 00:13:07,070 --> 00:13:10,680 tam žiadna taká vec ako / bin / bash na danom počítači, 197 00:13:10,680 --> 00:13:14,330 a to buď preto, že nemá Bash, alebo preto, že je v inom mieste, 198 00:13:14,330 --> 00:13:17,450 dostanete chybu oznamujúce, že skript, ktorý bežal neexistuje. 199 00:13:17,450 --> 00:13:21,510 A samozrejme váš skript existuje, takže chybové hlásenie je zavádzajúce. 200 00:13:21,510 --> 00:13:24,810 Dôvodom, že operačný systém vám dáva túto chybu 201 00:13:24,810 --> 00:13:28,370 alebo, presnejšie, že interaktívny shell, v ktorom je spustený dáva túto chybu, 202 00:13:28,370 --> 00:13:33,510 je, že sa hlási príkaz, ktorý ste použili, čo je názov skriptu. 203 00:13:33,510 --> 00:13:36,920 Tento príkaz efektívne nazýva shell menom skriptu. 204 00:13:36,920 --> 00:13:39,330 To je miesto, kde môžete dostať, že mätúce chybové hlásenie. 205 00:13:39,330 --> 00:13:42,980 Ďalším spôsobom, ako volať skript 206 00:13:42,980 --> 00:13:45,910 je zadaním shell na príkazovom riadku, ako je tu. 207 00:13:45,910 --> 00:13:52,510 To je príkaz. To hovorí, že beží Bash a potom spustiť svoj skript v bash. 208 00:13:52,510 --> 00:13:55,680 To bude mať prednosť pred Špecifikátor línie, 209 00:13:55,680 --> 00:14:02,090 a to má funkciu umožňuje stanoviť rôznu cestami. 210 00:14:02,090 --> 00:14:04,840 Ak ste práve dať príkaz, bude operačný systém hľadať pre tento príkaz 211 00:14:04,840 --> 00:14:06,410 na rôznych miestach. 212 00:14:06,410 --> 00:14:08,820 Ak je k dispozícii, malo by to nájsť. 213 00:14:08,820 --> 00:14:12,290 Počítač nájde Bash všade tam, kde je umiestnený, a spustite ho, 214 00:14:12,290 --> 00:14:15,470 takže nemusíte potom mať obavy o tom, kde ich nájde. 215 00:14:15,470 --> 00:14:17,360 Existuje prípadne ďalšie otázky tu, 216 00:14:17,360 --> 00:14:20,830 ako v prípade, že je viac než 1 Bash, čo je možné, aj keď nepravdepodobné. 217 00:14:20,830 --> 00:14:23,540 Takže to je ďalší spôsob, ako sa vysporiadať s týmito vecami. 218 00:14:23,540 --> 00:14:30,480 Špecifikátor linky môžete volať akúkoľvek shell. 219 00:14:30,480 --> 00:14:34,480 Môžu tiež volať iné než škrupiny veci. 220 00:14:34,480 --> 00:14:37,940 Príklady mám tu sed, čo je prúd editor; 221 00:14:37,940 --> 00:14:39,900 awk, čo je jazyk pre spracovanie vzor; 222 00:14:39,900 --> 00:14:43,680 a perl, veľmi vysoko rozvinutý skriptovací jazyk. 223 00:14:43,680 --> 00:14:47,570 Ak dáte špecifikátor líniu označujúci jeden z týchto programov na začiatku, 224 00:14:47,570 --> 00:14:51,270 pôjde priamo do tohto programu skôr než spustenie shellu. 225 00:14:51,270 --> 00:14:54,030 Tieto programy majú medze svojich schopností. 226 00:14:54,030 --> 00:14:58,790 Perl je veľmi schopný. Sed je editor. To môže robiť než len úpravou veci. 227 00:14:58,790 --> 00:15:03,300 Ale to môže byť ťažké naprogramovať, že. 228 00:15:03,300 --> 00:15:09,670 Okrem toho, odovzdávanie argumenty a tak sa skript je buď nemožná, alebo mätúce. 229 00:15:09,670 --> 00:15:15,030 Takže v týchto prípadoch, s awk a sed, to je, aspoň podľa mojich skúseností, 230 00:15:15,030 --> 00:15:18,910 vhodnejšie napísať shell skript a volanie awk alebo sed z shell skript 231 00:15:18,910 --> 00:15:24,660 skôr než volanie awk alebo sed ako skript špecifikátor riadku. 232 00:15:24,660 --> 00:15:26,980 Perl je vysoko diverzifikovaná jazyk, ako som povedal. 233 00:15:26,980 --> 00:15:30,050 Nemožno spustiť interaktívne príkazy v perlu, 234 00:15:30,050 --> 00:15:32,660 čo znamená, že nemôžete testovať časti skriptov, ktoré ste rozvojovej 235 00:15:32,660 --> 00:15:33,970 tým, že je interaktívne. 236 00:15:33,970 --> 00:15:36,160 Avšak, je to veľmi schopný jazyk 237 00:15:36,160 --> 00:15:40,960 a sa vyvinul do veľmi široko používaný nástroj. 238 00:15:40,960 --> 00:15:45,720 To je len trochu v zátvorkách poznámku o špecifikátor liniek. 239 00:15:45,720 --> 00:15:50,610 >> Vo všetkých alebo väčšiny foriem Linux - opäť, nemôžem byť istý, že je všetko - 240 00:15:50,610 --> 00:15:57,900 a Mac OS, ak ste typ csh dostanete tcsh, 241 00:15:57,900 --> 00:16:00,570 a ak zadáte sh dostanete bash. 242 00:16:00,570 --> 00:16:05,020 Snažili sa, aby vám tie pokročilejšie verzie týchto granátov, 243 00:16:05,020 --> 00:16:07,940 ale to môže byť mätúce. 244 00:16:07,940 --> 00:16:16,720 Ak máte napísať skript pomocou tcsh alebo Bash je k dispozícii pri volaní csh alebo sh 245 00:16:16,720 --> 00:16:22,230 a pokúste sa ho spustiť v počítači, ktorý nemá tcsh alebo Bash, 246 00:16:22,230 --> 00:16:25,050 môžete získať nejaké chyby, ak existujú príkazy tam 247 00:16:25,050 --> 00:16:27,970 ktoré tieto granáty neuznávajú. 248 00:16:27,970 --> 00:16:34,120 Okrem toho, môžete si vyvolať shell na lokálnom počítači 249 00:16:34,120 --> 00:16:37,700 volanie ako sh alebo csh a potom sa dostať na pokročilejšie shelly. 250 00:16:37,700 --> 00:16:41,440 Nesmiete ani myslieť na to, že ste pomocou viac Advanced Shell. 251 00:16:41,440 --> 00:16:45,670 Tak to je potenciálne úskalia. 252 00:16:45,670 --> 00:16:50,290 Ako je dokázané, že ak zadáte sh vám Bash, 253 00:16:50,290 --> 00:16:55,580 Ak zadáte csh dostanete tsch? 254 00:16:55,580 --> 00:16:59,940 Existujú veci, ktoré v týchto počítačoch volal odkazy 255 00:16:59,940 --> 00:17:06,460 ktoré možno pripojiť k súboru mená sa odkazovať na rovnakú vec. 256 00:17:06,460 --> 00:17:12,180 To môže byť buď 2 názvy pre rovnaký alebo iný súbor, ktorého cieľom je poukázať na iný súbor. 257 00:17:12,180 --> 00:17:17,550 Sú to tzv pevné a symbolické odkazy. Nebudeme ísť do toho už dnes. 258 00:17:17,550 --> 00:17:21,619 Tam môže byť tiež samostatné súbory - 1 súbor sh, 1 súbor Bash - 259 00:17:21,619 --> 00:17:23,880 ale obaja beží Bash. 260 00:17:23,880 --> 00:17:29,350 Potom je tu ešte jeden kvalifikátor tu. 261 00:17:29,350 --> 00:17:42,640 Ak voláte jeden z týchto mušlí jedno meno, 262 00:17:42,640 --> 00:17:46,640 by ste si mohli myslieť by ste si rovnakú funkcionalitu ako volať to pod iným názvom. 263 00:17:46,640 --> 00:17:49,700 No, to vlastne nie je nevyhnutne pravda. 264 00:17:49,700 --> 00:17:55,020 Tieto príkazy môžete prezrieť na meno o ktorom sa hovorilo 265 00:17:55,020 --> 00:18:00,020 a môžu na základe tohto názvu, sa správajú odlišne. 266 00:18:00,020 --> 00:18:02,740 Tam môžu byť otázky sa snaží odpovedať štandardu. 267 00:18:02,740 --> 00:18:06,060 Niektorí z vás možno počuli o štandardu POSIX alebo iný, 268 00:18:06,060 --> 00:18:08,730 možno ďalšie funkcie. 269 00:18:08,730 --> 00:18:14,520 To môže byť vybraný niekedy argumenty príkazového riadku 270 00:18:14,520 --> 00:18:17,310 alebo nastavením premennej shellu. 271 00:18:17,310 --> 00:18:22,170 Volanie ako sh alebo bash, môže skutočne viesť k odlišnému vyhotoveniu 272 00:18:22,170 --> 00:18:25,300 aj keď je to rovnaký súbor, ktorý ste vykonávania. 273 00:18:25,300 --> 00:18:31,800 Ďalšia vec, aby zvážila, že aj keď iný počítač má tcsh alebo Bash, 274 00:18:31,800 --> 00:18:35,310 pokiaľ nie sú spojené, ako sú na lokálnom počítači 275 00:18:35,310 --> 00:18:37,990 Ak máte Linux alebo Mac OS lokálneho počítača, 276 00:18:37,990 --> 00:18:45,630 potom zase budete mať shell, ktorý vám volať sh alebo csh, a nie ten, ktorý by ste mohli dať prednosť. 277 00:18:50,430 --> 00:19:01,130 Aktuálne Bourne shell má vylepšenia menšie ako v Bash 278 00:19:01,130 --> 00:19:06,100 ale za tie, v pôvodnom Bourne shell. 279 00:19:06,100 --> 00:19:09,690 V dôsledku toho, aj aktuálne Bourne shell, sh, 280 00:19:09,690 --> 00:19:14,560 aj keď to nie je Bash, podobá sa jazyk C viac, než C-shell robí. 281 00:19:14,560 --> 00:19:20,460 To nebola pravda, keď bol C-shell najprv vytvoril, ale vyvinula týmto spôsobom. 282 00:19:20,460 --> 00:19:26,560 Môžete si všimnúť, tu, že všetky tieto mená shell s výnimkou Bourne shellu 283 00:19:26,560 --> 00:19:30,640 niečo pre indikáciu, ktoré shell sú - csh, bash - 284 00:19:30,640 --> 00:19:32,550 ale Bourne shell je len sh. 285 00:19:32,550 --> 00:19:34,910 Prečo? To bol pôvodný shell. 286 00:19:34,910 --> 00:19:37,770 Bolo to shell potom, nie shell, 287 00:19:37,770 --> 00:19:41,090 a od tej doby to bol shell, tam bol žiadny dôvod, aby ju odlíšil od iného shellu. 288 00:19:41,090 --> 00:19:45,030 Takže to je dôvod, prečo má tento názov a stále robí. 289 00:19:50,630 --> 00:19:58,990 >> Tento top je tu rad z databázy hesiel pre účet mám tam 290 00:19:58,990 --> 00:20:01,680 na inom počítači. 291 00:20:01,680 --> 00:20:08,300 Budem sa snažiť, aby sa to meno, takže môžete vidieť, že časť na konci, shell. 292 00:20:09,720 --> 00:20:15,450 Databáza heslo drží prihlasovacie vlastnosti pre všetkých užívateľov. 293 00:20:15,450 --> 00:20:20,330 Na začiatku je užívateľské meno, ktoré môžete vidieť posledné dve písmená bane teraz. 294 00:20:20,330 --> 00:20:23,970 Polia sú tu oddelené dvojbodkami. 295 00:20:23,970 --> 00:20:28,210 Posledné pole, ako môžete vidieť, je bin / tcsh, shell. 296 00:20:28,210 --> 00:20:30,230 To je shell špecifikátor. 297 00:20:30,230 --> 00:20:33,240 Je tu niečo zaujímavé tu. 298 00:20:33,240 --> 00:20:36,950 Keď Unix bol najprv vyvinutý, bol tam len jeden shell, 299 00:20:36,950 --> 00:20:38,350 takže tam nebol žiadny výber. 300 00:20:38,350 --> 00:20:45,570 Tak prečo sa im umožňujú poľa v databáze hesiel zadajte shell? 301 00:20:45,570 --> 00:20:47,920 Neviem, ale je to šťastie, že oni robili. 302 00:20:47,920 --> 00:20:52,030 Je to dosť ťažké, aby sa zmeny v databázovom formáte heslo 303 00:20:52,030 --> 00:20:54,420 pretože mnoho programov nájdete na jeho formát 304 00:20:54,420 --> 00:20:57,720 a bude musieť byť prepísaný. 305 00:20:57,720 --> 00:21:04,130 Je to vhodný alebo náhodné vývoj, že súčasťou tejto oblasti. 306 00:21:04,130 --> 00:21:12,780 Tento druh súboru heslo riadku sa používa na všetkých počítačoch Unix a Linux, takže ak viem. 307 00:21:12,780 --> 00:21:14,650 Mac má svoj vlastný systém. 308 00:21:14,650 --> 00:21:17,810 To má v skutočnosti súbor s heslami s linkami v tomto formáte, 309 00:21:17,810 --> 00:21:21,060 ale to nie je tam, kde sú definované užívateľské vlastnosti. 310 00:21:21,060 --> 00:21:24,200 Ďalšie vsunutá poznámka tam. 311 00:21:36,470 --> 00:21:46,020 >> Ak voláte shell, môžete volať ako sub-shell vašich existujúcich mušlí. 312 00:21:46,020 --> 00:21:50,480 Takže keď som sa ísť sem, poďme sa zbaviť týchto vecí. 313 00:21:50,480 --> 00:21:53,350 Tu som v C-shellu. 314 00:21:56,830 --> 00:22:01,200 To je veličina, ktorá presne identifikuje svoju škrupinu, 315 00:22:01,200 --> 00:22:04,300 v skutočnosti nie je vždy spoľahlivý spôsob, ako určiť, čo shell vediete, 316 00:22:04,300 --> 00:22:06,220 ale v tomto prípade to je. 317 00:22:06,220 --> 00:22:08,040 Čo keď som typ - 318 00:22:09,970 --> 00:22:12,470 Teraz som v Bash. 319 00:22:12,470 --> 00:22:19,540 Niektoré veci sa bude rovnaký. Je mi hovorí moje príkazy. 320 00:22:19,540 --> 00:22:24,500 Ak by som sa pozastaviť späť do môjho C-shell, LS, rovnako. Je to tak? 321 00:22:24,500 --> 00:22:28,890 fg, popredia, späť do môjho Bash shellu. 322 00:22:28,890 --> 00:22:38,290 pwd, aktuálny adresár, späť na C-shell. 323 00:22:38,290 --> 00:22:43,180 pwd, iný adresár - vlastne nie iný adresár, v tomto prípade. 324 00:22:43,180 --> 00:22:45,110 Je to rovnaký adresár. 325 00:22:45,110 --> 00:22:50,000 Povedzme, že chcem, aby tu zavolať príkaz: kde ls. 326 00:22:50,000 --> 00:22:52,140 Čo to bolo? 327 00:22:52,140 --> 00:22:53,670 To mi hovorí, kde príkaz ls, 328 00:22:53,670 --> 00:22:56,670 ten, ktorý mi dáva výpis adresára, sa nachádza v ls. 329 00:22:56,670 --> 00:23:01,460 Vráťme sa k Bash shellu. Skúsme to isté. 330 00:23:01,460 --> 00:23:05,830 Hmm, tam zaujímavé, kde: command not found. 331 00:23:05,830 --> 00:23:07,400 Prečo je to tak? 332 00:23:07,400 --> 00:23:11,570 Kde príkaz je postavený do C-shell. 333 00:23:11,570 --> 00:23:15,630 To nie je príkaz, ktorý má byť čítaný v pamäti niekde inde a popravený. 334 00:23:15,630 --> 00:23:20,310 C-shell spustí ho prenosom výkonu na časti vlastného kódu 335 00:23:20,310 --> 00:23:22,790 a to nie je v Bash shellu. 336 00:23:22,790 --> 00:23:25,710 Takže Bash, ktoré nemajú taký vstavaný príkaz, hľadá to, nenájde ju, 337 00:23:25,710 --> 00:23:27,720 a dostaneme chybu. 338 00:23:27,720 --> 00:23:32,290 Takže tam máme Bash shell beží pod C-shell, a hovoríme, že sub-shell. 339 00:23:32,290 --> 00:23:38,480 A práve v prípade, že ste zvedaví, Bash shell má svoj vlastný spôsob, ako lokalizovať príkazy. 340 00:23:38,480 --> 00:23:42,590 hodnotu hash odkazuje na skutočnosť, že môže byť vykonaná rýchlejšie, 341 00:23:42,590 --> 00:23:44,960 bolo nájdených viac rýchlo. 342 00:23:44,960 --> 00:23:48,610 To je jeden z vylepšení postavených v niektorej z týchto mušlí. 343 00:23:50,220 --> 00:23:54,200 >> Bourne typu škrupiny sú prednostné pre programovanie. 344 00:23:54,200 --> 00:23:57,300 Majú kontrolné štruktúry, ako sú slučky, podmienené príkazy, 345 00:23:57,300 --> 00:24:00,240 druh príkazov, ktoré môžete použiť v programovacích jazykoch ako C 346 00:24:00,240 --> 00:24:04,190 alebo čokoľvek iného jazyka. Možno, že ste programovanie v jazyku Java alebo čokoľvek iného. 347 00:24:04,190 --> 00:24:06,460 Mušle sú tie taky. 348 00:24:06,460 --> 00:24:11,790 V Bourne typu škrupiny, najmä Bash, viac 349 00:24:11,790 --> 00:24:15,730 a sú navrhnuté s väčšou flexibilitou. 350 00:24:15,730 --> 00:24:20,700 Bash shell má pole. Pôvodnej Bourne shell nie je. 351 00:24:20,700 --> 00:24:26,130 Takže to môže byť značne výhodný pre programovanie. 352 00:24:26,130 --> 00:24:29,810 C-shell vlastne robí má pole, ale nemá mnoho z týchto ďalších funkcií. 353 00:24:29,810 --> 00:24:33,450 V Bourne typu škrupiny budú vykonávať rýchlejšie 354 00:24:33,450 --> 00:24:36,520 v prípade, že nemajú vlastnosti určené pre interaktívne použitie. 355 00:24:36,520 --> 00:24:39,340 Môžete nahrať veci dole pre jeden účel, to načíta je dole k inému účelu. 356 00:24:39,340 --> 00:24:41,520 Tam je, že existuje trade-off. 357 00:24:41,520 --> 00:24:44,510 Tieto vlastnosti, ktoré sú určené pre interaktívne použitie 358 00:24:44,510 --> 00:24:46,920 naozaj malú alebo žiadnu použitie pre skriptovanie. 359 00:24:46,920 --> 00:24:52,160 Je možné použiť interaktívne sub-shell, rovnako ako ten, že som začal 360 00:24:52,160 --> 00:24:57,780 vyskúšať príkazy, ktoré chcete použiť v skripte. 361 00:24:57,780 --> 00:25:01,180 To je to, čo nemôžete urobiť s perl. Môžete to urobiť s granátmi. 362 00:25:01,180 --> 00:25:04,850 Dokonca aj štruktúry ako pre slučky a tak ďalej možno spustiť interaktívne. 363 00:25:04,850 --> 00:25:07,000 Sú užitočné pre občas interaktívne, 364 00:25:07,000 --> 00:25:10,180 ale viac pravdepodobné, že používate im rozvíjať skript. 365 00:25:15,690 --> 00:25:17,400 >> Aliasy. 366 00:25:17,400 --> 00:25:21,630 To bude asi C-shell. 367 00:25:23,270 --> 00:25:27,570 História mechanizmus, kde sa dostanete späť do skorších príkazov 368 00:25:27,570 --> 00:25:30,340 alebo ich časti, ktoré ste už spustili. 369 00:25:30,340 --> 00:25:33,680 Opäť platí, že o C-shell, shell Bourne a Korn shell majú tieto veci, 370 00:25:33,680 --> 00:25:35,620 ale nemienim sa dostať do nich. 371 00:25:35,620 --> 00:25:40,340 Takže tu sú niektoré užitočné aliasy, ktoré mám. 372 00:25:43,100 --> 00:25:44,880 Miesto písania ls - je to bežný príkaz - 373 00:25:44,880 --> 00:25:47,620 len typ L a ušetriť 1 znak. 374 00:25:47,620 --> 00:25:50,600 ls s rôznymi možnosťami, všetky tie práce. 375 00:25:50,600 --> 00:25:54,460 Všimnite si, že tieto definície majú úvodzovky okolo nich. 376 00:25:54,460 --> 00:25:57,520 V týchto prípadoch, úvodzovky nie sú nutné. 377 00:25:57,520 --> 00:26:00,100 Ak môžete definovať tie aliasy bez úvodzoviek, to by ešte fungovať. 378 00:26:00,100 --> 00:26:02,910 Sú odporúčané. 379 00:26:02,910 --> 00:26:04,900 Existujú situácie, v ktorých nie je možné použiť na ponuku 380 00:26:04,900 --> 00:26:08,050 pretože chcete, aby sa niečo stalo, ktorý citát by sa zabrániť. 381 00:26:08,050 --> 00:26:11,210 Niekedy môžete citovať časť definície, ale nie všetky z nich. 382 00:26:11,210 --> 00:26:17,010 Je tiež všeobecne odporúča používať apostrofy skôr než dvojité úvodzovky. 383 00:26:17,010 --> 00:26:19,750 Úvodzovky majú vplyv na definície premenných, 384 00:26:19,750 --> 00:26:22,950 najmä spôsobuje, že majú byť hodnotené, ako zastaviť. 385 00:26:22,950 --> 00:26:25,910 Prečo by sme sa zastaviť hodnotenie? 386 00:26:25,910 --> 00:26:28,710 A ako sa citácie urobiť pre nás? 387 00:26:28,710 --> 00:26:32,600 >> Tu je príkaz, ktorý ste mohli nájsť zaujímavé. 388 00:26:32,600 --> 00:26:35,470 "Ls g *" 389 00:26:35,470 --> 00:26:37,640 g *, ako asi viete, je zástupný výraz 390 00:26:37,640 --> 00:26:40,290 pre všetky názvy súborov začínajúcich g 391 00:26:40,290 --> 00:26:46,410 Keby som len napísať na príkaz ls g *, budem si zoznam všetkých tých mien v mojom aktuálnom adresári. 392 00:26:46,410 --> 00:26:50,870 Mám chcete definovať, že alias, ako je to tu s citáciami, 393 00:26:50,870 --> 00:26:56,990 to bude fungovať, že príkaz v aktuálnom adresári, kam to beží. 394 00:26:56,990 --> 00:27:01,250 Ale ak spustíte definíciu aliasu bez úvodzoviek, 395 00:27:01,250 --> 00:27:09,620 bude vyhodnocovať zástupný g * pri spustení tohto definujúce príkaz. 396 00:27:09,620 --> 00:27:14,400 Takže definícia aliasu bude ls nasleduje zoznam súborov v adresári 397 00:27:14,400 --> 00:27:16,310 v ktorom príkaz alias sa spustí, 398 00:27:16,310 --> 00:27:19,180 bez ohľadu na to, kde ste skutočne v úmysle spustiť príkaz. 399 00:27:19,180 --> 00:27:26,360 To nie je k ničomu, a jednoduché úvodzovky predchádzať vyhodnotenie hviezdičkou. 400 00:27:26,360 --> 00:27:30,780 Takže stačí dostať definície bytosť ls g *. 401 00:27:30,780 --> 00:27:35,510 Potom pri spustení aliasu, LGS, potom dá to von. 402 00:27:35,510 --> 00:27:40,490 Teraz nie sú žiadne citácie, a to bude vyhodnocovať hviezdičku pri spustení príkazu alias. 403 00:27:40,490 --> 00:27:43,900 Takže to je jedna vec. 404 00:27:43,900 --> 00:27:46,590 Úvodzovky bude mať ten rovnaký efekt tu, 405 00:27:46,590 --> 00:27:50,580 ale existujú aj iné prípady, keď dvojité úvodzovky nebude fungovať tak dobre. 406 00:27:50,580 --> 00:27:52,450 >> Tu je ešte jeden. 407 00:27:52,450 --> 00:27:54,270 Možno viete, príkaz grep. 408 00:27:54,270 --> 00:28:02,110 Príkaz grep môže byť použitý na kontrolu súboru riadky, ktoré majú niektoré reťazca. 409 00:28:02,110 --> 00:28:10,350 Takže poďme sem a budem opustiť moje Bourne shellu. 410 00:28:23,570 --> 00:28:25,450 Dobre. Tu je súbor. 411 00:28:25,450 --> 00:28:31,490 Povedzme, že je to grep abc reťazca. Tu to je. 412 00:28:31,490 --> 00:28:37,930 Ak sa mi grep zddd, som si nič. Dobre. 413 00:28:37,930 --> 00:28:40,960 Tak to nájde reťazec, hlási, že nenájde, nie je to nahlásiť. 414 00:28:40,960 --> 00:28:44,930 To výstupy ľubovoľný riadok, ktorý má tento reťazec na neho. 415 00:28:44,930 --> 00:28:49,080 Tam sú všetky druhy možností, ktoré tu môžete nájsť v dokumentácii. 416 00:28:49,080 --> 00:28:52,160 Tu je jeden spôsob, ako to urobiť. 417 00:28:52,160 --> 00:29:03,290 Čo o tejto jednej, alias grabc "grep abc"? 418 00:29:03,290 --> 00:29:09,000 To bude zahŕňať jeden argument, keď je definovaný alias. 419 00:29:09,000 --> 00:29:26,300 Takže ak som to urobiť tu, teraz keď to urobím grabc, 420 00:29:26,300 --> 00:29:30,620 Teraz alias obsahuje viac ako jednoduchým príkazom. To je tiež argument. 421 00:29:30,620 --> 00:29:32,190 Zatiaľ to funguje. 422 00:29:32,190 --> 00:29:38,590 Mám iný príkaz tu, túto, tak tie sú rôzne reťazce tam 423 00:29:38,590 --> 00:29:46,790 a ukázať, že to nie je nič, čo by tam, pretože to nezodpovedá. 424 00:29:46,790 --> 00:29:56,180 >> Čo keď budem chcieť zahrnúť do definície aliasu súbor, ktorý Idem hľadať 425 00:29:56,180 --> 00:30:02,970 a chcem dať ako argument alias reťazec, ktorý som hľadal? 426 00:30:02,970 --> 00:30:08,040 By som chcel povedať, abc ako argument k môjmu alias, 427 00:30:08,040 --> 00:30:10,870 ale alias už stanovený súbor. 428 00:30:10,870 --> 00:30:15,710 A to je miesto, kde tento výraz vypovedaciu 429 00:30:20,430 --> 00:30:25,270 Všimnite si, tu máme grep, rovnako ako predtým. 430 00:30:25,270 --> 00:30:28,130 Máme súbor tu, reťazca. 431 00:30:28,130 --> 00:30:35,610 \! ^, Trochu zvláštny výraz, myslím, ak ste ho ešte nevideli predtým. 432 00:30:35,610 --> 00:30:39,920 Výkričník je súčasťou histórie mechanizmu C-shell. 433 00:30:39,920 --> 00:30:45,220 To môže vyvolať predchádzajúcich príkazov, môže vyvolať argumenty týchto príkazov, a tak ďalej. 434 00:30:46,760 --> 00:31:01,570 Mechanizmus história sa používa ako súčasť aliasingu. 435 00:31:01,570 --> 00:31:07,390 Ak zadáte riadok po výkričník, bude odkazovať na tento riadok v zozname histórie, 436 00:31:07,390 --> 00:31:11,910 ktoré nebudeme sa dostať do teraz, pretože je to úplne iný tému. 437 00:31:11,910 --> 00:31:16,280 Je možné zadať časť linky. 438 00:31:16,280 --> 00:31:22,950 Takže! 03:02 bude druhý argument z príkazového číslo 3. 439 00:31:22,950 --> 00:31:30,430 Strieška tu v tomto výraze je skratka pre prvý argument. 440 00:31:30,430 --> 00:31:34,410 Ak nechcete, aby to označenie, ktoré príkazu máte na mysli, 441 00:31:34,410 --> 00:31:37,300 sa vzťahuje k bezprostredne predchádzajúci príkaz, 442 00:31:37,300 --> 00:31:41,990 a strieška je symbol pre prvý argument. 443 00:31:41,990 --> 00:31:46,820 Vzhľadom k tomu, že je strieška a nie číslo, nemusíte používať hrubého čreva, 444 00:31:46,820 --> 00:31:52,660 tak! ^ znamená, že prvý argument na predchádzajúci príkaz. 445 00:31:52,660 --> 00:31:55,020 Trochu poplietol tu. 446 00:31:55,020 --> 00:31:58,450 V tomto prípade, keď sa použijú ako definíciu aliasu, 447 00:31:58,450 --> 00:32:04,650 referencie histórie odkazuje na príkazy, v ktorých sa používa alias. 448 00:32:04,650 --> 00:32:08,470 Tak to sa vracia 1 príkaz ako operácia histórie, 449 00:32:08,470 --> 00:32:11,810 ale ako operácia alias odkazuje na príkaz, v ktorom by ste zadali, 450 00:32:11,810 --> 00:32:14,780 povedať, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Máme úvodzovky tu v ňom. Čo je spätné lomítko pre? 452 00:32:20,240 --> 00:32:30,810 V tomto prípade, rovnako ako kdekoľvek inde, nechceme spúšťať mechanizmus histórie 453 00:32:30,810 --> 00:32:33,680 pri definovaní alias. 454 00:32:33,680 --> 00:32:37,900 Ak by sme nemali spätné lomítko tam, shell by vytiahnuť v prvom argumente 455 00:32:37,900 --> 00:32:41,870 príkazu tesne predtým, než ho spustili tento alias príkazu, čo nechceme. 456 00:32:41,870 --> 00:32:47,520 Chceme, aby to bolo postavené v príkaze alias volať na argumente neskôr. 457 00:32:47,520 --> 00:32:53,550 Jednotlivé citácie neunikli výkričník, odkaz históriu. 458 00:32:53,550 --> 00:32:57,450 Možno viete, že výraz útek znamená zmeniť význam niečoho. 459 00:32:57,450 --> 00:33:00,260 V tomto prípade, to znamená, že sa niečo zastaviť od mať osobitný význam. 460 00:33:00,260 --> 00:33:03,030 Osobitný význam výkričník je história. 461 00:33:03,030 --> 00:33:05,790 Útek a nemá to zmysel. 462 00:33:05,790 --> 00:33:08,080 Citáty nerobte to, spätné lomítko robí. 463 00:33:08,080 --> 00:33:11,900 Takže sme vlastne pomocou 2 úrovní uniknúť tu. 464 00:33:23,500 --> 00:33:29,620 Chystám sa presunúť tento príkaz do iného okna, bez toho aby napísaním 465 00:33:29,620 --> 00:33:35,210 pomocou týchto editačných operácií, ktoré môžete nájsť užitočné. 466 00:33:40,620 --> 00:33:42,460 Niečo, čo tu ešte ukážem vám. 467 00:33:42,460 --> 00:33:46,730 Ak stačí zadať alias bez argumentov, to vám povie všetky svoje argumenty. 468 00:33:46,730 --> 00:33:48,640 To je banda aliasov už som tu mal 469 00:33:48,640 --> 00:33:53,400 okrem tých, ktoré som používal dnes. 470 00:33:53,400 --> 00:34:00,220 Ale keď som typ s názvom aliasu, to mi hovorí, čo to znamená. 471 00:34:00,220 --> 00:34:03,390 Všimnite si, že úvodzovky sú preč a spätné lomítko je preč. 472 00:34:03,390 --> 00:34:08,620 Tento reťazec je tu výsledkom tejto definície aliasu, 473 00:34:08,620 --> 00:34:12,199 a teraz to má len! ^ v ňom. 474 00:34:12,199 --> 00:34:19,150 To bude vyzerať v reťazcoch súborov pre čokoľvek. 475 00:34:19,150 --> 00:34:34,900 Takže ak som to grstrings_file reťazca, nechcel som, aby to nič hľadať tam, 476 00:34:34,900 --> 00:34:37,429 ale to vyzerá v reťazcoch. 477 00:34:37,429 --> 00:34:42,330 To nenašiel slovo reťazca v reťazci súborov, ale to sa nájsť abc. 478 00:34:42,330 --> 00:34:46,770 A to nenájde to. 479 00:34:46,770 --> 00:34:52,330 Tak tu dávame argument, ktorý zasiahne do definície aliasu, 480 00:34:52,330 --> 00:34:55,530 , Ktorá je vložená do neho. 481 00:34:55,530 --> 00:34:58,540 To je miesto, kde tento výraz pochádza. 482 00:34:58,540 --> 00:35:00,240 Môžete použiť viac ako jeden. 483 00:35:00,240 --> 00:35:03,170 Strieška je symbol pre prvý argument. 484 00:35:03,170 --> 00:35:07,510 Ak by ste chceli použiť druhý argument, by ste potom povedal: 2. 485 00:35:07,510 --> 00:35:11,250 Neexistuje žiadny špeciálny symbol pre druhý argument. 486 00:35:11,250 --> 00:35:14,790 A pretože ste pomocou číslice, mali by ste použiť dvojbodku. 487 00:35:14,790 --> 00:35:17,220 Tam je, však, ďalšia možnosť tu. 488 00:35:17,220 --> 00:35:21,220 Znak dolára stojí za posledný argument. 489 00:35:21,220 --> 00:35:23,320 A pretože je to symbol, môžete vynechať dvojbodku. 490 00:35:23,320 --> 00:35:25,870 Tak to by bolo posledné tvrdenie v zozname. 491 00:35:25,870 --> 00:35:27,900 A je tu tiež, že jeden. 492 00:35:27,900 --> 00:35:31,380 Hviezdička znamená, že všetky, takže to je kompletný zoznam argumentov, 493 00:35:31,380 --> 00:35:35,150 a znova, môžete vynechať dvojbodku, pretože to nie je číslica. 494 00:35:36,970 --> 00:35:39,950 Dúfam, že ste všetci pozorovať všetko. 495 00:35:39,950 --> 00:35:54,100 >> Mechanizmus histórie môže vrátiť do predchádzajúcej riadky v zozname histórie. 496 00:35:54,100 --> 00:36:01,370 Dalo by sa to urobiť v definícii aliasu. 497 00:36:01,370 --> 00:36:02,950 Nikdy som nevidel to urobiť. 498 00:36:02,950 --> 00:36:05,840 To by malo za následok vyťahovanie skoršie príkazy zo zoznamu histórie 499 00:36:05,840 --> 00:36:08,130 Pri spustení alias, ktoré by mohli byť rôzne príkazy 500 00:36:08,130 --> 00:36:11,240 v závislosti na tom, kedy a kde ste ho spustiť. 501 00:36:11,240 --> 00:36:14,020 Tým pádom budete chcieť vytiahnuť takýto odkaz 502 00:36:14,020 --> 00:36:15,900 Len vedieť, čo predtým bol príkaz. 503 00:36:15,900 --> 00:36:17,280 Nikdy som nevidel to stalo. 504 00:36:17,280 --> 00:36:19,970 Myslím, že by niekto mohol chcieť, ale je to veľmi nepravdepodobné. 505 00:36:19,970 --> 00:36:26,480 Tam je ďalšia vec, ktorú tu. 506 00:36:26,480 --> 00:36:33,060 Ak použijete túto históriu, typové označenie, 507 00:36:33,060 --> 00:36:38,190 potom sú použité iba argumenty, ktoré tam je taký odkaz. 508 00:36:38,190 --> 00:36:42,180 Ak máte definíciu aliasu, ktorý nepoužíva odkaz históriu typu, 509 00:36:42,180 --> 00:36:44,060 v prípade, že sa stane len začiatok príkazu 510 00:36:44,060 --> 00:36:46,520 a máte ďalšie argumenty, potom niečo napíšete, že po 511 00:36:46,520 --> 00:36:48,450 bude pridaná do príkazu. 512 00:36:48,450 --> 00:36:52,040 V tomto prípade, príklad som tam dal, sme použili prvý argument; 513 00:36:52,040 --> 00:36:54,610 sme nepoužili žiadne iné. 514 00:36:54,610 --> 00:36:57,960 Keby bola daná ďalšie argumenty na príkazovom riadku, ktoré by nemali byť používané. 515 00:36:57,960 --> 00:37:04,630 Takže ak použijete odkaz histórii vôbec, potom musíte použiť, aby sa žiadny argument. 516 00:37:04,630 --> 00:37:11,310 >> Je tu ďalšia vec, ktorú tu chcem len spomenúť, čiastočne v zátvorkách, 517 00:37:11,310 --> 00:37:15,250 a to, že táto história mechanizmus s výkričníkom 518 00:37:15,250 --> 00:37:18,010 vráti do pôvodného C-shell. 519 00:37:18,010 --> 00:37:27,060 Tcsh predstavil históriu operácií 520 00:37:27,060 --> 00:37:30,910 ktoré používajú najrôznejšie príkazy a reťazca z redaktorov, 521 00:37:30,910 --> 00:37:33,650 buď Emacs alebo vi. 522 00:37:33,650 --> 00:37:36,430 Môj osobný názor je Emacs je oveľa jednoduchšie použiť na tento účel 523 00:37:36,430 --> 00:37:39,390 aj keď vi použiť pre svoje pravidelné úpravy. 524 00:37:39,390 --> 00:37:43,900 Existujú rôzne Emacs príkazy, ktoré sú teraz upravené v histórii. 525 00:37:43,900 --> 00:37:46,410 Ovládacie P dostane predchádzajúci riadok v zozname histórie. 526 00:37:46,410 --> 00:37:48,840 Ďalšie Control P sa dostanete ten pred tým. 527 00:37:48,840 --> 00:37:50,540 Šípka hore robí to isté. 528 00:37:50,540 --> 00:37:54,190 Ovládacie N dostane ďalší príkaz, ak ste už posúvať späť niektoré spôsoby. 529 00:37:54,190 --> 00:37:55,880 Šípka dole robí to taky. 530 00:37:55,880 --> 00:38:00,480 Môžete sa pohybovať zľava doprava s šípkami a rôzne iné veci. 531 00:38:00,480 --> 00:38:02,390 To môžu využiť mechanizmus histórie 532 00:38:02,390 --> 00:38:05,070 oveľa jednoduchšie, než pomocou bodu syntaxe výkričník, 533 00:38:05,070 --> 00:38:07,930 ale nebude používať, že v definícii aliasu. 534 00:38:17,780 --> 00:38:20,020 Pôjdeme cez to niekedy inokedy. 535 00:38:24,300 --> 00:38:25,810 >> Premenné. 536 00:38:26,880 --> 00:38:29,510 Vieš, čo premenné sú v programovacích jazykoch. 537 00:38:29,510 --> 00:38:31,680 Nábojnice je mať tiež. 538 00:38:31,680 --> 00:38:37,350 C-shell používa príkaz set priradiť premenné, 539 00:38:37,350 --> 00:38:41,360 tak, že nastaví premenné A na hodnotu b - 540 00:38:41,360 --> 00:38:46,390 ako som už povedal, k ničomu definíciu, ale ilustráciu toho, ako je tento používaný. 541 00:38:48,790 --> 00:38:52,410 Príkaz set vytvorí premennú, ak už neexistuje. 542 00:38:55,270 --> 00:39:02,490 Pozičné parametre pre shell skriptov možno považovať za premenné, 543 00:39:02,490 --> 00:39:10,750 ale využitie z nich, a pravidlá pre nich sú trochu odlišné. 544 00:39:10,750 --> 00:39:14,320 Nemôžete priradiť hodnotu $ 1 v priebehu skriptu. 545 00:39:14,320 --> 00:39:18,340 Budete musieť definovať novú premennú pre tento účel, ak niektorí z vás chcel. 546 00:39:23,000 --> 00:39:28,470 Zadajte sada bez argumentov a dostanete zoznam všetkých aktuálne definovaných premenných. 547 00:39:28,470 --> 00:39:34,220 A poďme na moje ďalšie shell tu a uvidíme, čo dostaneme, ak budeme robiť, že. 548 00:39:34,220 --> 00:39:37,110 Pomerne dlhý zoznam tam, že jo? 549 00:39:37,110 --> 00:39:40,990 Vyberte si trochu. Pozrite sa na všetko, čo. 550 00:39:40,990 --> 00:39:44,330 Niektoré z týchto vecí sú automaticky definované shellu. 551 00:39:44,330 --> 00:39:49,320 Škrupina vytvorí premennú a dáva mu hodnotu. 552 00:39:49,320 --> 00:39:52,730 Niektoré z nich sú definované plášťa, ale potom sa znovu definovať užívateľ 553 00:39:52,730 --> 00:39:54,820 podľa svojich preferencií. 554 00:39:54,820 --> 00:39:59,110 A niektoré z nich sú vytvorené užívateľom v závislosti na tom, čo robí, že deň. 555 00:39:59,110 --> 00:40:01,880 To je len nastaviť bez argumentov. 556 00:40:06,920 --> 00:40:10,050 Je tu zvláštne vlastnosť tu na tejto veci. 557 00:40:10,050 --> 00:40:17,980 Tam musí byť medzi znaky rovná a názov premennej buď bez medzier 558 00:40:17,980 --> 00:40:23,700 a hodnotu alebo priestory na oboch stranách rovnítka, 559 00:40:23,700 --> 00:40:28,940 ako v tomto jednom. 560 00:40:35,620 --> 00:40:41,340 To nebude fungovať, a to je vlastne platný príkaz 561 00:40:41,340 --> 00:40:43,390 ale to nebude robiť to, čo máte v úmysle. 562 00:40:43,390 --> 00:40:50,070 Tento príkaz bude fungovať, pretože ak ste práve hovoria, nastaviť a názvu premennej 563 00:40:50,070 --> 00:40:54,890 s žiadne znamienko rovnosti, alebo nastaviť, a názov premennej s znakom rovná a žiadna hodnota, 564 00:40:54,890 --> 00:40:57,770 bude to nastaviť premennú na hodnotu null. 565 00:40:57,770 --> 00:41:00,120 Takže nastavenie = je platný príkaz. 566 00:41:00,120 --> 00:41:04,370 Príkaz set možno definovať viac ako 1 premennú na rovnakom riadku. 567 00:41:04,370 --> 00:41:11,240 Takže tento príkaz tu má vplyv na definovanie A aj B na hodnoty null. 568 00:41:11,240 --> 00:41:13,470 Pravdepodobne nie je to, čo chcete. 569 00:41:13,470 --> 00:41:17,940 Tento tu bolo spomenuté predtým, povedie k chybe 570 00:41:17,940 --> 00:41:21,270 pretože = b nie je platný výraz. 571 00:41:21,270 --> 00:41:23,680 Názov premennej nesmie začínať znakom rovná. 572 00:41:26,760 --> 00:41:29,080 A tam sú tie ďalšie veci tu. 573 00:41:29,080 --> 00:41:36,820 V dvojbodky boli použité pre výber argumentov z histórie liniek, 574 00:41:36,820 --> 00:41:41,210 a môžu byť použité - a ja som nešiel do pred - meniť tie veci. 575 00:41:41,210 --> 00:41:44,480 Môžu byť taktiež použité na úpravu shell premennej. 576 00:41:44,480 --> 00:41:49,050 Tento, $, má hodnotu. 577 00:41:49,050 --> 00:41:55,040 : R bude štartovať rozšírenie. 578 00:41:55,040 --> 00:41:57,200 Rozšírenie bude niečo po bode, 579 00:41:57,200 --> 00:41:59,200 dot a niečo po ju na koniec súboru, 580 00:41:59,200 --> 00:42:03,230 iba na konci zoznamu po poslednom lomítkom. 581 00:42:03,230 --> 00:42:05,480 Tak som si to tu. 582 00:42:05,480 --> 00:42:10,730 je to, že. To bude klesať. O. 583 00:42:10,730 --> 00:42:16,510 Pokiaľ nie je rozšírenie, iba cestami po poslednom lomítkom, bude to mať žiadny vplyv. 584 00:42:16,510 --> 00:42:27,480 : H, že premenná výraz, bude štartovať posledný prvok zoznamu adresárov, 585 00:42:27,480 --> 00:42:29,660 opäť až po poslednom lomítkom. 586 00:42:29,660 --> 00:42:33,160 So / a / b / c sa / a / b, 587 00:42:33,160 --> 00:42:38,870 ale toto sa zmení, pretože prvok po zozname je null. 588 00:42:38,870 --> 00:42:43,070 Tu je niečo, čo chcem tiež zdôrazniť. 589 00:42:43,070 --> 00:42:46,770 Tieto kvalifikátory nemajú hľadať existenciu týchto súborov. 590 00:42:46,770 --> 00:42:48,910 Oni sa len pozrieť na reťazca. 591 00:42:48,910 --> 00:42:54,520 Tie sú určené na manipuláciu s názvami súborov, cestami, 592 00:42:54,520 --> 00:42:57,520 ale môžu byť použité na akýkoľvek reťazec, aj keď to nie je názov súboru. 593 00:42:57,520 --> 00:42:58,920 A oni nevyzerajú na existenciu, 594 00:42:58,920 --> 00:43:03,550 takže v prípade, že to nie je taký súbor, / / ​​b / c, to bude ešte pracovať. 595 00:43:03,550 --> 00:43:06,930 Či už je to k ničomu, je iná otázka, ale to bude ešte pracovať. 596 00:43:06,930 --> 00:43:12,850 Premenné sú odlišné v škrupinách Bourne. K tomu sa dostaneme neskôr. 597 00:43:12,850 --> 00:43:18,240 Znak dolára možno zrušiť rovnako ako výkričníkom a hviezdičkou. 598 00:43:18,240 --> 00:43:21,760 Znak dolára môže byť unikol s lomítkom alebo apostrofy. 599 00:43:21,760 --> 00:43:24,790 Úvodzovky majú podivný účinok vo všetkých mušlí 600 00:43:24,790 --> 00:43:28,690 nútiť hodnotenie dolára podpísať variabilný expresie. 601 00:43:28,690 --> 00:43:31,960 Takže ak to je unikol jeden spôsob, ako je možné, že dvojité úvodzovky mať za následok 602 00:43:31,960 --> 00:43:34,380 spôsobiť, že majú byť hodnotené rovnako. 603 00:43:34,380 --> 00:43:37,090 To je trochu mätúce. 604 00:43:37,090 --> 00:43:43,740 Ak existuje viac úrovní uniknúť, ako je napríklad apostrofy vnútri úvodzoviek 605 00:43:43,740 --> 00:43:46,770 alebo dvojité úvodzovky vnútri apostrofov, mali by ste vyskúšať, aby videli, čo sa bude diať 606 00:43:46,770 --> 00:43:49,520 premenné, ak používate jeden. 607 00:43:49,520 --> 00:43:53,410 Tieto dve situácie - dvojitý vnútri z jedného, ​​jediného vnútorné dvojitý - 608 00:43:53,410 --> 00:43:55,980 nemusí nutne dať rovnaký výsledok. 609 00:44:02,520 --> 00:44:05,600 Premenné prostredie, viazané C-shell premenné. 610 00:44:05,600 --> 00:44:08,340 Premenné prostredia sú tiež premenné v C-shellu, 611 00:44:08,340 --> 00:44:11,250 a sú tiež premenné v iných mušlí taky. 612 00:44:11,250 --> 00:44:15,230 V C-shell, sú odlišné sady. 613 00:44:15,230 --> 00:44:18,130 To, čo som hovoril predtým, než sa o premenných shellu. 614 00:44:18,130 --> 00:44:21,300 Premenné prostredia sú zreteľné súbor premenných 615 00:44:21,300 --> 00:44:28,650 s výnimkou niekoľkých premenných, ktoré nazývame viazané premenné, 616 00:44:28,650 --> 00:44:30,640 ktoré sú veľmi dôležité a budeme sa dostať do tých neskôr. 617 00:44:30,640 --> 00:44:34,950 Premenné prostredia sú automaticky odovzdávané 618 00:44:34,950 --> 00:44:41,800 do škrupiny alebo príkazy, ktoré sú spúšťané z vášho shellu. 619 00:44:41,800 --> 00:44:46,220 Ostatné veci nie sú. Premenné shellu, aliasy nie sú. Premenné prostredia sú. 620 00:44:46,220 --> 00:44:48,630 To je dôvod, prečo im hovoríme premenné prostredie, 621 00:44:48,630 --> 00:44:55,030 Myšlienka je, že životné prostredie rozširuje minulosti len vaše aktuálne shellu. 622 00:44:55,030 --> 00:45:00,510 Môžu byť použité pre definovanie veci príkazy. 623 00:45:00,510 --> 00:45:05,470 Tu je príklad. PRINTER, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Obe tieto premenné možno definovať tlačiareň, ktorá príkaz bude používať k tlači veci. 625 00:45:12,270 --> 00:45:16,500 Ak máte viac tlačiarní okolo seba, možno budete chcieť, aby sa vám páči. 626 00:45:16,500 --> 00:45:21,320 Dôvod, prečo máme 2 premenných je to, že boli napísané rôzne sady príkazov 627 00:45:21,320 --> 00:45:23,870 Pomocou týchto rôznych premenných. 628 00:45:23,870 --> 00:45:25,910 Dalo by sa im rôzne hodnoty. 629 00:45:25,910 --> 00:45:28,860 S najväčšou pravdepodobnosťou budete im obaja rovnakú hodnotu. 630 00:45:28,860 --> 00:45:35,840 Tieto veci fungujú, pretože príkazy, ktoré robia tlače 631 00:45:35,840 --> 00:45:40,740 boli naprogramované tak, aby skúmať hodnoty týchto premenných. 632 00:45:42,200 --> 00:45:46,150 Ak program nepísal takto, keby bolo napísané niečo iné, 633 00:45:46,150 --> 00:45:48,280 premenná bude irelevantné. 634 00:45:48,280 --> 00:45:52,530 Takže operačný systém sa nepozerá na týchto premenných 635 00:45:52,530 --> 00:45:55,210 zakaždým, keď sa odvolávajú na tlačiarni. 636 00:45:55,210 --> 00:45:59,090 Príkaz, ktorý robí tlač hľadá týchto premenných, ak je naprogramovaný tak. 637 00:46:11,030 --> 00:46:15,240 Tieto premenné sú často definované vo svojich konfiguračných súboroch 638 00:46:15,240 --> 00:46:19,440 , Ale nie nevyhnutne. 639 00:46:19,440 --> 00:46:21,050 Môžete definovať je na príkazovom riadku. 640 00:46:21,050 --> 00:46:24,090 Môžu byť definované v príkaze. 641 00:46:24,090 --> 00:46:28,740 Príkaz, ktorý spúšťa niečo, čo môže mať svoj vlastný výber premenných - 642 00:46:28,740 --> 00:46:32,390 premenných, ktoré sú špecifické pre konkrétny softvérový balík, napríklad. 643 00:46:32,390 --> 00:46:36,740 Budú definované pri spustení balík. 644 00:46:39,690 --> 00:46:42,680 Ako sú tieto premenné odovzdávané sub-shell? 645 00:46:42,680 --> 00:46:48,210 Keď je napísaný sub-shell, to nezapisuje do tejto oblasti. 646 00:46:48,210 --> 00:46:53,260 Oblasť sub-shell, ktorý je venovaný premenných prostredia 647 00:46:53,260 --> 00:46:56,450 nie je napísaný sub-shell, to napísal kopírovanie. 648 00:46:56,450 --> 00:47:00,530 Pri spustení obyčajný príkaz, ako napríklad tieto príkazy vytlačiť alebo čokoľvek, 649 00:47:00,530 --> 00:47:03,840 sa začať tým, že vytvorí nový shell. 650 00:47:03,840 --> 00:47:06,190 Škrupina vytvorí shell a potom prepíše jeho časť 651 00:47:06,190 --> 00:47:08,800 s príkazom, že ste so systémom, ktorý je trochu mätúce, 652 00:47:08,800 --> 00:47:10,740 ale to, ako sa tieto príkazy získať premenné prostredie 653 00:47:10,740 --> 00:47:14,890 ktoré potom odkazujú na neskôr. 654 00:47:21,920 --> 00:47:28,010 Príkaz tu pre definovanie premennej setenv. 655 00:47:28,010 --> 00:47:36,470 To je, ako to definovať. Je to 3 prvky: setenv, variabilný, hodnota. 656 00:47:36,470 --> 00:47:44,710 Ak ste jednoducho setenv bez argumentov, čo dostanete? 657 00:47:47,220 --> 00:47:48,810 Zoznam všetkých týchto premenných. 658 00:47:48,810 --> 00:47:53,190 Opäť, je to pekný dlhý zoznam, a v tomto prípade, rovnako ako v ostatných, 659 00:47:53,190 --> 00:47:57,320 Tieto premenné sú definované prevažne môjho prihlásenia prevádzky samotnej nádrže 660 00:47:57,320 --> 00:47:59,740 skôr než čokoľvek, čo som urobil. 661 00:47:59,740 --> 00:48:03,580 Je tu ďalší príkaz tu, printenv. 662 00:48:07,520 --> 00:48:10,340 To tiež vytlačí na životné prostredie. 663 00:48:10,340 --> 00:48:15,240 Všimnite si, to posledné, čo tu, EDITOR = vi. 664 00:48:15,240 --> 00:48:21,120 To hovorí, že ak budem používať niečo, čo volá editor 665 00:48:21,120 --> 00:48:25,530 a ja neuvediete editor a umožňuje mi na výber, môže mi dať vi. 666 00:48:25,530 --> 00:48:37,280 Čo keď urobím printenv EDITOR? To mi hovorí, že to, čo to je. 667 00:48:37,280 --> 00:48:41,340 Tesne predtým, než to, že tam bol variabilný, LESS. 668 00:48:41,340 --> 00:48:46,040 To sú vaše možnosti predvolené hodnoty, keď som spustení MENEJ príkaz, 669 00:48:46,040 --> 00:48:49,360 ktorý zobrazuje súbory. 670 00:48:49,360 --> 00:48:55,910 Takže keď som to urobil, printenv môže trvať jeden argument alebo 0 argumenty, 671 00:48:55,910 --> 00:48:58,070 nie viac ako 1. 672 00:49:01,800 --> 00:49:05,690 Existujú aj ďalšie príkazy tiež, ale nebudeme sa dostať do všetkej tej dnešnej. 673 00:49:05,690 --> 00:49:11,010 Pamätajte si, že boli modifikátory pre premenné shellu ako: h, 674 00:49:11,010 --> 00:49:14,350 ktoré klesne na posledný prvok cestu k priečinku, 675 00:49:14,350 --> 00:49:17,950 alebo: r, čo zníži rozšírenie. 676 00:49:17,950 --> 00:49:23,110 Tí, ktorí teraz platí pre premenné prostredie príliš. Oni nie sú zvyknutí. 677 00:49:23,110 --> 00:49:24,960 To bolo, že nemôže byť modifikovaný. Teraz môžu byť. 678 00:49:24,960 --> 00:49:29,190 Je to jeden zo záloh s vývojom škrupín v priebehu rokov. 679 00:49:29,190 --> 00:49:35,620 Hovoril som, že škrupiny ako súčasť prostredia, 680 00:49:35,620 --> 00:49:43,040 a shell premenné v C-shellu sú, až na niektoré výnimky, rôznych sád. 681 00:49:43,040 --> 00:49:46,790 Môžete vytvoriť premennú prostredia a shell premennú s rovnakým názvom. 682 00:49:46,790 --> 00:49:49,220 Budú rôzne premenné, ktoré môžu mať rôzne hodnoty. 683 00:49:49,220 --> 00:49:53,090 Zmena hodnoty jedného nezmení hodnotu druhej. 684 00:49:53,090 --> 00:49:58,070 Tieto premenné sú hodnotené s znak dolára - $, $ čokoľvek. 685 00:49:58,070 --> 00:50:02,340 Takže to, čo máte toto? Viete, ktorý z nich dostanete? 686 00:50:02,340 --> 00:50:04,520 V mojich testoch som premennú shellu, 687 00:50:04,520 --> 00:50:07,240 ale to nie je zdokumentované a môžete sa spoľahnúť na to. 688 00:50:07,240 --> 00:50:10,270 Tak som sa vás opýtať, je vytváranie shellu a premenné prostredia 689 00:50:10,270 --> 00:50:13,490 s rovnakými názvami dobrý nápad? No jo. 690 00:50:13,490 --> 00:50:17,460 Aké sú tie hlavné výnimky, ktoré životné prostredie a premenné shellu 691 00:50:17,460 --> 00:50:19,860 sú navzájom prepojené? 692 00:50:19,860 --> 00:50:27,470 K dispozícii sú tieto 4. 693 00:50:32,030 --> 00:50:35,510 Veľké písmeno TERM premenná prostredia, 694 00:50:35,510 --> 00:50:41,540 shell variabilný termín malými písmenami, typ emulácie terminálu. 695 00:50:41,540 --> 00:50:47,430 Len som ísť sem, a budem robiť ozvenu, užitočný príkaz tu, 696 00:50:47,430 --> 00:50:52,560 $ TERM $ termín. A tam. 697 00:50:52,560 --> 00:51:00,570 xterm je typ terminálu pre okná zobrazená v X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-color je variant, že umožňuje rôzne farby. 699 00:51:04,330 --> 00:51:06,580 Prečo by sme definovať tie? Čo je to dobré? 700 00:51:06,580 --> 00:51:09,740 Príkazy, ktoré zmeniť usporiadanie obrazovky, podobne ako v editore 701 00:51:09,740 --> 00:51:13,680 Poslať konkrétnej sekvencie, tzv escape sekvencie, 702 00:51:13,680 --> 00:51:18,160 na termináli alebo v okne, aby sa usporiadanie, a tak ďalej. 703 00:51:18,160 --> 00:51:20,990 Tieto sekvencie sú rôzne pre rôzne typy terminálov. 704 00:51:20,990 --> 00:51:23,100 To je, ktoré z nich použiť povie. 705 00:51:23,100 --> 00:51:25,900 Niekedy tam sú problémy tam. 706 00:51:25,900 --> 00:51:28,600 Možno budete chcieť zmeniť. 707 00:51:28,600 --> 00:51:30,780 Ak veci nefungujú, niekedy aj typ terminálu je nastavený zle, 708 00:51:30,780 --> 00:51:36,440 môžete byť schopní opraviť predefinovanie pojmu premenné. 709 00:51:36,440 --> 00:51:43,420 V týchto prípadoch, zmena jednej premennej, premenné prostredia alebo premenné shellu, 710 00:51:43,420 --> 00:51:45,970 by sa malo zmeniť na druhú. 711 00:51:45,970 --> 00:51:50,970 Zistil som, na základe skúseností, ktoré mení výraz v veľkými písmenami 712 00:51:50,970 --> 00:51:54,060 nemusí vždy zmeniť shell premennú termín malými písmenami. 713 00:51:54,060 --> 00:51:55,550 To je chyba. 714 00:51:55,550 --> 00:51:59,400 Neviem, či je to vždy pravda. Väčšinu času to nie je pravda, ale to môže byť. 715 00:51:59,400 --> 00:52:02,490 Takže ak urobíte zmenu, stačí skontrolovať, že von. 716 00:52:02,490 --> 00:52:05,830 Nestáva sa často, že budete musieť zmeniť túto hodnotu, ale raz za čas, čo robíte. 717 00:52:05,830 --> 00:52:08,260 Premenná prostredia USER. 718 00:52:08,260 --> 00:52:12,070 Opäť platí, že premenná prostredia paličkovým písmom, shell premenné malými písmenami. 719 00:52:12,070 --> 00:52:13,710 Toto je vaše užívateľské meno. 720 00:52:13,710 --> 00:52:16,730 Je to len za veľmi výnimočných okolností 721 00:52:16,730 --> 00:52:18,420 že by ste chceli zmeniť. 722 00:52:18,420 --> 00:52:22,350 Ak je vaše užívateľské meno je niekto iný, je možné hádzať všetky druhy vecí preč. 723 00:52:22,350 --> 00:52:26,040 Domovský adresár, domovský adresár užívateľa. 724 00:52:26,040 --> 00:52:28,060 Opäť platí, že by ste nechceli zmeniť. 725 00:52:28,060 --> 00:52:32,260 Všimnite si, vo všetkých týchto prípadoch a ten, ktorý sa chystáme na pokrytie premennej PATH, 726 00:52:32,260 --> 00:52:37,070 Premenná prostredia je veľkými písmenami a viazaná premenná shellu je malými písmenami. 727 00:52:37,070 --> 00:52:39,240 Ak zmeníte jeden, mali by ste zmeniť iné. 728 00:52:39,240 --> 00:52:45,960 Tento druh väzby nie je možné stanoviť, pretože nie je možné zviazať dve premenné, 729 00:52:45,960 --> 00:52:50,570 iné ako tie 4 a záväzné v týchto premenných nemožno vrátiť späť, 730 00:52:50,570 --> 00:52:52,090 nemožno oddeliť. 731 00:52:52,090 --> 00:52:55,820 Takže tieto štyri párov premenných sú viazané. 732 00:52:55,820 --> 00:52:59,020 Vždy bude. Žiadne ďalšie bude. 733 00:52:59,020 --> 00:53:05,720 Okrem toho by malo byť možné vytvoriť premenné s rovnakými názvami 734 00:53:05,720 --> 00:53:07,780 z opačných typov. 735 00:53:07,780 --> 00:53:11,600 Dalo by sa urobiť shell variabilný termín malými písmenami 736 00:53:11,600 --> 00:53:14,990 alebo premenná prostredia TERM veľkými písmenami. 737 00:53:14,990 --> 00:53:19,040 Tieto premenné by byť nezávislý na týchto párových premenných 738 00:53:19,040 --> 00:53:20,780 a že by sa na sebe nezávislé. 739 00:53:20,780 --> 00:53:23,780 Neviem si predstaviť, prečo by ste si, že ak chcete miasť ľudí. 740 00:53:24,600 --> 00:53:29,730 Tento, variabilný cesta, je to naozaj dôležité. 741 00:53:29,730 --> 00:53:35,550 Ďalšia vec je, že tam môžu byť prípady, 742 00:53:35,550 --> 00:53:40,430 premenných s podobnými spárovaný názvami, ktoré nie sú viazané na seba. 743 00:53:40,430 --> 00:53:45,000 Tam môžu byť premenné, SHELL a shell, veľkými a malými písmenami. 744 00:53:45,000 --> 00:53:48,300 Na tomto základe mena, neviete-li, že premenná je premenná shellu 745 00:53:48,300 --> 00:53:51,580 alebo premenné prostredie, a že to nie je viazaný k sebe. 746 00:53:51,580 --> 00:53:55,300 Takže tento druh párových mien neznamená viazaných premenných. 747 00:53:55,300 --> 00:53:58,830 Premenná cesta, ktorou som sa pred zobrazením, 748 00:53:58,830 --> 00:54:01,880 je zoznam cestami, v ktorých shell hľadá príkazy. 749 00:54:01,880 --> 00:54:12,320 Poďme sa k tomuto oknu tu a budeme robiť echo $ PATH, veľké písmená - 750 00:54:12,320 --> 00:54:20,230 Premenná prostredia - echo $ PATH, malé písmená - shell premenné. 751 00:54:20,230 --> 00:54:24,980 Všimnite si, že zoznam adresárov je rovnaký. Tie sú viazané. 752 00:54:24,980 --> 00:54:26,590 Zmena jedného, ​​môžete zmeniť ďalšie. 753 00:54:26,590 --> 00:54:32,970 V premenné prostredia sú prvky oddelené dvojbodkami. Všimnite si, že. 754 00:54:32,970 --> 00:54:35,130 Premenné shell sú oddelené medzerami. 755 00:54:35,130 --> 00:54:38,760 Táto premenná prostredia je jeden reťazec. 756 00:54:38,760 --> 00:54:41,480 Premenná prostredia je pole. 757 00:54:41,480 --> 00:54:43,490 Bourne shell nemala poľa. 758 00:54:43,490 --> 00:54:46,600 Bash robí, ale to je už pevnou súčasťou plášťa. 759 00:54:46,600 --> 00:54:48,660 To je jediný reťazec, a nie pole. 760 00:54:48,660 --> 00:54:50,420 C-shell vždycky poľa. 761 00:54:50,420 --> 00:54:52,630 Tieto polia sú oveľa jednoduchšie pracovať. 762 00:54:52,630 --> 00:54:54,400 Môžete odkazovať na jej časti. 763 00:54:54,400 --> 00:55:02,350 Takže echo $ path [1], a dostanem / usr / bin, prvý prvok. 764 00:55:02,350 --> 00:55:09,950 Opäť, nezabudnite dolár znamenie je skratka pre posledný prvok v zozname histórie. 765 00:55:09,950 --> 00:55:16,850 Čo sa tam deje? Snažil sa nájsť znak dolára ako variabilný symbol. 766 00:55:16,850 --> 00:55:20,850 Aj uniknúť. Oops. To by sa, že buď. 767 00:55:20,850 --> 00:55:23,690 Niektoré z týchto vecí nefungujú tak dobre. 768 00:55:23,690 --> 00:55:28,140 Možno, že budeme len tak nechať, že von. 769 00:55:28,140 --> 00:55:36,980 Asterisk sa vzťahuje na celú vec, ale to je to, čo dostanete, ak neuvediete prvok. 770 00:55:36,980 --> 00:55:46,170 Ďalším spôsobom, že premenné pole možno manipulovať, 771 00:55:46,170 --> 00:55:49,500 Počet prvkov tam, 7 prvkov. 772 00:55:49,500 --> 00:55:53,410 Tu sme dať krížik pred názvom premennej. 773 00:55:53,410 --> 00:55:58,280 Tu je ešte jeden. Dajte otáznik tam. 774 00:55:58,280 --> 00:56:03,170 To je logická hodnota. To znamená, že premenná existuje. 775 00:56:03,170 --> 00:56:05,160 Je to ďalší spôsob, ako pracovať s premennými. 776 00:56:05,160 --> 00:56:06,660 To, mimochodom, nemusí byť premenná poľa. 777 00:56:06,660 --> 00:56:08,210 To by mohlo byť ľubovoľná premenná. 778 00:56:08,210 --> 00:56:11,840 A keď to urobím, že žiadna taká premenná, a ja si 0.. 779 00:56:11,840 --> 00:56:14,990 Ďalšie maličkosť, že o variabilné hodnotenie. 780 00:56:23,670 --> 00:56:32,950 Späť na tento tu, ak z nejakého dôvodu chcel pracovať s týmto 781 00:56:32,950 --> 00:56:37,990 skôr ako pracovať s poľami, variabilný shell, 782 00:56:37,990 --> 00:56:41,470 tam sú príkazy, ktoré možno oddeliť tieto veci na základe hrubého čreva. 783 00:56:41,470 --> 00:56:44,080 V skutočnosti, ak budete robiť to v Bash shellu možná, 784 00:56:44,080 --> 00:56:47,110 nejaký skript, ktorý by pravdepodobne, ako by ste to urobiť. 785 00:56:47,110 --> 00:56:50,350 Ale v C-shellu, že je oveľa jednoduchšie použiť pole. 786 00:56:50,350 --> 00:56:58,250 V Bourne shellu, premenné sú priradené jediným výrazom, ako je tento, 787 00:56:58,250 --> 00:57:01,760 ako spôsob, ako by ste mohli priradiť premennú v programovacom jazyku, 788 00:57:01,760 --> 00:57:05,110 a sem tam nesmie byť žiadne medzery. 789 00:57:05,110 --> 00:57:09,110 Je to potrebné, aby to bolo len 1 reťazec. 790 00:57:09,110 --> 00:57:14,980 V Bourne typu granátov, všetky premenné sú premenné shellu. 791 00:57:14,980 --> 00:57:19,250 Premenné prostredia sú podmnožinou premenných shellu. 792 00:57:19,250 --> 00:57:24,060 Oni sú rozlišované od premenných non-prostredie exportom. 793 00:57:24,060 --> 00:57:28,860 Príkaz k tomu, že je export, rovnako ako export tlačiarne. 794 00:57:28,860 --> 00:57:34,930 Ak by sme mali definovať také premenné, 795 00:57:34,930 --> 00:57:38,480 ak by sme chceli tlačový príkaz, aby ju nájsť, malo by to byť premenná prostredia, 796 00:57:38,480 --> 00:57:40,730 a to ako z neho robí jeden. 797 00:57:40,730 --> 00:57:42,090 Tu je niečo trochu mätúce. 798 00:57:42,090 --> 00:57:50,430 Tento výraz, export do životného prostredia, pochádza z tejto Bourne shell koncepcie, 799 00:57:50,430 --> 00:57:54,520 a napriek tomu, že výraz sa používa v opise C-shell, 800 00:57:54,520 --> 00:57:57,920 tam, kde žiadny takýto príkaz ako export. 801 00:57:57,920 --> 00:58:06,200 Ak ste práve povedal vývoz sám o sebe, dostanete zoznam exportovať - 802 00:58:06,200 --> 00:58:10,620 Takže ak som to export tu, nič také. 803 00:58:13,620 --> 00:58:15,200 Dobre, ideme na to. 804 00:58:15,200 --> 00:58:17,010 Tieto veci, mimochodom, sú tiež definované shellu. 805 00:58:17,010 --> 00:58:19,400 Nechcel som definovať niektorý z nich sám. 806 00:58:19,400 --> 00:58:23,550 Shell robí veľa vecí sám. 807 00:58:23,550 --> 00:58:26,650 Je potrebné robiť veci automaticky. 808 00:58:30,240 --> 00:58:36,880 V Bash alebo Korn shell, môžete spustiť príkaz ako je tento, 809 00:58:36,880 --> 00:58:42,000 ktoré sa obaja dať premennú hodnotu a exportovať ich v 1. príkaz. 810 00:58:42,000 --> 00:58:46,150 V Bourne shellu majú byť samostatné príkazy, ako je exportovať. 811 00:58:46,150 --> 00:58:48,410 Tu je ďalší aspekt, ktorý je mätúce. 812 00:58:48,410 --> 00:58:52,220 Príkaz set v C-shellu definuje premenné 813 00:58:52,220 --> 00:58:55,550 a bez argumentov vám povie, čo sa hodnoty premenných "sú. 814 00:58:55,550 --> 00:59:01,140 V Bash shellu, súbor príkaz bez argumentov robí to isté, 815 00:59:01,140 --> 00:59:03,580 ale s argumentmi, že robí niečo celkom iné. 816 00:59:03,580 --> 00:59:06,200 Tak to sú rôzne argumenty tu. 817 00:59:06,200 --> 00:59:10,460 Niektoré z nich sú premenné prostredia, niektoré z nich sú premenné shellu. 818 00:59:10,460 --> 00:59:13,200 Všetky z nich sú naozaj premenné shellu. Niektoré z nich sú premenné prostredia. 819 00:59:15,690 --> 00:59:23,920 Príkaz set s argumentmi možno použiť na ovládanie 820 00:59:23,920 --> 00:59:28,220 na pozičné parametre skriptu, 821 00:59:28,220 --> 00:59:33,910 čo je spôsob, ako ich všetky naraz. 822 00:59:33,910 --> 00:59:36,150 Nemôžeme naozaj ísť do toho dnes. 823 00:59:36,150 --> 00:59:39,580 To môže byť tiež použitý k zmene správania shell. 824 00:59:39,580 --> 00:59:46,700 Najmä v Bash sú premenné, ktoré budú určovať, ako shell chová. 825 00:59:46,700 --> 00:59:51,310 Potom tiež len tento jeden príkaz, ktorý ste mohli vidieť, tento príkaz. 826 00:59:51,310 --> 00:59:59,050 Vysádzať nasleduje premenné a typy premenných sa používa v Korn a bash. 827 00:59:59,050 --> 01:00:04,970 Nie je to povinné, ale môže byť použitý pre obmedzenie hodnoty premenných, 828 01:00:04,970 --> 01:00:08,400 ktoré môžu byť užitočné, aby sa zabránilo chybám, a je to celkom bežné. 829 01:00:08,400 --> 01:00:11,640 Takže som len spomenúť, že v prípade, že ste ju vidieť niekde. 830 01:00:17,290 --> 01:00:19,160 Príkaz kde. 831 01:00:19,160 --> 01:00:22,490 Spomínam si, ako už bolo spomenuté, kde príkaz v C-shellu, 832 01:00:22,490 --> 01:00:28,750 ktoré vám povedať, umiestnenie príkazového názov cesty. 833 01:00:28,750 --> 01:00:32,580 Tu je substitúcia príkazu. 834 01:00:32,580 --> 01:00:41,900 Mali by ste nájsť na vašej klávesnici niekde znak, ktorý vyzerá takto. 835 01:00:41,900 --> 01:00:44,910 Umiestnenie na klávesnici sa bude líšiť. 836 01:00:44,910 --> 01:00:47,050 Nazvali sme ju backquote. Je to o veľkosti cenovú ponuku. 837 01:00:47,050 --> 01:00:48,720 To ide z ľavej hornej časti na pravej dolnej. 838 01:00:48,720 --> 01:00:52,690 Tu na mojom Mac klávesnica je v ľavom hornom rohu. 839 01:00:52,690 --> 01:00:58,150 Tento znak môže byť použitý na vykonanie príkazu v rámci príkazu. 840 01:00:58,150 --> 01:01:03,400 Ak máte výraz vnútri jednoduchých spätných úvodzoviek, 841 01:01:03,400 --> 01:01:07,080 že výraz je príkaz, je to beh. 842 01:01:07,080 --> 01:01:09,010 Výstup tohto príkazu 843 01:01:09,010 --> 01:01:11,980 sa potom nahradí celú backquote výraz 844 01:01:11,980 --> 01:01:16,110 v dlhšom príkazom, ktorý potom beží s týmto výstupom 845 01:01:16,110 --> 01:01:22,010 ako súčasť svojho reťazca argumentov, a tak ďalej. 846 01:01:22,010 --> 01:01:28,640 Tu je príkaz, ktorý používa to. 847 01:01:28,640 --> 01:01:32,340 Poďme si ukázať prevádzku tu. 848 01:01:44,980 --> 01:01:49,090 Poďme sem, vyberte jednoduchých spätných úvodzoviek. 849 01:01:49,090 --> 01:01:54,410 Riadenie ma dostane na začiatku riadku so syntaxou úpravy Emacs. 850 01:01:54,410 --> 01:02:00,380 Zatiaľ cestami je to, čo kde robí, 851 01:02:00,380 --> 01:02:05,040 ale keď som to takto, potom sa zapája v tomto zozname cestami 852 01:02:05,040 --> 01:02:08,750 miesto celej tejto backquote prejavu a beží ls-l na nich. 853 01:02:08,750 --> 01:02:11,120 Druh pohodlné, čo? 854 01:02:11,120 --> 01:02:14,860 Takže to je jedna užitočná vec. To je, ako jednoduchých spätných úvodzoviek pracovať. 855 01:02:14,860 --> 01:02:17,560 Teraz poďme sa trochu ďalej. 856 01:02:17,560 --> 01:02:22,050 Jedná sa o aliasy. Ja vlastne používať. 857 01:02:22,050 --> 01:02:26,410 Budem sa snažiť, aby si na túto 1x úpravy prevádzky. 858 01:02:34,900 --> 01:02:36,900 Dobre. 859 01:02:36,900 --> 01:02:39,630 Teraz sa poďme pozrieť, ako tieto definície vyšiel. 860 01:02:39,630 --> 01:02:44,930 alias DxŠxV mi povedať, ako je to definované. 861 01:02:44,930 --> 01:02:51,210 Všimnite si, že je to práve to, ale vonkajšie citácie boli vzlietlo 862 01:02:51,210 --> 01:02:53,750 a výkričník sa vzlietlo. 863 01:02:53,750 --> 01:02:58,940 ! *, Úplný zoznam všetkých argumentov. 864 01:02:58,940 --> 01:03:03,580 V definícii aliasu, bude platiť tam, kde som sa použiť. 865 01:03:03,580 --> 01:03:10,620 LWH ksh bash. Dobre. 866 01:03:10,620 --> 01:03:13,960 Pozrite, ako to funguje? To mi ušetrí trochu písania. 867 01:03:13,960 --> 01:03:16,440 Poďme sa trochu len spomenúť niečo iné tu. 868 01:03:19,150 --> 01:03:23,120 Všimnite si, tieto rôzne mušle. Mal som sa zmienil predtým. 869 01:03:23,120 --> 01:03:36,060 Csh má 2 nad tú, a tak sa / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Mohli by sme vytvoriť inými prostriedkami, že sú to vlastne rovnaký súbor. 871 01:03:39,870 --> 01:03:43,150 Spomínam si, ako hovoril, napíšete ak sh máte bash. 872 01:03:43,150 --> 01:03:47,390 Opíšte tento kód, a dostanete to. 873 01:03:47,390 --> 01:03:51,730 Ale tie nie sú prepojené. Tí, ktorí majú jediné tie tam. 874 01:03:51,730 --> 01:03:54,910 A to nie je typ súboru, ktorý môže volať iný. 875 01:03:54,910 --> 01:03:59,460 Takže to sú samostatné súbory, na C-shell z nich sú rovnaký súbor. 876 01:03:59,460 --> 01:04:03,640 Tu staré, druhý tu, tento alias, 877 01:04:03,640 --> 01:04:09,090 Upozorňujeme, že so spustením tohto príkazu, súbor. 878 01:04:09,090 --> 01:04:13,810 To alias beží to. Súbor vám povie, typ súboru. 879 01:04:13,810 --> 01:04:20,330 Takže FWH ksh bash. Dobre. 880 01:04:20,330 --> 01:04:23,230 To je výstup príkazu súboru. 881 01:04:23,230 --> 01:04:24,630 Neviem, či viete, čo to znamená tu, 882 01:04:24,630 --> 01:04:26,750 Mach-O univerzálny binárny 2 architektúr. 883 01:04:26,750 --> 01:04:30,470 K dispozícii sú 2 možné typy procesorov v systéme Mac, 884 01:04:30,470 --> 01:04:34,780 a niektoré programy boli napísané, aby boli schopné prevádzkovať s oboma, 885 01:04:34,780 --> 01:04:37,950 a príkazový súbor môže určiť, že tak to je, čo to znamená. 886 01:04:37,950 --> 01:04:40,660 Oba tieto súbory boli písané týmto spôsobom. 887 01:04:40,660 --> 01:04:43,760 Tak vidíme, ako alias funguje, vidíme, ako backquote funguje, 888 01:04:43,760 --> 01:04:48,640 vidíme, ako skutočné ls súborov alebo súborov funguje. 889 01:04:52,050 --> 01:04:57,000 Toto nemusí fungovať. Skúste ", kde kde" a "LWH kde". Dobre, poďme to skúsiť. 890 01:04:57,000 --> 01:05:01,040 kde kde. 891 01:05:01,040 --> 01:05:03,500 kde je shell vstavaný. 892 01:05:03,500 --> 01:05:06,970 Nezabudnite, skôr sme ukázali, že Bash nemal kam. 893 01:05:06,970 --> 01:05:10,080 Ak zadáte ak v Bash shellu, zobrazí sa chybové hlásenie. 894 01:05:10,080 --> 01:05:12,540 Je to len časť plášťa skôr ako samostatný príkaz. 895 01:05:12,540 --> 01:05:20,000 Čo sa stane, keď som typ LWH hľadal, kde? Pozrite sa, čo sa deje tam. 896 01:05:20,000 --> 01:05:22,850 Rán, kedy, kde, dostal tento výstup, a potom sa pokúsil spustiť ls 897 01:05:22,850 --> 01:05:25,600 ako l o tom, kde je shell vstavaný. 898 01:05:25,600 --> 01:05:28,790 kde je tam, ale tie ostatné neexistujú. 899 01:05:28,790 --> 01:05:32,090 Žiadny z nich existujú, v skutočnosti. 900 01:05:32,090 --> 01:05:35,560 Takže to nemusí vždy fungovať, a to tiež ukazuje, ako niektoré veci 901 01:05:35,560 --> 01:05:39,580 nerobia presne to, čo by ste si mysleli. 902 01:05:40,930 --> 01:05:43,010 Poďme sa trochu ďalej tu. 903 01:05:44,890 --> 01:05:54,760 Toto je Bash. To je tiež náhrada príkaz ako Backquote. 904 01:05:54,760 --> 01:06:05,280 Ale na rozdiel od backquote, používa túto premennú štýl. 905 01:06:05,280 --> 01:06:09,860 Existuje celý rad výrazov, ktoré začínajú znakom dolára, 906 01:06:09,860 --> 01:06:16,070 a keď to nie je variabilný, oni si požičiavali použitie znak dolára 907 01:06:16,070 --> 01:06:19,570 uviesť výraz nejakého druhu. 908 01:06:19,570 --> 01:06:23,550 To môže byť obklopený zátvorkách alebo hranatých zátvorkách alebo dvojitých zátvoriek, 909 01:06:23,550 --> 01:06:26,320 , Ktoré má iný účel. 910 01:06:26,320 --> 01:06:29,500 Jednotlivé zátvorky sú tu substitúcia príkazu rovnako ako jednoduchých spätných úvodzoviek. 911 01:06:29,500 --> 01:06:32,720 Dvojité zátvorky je vlastne aritmetické operácie. 912 01:06:32,720 --> 01:06:35,380 Existujú aj iné syntaxe, ďalšie operácie. 913 01:06:35,380 --> 01:06:41,520 Backquote syntax je k dispozícii v Bash. 914 01:06:41,520 --> 01:06:46,780 Avšak, toto je výhodné. Je to oveľa čitateľnejšie a umožňuje hniezdenia. 915 01:06:46,780 --> 01:06:51,300 Môžete mať vnútri $ (command) ďalší príkaz, 916 01:06:51,300 --> 01:06:54,590 niečo ako - 917 01:07:14,560 --> 01:07:18,210 Mám zoznam tu. 918 01:07:18,210 --> 01:07:21,670 To by fungovať, ak som mal Backquote tiež. 919 01:07:32,050 --> 01:07:38,470 Čo keď chcem urobiť niečo ako - 920 01:08:03,390 --> 01:08:06,430 Tie by sa pravdepodobne skutočne používať tento príkaz, 921 01:08:06,430 --> 01:08:14,160 ale to vnútorné nahradenie príkaz odráža názvy všetkých súborov začínajúcich, 922 01:08:14,160 --> 01:08:18,229 potom je to jeden beží ls-l na tieto súbory, 923 01:08:18,229 --> 01:08:20,500 a potom je to jedno len odráža výstup. 924 01:08:21,729 --> 01:08:24,479 Asi by si to neurobil, by si jednoducho echo alebo ls, 925 01:08:24,479 --> 01:08:29,450 ale ukazuje, ako vnorenie funguje. 926 01:08:29,450 --> 01:08:34,380 Takže len ďalšie funkcie tu. 927 01:08:34,380 --> 01:08:37,450  Spomenul som to už skôr, že ak máte kde v C-shellu, 928 01:08:37,450 --> 01:08:42,770 Typ práce v Bourne typu mušle pre vyhľadanie príkazov. 929 01:08:48,939 --> 01:08:52,270 Vstavané príkazy, len to, čo som tam ostatní. 930 01:08:52,270 --> 01:08:54,640 Príkazy sú súčasťou plášťa, ako kde. 931 01:08:54,640 --> 01:08:59,880 Keď shell spustí príkaz ako ls, že nájde to cez cestu, 932 01:08:59,880 --> 01:09:03,029 nájde ho v nejakom adresári niekde, 933 01:09:03,029 --> 01:09:05,800 znie, že do pamäte, vytvorí nový shell, 934 01:09:05,800 --> 01:09:08,960 číta príkaz ls alebo čo do shellu 935 01:09:08,960 --> 01:09:11,450 kde sú premenné prostredia už nachádza, 936 01:09:11,450 --> 01:09:14,000 a potom ich prenáša výkon na to. 937 01:09:14,000 --> 01:09:18,319 Vstavaný príkaz, kód tohto príkazu je vnútri plášťa, 938 01:09:18,319 --> 01:09:21,460 takže shell práve začína spustením časť svojho vlastného kódu. 939 01:09:21,460 --> 01:09:24,569 kde je taký príkaz. Je to vlastne dostane rýchlejšie. 940 01:09:24,569 --> 01:09:28,380 Nemusí čítať niečo v pamäti, je to už v pamäti. 941 01:09:28,380 --> 01:09:32,460 Vstavané príkazy majú vždy prednosť pred príkazy s rovnakým názvom. 942 01:09:32,460 --> 01:09:36,050 Príkazy, ktoré sú v adresároch v ceste môžu mať rovnaký názov, 943 01:09:36,050 --> 01:09:39,090 Príkazy v rôznych adresároch, súbory v rôznych adresároch. 944 01:09:39,090 --> 01:09:41,740 Ten, ktorý nastane skôr, v ceste je jednou dostanete. 945 01:09:41,740 --> 01:09:43,770 Ak je vstavaný príkaz, vždy dostanete to. 946 01:09:43,770 --> 01:09:47,890 Neexistuje žiadny spôsob, ako dať nižšiu prioritu ako príkaz v ceste. 947 01:09:47,890 --> 01:09:54,140 Ak chcete získať tento príkaz path, môžete zadať úplnú cestu. 948 01:09:54,140 --> 01:09:55,850 Ak by sa príkaz, kde v ceste niekam, 949 01:09:55,850 --> 01:09:58,440 môžete zadať / bin /, kde a vy by ste si to. 950 01:09:58,440 --> 01:10:01,800 Ak nechcete zadať celú cestu, môžete definovať alias. 951 01:10:01,800 --> 01:10:06,310 V skutočnosti, ak ste dali alias rovnaký názov ako vstavaný príkaz, že to bude fungovať 952 01:10:06,310 --> 01:10:08,790 pretože definícia alias je hodnotená 953 01:10:08,790 --> 01:10:13,220 pred tým, než shell zistí, že sa jedná o vstavaný príkaz, ktorý by mal byť vykonaný. 954 01:10:18,810 --> 01:10:23,440 Tak to je trochu zložitejšie s niektorými príkazmi tu. 955 01:10:23,440 --> 01:10:29,880 U niektorých príkazov sú v skutočnosti vstavané príkazy a v ceste. 956 01:10:29,880 --> 01:10:34,140 Jedným z nich je echo, príkaz som použiť pred chvíľou v týchto príkladoch. 957 01:10:34,140 --> 01:10:37,410 Echo je príkaz v ceste, a to v každom shellu. 958 01:10:37,410 --> 01:10:40,580 Nemusia nutne všetci správať rovnakým spôsobom. 959 01:10:40,580 --> 01:10:42,970 To bolo pôvodne príkaz len v ceste. 960 01:10:42,970 --> 01:10:45,280 Bol postavený v roku lastúry neskôr. 961 01:10:45,280 --> 01:10:48,080 Vzhľadom k tomu, tam sú možnosti, ktoré sú závislé na prostredí 962 01:10:48,080 --> 01:10:52,970 a možnosti príkazového riadku, vstavané príkazy 963 01:10:52,970 --> 01:10:57,030 boli zapísané do rovnakej funkcie ako príkaz, ktorý bol v ceste, 964 01:10:57,030 --> 01:10:59,670 to je nepravdepodobné, že by bolo napísané, že spôsob, akým 965 01:10:59,670 --> 01:11:01,720 v prípade, že príkaz nebol už bolo napísané na cestu. 966 01:11:01,720 --> 01:11:06,180 Tak to má vedľajšie účinky. Jej história má účinky tu. 967 01:11:06,180 --> 01:11:08,380 Existujú možnosti tam. 968 01:11:14,280 --> 01:11:23,060 K dispozícii je tiež možnosť definovať premennú v tcsh názvom echo_style. 969 01:11:23,060 --> 01:11:27,700 To je jedna z týchto premenných, ktoré môžu zmeniť spôsob, akým ECHO spolupracuje. 970 01:11:27,700 --> 01:11:30,910 Existujú aj ďalšie prípady, v ktorých môžete priradiť premennú 971 01:11:30,910 --> 01:11:36,290 , Ktorá mení spôsob, akým operácie shell, vrátane vstavaného príkazu, funguje. 972 01:11:36,290 --> 01:11:38,130 Nebolo by to mať vplyv na nič iné 973 01:11:38,130 --> 01:11:40,640 pretože ostatné príkazy nemajú prístup k premenným shellu, 974 01:11:40,640 --> 01:11:42,090 iba premenné prostredia. 975 01:11:42,090 --> 01:11:45,360 Ale shell operácia môže čítať premenné shellu. 976 01:11:45,360 --> 01:11:50,710 To nebude fungovať pre csh. To je len tcsh. To je jedným z ďalších rozšírení. 977 01:11:58,540 --> 01:12:04,620 Syntaktická analýza má sekvencie pri hodnotení metaznaky, 978 01:12:04,620 --> 01:12:08,140 keď sa vyhodnocuje premenné, aliasy, história odkazy. 979 01:12:08,140 --> 01:12:11,830 Tam to najmä sekvencie pre tieto veci. 980 01:12:11,830 --> 01:12:13,730 Ak tomu tak je, čo v určitom poradí 981 01:12:13,730 --> 01:12:16,080 a dostane sa na niečo, čo je výrazom druhu 982 01:12:16,080 --> 01:12:20,650 ktoré už boli hodnotené, nebude to vyhodnotiť znovu. 983 01:12:20,650 --> 01:12:24,520 Ak sa dostane to, potom to bude len odovzdávať znaky. 984 01:12:24,520 --> 01:12:29,920 Takže ak vyhodnotenie niektorých výrazov, ako je substitúcia príkazu 985 01:12:29,920 --> 01:12:36,850 pohyblivú alebo čo vedie k výrazu 986 01:12:36,850 --> 01:12:39,240 ktoré by ste chceli byť hodnotené, 987 01:12:39,240 --> 01:12:42,510 že bude fungovať len v prípade, že dôjde, že vyhodnotenie neskôr v poradí. 988 01:12:42,510 --> 01:12:45,010 Dúfam, že som je jasné, že. 989 01:12:45,010 --> 01:12:50,460 To analýze sekvencie, operácie v C-shellu, 990 01:12:50,460 --> 01:12:56,490 nie je rovnaký pre vstavaných príkazov, ako je to pre non-vstavaných príkazov. 991 01:12:56,490 --> 01:12:58,890 Nie som si istý, o Bash tu. 992 01:12:58,890 --> 01:13:02,450 Napríklad, v prípade, že premenná shell produkoval odkaz histórie, 993 01:13:02,450 --> 01:13:04,230 pravdepodobne by sa vrátiť do histórie. 994 01:13:04,230 --> 01:13:06,010 Bolo by len dostať výkričník. 995 01:13:06,010 --> 01:13:08,840 V skutočnosti, môžeme len skúsiť hneď teraz. 996 01:13:09,720 --> 01:13:18,240 sada = a budeme musieť dať to tam. 997 01:13:30,690 --> 01:13:34,580 Oh, počkaj. Prepáčte. Urobil som to v Bash. Chcel som to urobiť tu. 998 01:13:53,470 --> 01:13:56,080 Vidíš, tak to nebolo hodnotiť tento odkaz histórii 999 01:13:56,080 --> 01:14:00,520 pretože to bolo už za bod vyhodnotenie histórie výrazov 1000 01:14:00,520 --> 01:14:02,720 kedy sa hodnotí premenné. 1001 01:14:02,720 --> 01:14:05,550 Takže to je jeden efekt analýzu. 1002 01:14:05,550 --> 01:14:08,760 A opäť, vstavané príkazy nie sú vykonaná rovnakým spôsobom. 1003 01:14:08,760 --> 01:14:11,230 Dobrá. Poďme k ďalšiemu tu. 1004 01:14:11,230 --> 01:14:16,060 To má byť 1 riadok, ale je to uľahčuje čítanie. 1005 01:14:19,130 --> 01:14:21,530 Čo to bolo? 1006 01:14:21,530 --> 01:14:28,640 Možno si spomínate, že môžeme hodnotiť hviezdičkami ako zástupné znaky názvu súboru, 1007 01:14:28,640 --> 01:14:33,890 a tam sú iné meno súboru zástupné znaky, ako je otáznik a držiaku výrazov. 1008 01:14:33,890 --> 01:14:39,000 Tento druh hodnotenia sa nazýva globbing. 1009 01:14:39,000 --> 01:14:46,290 nastaviť noglob na začiatku tohto príkazu hovorí, nerobte to. 1010 01:14:46,290 --> 01:14:53,370 unset noglob hovorí, že vrátiť sa na tom, že. 1011 01:14:53,370 --> 01:14:56,440 Všimnite si, že súbor glob nebude mať tento účinok. 1012 01:14:56,440 --> 01:15:00,800 V bežnom jazyku, nastavte glob alebo unset noglob sa zdá byť rovnocenné, 1013 01:15:00,800 --> 01:15:03,290 ale tu to nie je. Je to unset noglob. 1014 01:15:05,120 --> 01:15:07,910 Teraz Tset. Tset stál terminálu sadu. 1015 01:15:07,910 --> 01:15:11,840 Je to nepoužíva tak často teraz, ale pred okenné systémy boli k dispozícii 1016 01:15:11,840 --> 01:15:15,760 a mal jediný terminál, budete musieť určiť typ. 1017 01:15:15,760 --> 01:15:18,700 A ak niečo príde cez Ethernet alebo zo siete, 1018 01:15:18,700 --> 01:15:21,120 budete chcieť povedať, že je to vt100. 1019 01:15:21,120 --> 01:15:26,630 VT100 je docela štandard v odbore termináli. Pochádza z terminálu decembra. 1020 01:15:26,630 --> 01:15:35,270 Ak ste práve robiť dial-up - všimnite si, že? To siaha spôsoby, čo? 1021 01:15:35,270 --> 01:15:39,520 Takže ak by sme jednoducho Tset sem, 1022 01:15:39,520 --> 01:15:45,250 či som to Tset, to resetovanie môj terminál, ale nič nevidel. 1023 01:15:45,250 --> 01:15:47,340 To sa naozaj nič meniť. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Dobre. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm-color. 1027 01:15:53,350 --> 01:15:57,080 Už vieme, že termín bol nastavený týmto spôsobom, tak, aby sa nezmenil. 1028 01:15:57,080 --> 01:15:58,860 To je spôsob, akým by sme chceli urobiť. 1029 01:15:58,860 --> 01:16:07,080 Ale všimnite si, že tento príkaz, Tset-s, len výstupné tieto príkazy. Nebolo spustiť. 1030 01:16:07,080 --> 01:16:09,770 Nebolo spustiť tieto príkazy, ale výstup je. 1031 01:16:09,770 --> 01:16:13,650 Takže toto je určené na výrobu príkazy, ktoré potom budú spustené. 1032 01:16:13,650 --> 01:16:16,360 Pamätáš si príkaz v tomto súbore som ukázal, že máš Q v ňom. 1033 01:16:16,360 --> 01:16:18,910 Tak poďme na to. 1034 01:16:18,910 --> 01:16:23,750 Q potláča nejaký výstup, ale to nevadí tu, ako vidíte. 1035 01:16:23,750 --> 01:16:27,980 Robím len, že vám ukázať, že na tom nezáleží. 1036 01:16:27,980 --> 01:16:31,870 To je v syntaxi backquote. 1037 01:16:31,870 --> 01:16:35,340 Poznámka Backquote tu, backquote tu. 1038 01:16:35,340 --> 01:16:37,680 Ja vynechanie tieto veci tu. 1039 01:16:37,680 --> 01:16:39,570 Jedná sa o prípady hovoriť to, čo má robiť 1040 01:16:39,570 --> 01:16:42,050 v prípade jednotlivých typov terminálov - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, siete, dial-up, čo majú vás. 1042 01:16:45,400 --> 01:16:48,050 Nezáleží na tom, tu, pretože sme vlastne robiť žiadne z týchto vecí. 1043 01:16:48,050 --> 01:16:49,720 Ja som len ilustrujúci príkaz. 1044 01:16:49,720 --> 01:16:55,170 Ak som to s Backquote, čo budem mať? 1045 01:16:55,170 --> 01:17:00,210 Tiež si všimnite, že tu to vrátane nastavenú noglob a unset noglob, 1046 01:17:00,210 --> 01:17:02,630 tak tie sa stali nadbytočnými v definícii. 1047 01:17:02,630 --> 01:17:05,380 To nie je vždy pravda, ale teraz sú zahrnuté v tomto príkaze. 1048 01:17:05,380 --> 01:17:08,890 Ale poďme sa pozrieť, čo sa stane, keď to urobím, že 1049 01:17:08,890 --> 01:17:12,570 a prejdite na začiatku riadku s ovládacím A a robím to. 1050 01:17:14,380 --> 01:17:18,040 Dobre, sada: Command not found. To je trochu divné, nie? 1051 01:17:18,040 --> 01:17:20,570 Sada je dobre známy povel. Je to časť plášťa. 1052 01:17:20,570 --> 01:17:24,040 sada: Príkaz nebol nájdený? Prečo je to tak? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Dobre, poďme si o tom myslíte. 1054 01:17:26,790 --> 01:17:31,100 Je to beh príkazu substitúciu backquote, 1055 01:17:31,100 --> 01:17:37,430 a, ktorý sa vyskytuje v určitej časti sekvencie analýzy príkaz. 1056 01:17:37,430 --> 01:17:40,360 Sada je vstavaný príkaz. 1057 01:17:40,360 --> 01:17:43,900 Takže v čase, keď to robí, že príkaz substitúcia, 1058 01:17:43,900 --> 01:17:48,280 je to už dostali za bod identifikácia vstavané príkazy. 1059 01:17:48,280 --> 01:17:51,900 Tak sa chová nastaviť ako keby sa jednalo o príkaz v ceste. 1060 01:17:51,900 --> 01:17:55,440 Netreba dodávať, že sa nenájde ju a dostanete chybu. 1061 01:17:55,440 --> 01:17:59,300 No. K dispozícii je príkladom syntaktickej analýzy sekvencie. 1062 01:17:59,300 --> 01:18:01,460 A čo budeme robiť, že? 1063 01:18:01,460 --> 01:18:04,800 Všimnite si tento veľmi zaujímavý príkaz tu, eval. 1064 01:18:04,800 --> 01:18:06,530 Zaujímalo by ma, čo to robí. 1065 01:18:06,530 --> 01:18:08,760 Ak sa pozriete na manuál - a povedzme to, že 1066 01:18:08,760 --> 01:18:12,000 ukázať, ako mätúce Tieto príručky sú - 1067 01:18:12,000 --> 01:18:19,400 man tcsh, zmätený manuálna, hľadanie vecí tu nie je ľahké ani. 1068 01:18:19,400 --> 01:18:31,850 Ideme na to, eval arg, takže môžeme mať jeden alebo viac argumentov 1069 01:18:31,850 --> 01:18:34,090 a tam je zoznam vecí, ktoré tam. 1070 01:18:34,090 --> 01:18:37,730 Zaobchádza s argumentmi ako vstupy do shellu 1071 01:18:37,730 --> 01:18:43,600 a vykonáva výsledné príkazy v kontexte súčasného plášťa. 1072 01:18:43,600 --> 01:18:46,900 To sa zvyčajne používa na vykonávanie príkazov generovaných ako výsledok príkazu 1073 01:18:46,900 --> 01:18:51,310 alebo premennú substitúcia, pretože parsovanie dôjde pred týchto substitúcií. 1074 01:18:51,310 --> 01:18:52,580 Veľmi dobrá. 1075 01:18:52,580 --> 01:18:54,740 A tu dokonca odkazujú na príkaz tNastaví pre použitie vzorky 1076 01:18:54,740 --> 01:18:57,700 ako ten, ktorý som práve ukázal vám. 1077 01:18:57,700 --> 01:19:00,440 Teraz mám dostať okno späť na užitočné miesto. 1078 01:19:03,150 --> 01:19:07,800 Poďme sem a uvidíme, že eval sa používa len pred tým. 1079 01:19:07,800 --> 01:19:14,010 Takže poďme sa pozrieť, čo sa stane, keď dáme - ideme s šípkami v tomto príkaze 1080 01:19:14,010 --> 01:19:20,940 a riadenie na začiatku, eval. 1081 01:19:20,940 --> 01:19:22,850 Dobre, tak to funguje. 1082 01:19:22,850 --> 01:19:26,440 Ak tak urobíte eval, to znamená to, čo príde po nej, a je to príkaz. 1083 01:19:26,440 --> 01:19:29,460 To umožňuje, aby v podstate analyzovať ju dvakrát. 1084 01:19:29,460 --> 01:19:33,710 Tento úsek vedie tento príkaz vnútri jednoduchých spätných úvodzoviek, 1085 01:19:33,710 --> 01:19:36,210 dostane výstup. 1086 01:19:36,210 --> 01:19:42,850 Výstup by mal byť spustený ako tie príkazy tu ako ty 1087 01:19:42,850 --> 01:19:45,890 na tento a tento. 1088 01:19:45,890 --> 01:19:50,100 Takže tieto príkazy sú teraz tu v tomto poradí, 1089 01:19:50,100 --> 01:19:58,950 ale títo sú vstavané príkazy, a to nemôže dostať hneď. 1090 01:19:58,950 --> 01:20:06,440 Tak ideme na eval, eval zdvihne, že sa začína celú vec znova, a to funguje. 1091 01:20:06,440 --> 01:20:18,460 Príkladom obaja backquoting, eval, rozobrať, dôsledky rozobrať, 1092 01:20:18,460 --> 01:20:21,910 a príkaz, ktorý je pravdepodobne veľmi malé použitie pre vás v dnešnej dobe. 1093 01:20:21,910 --> 01:20:25,540 Dobre. Dobre, umask. 1094 01:20:25,540 --> 01:20:32,160 Pozrime sa na tento povel tu, umask 022. Zaujímalo by ma, čo to robí. 1095 01:20:32,160 --> 01:20:38,420 Povedzme, napíšte umask nič po ňom. 22. Dobre. 1096 01:20:38,420 --> 01:20:44,350 022 a urobiť to znova. 1097 01:20:44,350 --> 01:20:48,580 Ako ste si mohli myslieť, umask bez argumentov vám povie aktuálne masku; 1098 01:20:48,580 --> 01:20:51,760 umask s argumentmi, je to, že, ale to bolo raz už som mal. 1099 01:20:51,760 --> 01:20:53,800 Čo to 022 znamená? 1100 01:21:01,650 --> 01:21:07,080 Jedná sa tu o ochrán na súbor. 1101 01:21:07,080 --> 01:21:11,440 Majú zistiť, kto je oprávnený čítať alebo písať, alebo spustiť súbor. 1102 01:21:11,440 --> 01:21:16,560 Ochrany sú tiež nazývané oprávnenia. 1103 01:21:16,560 --> 01:21:21,390 R je skratka pre čítanie, w pre zápis, 1104 01:21:21,390 --> 01:21:25,500 a x, ktorý nie je prítomný, znamená vykonať. 1105 01:21:25,500 --> 01:21:27,260 K dispozícii sú 3 kategórie tam. 1106 01:21:27,260 --> 01:21:33,540 Posledné 3 prvky sú v kategórii užívateľa. Tí, ktorí sa na mňa vzťahujú užívateľa. 1107 01:21:33,540 --> 01:21:36,870 Tieto 3 tu platí pre skupiny. 1108 01:21:36,870 --> 01:21:41,590 Súbor patrí do 1. skupiny, môže užívateľ patriť do niekoľkých skupín, 1109 01:21:41,590 --> 01:21:47,150 ale ak je používateľ v skupine, ku ktorej tento súbor patrí, 1110 01:21:47,150 --> 01:21:51,090 potom sa táto ochrana sa bude vzťahovať k nemu, ak to nie je užívateľ. 1111 01:21:51,090 --> 01:21:54,230 A toto je každý iný. 1112 01:21:55,540 --> 01:21:57,690 Tieto kategórie sa navzájom vylučujú. 1113 01:21:57,690 --> 01:21:59,750 Užívateľ ochrany sa vzťahujú k nemu, 1114 01:21:59,750 --> 01:22:03,780 ochrán skupiny sa vzťahujú na členov skupiny iných, než je používateľ, 1115 01:22:03,780 --> 01:22:08,110 a ďalšie ochrana platí len pre iné ako pre používateľov a členov skupiny ľudí. 1116 01:22:08,110 --> 01:22:12,320 Ak existuje r alebo aw alebo x, to znamená, že ochrana je poskytovaná. 1117 01:22:12,320 --> 01:22:13,950 Ak je pomlčka, znamená to, že tomu tak nie je. 1118 01:22:13,950 --> 01:22:16,690 Tam vlastne sú iné veci, ktoré môžu byť zaradené do tu vedľa nich, 1119 01:22:16,690 --> 01:22:18,350 ktoré som sa dostať do teraz. 1120 01:22:18,350 --> 01:22:24,450 Umask definuje predvolené nastavenie pre súbory, ktoré ste vytvorili. 1121 01:22:24,450 --> 01:22:28,580 A ako masku, v podstate hovorí, že kúsky, ktoré nechcete nastaviť. 1122 01:22:28,580 --> 01:22:30,450 Ako sa to stane bitov? 1123 01:22:30,450 --> 01:22:33,240 Ak si myslíte, že každý z nich ako osmičkové číslo, 1124 01:22:33,240 --> 01:22:42,120 to je 1s bit, to je 2 s, to je 4S. 1125 01:22:42,120 --> 01:22:45,840 Takže 0 až 7 1126 01:22:45,840 --> 01:22:51,770 popíše, aká kombinácia r je, w je, a x je máte pre tieto tri 1127 01:22:51,770 --> 01:22:53,710 a podobný počet pre tieto a potom sa pre tieto prípady. 1128 01:22:53,710 --> 01:23:12,030 Takže 022 znamená 0 ​​pre ostatné, 2 pre skupinu, 2 pre užívateľa. 1129 01:23:12,030 --> 01:23:15,870 Ale to je maska. Maska je to, čo nemáte. 1130 01:23:19,380 --> 01:23:20,610 Je mi to ľúto. Len som ti dal veci v zlom poradí. 1131 01:23:20,610 --> 01:23:25,620 Je to prvá 3. Tieto 3 sú užívateľ, tieto 3 sú skupina, tieto 3 sú ostatné. 1132 01:23:25,620 --> 01:23:27,970 Prepáč, že som ti to dal v nesprávnom poradí. 1133 01:23:27,970 --> 01:23:31,910 0, čo je prvá z tých, nezobrazuje hodnotu, 1134 01:23:31,910 --> 01:23:35,430 ale ak číslo nie je, to je 0. 1135 01:23:35,430 --> 01:23:38,370 To znamená, že všetky 3 z nich by bolo povolené. 1136 01:23:38,370 --> 01:23:41,550 Všimnite si, že v tomto konkrétnom jednom x nie je povolené. 1137 01:23:41,550 --> 01:23:44,090 Dôvodom je to, že plášť je schopný určiť 1138 01:23:44,090 --> 01:23:46,260 či súbor by mal byť spustený, alebo nie. 1139 01:23:46,260 --> 01:23:49,800 Vzhľadom k tomu, že to nie je spustiteľný súbor, to nenastavil x. 1140 01:23:49,800 --> 01:23:54,000 Na 2 znamená, že povolenie na zápis, na druhú kategóriu tu, 1141 01:23:54,000 --> 01:23:56,500 jeden v strede, sa zamieta. 1142 01:23:56,500 --> 01:23:58,500 Takže znovu, to sú veci, ktoré to popieral. 1143 01:23:58,500 --> 01:24:02,080 No, x je povolený, ale nie je to tu, pretože to nie je spustiteľný 1144 01:24:02,080 --> 01:24:04,260 a podobne pre ostatné. 1145 01:24:04,260 --> 01:24:08,880 Tak to je spoločná umask. 1146 01:24:08,880 --> 01:24:14,630 Ďalším spoločným jeden je 700 - dať si všetko a nikto iný nič. 1147 01:24:14,630 --> 01:24:17,040 A existujú aj iné možnosti. 1148 01:24:21,340 --> 01:24:27,110 Vrátim sa k tomu. Použitie histórie môžem hľadať späť, že LWH tam. 1149 01:24:27,110 --> 01:24:30,210 Dobre. Tak tu, to sú škrupiny. 1150 01:24:30,210 --> 01:24:36,020 Bash, majiteľ, ktorý je systémový účet, môžete robiť všetko. 1151 01:24:36,020 --> 01:24:41,210 Group a všetci ostatní môžu urobiť, čítať alebo spúšťať, ale nie písať. 1152 01:24:41,210 --> 01:24:44,570 Tento človek nedovolí ani majiteľ zapisovať do neho. 1153 01:24:44,570 --> 01:24:46,460 Ak majiteľ chcel napísať to, systémový účet, 1154 01:24:46,460 --> 01:24:48,020 by musel najprv zmeniť ochranu. 1155 01:24:48,020 --> 01:24:53,940 Ale opäť, umask nastaví východiskový zakrývať to, 1156 01:24:53,940 --> 01:24:57,160 uvedením bity, ktoré nebudú nastavené. 1157 01:24:57,160 --> 01:25:04,380 To je zvyčajne v jednom zo svojich konfiguračných súborov, čo je. Cshrc pre C-shell 1158 01:25:04,380 --> 01:25:07,500 alebo. profilu pre Bourne-typu mušlí. 1159 01:25:07,500 --> 01:25:12,520 To môže byť na inom mieste aj v prípade, že sú aj iné inicializačné súbory v systéme. 1160 01:25:12,520 --> 01:25:14,610 Mimochodom, to je umask. 1161 01:25:14,610 --> 01:25:18,180 Je tu niečo, čo trochu divný tu, 1162 01:25:18,180 --> 01:25:22,800 a to je, prečo je tam jeden príkaz na to? 1163 01:25:22,800 --> 01:25:28,690 Keby som písal to by som aby to premenná, umask = nejaká hodnota. 1164 01:25:28,690 --> 01:25:31,100 Prečo je tam celý príkaz len na tento účel? 1165 01:25:31,100 --> 01:25:34,560 Dôvodom je to len ide späť ku koreňom Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix bol len nejaký programovací projekt v Bellových laboratóriách v roku 1970. 1167 01:25:41,050 --> 01:25:42,610 Ľudia proste dali dohromady, aby program. 1168 01:25:42,610 --> 01:25:45,290 Oni nikdy nemal v úmysle, aby sa stala po celom svete operačného systému. 1169 01:25:45,290 --> 01:25:47,250 Rôzni ľudia písali rôzne časti bez premýšľania moc 1170 01:25:47,250 --> 01:25:49,790 o tom, ako sa chystajú využiť - skôr útržkovité. 1171 01:25:49,790 --> 01:25:53,290 A to zišlo takto, a je to stále ako, že v niektorých ohľadoch. 1172 01:25:53,290 --> 01:25:57,930 Tak, že odráža históriu, a tam sú ešte tieto nezrovnalosti a nepárne prvky neho. 1173 01:25:57,930 --> 01:26:00,750 Dobre. Ďalší, kto tu. 1174 01:26:08,170 --> 01:26:11,000 Ako som písal predtým, C-shell nie je naozaj používa moc pre programovanie, 1175 01:26:11,000 --> 01:26:12,420 aj keď to môže byť. 1176 01:26:12,420 --> 01:26:15,080 To vykonáva pomalšie, znova trade-off medzi interaktívnym použitie, 1177 01:26:15,080 --> 01:26:17,820 ktorá má viac zapojiť, ako rýchlosť spracovania, 1178 01:26:17,820 --> 01:26:20,710 ktoré môžete urobiť bez spracovania. 1179 01:26:20,710 --> 01:26:28,320 Medzi ďalšie funkcie pridané do Bourne shellu od Korn a Bourne-znova mušlí 1180 01:26:28,320 --> 01:26:32,120 Nezdá sa spomaliť, a ja neviem, prečo tomu tak je. 1181 01:26:32,120 --> 01:26:36,310 Mohlo by to byť len lepšie programovania, ale ja nie som v pozícii, vedieť. 1182 01:26:36,310 --> 01:26:40,420 Rýchlosť tu v skutočnosti nie je tak veľký problém, aj keď je uvedené. 1183 01:26:40,420 --> 01:26:43,690 Dôvodom je, že skripty skutočne získať pomerne rýchlo. 1184 01:26:43,690 --> 01:26:46,450 Ak tam je veľa príkazov ako v calculational programu, 1185 01:26:46,450 --> 01:26:49,110 pravdepodobne by sa to urobiť v shell skript. 1186 01:26:49,110 --> 01:26:51,450 Operácia je pomerne jednoduché a priamočiare. 1187 01:26:51,450 --> 01:26:53,960 Tie, ktoré som zažil, že sú príliš pomalé 1188 01:26:53,960 --> 01:26:57,110 zahŕňať opakované aplikácie pomalých príkazov. 1189 01:26:57,110 --> 01:27:00,480 Predtým som sa zmienil o prúdový editor sed. Tento príkaz je pomalý. 1190 01:27:00,480 --> 01:27:03,760 Ak vykonáte sed mnohokrát, budete mať pomalý scenár, ale nie je to shell, ktorý je pomalý. 1191 01:27:03,760 --> 01:27:07,920 Beh je v Bourne shellu nebude oveľa rýchlejšie, než beží to v C-shellu, 1192 01:27:07,920 --> 01:27:10,070 aj keď to možno niektoré výhody tam. 1193 01:27:10,070 --> 01:27:12,760 Medzi ďalšie programovacie funkcie, na druhej strane, 1194 01:27:12,760 --> 01:27:17,920 sú významné dôvody, prečo by ste používajú Bourne typu škrupiny. 1195 01:27:17,920 --> 01:27:21,390 C-shell má nepárne funkcie na to - 1196 01:27:21,390 --> 01:27:25,250 Skutočnosť, že neviem, či je premenná shellu premennú alebo premennú prostredia. 1197 01:27:25,250 --> 01:27:27,440 To môže byť veľmi mätúce. 1198 01:27:27,440 --> 01:27:32,170 Nie je to tak ľahké písať 1199 01:27:32,170 --> 01:27:35,930 len na základe svojich skúseností z programovania v iných jazykoch. 1200 01:27:35,930 --> 01:27:41,350 Myslím, že môžete nájsť Bourne typu škrupiny viac v súlade s vašou skúsenosťou. 1201 01:27:43,730 --> 01:27:49,270 Niektoré skripty, aj keď môžu byť tisíce liniek v dĺžke. 1202 01:27:49,270 --> 01:27:52,450 Tie, ktoré som videl sa používajú pre zaplátanie operačných systémov. 1203 01:27:52,450 --> 01:27:55,450 Tí môžu vykonávať veľmi pomaly, ale nechcete spustiť tie veľmi často. 1204 01:27:55,450 --> 01:27:57,180 Je to len vtedy, keď robíte záplatovanie, 1205 01:27:57,180 --> 01:27:59,450 a je to len systém manažér, ktorý robí tieto veci, 1206 01:27:59,450 --> 01:28:01,840 takže to naozaj nie je moc problém. 1207 01:28:01,840 --> 01:28:06,980 Tí, ktorí sú stovky riadkov dlho vlastne vykonať pomerne rýchlo. 1208 01:28:06,980 --> 01:28:10,540 , Kde je tento tu, aké sú tie vylepšenia? 1209 01:28:10,540 --> 01:28:13,170 Už som sa zmienil niektoré z nich - pole, výpočty, 1210 01:28:13,170 --> 01:28:20,540 na $ () výraz pre výpočty v Bash shellu, 1211 01:28:20,540 --> 01:28:23,050 iný druh substitúcia príkazu. 1212 01:28:23,050 --> 01:28:25,360 Existujú rôzne druhy príkazov testovanie 1213 01:28:25,360 --> 01:28:29,350 ktorú môžete urobiť, podmienené testy na existenciu súboru alebo iné veci. 1214 01:28:29,350 --> 01:28:34,790 Naposledy tu, tento príkaz tu. 1215 01:28:34,790 --> 01:28:38,480 Čo to urobiť, a prečo by ho použiť niekto? 1216 01:28:51,170 --> 01:28:52,990 printenv variablename. 1217 01:28:52,990 --> 01:28:56,130 Vieme, čo printenv robí. To nám hovorí, že hodnotu premennej. 1218 01:28:56,130 --> 01:29:00,850 A printenv variablename sa nám to povedať moc, pretože tam žiadna taká premenná. 1219 01:29:03,550 --> 01:29:05,120 Blank. 1220 01:29:05,120 --> 01:29:08,440 Ale dajme tomu niečo zmysluplného. 1221 01:29:13,420 --> 01:29:16,800 To nie je ani tam. Dobre. Myslím, že som nikdy definovaná tak, že. 1222 01:29:16,800 --> 01:29:18,020 Povedzme, pozri sa na môj prostredia. 1223 01:29:18,020 --> 01:29:20,900 To je ďalší príkaz, ktorú si môžete prezrieť svoje prostredie. 1224 01:29:20,900 --> 01:29:24,470 Tam je starý dobrý EDITOR, ktorý sme videli predtým. 1225 01:29:42,360 --> 01:29:44,120 Čo to bolo? 1226 01:29:44,120 --> 01:29:48,050 Tu máme backquote výraz. 1227 01:29:48,050 --> 01:29:50,370 Nezabudnite, je to C-shell. 1228 01:29:50,370 --> 01:29:54,850 Takže printenv EDITOR nám dá hodnotu editora. Je to vi. 1229 01:29:54,850 --> 01:29:59,790 A potom sa nastaví túto hodnotu do premennej a, príkazom set. 1230 01:29:59,790 --> 01:30:02,860 Takže teraz, keď to urobím echo $ a, mám vi. 1231 01:30:02,860 --> 01:30:05,850 To sa nezdá byť strašne užitočné. 1232 01:30:05,850 --> 01:30:08,080 Avšak, to vlastne robí má zmysel. 1233 01:30:08,080 --> 01:30:12,260 Vzhľadom k tomu, že nevieme, či premenná je premenná shellu alebo premennú prostredia 1234 01:30:12,260 --> 01:30:16,280 pomocou syntaxe skúšobnej znak dolára, môžeme použiť printenv 1235 01:30:16,280 --> 01:30:19,460 aby sa ubezpečil, že je to premenná prostredia. 1236 01:30:19,460 --> 01:30:22,550 Takže ak tam bolo shell variabilný editor, to by sa nedostal ju. 1237 01:30:22,550 --> 01:30:25,640 To pracuje iba s premennou prostredia. 1238 01:30:25,640 --> 01:30:28,370 Ak by sa premenná shellu a chcel som jeho hodnotu, 1239 01:30:28,370 --> 01:30:29,980 Budem musieť nájsť nejaký iný spôsob, ako to urobiť. 1240 01:30:29,980 --> 01:30:33,530 Jeden spôsob, ako to urobiť, by bolo tým, že robí sadu a potrubia. 1241 01:30:33,530 --> 01:30:36,130 To je jeden z metaznaky, špeciálne znaky. 1242 01:30:36,130 --> 01:30:38,370 To pošle výstup súboru na niečo iné. 1243 01:30:38,370 --> 01:30:40,650 Poďme sa pozrieť, čo sme tam mohli nájsť. 1244 01:30:40,650 --> 01:30:49,340 Nič. Dobre. Poďme sa len pozrieť, čo je tam všetko dohromady. 1245 01:30:49,340 --> 01:30:53,580 Bolo echo_style, ktorú som už spomenul. Dobre, poďme to urobiť. 1246 01:31:02,460 --> 01:31:06,230 Spomínam si, ako už bolo spomenuté predtým, echo_style 1247 01:31:06,230 --> 01:31:08,410 určuje spôsob echo príkaz spustiť. 1248 01:31:08,410 --> 01:31:10,940 bsd je skratka pre Berkeley štandardné distribúcie. 1249 01:31:10,940 --> 01:31:13,200 To je Berkeley Unix z roku 1970. 1250 01:31:13,200 --> 01:31:16,630 To je jeden zo spôsobov, ktoré odrážajú môže bežať. 1251 01:31:16,630 --> 01:31:22,310 Nastavenie echo_style na túto hodnotu v TC-shell spôsobí, že echo správať týmto spôsobom. 1252 01:31:22,310 --> 01:31:27,670 Takže nastaviť robí, ale nastavte dostane iba premenné shellu. 1253 01:31:27,670 --> 01:31:35,430 To by sa nenašiel Editor, ktorý nie je premenná shellu. 1254 01:31:36,870 --> 01:31:38,050 Nič. 1255 01:31:38,050 --> 01:31:39,660 Takže to je jeden spôsob, ako ich rozlíšiť. 1256 01:31:39,660 --> 01:31:42,000 Ale skutočnosť, že budete musieť ísť cez nejakého podivného príkazom, že 1257 01:31:42,000 --> 01:31:45,500 rozlišovať medzi premenných shellu a premenné prostredia 1258 01:31:45,500 --> 01:31:49,970 ukazuje druh nepraktické povahe C-shell pre niektoré účely. 1259 01:31:52,290 --> 01:31:57,960 A teraz, posledná a možno najmenej, to je manuálové stránky. 1260 01:31:57,960 --> 01:32:03,190 Tí, ktorí možno viete, človek je príkaz skratka pre návodu. 1261 01:32:03,190 --> 01:32:08,610 Manuálové stránky pre škrupiny sú ťažko čitateľné. Sú veľmi dlho. 1262 01:32:08,610 --> 01:32:14,060 Sú organizovaná spôsobom, ktorý môže robiť to ťažké nájsť, čo hľadáte. 1263 01:32:14,060 --> 01:32:15,980 Takže ak hľadáte niečo s účelom, 1264 01:32:15,980 --> 01:32:20,050 nemusí vedieť, či tento účel je premenná shellu alebo niečo iné, 1265 01:32:20,050 --> 01:32:21,630 takže nemusia vedieť, kde ju hľadať. 1266 01:32:21,630 --> 01:32:25,030 Môžete sa pozrieť na rôzne reťazca, ale reťazca sa často opakujú. 1267 01:32:25,030 --> 01:32:27,640 Takže je to väčšinou zle čitateľný. 1268 01:32:27,640 --> 01:32:33,810 Práve sme sa pozrel na manuálové stránke TC-shell trochu pred nájsť príkaz eval. 1269 01:32:33,810 --> 01:32:36,610 Niektoré veci idú rýchlejšie. 1270 01:32:36,610 --> 01:32:38,860 Jedným zo spôsobov je hľadať reťazec. 1271 01:32:38,860 --> 01:32:40,360 Môžete použiť pager. 1272 01:32:40,360 --> 01:32:49,080 Pager má lomítko sa pozrieť na príkaze alebo reťazca vnútri prevádzku pagera. 1273 01:32:49,080 --> 01:32:52,830 Muž v predvolenom nastavení bude používať pagery, či už viac či menej. 1274 01:32:52,830 --> 01:32:56,560 Ja neviem, či ste oboznámení s tými, ale ti môže ukázať súbory kúsok po kúsku. 1275 01:32:56,560 --> 01:33:00,550 Bol som pomocou LESS zobrazenie týchto jednotlivých súborov sme sa sem dostali. 1276 01:33:00,550 --> 01:33:03,300 Môžete hľadať tam vnútri. 1277 01:33:03,300 --> 01:33:04,880 Vyskúšajte stránkovania pomocou rôznych vyhľadávacích reťazcov. 1278 01:33:04,880 --> 01:33:08,420 Tiež manuálové stránky v rôznych operačných systémoch nemusia byť rovnaké. 1279 01:33:08,420 --> 01:33:11,130 Môžu byť samostatné stránky pre csh a tcsh. 1280 01:33:11,130 --> 01:33:14,500 Sú to nie sú na Mac, ale môžu byť, ak sú samostatné príkazy. 1281 01:33:14,500 --> 01:33:19,000 Ak sh nie je naozaj volať Bash, tam asi bude samostatný muž stránku. 1282 01:33:19,000 --> 01:33:25,820 Niektoré systémy majú oddelené manuálové stránky iba pre C-shell vstavaných príkazov. 1283 01:33:25,820 --> 01:33:30,250 Niekedy, ak si chcete prečítať popis vstavaným príkazom 1284 01:33:30,250 --> 01:33:35,350 to je tiež v ceste, ako ozvena, musíte si prečítať stránku manuálu na tento príkaz na echo 1285 01:33:35,350 --> 01:33:37,610 zistiť, ako to bude fungovať ako vstavaný príkaz 1286 01:33:37,610 --> 01:33:39,760 aj keď nie ste volanie vstavaný príkaz. 1287 01:33:41,630 --> 01:33:46,090 To je nevýhoda operačného systému všeobecne, nielen pre škrupiny, 1288 01:33:46,090 --> 01:33:50,710 aj keď pre škrupín najmä manuálové stránky sú pomerne dlhé, 1289 01:33:50,710 --> 01:33:56,180 čiastočne preto, že som pridal užitočných funkcií k nim, čo môže byť pozitívny. 1290 01:33:56,180 --> 01:34:00,290 Dobre. Sú nejaké otázky? Všetky témy, ktoré chcete vychovať? 1291 01:34:00,290 --> 01:34:03,390 Niečo tu relevantné? 1292 01:34:04,540 --> 01:34:07,100 No, bolo to veľmi príjemné hovoriť s vami všetkými. 1293 01:34:07,100 --> 01:34:09,690 Dúfam, že sa vám niečo z tohto seminára 1294 01:34:09,690 --> 01:34:13,080 ktoré budú užitočné pre vás vo vašej ďalšej činnosti. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]