1 00:00:00,000 --> 00:00:02,320 >> [Szeminárium - Unix Kagyló, környezet] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [Ez CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> A mai téma a Unix shell. 5 00:00:12,770 --> 00:00:20,600 Én Douglas Kline, szakértő, vagy legalábbis ésszerűen illetékes felhasználó, a héj. 6 00:00:20,600 --> 00:00:25,280 A héj a felület a felhasználó számára, hogy a számítógép operációs rendszerét. 7 00:00:25,280 --> 00:00:29,580 A név félrevezető, mivel, ellentétben egy állat héj, 8 00:00:29,580 --> 00:00:34,890 amely kemény és védő, a számítógép shell lehetővé teszi a kommunikációt. 9 00:00:34,890 --> 00:00:39,120 Tehát porózus membrán valószínűleg jobb metafora. 10 00:00:39,120 --> 00:00:44,500 >> Az eredeti shell Unix a Bourne shell. 11 00:00:44,500 --> 00:00:46,450 Bourne tönkölybúza B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne volt az eredeti szerzők Unix, 13 00:00:49,770 --> 00:00:51,700 így a shell róla nevezték el. 14 00:00:51,700 --> 00:00:54,850 A neve, hogy a héj, mint a parancs egyszerűen sh. 15 00:00:54,850 --> 00:00:57,400 Ezt a parancsot végre tud hajtani. 16 00:00:57,400 --> 00:01:00,810 A héj indul bejelentkezéskor. 17 00:01:00,810 --> 00:01:04,459 Ha bejelentkezik a számítógépre, a shell csak elindul az Ön számára, 18 00:01:04,459 --> 00:01:06,820 és ez az, mi történik a parancsokat. 19 00:01:06,820 --> 00:01:09,790 Meg lehet kezdeni máskor is. 20 00:01:09,790 --> 00:01:16,780 Ha feljön egy ablak nincs más jelzés, akkor elindítható egy héj az Ön számára. 21 00:01:16,780 --> 00:01:20,450 Így az, hogy lehet menni az ablakhoz, és kezdje el beírni a parancsokat 22 00:01:20,450 --> 00:01:23,960 és így tovább, még akkor is, ha nem jelentkeztünk be az, hogy az ablakot. 23 00:01:23,960 --> 00:01:26,670 Ezen kívül, ha egy távoli bejelentkezés, 24 00:01:26,670 --> 00:01:30,250 akkor indul a shell a távoli számítógépen. 25 00:01:30,250 --> 00:01:44,310 És lehetséges, hogy a parancsokat nem interaktív shell. 26 00:01:44,310 --> 00:01:48,990 Ez azt is jelentheti, a jelenlegi működés, 27 00:01:48,990 --> 00:01:50,700 és azt is jelenti, a távvezérlés. 28 00:01:50,700 --> 00:01:52,900 Lehet küldeni a parancsot egy másik számítógépre, 29 00:01:52,900 --> 00:01:55,460 amely induló héjat. 30 00:01:55,460 --> 00:01:57,760 Sőt, azt kell tartalmaznia induló héjat 31 00:01:57,760 --> 00:02:01,740 akkor is, ha ez nem a végső cél. 32 00:02:05,310 --> 00:02:12,350 Ha valami elindul, mint ez, nem feltétlenül egy új shell. 33 00:02:12,350 --> 00:02:17,430 Ha feljön egy új ablak, akkor lehet mondani, hogy felnevel egy szerkesztő 34 00:02:17,430 --> 00:02:18,940 vagy más parancsot. 35 00:02:18,940 --> 00:02:20,560 Ebben az esetben, a szerkesztő indul a semmiből. 36 00:02:20,560 --> 00:02:22,930 Amikor a szerkesztő véget ér, az ablak véget ér. 37 00:02:22,930 --> 00:02:24,620 Ez egy kicsit szokatlan, de meg lehet csinálni. 38 00:02:24,620 --> 00:02:27,140 Azokban az esetekben, nem lesz egy héj. 39 00:02:27,140 --> 00:02:31,890 Tehát ez nem feltétlenül igaz, hogy egy ablak, vagy valami hasonló alkalmazás hozza létre a shell. 40 00:02:31,890 --> 00:02:34,030 >> Shell elemzi parancsokat. 41 00:02:34,030 --> 00:02:40,900 Elemzés azt azonosítja a különböző elemek és osztályozza őket. 42 00:02:40,900 --> 00:02:43,470 Belül a parancsot, a teljes szöveg, hogy a beírt, 43 00:02:43,470 --> 00:02:47,310 nem lesz 1 vagy több, egységes parancsok végrehajtását. 44 00:02:47,310 --> 00:02:50,050 Egyéb elemek is lehet érveket. 45 00:02:50,050 --> 00:02:55,020 Ott is különleges karakterek, amelyek hatással vannak az a parancs végrehajtása. 46 00:02:55,020 --> 00:02:59,710 Tudnak küldeni a kimenetet valahol más, mint a képernyő 47 00:02:59,710 --> 00:03:01,750 Ha a parancs általában küldje el a képernyőn. 48 00:03:01,750 --> 00:03:04,390 Meg lehet átirányítani bemenet, akkor mással is. 49 00:03:04,390 --> 00:03:08,120 Vannak egyéb szimbólumok, karakterek, és így tovább. 50 00:03:08,120 --> 00:03:13,600 Elemzés magában észlelése és értelmezése ezeket a dolgokat. 51 00:03:13,600 --> 00:03:19,560 >> Nos, ha nincs több kérdés, ami elég valószínű, mert nincs több ember, 52 00:03:19,560 --> 00:03:24,620 megyünk tovább a következő oldalon itt. 53 00:03:24,620 --> 00:03:29,170 >> Azt mondta korábban, hogy a Bourne shell a kezdeti shell. 54 00:03:29,170 --> 00:03:31,550 Vannak mások. 55 00:03:31,550 --> 00:03:34,520 Az egyik a C-shell. A parancs csh. 56 00:03:34,520 --> 00:03:36,830 A név a C-shell csak egy játék a szavakkal. 57 00:03:36,830 --> 00:03:41,260 Ez a shell került bevezetésre Berkeley Unix, a 1970-es évek. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix volt hatású esemény a fejlesztés a Unix. 59 00:03:44,830 --> 00:03:48,770 Ez egy hatalmas forradalom és benne a bevezetése ez a héj. 60 00:03:48,770 --> 00:03:50,790 Ennek oka, hogy a játék a szavakkal, a C-shell, 61 00:03:50,790 --> 00:03:56,490 az, hogy a C-shell van néhány jellemzőjét is, amely hasonlít a C nyelv, 62 00:03:56,490 --> 00:03:59,740 amely a Bourne shell nincs - 63 00:03:59,740 --> 00:04:02,140 vagy nem volt abban az időben. 64 00:04:02,140 --> 00:04:05,190 Van még a TC-shell. 65 00:04:05,190 --> 00:04:07,360 Ez felülbírálja a C-shell. 66 00:04:07,360 --> 00:04:11,470 Ez további funkciók, amelyek közül sok a hasznos interaktív használatra, 67 00:04:11,470 --> 00:04:16,050 mint például emlékeztetve parancsok történetében mechanizmus 68 00:04:16,050 --> 00:04:18,459 amely fogom leírni valamivel később - 69 00:04:18,459 --> 00:04:23,120 egy egyszerű módon, mintájára egy szerkesztő. 70 00:04:23,120 --> 00:04:29,170 Azt is kötések, amelyek lehetővé teszik, hogy kötelező a rövid kulcs karakterlánc hosszabb parancsot. 71 00:04:29,170 --> 00:04:31,440 Mi nem fog bekerülni, hogy a mai. 72 00:04:31,440 --> 00:04:33,650 Van néhány szolgáltatás, amely hasznos a programozás. 73 00:04:33,650 --> 00:04:37,020 Azonban a C-shell nem gyakran használják héj programozás. 74 00:04:37,020 --> 00:04:39,080 Shell program, ha nem már tudja, 75 00:04:39,080 --> 00:04:41,690 olyan programok, áll a shell jellemzőit. 76 00:04:41,690 --> 00:04:43,220 Lehet futtatni ezeket a programok. 77 00:04:43,220 --> 00:04:46,760 Írsz egy csomó shell parancsok egy fájlt, és végrehajtja a fájlt. 78 00:04:46,760 --> 00:04:49,760 Nem kell, hogy fordítsuk le. Ez egy értelmező nyelv. 79 00:04:49,760 --> 00:04:57,320 A kifejezés a C-shell most kétséges, mivel ez lehet, hogy csak azokra az eredeti C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 vagy mind a C-kagyló, beleértve a tcsh. Ez egy kicsit félreérthető. 81 00:05:01,200 --> 00:05:08,250 >> Egy későbbi héj a Korn shell, ksh, névadója a programozó, Korn. 82 00:05:08,250 --> 00:05:14,160 Ez a shell megpróbálta beépíteni 1. shell 83 00:05:14,160 --> 00:05:16,960 előnye a C-shell interaktív használata 84 00:05:16,960 --> 00:05:19,230 és a Bourne shell programozás. 85 00:05:19,230 --> 00:05:25,440 Azt használják, mint egy interaktív shell néhány ember - a kisebbség. 86 00:05:25,440 --> 00:05:32,050 Később azonban volt egy másik bevezetése, a Bash shell, bash, 87 00:05:32,050 --> 00:05:35,290 Ismét egy játék a szavakkal, Bourne-again shell. 88 00:05:35,290 --> 00:05:43,830 Ez egy kiterjesztése a Bourne shell. Korn shell is. Mindkettő. 89 00:05:43,830 --> 00:05:48,100 Ugyanaz a célkitűzései Korn héj egyesíti a C-shell 90 00:05:48,100 --> 00:05:50,980 és a Bourne shell előnyeit az 1. shell. 91 00:05:50,980 --> 00:05:56,810 Sok a fejlesztések a Korn shell is szerepel Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, azonban több, és ezért előnyös. 93 00:06:00,710 --> 00:06:05,180 A Bourne-Again Shell és a Korn shell nevezzük Bourne-típusú kagyló 94 00:06:05,180 --> 00:06:07,730 mert ezek között a Bourne shell jellemzői, 95 00:06:07,730 --> 00:06:11,180 amelyek összeegyeztethetetlenek bizonyos tekintetben a C-kagyló. 96 00:06:11,180 --> 00:06:15,520 Vannak más héjak kívül azokat, némi szánt korlátozott felhasználás, 97 00:06:15,520 --> 00:06:20,670 Lehet, hogy csak a néhány parancs, esetleg speciális célú, nem túl gyakran használják. 98 00:06:20,670 --> 00:06:24,240 >> Oké. Következő termék itt. 99 00:06:31,300 --> 00:06:38,970 A Bash shell vált összefüggő különböző formái a Linux. 100 00:06:38,970 --> 00:06:41,550 Nem vagyok benne biztos, hogy ez igaz, minden formában. 101 00:06:41,550 --> 00:06:43,280 Számos formája van odakint, és én nem használtam őket, 102 00:06:43,280 --> 00:06:46,870 de az, hogy én használtam vált társul hozzá. 103 00:06:46,870 --> 00:06:49,670 Amennyire én tudom, nincs semmi a Bash 104 00:06:49,670 --> 00:06:52,210 ami többé kompatibilis a Linux 105 00:06:52,210 --> 00:06:55,020 mint bármely más kombinációja a héj és az operációs rendszert. 106 00:06:55,020 --> 00:06:59,690 Azt hiszem, ez valószínűleg csak tükrözi hajlamait a programozók. 107 00:06:59,690 --> 00:07:07,500 Hogy ez lett jár a Linux a másik oka, hogy inkább Bash KSH 108 00:07:07,500 --> 00:07:11,820 mivel a dolgok valószínűleg írt, és ez valószínű, hogy terjed. 109 00:07:11,820 --> 00:07:15,410 Adok más oka, hogy később. 110 00:07:15,410 --> 00:07:21,330 Bourne shell script kell futtatni a Korn shell vagy. 111 00:07:21,330 --> 00:07:22,650 Ha írsz valamit a Bourne shell, 112 00:07:22,650 --> 00:07:26,180 akkor talán végre alatt ksh vagy bash. 113 00:07:26,180 --> 00:07:30,610 Korn shell scriptek valószínűleg futni a Bash, de nem tudom garantálni, hogy. 114 00:07:30,610 --> 00:07:36,040 Később itt, a C-shell script kell futtatni a TC-shell. 115 00:07:38,850 --> 00:07:41,690 A C-shell valójában soha nem széles körben használt scripting 116 00:07:41,690 --> 00:07:48,110 mivel a Bourne shell, majd a Bourne-féle kagylók voltak jobb erre a célra. 117 00:07:48,110 --> 00:07:50,620 Szóval ez tényleg nem olyan fontos. 118 00:07:50,620 --> 00:07:53,480 Elég sok a Bourne shell szkripteket, amelyek írták régen, 119 00:07:53,480 --> 00:07:56,860 mielőtt a Korn vagy a Bourne-again shell vezettek be. 120 00:07:56,860 --> 00:07:59,300 Ezek mindig használatban van, része az operációs rendszer, 121 00:07:59,300 --> 00:08:01,590 és így megtalálja őket, ha megnézi az operációs rendszer 122 00:08:01,590 --> 00:08:03,760 vagy valami régi programozási csomagokat. 123 00:08:03,760 --> 00:08:12,840 >> Bash bizonyos mértékig válik egyfajta lingua franca az operációs rendszerek. 124 00:08:12,840 --> 00:08:17,580 Ez már kiterjesztették a Windows és a VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, abban az esetben, ha nem tudja, van egy saját operációs rendszer 126 00:08:20,440 --> 00:08:25,480 A Digital Equipment Corporation, amely még mindig használatban van, nagyrészt a színfalak mögött. 127 00:08:25,480 --> 00:08:29,250 És ha ez fog futni több különböző operációs rendszerek, 128 00:08:29,250 --> 00:08:31,110 valószínűleg az emberek hajlamosak váltani rá. 129 00:08:31,110 --> 00:08:33,840 De ez a fejlődés viszonylag új keletű. 130 00:08:33,840 --> 00:08:39,490 Ez csak a kezdet, így nem tudom megjósolni, hogy ez ki fog derülni, hogy valóban ez a fajta lingua franca. 131 00:08:39,490 --> 00:08:43,539 Továbbá, mivel a fájl elérési útvonalat és a könyvtárak különböznek 132 00:08:43,539 --> 00:08:46,210 ezek között a különböző operációs rendszerek, 133 00:08:46,210 --> 00:08:50,250 lehet, hogy nem tud írni a Bash script egy operációs rendszer 134 00:08:50,250 --> 00:08:51,840 majd futtassa azt egy másikra. 135 00:08:51,840 --> 00:08:54,440 Meg kell tudni, hogy mozgassa a különböző Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS operációs rendszerekkel, de nem feltétlenül a Windows vagy a VMS. 137 00:08:59,020 --> 00:09:01,390 Lehet, hogy meg kell változtatni a fájl elérési leírással, 138 00:09:01,390 --> 00:09:03,180 és egyes könyvtárak eltérő lehet, 139 00:09:03,180 --> 00:09:05,230 amely hatással lehet az is, hogy bizonyos parancsok 140 00:09:05,230 --> 00:09:09,730 vagy hogyan dolgozzák fel érveket és hasonlók. 141 00:09:09,730 --> 00:09:19,230 Ezen felül, a másik az, hogy itt óvatosság nincs garancia 142 00:09:19,230 --> 00:09:23,570 hogy a különböző kagyló már említettem - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn shell, Bourne-again shell - elérhető lesz semmilyen Unix 144 00:09:29,880 --> 00:09:33,750 vagy a Linux vagy Mac OS számítógépen. 145 00:09:33,750 --> 00:09:35,620 Egyszerűen nem lesz ott. 146 00:09:35,620 --> 00:09:38,300 Ez az egyik a figyelmeztetések itt. 147 00:09:38,300 --> 00:09:41,490 Ez egy szerencsétlen korlátozás van, mivel szeretne a dolgok dolgozni mindenhol, 148 00:09:41,490 --> 00:09:44,380 de sajnos, akkor nem hivatkozhat e. 149 00:09:44,380 --> 00:09:47,230 >> Oké. Tovább itt senki. 150 00:09:50,280 --> 00:09:54,370 Tegyük fel, hogy szeretne írni egy shell script, 151 00:09:54,370 --> 00:09:57,170 a program, amely a shell parancsokat. 152 00:09:57,170 --> 00:10:01,200 Írsz a parancsokat, tedd a fájlt és végrehajtja a fájlt. 153 00:10:01,200 --> 00:10:04,230 Mi van, ha a felvenni kívánt érvek? 154 00:10:04,230 --> 00:10:09,650 Abban az esetben, héj műveletek érvek nevezzük paraméterek vagy pozicionális paraméterek 155 00:10:09,650 --> 00:10:15,940 és akkor nevezhető egy dollár jel és szám, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Tehát, ha a script ezt a nevet, az első érv lehet érv 1 157 00:10:27,000 --> 00:10:30,540 és a második lehet érv 2, 158 00:10:30,540 --> 00:10:34,110 és belül a script, ha azt akarom, hogy olvassa el ezeket a dolgokat - 159 00:10:34,110 --> 00:10:36,810 hadd töröljék el ezt, mert én nem igazán fog futtatni - 160 00:10:36,810 --> 00:10:42,160 belül a szkript, amit lehet, hogy 1 $ hivatkozni Arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, ami ki fog jönni, hogy így, arg2. 162 00:10:45,890 --> 00:10:50,080 Tehát ezek a szimbólumok állnak hivatkozni érveket, 163 00:10:50,080 --> 00:10:52,390 és az vonatkozik minden, a kagyló. 164 00:10:52,390 --> 00:10:56,520 Ezen kívül vannak más karakterek. 165 00:10:56,520 --> 00:11:01,700 $ * Utal az egész érv listáját, mindet. 166 00:11:01,700 --> 00:11:05,390 $ # Utal, hogy az argumentumok számát. 167 00:11:05,390 --> 00:11:07,910 Ismét, ez vonatkozik a kagyló. 168 00:11:07,910 --> 00:11:15,540 Azok a szimbólumok, * és #, lehet használni az említett jelentéssel más helyeken is. 169 00:11:15,540 --> 00:11:17,940 Mi nem kapok bele. 170 00:11:17,940 --> 00:11:20,460 >> Shell specifier sor. Mi az, hogy? 171 00:11:20,460 --> 00:11:27,760 Tegyük fel, hogy már írt egy forgatókönyvet, és ez egy adott shell, és szeretné futtatni. 172 00:11:27,760 --> 00:11:33,500 Honnan tudod, hogy mi shell az operációs rendszert fogja használni, hogy fut a script? 173 00:11:33,500 --> 00:11:37,230 Egy ponton lehetett feltételezni, hogy ez futtassa a Bourne shell 174 00:11:37,230 --> 00:11:39,440 ha nem mást mond, 175 00:11:39,440 --> 00:11:41,730 de az emberek nem írásban szkriptek a Bourne shell, hogy sokkal többet 176 00:11:41,730 --> 00:11:43,750 és akkor nem is támaszkodhat többé. 177 00:11:43,750 --> 00:11:48,740 Tehát itt van egy shell megadó sort itt. 178 00:11:48,740 --> 00:11:52,450 Ez meghatározza Bash. 179 00:11:52,450 --> 00:11:56,750 Ne feledje, hogy meghatározza azt az elérési út, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Ha egy számítógépen a Bash shell, de nem a bin könyvtárba, / bin, ez nem fog működni. 181 00:12:02,870 --> 00:12:06,870 Ez a másik selejtezőn, egy másik óvatosság itt. 182 00:12:06,870 --> 00:12:09,500 A kettőskereszt a megjegyzés sor karaktert. 183 00:12:09,500 --> 00:12:12,300 Ez az összes kagyló. 184 00:12:12,300 --> 00:12:18,610 A konkrét esetben is, #! elején egy script, egy speciális esete. 185 00:12:18,610 --> 00:12:23,410 Ez határozza meg a shell, ahol futtatni a szkriptet. 186 00:12:23,410 --> 00:12:30,230 Mint mondtam, ez lehet, hogy nem ugyanazon a helyen / bin. 187 00:12:30,230 --> 00:12:34,880 Ezen kívül van még egy dolog van. 188 00:12:34,880 --> 00:12:41,250 Ha csak használja a kettőskereszt nincs felkiáltójel és elérési út, 189 00:12:41,250 --> 00:12:44,640 hogy fel kell tüntetni a C-shell. 190 00:12:44,640 --> 00:12:48,300 Én azonban nem ajánlom csinálja, mert nem vagyok képes garantálni 191 00:12:48,300 --> 00:12:49,750 , hogy mindig működik. 192 00:12:49,750 --> 00:12:52,220 Ha azt szeretné, hogy a C-shell, jobb lenne, hogy ezt mondja. 193 00:12:52,220 --> 00:12:58,450 Aztán ott van valami, elég zavaros itt. 194 00:12:58,450 --> 00:13:03,940 Ha a shell megadó sort, mint a / bin / bash 195 00:13:03,940 --> 00:13:07,070 és hogy a héj nem áll ott, 196 00:13:07,070 --> 00:13:10,680 nincs olyan dolog, mint a / bin / bash az adott számítógépen, 197 00:13:10,680 --> 00:13:14,330 vagy azért, mert nincs Bash, vagy azért, mert ez egy másik helyre, 198 00:13:14,330 --> 00:13:17,450 kapsz egy hiba mondom, hogy a script futott nem létezik. 199 00:13:17,450 --> 00:13:21,510 És persze a forgatókönyv létezik, így a hibaüzenet zavaró. 200 00:13:21,510 --> 00:13:24,810 Ennek az az oka, hogy az operációs rendszer adja, hogy a hiba 201 00:13:24,810 --> 00:13:28,370 vagy, pontosabban, hogy az interaktív shell, ahol fut ez adja ezt a hibát, 202 00:13:28,370 --> 00:13:33,510 az, hogy a jelentések a parancsot használt, amely a nevét a forgatókönyvet. 203 00:13:33,510 --> 00:13:36,920 Ez a parancs hatékonyan hívják a shell a neve a forgatókönyvet. 204 00:13:36,920 --> 00:13:39,330 Ott van az a zavaró hibaüzenetet. 205 00:13:39,330 --> 00:13:42,980 Egy másik módja annak, hogy hívja shell script 206 00:13:42,980 --> 00:13:45,910 az megadásával a shell a parancssorban, mint itt. 207 00:13:45,910 --> 00:13:52,510 Ez a parancs. Ez azt mondja, fuss Bash, majd futtatni a scriptet Bash. 208 00:13:52,510 --> 00:13:55,680 Az elsőbbséget élveznek a megadó sor, 209 00:13:55,680 --> 00:14:02,090 és ez a funkció lehetővé teszi, hogy a különböző elérési útvonalat. 210 00:14:02,090 --> 00:14:04,840 Ha csak ad egy parancsot, az operációs rendszer fog keresni, hogy a parancs 211 00:14:04,840 --> 00:14:06,410 különböző helyeken. 212 00:14:06,410 --> 00:14:08,820 Ha ez rendelkezésre áll, akkor meg kell találni azt. 213 00:14:08,820 --> 00:14:12,290 A számítógép megtalálja Bash, ahol ez található, és fuss ez, 214 00:14:12,290 --> 00:14:15,470 így nem kell majd, hogy aggódik, ha azt állapítja meg. 215 00:14:15,470 --> 00:14:17,360 Vannak esetleg más aggályok itt 216 00:14:17,360 --> 00:14:20,830 mintha van több, mint 1 verzióját Bash, ami azért lehetséges, bár nem valószínű. 217 00:14:20,830 --> 00:14:23,540 Szóval ez egy másik módja annak, hogy kezelni ezeket a dolgokat. 218 00:14:23,540 --> 00:14:30,480 Specifikációkészítő vonalak hívása shell. 219 00:14:30,480 --> 00:14:34,480 Ők is hívják dolgokat más, mint kagyló. 220 00:14:34,480 --> 00:14:37,940 Példák Van itt sed, amely a stream editor; 221 00:14:37,940 --> 00:14:39,900 awk, amely a mintát feldolgozó nyelv; 222 00:14:39,900 --> 00:14:43,680 és a Perl, a nagyon fejlett programozási nyelv. 223 00:14:43,680 --> 00:14:47,570 Ha tesz egy tervező vonal jelzi egyike azoknak a programoknak az elején, 224 00:14:47,570 --> 00:14:51,270 akkor megy egyenesen, hogy a program helyett kezdve a héj. 225 00:14:51,270 --> 00:14:54,030 Azok a programok korlátokat képességeiket. 226 00:14:54,030 --> 00:14:58,790 Perl rendkívül alkalmas. Sed egy szerkesztő. Meg lehet csinálni a dolgokat, túl egyszerű szerkesztés. 227 00:14:58,790 --> 00:15:03,300 De nehéz lehet programozni, hogy az. 228 00:15:03,300 --> 00:15:09,670 Ezen kívül, átadva érveket és a cucc a script vagy lehetetlen, vagy zavaró. 229 00:15:09,670 --> 00:15:15,030 Így ezekben az esetekben, és awk vagy sed, ez, legalábbis az én tapasztalatom szerint, 230 00:15:15,030 --> 00:15:18,910 jobb, hogy írjon egy shell script és hívás awk vagy sed a shell script 231 00:15:18,910 --> 00:15:24,660 inkább, mint amelyben awk vagy sed a script megadó sor. 232 00:15:24,660 --> 00:15:26,980 Perl rendkívül változatos nyelvet, ahogy mondtam. 233 00:15:26,980 --> 00:15:30,050 Nem lehet futtatni az interaktív parancsokat perl, 234 00:15:30,050 --> 00:15:32,660 ami azt jelenti, hogy nem lehet tesztelni részeit scriptek, hogy te fejlődő 235 00:15:32,660 --> 00:15:33,970 futtatásával interaktívan. 236 00:15:33,970 --> 00:15:36,160 Azonban ez egy nagyon alkalmas nyelvet 237 00:15:36,160 --> 00:15:40,960 és kifejlesztett egy nagyon széles körben használt eszköz. 238 00:15:40,960 --> 00:15:45,720 Ez csak egy kicsit egy zárójeles megjegyzést a tervező vonalak. 239 00:15:45,720 --> 00:15:50,610 >> Az összes vagy a legtöbb fajta Linux - megint, nem biztos, hogy ez minden - 240 00:15:50,610 --> 00:15:57,900 és a Mac OS, ha a típus csh kapsz tcsh, 241 00:15:57,900 --> 00:16:00,570 és ha beírja sh kapsz bash. 242 00:16:00,570 --> 00:16:05,020 Megpróbáltak ott, hogy megadja a fejlettebb változatai ezek a kagyló, 243 00:16:05,020 --> 00:16:07,940 de ez zavaró lehet. 244 00:16:07,940 --> 00:16:16,720 Ha írsz egy script segítségével tcsh vagy Bash funkciók hívás közben csh vagy sh 245 00:16:16,720 --> 00:16:22,230 majd próbálja meg futtatni a számítógép, amely nem rendelkezik a tcsh vagy Bash, 246 00:16:22,230 --> 00:16:25,050 lehet, hogy egy kis hiba, ha vannak parancsok vannak 247 00:16:25,050 --> 00:16:27,970 melyek azok a kagylók nem ismeri. 248 00:16:27,970 --> 00:16:34,120 Ezen felül, akkor lehet, hogy hívják fel a shell a helyi számítógépen 249 00:16:34,120 --> 00:16:37,700 amelyben ez az sh vagy a csh, majd egyre fejlettebb kagyló. 250 00:16:37,700 --> 00:16:41,440 Lehet, hogy nem is hiszem, hogy te vagy a fejlettebb shell. 251 00:16:41,440 --> 00:16:45,670 Tehát ez egy lehetséges buktató. 252 00:16:45,670 --> 00:16:50,290 Hogyan állapítható meg, hogy ha beírja sh kapsz Bash, 253 00:16:50,290 --> 00:16:55,580 ha beírja csh kapsz tsch? 254 00:16:55,580 --> 00:16:59,940 Vannak dolgok, ezek a számítógépek úgynevezett linkek 255 00:16:59,940 --> 00:17:06,460 amely képes kapcsolódni fájlneveket olvassa el ugyanezt. 256 00:17:06,460 --> 00:17:12,180 Ez lehet akár 2 nevek ugyanazt a fájlt vagy egy fájl, amelynek célja, hogy nézze meg másik fájlt. 257 00:17:12,180 --> 00:17:17,550 Ők az úgynevezett kemény és szimbolikus linkek. Mi nem megy bele, hogy már ma. 258 00:17:17,550 --> 00:17:21,619 Ott is külön fájlban - 1 file sh, 1 file Bash - 259 00:17:21,619 --> 00:17:23,880 de mindketten futni Bash. 260 00:17:23,880 --> 00:17:29,350 Aztán ott van még egy minősítő itt. 261 00:17:29,350 --> 00:17:42,640 Ha hív egy ilyen kagyló egy nevet, 262 00:17:42,640 --> 00:17:46,640 azt gondolhatja azt, hogy ugyanazt a funkciót, mint hogyha azt egy másik nevet. 263 00:17:46,640 --> 00:17:49,700 Nos, valójában ez nem feltétlenül igaz. 264 00:17:49,700 --> 00:17:55,020 Ezek a parancsok megvizsgálja a név, amellyel ők hívták 265 00:17:55,020 --> 00:18:00,020 és ők is, az alapján, hogy a név, másként viselkednek. 266 00:18:00,020 --> 00:18:02,740 Lehet, hogy kérdéseket próbál megfelelnek a szabványnak. 267 00:18:02,740 --> 00:18:06,060 Néhányan talán hallott a POSIX szabvány vagy más, 268 00:18:06,060 --> 00:18:08,730 Talán más funkciókat. 269 00:18:08,730 --> 00:18:14,520 Ez lehet kiválasztani néha parancssori argumentumok 270 00:18:14,520 --> 00:18:17,310 vagy beállításával shell változókat. 271 00:18:17,310 --> 00:18:22,170 Calling azt sh vagy bash ténylegesen vezet más végrehajtás 272 00:18:22,170 --> 00:18:25,300 akkor is, ha ez ugyanaz a fájl, amit a végrehajtó. 273 00:18:25,300 --> 00:18:31,800 A másik dolog, hogy fontolja meg, hogy akkor is, ha egy másik számítógép tcsh vagy Bash, 274 00:18:31,800 --> 00:18:35,310 , ha azok nem kapcsolódnak, mivel azok a helyi számítógépen 275 00:18:35,310 --> 00:18:37,990 ha van egy Linux vagy Mac OS helyi számítógépen, 276 00:18:37,990 --> 00:18:45,630 majd ismét megkapja a shell, hogy hívja sh vagy a csh, nem az, hogy lehet, hogy jobban. 277 00:18:50,430 --> 00:19:01,130 A jelenlegi Bourne héj fejlesztések kisebb, mint az Bash 278 00:19:01,130 --> 00:19:06,100 de már azok az eredeti Bourne shell. 279 00:19:06,100 --> 00:19:09,690 Ennek eredményeként, hogy még a jelenlegi Bourne héj, sh, 280 00:19:09,690 --> 00:19:14,560 akkor is, ha ez nem Bash, hasonlít a C nyelv több, mint a C-shell nem. 281 00:19:14,560 --> 00:19:20,460 Ez nem volt igaz, amikor a C-shell először létre, de fejlődött így. 282 00:19:20,460 --> 00:19:26,560 Lehet, hogy észre, hogy itt ezek a shell neveket, kivéve a Bourne shell 283 00:19:26,560 --> 00:19:30,640 van valami, hogy jelzi, hogy melyik shell vannak - csh, bash - 284 00:19:30,640 --> 00:19:32,550 de a Bourne shell csak sh. 285 00:19:32,550 --> 00:19:34,910 Miért? Ez volt az eredeti shell. 286 00:19:34,910 --> 00:19:37,770 Ez volt a héj, akkor nem egy shell, 287 00:19:37,770 --> 00:19:41,090 és mivel ez volt a héj, nem volt ok arra, hogy megkülönböztessék a másik shell. 288 00:19:41,090 --> 00:19:45,030 Szóval ezért van ez a név, és még mindig nem. 289 00:19:50,630 --> 00:19:58,990 >> Ez az első itt egy vonalat a jelszó adatbázis egy fiókot már ott 290 00:19:58,990 --> 00:20:01,680 egy másik számítógépen. 291 00:20:01,680 --> 00:20:08,300 Meg fogom próbálni, hogy ezt a nevet, így láthatja azt a részét, a végén, a héj. 292 00:20:09,720 --> 00:20:15,450 A jelszó az adatbázis tartja a bejelentkezési tulajdonságokkal minden felhasználó számára. 293 00:20:15,450 --> 00:20:20,330 Kezdetben a felhasználónév, ami látható az utolsó 2 betű az enyém most. 294 00:20:20,330 --> 00:20:23,970 A mezők itt választja el. 295 00:20:23,970 --> 00:20:28,210 Az utolsó mező, mint látható, a bin / tcsh, a héj. 296 00:20:28,210 --> 00:20:30,230 Ez a héj adja meg. 297 00:20:30,230 --> 00:20:33,240 Van valami érdekes itt. 298 00:20:33,240 --> 00:20:36,950 Amikor a Unix először alakult, már csak 1-héj, 299 00:20:36,950 --> 00:20:38,350 így nem volt választás van. 300 00:20:38,350 --> 00:20:45,570 Akkor miért lehetővé teszik egy olyan területen, a jelszó adatbázis adja meg a shell? 301 00:20:45,570 --> 00:20:47,920 Nem tudom, de szerencse, hogy igen. 302 00:20:47,920 --> 00:20:52,030 Ez elég nehéz, hogy a változások a jelszó adatbázis formátum 303 00:20:52,030 --> 00:20:54,420 azért, mert sok program utal a formátumot 304 00:20:54,420 --> 00:20:57,720 és kellene írni. 305 00:20:57,720 --> 00:21:04,130 Ez egy szerencsés vagy véletlen fejlemény, hogy a bennük foglalt ezen a területen. 306 00:21:04,130 --> 00:21:12,780 Ez a fajta a jelszó fájl vonalat használ minden Unix és Linux számítógépek amennyire én tudom. 307 00:21:12,780 --> 00:21:14,650 A Mac saját rendszere. 308 00:21:14,650 --> 00:21:17,810 Ez valójában egy jelszót fájlt a sorokat ebben a formátumban, 309 00:21:17,810 --> 00:21:21,060 de ez nem, ahol a felhasználó jellemzőket. 310 00:21:21,060 --> 00:21:24,200 Egy másik zárójeles megjegyzés is. 311 00:21:36,470 --> 00:21:46,020 >> Ha hív a héj, akkor hívja, mint egy al-shell a meglévő kagyló. 312 00:21:46,020 --> 00:21:50,480 Tehát, ha elmegyek innen, menjünk megszabadulni ezeket a dolgokat. 313 00:21:50,480 --> 00:21:53,350 Itt vagyok, a C-shell. 314 00:21:56,830 --> 00:22:01,200 Ez változó, amely pontosan meghatározza a shell, 315 00:22:01,200 --> 00:22:04,300 valójában nem mindig megbízható módja annak meghatározására, hogy mi shellt használsz, 316 00:22:04,300 --> 00:22:06,220 de ebben az esetben is van. 317 00:22:06,220 --> 00:22:08,040 Mi lenne, ha csak a típus - 318 00:22:09,970 --> 00:22:12,470 Most vagyok Bash. 319 00:22:12,470 --> 00:22:19,540 Vannak dolgok mennek, hogy ugyanaz. ls azt mondja a parancsokat. 320 00:22:19,540 --> 00:22:24,500 Ha én egy felfüggeszteni vissza a C-shell, ls, ugyanaz. Nem igaz? 321 00:22:24,500 --> 00:22:28,890 fg, előtér, vissza a Bash shell. 322 00:22:28,890 --> 00:22:38,290 pwd, jelenlegi könyvtár, vissza a C-shell. 323 00:22:38,290 --> 00:22:43,180 pwd, másik könyvtárba - valójában nem más könyvtár ebben az esetben. 324 00:22:43,180 --> 00:22:45,110 Ez ugyanaz a könyvtárba. 325 00:22:45,110 --> 00:22:50,000 Tegyük fel, hogy szeretnék hívni a parancs van: ahol ls. 326 00:22:50,000 --> 00:22:52,140 Mit akar ez csinálni? 327 00:22:52,140 --> 00:22:53,670 Azt mondja meg, hol van az ls parancs, 328 00:22:53,670 --> 00:22:56,670 az egyik, hogy ad nekem egy könyvtárból található ls. 329 00:22:56,670 --> 00:23:01,460 Menjünk vissza a Bash shell. Próbáljuk meg ugyanezt. 330 00:23:01,460 --> 00:23:05,830 Hmm, érdekes, ott, ahol: parancs nem található. 331 00:23:05,830 --> 00:23:07,400 Miért van ez? 332 00:23:07,400 --> 00:23:11,570 Az, ahol a parancs épült, hogy a C-shell. 333 00:23:11,570 --> 00:23:15,630 Ez nem egy parancsot, hogy meg kell olvasni a memóriába valahol máshol, és kivégezték. 334 00:23:15,630 --> 00:23:20,310 A C-shell fut, azt át végrehajtását, hogy egy részét a saját kódját 335 00:23:20,310 --> 00:23:22,790 és ez nem a Bash shell. 336 00:23:22,790 --> 00:23:25,710 Tehát Bash, hogy nem egy ilyen beépített parancs, úgy néz rá, nem találja, 337 00:23:25,710 --> 00:23:27,720 és kap egy hiba. 338 00:23:27,720 --> 00:23:32,290 Tehát ott van egy bash shell fut a C-shell, és felhívjuk, hogy egy al-shell. 339 00:23:32,290 --> 00:23:38,480 És csak abban az esetben, ha kíváncsi vagy, a Bash shell saját eszköz elhelyezésének parancsokat. 340 00:23:38,480 --> 00:23:42,590 kivonatos arra a tényre utal, hogy lehet végre gyorsabban, 341 00:23:42,590 --> 00:23:44,960 ha kiderül gyorsabban. 342 00:23:44,960 --> 00:23:48,610 Ez az egyik a fejlesztések beépített néhány ilyen kagyló. 343 00:23:50,220 --> 00:23:54,200 >> Bourne-típusú kagyló részesítik előnyben a programozás. 344 00:23:54,200 --> 00:23:57,300 Ők ellenőrzési struktúrák, mint a hurkok, feltételes állítások, 345 00:23:57,300 --> 00:24:00,240 az a fajta parancsok, hogy lehet használni a programozási nyelvek, mint a C- 346 00:24:00,240 --> 00:24:04,190 vagy bármi más nyelvet. Talán Programozás Java, vagy bármi. 347 00:24:04,190 --> 00:24:06,460 Kagyló azokat is. 348 00:24:06,460 --> 00:24:11,790 A Bourne-típusú kagyló, különösen a Bash, több 349 00:24:11,790 --> 00:24:15,730 és úgy tervezték, nagyobb rugalmasságot biztosít. 350 00:24:15,730 --> 00:24:20,700 A Bash shell van tömbök. Az eredeti Bourne shell nem. 351 00:24:20,700 --> 00:24:26,130 Hogy lehet jelentősen előnyös programozás. 352 00:24:26,130 --> 00:24:29,810 A C-shell valójában mégis van a tömbök, de nem sok ilyen egyéb jellemzőit. 353 00:24:29,810 --> 00:24:33,450 A Bourne-típusú kagyló végrehajtja gyorsabb 354 00:24:33,450 --> 00:24:36,520 ha nem rendelkeznek a tervezett funkciók interaktív használatot. 355 00:24:36,520 --> 00:24:39,340 Ön betölteni különféle dolgokat le egyetlen célja, ez tölti le őket más célra. 356 00:24:39,340 --> 00:24:41,520 Van, hogy a trade-off van. 357 00:24:41,520 --> 00:24:44,510 Azok a funkciók, amelyek célja az interaktív használata 358 00:24:44,510 --> 00:24:46,920 valójában kevés vagy egyáltalán nem használja a script. 359 00:24:46,920 --> 00:24:52,160 Ez lehetséges, hogy egy interaktív al-shell, mint az, akit ott kezdődött 360 00:24:52,160 --> 00:24:57,780 kipróbálni parancsokat, amelyeket szeretne használni a script. 361 00:24:57,780 --> 00:25:01,180 Ez az, amit nem tud a perl. Meg tudod csinálni a kagyló. 362 00:25:01,180 --> 00:25:04,850 Még a struktúrák, mint a hurok, és így tovább lehet futtatni interaktívan. 363 00:25:04,850 --> 00:25:07,000 Ezek néha hasznos interaktív módban fut, 364 00:25:07,000 --> 00:25:10,180 de annál valószínűbb, használja őket, hogy dolgozzon ki egy script. 365 00:25:15,690 --> 00:25:17,400 >> Álnevek. 366 00:25:17,400 --> 00:25:21,630 Ez lesz a C-shell. 367 00:25:23,270 --> 00:25:27,570 Előzmények mechanizmus, ahol kapsz vissza a korábbi parancsok 368 00:25:27,570 --> 00:25:30,340 vagy azok egy részének, hogy már futni. 369 00:25:30,340 --> 00:25:33,680 Ismét, a C-shell, a Bourne és a Korn shell ezeket a dolgokat, 370 00:25:33,680 --> 00:25:35,620 de nem fogok bejutni őket. 371 00:25:35,620 --> 00:25:40,340 Tehát itt van néhány hasznos alias, hogy van. 372 00:25:43,100 --> 00:25:44,880 Beírása helyett ls - ez egy közös parancs - 373 00:25:44,880 --> 00:25:47,620 csak írd l, és mentse magát 1 karakter. 374 00:25:47,620 --> 00:25:50,600 ls különböző lehetőségeket, mindazok munkáját. 375 00:25:50,600 --> 00:25:54,460 Ne feledje, hogy az említett meghatározások idézeteket körülöttük. 376 00:25:54,460 --> 00:25:57,520 Ezekben az esetekben az idézetek nem szükségesek. 377 00:25:57,520 --> 00:26:00,100 Ha tudod határozni azokat a álneveket idézőjelek nélkül, akkor is működik. 378 00:26:00,100 --> 00:26:02,910 Ezek ajánlott. 379 00:26:02,910 --> 00:26:04,900 Vannak olyan helyzetek, amikor nem tudod használni az idézet 380 00:26:04,900 --> 00:26:08,050 mert azt szeretnénk, hogy történjen valami, ami az idézet megakadályozná. 381 00:26:08,050 --> 00:26:11,210 Néha lehet idézni részét a meghatározás, de nem az egészet. 382 00:26:11,210 --> 00:26:17,010 Ez általában szintén ajánlott a használata aposztrófot helyett idézőjelek. 383 00:26:17,010 --> 00:26:19,750 Idézőjelek hatással változó definíciókat, 384 00:26:19,750 --> 00:26:22,950 Különösen így azok szerint kell értékelni, nem pedig leállítás. 385 00:26:22,950 --> 00:26:25,910 Miért akarnánk, hogy hagyja abba az értékelést? 386 00:26:25,910 --> 00:26:28,710 És hogyan idézetek csinálni, hogy nekünk? 387 00:26:28,710 --> 00:26:32,600 >> Itt van egy parancs, amely lehet, hogy talál érdekes. 388 00:26:32,600 --> 00:26:35,470 "Ls g *" 389 00:26:35,470 --> 00:26:37,640 g *, ahogy azt valószínűleg tudod, egy helyettesítő kifejezés 390 00:26:37,640 --> 00:26:40,290 az összes fájlt kezdődő nevek g. 391 00:26:40,290 --> 00:26:46,410 Ha csak írj egy ls g *, hozok egy listát az összes ezeket a neveket az én aktuális könyvtárban. 392 00:26:46,410 --> 00:26:50,870 Ha én határozzák meg, hogy álnév, mint itt az idézeteket, 393 00:26:50,870 --> 00:26:56,990 fog futni, hogy a parancs az aktuális könyvtárban, ahol éppen fut. 394 00:26:56,990 --> 00:27:01,250 De ha fut az alias definíció idézőjelek nélkül, 395 00:27:01,250 --> 00:27:09,620 fogja értékelni a wildcard g * ha fut ez a meghatározó a parancsot. 396 00:27:09,620 --> 00:27:14,400 Tehát a meghatározása alias lesz ls követi a fájlok listája a könyvtárban 397 00:27:14,400 --> 00:27:16,310 amelyben az alias parancs végrehajtása, 398 00:27:16,310 --> 00:27:19,180 függetlenül attól, hogy tényleg kívánja a parancsot. 399 00:27:19,180 --> 00:27:26,360 Ez nem sok haszna van, és az aposztróf jelet megakadályozza az értékelés a csillag. 400 00:27:26,360 --> 00:27:30,780 Szóval csak kap a definícója ls g *. 401 00:27:30,780 --> 00:27:35,510 Akkor, amikor fut az alias, LGS, akkor majd hozza, hogy ki. 402 00:27:35,510 --> 00:27:40,490 Most már nincsenek idézetek, és értékelni fogja a csillagot, amikor futtatja az alias parancsot. 403 00:27:40,490 --> 00:27:43,900 Tehát ez az egyik dolog. 404 00:27:43,900 --> 00:27:46,590 Idézőjelek lenne, hogy ugyanazt a hatást itt 405 00:27:46,590 --> 00:27:50,580 de vannak más esetek, amikor idézőjelek között nem működik olyan jól. 406 00:27:50,580 --> 00:27:52,450 >> Itt egy másik. 407 00:27:52,450 --> 00:27:54,270 Lehet, hogy tudja, a grep parancsot. 408 00:27:54,270 --> 00:28:02,110 A grep parancs használható, hogy átvizsgálja a fájlt a vonalak, amelyek bizonyos szálakat. 409 00:28:02,110 --> 00:28:10,350 Szóval menjünk ide, és én kilép a Bourne shell. 410 00:28:23,570 --> 00:28:25,450 Oké. Itt egy fájlt. 411 00:28:25,450 --> 00:28:31,490 Mondjuk, hogy ez grep abc szálakat. Ott van. 412 00:28:31,490 --> 00:28:37,930 Ha én grep zddd, nem kapok semmit. Oké. 413 00:28:37,930 --> 00:28:40,960 Így talál egy sor, a jelentés készül, nem találja, nem jelenti azt. 414 00:28:40,960 --> 00:28:44,930 A kimenet minden olyan vonalon, amely ez a karaktersorozat rajta. 415 00:28:44,930 --> 00:28:49,080 Vannak mindenféle opciókat, amely megtalálható a dokumentációban. 416 00:28:49,080 --> 00:28:52,160 Itt van egy módja annak, hogy csináld. 417 00:28:52,160 --> 00:29:03,290 Mit szól ehhez, alias grabc "grep abc"? 418 00:29:03,290 --> 00:29:09,000 Ez lesz az 1 érv, amikor az alias-ban meghatározott. 419 00:29:09,000 --> 00:29:26,300 Tehát, ha én, hogy itt, most, ha én grabc, 420 00:29:26,300 --> 00:29:30,620 most alias több, mint az egyszerű paranccsal. Azt is az érvelés. 421 00:29:30,620 --> 00:29:32,190 Eddig, ami működik. 422 00:29:32,190 --> 00:29:38,590 Van egy másik parancs van, ez az egyik, így ezek a különböző húrok vannak 423 00:29:38,590 --> 00:29:46,790 , és azt mutatják, hogy ez nem találnak ott semmit, mert nem egyezik. 424 00:29:46,790 --> 00:29:56,180 >> Mi van, ha azt akarom, hogy tartalmazza az alias definíció fájl fogok keresni 425 00:29:56,180 --> 00:30:02,970 és azt akarom, hogy érvként, hogy az alias a húr, amit keresek? 426 00:30:02,970 --> 00:30:08,040 Lehet, hogy azt akarom mondani, abc, mint az az érv, hogy az alias, 427 00:30:08,040 --> 00:30:10,870 de az alias már megállapított a fájlt. 428 00:30:10,870 --> 00:30:15,710 És ez az, ahol ez a kifejezés jön be 429 00:30:20,430 --> 00:30:25,270 Figyeljük meg, itt van a grep, mint azelőtt. 430 00:30:25,270 --> 00:30:28,130 Megvan a fájlt itt, vonósok. 431 00:30:28,130 --> 00:30:35,610 \! ^, Milyen furcsa kifejezés, azt hiszem, ha még nem láttam ilyet. 432 00:30:35,610 --> 00:30:39,920 Felkiáltójel része a C-shell történelem mechanizmus. 433 00:30:39,920 --> 00:30:45,220 Meg lehet felidézni a korábbi parancsokat, akkor emlékszem érvek a parancsokat, és így tovább. 434 00:30:46,760 --> 00:31:01,570 A történelem mechanizmus részeként használják aliasing. 435 00:31:01,570 --> 00:31:07,390 Ha olyan sort, miután a felkiáltójel, akkor nézze meg ezt a vonalat az Előzmények listában, 436 00:31:07,390 --> 00:31:11,910 amely nem fogunk bekerülni most, mivel ez egy teljesen más téma. 437 00:31:11,910 --> 00:31:16,280 Lehetőség van arra, hogy meghatározza egy sor egy részét. 438 00:31:16,280 --> 00:31:22,950 Tehát! 3:02 lenne a második érv parancs 3-as. 439 00:31:22,950 --> 00:31:30,430 A kurzor itt ez a kifejezés áll az első érv. 440 00:31:30,430 --> 00:31:34,410 Ha nem adja meg annak megjelölése, mely parancs utalsz, 441 00:31:34,410 --> 00:31:37,300 arra utal, hogy a közvetlenül előző parancs, 442 00:31:37,300 --> 00:31:41,990 és a kurzor egy szimbólum az első érv. 443 00:31:41,990 --> 00:31:46,820 Mert ez a kalap, és nem a szám, akkor nem kell használni a vastagbél, 444 00:31:46,820 --> 00:31:52,660 így van! ^ jelenti az első érv, hogy az előző parancs. 445 00:31:52,660 --> 00:31:55,020 Egy kis vegyes itt. 446 00:31:55,020 --> 00:31:58,450 Ebben az esetben, ha ezt, mint egy alias definíció, 447 00:31:58,450 --> 00:32:04,650 A történelem hivatkozás utal vissza a parancsokat, amelyben az álnév használata. 448 00:32:04,650 --> 00:32:08,470 Tehát ez megy vissza 1 parancsot a történelem működés, 449 00:32:08,470 --> 00:32:11,810 hanem egy alias műveletet arra utal, hogy a parancsot, amelyben azt írja, 450 00:32:11,810 --> 00:32:14,780 azt mondják, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Megvan az idézeteket itt is. Mi a backslash az? 452 00:32:20,240 --> 00:32:30,810 Ebben az esetben, mint máshol, nem akarjuk, hogy végre a történelem mechanizmus 453 00:32:30,810 --> 00:32:33,680 miközben meghatározó alias. 454 00:32:33,680 --> 00:32:37,900 Ha nem volt meg a backslash ott a shell is húzza az első argumentum 455 00:32:37,900 --> 00:32:41,870 A parancs közvetlenül előtte futott ez alias parancs, amit nem akarunk. 456 00:32:41,870 --> 00:32:47,520 Azt akarom, hogy ez beépül a alias parancsot, hogy hívja az érvet később. 457 00:32:47,520 --> 00:32:53,550 Single idézetek nem menekülés egy felkiáltójel, a történelem referencia. 458 00:32:53,550 --> 00:32:57,450 Talán tudod, hogy a kifejezést menekülési azt változtatni a jelentését valamit. 459 00:32:57,450 --> 00:33:00,260 Ebben az esetben ez azt jelenti, hogy ne valami attól, hogy egy speciális jelentése van. 460 00:33:00,260 --> 00:33:03,030 Felkiáltójel különleges jelentése történelem. 461 00:33:03,030 --> 00:33:05,790 Menekülés és nem is, hogy értelme. 462 00:33:05,790 --> 00:33:08,080 Idézetek ne csináld ezt, backslash nem. 463 00:33:08,080 --> 00:33:11,900 Szóval tulajdonképpen a 2 szintű ide menekültek. 464 00:33:23,500 --> 00:33:29,620 Fogom mozgatni ezt a parancsot a másik ablakban gépelés nélkül is 465 00:33:29,620 --> 00:33:35,210 ezekkel szerkesztési műveleteket, ami lehet hasznos. 466 00:33:40,620 --> 00:33:42,460 Valami más itt megmutatom. 467 00:33:42,460 --> 00:33:46,730 Ha csak típus alias paraméterek nélkül, azt mondja, az összes érvet. 468 00:33:46,730 --> 00:33:48,640 Ez egy csomó álnevek már volt itt 469 00:33:48,640 --> 00:33:53,400 mellett az, hogy én már a ma itt. 470 00:33:53,400 --> 00:34:00,220 De ha én csak írja be a nevét egy álnév, azt mondja nekem, hogy mit jelent. 471 00:34:00,220 --> 00:34:03,390 Figyeljük meg, hogy az idézőjelek elment, és a backslash elment. 472 00:34:03,390 --> 00:34:08,620 Ez a karakterlánc itt annak az eredménye, hogy az alias definíció, 473 00:34:08,620 --> 00:34:12,199 és most már csak! ^ benne. 474 00:34:12,199 --> 00:34:19,150 Ez lesz, hogy vizsgálja meg a fájl húrok semmit. 475 00:34:19,150 --> 00:34:34,900 Tehát, ha én grstrings_file húrok, nem adtam meg semmit keresni ott, 476 00:34:34,900 --> 00:34:37,429 de keresi a szálakat. 477 00:34:37,429 --> 00:34:42,330 Nem találja a szót húrok a fájlban húrok, de ez nem írható abc. 478 00:34:42,330 --> 00:34:46,770 És nem találja, hogy. 479 00:34:46,770 --> 00:34:52,330 Tehát itt adunk egy érv, hogy eltalálja a meghatározása alias, 480 00:34:52,330 --> 00:34:55,530 van behelyezve, hogy a bele. 481 00:34:55,530 --> 00:34:58,540 Ez az, ahol ez a kifejezés származik. 482 00:34:58,540 --> 00:35:00,240 Használhatja több mint 1. 483 00:35:00,240 --> 00:35:03,170 A kurzor egy szimbólum, az első érv. 484 00:35:03,170 --> 00:35:07,510 Ha akarta, hogy egy másik érv, akkor majd mondja: 2.. 485 00:35:07,510 --> 00:35:11,250 Nincs speciális szimbólum a második érv. 486 00:35:11,250 --> 00:35:14,790 És mert te egy szám, akkor kell használni a vastagbélben. 487 00:35:14,790 --> 00:35:17,220 Van azonban egy másik választás itt. 488 00:35:17,220 --> 00:35:21,220 A dollár jel áll az utolsó érv. 489 00:35:21,220 --> 00:35:23,320 És mivel ez egy szimbólum, akkor kihagyja a vastagbélben. 490 00:35:23,320 --> 00:35:25,870 Tehát ez lenne az utolsó érv a listában. 491 00:35:25,870 --> 00:35:27,900 És ott van az is, hogy egy. 492 00:35:27,900 --> 00:35:31,380 Asterisk az összes olyan, így ez a teljes paraméterek listája, 493 00:35:31,380 --> 00:35:35,150 és újra, akkor kihagyja a vastagbélben, mert ez nem egy szám. 494 00:35:36,970 --> 00:35:39,950 Remélem, mind megfigyelése mindezt. 495 00:35:39,950 --> 00:35:54,100 >> A történelem mechanizmusa mehet vissza a korábbi vonalakat az Előzmények listában. 496 00:35:54,100 --> 00:36:01,370 Lehet ezt egy alias meghatározás. 497 00:36:01,370 --> 00:36:02,950 Még soha nem láttam ezt megtenni. 498 00:36:02,950 --> 00:36:05,840 Ez lenne a hatása, hogy húzza ki a korábbi parancsok az Előzmények listából 499 00:36:05,840 --> 00:36:08,130 ha végre az alias, ami eltérő lehet parancsokat 500 00:36:08,130 --> 00:36:11,240 attól függően, hogy mikor és hol végrehajtani. 501 00:36:11,240 --> 00:36:14,020 Elképzelhető érdemes kihúzni ilyen hivatkozást 502 00:36:14,020 --> 00:36:15,900 csak azért, hogy tudja, mi egy korábbi parancs. 503 00:36:15,900 --> 00:36:17,280 Még soha nem láttam ezt megtörténni. 504 00:36:17,280 --> 00:36:19,970 Azt hiszem, valaki érdemes, de ez nagyon valószínűtlen. 505 00:36:19,970 --> 00:36:26,480 Van egy másik dolog itt. 506 00:36:26,480 --> 00:36:33,060 Ha a történelem-típusú referencia, 507 00:36:33,060 --> 00:36:38,190 akkor csak az érveket, amelyhez van egy ilyen referencia használnak. 508 00:36:38,190 --> 00:36:42,180 Ha van egy alias meghatározást, amely nem használ egy történelmi típusú referencia, 509 00:36:42,180 --> 00:36:44,060 Ha ez csak a kezdete lesz a parancs 510 00:36:44,060 --> 00:36:46,520 és még további érveket, akkor bármi beírt után 511 00:36:46,520 --> 00:36:48,450 hozzá kell adni a parancsot. 512 00:36:48,450 --> 00:36:52,040 Ebben az esetben, a példa, amit most adtam oda, használtuk az első érv, 513 00:36:52,040 --> 00:36:54,610 mi nem használ semmilyen más. 514 00:36:54,610 --> 00:36:57,960 Ha más érvet kaptak a parancssorban, akkor nem lehet használni. 515 00:36:57,960 --> 00:37:04,630 Tehát, ha használja a történelmet hivatkozást is, akkor kell használni, hogy minden érvet. 516 00:37:04,630 --> 00:37:11,310 >> Van még egy dolog, amit itt én csak azt szeretném megemlíteni, részben zárójelben, 517 00:37:11,310 --> 00:37:15,250 nevezetesen, hogy ez a történelem mechanizmus a felkiáltójel 518 00:37:15,250 --> 00:37:18,010 nyúlik vissza, az eredeti C-shell. 519 00:37:18,010 --> 00:37:27,060 A tcsh vezetett történelem műveletek 520 00:37:27,060 --> 00:37:30,910 használó a különféle parancsok és húrok a szerkesztők, 521 00:37:30,910 --> 00:37:33,650 vagy Emacs vagy vi. 522 00:37:33,650 --> 00:37:36,430 Az én személyes véleményem az Emacs sokkal könnyebben használható erre a célra 523 00:37:36,430 --> 00:37:39,390 akkor is, ha használja a VI rendszeres szerkesztésre. 524 00:37:39,390 --> 00:37:43,900 Vannak különböző Emacs parancsok, amelyek most alkalmas a történelem. 525 00:37:43,900 --> 00:37:46,410 Vezérlő P megkapja az előző sor az Előzmények listában. 526 00:37:46,410 --> 00:37:48,840 Egy másik vezérlő P fogja kapni az egyik előtt. 527 00:37:48,840 --> 00:37:50,540 A felfelé nyíl nem ugyanaz a dolog. 528 00:37:50,540 --> 00:37:54,190 Vezérlő N megkapja a következő parancsot, ha már görgethető vissza valamilyen módon. 529 00:37:54,190 --> 00:37:55,880 Le nyíl csinálja is. 530 00:37:55,880 --> 00:38:00,480 Tudod mozgatni balról jobbra a nyilakat és egyéb dolgokat. 531 00:38:00,480 --> 00:38:02,390 Ez lehet, hogy használja a történelem mechanizmus 532 00:38:02,390 --> 00:38:05,070 sokkal könnyebb, mint a felkiáltójel szintaxis, 533 00:38:05,070 --> 00:38:07,930 de nem használja, hogy egy álnév meghatározás. 534 00:38:17,780 --> 00:38:20,020 Majd megy át, hogy egy másik alkalommal. 535 00:38:24,300 --> 00:38:25,810 >> Változók. 536 00:38:26,880 --> 00:38:29,510 Tudod, mi változó programozási nyelvek. 537 00:38:29,510 --> 00:38:31,680 A kagyló azokat is. 538 00:38:31,680 --> 00:38:37,350 A C-shell használja a paranccsal beállított rendelni változók 539 00:38:37,350 --> 00:38:41,360 úgy, hogy beállítja a változó egy értékének b - 540 00:38:41,360 --> 00:38:46,390 mint mondtam, a haszontalan meghatározás, de annak bemutatása, hogy ezt használják. 541 00:38:48,790 --> 00:38:52,410 A set parancs létrehoz egy változót, ha az még nem létezik. 542 00:38:55,270 --> 00:39:02,490 A pozicionális paramétereket shell scriptek tekinthető változókat, 543 00:39:02,490 --> 00:39:10,750 de a használata, és a hozzájuk tartozó szabályokat némileg eltérő. 544 00:39:10,750 --> 00:39:14,320 Nem lehet értéket rendelni a $ 1 során a script. 545 00:39:14,320 --> 00:39:18,340 Meg kellett volna meg egy új változót erre a célra, ha néhány akarsz. 546 00:39:23,000 --> 00:39:28,470 Írja be argumentumok nélkül, és kapsz egy listát az összes jelenleg definiált változókat. 547 00:39:28,470 --> 00:39:34,220 És térjünk át a másik shell itt, és mit kapunk, ha így teszünk. 548 00:39:34,220 --> 00:39:37,110 Elég egy hosszú lista, ugye? 549 00:39:37,110 --> 00:39:40,990 Lépjünk egy kicsit. Nézd meg minden. 550 00:39:40,990 --> 00:39:44,330 Néhány ezek a dolgok határozzák meg automatikusan a shell. 551 00:39:44,330 --> 00:39:49,320 A héj létrehozza a változót, és ad neki egy értéket. 552 00:39:49,320 --> 00:39:52,730 Néhány ezek közül a héj által meghatározott, de aztán újra a felhasználó által 553 00:39:52,730 --> 00:39:54,820 az ő preferenciái. 554 00:39:54,820 --> 00:39:59,110 És néhány közülük a felhasználó által létrehozott attól függően, hogy mit csinál ezen a napon. 555 00:39:59,110 --> 00:40:01,880 Ez csak beállított paraméterek nélkül. 556 00:40:06,920 --> 00:40:10,050 Van egy furcsa tulajdonsága van ez a dolog. 557 00:40:10,050 --> 00:40:17,980 Nem kell, hogy vagy nincs szóköz között egyenlőségjel és a változó neve 558 00:40:17,980 --> 00:40:23,700 és az értéket vagy terek mindkét oldalán az egyenlőségjel, 559 00:40:23,700 --> 00:40:28,940 mint ebben az egy. 560 00:40:35,620 --> 00:40:41,340 Ez nem fog működni, és ez valójában egy érvényes parancs 561 00:40:41,340 --> 00:40:43,390 de nem fog tenni, amit kíván. 562 00:40:43,390 --> 00:40:50,070 Ez a parancs működik, mert ha csak mondjuk meg, és a változó neve 563 00:40:50,070 --> 00:40:54,890 nincs egyenlőségjel vagy állítsa, és a változó nevét egy egyenlőségjel, és nincs értéke, 564 00:40:54,890 --> 00:40:57,770 akkor állítsa a változót a null értéket. 565 00:40:57,770 --> 00:41:00,120 Tehát a = érvényes parancs. 566 00:41:00,120 --> 00:41:04,370 A set parancs meghatározhatja több mint 1 változót ugyanabban a sorban. 567 00:41:04,370 --> 00:41:11,240 Tehát ez a parancs itt az a hatása meghatározó mind a és b null. 568 00:41:11,240 --> 00:41:13,470 Valószínűleg nem az, amit akarsz. 569 00:41:13,470 --> 00:41:17,940 Ez itt már korábban említettük, vezet hiba 570 00:41:17,940 --> 00:41:21,270 mert a = b nem érvényes kifejezés. 571 00:41:21,270 --> 00:41:23,680 A változó neve nem kezdődhet az egyenlőségjel. 572 00:41:26,760 --> 00:41:29,080 És ezek a további dolgokat. 573 00:41:29,080 --> 00:41:36,820 A kettőspont használták kiválasztásához érveket a történelemből vonalak, 574 00:41:36,820 --> 00:41:41,210 és fel lehet használni -, és nem mentem bele, mielőtt - módosítani ezeket a dolgokat. 575 00:41:41,210 --> 00:41:44,480 Azt is fel lehet használni, hogy módosítsa shell változókat. 576 00:41:44,480 --> 00:41:49,050 Ez itt, $ a, amelynek értéke van. 577 00:41:49,050 --> 00:41:55,040 : R fog felszállni kiterjesztése. 578 00:41:55,040 --> 00:41:57,200 A meghosszabbítás bármi követően egy pont, 579 00:41:57,200 --> 00:41:59,200 egy pont, és valami azt követő végén egy fájlt, 580 00:41:59,200 --> 00:42:03,230 csak a végén a lista utolsó perjel után. 581 00:42:03,230 --> 00:42:05,480 Szóval van itt. 582 00:42:05,480 --> 00:42:10,730 a az a. Eldobja az. O. 583 00:42:10,730 --> 00:42:16,510 Ha nincs kiterjesztése, csak az elérési útvonalat az utolsó perjel, akkor nincs hatása. 584 00:42:16,510 --> 00:42:27,480 a: h, hogy a változó kifejezés, majd vegye le az utolsó eleme a könyvtár lista, 585 00:42:27,480 --> 00:42:29,660 megint csak az utolsó perjel. 586 00:42:29,660 --> 00:42:33,160 Tehát / a / b / c válik / a / b, 587 00:42:33,160 --> 00:42:38,870 de ez megváltozik, mert az elem után a lista null. 588 00:42:38,870 --> 00:42:43,070 Itt van valami, ami azt is szeretnék hangsúlyozni. 589 00:42:43,070 --> 00:42:46,770 Ezek a minősítők nem keres akkor az ilyen fájlokat. 590 00:42:46,770 --> 00:42:48,910 Ők csak nézd a szálakat. 591 00:42:48,910 --> 00:42:54,520 Ezek célja, hogy manipulálni fájlneveket, elérési útvonalakkal, 592 00:42:54,520 --> 00:42:57,520 de lehet használni minden húr is, ha ez nem a fájl nevét. 593 00:42:57,520 --> 00:42:58,920 És nem keres a létezését, 594 00:42:58,920 --> 00:43:03,550 Tehát, ha nincs ilyen fájl, / a / b / c, ez továbbra is működni fognak. 595 00:43:03,550 --> 00:43:06,930 Legyen szó bármilyen használata, az más kérdés, de ez még mindig működik. 596 00:43:06,930 --> 00:43:12,850 Változók különböznek a Bourne héj. Mi lesz később. 597 00:43:12,850 --> 00:43:18,240 Dollar sign is elkerülte, mint a felkiáltójel és a csillag. 598 00:43:18,240 --> 00:43:21,760 Dollar sign is megszökött egy backslash vagy az aposztrófot. 599 00:43:21,760 --> 00:43:24,790 Idézőjelek, hogy a furcsa hatást az összes kagyló 600 00:43:24,790 --> 00:43:28,690 arra kényszerítve az értékelés a dollár jel változó kifejezés. 601 00:43:28,690 --> 00:43:31,960 Tehát ha ez is megszökött egy út, az idézőjelek lehet a hatása 602 00:43:31,960 --> 00:43:34,380 Az okozza, hogy értékelni egyébként. 603 00:43:34,380 --> 00:43:37,090 Ez egy kicsit zavaros. 604 00:43:37,090 --> 00:43:43,740 Ha több szintje menekülés, mint például egy idézőjelek idézőjelek 605 00:43:43,740 --> 00:43:46,770 vagy dupla idézőjelek belül az aposztróf jelet, meg kell vizsgálni, hogy mi fog történni 606 00:43:46,770 --> 00:43:49,520 a változó, ha használ egy. 607 00:43:49,520 --> 00:43:53,410 Azok a 2. esetben - két belsejében egy, egy belső kettős - 608 00:43:53,410 --> 00:43:55,980 nem feltétlenül adja meg ugyanazt az eredményt. 609 00:44:02,520 --> 00:44:05,600 Környezeti változók, kötött C-shell változókat. 610 00:44:05,600 --> 00:44:08,340 Környezeti változók is változó, a C-shell, 611 00:44:08,340 --> 00:44:11,250 és ők is változók más kagyló is. 612 00:44:11,250 --> 00:44:15,230 A C-shell, ezek különböző készletek. 613 00:44:15,230 --> 00:44:18,130 Azok a dolgok, mondtam, mielőtt mintegy shell változókat. 614 00:44:18,130 --> 00:44:21,300 Környezeti változók egy jól elkülönülő változók 615 00:44:21,300 --> 00:44:28,650 kivéve a több változó vagy ahogy mi hívjuk kötött változók, 616 00:44:28,650 --> 00:44:30,640 ami nagyon fontos, és mi lesz azokba később. 617 00:44:30,640 --> 00:44:34,950 Környezeti változók automatikusan adják tovább 618 00:44:34,950 --> 00:44:41,800 a kagyló és parancsok futnak a shell. 619 00:44:41,800 --> 00:44:46,220 A többi dolog nem. A shell változókat, az álnevek nem. Környezeti változók. 620 00:44:46,220 --> 00:44:48,630 Ezért nevezzük őket környezeti változók, 621 00:44:48,630 --> 00:44:55,030 az ötlet is, hogy a környezet túlnyúlik csak az aktuális shell. 622 00:44:55,030 --> 00:45:00,510 Ezeket fel lehet használni, hogy meghatározza a dolgokat parancsokat. 623 00:45:00,510 --> 00:45:05,470 Íme egy példa. PRINTER, LPDEST. 624 00:45:05,470 --> 00:45:12,270 E két változó határozza meg a nyomtatót, hogy a parancsot fogja használni a nyomtatáshoz a dolgokat. 625 00:45:12,270 --> 00:45:16,500 Ha több nyomtató körül, akkor érdemes tenni, hogy melyik tetszik. 626 00:45:16,500 --> 00:45:21,320 Az ok van 2 változó, hogy a különböző készletek parancsok írták 627 00:45:21,320 --> 00:45:23,870 ezekkel a különböző változók. 628 00:45:23,870 --> 00:45:25,910 Lehet, hogy nekik különböző értékeket. 629 00:45:25,910 --> 00:45:28,860 Legvalószínűbb, akkor nekik mind ugyanazt az értéket. 630 00:45:28,860 --> 00:45:35,840 Azok a dolgok, mert a parancsokat, amelyek a nyomtatás 631 00:45:35,840 --> 00:45:40,740 volt programozva, hogy vizsgálja meg az értékeket ezen változók. 632 00:45:42,200 --> 00:45:46,150 Ha egy program nem írta, hogy így, ha le van írva, hogy valami mást, 633 00:45:46,150 --> 00:45:48,280 változó lenne jelentősége. 634 00:45:48,280 --> 00:45:52,530 Tehát az operációs rendszer nem keres ilyen változó 635 00:45:52,530 --> 00:45:55,210 minden alkalommal, amikor olvassa el a nyomtatóhoz. 636 00:45:55,210 --> 00:45:59,090 A parancs nem nyomtatás keres ezeket a változókat ha be van programozva, hogy az utat. 637 00:46:11,030 --> 00:46:15,240 Ezek a változók gyakran határozza meg az inicializáló fájlok 638 00:46:15,240 --> 00:46:19,440 de nem feltétlenül. 639 00:46:19,440 --> 00:46:21,050 Megadhatja azokat a parancssorban. 640 00:46:21,050 --> 00:46:24,090 Ezek határozzák meg a parancsot. 641 00:46:24,090 --> 00:46:28,740 A parancs, amely futtatja valami lehet, hogy saját kiválasztási változók - 642 00:46:28,740 --> 00:46:32,390 változók, amelyek egyediek egy adott szoftver csomag, például. 643 00:46:32,390 --> 00:46:36,740 Ők fogják meghatározni futtatásakor a csomagot. 644 00:46:39,690 --> 00:46:42,680 Hogy ezeket a változókat át egy al-shell? 645 00:46:42,680 --> 00:46:48,210 Amikor egy al-shell van írva, akkor nem írja be a területen. 646 00:46:48,210 --> 00:46:53,260 A terület az al-héj, amely elkötelezett a környezeti változók 647 00:46:53,260 --> 00:46:56,450 Nem írta az al-shell, ez által írt másolás. 648 00:46:56,450 --> 00:47:00,530 Amikor fut egy közönséges parancsot, például ezeket a parancsokat nyomtatni, vagy bármi, 649 00:47:00,530 --> 00:47:03,840 kezdik ki egy új shell. 650 00:47:03,840 --> 00:47:06,190 A héj létrehoz egy shell, majd felülírja része 651 00:47:06,190 --> 00:47:08,800 azzal a paranccsal, hogy futsz, ami egy kicsit zavaró, 652 00:47:08,800 --> 00:47:10,740 de ez, hogy ezeket a parancsokat, hogy a környezeti változók 653 00:47:10,740 --> 00:47:14,890 hogy aztán lásd később. 654 00:47:21,920 --> 00:47:28,010 A parancs itt meghatározó változó setenv. 655 00:47:28,010 --> 00:47:36,470 Ez hogyan határozza meg azt. Ez a 3 elem: setenv, változó, értékét. 656 00:47:36,470 --> 00:47:44,710 Ha csak nem SetEnv argumentumok nélkül, mit kap? 657 00:47:47,220 --> 00:47:48,810 A lista az összes ilyen változó. 658 00:47:48,810 --> 00:47:53,190 Ismét, ez egy szép hosszú listát, és ebben az esetben, mint a többiek, 659 00:47:53,190 --> 00:47:57,320 ezek a változók határozzák meg nagyrészt a bejelentkezési műveletet a shell maga 660 00:47:57,320 --> 00:47:59,740 nem pedig amit én tettem. 661 00:47:59,740 --> 00:48:03,580 Van még egy parancs van, printenv. 662 00:48:07,520 --> 00:48:10,340 Ez azt is kiírja a környezetet. 663 00:48:10,340 --> 00:48:15,240 Figyeljük meg az utolsó dolog itt, EDITOR = vi. 664 00:48:15,240 --> 00:48:21,120 Ez azt mondja, hogy ha én vagyok a dolog, hogy hívja szerkesztő 665 00:48:21,120 --> 00:48:25,530 és nem adja meg a szerkesztő, és ez lehetővé teszi számomra a választás, akkor adj vi. 666 00:48:25,530 --> 00:48:37,280 Mi van, ha én printenv szerkesztő? Azt mondja nekem, mi az. 667 00:48:37,280 --> 00:48:41,340 Jobb előtt, volt egy változót, kevesebb. 668 00:48:41,340 --> 00:48:46,040 Ezek az alapértelmezett beállításokat, amikor elindul a less paranccsal, 669 00:48:46,040 --> 00:48:49,360 amely megjeleníti a fájlokat. 670 00:48:49,360 --> 00:48:55,910 Tehát, ha megteszem, printenv vehet 1. érv vagy 0 érveket, 671 00:48:55,910 --> 00:48:58,070 nem több, mint 1. 672 00:49:01,800 --> 00:49:05,690 Vannak más parancsokat is, de mi nem fogunk bejutni minden ma. 673 00:49:05,690 --> 00:49:11,010 Ne feledje, ott voltak a módosítókat a shell változók, mint a: h, 674 00:49:11,010 --> 00:49:14,350 amely csökkenni fog az utolsó eleme egy elérési utat, 675 00:49:14,350 --> 00:49:17,950 vagy: r, ami csökken kiterjesztése. 676 00:49:17,950 --> 00:49:23,110 Azok most már alkalmazni kell a környezeti változók is. Nem használt. 677 00:49:23,110 --> 00:49:24,960 Régen nem lehetett módosítani. Most már lehet. 678 00:49:24,960 --> 00:49:29,190 Ez az egyik, a fejlődés és a fejlesztések, a kagyló az évek során. 679 00:49:29,190 --> 00:49:35,620 Azt mondtam, hogy a kagyló részeként a környezet 680 00:49:35,620 --> 00:49:43,040 és a shell változók a C-shell van, néhány kivételtől eltekintve, külön csoportja. 681 00:49:43,040 --> 00:49:46,790 Meg tudjuk állapítani egy környezeti változó, és a shell változót ugyanazzal a névvel. 682 00:49:46,790 --> 00:49:49,220 Lesznek különböző változók, ők is más és más értékeket. 683 00:49:49,220 --> 00:49:53,090 Megváltoztatása értéke egy nem változik az értéke a többi. 684 00:49:53,090 --> 00:49:58,070 Ezek a változók mind értékeljük a dollárjel - $ a, $ mindegy. 685 00:49:58,070 --> 00:50:02,340 Mi van, ha van ez? Tudja, melyik kap? 686 00:50:02,340 --> 00:50:04,520 Az én vizsgálatokat kaptam a shell változót, 687 00:50:04,520 --> 00:50:07,240 de ez nem dokumentálták, és akkor nem hivatkozhat e. 688 00:50:07,240 --> 00:50:10,270 Ezért kérem, teremt héj és környezeti változók 689 00:50:10,270 --> 00:50:13,490 azonos nevű jó ötlet? Oké. 690 00:50:13,490 --> 00:50:17,460 Melyek azok a fő kivételek, ahol a környezet és a shell változókat 691 00:50:17,460 --> 00:50:19,860 kapcsolódnak egymáshoz? 692 00:50:19,860 --> 00:50:27,470 Jelenleg a 4. 693 00:50:32,030 --> 00:50:35,510 Capital levélben TERM környezeti változót, 694 00:50:35,510 --> 00:50:41,540 shell változó távon kis betűkkel, írja a terminál emuláció. 695 00:50:41,540 --> 00:50:47,430 Én csak megyek át ide, és fogok csinálni echo, hasznos parancs van, 696 00:50:47,430 --> 00:50:52,560 $ TERM $ távon. És ott. 697 00:50:52,560 --> 00:51:00,570 xterm egy terminál típusú ablak jelenik meg az X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-szín egy változata, amely lehetővé teszi, hogy a különböző színekben. 699 00:51:04,330 --> 00:51:06,580 Miért mi határozza meg ezeket? Mi ez a jó? 700 00:51:06,580 --> 00:51:09,740 Parancsok, hogy rendezze át a képernyőn, mint a szerkesztő 701 00:51:09,740 --> 00:51:13,680 küldje különösen sorozatok, az úgynevezett escape szekvenciák, 702 00:51:13,680 --> 00:51:18,160 hogy egy terminál vagy egy ablak átrendezni, és így tovább. 703 00:51:18,160 --> 00:51:20,990 Azok a szekvenciák eltérőek a különböző típusú terminálok. 704 00:51:20,990 --> 00:51:23,100 Ez azt mondja, hogy melyiket használja. 705 00:51:23,100 --> 00:51:25,900 Néha vannak olyan kérdések is. 706 00:51:25,900 --> 00:51:28,600 Lehet, hogy ezen változtassak. 707 00:51:28,600 --> 00:51:30,780 Ha a dolgok nem működnek, néha a terminál típusának beállítása rossz, 708 00:51:30,780 --> 00:51:36,440 akkor lehet, kijavítani a újradefiniálása a változót. 709 00:51:36,440 --> 00:51:43,420 Ezekben az esetekben, a változó egy változó, vagy a környezeti változót a shell változót, 710 00:51:43,420 --> 00:51:45,970 meg kell változtatni a másikat. 711 00:51:45,970 --> 00:51:50,970 Jöttem rá, a tapasztalat, hogy a változó TERM nagybetűvel 712 00:51:50,970 --> 00:51:54,060 nem mindig változik shell változót távon kis betűkkel. 713 00:51:54,060 --> 00:51:55,550 Ez egy hiba. 714 00:51:55,550 --> 00:51:59,400 Én nem tudom, hogy ez mindig igaz. A legtöbb esetben ez nem igaz, de lehet. 715 00:51:59,400 --> 00:52:02,490 Tehát, ha egy változtatás, csak nézzétek meg. 716 00:52:02,490 --> 00:52:05,830 Nem gyakori, hogy meg kell változtatni, hogy érték, de egyszer-egyszer te. 717 00:52:05,830 --> 00:52:08,260 Környezeti változó USER. 718 00:52:08,260 --> 00:52:12,070 Ismét környezeti változó nagybetűvel, shell változó kis betűkkel. 719 00:52:12,070 --> 00:52:13,710 Ez a felhasználónevét. 720 00:52:13,710 --> 00:52:16,730 Ez csak nagyon kivételes körülmények között 721 00:52:16,730 --> 00:52:18,420 , hogy szeretne változtatni. 722 00:52:18,420 --> 00:52:22,350 Ha a felhasználónév valaki más, akkor dobni mindenféle dolgokat. 723 00:52:22,350 --> 00:52:26,040 Home könyvtár, a felhasználó home könyvtárában. 724 00:52:26,040 --> 00:52:28,060 Még egyszer, nem akar változtatni. 725 00:52:28,060 --> 00:52:32,260 Figyeljük meg az összes ilyen esetben, és az egyik, hogy vagyunk, hogy fedezze a PATH változó, 726 00:52:32,260 --> 00:52:37,070 környezeti változó nagybetűvel, és a kötött shell változó kis betűkkel. 727 00:52:37,070 --> 00:52:39,240 Ha megváltoztatja az egyik, meg kell változtatni a másikat. 728 00:52:39,240 --> 00:52:45,960 Ez a fajta kötődés nem jön létre, akkor nem kötelező 2 változó, 729 00:52:45,960 --> 00:52:50,570 kivéve a 4, és a kötelező ezeket a változókat nem lehet visszavonni, 730 00:52:50,570 --> 00:52:52,090 nem lehet őket szétválasztani. 731 00:52:52,090 --> 00:52:55,820 Tehát ezek a 4 pár változó köti. 732 00:52:55,820 --> 00:52:59,020 Mindig lesznek. Nincs más lesz. 733 00:52:59,020 --> 00:53:05,720 Ezen kívül, lehetséges lenne, hogy hozzon létre változókat az azonos nevű 734 00:53:05,720 --> 00:53:07,780 az ellenkező típusok. 735 00:53:07,780 --> 00:53:11,600 Lehet, hogy egy shell változót kifejezés kis betűkkel 736 00:53:11,600 --> 00:53:14,990 vagy környezeti változó TERM nagybetűkkel. 737 00:53:14,990 --> 00:53:19,040 Azok a változók független ezek párosítva változó 738 00:53:19,040 --> 00:53:20,780 és lennének függetlenek egymástól. 739 00:53:20,780 --> 00:53:23,780 El sem tudom képzelni, miért tenne ilyet, ha nem akarja összezavarni az embereket. 740 00:53:24,600 --> 00:53:29,730 Ez itt, útvonal változó, ez egy nagyon fontos. 741 00:53:29,730 --> 00:53:35,550 A másik dolog az, hogy nem lehet esetek 742 00:53:35,550 --> 00:53:40,430 változók hasonló páros nevek, amelyek nem kötődnek egymáshoz. 743 00:53:40,430 --> 00:53:45,000 Nem lehet változókat, SHELL és a héj, a kis-és nagybetű. 744 00:53:45,000 --> 00:53:48,300 Alapján ezt a nevet, akkor nem tudom, hogy a változó egy shell változó 745 00:53:48,300 --> 00:53:51,580 vagy környezeti változó, és ők nem kötődnek egymáshoz. 746 00:53:51,580 --> 00:53:55,300 Tehát ez a fajta párosított neveket nem jelenti azt, kötött változók. 747 00:53:55,300 --> 00:53:58,830 Az út változót, amit megmutattam korábban, 748 00:53:58,830 --> 00:54:01,880 van egy lista a pathnames amelyben a shell úgy néz ki, a parancsok. 749 00:54:01,880 --> 00:54:12,320 Térjünk át az ablak itt, és mi nem echo $ PATH, nagybetűvel - 750 00:54:12,320 --> 00:54:20,230 környezeti változó - echo $ path, kis betűkkel - shell változó. 751 00:54:20,230 --> 00:54:24,980 Figyeljük meg, hogy a lista könyvtárak ugyanaz. Ezek kötve. 752 00:54:24,980 --> 00:54:26,590 Változás az egyik, meg nem változtatja a másik. 753 00:54:26,590 --> 00:54:32,970 A környezeti változó elemek választja el. Figyeljük meg, hogy. 754 00:54:32,970 --> 00:54:35,130 A shell változókat szóközzel elválasztva. 755 00:54:35,130 --> 00:54:38,760 Ez a környezeti változó egy sztring. 756 00:54:38,760 --> 00:54:41,480 A héj változó egy tömb. 757 00:54:41,480 --> 00:54:43,490 A Bourne shell nem volt tömbök. 758 00:54:43,490 --> 00:54:46,600 Bash csinál, de ez már egy állandó része a héj. 759 00:54:46,600 --> 00:54:48,660 Ez egy szöveg, és nem egy tömbben. 760 00:54:48,660 --> 00:54:50,420 A C-shell mindig tömbök. 761 00:54:50,420 --> 00:54:52,630 A tömbök sokkal könnyebb dolgozni. 762 00:54:52,630 --> 00:54:54,400 Akkor nézze meg részeit. 763 00:54:54,400 --> 00:55:02,350 Tehát echo $ PATH [1], és kapok a / usr / bin, az első elemet. 764 00:55:02,350 --> 00:55:09,950 Újra, ne feledje dollárjel áll az utolsó eleme az előzmények listáját. 765 00:55:09,950 --> 00:55:16,850 Mi történik ott? Azt próbálta megtalálni dollárjel, mint egy változó szimbólum. 766 00:55:16,850 --> 00:55:20,850 Én menekülni. Bocs. Ez nem veszi, hogy vagy. 767 00:55:20,850 --> 00:55:23,690 Néhány ezek a dolgok nem működnek olyan jól. 768 00:55:23,690 --> 00:55:28,140 Lehet, hogy akkor csak hagyjuk, hogy ki. 769 00:55:28,140 --> 00:55:36,980 Asterisk utal az egészet, de ez az, amit kapsz, ha nem adja meg az elem. 770 00:55:36,980 --> 00:55:46,170 Egy másik módja, hogy a tömb változó lehet manipulálni, 771 00:55:46,170 --> 00:55:49,500 elemek száma is, 7 elem. 772 00:55:49,500 --> 00:55:53,410 Itt tesszük a font jel előtt a változó neve. 773 00:55:53,410 --> 00:55:58,280 Itt van még egy. Tegyen egy kérdőjel van. 774 00:55:58,280 --> 00:56:03,170 Ez egy logikai érték. Ez azt jelzi, hogy a változó létezik. 775 00:56:03,170 --> 00:56:05,160 Ez egy másik módja a munka változó. 776 00:56:05,160 --> 00:56:06,660 Ez, mellesleg, nem kell, hogy egy tömb változót. 777 00:56:06,660 --> 00:56:08,210 Ez lehet bármilyen változó. 778 00:56:08,210 --> 00:56:11,840 És ha igen, nincs olyan változó, és kapok egy 0-ra. 779 00:56:11,840 --> 00:56:14,990 A másik kis dolog, ott a változó értékeléseket. 780 00:56:23,670 --> 00:56:32,950 Vissza ez itt, ha valamilyen okból akarsz dolgozni ezzel a 781 00:56:32,950 --> 00:56:37,990 inkább, mint a munka, a tömb a shell változót, 782 00:56:37,990 --> 00:56:41,470 parancsok vannak, hogy lehet elkülöníteni ezeket a dolgokat alapján a vastagbélben. 783 00:56:41,470 --> 00:56:44,080 Sőt, ha lesz, hogy ezt a Bash shell esetleg 784 00:56:44,080 --> 00:56:47,110 valamilyen script, az lenne talán, hogy hogyan fog csinálni. 785 00:56:47,110 --> 00:56:50,350 De a C-shell sokkal könnyebb használni a tömb. 786 00:56:50,350 --> 00:56:58,250 A Bourne shell változókat rendelt egyetlen kifejezés, mint ez, 787 00:56:58,250 --> 00:57:01,760 mint ahogy lehet rendelni egy változó egy programozási nyelv, 788 00:57:01,760 --> 00:57:05,110 és itt nem lehet szóköz. 789 00:57:05,110 --> 00:57:09,110 Ez kell, hogy legyen, csak 1 szöveget. 790 00:57:09,110 --> 00:57:14,980 A Bourne-féle kagyló, valamennyi változót shell változókat. 791 00:57:14,980 --> 00:57:19,250 Környezeti változók egy részét a shell változókat. 792 00:57:19,250 --> 00:57:24,060 Ők megkülönböztetni a nem-környezeti változókat exportálja. 793 00:57:24,060 --> 00:57:28,860 A parancs, hogy az, az export, mint az export PRINTER. 794 00:57:28,860 --> 00:57:34,930 Ha volt, hogy határozzák meg az ilyen változó, 795 00:57:34,930 --> 00:57:38,480 ha volna egy nyomtatási parancsot, hogy megtalálja, akkor kell egy környezeti változó, 796 00:57:38,480 --> 00:57:40,730 és ez hogyan hogy ez az egyik. 797 00:57:40,730 --> 00:57:42,090 Itt van valami fajta zavaró. 798 00:57:42,090 --> 00:57:50,430 Ez a kifejezés, az export a környezetre, ered ez a Bourne shell koncepció, 799 00:57:50,430 --> 00:57:54,520 és mégis ezt a kifejezést használják a leírások a C-héj, 800 00:57:54,520 --> 00:57:57,920 ahol nincs ilyen parancs export. 801 00:57:57,920 --> 00:58:06,200 Ha csak annyit export önmagában, kapsz egy listát exportált - 802 00:58:06,200 --> 00:58:10,620 Tehát, ha én csak exportálni itt nincs ilyen dolog. 803 00:58:13,620 --> 00:58:15,200 Oké, itt vagyunk. 804 00:58:15,200 --> 00:58:17,010 Ezek a dolgok, mellesleg, szintén meghatározott, a héj. 805 00:58:17,010 --> 00:58:19,400 Én nem határozza meg bármelyik magam. 806 00:58:19,400 --> 00:58:23,550 A héj nem mindenféle dolgokat is. 807 00:58:23,550 --> 00:58:26,650 Meg kell csinálni a dolgokat automatikusan. 808 00:58:30,240 --> 00:58:36,880 A Bash vagy Korn shell, akkor lehet futtatni egy parancsot, mint ez, 809 00:58:36,880 --> 00:58:42,000 amely egyszerre ad egy változó értéke és az export, az 1. parancsot. 810 00:58:42,000 --> 00:58:46,150 A Bourne shell kell őket külön parancsokat, mint a kivitel. 811 00:58:46,150 --> 00:58:48,410 Itt van egy másik szempont, hogy ez zavaró. 812 00:58:48,410 --> 00:58:52,220 A set parancs a C-shell változókat határoz 813 00:58:52,220 --> 00:58:55,550 és argumentumok nélkül megmondja, hogy mi a változók értékei. 814 00:58:55,550 --> 00:59:01,140 A Bash shell, a set parancs argumentumok nélkül nem ugyanaz a dolog, 815 00:59:01,140 --> 00:59:03,580 de érvekkel ez valami egészen más. 816 00:59:03,580 --> 00:59:06,200 Tehát ezek a különböző érveket itt. 817 00:59:06,200 --> 00:59:10,460 Néhány ezek közül a környezeti változókat, néhány közülük shell változókat. 818 00:59:10,460 --> 00:59:13,200 Mindegyik shell változókat igazán. Néhányan azok közül, amelyek környezeti változókat. 819 00:59:15,690 --> 00:59:23,920 A set parancs érvekkel is képes vezérelni 820 00:59:23,920 --> 00:59:28,220 A pozicionális paramétereket a script, 821 00:59:28,220 --> 00:59:33,910 ami egy módja annak, hogy őket egyszerre. 822 00:59:33,910 --> 00:59:36,150 Nem igazán megy bele, hogy a mai. 823 00:59:36,150 --> 00:59:39,580 Azt is fel lehet használni, hogy változtatni héj viselkedését. 824 00:59:39,580 --> 00:59:46,700 Különösen a Bash vannak változók, amelyek meghatározzák, hogy a shell viselkedik. 825 00:59:46,700 --> 00:59:51,310 Ezután is csak ez az egy parancsot, hogy lehet látni, ez a parancs. 826 00:59:51,310 --> 00:59:59,050 Typeset majd változók és a változó típusokat használják a Korn és a Bash kagyló. 827 00:59:59,050 --> 01:00:04,970 Ez nem kötelező, de lehet használni, hogy korlátozza a változók értékei, 828 01:00:04,970 --> 01:00:08,400 ami hasznos lehet a hibák megelőzésére, és ez meglehetősen gyakori. 829 01:00:08,400 --> 01:00:11,640 Szóval, csak megemlíteni, hogy abban az esetben látod valahol. 830 01:00:17,290 --> 01:00:19,160 A hol a parancsot. 831 01:00:19,160 --> 01:00:22,490 Emlékezz korábban említettem az, amikor parancsot a C-shell, 832 01:00:22,490 --> 01:00:28,750 amely megmondja a helyét parancs elérési út. 833 01:00:28,750 --> 01:00:32,580 Itt a parancs helyettesítés. 834 01:00:32,580 --> 01:00:41,900 Meg kell találni a billentyűzeten valahol egy karaktert, ami így néz ki. 835 01:00:41,900 --> 01:00:44,910 A helyszín a billentyűzeten fog változik. 836 01:00:44,910 --> 01:00:47,050 Már nevezte backquote. Ez körülbelül akkora, mint egy idézet. 837 01:00:47,050 --> 01:00:48,720 Ez megy a bal felső a jobb alsó sarokban. 838 01:00:48,720 --> 01:00:52,690 Itt az én Mac billentyűzeten, hogy ez a bal felső sarokban. 839 01:00:52,690 --> 01:00:58,150 Ezt a karaktert lehet használni, hogy végre a parancsot egy parancs. 840 01:00:58,150 --> 01:01:03,400 Ha van egy kifejezés belső backquotes, 841 01:01:03,400 --> 01:01:07,080 ez a kifejezés a parancs, ez fut. 842 01:01:07,080 --> 01:01:09,010 A kimenet a parancs 843 01:01:09,010 --> 01:01:11,980 Ezután az egész szubsztituált backquote expressziós 844 01:01:11,980 --> 01:01:16,110 belül egy hosszabb parancsot, amely aztán fut, hogy a kibocsátás 845 01:01:16,110 --> 01:01:22,010 részeként sor érveit, és így tovább. 846 01:01:22,010 --> 01:01:28,640 Itt van egy parancs, amely használja ezt. 847 01:01:28,640 --> 01:01:32,340 Nézzük működés közbeni bemutatása itt. 848 01:01:44,980 --> 01:01:49,090 Menjünk fel itt, vegye ki a backquotes. 849 01:01:49,090 --> 01:01:54,410 A vezérlés lesz nekem a sor elejére az Emacs szerkesztő szintaxis. 850 01:01:54,410 --> 01:02:00,380 Eddig az elérési útvonalat, ami hol van, 851 01:02:00,380 --> 01:02:05,040 de ha én csinálom, mint ez, akkor dugók abban lista pathnames 852 01:02:05,040 --> 01:02:08,750 helyett az egész backquote kifejezés és fut ls-l rájuk. 853 01:02:08,750 --> 01:02:11,120 Valami kényelmes, mi? 854 01:02:11,120 --> 01:02:14,860 Tehát ez egy szép dolog. Így backquotes működik. 855 01:02:14,860 --> 01:02:17,560 Most menjünk le egy kicsit tovább. 856 01:02:17,560 --> 01:02:22,050 Ezek az álnevek. Igazából használni ezeket. 857 01:02:22,050 --> 01:02:26,410 Megpróbálom, hogy ezt az 1 szerkesztési művelet. 858 01:02:34,900 --> 01:02:36,900 Oké. 859 01:02:36,900 --> 01:02:39,630 Most lássuk, hogy e meghatározások jött ki. 860 01:02:39,630 --> 01:02:44,930 alias HSM mondta nekem, hogy ez határozza meg. 861 01:02:44,930 --> 01:02:51,210 Figyeljük meg, hogy csak ezt, de a külső idézetek kivontak 862 01:02:51,210 --> 01:02:53,750 és a felkiáltójel is lekerült. 863 01:02:53,750 --> 01:02:58,940 ! *, A teljes listát az összes érvet. 864 01:02:58,940 --> 01:03:03,580 Egy alias meghatározást alkalmazni fogja vissza, ahol ezt használja. 865 01:03:03,580 --> 01:03:10,620 HSM ksh bash. Oké. 866 01:03:10,620 --> 01:03:13,960 Nézze meg, hogyan, hogy működik? Úgy ment nekem a gépelést. 867 01:03:13,960 --> 01:03:16,440 Menjünk egy kicsit, csak hogy említsek itt még valami. 868 01:03:19,150 --> 01:03:23,120 Figyeljük meg, itt a különböző kagyló. Kellett volna említette ezt korábban. 869 01:03:23,120 --> 01:03:36,060 A csh egy 2 ide, és így nem / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Tudtuk megállapítani más módon, hogy azok valójában ugyanabban a fájlban. 871 01:03:39,870 --> 01:03:43,150 Emlékszel azt mondtam, ha beírja sh kapsz bash. 872 01:03:43,150 --> 01:03:47,390 Írja be ezt, és megkapod ezt. 873 01:03:47,390 --> 01:03:51,730 De ezek nem kapcsolódnak. Azok a szimpla is ott. 874 01:03:51,730 --> 01:03:54,910 És ez nem az a fajta fájlt, amely lehet hívni egy másikat. 875 01:03:54,910 --> 01:03:59,460 Tehát ezek külön fájlokat, a C-shell is ugyanaz a fájl. 876 01:03:59,460 --> 01:04:03,640 Vissza ide, a másik itt, ez alias, 877 01:04:03,640 --> 01:04:09,090 vegye figyelembe, hogy fut a parancsot, a fájl. 878 01:04:09,090 --> 01:04:13,810 Az alias fut, hogy. File megmondja, hogy milyen típusú a fájl. 879 01:04:13,810 --> 01:04:20,330 Tehát FWH ksh bash. Oké. 880 01:04:20,330 --> 01:04:23,230 Ez a termelés a fájl parancsot. 881 01:04:23,230 --> 01:04:24,630 Nem tudom, ha tudod, hogy ez mit jelent itt, 882 01:04:24,630 --> 01:04:26,750 Mach-O univerzális bináris, 2 architektúrák. 883 01:04:26,750 --> 01:04:30,470 Van 2 lehetőség processzor típusok Mac, 884 01:04:30,470 --> 01:04:34,780 és néhány programot írtak, hogy képes legyen futtatni mindkét, 885 01:04:34,780 --> 01:04:37,950 és a fájl paranccsal tudja határozni, hogy, hogy az, hogy ez mit jelent. 886 01:04:37,950 --> 01:04:40,660 Mindkét fájlok írták így. 887 01:04:40,660 --> 01:04:43,760 Tehát azt látjuk, hogy az alias működik, látjuk, hogy a backquote működik, 888 01:04:43,760 --> 01:04:48,640 látjuk, hogy az aktuális fájl ls vagy fájl működik. 889 01:04:52,050 --> 01:04:57,000 Ez lehet, hogy nem működik. Próbálja meg ", ahol, ahol a" és a "lwh ahol". Oké, próbáljuk meg. 890 01:04:57,000 --> 01:05:01,040 ahol hol. 891 01:05:01,040 --> 01:05:03,500 hol van a shell beépített. 892 01:05:03,500 --> 01:05:06,970 Ne feledje, korábban azt mutatták, hogy a Bash nem volt hol. 893 01:05:06,970 --> 01:05:10,080 Ha beírjuk, ahol a Bash shell, akkor kap egy hibaüzenetet. 894 01:05:10,080 --> 01:05:12,540 Ez csak egy része a héj, ahelyett, hogy egy külön parancsot. 895 01:05:12,540 --> 01:05:20,000 Mi történik, ha azt írja lwh keresi hol? Meglátjuk, mi történik ott. 896 01:05:20,000 --> 01:05:22,850 Ran, ahol, ahol van ez a teljesítmény, majd megpróbálta futtatni ls 897 01:05:22,850 --> 01:05:25,600 mint l, hogy hol van a shell beépített. 898 01:05:25,600 --> 01:05:28,790 hol van, de a többit nem léteznek. 899 01:05:28,790 --> 01:05:32,090 Ezek egyike sem létezik, valóban. 900 01:05:32,090 --> 01:05:35,560 Tehát ez nem mindig működik, és ez is mutatja, hogy néhány dolgot 901 01:05:35,560 --> 01:05:39,580 nem nem elég, amit lehet, hogy gondolta. 902 01:05:40,930 --> 01:05:43,010 Menjünk le egy kicsit tovább itt. 903 01:05:44,890 --> 01:05:54,760 Ez itt a Bash. Ez is parancs helyettesítés, mint a backquote. 904 01:05:54,760 --> 01:06:05,280 De ellentétben backquote, használja ezt a változót a stílus. 905 01:06:05,280 --> 01:06:09,860 Számos olyan kifejezések, melyek neve a dollár jelet, 906 01:06:09,860 --> 01:06:16,070 és bár ezek nem változó, de kölcsönzött a használata a dollárjel 907 01:06:16,070 --> 01:06:19,570 jelzi kifejezése valamilyen. 908 01:06:19,570 --> 01:06:23,550 Ezt is körül zárójelek vagy zárójelek vagy kettős zárójel, 909 01:06:23,550 --> 01:06:26,320 amely egy más célt szolgál. 910 01:06:26,320 --> 01:06:29,500 Single zárójelben itt van egy parancs helyettesítési mint a backquotes. 911 01:06:29,500 --> 01:06:32,720 Kettős zárójel valójában egy számtani művelet. 912 01:06:32,720 --> 01:06:35,380 Vannak más szintaxist, egyéb műveletek. 913 01:06:35,380 --> 01:06:41,520 Backquote szintaxis kapható Bash. 914 01:06:41,520 --> 01:06:46,780 Azonban ez az egyik előnyösebb. Sokkal könnyebb olvasni, és ez lehetővé teszi fészkelő. 915 01:06:46,780 --> 01:06:51,300 Lehet van benne $ (parancs) másik parancs, 916 01:06:51,300 --> 01:06:54,590 valami hasonló - 917 01:07:14,560 --> 01:07:18,210 Kapok egy listát is. 918 01:07:18,210 --> 01:07:21,670 Ez akkor működhet, ha az volt a backquote is. 919 01:07:32,050 --> 01:07:38,470 Mit tegyek, ha akarok valamit, mint - 920 01:08:03,390 --> 01:08:06,430 Valószínűleg valójában nem használja ezt a parancsot, 921 01:08:06,430 --> 01:08:14,160 de ez a belső parancs helyettesítés visszhangozza a nevét minden kezdődő fájlokat, 922 01:08:14,160 --> 01:08:18,229 akkor ez fut ls-l azokat a fájlokat, 923 01:08:18,229 --> 01:08:20,500 és akkor ez csak visszhangozza a kimenetet. 924 01:08:21,729 --> 01:08:24,479 Valószínűleg nem ezt, azt csak nem a visszhang vagy ls, 925 01:08:24,479 --> 01:08:29,450 de ez azt mutatja, hogy a fészkelő parancsok működését. 926 01:08:29,450 --> 01:08:34,380 Tehát csak egy funkció itt. 927 01:08:34,380 --> 01:08:37,450  Említettem ezt korábban, hogy ha van, ahol a C-shell, 928 01:08:37,450 --> 01:08:42,770 írja munkák a Bourne-féle kagyló a helyüket parancsokat. 929 01:08:48,939 --> 01:08:52,270 Beépített parancsok, csak amit mondtam ott. 930 01:08:52,270 --> 01:08:54,640 Parancsok része a héj, mint például hol. 931 01:08:54,640 --> 01:08:59,880 Amikor a shell végrehajtja a parancsot, mint ls, megkeresi azt az utat, 932 01:08:59,880 --> 01:09:03,029 találja, hogy valamilyen könyvtárban valahol, 933 01:09:03,029 --> 01:09:05,800 olvassa, hogy a memóriába, létrehoz egy új shell, 934 01:09:05,800 --> 01:09:08,960 beolvassa az ls vagy bármi a shell 935 01:09:08,960 --> 01:09:11,450 ahol a környezeti változók már találhatók, 936 01:09:11,450 --> 01:09:14,000 majd átadja végrehajtás hozzá. 937 01:09:14,000 --> 01:09:18,319 Beépített parancs, a kód a parancs belül van a shell, 938 01:09:18,319 --> 01:09:21,460 így a shell csak elkezdi végrehajtani egy részét saját kódját. 939 01:09:21,460 --> 01:09:24,569 hol van ez a parancs. Valójában egyre gyorsabb. 940 01:09:24,569 --> 01:09:28,380 Nem kell olvasni semmit a memóriában, ez már a memóriában. 941 01:09:28,380 --> 01:09:32,460 Beépített parancsok mindig elsőbbséget élveznek parancsokat az azonos nevet. 942 01:09:32,460 --> 01:09:36,050 Parancsok, amelyek a könyvtárak az úton lehet ugyanaz a neve, 943 01:09:36,050 --> 01:09:39,090 parancsok a különböző könyvtárak, fájlok különböző könyvtárakban. 944 01:09:39,090 --> 01:09:41,740 Az egyik, hogy korábban bekövetkezik, az út az, amit kapsz. 945 01:09:41,740 --> 01:09:43,770 Ha van egy beépített parancs, mindig értem. 946 01:09:43,770 --> 01:09:47,890 Kizárt, hogy ez alacsonyabb elsőbbséget, mint a parancs az elérési utat. 947 01:09:47,890 --> 01:09:54,140 Ha azt szeretnénk, hogy ezt az utat a parancs, akkor írja be a teljes elérési út. 948 01:09:54,140 --> 01:09:55,850 Ha lenne egy parancsot, ahol az út valahol, 949 01:09:55,850 --> 01:09:58,440 Ez lehet / bin / hol és azt értem. 950 01:09:58,440 --> 01:10:01,800 Ha nem akarja, hogy adja meg a teljes elérési utat, akkor meg egy fedőnevet. 951 01:10:01,800 --> 01:10:06,310 Sőt, ha adott az alias ugyanazt a nevet, mint a beépített parancs, akkor a munka 952 01:10:06,310 --> 01:10:08,790 mert az alias definíció értékelése 953 01:10:08,790 --> 01:10:13,220 mielőtt a shell megállapítja, hogy ez egy beépített parancs, amely kell végrehajtani. 954 01:10:18,810 --> 01:10:23,440 Akkor ez lesz egy kicsit bonyolultabb Néhány parancs van. 955 01:10:23,440 --> 01:10:29,880 Az ügy néhány parancs ténylegesen beépített parancsok és az utat. 956 01:10:29,880 --> 01:10:34,140 Az egyik a visszhang, a parancs csak használni egy kicsit ezelőtt ezek a példák. 957 01:10:34,140 --> 01:10:37,410 Echo a parancs az utat, és ez minden shell. 958 01:10:37,410 --> 01:10:40,580 Nem feltétlenül mindegyik viselkedik ugyanúgy. 959 01:10:40,580 --> 01:10:42,970 Ez eredetileg egy parancs csak az utat. 960 01:10:42,970 --> 01:10:45,280 Ben épült a kagyló később. 961 01:10:45,280 --> 01:10:48,080 Mert vannak olyan lehetőségek, amelyek függnek a környezetre 962 01:10:48,080 --> 01:10:52,970 és a parancssori opciók, a beépített parancsok 963 01:10:52,970 --> 01:10:57,030 írták, hogy működik ugyanaz, mint a parancs, hogy már az úton, 964 01:10:57,030 --> 01:10:59,670 nem valószínű, ők írtak, hogy az út 965 01:10:59,670 --> 01:11:01,720 ha a parancs nem már írt az utat. 966 01:11:01,720 --> 01:11:06,180 Tehát ez a mellékhatások jelentkeznek. Története hatásai itt. 967 01:11:06,180 --> 01:11:08,380 Vannak lehetőségek vannak. 968 01:11:14,280 --> 01:11:23,060 Van még egy lehetőség által meghatározott változó a tcsh nevű echo_style. 969 01:11:23,060 --> 01:11:27,700 Ez az egyik ilyen változó, amely megváltoztathatja az is, hogy ECHO. 970 01:11:27,700 --> 01:11:30,910 Vannak más esetek, amikor hozzá lehet rendelni egy változót 971 01:11:30,910 --> 01:11:36,290 amely megváltoztatja az utat, hogy a héj működés, beleértve a beépített parancs, működik. 972 01:11:36,290 --> 01:11:38,130 Ez nem befolyásol semmit mást 973 01:11:38,130 --> 01:11:40,640 mivel más parancsok nem férnek hozzá a shell változókat, 974 01:11:40,640 --> 01:11:42,090 csak a környezeti változókat. 975 01:11:42,090 --> 01:11:45,360 De shell műveleteket tudja olvasni a shell változókat. 976 01:11:45,360 --> 01:11:50,710 Ez nem fog működni a csh. Ez csak tcsh. Ez az egyik a fejlesztések. 977 01:11:58,540 --> 01:12:04,620 Értelmezésének sorozatok értékelése során metakaraktereket, 978 01:12:04,620 --> 01:12:08,140 értékelése során változó, alias, történelmi referenciák. 979 01:12:08,140 --> 01:12:11,830 Van egy bizonyos sorrendben ezeket a dolgokat. 980 01:12:11,830 --> 01:12:13,730 Ha igen, akkor a dolgok egy bizonyos sorrendben 981 01:12:13,730 --> 01:12:16,080 és kap valamit, ami egy kifejezés egyfajta 982 01:12:16,080 --> 01:12:20,650 amely már értékelték, hogy nem értékeli újra. 983 01:12:20,650 --> 01:12:24,520 Ha ez nem, akkor csak át a karaktereket. 984 01:12:24,520 --> 01:12:29,920 Tehát, ha az értékelés egyes kifejezések, mint a parancs helyettesítés 985 01:12:29,920 --> 01:12:36,850 vagy változó vagy bármi ad okot, hogy egy kifejezés 986 01:12:36,850 --> 01:12:39,240 amit szeretne értékelni, 987 01:12:39,240 --> 01:12:42,510 hogy csak akkor működik, ha az értékelést később kerül sor a sorrendben. 988 01:12:42,510 --> 01:12:45,010 Remélem, hogy világos van. 989 01:12:45,010 --> 01:12:50,460 Ez az elemzés szekvenciát, egy műveletet a C-héj, 990 01:12:50,460 --> 01:12:56,490 nem ugyanaz a beépített parancsok, mint azt a nem beépített parancsokat. 991 01:12:56,490 --> 01:12:58,890 Nem vagyok biztos benne, hogy Bash ott. 992 01:12:58,890 --> 01:13:02,450 Például, ha egy shell változó termelt kórtörténetében referencia, 993 01:13:02,450 --> 01:13:04,230 valószínűleg nem megy vissza a történelemben. 994 01:13:04,230 --> 01:13:06,010 Ez csak kap a felkiáltójel. 995 01:13:06,010 --> 01:13:08,840 Sőt, mi csak megpróbál, hogy ki most. 996 01:13:09,720 --> 01:13:18,240 a =, és mi lesz, hogy ezt oda. 997 01:13:30,690 --> 01:13:34,580 Ó, várj. Bocsánat. Én ezt a Bash. Akartam csinálni itt. 998 01:13:53,470 --> 01:13:56,080 Lásd, így nem értékelik, hogy a történelem hivatkozás 999 01:13:56,080 --> 01:14:00,520 mert már elmúlt az a pont az értékelése történelem kifejezések 1000 01:14:00,520 --> 01:14:02,720 amikor értékelte a változót. 1001 01:14:02,720 --> 01:14:05,550 Szóval ez 1 hatását elemző. 1002 01:14:05,550 --> 01:14:08,760 És ismét, a beépített parancsok nem ugyanúgy történik. 1003 01:14:08,760 --> 01:14:11,230 Rendben van. Menjünk a következőre itt. 1004 01:14:11,230 --> 01:14:16,060 Ennek célja, hogy 1 sor, de ez így könnyebb olvasni. 1005 01:14:19,130 --> 01:14:21,530 Mit akar ez csinálni? 1006 01:14:21,530 --> 01:14:28,640 Talán emlékeznek, hogy tudjuk értékelni a csillag, mint helyettesítő fájlnév, 1007 01:14:28,640 --> 01:14:33,890 és vannak más fájlnév helyettesítő karaktereket, mint a kérdőjel és a konzol kifejezéseket. 1008 01:14:33,890 --> 01:14:39,000 Ez a fajta értékelés hívják kifejtésre. 1009 01:14:39,000 --> 01:14:46,290 állítsa noglob elején ez a parancs azt mondja, nem tehetem. 1010 01:14:46,290 --> 01:14:53,370 unset noglob mondja menj vissza csinálja. 1011 01:14:53,370 --> 01:14:56,440 Ne feledje, hogy meg glob nem lenne ebben az értelemben. 1012 01:14:56,440 --> 01:15:00,800 A köznyelv, állítsa glob vagy unset noglob tűnik egyenértékűnek, 1013 01:15:00,800 --> 01:15:03,290 de itt nem. Ez unset noglob. 1014 01:15:05,120 --> 01:15:07,910 Most Tset. Tset állt csatlakozó készlet. 1015 01:15:07,910 --> 01:15:11,840 Ez nem használt, hogy gyakran már, de mielőtt ablakkezelő rendszerek elérhetővé vált 1016 01:15:11,840 --> 01:15:15,760 és volt egy terminál, akkor lehet, hogy az milyen típusú. 1017 01:15:15,760 --> 01:15:18,700 És ha valami jön az Ethernet vagy a hálózat, 1018 01:15:18,700 --> 01:15:21,120 érdemes mondani, hogy ez egy VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 egyfajta szabvány a terminál üzlet. Ebből származik a december terminál. 1020 01:15:26,630 --> 01:15:35,270 Ha csak ezt a betárcsázós - észre, hogy? Ez megy vissza a szempontból, mi? 1021 01:15:35,270 --> 01:15:39,520 Tehát, ha csak nem Tset ide, 1022 01:15:39,520 --> 01:15:45,250 ha csak nem Tset, ez helyreállít a terminál, de nem látott semmit. 1023 01:15:45,250 --> 01:15:47,340 Ez nem igazán változtat semmin. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Oké. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm-color. 1027 01:15:53,350 --> 01:15:57,080 Azt már tudjuk, hogy a kifejezés jött létre, hogy az út, hogy nem változott. 1028 01:15:57,080 --> 01:15:58,860 Ez az, ahogy mi azt szeretnénk csinálni. 1029 01:15:58,860 --> 01:16:07,080 De észre, hogy ezt a parancsot, Tset-s, csak a kimeneten ezeket a parancsokat. Nem futtatni őket. 1030 01:16:07,080 --> 01:16:09,770 Nem futtatni ezeket a parancsokat, hanem output őket. 1031 01:16:09,770 --> 01:16:13,650 Tehát ez az a célja, hogy készítsen parancs, amely majd futni. 1032 01:16:13,650 --> 01:16:16,360 Emlékszel a parancsot, hogy a fájl csak megmutatta, hogy van egy Q benne. 1033 01:16:16,360 --> 01:16:18,910 Így csináljuk. 1034 01:16:18,910 --> 01:16:23,750 A Q elnyomja valamilyen kimenetet, de ez nem számít itt, mint látod. 1035 01:16:23,750 --> 01:16:27,980 Én csak ezzel, hogy, hogy mutassa meg, hogy ez nem számít. 1036 01:16:27,980 --> 01:16:31,870 Ez backquote szintaxis. 1037 01:16:31,870 --> 01:16:35,340 Megjegyzés: a backquote itt backquote itt. 1038 01:16:35,340 --> 01:16:37,680 Én elhagyása ezeket a dolgokat itt. 1039 01:16:37,680 --> 01:16:39,570 Ezek az esetek azt mondta, hogy mit kell csinálni 1040 01:16:39,570 --> 01:16:42,050 abban az esetben, bizonyos típusú terminálok - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, hálózati, betárcsázós, mit. 1042 01:16:45,400 --> 01:16:48,050 Nem számít itt, mert mi valójában nem tesz semmilyen ezeket a dolgokat. 1043 01:16:48,050 --> 01:16:49,720 Én csak bemutató a parancsot. 1044 01:16:49,720 --> 01:16:55,170 Ha én ezt a backquote, mit fogok kapni? 1045 01:16:55,170 --> 01:17:00,210 Azt is vegyük észre, hogy itt ez a szereplő a beállított noglob és unset noglob, 1046 01:17:00,210 --> 01:17:02,630 így azok feleslegessé váltak a meghatározás. 1047 01:17:02,630 --> 01:17:05,380 Ez nem mindig igaz, de már tartalmazza ezt a parancsot. 1048 01:17:05,380 --> 01:17:08,890 De lássuk, mi történik, ha megteszem 1049 01:17:08,890 --> 01:17:12,570 és megy a sor elejére a vezérlés és I csinálni. 1050 01:17:14,380 --> 01:17:18,040 Oké, be: Command not found. Ez elég furcsa, nem? 1051 01:17:18,040 --> 01:17:20,570 halmaz egy jól ismert paranccsal. Ez a része a héj. 1052 01:17:20,570 --> 01:17:24,040 be: Command not found? Miért van ez? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Nos, szerintem erről. 1054 01:17:26,790 --> 01:17:31,100 Ez fut backquote parancs helyettesítés, 1055 01:17:31,100 --> 01:17:37,430 és fordul elő, hogy egy bizonyos részét a sorozat elemzés a parancs. 1056 01:17:37,430 --> 01:17:40,360 készülék egy beépített parancs. 1057 01:17:40,360 --> 01:17:43,900 Tehát az idő, ez a parancsot helyettesítés, 1058 01:17:43,900 --> 01:17:48,280 ez már ütött már az a pont azonosítására beépített parancsokat. 1059 01:17:48,280 --> 01:17:51,900 Így kezeli beállítani, mintha a parancsot az utat. 1060 01:17:51,900 --> 01:17:55,440 Mondanom sem kell, hogy nem találják, és akkor kap egy hiba. 1061 01:17:55,440 --> 01:17:59,300 Jól. Van egy példa elemzés sorozatot. 1062 01:17:59,300 --> 01:18:01,460 És mit tehetünk ezzel kapcsolatban? 1063 01:18:01,460 --> 01:18:04,800 Figyeljük meg, ez nagyon érdekes parancsol itt, eval. 1064 01:18:04,800 --> 01:18:06,530 Kíváncsi vagyok, hogy mit csinál. 1065 01:18:06,530 --> 01:18:08,760 Ha megnézzük a kézi - és most csak erre 1066 01:18:08,760 --> 01:18:12,000 hogy megmutassa, milyen zavaró ezek a kézikönyvek - 1067 01:18:12,000 --> 01:18:19,400 férfi tcsh, zavaros kézi, a megállapítás a dolgok itt nem könnyű sem. 1068 01:18:19,400 --> 01:18:31,850 Itt vagyunk, eval arg, így lehet 1 vagy több érvet 1069 01:18:31,850 --> 01:18:34,090 és van egy lista azokról a dolgokról is. 1070 01:18:34,090 --> 01:18:37,730 Kezeli az érvek bemenetek a shell 1071 01:18:37,730 --> 01:18:43,600 és végrehajtja a kapott parancsokat a keretében a jelenlegi héj. 1072 01:18:43,600 --> 01:18:46,900 Ez általában használt futtatni parancsokat eredményeként keletkező parancs 1073 01:18:46,900 --> 01:18:51,310 vagy változó helyettesítés miatt elemzés következik be, mielőtt ezek a helyettesítések. 1074 01:18:51,310 --> 01:18:52,580 Nagyon jó. 1075 01:18:52,580 --> 01:18:54,740 És itt is utal, hogy a Tset parancs minta használata 1076 01:18:54,740 --> 01:18:57,700 mint az, én csak mutattam. 1077 01:18:57,700 --> 01:19:00,440 Most már, hogy az ablakot, hogy a hasznos helyre. 1078 01:19:03,150 --> 01:19:07,800 Menjünk ide, és látni fogjuk, hogy eval használata előtt ezt. 1079 01:19:07,800 --> 01:19:14,010 Lássuk, mi történik, ha teszünk - itt megyünk fel a nyilakat, hogy a parancsot 1080 01:19:14,010 --> 01:19:20,940 és vezérlés A elejére, eval. 1081 01:19:20,940 --> 01:19:22,850 Oké, így működik. 1082 01:19:22,850 --> 01:19:26,440 Ha nem eval, tart, mi jön utána, és teszi a parancsot. 1083 01:19:26,440 --> 01:19:29,460 Ez lehetővé teszi, hogy lényegében értelmezni kétszer. 1084 01:19:29,460 --> 01:19:33,710 Ez a rész itt fut ez a parancs belsejében backquotes, 1085 01:19:33,710 --> 01:19:36,210 lesz a kimenet. 1086 01:19:36,210 --> 01:19:42,850 Kimenet kellene futtatni a parancsokat itt, mint ezek a 1087 01:19:42,850 --> 01:19:45,890 ebben az egyetlen, és ez egy. 1088 01:19:45,890 --> 01:19:50,100 Tehát azok a parancsok most itt ebben a sorrendben, 1089 01:19:50,100 --> 01:19:58,950 de ezek a beépített parancsokat, és nem tud velük azonnal. 1090 01:19:58,950 --> 01:20:06,440 Szóval, elmegyünk eval eval felveszi, hogy akár, elindítja az egészet újra, és működik. 1091 01:20:06,440 --> 01:20:18,460 Egy példa mindkét backquoting, eval, elemzés, következményei elemzés, 1092 01:20:18,460 --> 01:20:21,910 és a parancs, ami valószínűleg nagyon kevés haszna az Ön számára manapság. 1093 01:20:21,910 --> 01:20:25,540 Oké. Rendben, umask. 1094 01:20:25,540 --> 01:20:32,160 Nézzük meg ezt a parancsot itt umask 022. Kíváncsi vagyok, hogy mit csinál. 1095 01:20:32,160 --> 01:20:38,420 Nézzük csak írja umask semmit utána. 22.. Oké. 1096 01:20:38,420 --> 01:20:44,350 022, és újra meg újra. 1097 01:20:44,350 --> 01:20:48,580 Ahogy sejteni lehetett, umask argumentumok nélkül megmondja, hogy az aktuális maszkot; 1098 01:20:48,580 --> 01:20:51,760 umask érvekkel teszi, hogy az, de ez volt az általam már. 1099 01:20:51,760 --> 01:20:53,800 Mit jelent a 022 jelent? 1100 01:21:01,650 --> 01:21:07,080 Ezek itt a védelem a fájlt. 1101 01:21:07,080 --> 01:21:11,440 Ezek határozzák meg, aki lehetővé tette, hogy olvasni vagy írni, vagy végre a fájlt. 1102 01:21:11,440 --> 01:21:16,560 Korlátok is nevezik engedélyeket. 1103 01:21:16,560 --> 01:21:21,390 Az r áll az olvasási, a w az írási, 1104 01:21:21,390 --> 01:21:25,500 és az x, ami nincs jelen van, jelentése végrehajtani. 1105 01:21:25,500 --> 01:21:27,260 Jelenleg 3 kategóriában vannak. 1106 01:21:27,260 --> 01:21:33,540 Az utolsó 3 elem a felhasználói kategória. Azok vonatkozik rám, a felhasználó számára. 1107 01:21:33,540 --> 01:21:36,870 Ez a 3 itt vonatkoznak a csoporthoz. 1108 01:21:36,870 --> 01:21:41,590 A fájl tartozik 1 csoport, a felhasználó több csoport, 1109 01:21:41,590 --> 01:21:47,150 de ha a felhasználó az a csoport, amelyhez tartozik, ezt a fájlt, 1110 01:21:47,150 --> 01:21:51,090 akkor ezek a védelem vonatkozik rá, ha nem a felhasználó. 1111 01:21:51,090 --> 01:21:54,230 És ez egy mindenki más. 1112 01:21:55,540 --> 01:21:57,690 Ezek a kategóriák kölcsönösen kizárják egymást. 1113 01:21:57,690 --> 01:21:59,750 A felhasználó védelem vonatkoznak rá, 1114 01:21:59,750 --> 01:22:03,780 A csoport védelem vonatkozik a csoport tagjai más, mint a felhasználó, 1115 01:22:03,780 --> 01:22:08,110 és a más védelem csak az embereket más, mint a felhasználó és a csoport tagjai. 1116 01:22:08,110 --> 01:22:12,320 Ha van egy R vagy aw vagy x, azt jelenti, hogy védelmet nyújtanak. 1117 01:22:12,320 --> 01:22:13,950 Ha van egy kötőjelet, ez azt jelenti, hogy nem az. 1118 01:22:13,950 --> 01:22:16,690 Ott valóban más dolog, hogy tudunk itt ezek mellett, 1119 01:22:16,690 --> 01:22:18,350 amit nem fog bele most. 1120 01:22:18,350 --> 01:22:24,450 Az umask határozza meg alapértelmezett fájlokat hoz létre. 1121 01:22:24,450 --> 01:22:28,580 És mint egy maszk, lényegében azt mondja, a bitek, hogy nem adja meg. 1122 01:22:28,580 --> 01:22:30,450 Hogyan alakult ki ez lett bit? 1123 01:22:30,450 --> 01:22:33,240 Ha úgy gondolja, minden ilyen oktális számként, 1124 01:22:33,240 --> 01:22:42,120 ez az 1s kicsit, ez a 2s, ez a 4s. 1125 01:22:42,120 --> 01:22:45,840 Így 0-tól 7 1126 01:22:45,840 --> 01:22:51,770 leírja, milyen kombinációja r, W és X még ezeket a 3. 1127 01:22:51,770 --> 01:22:53,710 , majd egy hasonló számot, majd ezeket ezekre. 1128 01:22:53,710 --> 01:23:12,030 Tehát 022 azt jelenti, 0 más, 2. a csoport, 2. a felhasználó számára. 1129 01:23:12,030 --> 01:23:15,870 De ez egy maszkot. A maszk, amit nem kell. 1130 01:23:19,380 --> 01:23:20,610 Sajnálom. Most adtam a dolgokat a megfelelő sorrendben. 1131 01:23:20,610 --> 01:23:25,620 Ez az első 3. Ezek azok a 3 felhasználó, ezek a 3-csoport, ezek 3 van a többi. 1132 01:23:25,620 --> 01:23:27,970 Sajnálom, hogy adtam neked ezeket a megfelelő sorrendben. 1133 01:23:27,970 --> 01:23:31,910 A 0, amely az első ilyen, nem jeleníti meg az értéket, 1134 01:23:31,910 --> 01:23:35,430 de ha egy szám nem létezik, ez a 0-ra. 1135 01:23:35,430 --> 01:23:38,370 Ez azt jelenti, mind a 3 ilyen lenne megengedett. 1136 01:23:38,370 --> 01:23:41,550 Figyeljük meg, hogy ebben a konkrét egyik x nem megengedett. 1137 01:23:41,550 --> 01:23:44,090 Ennek oka, hogy a héj képes meghatározó 1138 01:23:44,090 --> 01:23:46,260 hogy egy fájlt kell végrehajtani, vagy sem. 1139 01:23:46,260 --> 01:23:49,800 Mivel ez nem egy futtatható fájl, akkor nem határozta meg az x. 1140 01:23:49,800 --> 01:23:54,000 A 2 azt jelenti, hogy írási joga, a második kategória van, 1141 01:23:54,000 --> 01:23:56,500 az egy a közepén, megtagadva. 1142 01:23:56,500 --> 01:23:58,500 Tehát még egyszer, ezek azok a dolgok, hogy megtagadva. 1143 01:23:58,500 --> 01:24:02,080 Nos, x megengedett, de ez nincs itt, mert ez nem futtatható 1144 01:24:02,080 --> 01:24:04,260 és hasonlóan a többiek. 1145 01:24:04,260 --> 01:24:08,880 Szóval ez egy közös umask. 1146 01:24:08,880 --> 01:24:14,630 Egy másik gyakori az egyik 700 - adj magadnak mindent, és senki más semmit. 1147 01:24:14,630 --> 01:24:17,040 És vannak más lehetőségek is. 1148 01:24:21,340 --> 01:24:27,110 Megyek vissza, hogy a. A történelem azt kereshet vissza, hogy a HSM oda. 1149 01:24:27,110 --> 01:24:30,210 Oké. Tehát itt, ezek a kagyló. 1150 01:24:30,210 --> 01:24:36,020 Bash, a tulajdonos, aki a rendszer figyelembe, mindent tud. 1151 01:24:36,020 --> 01:24:41,210 Csoport és mindenki más tehet olvasni, vagy végre, de írni nem. 1152 01:24:41,210 --> 01:24:44,570 Ez az ember nem is teszi lehetővé a tulajdonos, hogy írjon rá. 1153 01:24:44,570 --> 01:24:46,460 Ha a tulajdonos akart írni, a rendszer figyelembe, 1154 01:24:46,460 --> 01:24:48,020 ő meg kell változtatni a védelem első. 1155 01:24:48,020 --> 01:24:53,940 De ismétlem, az umask beállítja az alapértelmezett azáltal, hogy elnyomja azt, 1156 01:24:53,940 --> 01:24:57,160 jelezve a bitek nem lesz beállítva. 1157 01:24:57,160 --> 01:25:04,380 Ez tipikusan az egyik a inicializáló fájlok, amely a. Cshrc a C-shell 1158 01:25:04,380 --> 01:25:07,500 vagy. profilt a Bourne-típusú kagyló. 1159 01:25:07,500 --> 01:25:12,520 Ez lehet máshol is, ha vannak más inicializáló fájlokat a rendszer. 1160 01:25:12,520 --> 01:25:14,610 Különben is, ez umask. 1161 01:25:14,610 --> 01:25:18,180 Van valami olyan furcsa itt, 1162 01:25:18,180 --> 01:25:22,800 és ez az, hogy miért van egy parancs ez? 1163 01:25:22,800 --> 01:25:28,690 Ha én írom ezt, azt, hogy ez egy változó, umask = bizonyos értéket. 1164 01:25:28,690 --> 01:25:31,100 Miért van egy egész parancsot csak erre a célra? 1165 01:25:31,100 --> 01:25:34,560 Ennek oka az, ez csak megy vissza az eredetét Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix volt, csak néhány programozási projekt a Bell Labs-ben a 1970-es években. 1167 01:25:41,050 --> 01:25:42,610 Az emberek csak most össze, hogy a program. 1168 01:25:42,610 --> 01:25:45,290 Ők soha nem akarta, hogy lesz egy világméretű operációs rendszer. 1169 01:25:45,290 --> 01:25:47,250 Különböző emberek azt írta különböző részein, gondolkodás nélkül nagyon sok 1170 01:25:47,250 --> 01:25:49,790 , hogyan is fog használni - inkább vázlatos. 1171 01:25:49,790 --> 01:25:53,290 És jött össze így, és ez még mindig tetszik, hogy bizonyos tekintetben. 1172 01:25:53,290 --> 01:25:57,930 Ahhoz, hogy tükrözi a történelem, és még mindig ezeket a következetlenségeket és furcsa elemei is. 1173 01:25:57,930 --> 01:26:00,750 Oké. Tovább itt senki. 1174 01:26:08,170 --> 01:26:11,000 Mint írtam korábban, a C-shell nem igazán használják nagyon programozáshoz, 1175 01:26:11,000 --> 01:26:12,420 bár lehet. 1176 01:26:12,420 --> 01:26:15,080 Végzi lassabban, ismét kompromisszumot interaktív használata, 1177 01:26:15,080 --> 01:26:17,820 amely több a feldolgozás, mint a sebesség, 1178 01:26:17,820 --> 01:26:20,710 amely tehet anélkül, hogy a feldolgozás. 1179 01:26:20,710 --> 01:26:28,320 Az extra funkciók hozzá a Bourne shell a Korn és a Bourne-again kagyló 1180 01:26:28,320 --> 01:26:32,120 Nem úgy tűnik, hogy lassan le őket, és nem tudom, miért van ez. 1181 01:26:32,120 --> 01:26:36,310 Azt, hogy csak jobb programozás, de nem vagyok abban a helyzetben, hogy tudja. 1182 01:26:36,310 --> 01:26:40,420 Sebesség itt valójában nem olyan nagy dolog, de ez nem szükséges. 1183 01:26:40,420 --> 01:26:43,690 Ennek oka, hogy a szkriptek valójában kap elég gyors. 1184 01:26:43,690 --> 01:26:46,450 Ha van egy csomó a parancsokat, mint egy calculational programban 1185 01:26:46,450 --> 01:26:49,110 akkor valószínűleg nem csinálni egy shell script. 1186 01:26:49,110 --> 01:26:51,450 A műveletek vannak viszonylag egyszerű és egyértelmű. 1187 01:26:51,450 --> 01:26:53,960 Az is, hogy én már tapasztaltam, hogy túl lassú 1188 01:26:53,960 --> 01:26:57,110 magában ismételt alkalmazásai lassan parancsokat. 1189 01:26:57,110 --> 01:27:00,480 Korábban már említettem a stream editor sed. Ez a parancs lassú. 1190 01:27:00,480 --> 01:27:03,760 Ha végre sed sokszor, kapsz egy lassú script, de ez nem a héj, ami lassú. 1191 01:27:03,760 --> 01:27:07,920 Futtatása azt a Bourne shell nem lesz sokkal gyorsabb, mint a futás, hogy a C-shell, 1192 01:27:07,920 --> 01:27:10,070 bár van talán némi előnye is. 1193 01:27:10,070 --> 01:27:12,760 A további programozási képességek, másrészt, 1194 01:27:12,760 --> 01:27:17,920 jelentős ok, hogy miért is használja a Bourne-féle kagyló. 1195 01:27:17,920 --> 01:27:21,390 C-shell páratlan funkciókat is - 1196 01:27:21,390 --> 01:27:25,250 A tény, hogy nem tudom, hogy a változó egy shell változó vagy egy környezeti változó. 1197 01:27:25,250 --> 01:27:27,440 Ez nagyon zavaró. 1198 01:27:27,440 --> 01:27:32,170 Ez nem olyan könnyű írni 1199 01:27:32,170 --> 01:27:35,930 csak az Ön tapasztalatai a programok más nyelveken. 1200 01:27:35,930 --> 01:27:41,350 Azt hiszem, akkor megtalálja a Bourne-féle kagyló jobban megfelel az élményt. 1201 01:27:43,730 --> 01:27:49,270 Egyes szkriptek, bár lehet több ezer sor hosszú. 1202 01:27:49,270 --> 01:27:52,450 Azok, láttam használt folt operációs rendszerek. 1203 01:27:52,450 --> 01:27:55,450 Azok is végre nagyon lassan, de ne fuss azokat a nagyon gyakran. 1204 01:27:55,450 --> 01:27:57,180 Ez csak akkor csinálsz foltozás, 1205 01:27:57,180 --> 01:27:59,450 és ez még csak a rendszergazda, aki nem azokat a dolgokat, 1206 01:27:59,450 --> 01:28:01,840 így ez nem igazán nagy probléma. 1207 01:28:01,840 --> 01:28:06,980 Azok, akik több száz sor hosszú ténylegesen végre elég gyorsan. 1208 01:28:06,980 --> 01:28:10,540 Idéző itt, mik azok a fejlesztések? 1209 01:28:10,540 --> 01:28:13,170 Már említettem néhány közülük - tömbök, számítások, 1210 01:28:13,170 --> 01:28:20,540 A $ () kifejezés számítások a Bash shell, 1211 01:28:20,540 --> 01:28:23,050 a másik fajta parancs helyettesítés. 1212 01:28:23,050 --> 01:28:25,360 Vannak különböző féle vizsgálati parancsok 1213 01:28:25,360 --> 01:28:29,350 amellyel meg tudod csinálni feltételes vizsgálatokat, hogy létezik egy fájl vagy más dolog. 1214 01:28:29,350 --> 01:28:34,790 Utoljára itt, ez a parancs itt. 1215 01:28:34,790 --> 01:28:38,480 Mit tesz ez, és miért lenne bárki használni? 1216 01:28:51,170 --> 01:28:52,990 printenv változóNév. 1217 01:28:52,990 --> 01:28:56,130 Tudjuk, mi printenv csinál. Azt mondja, a változó értékét. 1218 01:28:56,130 --> 01:29:00,850 És printenv változóNév titkolják, nagyon, mert nincs olyan változó. 1219 01:29:03,550 --> 01:29:05,120 Blank. 1220 01:29:05,120 --> 01:29:08,440 De nézzük, hogy ez valami értelmes. 1221 01:29:13,420 --> 01:29:16,800 Ez nem ott sem. Oké. Azt hiszem, soha nem határozta meg, hogy az. 1222 01:29:16,800 --> 01:29:18,020 Nézzük csak nézd meg a környezetet. 1223 01:29:18,020 --> 01:29:20,900 Ez egy másik parancs, amelynek segítségével ellenőrizni a környezetet. 1224 01:29:20,900 --> 01:29:24,470 Van jó öreg EDITOR, az, amit korábban láttunk. 1225 01:29:42,360 --> 01:29:44,120 Mit akar ez csinálni? 1226 01:29:44,120 --> 01:29:48,050 Itt van egy backquote kifejezést. 1227 01:29:48,050 --> 01:29:50,370 Ne feledje, ez a C-shell. 1228 01:29:50,370 --> 01:29:54,850 Így printenv EDITOR ad nekünk értéke szerkesztő. Ez vi. 1229 01:29:54,850 --> 01:29:59,790 És akkor azt állítja, hogy az értéket a változó egy, a set parancs. 1230 01:29:59,790 --> 01:30:02,860 Tehát most, ha én echo $ a, kapok vi. 1231 01:30:02,860 --> 01:30:05,850 Ez nem tűnik rettenetesen hasznos. 1232 01:30:05,850 --> 01:30:08,080 Ez azonban valójában nem egy cél. 1233 01:30:08,080 --> 01:30:12,260 Mivel nem tudjuk, hogy a változó egy shell változó vagy környezeti változó 1234 01:30:12,260 --> 01:30:16,280 használja a dollárjel értékelés szintaxis, tudjuk használni printenv 1235 01:30:16,280 --> 01:30:19,460 , hogy megbizonyosodjon arról, hogy ez egy környezeti változó. 1236 01:30:19,460 --> 01:30:22,550 Tehát, ha lenne egy shell változó szerkesztő, ez nem ütött meg. 1237 01:30:22,550 --> 01:30:25,640 Ez csak akkor működik, a környezeti változót. 1238 01:30:25,640 --> 01:30:28,370 Ha lenne egy shell változó, és szerettem volna az értékét, 1239 01:30:28,370 --> 01:30:29,980 Azt kell, hogy talál valami más módon kell csinálni. 1240 01:30:29,980 --> 01:30:33,530 Ennek egyik módja az lenne ezzel készlet és a csöveket. 1241 01:30:33,530 --> 01:30:36,130 Ez az egyik a metakarakterek, speciális karaktereket. 1242 01:30:36,130 --> 01:30:38,370 Küld a kimenet bekapcsolt valami mást. 1243 01:30:38,370 --> 01:30:40,650 Lássuk, mit lehet találni ott. 1244 01:30:40,650 --> 01:30:49,340 Semmi. Oké. Nézzük meg, mi van ott együtt. 1245 01:30:49,340 --> 01:30:53,580 Ez volt echo_style, az egyik már említettem korábban. Oké, csináljuk. 1246 01:31:02,460 --> 01:31:06,230 Ne feledje, már említettem, echo_style 1247 01:31:06,230 --> 01:31:08,410 határozza meg, ahogy a visszhang parancs fog futni. 1248 01:31:08,410 --> 01:31:10,940 bsd áll a Berkeley normál eloszlás. 1249 01:31:10,940 --> 01:31:13,200 Ez a Berkeley Unix az 1970-es években. 1250 01:31:13,200 --> 01:31:16,630 Ez az egyik módja, hogy a visszajelzés futtatható. 1251 01:31:16,630 --> 01:31:22,310 Beállítás echo_style arra az értékre, a TC-shell okoz echo viselkedjen így. 1252 01:31:22,310 --> 01:31:27,670 Állítson csinálja, de meg csak kap shell változókat. 1253 01:31:27,670 --> 01:31:35,430 Ez nem találja EDITOR, ami nem a shell változót. 1254 01:31:36,870 --> 01:31:38,050 Semmi. 1255 01:31:38,050 --> 01:31:39,660 Tehát ez az egyik módja megkülönböztetni őket. 1256 01:31:39,660 --> 01:31:42,000 De az a tény, hogy van, hogy menjen át valami furcsa parancsot, így 1257 01:31:42,000 --> 01:31:45,500 különbséget tenni a shell változók vagy környezeti változók 1258 01:31:45,500 --> 01:31:49,970 mutatja az a fajta praktikus jellege a C-shell bizonyos célokra. 1259 01:31:52,290 --> 01:31:57,960 És most, az utolsó és talán legkevésbé, ez a man oldalakat. 1260 01:31:57,960 --> 01:32:03,190 Azok, akik Ön is tudja, az ember a parancs rövid kézi. 1261 01:32:03,190 --> 01:32:08,610 A férfi oldalakat a héj nehezen olvasható. Ők nagyon hosszú. 1262 01:32:08,610 --> 01:32:14,060 Ők szerveztek úgy, hogy megnehezítheti, hogy megtalálja, amit keres. 1263 01:32:14,060 --> 01:32:15,980 Tehát, ha keres valamit a céllal, 1264 01:32:15,980 --> 01:32:20,050 lehet, hogy nem tudom, hogy célja a shell változó, vagy valami más, 1265 01:32:20,050 --> 01:32:21,630 így lehet, hogy nem tudja, hol keresse azt. 1266 01:32:21,630 --> 01:32:25,030 Lehet keresni a különböző szálakat, de a húrok gyakran ismételni. 1267 01:32:25,030 --> 01:32:27,640 Így ez általában nehezen olvasható. 1268 01:32:27,640 --> 01:32:33,810 Csak nézte a TC-shell man oldalt egy kicsit, mielőtt, hogy megtalálják a eval parancs. 1269 01:32:33,810 --> 01:32:36,610 Vannak dolgok gyorsabban. 1270 01:32:36,610 --> 01:32:38,860 Az egyik megközelítés, hogy keressen egy húr. 1271 01:32:38,860 --> 01:32:40,360 Használhatja a pager. 1272 01:32:40,360 --> 01:32:49,080 Pager megvan a perjel, hogy keressen egy parancs vagy egy karakterlánc belsejében a pager működését. 1273 01:32:49,080 --> 01:32:52,830 Az ember alapból használ személyhívó, vagy többé-kevésbé. 1274 01:32:52,830 --> 01:32:56,560 Nem tudom, ha ismeri ezeket, de azok mutatni a fájlokat apránként. 1275 01:32:56,560 --> 01:33:00,550 Már kevesebb megjeleníteni ezeket bizonyos fájlok megvan itt. 1276 01:33:00,550 --> 01:33:03,300 Kereshet odabent. 1277 01:33:03,300 --> 01:33:04,880 Meg lehet próbálni a különböző keresési karakterláncokat. 1278 01:33:04,880 --> 01:33:08,420 Szintén man oldalakat a különböző operációs rendszerek lehet, hogy nem ugyanaz. 1279 01:33:08,420 --> 01:33:11,130 Lehetnek külön oldalakon csh és tcsh. 1280 01:33:11,130 --> 01:33:14,500 Ők nem a Mac, de lehet, ha azok külön parancsokat. 1281 01:33:14,500 --> 01:33:19,000 Ha sh nem igazán hívja Bash, akkor valószínűleg lesz egy külön man oldalt. 1282 01:33:19,000 --> 01:33:25,820 Egyes rendszerek külön man oldalakat csak a C-shell beépített parancsa. 1283 01:33:25,820 --> 01:33:30,250 Néha, ha azt szeretné, hogy olvassa el a leírást egy beépített parancs 1284 01:33:30,250 --> 01:33:35,350 ez is az utat, mint a visszhang, el kell olvasni a man oldalt ezen a paranccsal echo 1285 01:33:35,350 --> 01:33:37,610 hogy meghatározzák, hogyan fog működni, mint egy beépített parancs 1286 01:33:37,610 --> 01:33:39,760 akkor is, ha nem hívja a beépített parancs. 1287 01:33:41,630 --> 01:33:46,090 Ez egy hátránya az operációs rendszer általában nem csak a kagyló, 1288 01:33:46,090 --> 01:33:50,710 bár a kagyló, különösen az ember oldalak elég hosszú, 1289 01:33:50,710 --> 01:33:56,180 részben azért, mert már hozzá hasznos funkciók számukra, amely lehet pozitív. 1290 01:33:56,180 --> 01:34:00,290 Oké. Van kérdése? Minden téma szeretne felnevelni? 1291 01:34:00,290 --> 01:34:03,390 Bármi releváns? 1292 01:34:04,540 --> 01:34:07,100 Nos, ez már nagyon kedves hozzád beszél minden. 1293 01:34:07,100 --> 01:34:09,690 Remélem van valami ebből a szeminárium 1294 01:34:09,690 --> 01:34:13,080 , amely hasznos lesz az Ön számára a jövőbeni törekvéseit. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]