1 00:00:00,000 --> 00:00:02,320 >> [Seminar - Unix operacijskim sustavom, okruženja] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [To je CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Današnja tema je Unix shell. 5 00:00:12,770 --> 00:00:20,600 Ja sam Douglas Kline, stručnjak, ili barem razumno nadležno korisnik, ljuske. 6 00:00:20,600 --> 00:00:25,280 Ljuska je sučelje za korisnika operativnog sustava računala. 7 00:00:25,280 --> 00:00:29,580 Naziv je zabludu, kao, za razliku od ljuske za životinje, 8 00:00:29,580 --> 00:00:34,890 što je teško i zaštitna, računalo ljuska omogućuje komunikaciju. 9 00:00:34,890 --> 00:00:39,120 Dakle porozna membrana će vjerojatno biti bolje metafore. 10 00:00:39,120 --> 00:00:44,500 >> Original ljuska za Unix je Bourne shell. 11 00:00:44,500 --> 00:00:46,450 Bourne je pir B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne je bio jedan od izvornih autora Unix, 13 00:00:49,770 --> 00:00:51,700 i tako ljuska je dobio ime po njemu. 14 00:00:51,700 --> 00:00:54,850 Ime tog školjku kao naredba je jednostavno sh. 15 00:00:54,850 --> 00:00:57,400 To je naredba možete izvršiti. 16 00:00:57,400 --> 00:01:00,810 Ljuska počinje na prijavu. 17 00:01:00,810 --> 00:01:04,459 Kada se prijavite na računalo, ljuska upravo počinje prikazivati ​​za vas, 18 00:01:04,459 --> 00:01:06,820 i to je ono što se vaše naredbe. 19 00:01:06,820 --> 00:01:09,790 Može početi u drugim vremenima također. 20 00:01:09,790 --> 00:01:16,780 Ako bi se prozor bez ikakvih drugih naznaka, to će početi školjku za vas. 21 00:01:16,780 --> 00:01:20,450 To je kako je to što mogu ići na prozor i početi tipkati naredbe 22 00:01:20,450 --> 00:01:23,960 i tako dalje postoje, iako se niste prijavili na tom prozoru. 23 00:01:23,960 --> 00:01:26,670 Osim toga, ako to učinite daljinska prijava, 24 00:01:26,670 --> 00:01:30,250 onda će početi ljuske na udaljenom računalu. 25 00:01:30,250 --> 00:01:44,310 I to je moguće pokrenuti naredbe bez interaktivnog ljusku. 26 00:01:44,310 --> 00:01:48,990 To može značiti unutar svog trenutnog rada, 27 00:01:48,990 --> 00:01:50,700 i to također može značiti i daljinskog upravljanja. 28 00:01:50,700 --> 00:01:52,900 Ti bi mogao poslati naredbe na drugo računalo, 29 00:01:52,900 --> 00:01:55,460 koji uključuje pokretanje ljuske postoji. 30 00:01:55,460 --> 00:01:57,760 U stvari, to je da su pokretanje ljuske postoji 31 00:01:57,760 --> 00:02:01,740 čak i ako to nije konačni cilj. 32 00:02:05,310 --> 00:02:12,350 Kad se nešto počne ovako, to ne mora nužno započeti novu ljusku. 33 00:02:12,350 --> 00:02:17,430 Ako bi se novi prozor, to je moguće reći da bi se urednik 34 00:02:17,430 --> 00:02:18,940 ili neka druga naredba. 35 00:02:18,940 --> 00:02:20,560 U tom slučaju, urednik će početi od nule. 36 00:02:20,560 --> 00:02:22,930 Kad urednik završava, prozor završava. 37 00:02:22,930 --> 00:02:24,620 To je malo neobično, ali to može biti učinjeno. 38 00:02:24,620 --> 00:02:27,140 U tim slučajevima, to neće biti ljuske. 39 00:02:27,140 --> 00:02:31,890 Dakle, to nije nužno slučaj da prozor ili neki takav program će dovesti do ljuske. 40 00:02:31,890 --> 00:02:34,030 >> Shell analizira naredbe. 41 00:02:34,030 --> 00:02:40,900 Raščlanjivanja znači identificiranja različitih elemenata, te ih klasificira. 42 00:02:40,900 --> 00:02:43,470 Unutar naredbe, potpuni niz koji ste tip, 43 00:02:43,470 --> 00:02:47,310 Tu će biti jedna ili više pojedinačna naredbe koje treba izvršiti. 44 00:02:47,310 --> 00:02:50,050 Ostali elementi mogu biti argumenti. 45 00:02:50,050 --> 00:02:55,020 Tu može biti i posebni znakovi koji utječu na izvršenje naredbe. 46 00:02:55,020 --> 00:02:59,710 Oni mogu slati izlaz negdje drugo osim zaslona 47 00:02:59,710 --> 00:03:01,750 Ako naredba inače bi ga poslati na zaslonu. 48 00:03:01,750 --> 00:03:04,390 To može preusmjeriti ulaz, to može raditi druge stvari također. 49 00:03:04,390 --> 00:03:08,120 Tu su i razne druge simbole, likovi, i tako dalje. 50 00:03:08,120 --> 00:03:13,600 Raščlanjivanja uključuje otkrivanje i tumačenje tih stvari. 51 00:03:13,600 --> 00:03:19,560 >> Sada, ako nema više pitanja, što je vrlo vjerojatno, jer nema više ljudi, 52 00:03:19,560 --> 00:03:24,620 mi ćemo ići na moj sljedeći stranice ovdje. 53 00:03:24,620 --> 00:03:29,170 >> Rekao sam ranije da Bourne shell je početna ljuske. 54 00:03:29,170 --> 00:03:31,550 Tu su i drugi. 55 00:03:31,550 --> 00:03:34,520 Jedan je C-shell. Naredba je CSH. 56 00:03:34,520 --> 00:03:36,830 Naziv C-shell je samo igra riječi. 57 00:03:36,830 --> 00:03:41,260 To ljuska je uvedena s Berkeley Unix u sredinom 1970-ih. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix je prvobitni događaj u razvoju Unix. 59 00:03:44,830 --> 00:03:48,770 To je ogromna revolucija i uključeni njegovo uvođenje ljuske. 60 00:03:48,770 --> 00:03:50,790 Razlog toj igri riječi, C-shell, 61 00:03:50,790 --> 00:03:56,490 je da je C-shell ima neke osobine u njemu koji nalikuju jezik C, 62 00:03:56,490 --> 00:03:59,740 što Bourne shell nema - 63 00:03:59,740 --> 00:04:02,140 ili ga nisu imali u to vrijeme. 64 00:04:02,140 --> 00:04:05,190 Tu je i TC-ljuske. 65 00:04:05,190 --> 00:04:07,360 To je nadskup C-ljuske. 66 00:04:07,360 --> 00:04:11,470 Ona ima dodatne mogućnosti, od kojih su mnoge korisne za interaktivnu uporabu, 67 00:04:11,470 --> 00:04:16,050 kao što podsjećajući naredbe u mehanizmu povijesti, 68 00:04:16,050 --> 00:04:18,459 koje ću opisati nešto kasnije - 69 00:04:18,459 --> 00:04:23,120 na jednostavan način, po uzoru urednik. 70 00:04:23,120 --> 00:04:29,170 Također ima vezove koji vam omogućuju da se vežu kratki ključnu string duže naredbe. 71 00:04:29,170 --> 00:04:31,440 Nećemo biti uzimajući u koje danas. 72 00:04:31,440 --> 00:04:33,650 To ima neke značajke koje su korisne za programiranju. 73 00:04:33,650 --> 00:04:37,020 Međutim, C-ljuska nije se često koristi za programiranje ljusci. 74 00:04:37,020 --> 00:04:39,080 Shell programi, ako ne već znate, 75 00:04:39,080 --> 00:04:41,690 su programi koji se sastoje od karakteristika ljuske. 76 00:04:41,690 --> 00:04:43,220 Ti bi mogao pokrenuti ih kao programe. 77 00:04:43,220 --> 00:04:46,760 Pišeš hrpu ljuske naredbi u datoteku i izvršiti datoteku. 78 00:04:46,760 --> 00:04:49,760 Vi ne morate ga sastaviti. To je interpretativni jezik. 79 00:04:49,760 --> 00:04:57,320 Izraz C-shell sada je dvosmislen, jer bi to moglo odnositi samo na izvorni C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 ili za sve C-školjke, uključujući tcsh. To je pomalo nedorečena. 81 00:05:01,200 --> 00:05:08,250 >> Kasnije granata je Korn shell, ksh, nazvana po programer, Korn. 82 00:05:08,250 --> 00:05:14,160 To ljuska pokušao ugraditi u 1. ljusci 83 00:05:14,160 --> 00:05:16,960 prednosti C-shell za interaktivnu uporabu 84 00:05:16,960 --> 00:05:19,230 i Bourne shell za programiranju. 85 00:05:19,230 --> 00:05:25,440 To je bio korišten kao interaktivni ljuske od strane nekih ljudi - manjina. 86 00:05:25,440 --> 00:05:32,050 Kasnije ipak, postoji još jedan uvod, bash ljuska, BASH, 87 00:05:32,050 --> 00:05:35,290 ponovno igra riječima, Bourne-shell opet. 88 00:05:35,290 --> 00:05:43,830 To je nastavak Bourne ljuske. Korn ljuska je također. Obojica su. 89 00:05:43,830 --> 00:05:48,100 Ona ima iste ciljeve Korn ljusku sjedinila C-shell-a 90 00:05:48,100 --> 00:05:50,980 i Bourne Shell je prednosti u 1 ljuske. 91 00:05:50,980 --> 00:05:56,810 Mnogi od poboljšanja u Korn ljuske su također uključeni u Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, međutim, ima još i stoga je poželjno. 93 00:06:00,710 --> 00:06:05,180 Bourne-shell opet i Korn shell nazivaju Bourne tipa školjke 94 00:06:05,180 --> 00:06:07,730 zato što su The Bourne Shell je karakteristike, 95 00:06:07,730 --> 00:06:11,180 koje su nespojive u nekim aspektima sa C-školjke. 96 00:06:11,180 --> 00:06:15,520 Postoje i druge školjke, osim onih, neki namijenjen za ograničenu uporabu, 97 00:06:15,520 --> 00:06:20,670 možda ograničen na neke naredbe, možda i specijalizirane namjene, često ne koriste. 98 00:06:20,670 --> 00:06:24,240 >> Redu. Sljedeća točka ovdje. 99 00:06:31,300 --> 00:06:38,970 Bash ljuska je postao povezan s različitim oblicima Linux. 100 00:06:38,970 --> 00:06:41,550 Nisam siguran je li to istina za svakog oblika. 101 00:06:41,550 --> 00:06:43,280 Postoje mnogi oblici vani i nisam ih sve koristi, 102 00:06:43,280 --> 00:06:46,870 ali one koje sam koristio je postao povezan s njim. 103 00:06:46,870 --> 00:06:49,670 Dakle, koliko ja znam, ne postoji ništa o Bash 104 00:06:49,670 --> 00:06:52,210 što ga čini više kompatibilan s Linuxom 105 00:06:52,210 --> 00:06:55,020 od bilo koje druge kombinacije školjke i operativni sustav. 106 00:06:55,020 --> 00:06:59,690 Mislim da je to vjerojatno samo odraz sklonosti programera. 107 00:06:59,690 --> 00:07:07,500 To što je postao povezan s Linuxom je još jedan razlog da se vole bash na KSH 108 00:07:07,500 --> 00:07:11,820 jer stvari su vjerojatno da će se u njoj napisano i to je vjerojatno da će širiti. 109 00:07:11,820 --> 00:07:15,410 Ja ću vam dati i druge razloge za to kasnije. 110 00:07:15,410 --> 00:07:21,330 Bourne Shell skripte treba izvoditi pod Korn ljuske ili Bash. 111 00:07:21,330 --> 00:07:22,650 Ako pišete za Bourne ljuske nešto, 112 00:07:22,650 --> 00:07:26,180 vjerojatno možete izvršiti ga pod ksh i bash. 113 00:07:26,180 --> 00:07:30,610 Korn shell skripte će vjerojatno pokrenuti pod Bash, ali ja ne mogu jamčiti da. 114 00:07:30,610 --> 00:07:36,040 Kasnije ovdje, C-shell skripte treba izvoditi pod TC-školjke. 115 00:07:38,850 --> 00:07:41,690 C-shell je zapravo nikada intenzivno koristi za skriptiranje 116 00:07:41,690 --> 00:07:48,110 budući Bourne shell, a kasnije su Bourne tipa granate bile bolje za tu svrhu. 117 00:07:48,110 --> 00:07:50,620 Tako da stvarno nije sve što je važno. 118 00:07:50,620 --> 00:07:53,480 Ima dosta Bourne Shell skripte koje su napisane davno, 119 00:07:53,480 --> 00:07:56,860 prije Korn ljuske ili Bourne-shell ponovno su uvedeni. 120 00:07:56,860 --> 00:07:59,300 Oni koji su još uvijek u upotrebi, dio operativnih sustava, 121 00:07:59,300 --> 00:08:01,590 i tako ćete ih naći ako pogledate u operativni sustav 122 00:08:01,590 --> 00:08:03,760 ili neki stari programski paketi. 123 00:08:03,760 --> 00:08:12,840 >> Bash je u određenoj mjeri postaje svojevrsna lingua franca za operativne sustave. 124 00:08:12,840 --> 00:08:17,580 Već je proširena na Windowsima i na VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, u slučaju da ne znate, je vlasnički operativni sustav 126 00:08:20,440 --> 00:08:25,480 Digital Equipment Corporation, koja je još uvijek u upotrebi, uglavnom iza scene. 127 00:08:25,480 --> 00:08:29,250 A ako će se prikazivati ​​na nekoliko različitih operativnih sustava, 128 00:08:29,250 --> 00:08:31,110 vjerojatno ljudi imaju tendenciju da se pomak za njega. 129 00:08:31,110 --> 00:08:33,840 No, taj razvoj je relativno nedavno. 130 00:08:33,840 --> 00:08:39,490 To je samo početak, pa ne mogu predvidjeti, ako će to ispasti da je stvarno moguće da vrsta lingua franca. 131 00:08:39,490 --> 00:08:43,539 Također, budući datoteka pathnames i knjižnice razlikuju 132 00:08:43,539 --> 00:08:46,210 između tih različitih operativnih sustava, 133 00:08:46,210 --> 00:08:50,250 možda neće biti u stanju napisati Bash skripte na jednom operativnom sustavu 134 00:08:50,250 --> 00:08:51,840 , a zatim ga pokrenuti na još jedan. 135 00:08:51,840 --> 00:08:54,440 Trebali biste biti u mogućnosti da ga se kretati između različitih Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS operativnog sustava, ali ne nužno i za Windows ili VMS. 137 00:08:59,020 --> 00:09:01,390 Možda ćete morati promijeniti opise datoteka ime putanje, 138 00:09:01,390 --> 00:09:03,180 i neke knjižnice mogu biti različiti, 139 00:09:03,180 --> 00:09:05,230 koji mogu utjecati na način na koji neke naredbe raditi 140 00:09:05,230 --> 00:09:09,730 ili kako ih obraditi argumente i slično. 141 00:09:09,730 --> 00:09:19,230 Osim toga, još jedan oprez ovdje je da ne postoji jamstvo 142 00:09:19,230 --> 00:09:23,570 da su svi različiti školjke sam spomenuti - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn shell, Bourne-shell opet - biti će dostupan i bilo Unix 144 00:09:29,880 --> 00:09:33,750 ili Linux ili Mac OS računala. 145 00:09:33,750 --> 00:09:35,620 Oni jednostavno ne može biti tamo. 146 00:09:35,620 --> 00:09:38,300 To je jedan od upozorava ovdje. 147 00:09:38,300 --> 00:09:41,490 To je nesretni ograničenje ovdje jer želite stvari raditi posvuda, 148 00:09:41,490 --> 00:09:44,380 ali na žalost, ne možete se osloniti na to. 149 00:09:44,380 --> 00:09:47,230 >> Redu. Sljedeća ovdje. 150 00:09:50,280 --> 00:09:54,370 Recimo da želite napisati skriptu, 151 00:09:54,370 --> 00:09:57,170 Program se sastoji od ljuske naredbi. 152 00:09:57,170 --> 00:10:01,200 Vi napišite svoje naredbe, stavite ih u datoteku, i izvršiti datoteku. 153 00:10:01,200 --> 00:10:04,230 Što ako se želite uključiti argumente? 154 00:10:04,230 --> 00:10:09,650 U slučaju ljuske operacija, argumenti su pozvani parametara ili pozicijski parametri 155 00:10:09,650 --> 00:10:15,940 i oni će se zvati po znak dolara i brojka, $ 1, 2 $. 156 00:10:15,940 --> 00:10:27,000 Dakle, ako Skripta ima ovo ime, moj prvi argument može biti argument 1 157 00:10:27,000 --> 00:10:30,540 i moj drugi može biti argument 2, 158 00:10:30,540 --> 00:10:34,110 i unutar mog pisma, ako želim da se odnosi na te stvari - 159 00:10:34,110 --> 00:10:36,810 neka se izbriše to jer nisam stvarno ide to raditi - 160 00:10:36,810 --> 00:10:42,160 u mom scenariju sam mogla imati $ 1 do odnose na arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, koji će izaći na taj način, ARG2. 162 00:10:45,890 --> 00:10:50,080 Dakle, ti simboli su dostupni da se odnosi na argumente, 163 00:10:50,080 --> 00:10:52,390 i one vrijede za sve školjke. 164 00:10:52,390 --> 00:10:56,520 Osim toga, tu su i ostali likovi. 165 00:10:56,520 --> 00:11:01,700 $ * Odnosi se na cijelom popisu argumenata, sve njih. 166 00:11:01,700 --> 00:11:05,390 $ # Odnosi se na broj argumente. 167 00:11:05,390 --> 00:11:07,910 Opet, to se odnosi na sve školjke. 168 00:11:07,910 --> 00:11:15,540 Ti simboli, * i #, može se koristiti s tim značenjem u drugim mjestima također. 169 00:11:15,540 --> 00:11:17,940 Nećemo biti uzimajući u to. 170 00:11:17,940 --> 00:11:20,460 >> Shell specifikator linija. Što je to? 171 00:11:20,460 --> 00:11:27,760 Recimo da sam napisao scenarij, a to je za određeni školjke i želite ga pokrenuti. 172 00:11:27,760 --> 00:11:33,500 Kako ćete znati što shell vaš operativni sustav će se koristiti za pokretanje svoje skripte? 173 00:11:33,500 --> 00:11:37,230 U jednom trenutku ste mogli pretpostaviti da će ga pokrenuti u Bourne ljuske 174 00:11:37,230 --> 00:11:39,440 ako ne kažu drugačije, 175 00:11:39,440 --> 00:11:41,730 ali ljudi nisu pisanje skripti u Bourne Shell da je mnogo više 176 00:11:41,730 --> 00:11:43,750 a ne mogu ni osloniti na to više. 177 00:11:43,750 --> 00:11:48,740 Dakle, ovdje imamo ljuske specifikator liniju ovdje. 178 00:11:48,740 --> 00:11:52,450 To određuje Bash. 179 00:11:52,450 --> 00:11:56,750 Imajte na umu da se to navodi u ime putanje, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Ako računalo ima bash ljuska, ali ne u bin / bin, to neće raditi. 181 00:12:02,870 --> 00:12:06,870 To je još jedna kvalifikacijska, još jedan oprez ovdje. 182 00:12:06,870 --> 00:12:09,500 Funta je znak komentar line character. 183 00:12:09,500 --> 00:12:12,300 To se odnosi na sve školjke. 184 00:12:12,300 --> 00:12:18,610 Posebno ovdje slučaj, #! na početku pisma, poseban je slučaj. 185 00:12:18,610 --> 00:12:23,410 To određuje školjke u kojoj pokrenuti skriptu. 186 00:12:23,410 --> 00:12:30,230 Kao što sam rekao, to ne bi mogli biti isto mjesto / bin. 187 00:12:30,230 --> 00:12:34,880 Osim toga, tu je još jedna stvar ovdje. 188 00:12:34,880 --> 00:12:41,250 Ako ste samo koristiti funta znak bez uskličnika i ime putanje, 189 00:12:41,250 --> 00:12:44,640 koja bi trebala ukazivati ​​na C-školjku. 190 00:12:44,640 --> 00:12:48,300 Međutim, ja ne preporučujem da radi, jer ja nisam u mogućnosti jamčiti 191 00:12:48,300 --> 00:12:49,750 da da će uvijek raditi. 192 00:12:49,750 --> 00:12:52,220 Ako želite C-shell, bilo bi bolje da se tako reći. 193 00:12:52,220 --> 00:12:58,450 Zatim tu je nešto vrlo zbunjujuće ovdje. 194 00:12:58,450 --> 00:13:03,940 Ako koristite ljusku specifikator linije, kao što su / bin / bash 195 00:13:03,940 --> 00:13:07,070 i da ljuska nije dostupan tamo, 196 00:13:07,070 --> 00:13:10,680 ne postoji takva stvar kao što je / bin / bash na tom računalu, 197 00:13:10,680 --> 00:13:14,330 zato jer nema Bash ili zato što je u drugom položaju, 198 00:13:14,330 --> 00:13:17,450 ćete dobiti greška vam govore da je skripta koju je vodio ne postoji. 199 00:13:17,450 --> 00:13:21,510 I naravno vaša skripta postoji, tako da se poruka o pogrešci je zbunjujuće. 200 00:13:21,510 --> 00:13:24,810 Razlog da se operativni sustav daje vam tu pogrešku 201 00:13:24,810 --> 00:13:28,370 ili, točnije, da je vaš interaktivni ljuska u kojoj radite to daje tu pogrešku, 202 00:13:28,370 --> 00:13:33,510 da izvješća naredbu koju ste koristili, što je naziv pisma. 203 00:13:33,510 --> 00:13:36,920 To naredba učinkovito zove ljuske po imenu skripte. 204 00:13:36,920 --> 00:13:39,330 To je mjesto gdje možete dobiti tu zbunjujuću poruku o pogrešci. 205 00:13:39,330 --> 00:13:42,980 Još jedan način da se poziv skriptu 206 00:13:42,980 --> 00:13:45,910 je određivanjem ljuske na naredbenog retka, kao i ovdje. 207 00:13:45,910 --> 00:13:52,510 To je naredba. Ovaj kaže da trčanje Bash a zatim pokrenuti svoju skriptu u Bash. 208 00:13:52,510 --> 00:13:55,680 To će imati prednost u odnosu na specifikator linije, 209 00:13:55,680 --> 00:14:02,090 a to je značajka omogućuje vam da osigurati različite pathnames. 210 00:14:02,090 --> 00:14:04,840 Ako ste samo dati naredbu, operativni sustav će se tražiti da se naredba 211 00:14:04,840 --> 00:14:06,410 na raznim mjestima. 212 00:14:06,410 --> 00:14:08,820 Ako je dostupna, treba ga naći. 213 00:14:08,820 --> 00:14:12,290 Računalo će se naći Bash bez obzira gdje je smješten i pokrenuti ga, 214 00:14:12,290 --> 00:14:15,470 , tako da ne morate onda biti zabrinuti gdje ga nađe. 215 00:14:15,470 --> 00:14:17,360 Postoje potencijalno druga pitanja ovdje, 216 00:14:17,360 --> 00:14:20,830 Kao da postoji više od 1 verzija Bash, što je moguće, iako je malo vjerojatno. 217 00:14:20,830 --> 00:14:23,540 Dakle, to je još jedan način da se bave tim stvarima. 218 00:14:23,540 --> 00:14:30,480 Specifikator linije mogu nazvati bilo školjku. 219 00:14:30,480 --> 00:14:34,480 Oni također mogu nazvati osim školjke stvari. 220 00:14:34,480 --> 00:14:37,940 Primjeri mi imamo ovdje su sed, što je potok urednik; 221 00:14:37,940 --> 00:14:39,900 awk, što je jezik za obradbu obrazac; 222 00:14:39,900 --> 00:14:43,680 i Perl, vrlo visoko razvijena skriptnog jezika. 223 00:14:43,680 --> 00:14:47,570 Ako stavite specifikator koji ukazuje da je jedan od tih programa na početku, 224 00:14:47,570 --> 00:14:51,270 to će ići izravno u tom programu, a ne pokretanje ljuske. 225 00:14:51,270 --> 00:14:54,030 Ti programi imaju granice svojih sposobnosti. 226 00:14:54,030 --> 00:14:58,790 Perl je vrlo sposoban. SED je urednik. To možete učiniti stvari izvan jednostavno uređivanje. 227 00:14:58,790 --> 00:15:03,300 No, to može biti teško programirati da. 228 00:15:03,300 --> 00:15:09,670 Osim toga, prolazi argumente i stvari za skriptu je bilo nemoguće ili zbunjujuće. 229 00:15:09,670 --> 00:15:15,030 Dakle, u tim slučajevima, s awk ili sed, to je, barem u mom iskustvu, 230 00:15:15,030 --> 00:15:18,910 poželjno napisati skriptu i poziva Awk ili dodijeljene iz skripte 231 00:15:18,910 --> 00:15:24,660 umjesto pozivanja Awk ili sed kao original specifikator linije. 232 00:15:24,660 --> 00:15:26,980 Perl je vrlo raznolika jezik, kao što sam rekao. 233 00:15:26,980 --> 00:15:30,050 Vi ne možete izvoditi interaktivne naredbe u Perl, 234 00:15:30,050 --> 00:15:32,660 što znači da se ne može testirati dijelove pisma koje ste u razvoju 235 00:15:32,660 --> 00:15:33,970 tako da ih izvodi interaktivno. 236 00:15:33,970 --> 00:15:36,160 Međutim, to je iznimno sposoban jezik 237 00:15:36,160 --> 00:15:40,960 i razvio se u vrlo široko koristi alat. 238 00:15:40,960 --> 00:15:45,720 To je samo malo usputna opaska o specifikator linije. 239 00:15:45,720 --> 00:15:50,610 >> U sve ili većinu oblika Linux - opet, ne mogu biti sigurni da je sve - 240 00:15:50,610 --> 00:15:57,900 i Mac OS, ako upišete CSH dobivate tcsh, 241 00:15:57,900 --> 00:16:00,570 a ako se upiše SH ste dobili tekmu. 242 00:16:00,570 --> 00:16:05,020 Pokušavali su tu da vam dati više napredne verzije tih školjaka, 243 00:16:05,020 --> 00:16:07,940 ali to može biti zbunjujuće. 244 00:16:07,940 --> 00:16:16,720 Ako ste napisati scenarij pomoću tcsh ili Bash ima dok zovete csh ili sh 245 00:16:16,720 --> 00:16:22,230 a zatim pokušati da ga pokrenuti na računalu koje nema tcsh ili Bash, 246 00:16:22,230 --> 00:16:25,050 možda ćete dobiti neke pogreške, ako postoje naredbe unutra 247 00:16:25,050 --> 00:16:27,970 koji su ti školjke ne prepoznaju. 248 00:16:27,970 --> 00:16:34,120 Osim toga, možda su pozvani svoj oklop na vašem lokalnom računalu 249 00:16:34,120 --> 00:16:37,700 nazivajući ga kao sh ili csh, a zatim uzimajući više naprednih školjke. 250 00:16:37,700 --> 00:16:41,440 Vi svibanj čak i ne misliti na činjenicu da ste korištenjem naprednije školjku. 251 00:16:41,440 --> 00:16:45,670 Dakle, to je potencijalna zamka. 252 00:16:45,670 --> 00:16:50,290 Kako je utvrđeno da ako se upiše SH dobivate Bash, 253 00:16:50,290 --> 00:16:55,580 ako upišete CSH dobivate tsch? 254 00:16:55,580 --> 00:16:59,940 Postoje stvari u tim računalima nazivaju linkovi 255 00:16:59,940 --> 00:17:06,460 što se može povezati u datoteku imena koje se odnose na istu stvar. 256 00:17:06,460 --> 00:17:12,180 To mogu biti bilo dva imena za istu datoteku ili datoteku čija je svrha da se odnosi na drugu datoteku. 257 00:17:12,180 --> 00:17:17,550 Zovu se tvrdi i simboličke veze. Nećemo se ide u Danas više toga nema. 258 00:17:17,550 --> 00:17:21,619 Postoji svibanj također biti odvojene slike - 1 file SH, 1 datoteka Bash - 259 00:17:21,619 --> 00:17:23,880 ali obojica pokrenuti Bash. 260 00:17:23,880 --> 00:17:29,350 Zatim, tu je još jedna kvalifikacijska ovdje. 261 00:17:29,350 --> 00:17:42,640 Ako zovete jedan od tih granata po jedno ime, 262 00:17:42,640 --> 00:17:46,640 možda mislite da bih dobiti istu funkcionalnost kao nazvavši ga drugim imenom. 263 00:17:46,640 --> 00:17:49,700 Pa, to zapravo nije nužno istina. 264 00:17:49,700 --> 00:17:55,020 Te naredbe može ispitati ime kojim su se zvali 265 00:17:55,020 --> 00:18:00,020 i oni mogu, na temelju tog imena, ponašaju se drugačije. 266 00:18:00,020 --> 00:18:02,740 Tu može biti pitanja pokušavajući u skladu s normom. 267 00:18:02,740 --> 00:18:06,060 Neki od vas svibanj su čuli za POSIX standarda ili neki drugi, 268 00:18:06,060 --> 00:18:08,730 možda druge značajke. 269 00:18:08,730 --> 00:18:14,520 To može biti izabran ponekad argumente naredbenog retka 270 00:18:14,520 --> 00:18:17,310 ili postavljanjem shell varijabli. 271 00:18:17,310 --> 00:18:22,170 , Nazivajući ga sh ili bash zapravo može dovesti do različitog izvršenje 272 00:18:22,170 --> 00:18:25,300 čak i ako je isti file koji ste izvršenja. 273 00:18:25,300 --> 00:18:31,800 Još jedna stvar koju treba uzeti u obzir je da, čak i ako je drugo računalo ima tcsh ili Bash, 274 00:18:31,800 --> 00:18:35,310 ako nisu povezani, kao da su na lokalnom računalu 275 00:18:35,310 --> 00:18:37,990 ako imate Linux i Mac OS lokalno računalo, 276 00:18:37,990 --> 00:18:45,630 onda opet ćete dobiti oklop koji vas nazvati sh ili csh, a ne onaj koji bi radije. 277 00:18:50,430 --> 00:19:01,130 Trenutna Bourne shell ima poboljšanja manje od onih u Bash 278 00:19:01,130 --> 00:19:06,100 ali pored one u izvornom Bourne ljuske. 279 00:19:06,100 --> 00:19:09,690 Kao rezultat toga, čak i struja Bourne Shell, SH 280 00:19:09,690 --> 00:19:14,560 čak i kad to nije bash, podsjeća C jezik više od C-shell radi. 281 00:19:14,560 --> 00:19:20,460 To nije bilo točno kada C-shell je prvi put stvorio, ali je razvila taj način. 282 00:19:20,460 --> 00:19:26,560 Možda ćete primijetiti da su sva ta imena ljuska osim Bourne ljuske 283 00:19:26,560 --> 00:19:30,640 imati nešto za upozorenja koja ljuske su - CSH, bash - 284 00:19:30,640 --> 00:19:32,550 ali Bourne shell je samo sh. 285 00:19:32,550 --> 00:19:34,910 Zašto? To je bio izvorni ljuske. 286 00:19:34,910 --> 00:19:37,770 To je ljuska tada, ne ljuska, 287 00:19:37,770 --> 00:19:41,090 i budući da je ljuska, nije bilo razloga da ga razlikuje od druge ljuske. 288 00:19:41,090 --> 00:19:45,030 Dakle, to je razlog zašto je to ime i još uvijek radi. 289 00:19:50,630 --> 00:19:58,990 >> Ovaj vrhunski ovdje je linija iz lozinke baze podataka za račun imam tamo 290 00:19:58,990 --> 00:20:01,680 na drugom računalu. 291 00:20:01,680 --> 00:20:08,300 Ja ću pokušati dobiti taj naziv, tako da možete vidjeti da je dio na kraju, ljuske. 292 00:20:09,720 --> 00:20:15,450 Baze podataka lozinkom drži karakteristike prijavu za sve korisnike. 293 00:20:15,450 --> 00:20:20,330 Na početku se korisničkim imenom, koje možete vidjeti u zadnje 2 slova moje sada. 294 00:20:20,330 --> 00:20:23,970 Polja ovdje su odvojeni kolona. 295 00:20:23,970 --> 00:20:28,210 Zadnje polje, kao što možete vidjeti, je bin / tcsh, ljuske. 296 00:20:28,210 --> 00:20:30,230 To je ljuska specifikator. 297 00:20:30,230 --> 00:20:33,240 Ima nešto zanimljivo. 298 00:20:33,240 --> 00:20:36,950 Kad Unix je prvi razvio, bilo je samo 1 granata, 299 00:20:36,950 --> 00:20:38,350 pa nije bilo izbora postoji. 300 00:20:38,350 --> 00:20:45,570 Pa zašto oni dopuštaju polje u lozinke baze podataka da odredite školjku? 301 00:20:45,570 --> 00:20:47,920 Ne znam, ali to je sreća da su to učinili. 302 00:20:47,920 --> 00:20:52,030 To je prilično teško napraviti promjene u formatu lozinku baze podataka 303 00:20:52,030 --> 00:20:54,420 jer mnogi programi odnose se na svom formatu 304 00:20:54,420 --> 00:20:57,720 i da će morati biti revidirana. 305 00:20:57,720 --> 00:21:04,130 To je zgodan ili slučajno razvoj koji su uključene to polje. 306 00:21:04,130 --> 00:21:12,780 Takva lozinku retku datoteke se koriste na svim Unix i Linux računala tako koliko ja znam. 307 00:21:12,780 --> 00:21:14,650 Mac ima svoj vlastiti sustav. 308 00:21:14,650 --> 00:21:17,810 To zapravo ima datoteku lozinke s linije u tom formatu, 309 00:21:17,810 --> 00:21:21,060 , ali to nije u kojima su definirane značajke korisnika. 310 00:21:21,060 --> 00:21:24,200 Još jedna usputna opaska postoji. 311 00:21:36,470 --> 00:21:46,020 >> Ako pozivom na školjku, možete ga nazvati kao pod-ljuske od postojećih školjke. 312 00:21:46,020 --> 00:21:50,480 Dakle, ako idem ovdje, idemo dobiti osloboditi od tih stvari. 313 00:21:50,480 --> 00:21:53,350 Ovdje sam u C-školjke. 314 00:21:56,830 --> 00:22:01,200 To varijabilni, koji točno identificira svoju školjku, 315 00:22:01,200 --> 00:22:04,300 zapravo nije uvijek pouzdan način određivanja što shell radite, 316 00:22:04,300 --> 00:22:06,220 no u tom slučaju to je. 317 00:22:06,220 --> 00:22:08,040 Što ako sam samo tip - 318 00:22:09,970 --> 00:22:12,470 Sada sam u Bash. 319 00:22:12,470 --> 00:22:19,540 Neke stvari će biti isti. Jel mi govori moje zapovijedi. 320 00:22:19,540 --> 00:22:24,500 Ako mi ne obustavi natrag u moj C-shell, LS-a, isto. Zar ne? 321 00:22:24,500 --> 00:22:28,890 FG, u prvom planu, natrag u moje Bash ljuska. 322 00:22:28,890 --> 00:22:38,290 zap, aktivni imenik, natrag u C-školjke. 323 00:22:38,290 --> 00:22:43,180 zap, drugačije imenik - zapravo se ne razlikuju imenik u ovom slučaju. 324 00:22:43,180 --> 00:22:45,110 To je isto imenik. 325 00:22:45,110 --> 00:22:50,000 Recimo da želim pozvati naredbu ovdje: gdje li. 326 00:22:50,000 --> 00:22:52,140 Što da radim? 327 00:22:52,140 --> 00:22:53,670 To mi govori gdje ls naredbu, 328 00:22:53,670 --> 00:22:56,670 onaj koji mi daje imeniku, nalazi se u LS. 329 00:22:56,670 --> 00:23:01,460 Vratimo se bash ljuska. Pokušajmo istu stvar. 330 00:23:01,460 --> 00:23:05,830 Hmm, zanimljivo tamo, gdje je: Naredba nije pronađena. 331 00:23:05,830 --> 00:23:07,400 Zašto je to tako? 332 00:23:07,400 --> 00:23:11,570 Gdje naredba je sagrađena na C-školjke. 333 00:23:11,570 --> 00:23:15,630 To nije naredba koja se mora čitati u pamćenju od negdje drugdje i pogubljen. 334 00:23:15,630 --> 00:23:20,310 C-shell ga pokreće prebacivanjem izvršenje se dio vlastitog koda 335 00:23:20,310 --> 00:23:22,790 i to ne u Bash ljuska. 336 00:23:22,790 --> 00:23:25,710 Dakle Bash, nemaju takav ugrađeni u naredbu, traži se, ne ga pronaći, 337 00:23:25,710 --> 00:23:27,720 a mi smo dobili na pogrešku. 338 00:23:27,720 --> 00:23:32,290 Dakle, tu imamo bash ljuska izvodi pod C-shell, i to zovemo sub-shell. 339 00:23:32,290 --> 00:23:38,480 I samo u slučaju da ste znatiželjni, bash ljuska ima svoj način lociranja naredbe. 340 00:23:38,480 --> 00:23:42,590 raspršenom odnosi se na činjenicu da se može izvršiti brže, 341 00:23:42,590 --> 00:23:44,960 Pronalazi se brže. 342 00:23:44,960 --> 00:23:48,610 To je jedno od poboljšanja ugrađena u neki od tih granata. 343 00:23:50,220 --> 00:23:54,200 >> Bourne-tipa školjke su prednost za programiranju. 344 00:23:54,200 --> 00:23:57,300 Imaju kontrolne strukture poput petlje, uvjetne naredbe, 345 00:23:57,300 --> 00:24:00,240 vrsta naredbe koje možete koristiti u programskim jezicima kao što su C 346 00:24:00,240 --> 00:24:04,190 ili što god jezik. Možda ste u programiranje u Javi ili bilo što. 347 00:24:04,190 --> 00:24:06,460 Školjke su one previše. 348 00:24:06,460 --> 00:24:11,790 The Bourne tipa školjke, osobito Bash, imaju više 349 00:24:11,790 --> 00:24:15,730 i oni su dizajnirani veću fleksibilnost. 350 00:24:15,730 --> 00:24:20,700 Bash ljuska ima polja. Izvorna Bourne shell ne. 351 00:24:20,700 --> 00:24:26,130 Tako da se može značajno povoljno za programiranje. 352 00:24:26,130 --> 00:24:29,810 C-shell zapravo imaju polja, ali nema puno tih drugih značajki. 353 00:24:29,810 --> 00:24:33,450 The Bourne tipa školjke će izvršiti brže 354 00:24:33,450 --> 00:24:36,520 ako oni nemaju mogućnosti namijenjene za interaktivnu uporabu. 355 00:24:36,520 --> 00:24:39,340 Možete učitati stvari dolje za jednu svrhu, a to ih učitava niz za drugu svrhu. 356 00:24:39,340 --> 00:24:41,520 Tu je da je trade-off postoji. 357 00:24:41,520 --> 00:24:44,510 Te značajke koje su namijenjene za interaktivnu uporabu 358 00:24:44,510 --> 00:24:46,920 Stvarno su od male ili nikakve koristi za skriptiranje. 359 00:24:46,920 --> 00:24:52,160 To je moguće koristiti interaktivni pod-školjku baš kao onaj počela sam tu 360 00:24:52,160 --> 00:24:57,780 testirati naredbi koje namjeravaju koristiti u pismu. 361 00:24:57,780 --> 00:25:01,180 To je ono što se ne može učiniti s Perl. Možete to učiniti sa školjkama. 362 00:25:01,180 --> 00:25:04,850 Čak su i strukture kao i za petlje i slično mogu se izvoditi interaktivno. 363 00:25:04,850 --> 00:25:07,000 Oni su povremeno koristi za pokretanje interaktivno, 364 00:25:07,000 --> 00:25:10,180 , ali je vjerojatnije da ste ih koristite razviti scenarij. 365 00:25:15,690 --> 00:25:17,400 >> Aliasi. 366 00:25:17,400 --> 00:25:21,630 To će biti o C-shell. 367 00:25:23,270 --> 00:25:27,570 Povijest mehanizam gdje ćete dobiti sve do ranijih naredbi 368 00:25:27,570 --> 00:25:30,340 ili njihovi dijelovi koji ste već pokrenuti. 369 00:25:30,340 --> 00:25:33,680 Opet, o C-shell, Bourne ljuske i Korn shell imati te stvari, 370 00:25:33,680 --> 00:25:35,620 ali ja ne idem ući u njih. 371 00:25:35,620 --> 00:25:40,340 Dakle, evo nekoliko korisnih nadimci koje imam. 372 00:25:43,100 --> 00:25:44,880 Umjesto tipkanja ls - to je uobičajena naredba - 373 00:25:44,880 --> 00:25:47,620 samo upišite l i uštedjeti 1 znak. 374 00:25:47,620 --> 00:25:50,600 Je li s različitim opcijama, svi oni rade. 375 00:25:50,600 --> 00:25:54,460 Imajte na umu da su ti pojmovi imaju citati oko njih. 376 00:25:54,460 --> 00:25:57,520 U tim slučajevima, citati nisu potrebni. 377 00:25:57,520 --> 00:26:00,100 Ako možete definirati one pseudonime bez navodnika, on će i dalje raditi. 378 00:26:00,100 --> 00:26:02,910 Oni preporučuju. 379 00:26:02,910 --> 00:26:04,900 Postoje situacije u kojima ne možete koristiti citat 380 00:26:04,900 --> 00:26:08,050 zato što želim da se nešto dogodi što bi spriječilo citat. 381 00:26:08,050 --> 00:26:11,210 Ponekad možete citirati dio definicije, ali ne sve. 382 00:26:11,210 --> 00:26:17,010 To je također uglavnom preporuča se koristiti jednostruke navodnike umjesto dvostrukih navodnika. 383 00:26:17,010 --> 00:26:19,750 Navodnicima imati učinke na promjenjive definicije, 384 00:26:19,750 --> 00:26:22,950 Posebno nanoseći im da se ocjenjuju nego ga zaustaviti. 385 00:26:22,950 --> 00:26:25,910 Zašto bi htjeli zaustaviti ocjenu? 386 00:26:25,910 --> 00:26:28,710 I drago mi je citati to učiniti za nas? 387 00:26:28,710 --> 00:26:32,600 >> Ovdje je naredba koja vam mogla biti zanimljiva. 388 00:26:32,600 --> 00:26:35,470 'Je li g *' 389 00:26:35,470 --> 00:26:37,640 g *, kao što vjerojatno znate, je zamjenski izraz 390 00:26:37,640 --> 00:26:40,290 za sve imena datoteka s početka g. 391 00:26:40,290 --> 00:26:46,410 Ako sam samo napisati u naredbe ls g *, ja ću dobiti popis svih tih imena u mojoj trenutnoj imenik. 392 00:26:46,410 --> 00:26:50,870 Ako sam definirati taj nadimak jer je ovdje s navodnicima, 393 00:26:50,870 --> 00:26:56,990 to će pokrenuti taj naredbu u trenutnoj imenik gdje ste ga izvodi. 394 00:26:56,990 --> 00:27:01,250 Ali, ako naiđete na definiciju alias bez navodnika, 395 00:27:01,250 --> 00:27:09,620 to će procijeniti zamjenski g * kada se radi ovaj definiranje naredbu. 396 00:27:09,620 --> 00:27:14,400 Dakle definicija pseudonimom će ls slijedi popis datoteka u imeniku 397 00:27:14,400 --> 00:27:16,310 u kojoj alias naredba se izvršava, 398 00:27:16,310 --> 00:27:19,180 bez obzira na to gdje se zapravo namjeravaju pokrenuti naredbu. 399 00:27:19,180 --> 00:27:26,360 To nije od velike koristi, i jednostruke navodnike spriječiti ocjenu zvjezdicom. 400 00:27:26,360 --> 00:27:30,780 Tako da samo dobiti razlučivosti biće ls g *. 401 00:27:30,780 --> 00:27:35,510 Onda kada pokrenete pseudonim, LGS, to onda stavlja to. 402 00:27:35,510 --> 00:27:40,490 Sada ne postoje citati, a to će procijeniti zvjezdicu kada pokrenete alias naredbe. 403 00:27:40,490 --> 00:27:43,900 Dakle, to je jedna stvar. 404 00:27:43,900 --> 00:27:46,590 Navodnicima bi taj isti efekt, 405 00:27:46,590 --> 00:27:50,580 ali postoje i drugi slučajevi u kojima dvostruke navodnike neće raditi tako dobro. 406 00:27:50,580 --> 00:27:52,450 >> Ovdje je još jedan. 407 00:27:52,450 --> 00:27:54,270 Možda ćete znati grep naredbu. 408 00:27:54,270 --> 00:28:02,110 Grep naredba se može koristiti za skeniranje datoteka za linije koje imaju određene konce. 409 00:28:02,110 --> 00:28:10,350 Dakle, idemo ovamo i ja ću izlaz iz mog Bourne ljuske. 410 00:28:23,570 --> 00:28:25,450 Ok. Evo sliku. 411 00:28:25,450 --> 00:28:31,490 Recimo da je grep ABC žice. Tamo je. 412 00:28:31,490 --> 00:28:37,930 Ako mi je činiti grep zddd, ja dobiti ništa. Ok. 413 00:28:37,930 --> 00:28:40,960 Tako da pronađe niz, to izvješća, ako ne pronađe, to ne prijavljuju. 414 00:28:40,960 --> 00:28:44,930 Ona izlazi bilo koju liniju koja ima taj niz na njega. 415 00:28:44,930 --> 00:28:49,080 Tu su sve vrste opcija ovdje koje možete pronaći u dokumentaciji. 416 00:28:49,080 --> 00:28:52,160 Evo jedan od načina kako to učiniti. 417 00:28:52,160 --> 00:29:03,290 Što je s tom jednom, alias grabc 'grep abc'? 418 00:29:03,290 --> 00:29:09,000 To će uključivati ​​jedan argument kada se definira alias. 419 00:29:09,000 --> 00:29:26,300 Dakle, ako sam to ovdje, sada, ako mi je činiti grabc, 420 00:29:26,300 --> 00:29:30,620 Sada alias uključuje više od jednostavnog naredbe. Ona također ima argument. 421 00:29:30,620 --> 00:29:32,190 Do sada se to radi. 422 00:29:32,190 --> 00:29:38,590 Imam još jednu naredbu ovdje, ovaj jedan, tako da oni koji su različiti nizovi tamo 423 00:29:38,590 --> 00:29:46,790 i pokazati da se to ne nalazi ništa tamo jer to ne odgovara. 424 00:29:46,790 --> 00:29:56,180 >> Što ako želim uključiti u definiciju alias datoteku da ću tražiti 425 00:29:56,180 --> 00:30:02,970 i ja želim dati kao argument pseudonimom gudački da tražim? 426 00:30:02,970 --> 00:30:08,040 Možda želite reći abc kao argument za moje alias, 427 00:30:08,040 --> 00:30:10,870 ali alias već određuje datoteku. 428 00:30:10,870 --> 00:30:15,710 A to je gdje ovaj izraz dolazi u. 429 00:30:20,430 --> 00:30:25,270 Obavijest ovdje imamo grep baš kao i prije. 430 00:30:25,270 --> 00:30:28,130 Imamo sliku ovdje, konce. 431 00:30:28,130 --> 00:30:35,610 \! ^, Nekako čudno izraz, pretpostavljam, ako niste vidjeli ovo prije. 432 00:30:35,610 --> 00:30:39,920 Uskličnik je dio povijesti mehanizma C-shell. 433 00:30:39,920 --> 00:30:45,220 To može sjetiti ranije naredbe, to može podsjetiti na one argumente naredbi i tako dalje. 434 00:30:46,760 --> 00:31:01,570 Mehanizam povijest se koristi kao dio prekrivanje. 435 00:31:01,570 --> 00:31:07,390 Ako ste odredili liniju nakon uskličnika, to će se odnositi na toj liniji na popisu povijesti, 436 00:31:07,390 --> 00:31:11,910 koje mi neće biti uzimajući u sada, budući da je cijeli drugi topic. 437 00:31:11,910 --> 00:31:16,280 Moguće je odrediti dio linije. 438 00:31:16,280 --> 00:31:22,950 Dakle! 03:02 će biti drugi argument zapovjedne broj 3. 439 00:31:22,950 --> 00:31:30,430 Znak za umetanje ovdje u ovom izrazu stoji prvi argument. 440 00:31:30,430 --> 00:31:34,410 Ako ne daju naznaku kojih zapovijedati govoriš, 441 00:31:34,410 --> 00:31:37,300 to se odnosi na neposredno prethodni zapovjedništvom, 442 00:31:37,300 --> 00:31:41,990 i znak za umetanje je simbol za prvi argument. 443 00:31:41,990 --> 00:31:46,820 Zato jer je to znak za umetanje, a ne broj, ne trebate koristiti debelo crijevo, 444 00:31:46,820 --> 00:31:52,660 tako! ^ znači prvi argument na prethodnu naredbu. 445 00:31:52,660 --> 00:31:55,020 Malo mješoviti ovdje. 446 00:31:55,020 --> 00:31:58,450 U ovom slučaju, kada se to koristiti kao definiciji alias, 447 00:31:58,450 --> 00:32:04,650 Referentna povijest upućuje na zapovijedi u kojima se koristi pseudonim. 448 00:32:04,650 --> 00:32:08,470 Tako to ide natrag 1 naredbu kao rad povijesti, 449 00:32:08,470 --> 00:32:11,810 ali kao pseudonim rada to se odnosi na naredbu u kojoj bi upisali, 450 00:32:11,810 --> 00:32:14,780 kažu, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Imamo citati ovdje u njemu. Što je za backslash? 452 00:32:20,240 --> 00:32:30,810 U ovom slučaju, kao i drugdje, ne želimo da se izvrši mehanizam povijesti 453 00:32:30,810 --> 00:32:33,680 pri definiranju pseudonim. 454 00:32:33,680 --> 00:32:37,900 Da nismo imali tu kosu crtu, ljuska će se povući u prvom argumentu 455 00:32:37,900 --> 00:32:41,870 naredbe pravo prije nego što ga je vodio ovu alias naredbe, što ne želimo. 456 00:32:41,870 --> 00:32:47,520 Želimo to će biti izgrađen u do alias naredbe za poziv u argumentu kasnije. 457 00:32:47,520 --> 00:32:53,550 Pojedinačni citati ne pobjegne uskličnik, pozivanje povijest. 458 00:32:53,550 --> 00:32:57,450 Možda znate izraz bijeg znači promijeniti značenje nečega. 459 00:32:57,450 --> 00:33:00,260 U ovom slučaju, to znači da se zaustavi nešto od toga da ima posebno značenje. 460 00:33:00,260 --> 00:33:03,030 Uskličnik je posebno značenje je povijest. 461 00:33:03,030 --> 00:33:05,790 Escape i to nema taj značaj. 462 00:33:05,790 --> 00:33:08,080 Izreke to ne rade, backslash radi. 463 00:33:08,080 --> 00:33:11,900 Tako smo zapravo koriste dvije razine bijega ovdje. 464 00:33:23,500 --> 00:33:29,620 Ja ću preseliti ovu naredbu u drugom prozoru, bez tipkanja 465 00:33:29,620 --> 00:33:35,210 pomoću ove editirati, koji vam svibanj pronaći korisne. 466 00:33:40,620 --> 00:33:42,460 Nešto drugo ovdje ću vam pokazati. 467 00:33:42,460 --> 00:33:46,730 Ako ste samo upišite pseudonim bez argumenata, to vam govori sve svoje argumente. 468 00:33:46,730 --> 00:33:48,640 To je hrpa lažnih imena već sam ovdje 469 00:33:48,640 --> 00:33:53,400 osim onih koje sam bio koristeći danas ovdje. 470 00:33:53,400 --> 00:34:00,220 Ali ako sam samo tip s imenom pseudonimom, to mi govori što to znači. 471 00:34:00,220 --> 00:34:03,390 Uočite da su citati otišli i kosih crta je nestala. 472 00:34:03,390 --> 00:34:08,620 Ovaj niz ovdje je rezultat toj definiciji alias, 473 00:34:08,620 --> 00:34:12,199 i sada je samo! ^ u njoj. 474 00:34:12,199 --> 00:34:19,150 To će izgledati u žice datoteka za bilo što. 475 00:34:19,150 --> 00:34:34,900 Dakle, ako mi je činiti grstrings_file konce, nisam mu dati ništa tražiti tamo, 476 00:34:34,900 --> 00:34:37,429 , ali to je izgleda u nizovima. 477 00:34:37,429 --> 00:34:42,330 To nije našao Riječ konce u žice datoteka, ali to ne pronađete abc. 478 00:34:42,330 --> 00:34:46,770 I to ne da se. 479 00:34:46,770 --> 00:34:52,330 Dakle ovdje dajemo argument da udari u definiciju pseudonimom, 480 00:34:52,330 --> 00:34:55,530 koji je umetnut u nju. 481 00:34:55,530 --> 00:34:58,540 To je mjesto gdje se ovaj izraz dolazi. 482 00:34:58,540 --> 00:35:00,240 Možete koristiti više od 1. 483 00:35:00,240 --> 00:35:03,170 Znak za umetanje je simbol za prvi argument. 484 00:35:03,170 --> 00:35:07,510 Ako ste htjeli koristiti drugi argument, što bi onda rekli: 2. 485 00:35:07,510 --> 00:35:11,250 Nema poseban simbol za drugi argument. 486 00:35:11,250 --> 00:35:14,790 I zato što ste koristeći brojčane oznake, te će morati koristiti debelo crijevo. 487 00:35:14,790 --> 00:35:17,220 Postoji, međutim, još jedan izbor ovdje. 488 00:35:17,220 --> 00:35:21,220 Dolar znak stoji za posljednji argument. 489 00:35:21,220 --> 00:35:23,320 I zato što je to simbol, možete izostaviti debelo crijevo. 490 00:35:23,320 --> 00:35:25,870 Tako da će to biti posljednji argument u popisu. 491 00:35:25,870 --> 00:35:27,900 A tu je i da je jedan. 492 00:35:27,900 --> 00:35:31,380 Zvjezdica znači sve, tako da je ovo potpuni popis argumenata, 493 00:35:31,380 --> 00:35:35,150 i opet, možete izostaviti debelo crijevo, jer to nije cifra. 494 00:35:36,970 --> 00:35:39,950 Nadam se da ste svi promatraju sve ovo. 495 00:35:39,950 --> 00:35:54,100 >> Mehanizam povijesti može vratiti na ranije linije u popisu povijesti. 496 00:35:54,100 --> 00:36:01,370 Možete to učiniti u definiciji alias. 497 00:36:01,370 --> 00:36:02,950 Nikada nisam vidio to učinio. 498 00:36:02,950 --> 00:36:05,840 To će za posljedicu imati čupanje ranije naredbe s popisa povijesti 499 00:36:05,840 --> 00:36:08,130 kada izvršiti alias, što bi moglo biti različitih naredbi 500 00:36:08,130 --> 00:36:11,240 ovisno o tome kada i gdje ćete ga izvršiti. 501 00:36:11,240 --> 00:36:14,020 Ubjedljivo možda želite izvući takvu referencu 502 00:36:14,020 --> 00:36:15,900 samo da znate što ranije zapovijed bila. 503 00:36:15,900 --> 00:36:17,280 Nikad nisam vidio ovo dogoditi. 504 00:36:17,280 --> 00:36:19,970 Pretpostavljam da je netko možda želite, ali to je vrlo malo vjerojatno. 505 00:36:19,970 --> 00:36:26,480 Postoji još jedna stvar ovdje. 506 00:36:26,480 --> 00:36:33,060 Ako koristite tu povijest tipa referencu, 507 00:36:33,060 --> 00:36:38,190 onda se koriste samo argumenti na koje postoji takva referenca. 508 00:36:38,190 --> 00:36:42,180 Ako imate definiciju pseudonim koji ne upotrebljava povijest tipa referencu, 509 00:36:42,180 --> 00:36:44,060 ako je to samo postaje početak zapovjedništvom 510 00:36:44,060 --> 00:36:46,520 a vi imate dodatnih argumenata, onda sve što tipkate nakon toga 511 00:36:46,520 --> 00:36:48,450 će biti dodana na naredbu. 512 00:36:48,450 --> 00:36:52,040 U ovom slučaju, samo sam dao primjer postoji, koristili smo prvi argument; 513 00:36:52,040 --> 00:36:54,610 nismo koristiti bilo koji drugi. 514 00:36:54,610 --> 00:36:57,960 Ako drugi argumenti su dati na naredbenog retka, ne bi se koristiti. 515 00:36:57,960 --> 00:37:04,630 Dakle, ako koristite referencu povijesti uopće, onda morate ga koristiti da biste dobili bilo koji argument. 516 00:37:04,630 --> 00:37:11,310 >> Tu je još jedna stvar ovdje samo želim napomenuti, djelomično tek usput, 517 00:37:11,310 --> 00:37:15,250 a to je da ta povijest mehanizam s uskličnikom 518 00:37:15,250 --> 00:37:18,010 seže u izvornom C-školjke. 519 00:37:18,010 --> 00:37:27,060 Tcsh predstavio povijest operacije 520 00:37:27,060 --> 00:37:30,910 koji koriste vrste naredbi i gudače iz redakcije, 521 00:37:30,910 --> 00:37:33,650 bilo Emacs ili vi. 522 00:37:33,650 --> 00:37:36,430 Moje osobno mišljenje je Emacs je puno lakše koristiti za tu namjenu 523 00:37:36,430 --> 00:37:39,390 čak i ako ste VI koristiti za redovite uređivanje. 524 00:37:39,390 --> 00:37:43,900 Postoje razne Emacs naredbe koje su sada prilagođene za povijest. 525 00:37:43,900 --> 00:37:46,410 Kontrola P dobiva prethodni redak u popisu povijesti. 526 00:37:46,410 --> 00:37:48,840 Još jedna kontrola P će dobiti onaj prije toga. 527 00:37:48,840 --> 00:37:50,540 Strelica prema gore radi istu stvar. 528 00:37:50,540 --> 00:37:54,190 Kontrola N dobiva sljedeću naredbu ako ste već pomicana vratiti neke načine. 529 00:37:54,190 --> 00:37:55,880 Strelica čini da je previše. 530 00:37:55,880 --> 00:38:00,480 Možete premjestiti s lijeva na desno sa strelicama i razne druge stvari. 531 00:38:00,480 --> 00:38:02,390 To se može koristiti od mehanizma povijesti 532 00:38:02,390 --> 00:38:05,070 puno lakše nego koristeći točku sintakse uzvika, 533 00:38:05,070 --> 00:38:07,930 ali vi ne bi koristili da u definiciji alias. 534 00:38:17,780 --> 00:38:20,020 Mi ćemo ići preko toga neki drugi put. 535 00:38:24,300 --> 00:38:25,810 >> Varijable. 536 00:38:26,880 --> 00:38:29,510 Znate li što su varijable u programskim jezicima. 537 00:38:29,510 --> 00:38:31,680 Školjke su ih također. 538 00:38:31,680 --> 00:38:37,350 C-shell koristi naredbu set dodijeliti varijabli, 539 00:38:37,350 --> 00:38:41,360 tako da se postavlja varijablu a na vrijednost b - 540 00:38:41,360 --> 00:38:46,390 kao što sam rekao, beskorisnu definiciju, ali ilustraciju kako se to koristi. 541 00:38:48,790 --> 00:38:52,410 Skup naredba će stvoriti varijablu, ako već ne postoji. 542 00:38:55,270 --> 00:39:02,490 Položajnu parametri za shell skripti može se smatrati varijabli, 543 00:39:02,490 --> 00:39:10,750 ali upotreba njih i pravila za njih su nešto drugačiji. 544 00:39:10,750 --> 00:39:14,320 Vi ne možete dodijeliti vrijednosti do $ 1 u tijeku skripte. 545 00:39:14,320 --> 00:39:18,340 Ti bi trebala definirati novu varijablu za tu svrhu, ako neki od vas htjeli. 546 00:39:23,000 --> 00:39:28,470 Upišite set bez argumenata, a vi dobiti popis svih trenutno definiranih varijabli na. 547 00:39:28,470 --> 00:39:34,220 I neka je doći do moje druge ljuske ovdje i vidjeti što smo dobili ako to učinimo. 548 00:39:34,220 --> 00:39:37,110 Vrlo dug popis postoji, zar ne? 549 00:39:37,110 --> 00:39:40,990 Pomaknite se malo. Pogledajte sve to. 550 00:39:40,990 --> 00:39:44,330 Neke od tih stvari su automatski definiran ljuske. 551 00:39:44,330 --> 00:39:49,320 Ljuska stvara varijablu i daje mu vrijednost. 552 00:39:49,320 --> 00:39:52,730 Neki od njih su definirani od strane ljuske, ali onda redefiniran od strane korisnika 553 00:39:52,730 --> 00:39:54,820 prema njegovim željama. 554 00:39:54,820 --> 00:39:59,110 A neki od njih su stvorene od strane korisnika, ovisno o tome što on radi taj dan. 555 00:39:59,110 --> 00:40:01,880 To je samo set bez argumenata. 556 00:40:06,920 --> 00:40:10,050 Tu je čudno obilježje ovdje ovu stvar. 557 00:40:10,050 --> 00:40:17,980 Tu moraju biti ili bez razmaka između znaka jednakosti i ime varijable 558 00:40:17,980 --> 00:40:23,700 a vrijednost ili mjesta s obje strane znaka jednakosti, 559 00:40:23,700 --> 00:40:28,940 kao u ovoj. 560 00:40:35,620 --> 00:40:41,340 To neće raditi, a to je zapravo vrijedi naredba 561 00:40:41,340 --> 00:40:43,390 , ali to ne može učiniti ono što namjeravate. 562 00:40:43,390 --> 00:40:50,070 To naredba će raditi, jer ako ste samo reći postaviti i imena varijabli 563 00:40:50,070 --> 00:40:54,890 s nema znaka jednakosti ili postaviti i ime varijable sa znakom jednakosti i bez vrijednosti, 564 00:40:54,890 --> 00:40:57,770 to će postaviti varijablu na null vrijednost. 565 00:40:57,770 --> 00:41:00,120 Dakle postaviti A = je važeća naredba. 566 00:41:00,120 --> 00:41:04,370 Skup naredba može definirati više od jednog varijablu na istoj liniji. 567 00:41:04,370 --> 00:41:11,240 Dakle, ova naredba ovdje ima učinak definiranja A i B na nulu vrijednosti. 568 00:41:11,240 --> 00:41:13,470 Vjerojatno nije ono što želite. 569 00:41:13,470 --> 00:41:17,940 Ova ovdje, što je ranije spomenuto, će dovesti do pogreške 570 00:41:17,940 --> 00:41:21,270 zato = b nije valjana izraza. 571 00:41:21,270 --> 00:41:23,680 Ime varijable ne može početi s znaka jednakosti. 572 00:41:26,760 --> 00:41:29,080 A tu su i ovi dalje stvari ovdje. 573 00:41:29,080 --> 00:41:36,820 Koloni su korišteni za odabir argumente iz povijesti linije, 574 00:41:36,820 --> 00:41:41,210 i oni se mogu koristiti - i nisam išla u prije - to mijenjati one stvari. 575 00:41:41,210 --> 00:41:44,480 Oni se također mogu koristiti za modificiranje ljuske varijabli. 576 00:41:44,480 --> 00:41:49,050 Ova ovdje, $, ima vrijednost. 577 00:41:49,050 --> 00:41:55,040 : R će poletjeti proširenje. 578 00:41:55,040 --> 00:41:57,200 Će proširenje biti ništa nakon točke, 579 00:41:57,200 --> 00:41:59,200 točku i ništa ga slijedi na kraju datoteke, 580 00:41:59,200 --> 00:42:03,230 samo na kraju liste nakon posljednjeg udarac. 581 00:42:03,230 --> 00:42:05,480 Tako sam ga ovdje. 582 00:42:05,480 --> 00:42:10,730 je to. To će pasti. O. 583 00:42:10,730 --> 00:42:16,510 Ako nema proširenja, samo pathnames nakon posljednjeg crtom, to neće imati nikakvog učinka. 584 00:42:16,510 --> 00:42:27,480 : h, da varijabla izraz, će poletjeti posljednji element popisu directory 585 00:42:27,480 --> 00:42:29,660 opet, tek nakon posljednjeg udarac. 586 00:42:29,660 --> 00:42:33,160 Dakle / / b / c postaje / / b, 587 00:42:33,160 --> 00:42:38,870 ali ovaj je promijenjena, jer je element nakon popisa je nula. 588 00:42:38,870 --> 00:42:43,070 Ovdje postoji nešto što također želim naglasiti. 589 00:42:43,070 --> 00:42:46,770 Ove kvalifikacijski ne traži za postojanje tih datoteka. 590 00:42:46,770 --> 00:42:48,910 Oni samo traže žice. 591 00:42:48,910 --> 00:42:54,520 Oni su namijenjeni za manipulaciju imena datoteka, pathnames, 592 00:42:54,520 --> 00:42:57,520 , ali ih se može koristiti na bilo kojem nizu, čak i ako to nije naziv datoteke. 593 00:42:57,520 --> 00:42:58,920 A oni ne traže postojanja, 594 00:42:58,920 --> 00:43:03,550 pa ako ne postoji takva datoteka, / / ​​b / c, to će i dalje raditi. 595 00:43:03,550 --> 00:43:06,930 Bilo je to od ikakve koristi je drugo pitanje, ali to će i dalje raditi. 596 00:43:06,930 --> 00:43:12,850 Varijable su različiti u The Bourne školjke. Mi ćemo govoriti kasnije. 597 00:43:12,850 --> 00:43:18,240 Dolar znak može pobjegao baš kao i uskličnika i zvjezdicu. 598 00:43:18,240 --> 00:43:21,760 Dolar znak može pobjegao s crticom ili jednostrukim navodnicima. 599 00:43:21,760 --> 00:43:24,790 Navodnicima imaju čudan učinak u svim školjkama 600 00:43:24,790 --> 00:43:28,690 prisiljavanja ocjenu dolar potpisati varijablu izraz. 601 00:43:28,690 --> 00:43:31,960 Dakle, ako je se spasio jedan način, a dvostruke navodnike može imati učinak 602 00:43:31,960 --> 00:43:34,380 uzrokuje da se ocjenjuju svejedno. 603 00:43:34,380 --> 00:43:37,090 To je malo zbunjujuće. 604 00:43:37,090 --> 00:43:43,740 Ako postoji više razina bijega, kao što jednostrukim navodnicima unutar dvostrukih navodnika 605 00:43:43,740 --> 00:43:46,770 ili dvostruke navodnike unutar jednog citata, trebali testirati da se vidi što će se dogoditi 606 00:43:46,770 --> 00:43:49,520 varijabli ako koristite jedan. 607 00:43:49,520 --> 00:43:53,410 Ta 2 situacije - dvaput unutar jedinstvenog, jednog unutrašnjost double - 608 00:43:53,410 --> 00:43:55,980 ne mora nužno dati isti rezultat. 609 00:44:02,520 --> 00:44:05,600 Varijable okruženja, dužan C-shell varijabli. 610 00:44:05,600 --> 00:44:08,340 Okoliš varijable su varijable u C-shell, 611 00:44:08,340 --> 00:44:11,250 i oni su također varijabli u drugim školjkama previše. 612 00:44:11,250 --> 00:44:15,230 U C-ljuske, koje su različita načina. 613 00:44:15,230 --> 00:44:18,130 U stvari je to govorim pred oko shell varijabli. 614 00:44:18,130 --> 00:44:21,300 Okoliš varijable su različita skup varijabli 615 00:44:21,300 --> 00:44:28,650 s izuzetkom nekoliko varijabli koje nazivamo vezane varijable, 616 00:44:28,650 --> 00:44:30,640 koji su vrlo važni, a mi ćemo se na one kasnije. 617 00:44:30,640 --> 00:44:34,950 Okoliš varijable automatski se prenose 618 00:44:34,950 --> 00:44:41,800 do školjke ili naredbe koje se pokreću iz ljuske. 619 00:44:41,800 --> 00:44:46,220 Druge stvari nisu. Ljuska varijabli, nadimci nisu. Okoliš varijable. 620 00:44:46,220 --> 00:44:48,630 Zato smo ih nazvati varijable okruženja, 621 00:44:48,630 --> 00:44:55,030 Ideja je da okolina viri samo svoj trenutni ljuske. 622 00:44:55,030 --> 00:45:00,510 Oni se mogu koristiti za definiranje stvari za naredbe. 623 00:45:00,510 --> 00:45:05,470 Evo primjera. PRINTER, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Obje od tih varijabli može definirati pisač koji će naredba koristite za ispis stvari. 625 00:45:12,270 --> 00:45:16,500 Ako imate više pisača okolo, možda želite staviti onaj koji vam se sviđa. 626 00:45:16,500 --> 00:45:21,320 Razlog imamo 2 varijable je da različite skupine naredbi su pisani 627 00:45:21,320 --> 00:45:23,870 Korištenjem tih različitih varijabli. 628 00:45:23,870 --> 00:45:25,910 Možda im dati različite vrijednosti. 629 00:45:25,910 --> 00:45:28,860 Najvjerojatnije ćete im dati i istu vrijednost. 630 00:45:28,860 --> 00:45:35,840 Te stvari rade, jer su naredbe koje ne ispis 631 00:45:35,840 --> 00:45:40,740 su programirani ispitati vrijednosti tih varijabli. 632 00:45:42,200 --> 00:45:46,150 Ako program ne napisani su na taj način, ako su napisani na nešto drugo, 633 00:45:46,150 --> 00:45:48,280 varijabla će biti nevažno. 634 00:45:48,280 --> 00:45:52,530 Dakle, operativni sustav nije u potrazi za tim varijablama 635 00:45:52,530 --> 00:45:55,210 svaki put kada se odnose na pisač. 636 00:45:55,210 --> 00:45:59,090 Naredba da se tisak je u potrazi za tim varijablama, ako je programiran na taj način. 637 00:46:11,030 --> 00:46:15,240 Ove varijable često se definira u svojim inicijalizacije datoteke 638 00:46:15,240 --> 00:46:19,440 ali ne nužno. 639 00:46:19,440 --> 00:46:21,050 Možete ih definirati na naredbenog retka. 640 00:46:21,050 --> 00:46:24,090 Oni mogu biti definirani u naredbi. 641 00:46:24,090 --> 00:46:28,740 Naredba da se radi nešto može imati svoj vlastiti izbor varijabli - 642 00:46:28,740 --> 00:46:32,390 varijabli koje su jedinstvene za određeni programski paket, za primjer. 643 00:46:32,390 --> 00:46:36,740 Oni će se definirati kada pokrenete taj paket. 644 00:46:39,690 --> 00:46:42,680 Kako su ove varijable prošao na podstranici školjke? 645 00:46:42,680 --> 00:46:48,210 Kad sub-ljuska je napisano, to ne piše na tom području. 646 00:46:48,210 --> 00:46:53,260 Područje pod-školjku koja je posvećena varijabli okoline 647 00:46:53,260 --> 00:46:56,450 nije napisao pod-shell, to je napisao kopiranje. 648 00:46:56,450 --> 00:47:00,530 Kada pokrenete običnu naredbu, kao što su ove naredbe za ispis ili što god, 649 00:47:00,530 --> 00:47:03,840 Oni krenuti stvaranjem novog školjku. 650 00:47:03,840 --> 00:47:06,190 Shell stvara ljusku i onda prepisuje dio nje 651 00:47:06,190 --> 00:47:08,800 s naredbom da ste trčanje, što je malo zbunjujuće, 652 00:47:08,800 --> 00:47:10,740 ali to je kako ove naredbe dobiti varijable okruženja 653 00:47:10,740 --> 00:47:14,890 da onda se odnose na kasnije. 654 00:47:21,920 --> 00:47:28,010 Naredba ovdje za definiranje varijable setenv. 655 00:47:28,010 --> 00:47:36,470 To je, kako se to definirati. To je tri elementa: setenv, varijabilni, vrijednost. 656 00:47:36,470 --> 00:47:44,710 Ako ste upravo ne setenv bez argumenata, što ste dobili? 657 00:47:47,220 --> 00:47:48,810 Popis svih tih varijabli. 658 00:47:48,810 --> 00:47:53,190 Opet, to je lijepa duga lista, u ovom slučaju, kao iu ostalima, 659 00:47:53,190 --> 00:47:57,320 ove varijable definirane su u velikoj mjeri od moje operacije prijava od strane same ljuske 660 00:47:57,320 --> 00:47:59,740 a ne bilo što sam učinio. 661 00:47:59,740 --> 00:48:03,580 Tu je još jedna naredba ovdje, printenv. 662 00:48:07,520 --> 00:48:10,340 To je također ispisuje na okoliš. 663 00:48:10,340 --> 00:48:15,240 Obavijest ovu posljednju stvar ovdje, urednik = vi. 664 00:48:15,240 --> 00:48:21,120 To govori da ako koristim nešto što poziva urednik 665 00:48:21,120 --> 00:48:25,530 i ja se ne navodi urednik i to mi omogućuje izbor, možda mi vi. 666 00:48:25,530 --> 00:48:37,280 Što ako mi je činiti printenv urednik? To mi govori što je to. 667 00:48:37,280 --> 00:48:41,340 Neposredno prije, da, bilo je promjenjiva, MANJE. 668 00:48:41,340 --> 00:48:46,040 To su vaši zadane opcije kad sam pokrenuti manje naredbu, 669 00:48:46,040 --> 00:48:49,360 koji prikazuje datoteke. 670 00:48:49,360 --> 00:48:55,910 Dakle, ako sam to učiniti, printenv može uzeti jedan argument ili 0 argumente, 671 00:48:55,910 --> 00:48:58,070 Ne više od 1. 672 00:49:01,800 --> 00:49:05,690 Postoje i druge naredbe također, ali nećemo ulaziti u sve to danas. 673 00:49:05,690 --> 00:49:11,010 Zapamtite da su modifikatori za shell varijable kao što su: h, 674 00:49:11,010 --> 00:49:14,350 koji će pasti zadnji element u ime putanje, 675 00:49:14,350 --> 00:49:17,950 ili: r, koji će pasti proširenje. 676 00:49:17,950 --> 00:49:23,110 Oni sada se primjenjuju na varijable okoliša previše. Oni nisu navikli. 677 00:49:23,110 --> 00:49:24,960 Nekada je to bilo da se ne može mijenjati. Sada oni mogu biti. 678 00:49:24,960 --> 00:49:29,190 To je jedan od napredaka s razvojem školjke tijekom godina. 679 00:49:29,190 --> 00:49:35,620 Ja sam rekao da su granate, kao dio okruženja 680 00:49:35,620 --> 00:49:43,040 i ljuska varijable u C-shell su, uz neke iznimke, različite skupove. 681 00:49:43,040 --> 00:49:46,790 Možete uspostaviti varijablu okruženja i varijablu ljuske s istim imenom. 682 00:49:46,790 --> 00:49:49,220 Oni će biti različitih varijabli, oni mogu imati različite vrijednosti. 683 00:49:49,220 --> 00:49:53,090 Promjena vrijednost one neće promijeniti vrijednost drugoga. 684 00:49:53,090 --> 00:49:58,070 Te varijable su svi ocijenili s znak za dolar - $, $ god. 685 00:49:58,070 --> 00:50:02,340 Pa što ako su to? Znate li koje ste dobili? 686 00:50:02,340 --> 00:50:04,520 Prilikom testiranja sam dobio varijablu ljuske, 687 00:50:04,520 --> 00:50:07,240 ali to nije dokumentirano i ne možete se osloniti na to. 688 00:50:07,240 --> 00:50:10,270 Pa ja vas pitam, je stvaranje ljuske i varijable okruženja 689 00:50:10,270 --> 00:50:13,490 s istim imenima dobra ideja? No redu. 690 00:50:13,490 --> 00:50:17,460 Ono što su oni glavni iznimke koje varijable okoliša i školjaka 691 00:50:17,460 --> 00:50:19,860 su povezani jedni s drugima? 692 00:50:19,860 --> 00:50:27,470 Postoje oni 4. 693 00:50:32,030 --> 00:50:35,510 Slovo varijabla TERM okoliš, 694 00:50:35,510 --> 00:50:41,540 shell varijablu pojam u malim slovima, tipa emulaciju terminala. 695 00:50:41,540 --> 00:50:47,430 Samo ću ići ovdje, a ja ću učiniti odjek, korisnu naredbu ovdje, 696 00:50:47,430 --> 00:50:52,560 $ $ ROK pojam. I tu. 697 00:50:52,560 --> 00:51:00,570 xterm je tip terminala za Windows prikazuje u X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-boja je varijacija koja omogućuje da različite boje. 699 00:51:04,330 --> 00:51:06,580 Zašto smo definirali to? Što je to dobro za? 700 00:51:06,580 --> 00:51:09,740 Naredbe da se preuredi se prozor kao urednik 701 00:51:09,740 --> 00:51:13,680 poslati određene sekvence, zove bijeg sekvence, 702 00:51:13,680 --> 00:51:18,160 na terminal ili prozor da ga preurediti i tako dalje. 703 00:51:18,160 --> 00:51:20,990 Ti nizovi su različiti za različite vrste terminala. 704 00:51:20,990 --> 00:51:23,100 To je one koji koriste govori. 705 00:51:23,100 --> 00:51:25,900 Ponekad postoje problemi tamo. 706 00:51:25,900 --> 00:51:28,600 Možda želite da se to promijeni. 707 00:51:28,600 --> 00:51:30,780 Ako se stvari ne rade, ponekad tipa terminala postavljena u krivu, 708 00:51:30,780 --> 00:51:36,440 možda ćete biti u mogućnosti to popraviti redefiniranje pojma varijablu. 709 00:51:36,440 --> 00:51:43,420 U tim slučajevima, mijenjanje jedne varijable, varijablu okruženja ili varijablu ljuske, 710 00:51:43,420 --> 00:51:45,970 treba mijenjati onaj drugi. 711 00:51:45,970 --> 00:51:50,970 Otkrio sam kroz iskustvo koje mijenja termin u slovima 712 00:51:50,970 --> 00:51:54,060 ne uvijek promijeniti ljuske varijablu pojam u malim slovima. 713 00:51:54,060 --> 00:51:55,550 To je bug. 714 00:51:55,550 --> 00:51:59,400 Ne znam je li to uvijek istina. Većinu vremena to nije istina, ali to može biti. 715 00:51:59,400 --> 00:52:02,490 Dakle, ako ste napraviti promjenu, samo to provjeriti. 716 00:52:02,490 --> 00:52:05,830 Ne događa se često da trebate promijeniti tu vrijednost, ali s vremena na vrijeme što činite. 717 00:52:05,830 --> 00:52:08,260 Okoliš promjenjiva KORISNIKA. 718 00:52:08,260 --> 00:52:12,070 Opet, varijabla okruženja u velikim slovima, shell varijable u malim slovima. 719 00:52:12,070 --> 00:52:13,710 To je vaše korisničko ime. 720 00:52:13,710 --> 00:52:16,730 To je samo pod iznimnim okolnostima 721 00:52:16,730 --> 00:52:18,420 da bi željeli da se to promijeni. 722 00:52:18,420 --> 00:52:22,350 Ako vaše korisničko ime je netko drugi, to može baciti sve i svašta off. 723 00:52:22,350 --> 00:52:26,040 Početna imenik, korisnik home direktorij. 724 00:52:26,040 --> 00:52:28,060 Opet, ne bi htio da se to promijeni. 725 00:52:28,060 --> 00:52:32,260 Obavijest je u svim tim slučajevima i one koji Spremamo se pokriti, varijablu put, 726 00:52:32,260 --> 00:52:37,070 okoliš varijabla je velikim slovima, a vezani ljuska varijabla u malim slovima. 727 00:52:37,070 --> 00:52:39,240 Ako promijenite jedan, što bi trebalo promijeniti druge. 728 00:52:39,240 --> 00:52:45,960 Ovakav vezanje ne može se utvrditi, kao što se ne može vezati dvije varijable, 729 00:52:45,960 --> 00:52:50,570 osim njih 4, i obvezujuće u tim varijablama ne može poništiti, 730 00:52:50,570 --> 00:52:52,090 što ih se ne može odvojiti. 731 00:52:52,090 --> 00:52:55,820 Tako su ti 4 para varijabli su dužni. 732 00:52:55,820 --> 00:52:59,020 Oni će uvijek biti. Nijedan drugi će biti. 733 00:52:59,020 --> 00:53:05,720 Osim toga, to će biti moguće izraditi varijable s istim imenima 734 00:53:05,720 --> 00:53:07,780 od suprotne vrste. 735 00:53:07,780 --> 00:53:11,600 Ti bi mogao napraviti shell varijablu pojam u malim slovima 736 00:53:11,600 --> 00:53:14,990 ili okoliš varijabla TERM velikim slovima. 737 00:53:14,990 --> 00:53:19,040 One varijable će biti neovisan od tih uparenih varijabli 738 00:53:19,040 --> 00:53:20,780 i oni će biti neovisne jedna o drugoj. 739 00:53:20,780 --> 00:53:23,780 Ja ne mogu zamisliti zašto bi to učiniti ako ne želite da se zbuniti ljude. 740 00:53:24,600 --> 00:53:29,730 Ova ovdje, promjenjiva put, to je jako važno. 741 00:53:29,730 --> 00:53:35,550 Druga stvar je da ne može biti slučajeva 742 00:53:35,550 --> 00:53:40,430 varijabli u paru sa sličnim nazivima koji se ne vežu jedni za druge. 743 00:53:40,430 --> 00:53:45,000 Tu može biti varijable, školjke i školjaka, u malih i velikih slova. 744 00:53:45,000 --> 00:53:48,300 Na temelju tog imena, ne znam je li ta varijabla promjenjiva školjka 745 00:53:48,300 --> 00:53:51,580 ili varijabla okruženja, a oni nisu dužni da jedni druge. 746 00:53:51,580 --> 00:53:55,300 Dakle, ta vrsta uparenih imena ne znače vezane varijable. 747 00:53:55,300 --> 00:53:58,830 Varijabla put, koji sam pokazivao prije, 748 00:53:58,830 --> 00:54:01,880 je popis pathnames u kojima ljuska traži naredbi. 749 00:54:01,880 --> 00:54:12,320 Idemo u ovaj prozor ovdje, a mi ćemo učiniti echo $ PATH, slova - 750 00:54:12,320 --> 00:54:20,230 okoliš varijabla - echo $ putu, mala slova - shell varijablu. 751 00:54:20,230 --> 00:54:24,980 Uočite da popis direktorije je ista. To su dužni. 752 00:54:24,980 --> 00:54:26,590 Promijenite jednu, promijenite druge. 753 00:54:26,590 --> 00:54:32,970 U varijablu okruženja elementi su odvojeni dvotočke. Uočite da. 754 00:54:32,970 --> 00:54:35,130 Ljuska varijable su odvojeni razmacima. 755 00:54:35,130 --> 00:54:38,760 Ova varijabla okruženja je jedan niz. 756 00:54:38,760 --> 00:54:41,480 Promjenjiva školjka je niz. 757 00:54:41,480 --> 00:54:43,490 Bourne shell nisu imali polja. 758 00:54:43,490 --> 00:54:46,600 Bash radi, ali to je već fiksni dio ljuske. 759 00:54:46,600 --> 00:54:48,660 To je jedan string, a ne polje. 760 00:54:48,660 --> 00:54:50,420 C-shell uvijek imao polja. 761 00:54:50,420 --> 00:54:52,630 Nizovi su puno lakše raditi. 762 00:54:52,630 --> 00:54:54,400 Možete se odnose na dijelove. 763 00:54:54,400 --> 00:55:02,350 Dakle echo $ put [1] i ja bi / usr / bin, prvi element. 764 00:55:02,350 --> 00:55:09,950 Opet, ne zaboravite dolar znak označava zadnji element na popisu povijesti. 765 00:55:09,950 --> 00:55:16,850 Što se događa tamo? On je pokušao pronaći znak dolara kao varijabilni simbol. 766 00:55:16,850 --> 00:55:20,850 Ja od toga pobjeći. Ups. To ne bi bilo da je. 767 00:55:20,850 --> 00:55:23,690 Neke od tih stvari ne rade tako dobro. 768 00:55:23,690 --> 00:55:28,140 Možda ćemo samo ostaviti da se. 769 00:55:28,140 --> 00:55:36,980 Zvjezdica se odnosi na cijelu stvar, ali to je ono što ste dobili, ako ne odredite element. 770 00:55:36,980 --> 00:55:46,170 Drugi način na koji varijable niz se može manipulirati, 771 00:55:46,170 --> 00:55:49,500 broj elemenata koji postoje, od 7 elemenata. 772 00:55:49,500 --> 00:55:53,410 Ovdje smo stavili funta znak prije imena varijabli. 773 00:55:53,410 --> 00:55:58,280 Evo još jednog. Stavite upitnik postoji. 774 00:55:58,280 --> 00:56:03,170 To je logička vrijednost. To pokazuje da je varijabla postoji. 775 00:56:03,170 --> 00:56:05,160 To je još jedan od načina rada s varijablama. 776 00:56:05,160 --> 00:56:06,660 To je, usput, ne mora biti varijabla. 777 00:56:06,660 --> 00:56:08,210 To bi mogla biti bilo koja varijanta. 778 00:56:08,210 --> 00:56:11,840 A ako mi je činiti, ne postoji takva promjenjiva i ja dobiti 0.. 779 00:56:11,840 --> 00:56:14,990 Još jedna mala stvar tamo o promjenjivom ocjenama. 780 00:56:23,670 --> 00:56:32,950 Povratak na ovom jednom ovdje, ako iz nekog razloga želio raditi s ovim 781 00:56:32,950 --> 00:56:37,990 umjesto da rade s nizom, promjenjiva školjka, 782 00:56:37,990 --> 00:56:41,470 postoje naredbe koje možete odvojiti te stvari temelji na debelo crijevo. 783 00:56:41,470 --> 00:56:44,080 U stvari, ako idete da se to u Bash ljuska eventualno, 784 00:56:44,080 --> 00:56:47,110 nekakva pisma, to bi bilo vjerojatno kako će to učiniti. 785 00:56:47,110 --> 00:56:50,350 No, u C-shell to je puno lakše koristiti niz. 786 00:56:50,350 --> 00:56:58,250 U Bourne ljuske, varijable se dodjeljuje od strane jednog izraza kao što je ovaj, 787 00:56:58,250 --> 00:57:01,760 kao i način na koji bi mogli dodijeliti varijablu u programskom jeziku, 788 00:57:01,760 --> 00:57:05,110 i tu ne smije biti mjesta. 789 00:57:05,110 --> 00:57:09,110 To je potrebno da to bude samo jedan niz. 790 00:57:09,110 --> 00:57:14,980 U Bourne tipa školjke, sve varijable su ljuska varijable. 791 00:57:14,980 --> 00:57:19,250 Varijable su podskup ljuske varijabli. 792 00:57:19,250 --> 00:57:24,060 Oni se razlikuju od varijable ne okoliša izvozom. 793 00:57:24,060 --> 00:57:28,860 Naredba za to je izvoz, kao i izvozne pisač. 794 00:57:28,860 --> 00:57:34,930 Ako bismo definirati takvu varijablu, 795 00:57:34,930 --> 00:57:38,480 ako smo htjeli tisak naredbu da ga pronaći, to bi trebala biti varijabla okruženja, 796 00:57:38,480 --> 00:57:40,730 a to je kako smo se jedan napraviti. 797 00:57:40,730 --> 00:57:42,090 Ovdje ima nešto malo zbunjujuće. 798 00:57:42,090 --> 00:57:50,430 Ovaj izraz, izvoz u okoliš, a proizlazi iz ovoga Bourne Shell konceptu, 799 00:57:50,430 --> 00:57:54,520 i još da se izraz koristi u opisu C-ljuske, 800 00:57:54,520 --> 00:57:57,920 gdje ne postoji takva naredba kao izvoz. 801 00:57:57,920 --> 00:58:06,200 Ako ste upravo rekli izvoz po sebi, dobivate popis izvoze - 802 00:58:06,200 --> 00:58:10,620 Dakle, ako sam samo to izvesti ovdje, ne postoji takva stvar. 803 00:58:13,620 --> 00:58:15,200 U redu, tu smo. 804 00:58:15,200 --> 00:58:17,010 Te stvari, usput, također definirani ljuske. 805 00:58:17,010 --> 00:58:19,400 Nisam definirati bilo koji od njih po sebi. 806 00:58:19,400 --> 00:58:23,550 Ljuska radi sve i svašta po sebi. 807 00:58:23,550 --> 00:58:26,650 To bi trebalo napraviti stvari automatski. 808 00:58:30,240 --> 00:58:36,880 U Bash ili Korn ljuske, možete pokrenuti naredbu kao što je ovaj, 809 00:58:36,880 --> 00:58:42,000 koji će i dati varijabla vrijednost i izvoziti ga u 1 zapovjedništvom. 810 00:58:42,000 --> 00:58:46,150 U Bourne ljuske moraju biti odvojene naredbe poput izvoz. 811 00:58:46,150 --> 00:58:48,410 Ovdje je još jedan aspekt koji je zbunjujuće. 812 00:58:48,410 --> 00:58:52,220 Skup naredba u C-shell definira varijable 813 00:58:52,220 --> 00:58:55,550 i bez argumenata govori što vrijednosti varijablama 'su. 814 00:58:55,550 --> 00:59:01,140 Na bash ljuska, set naredba bez argumenata radi istu stvar, 815 00:59:01,140 --> 00:59:03,580 ali s argumentima da radi nešto sasvim drugo. 816 00:59:03,580 --> 00:59:06,200 Dakle, to su razni argumenti ovdje. 817 00:59:06,200 --> 00:59:10,460 Neki od njih su varijable okruženja, neke od njih su ljuska varijable. 818 00:59:10,460 --> 00:59:13,200 Svi oni su ljuska varijable stvarno. Neki od onih koji su varijable okruženja. 819 00:59:15,690 --> 00:59:23,920 Set naredbe s argumentima može se koristiti za rad 820 00:59:23,920 --> 00:59:28,220 na pozicijske parametara za skriptu, 821 00:59:28,220 --> 00:59:33,910 koji je način dobivanja ih sve odjednom. 822 00:59:33,910 --> 00:59:36,150 Mi zapravo ne može ići u tu danas. 823 00:59:36,150 --> 00:59:39,580 Također se može upotrijebiti za promjenu ponašanja ljuske. 824 00:59:39,580 --> 00:59:46,700 Osobito u Bash postoje varijable koje će odrediti koliko je granata ponaša. 825 00:59:46,700 --> 00:59:51,310 Tada je također upravo to jedna naredba da ste mogli vidjeti, ova naredba. 826 00:59:51,310 --> 00:59:59,050 Slovima slijedi varijabli i promjenjive vrste se koriste u Korn i bash školjke. 827 00:59:59,050 --> 01:00:04,970 Nije obavezno, ali se može koristiti za ograničavanje vrijednosti varijabli, 828 01:00:04,970 --> 01:00:08,400 što može biti korisno za sprečavanje pogrešaka, a to je prilično česta. 829 01:00:08,400 --> 01:00:11,640 Dakle, ja sam samo spomenuti da se u slučaju da ga vidim negdje. 830 01:00:17,290 --> 01:00:19,160 U kojoj zapovijed. 831 01:00:19,160 --> 01:00:22,490 Sjećam se da sam spomenuo ranije, gdje naredbu u C-shell, 832 01:00:22,490 --> 01:00:28,750 što vam mogu reći lokaciju zapovjedne ime putanje. 833 01:00:28,750 --> 01:00:32,580 Ovdje je naredba za zamjenu. 834 01:00:32,580 --> 01:00:41,900 Trebali biste pronaći na tipkovnici negdje znakova koji izgleda ovako. 835 01:00:41,900 --> 01:00:44,910 Mjesto na tipkovnici će se mijenjati. 836 01:00:44,910 --> 01:00:47,050 Mi smo ga zvali backquote. Riječ je o veličini citat. 837 01:00:47,050 --> 01:00:48,720 To ide od gornjeg lijevog u donji desni. 838 01:00:48,720 --> 01:00:52,690 Evo na mom Mac tipkovnica je u gornjem lijevom kutu. 839 01:00:52,690 --> 01:00:58,150 Taj lik se može koristiti za izvršavanje naredbe unutar naredbe. 840 01:00:58,150 --> 01:01:03,400 Ako imate izraz unutar backquotes, 841 01:01:03,400 --> 01:01:07,080 taj izraz je naredba, to je trčanje. 842 01:01:07,080 --> 01:01:09,010 Izlaz iz tog naloga 843 01:01:09,010 --> 01:01:11,980 zatim zamijeniti za cijelu backquote izražavanja 844 01:01:11,980 --> 01:01:16,110 unutra duže naredbe koje onda trči s tog izlaza 845 01:01:16,110 --> 01:01:22,010 kao dio svog niz argumenata i tako dalje. 846 01:01:22,010 --> 01:01:28,640 Ovdje je naredba koja koristi to. 847 01:01:28,640 --> 01:01:32,340 Idemo pokazati rad ovdje. 848 01:01:44,980 --> 01:01:49,090 Idemo gore, izvadite backquotes. 849 01:01:49,090 --> 01:01:54,410 Kontrola me dobiva na početku skladu s Emacs uređivanje sintakse. 850 01:01:54,410 --> 01:02:00,380 Do sada pathnames je ono gdje se radi, 851 01:02:00,380 --> 01:02:05,040 ali kad sam to učiniti kao što je ovaj, to onda čepovi na tom popisu pathnames 852 01:02:05,040 --> 01:02:08,750 umjesto cijelog ovog izraza backquote i radi ls-l na njima. 853 01:02:08,750 --> 01:02:11,120 Vrsta zgodan, ha? 854 01:02:11,120 --> 01:02:14,860 Dakle, to je jedan uredan stvar. To je kako backquotes raditi. 855 01:02:14,860 --> 01:02:17,560 Sada idemo dolje malo dalje. 856 01:02:17,560 --> 01:02:22,050 To su nadimci. Ja sam zapravo koristiti. 857 01:02:22,050 --> 01:02:26,410 Ja ću pokušati dobiti ovo u s 1 editiran. 858 01:02:34,900 --> 01:02:36,900 Ok. 859 01:02:36,900 --> 01:02:39,630 Sada ćemo vidjeti kako su ti pojmovi izašao. 860 01:02:39,630 --> 01:02:44,930 Pseudonim LWH mi reći kako se to definira. 861 01:02:44,930 --> 01:02:51,210 Obavijest da je samo to, nego su vanjski citati skinuta 862 01:02:51,210 --> 01:02:53,750 i uskličnik se skida. 863 01:02:53,750 --> 01:02:58,940 ! *, Potpun popis svih argumenata. 864 01:02:58,940 --> 01:03:03,580 U definiciji alias će se primjenjivati ​​tamo gdje sam koristiti. 865 01:03:03,580 --> 01:03:10,620 LWH KSH bash. Ok. 866 01:03:10,620 --> 01:03:13,960 Pogledajte kako se to radi? To mi sprema neko tipkanje. 867 01:03:13,960 --> 01:03:16,440 Idemo se malo samo spomenuti nešto drugo ovdje. 868 01:03:19,150 --> 01:03:23,120 Obavijest ovdje tih različitih školjki. Trebao sam to spomenuo prije. 869 01:03:23,120 --> 01:03:36,060 Csh ima dva ovamo i tako se / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Mogli bismo uspostaviti i na druge načine da su to zapravo ista datoteka. 871 01:03:39,870 --> 01:03:43,150 Sjetite se to govorim, ako upišete št ste dobili tekmu. 872 01:03:43,150 --> 01:03:47,390 Upišite to i dobijete ovo. 873 01:03:47,390 --> 01:03:51,730 No, one nisu povezane. Oni imaju jednu one tamo. 874 01:03:51,730 --> 01:03:54,910 I to nije vrsta datoteku koja se može nazvati još jedan. 875 01:03:54,910 --> 01:03:59,460 Dakle, one su odvojene datoteke, one C-shell su isti file. 876 01:03:59,460 --> 01:04:03,640 Ovdje natrag dolje, drugi ovdje, to pseudonim 877 01:04:03,640 --> 01:04:09,090 umu da vodi ovu naredbu, datoteku. 878 01:04:09,090 --> 01:04:13,810 To alias radi toga. Podaci govori vrstu datoteke. 879 01:04:13,810 --> 01:04:20,330 Dakle fwh KSH bash. Ok. 880 01:04:20,330 --> 01:04:23,230 To Izlaz naredbe datoteke. 881 01:04:23,230 --> 01:04:24,630 Ja ne znam da li znate što to znači ovdje, 882 01:04:24,630 --> 01:04:26,750 Mach-O univerzalna binarna s 2 arhitekture. 883 01:04:26,750 --> 01:04:30,470 Postoje dva moguća načina procesor na Mac, 884 01:04:30,470 --> 01:04:34,780 i neki programi su pisani da bi mogli izvoditi s obje, 885 01:04:34,780 --> 01:04:37,950 i naredba datoteka može odrediti da, pa to je ono što to znači. 886 01:04:37,950 --> 01:04:40,660 Oba ova datoteka napisani su na taj način. 887 01:04:40,660 --> 01:04:43,760 Tako ćemo vidjeti kako alias radi, vidimo kako backquote radi, 888 01:04:43,760 --> 01:04:48,640 vidimo kako se u tom formatu li ili datoteka radi. 889 01:04:52,050 --> 01:04:57,000 To ne bi mogli raditi. Pokušajte "gdje gdje" i "LWH gdje". Dobro, idemo pokušati. 890 01:04:57,000 --> 01:05:01,040 gdje gdje. 891 01:05:01,040 --> 01:05:03,500 gdje je ljuska ugrađeni. 892 01:05:03,500 --> 01:05:06,970 Sjeti se ranije pokazali smo da bash nisu imali gdje. 893 01:05:06,970 --> 01:05:10,080 Ako ste tip kojem u Bash ljuska, te dobiti poruku o pogrešci. 894 01:05:10,080 --> 01:05:12,540 To je samo dio ljuske umjesto da bude zasebna naredba. 895 01:05:12,540 --> 01:05:20,000 Što će se dogoditi ako sam tip LWH potrazi za gdje? Pogledajte što se događa tamo. 896 01:05:20,000 --> 01:05:22,850 Ran gdje, gdje je dobio ovaj izlaz, a zatim pokušao pobjeći ls 897 01:05:22,850 --> 01:05:25,600 kao l na kojem je ljuska ugrađeni. 898 01:05:25,600 --> 01:05:28,790 gdje je tu, ali one druge ne postoje. 899 01:05:28,790 --> 01:05:32,090 Nitko od njih ne postoji, zapravo. 900 01:05:32,090 --> 01:05:35,560 Tako da ne uvijek rade, a također pokazuje kako neke stvari 901 01:05:35,560 --> 01:05:39,580 ne učiniti baš ono što ste možda mislili. 902 01:05:40,930 --> 01:05:43,010 Idemo dolje malo dalje ovdje. 903 01:05:44,890 --> 01:05:54,760 Ovo ovdje je u Bash. To je i naredba zamjena poput backquote. 904 01:05:54,760 --> 01:06:05,280 No, za razliku od backquote, koristi ovu varijablu stil. 905 01:06:05,280 --> 01:06:09,860 Postoji niz izraza koji počinju s znak za dolar, 906 01:06:09,860 --> 01:06:16,070 i dok to nisu varijable, oni posudili korištenje znak dolara 907 01:06:16,070 --> 01:06:19,570 naznačiti izraz neke vrste. 908 01:06:19,570 --> 01:06:23,550 To može biti okružen zagradama ili dvostrukih zagrada, 909 01:06:23,550 --> 01:06:26,320 koji ima drugu namjenu. 910 01:06:26,320 --> 01:06:29,500 Pojedinačni zagrade ovdje su naredbe zamjena baš kao i backquotes. 911 01:06:29,500 --> 01:06:32,720 Bračni zagrade je zapravo aritmetička operacija. 912 01:06:32,720 --> 01:06:35,380 Postoje i drugi syntaxes, druge operacije. 913 01:06:35,380 --> 01:06:41,520 Backquote sintaksa je dostupan u Bash. 914 01:06:41,520 --> 01:06:46,780 Međutim, ovo je bolje. To je puno lakše za čitanje i omogućuje gnijezde. 915 01:06:46,780 --> 01:06:51,300 Možete imati unutar $ (naredba) još jednu naredbu, 916 01:06:51,300 --> 01:06:54,590 nešto slično - 917 01:07:14,560 --> 01:07:18,210 Ja dobiti popis postoji. 918 01:07:18,210 --> 01:07:21,670 To će raditi, ako sam imao backquote također. 919 01:07:32,050 --> 01:07:38,470 Što ako želim napraviti nešto slično - 920 01:08:03,390 --> 01:08:06,430 Vi vjerojatno ne bi zapravo koristiti ovu naredbu, 921 01:08:06,430 --> 01:08:14,160 ali to interna naredba zamjena odjekuje imena svih datoteka s početka, 922 01:08:14,160 --> 01:08:18,229 onda je ovo jedan radi ls-l o tim dokumentima, 923 01:08:18,229 --> 01:08:20,500 i onda je ovo jedan upravo odjekuje izlaz. 924 01:08:21,729 --> 01:08:24,479 Vi vjerojatno ne bi učinio, što bi samo napraviti odjek ili LS, 925 01:08:24,479 --> 01:08:29,450 ali ovo pokazuje kako gnijezde naredbi radi. 926 01:08:29,450 --> 01:08:34,380 Dakle, samo još jedna značajka ovdje. 927 01:08:34,380 --> 01:08:37,450  Spomenuo sam to i ranije, da kada imate gdje u C-shell, 928 01:08:37,450 --> 01:08:42,770 upisati radove u Bourne-tipa školjke za lociranje naredbe. 929 01:08:48,939 --> 01:08:52,270 Ugrađenih naredbi, upravo ono što sam rekao postoje. 930 01:08:52,270 --> 01:08:54,640 Naredbe su dio ljuske, kao i gdje. 931 01:08:54,640 --> 01:08:59,880 Kad ljuska izvršava naredbe poput ls, što ga smješta kroz stazu, 932 01:08:59,880 --> 01:09:03,029 ga nađe u nekom imeniku negdje, 933 01:09:03,029 --> 01:09:05,800 navodi se da je u memoriji, stvara novu ljusku, 934 01:09:05,800 --> 01:09:08,960 čita naredbe ls ili što god u ljusci 935 01:09:08,960 --> 01:09:11,450 gdje se već nalaze varijable okruženja, 936 01:09:11,450 --> 01:09:14,000 i zatim se prenosi na njega izvršenje. 937 01:09:14,000 --> 01:09:18,319 Ugrađeni zapovjedništvom, kod za tu naredbu je unutar ljuske, 938 01:09:18,319 --> 01:09:21,460 pa ljuska upravo počinje izvršavanju dio vlastitog koda. 939 01:09:21,460 --> 01:09:24,569 gdje je takva naredba. To je zapravo dobiva brže. 940 01:09:24,569 --> 01:09:28,380 To ne mora ništa pročitao u memoriji, to je već u memoriji. 941 01:09:28,380 --> 01:09:32,460 Ugrađene naredbe uvijek imati prednost nad naredbi s istim imenom. 942 01:09:32,460 --> 01:09:36,050 Naredbe koje su u imenicima na putu mogu imati isto ime, 943 01:09:36,050 --> 01:09:39,090 naredbe u različitim direktorijima, datoteke u različitim direktorijima. 944 01:09:39,090 --> 01:09:41,740 Onaj koji se javlja ranije na putu je jedan ćete dobiti. 945 01:09:41,740 --> 01:09:43,770 Ako ima ugrađene naredbe, uvijek ga dobiti. 946 01:09:43,770 --> 01:09:47,890 Nema načina da ga dati manju prednost od naredbe na putu. 947 01:09:47,890 --> 01:09:54,140 Ako želite dobiti tu stazu, možete upisati puni naziv putanje. 948 01:09:54,140 --> 01:09:55,850 Ako su naredbe gdje na putu negdje, 949 01:09:55,850 --> 01:09:58,440 možete upisati / bin / gdje i da ćeš ga dobiti. 950 01:09:58,440 --> 01:10:01,800 Ako ne želite upisati cijelu ime putanje, mogli definirati pseudonim. 951 01:10:01,800 --> 01:10:06,310 U stvari, ako je dao pseudonim isti naziv kao i izgrađen-in naredba, to će raditi 952 01:10:06,310 --> 01:10:08,790 jer definicija alias ocjenjuje 953 01:10:08,790 --> 01:10:13,220 prije ljuske utvrdi da je ugrađena u naredbe koje treba izvršiti. 954 01:10:18,810 --> 01:10:23,440 Onda to dobiva malo složenije s nekim naredbama ovdje. 955 01:10:23,440 --> 01:10:29,880 Slučaj nekih naredbi zapravo su ugrađeni u naredbama i na putu. 956 01:10:29,880 --> 01:10:34,140 Jedan od njih je jeka, naredba sam koristio samo malo prije u tim primjerima. 957 01:10:34,140 --> 01:10:37,410 Echo je naredba na putu i to je u svakom ljuske. 958 01:10:37,410 --> 01:10:40,580 Oni ne moraju nužno svi se ponašaju na isti način. 959 01:10:40,580 --> 01:10:42,970 To je bio izvorno naredbe samo na putu. 960 01:10:42,970 --> 01:10:45,280 Sagrađena je na školjke kasnije. 961 01:10:45,280 --> 01:10:48,080 Budući da postoje mogućnosti koje ovise o okolišu 962 01:10:48,080 --> 01:10:52,970 i opcije naredbenog retka, ugrađena u naredbe 963 01:10:52,970 --> 01:10:57,030 su pisani funkcionirati isto kao naredba koja je bila na putu, 964 01:10:57,030 --> 01:10:59,670 to je malo vjerojatno da bi bila napisana na taj način 965 01:10:59,670 --> 01:11:01,720 Ako naredba već nije napisano za put. 966 01:11:01,720 --> 01:11:06,180 Dakle, ovaj je nuspojave. Njegova povijest ima učinke ovdje. 967 01:11:06,180 --> 01:11:08,380 Postoji opcija postoji. 968 01:11:14,280 --> 01:11:23,060 Tu je i opcija definira varijablu u tcsh zove echo_style. 969 01:11:23,060 --> 01:11:27,700 To je jedna od tih varijabli koje mogu promijeniti način na koji odjekuju djela. 970 01:11:27,700 --> 01:11:30,910 Postoje i drugi slučajevi u kojima možete dodijeliti varijablu 971 01:11:30,910 --> 01:11:36,290 koja mijenja način na koji shell operacije, uključujući i izgrađen-in naredbi, radi. 972 01:11:36,290 --> 01:11:38,130 To neće utjecati na bilo što drugo 973 01:11:38,130 --> 01:11:40,640 od druge naredbe nemaju pristup ljuske varijabli, 974 01:11:40,640 --> 01:11:42,090 samo varijable okruženja. 975 01:11:42,090 --> 01:11:45,360 No, ljuska operacije mogu čitati ljuska varijable. 976 01:11:45,360 --> 01:11:50,710 To neće raditi za csh. To je samo tcsh. To je jedno od poboljšanja. 977 01:11:58,540 --> 01:12:04,620 Raščlanjivanja ima sekvence kad ocjenjuje metacharacters, 978 01:12:04,620 --> 01:12:08,140 kada je ta vrijednost varijable, pseudonime, povijest reference. 979 01:12:08,140 --> 01:12:11,830 Postoji određeni slijed za takve stvari. 980 01:12:11,830 --> 01:12:13,730 Ako se stvari u određenom slijedu 981 01:12:13,730 --> 01:12:16,080 i dobiva se nešto što je izraz svojevrsne 982 01:12:16,080 --> 01:12:20,650 koji je već ocijenjen, neće ga ponovno ocijeniti. 983 01:12:20,650 --> 01:12:24,520 Ako ga dobije, onda će samo proći na likove. 984 01:12:24,520 --> 01:12:29,920 Dakle, ako je procjena nekih izraza poput zapovjedne zamjenu 985 01:12:29,920 --> 01:12:36,850 ili promjenjiva ili što god se rađa izraz 986 01:12:36,850 --> 01:12:39,240 koji bi željeli da se ocjenjuju, 987 01:12:39,240 --> 01:12:42,510 koji će raditi samo ako dođe to ocjenjivanje kasnije u nizu. 988 01:12:42,510 --> 01:12:45,010 Nadam se da sam bio jasan postoji. 989 01:12:45,010 --> 01:12:50,460 Taj slijed raščlanjivanja, operacija u C-shell, 990 01:12:50,460 --> 01:12:56,490 nije isto za ugrađenih naredbi, jer je za one koji nisu ugrađenih naredbi. 991 01:12:56,490 --> 01:12:58,890 Nisam siguran o Bash postoji. 992 01:12:58,890 --> 01:13:02,450 Na primjer, ako je varijabla ljuska proizveli referencu povijesti, 993 01:13:02,450 --> 01:13:04,230 to vjerojatno neće vratiti u povijest. 994 01:13:04,230 --> 01:13:06,010 To bi samo dobiti uskličnik. 995 01:13:06,010 --> 01:13:08,840 U stvari, mi samo možemo pokušati da se upravo sada. 996 01:13:09,720 --> 01:13:18,240 postaviti A = i morat ćemo staviti ovo unutra. 997 01:13:30,690 --> 01:13:34,580 Oh, čekaj. Oprostite. Ja sam to u Bash. Želio sam to učiniti ovdje. 998 01:13:53,470 --> 01:13:56,080 Vidiš, tako da on nije ocjenjuje da je povijest referenca 999 01:13:56,080 --> 01:14:00,520 zato što je već prošlost točke ocjenjivanja povijesti izraze 1000 01:14:00,520 --> 01:14:02,720 kada je ocijenjena varijablu. 1001 01:14:02,720 --> 01:14:05,550 Dakle, to je jedan učinak parsiranje. 1002 01:14:05,550 --> 01:14:08,760 I opet, ugrađene naredbe nisu učinili na isti način. 1003 01:14:08,760 --> 01:14:11,230 U redu. Idemo na sljedeću ovdje. 1004 01:14:11,230 --> 01:14:16,060 To je trebala biti 1. linija, ali to što ga čini lakšim za čitanje. 1005 01:14:19,130 --> 01:14:21,530 Što da radim? 1006 01:14:21,530 --> 01:14:28,640 Sjetite se da možemo ocijeniti zvjezdicama na filename zamjenskih znakova, 1007 01:14:28,640 --> 01:14:33,890 a tu su i drugi filename zamjenske znakove kao što su upitnik i nosača izraza. 1008 01:14:33,890 --> 01:14:39,000 Takva vrednovanja zove globbing. 1009 01:14:39,000 --> 01:14:46,290 postavljen noglob na početku ove naredbe, kaže, nemojte to raditi. 1010 01:14:46,290 --> 01:14:53,370 vratiti na nul noglob kaže vratiti na taj događaj. 1011 01:14:53,370 --> 01:14:56,440 Imajte na umu da je set Glob ne bi imao takav učinak. 1012 01:14:56,440 --> 01:15:00,800 U običnim jezikom, postavili Glob ili resetiranje noglob čini da bi bilo jednako, 1013 01:15:00,800 --> 01:15:03,290 ali ovdje to nije. To je resetiranje noglob. 1014 01:15:05,120 --> 01:15:07,910 Sada tNamjesti. tNamjesti stajao za terminal set. 1015 01:15:07,910 --> 01:15:11,840 To nije navikla da često sada, ali prije nego što Windowing sustavima postao dostupan 1016 01:15:11,840 --> 01:15:15,760 i vama je jedan terminal, možda ćete morati odrediti vrstu. 1017 01:15:15,760 --> 01:15:18,700 A ako nešto dolazi preko Ethernet ili s mreže, 1018 01:15:18,700 --> 01:15:21,120 možda želite reći da je VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 je vrsta standarda u poslovanju terminala. Ona dolazi iz prosinca terminala. 1020 01:15:26,630 --> 01:15:35,270 Ako ste upravo to Dialup - primijetiti da? To seže načine, ha? 1021 01:15:35,270 --> 01:15:39,520 Dakle, ako mi samo ne tNamjesti ovamo, 1022 01:15:39,520 --> 01:15:45,250 ako sam samo učiniti tNamjesti, to je moj resetiranja terminal, ali nisu vidjeli ništa. 1023 01:15:45,250 --> 01:15:47,340 To stvarno nije ništa promijeniti. 1024 01:15:47,340 --> 01:15:48,620 -E 1025 01:15:49,900 --> 01:15:51,480 Ok. 1026 01:15:51,480 --> 01:15:53,350 setenv ROK xterm-boja. 1027 01:15:53,350 --> 01:15:57,080 Već znamo da je termin bio postavljen na taj način, tako da se nije promijenio. 1028 01:15:57,080 --> 01:15:58,860 To je način na koji smo željeli da to učinite. 1029 01:15:58,860 --> 01:16:07,080 Ali primijetite da je ova naredba, tNamjesti-e, samo izlaz ove naredbe. To im nije u pogonu. 1030 01:16:07,080 --> 01:16:09,770 To nije u pogonu ove naredbe, to ih izlaz. 1031 01:16:09,770 --> 01:16:13,650 Dakle, ovo je namijenjen za proizvodnju naredbe koje će potom biti pokrenuti. 1032 01:16:13,650 --> 01:16:16,360 Sjećaš naredbu u toj datoteci sam samo pokazali ste imali Q u njega. 1033 01:16:16,360 --> 01:16:18,910 Tako ćemo učiniti. 1034 01:16:18,910 --> 01:16:23,750 Q potiskuje neki izlaz, ali to nije bitno ovdje, kao što možete vidjeti. 1035 01:16:23,750 --> 01:16:27,980 Ja samo radim da bi vam pokazati kako to nije bilo važno. 1036 01:16:27,980 --> 01:16:31,870 To je u backquote sintaksi. 1037 01:16:31,870 --> 01:16:35,340 Uočite backquote ovdje, backquote ovdje. 1038 01:16:35,340 --> 01:16:37,680 Ja sam izostavljajući te stvari ovdje. 1039 01:16:37,680 --> 01:16:39,570 To su slučajevi to reći što učiniti 1040 01:16:39,570 --> 01:16:42,050 u slučaju pojedine vrste terminala - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, mreža, dial-up, ono što imate. 1042 01:16:45,400 --> 01:16:48,050 Nije bitno ovdje jer nismo zapravo radiš bilo koji od tih stvari. 1043 01:16:48,050 --> 01:16:49,720 Ja sam samo ilustrira naredbu. 1044 01:16:49,720 --> 01:16:55,170 Ako sam to učiniti s backquote, što ću dobiti? 1045 01:16:55,170 --> 01:17:00,210 Također primijetite da se ovdje to je uključena set noglob i UNSET noglob, 1046 01:17:00,210 --> 01:17:02,630 pa one sada su suvišne u definiciji. 1047 01:17:02,630 --> 01:17:05,380 To nije uvijek istina, ali sada su uključeni u ove naredbe. 1048 01:17:05,380 --> 01:17:08,890 No, da vidimo što će se dogoditi ako sam to učiniti 1049 01:17:08,890 --> 01:17:12,570 i otići na početak linije uz nadzor i ja učiniti. 1050 01:17:14,380 --> 01:17:18,040 Ok, postavili: Naredba nije pronađena. To je vrsta čudno, zar ne? 1051 01:17:18,040 --> 01:17:20,570 Skup je poznato naredbe. To je dio ljuske. 1052 01:17:20,570 --> 01:17:24,040 set: Command not found? Zašto je to tako? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Pa, neka je razmišljati o tome. 1054 01:17:26,790 --> 01:17:31,100 To je trčanje backquote naredbu zamjenu, 1055 01:17:31,100 --> 01:17:37,430 i to se događa u određenom dijelu slijed raščlanjivanja naredbu. 1056 01:17:37,430 --> 01:17:40,360 Skup je izgrađen-in naredba. 1057 01:17:40,360 --> 01:17:43,900 Dakle, u vrijeme kada se čini da je zapovjedno zamjenu, 1058 01:17:43,900 --> 01:17:48,280 to je već stečen prošlosti točke identifikacije ugrađene naredbe. 1059 01:17:48,280 --> 01:17:51,900 Dakle, to tretira postaviti kao da je naredba na putu. 1060 01:17:51,900 --> 01:17:55,440 Nepotrebno je reći, to ne ga pronaći i dobijete pogrešku. 1061 01:17:55,440 --> 01:17:59,300 Pa. Tu je primjer raščlanjivanjem slijed. 1062 01:17:59,300 --> 01:18:01,460 A što ćemo s tim? 1063 01:18:01,460 --> 01:18:04,800 Obavijest ovu vrlo zanimljivu naredbu ovdje vrednuje. 1064 01:18:04,800 --> 01:18:06,530 Pitam se što da radi. 1065 01:18:06,530 --> 01:18:08,760 Ako pogledate u priručniku - i neka je samo to da je 1066 01:18:08,760 --> 01:18:12,000 pokazati kako konfuzno ovi priručnici - 1067 01:18:12,000 --> 01:18:19,400 Čovjek tcsh, zbunjen upotrebu, pronalaženje stvari ovdje nije lako bilo. 1068 01:18:19,400 --> 01:18:31,850 Evo nas, vrednuje ARG, tako da možemo imati jedan ili više argumenata 1069 01:18:31,850 --> 01:18:34,090 i tamo je popis stvari koje postoje. 1070 01:18:34,090 --> 01:18:37,730 Tretira kao argumente ulaza u ljusku 1071 01:18:37,730 --> 01:18:43,600 i izvršava naredbe dobivene u kontekstu sadašnjeg ljuske. 1072 01:18:43,600 --> 01:18:46,900 To se obično koristi za izvršavanje naredbi generirane kao rezultat naredbe 1073 01:18:46,900 --> 01:18:51,310 ili promjenjiva zamjena jer raščlanjivanja događa pred tim zamjenama. 1074 01:18:51,310 --> 01:18:52,580 Vrlo dobro. 1075 01:18:52,580 --> 01:18:54,740 I evo ih, čak se odnose na tNamjesti naredbe za korištenje uzorka 1076 01:18:54,740 --> 01:18:57,700 poput one sam ti samo pokazao. 1077 01:18:57,700 --> 01:19:00,440 Sada moram prozor natrag na korisnom mjestu. 1078 01:19:03,150 --> 01:19:07,800 Idemo ovamo, pa ćemo vidjeti da vrednuje se koristiti samo prije toga. 1079 01:19:07,800 --> 01:19:14,010 Tako ćemo vidjeti što će se dogoditi ako stavimo - ovdje mi ići ukorak sa strelicama za tu naredbu 1080 01:19:14,010 --> 01:19:20,940 i kontrola na početak, vrednuje. 1081 01:19:20,940 --> 01:19:22,850 U redu, tako se to radi. 1082 01:19:22,850 --> 01:19:26,440 Kada to vrednuje, što je potrebno ono što dolazi nakon njega i čini je naredbu. 1083 01:19:26,440 --> 01:19:29,460 To vam omogućuje suštini analizirati ga dva puta. 1084 01:19:29,460 --> 01:19:33,710 Poglavlje ovdje radi ove naredbe unutar backquotes, 1085 01:19:33,710 --> 01:19:36,210 dobiva izlaz. 1086 01:19:36,210 --> 01:19:42,850 Izlaz je trebalo da se izvoditi kao one naredbe ovdje poput ovih 1087 01:19:42,850 --> 01:19:45,890 na ovom jednom i ovaj jedan. 1088 01:19:45,890 --> 01:19:50,100 Te naredbe tako da se danas u ovoj sekvenci, 1089 01:19:50,100 --> 01:19:58,950 ali ovi su ugrađeni u naredbama i to ne mogu ih dobiti odmah. 1090 01:19:58,950 --> 01:20:06,440 Dakle, idemo na eval, vrednuje pokupi da se pokrene cijelu stvar sve iznova, i to radi. 1091 01:20:06,440 --> 01:20:18,460 Primjer oba backquoting, vrednuje, raščlanjivanja, posljedice parsiranje, 1092 01:20:18,460 --> 01:20:21,910 i naredba koja je vjerojatno vrlo malo koristi za vas danas. 1093 01:20:21,910 --> 01:20:25,540 Ok. U redu, umask. 1094 01:20:25,540 --> 01:20:32,160 Pogledajmo ove naredbe ovdje, umask 022. Pitam se što da radi. 1095 01:20:32,160 --> 01:20:38,420 Idemo samo upišite umask ništa nakon toga. 22. Ok. 1096 01:20:38,420 --> 01:20:44,350 022 i to učiniti opet. 1097 01:20:44,350 --> 01:20:48,580 Kao što ste možda pogađate, umask bez argumenata govori vam trenutni masku; 1098 01:20:48,580 --> 01:20:51,760 umask s argumentima čini da, ali to je bio jedan Već sam imao. 1099 01:20:51,760 --> 01:20:53,800 Što znači 022? 1100 01:21:01,650 --> 01:21:07,080 To su ovdje su zaštita za datoteku. 1101 01:21:07,080 --> 01:21:11,440 Oni bi se utvrdilo tko je dopušteno čitati ni pisati ili izvršiti datoteku. 1102 01:21:11,440 --> 01:21:16,560 Zaštite se također nazivaju dozvole. 1103 01:21:16,560 --> 01:21:21,390 R stoji za čitanje, W za pisanje, 1104 01:21:21,390 --> 01:21:25,500 i x, koja nije prisutna tamo, stoji za izvršavanje. 1105 01:21:25,500 --> 01:21:27,260 Postoje 3 kategorije tamo. 1106 01:21:27,260 --> 01:21:33,540 Posljednje tri elementa su u kategoriji korisnika. Oni vrijede za mene, korisniku. 1107 01:21:33,540 --> 01:21:36,870 To 3. ovdje odnosi se na grupu. 1108 01:21:36,870 --> 01:21:41,590 Datoteka pripada 1. skupini, korisnik može pripadati različitim skupinama, 1109 01:21:41,590 --> 01:21:47,150 ali ako je korisnik u skupini u kojoj ovu sliku pripada, 1110 01:21:47,150 --> 01:21:51,090 onda ti zaštite primjenjivat će se na njega ako on nije korisnik. 1111 01:21:51,090 --> 01:21:54,230 I ovo je svi drugi. 1112 01:21:55,540 --> 01:21:57,690 Ove kategorije se međusobno isključuju. 1113 01:21:57,690 --> 01:21:59,750 Korisnik zaštite primjenjuju se na njega, 1114 01:21:59,750 --> 01:22:03,780 Grupa zaštite primjenjuju se na članove grupe, osim korisnika, 1115 01:22:03,780 --> 01:22:08,110 i ostalim zaštitama odnose se samo na osobe koje nisu korisnika i članova skupine. 1116 01:22:08,110 --> 01:22:12,320 Ako postoji r ili aw ili x, što znači da je odobrena zaštita. 1117 01:22:12,320 --> 01:22:13,950 Ako postoji crticu, to znači da nije. 1118 01:22:13,950 --> 01:22:16,690 Tu zapravo i druge stvari koje se mogu staviti u ovdje, osim ovih, 1119 01:22:16,690 --> 01:22:18,350 što neću dobiti u sada. 1120 01:22:18,350 --> 01:22:24,450 Umask definira zadani za datoteke koje stvarate. 1121 01:22:24,450 --> 01:22:28,580 I kao maska, u osnovi to kaže bitove koji ne postavljaju. 1122 01:22:28,580 --> 01:22:30,450 Kako je to postalo bita? 1123 01:22:30,450 --> 01:22:33,240 Ako mislite da je svaki od njih kao oktalni broj, 1124 01:22:33,240 --> 01:22:42,120 to je malo 1S, to je 2S, to je 4S. 1125 01:22:42,120 --> 01:22:45,840 Do 0 do 7 1126 01:22:45,840 --> 01:22:51,770 će opisati ono kombinacija r-a, w-a, i x-a imate za te tri 1127 01:22:51,770 --> 01:22:53,710 a onda slična broj za njih, a zatim za njih. 1128 01:22:53,710 --> 01:23:12,030 Dakle, 022 znači 0 za drugo, dva za grupe, 2 za korisnika. 1129 01:23:12,030 --> 01:23:15,870 No, to je maska. Maska je ono što nemate. 1130 01:23:19,380 --> 01:23:20,610 Žao mi je. Samo sam ti dao stvari u pogrešnom redoslijedu. 1131 01:23:20,610 --> 01:23:25,620 To je prva 3. Ovo su 3 korisnika, njih 3 su skupine, njih 3 su drugi. 1132 01:23:25,620 --> 01:23:27,970 Žao nam je dao sam vam to u pogrešnom redoslijedu. 1133 01:23:27,970 --> 01:23:31,910 0, što je prvi put od onih, koji ne pokazuju vrijednost, 1134 01:23:31,910 --> 01:23:35,430 ali ako se broj ne postoji, to je 0. 1135 01:23:35,430 --> 01:23:38,370 To znači da sve 3 od tih će biti dopušteno. 1136 01:23:38,370 --> 01:23:41,550 Uočite da se u ovom konkretnom jednom x nije dopušteno. 1137 01:23:41,550 --> 01:23:44,090 Razlog je u tome što ljuska je sposoban za utvrđivanje 1138 01:23:44,090 --> 01:23:46,260 je li datoteka trebala biti izvršen ili ne. 1139 01:23:46,260 --> 01:23:49,800 Budući da to nije izvršna datoteka, to baš nije uspio x.. 1140 01:23:49,800 --> 01:23:54,000 U 2 znači da pišu dozvolu, druga kategorija ovdje, 1141 01:23:54,000 --> 01:23:56,500 jedan u sredini, je odbijen. 1142 01:23:56,500 --> 01:23:58,500 Pa opet, to su stvari koje je odbijen. 1143 01:23:58,500 --> 01:24:02,080 Pa, x je dopušteno, ali to nije ovdje jer to nije izvršna 1144 01:24:02,080 --> 01:24:04,260 ai za ostale. 1145 01:24:04,260 --> 01:24:08,880 Dakle, to je uobičajena umask. 1146 01:24:08,880 --> 01:24:14,630 Još jedna česta je 700 - dati sebi sve i nitko drugi ništa. 1147 01:24:14,630 --> 01:24:17,040 A tu su i druge mogućnosti. 1148 01:24:21,340 --> 01:24:27,110 Ja ću se vratiti na to. Pomoću povijesti mogu pretraživati ​​vratiti za to, LWH da postoji. 1149 01:24:27,110 --> 01:24:30,210 Ok. Dakle, ovdje, to su školjke. 1150 01:24:30,210 --> 01:24:36,020 Bash, vlasnik koji je račun sustav, može učiniti sve. 1151 01:24:36,020 --> 01:24:41,210 Grupa i svi drugi mogu napraviti čitati ili ne izvršavaju, ali ne i pisati. 1152 01:24:41,210 --> 01:24:44,570 To se ne čak i dopustiti vlasnik pisati na njega. 1153 01:24:44,570 --> 01:24:46,460 Ako vlasnik želi pisati na njega, na račun sustava, 1154 01:24:46,460 --> 01:24:48,020 on će morati promijeniti zaštitu prvi. 1155 01:24:48,020 --> 01:24:53,940 Ali opet, umask postavlja zadani tako da je maskiranje, 1156 01:24:53,940 --> 01:24:57,160 naznačujući bitove koji neće biti postavljene. 1157 01:24:57,160 --> 01:25:04,380 To je obično u jednoj od svojih inicijalizacije datoteka, što je. Cshrc za C-školjke 1158 01:25:04,380 --> 01:25:07,500 ili. profil za Bourne tipa školjke. 1159 01:25:07,500 --> 01:25:12,520 To može biti na drugom mjestu i, ako postoje i drugi inicijalizacije datoteke na sustav. 1160 01:25:12,520 --> 01:25:14,610 U svakom slučaju, to je umask. 1161 01:25:14,610 --> 01:25:18,180 Ima nešto malo čudno ovdje, 1162 01:25:18,180 --> 01:25:22,800 a to je, zašto je tu jedna naredba za to? 1163 01:25:22,800 --> 01:25:28,690 Kada bih pisao ovo, ja bi to promjenjiva, umask = neke vrijednosti. 1164 01:25:28,690 --> 01:25:31,100 Zašto postoji cijela naredba samo za ovu namjenu? 1165 01:25:31,100 --> 01:25:34,560 Razlog je to samo seže do početaka Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix je samo neki programski projekt u Bell Labs u ranim 1970-ih. 1167 01:25:41,050 --> 01:25:42,610 Ljudi jednostavno dobio zajedno s programom. 1168 01:25:42,610 --> 01:25:45,290 Oni nikada nije namjeravao da postane svjetski operativni sustav. 1169 01:25:45,290 --> 01:25:47,250 Različiti ljudi napisali različite dijelove bez razmišljanja jako puno 1170 01:25:47,250 --> 01:25:49,790 o tome kako su bili će se koristiti - a nedorečena. 1171 01:25:49,790 --> 01:25:53,290 A kako su zajedno kao da, i to je još uvijek kao da je u nekim aspektima. 1172 01:25:53,290 --> 01:25:57,930 Tako da odražava povijest, a tu su još ove nedosljednosti i ak elementi njega. 1173 01:25:57,930 --> 01:26:00,750 Ok. Sljedeća ovdje. 1174 01:26:08,170 --> 01:26:11,000 Kao što sam napisao ranije, C-shell nije stvarno koristi jako puno za programiranju, 1175 01:26:11,000 --> 01:26:12,420 Iako to može biti. 1176 01:26:12,420 --> 01:26:15,080 On izvršava sporije, opet kompromis između interaktivnu uporabu, 1177 01:26:15,080 --> 01:26:17,820 koja ima više obradu uključeni od brzine, 1178 01:26:17,820 --> 01:26:20,710 što može učiniti bez obrade. 1179 01:26:20,710 --> 01:26:28,320 Dodatni značajke dodan u Bourne ljuske od Korna i Bourne-opet školjke 1180 01:26:28,320 --> 01:26:32,120 ne čini se da ih usporiti, a ja ne znam zašto je to tako. 1181 01:26:32,120 --> 01:26:36,310 To samo može biti bolje za programiranje, ali nisam u poziciji da znaju. 1182 01:26:36,310 --> 01:26:40,420 Ubrzajte ovdje zapravo nije tako velika stvar, iako se spominje. 1183 01:26:40,420 --> 01:26:43,690 Razlog je u tome što shell skripte zapravo dobiti prilično brzo. 1184 01:26:43,690 --> 01:26:46,450 Ako postoji mnogo naredbi kao u calculational programa, 1185 01:26:46,450 --> 01:26:49,110 vjerojatno ne bih to učiniti u shell skripti. 1186 01:26:49,110 --> 01:26:51,450 Operacije su prilično jednostavan i jasan. 1187 01:26:51,450 --> 01:26:53,960 One koje sam doživio da su prespore 1188 01:26:53,960 --> 01:26:57,110 uključuje ponavljane primjene sporim naredbi. 1189 01:26:57,110 --> 01:27:00,480 Ranije sam spomenuo potok editor ovnu. To naredba je spor. 1190 01:27:00,480 --> 01:27:03,760 Ako izvodite SED mnogo puta, da ćete dobiti spor skriptu, ali to nije ljuska koja je sporo. 1191 01:27:03,760 --> 01:27:07,920 Ga prikazuju u Bourne ljuske neće biti puno brže nego što je trčanje u C-shell, 1192 01:27:07,920 --> 01:27:10,070 Iako postoji možda i neke prednosti postoje. 1193 01:27:10,070 --> 01:27:12,760 Dodatne mogućnosti programiranja, s druge strane, 1194 01:27:12,760 --> 01:27:17,920 značajni razlozi zašto bi koristiti Bourne tipa školjke. 1195 01:27:17,920 --> 01:27:21,390 C-shell ima čudne značajke na njega - 1196 01:27:21,390 --> 01:27:25,250 Činjenica da ne znam da li je varijabla promjenjiva školjka ili varijabla okruženja. 1197 01:27:25,250 --> 01:27:27,440 To može biti vrlo zbunjujuće. 1198 01:27:27,440 --> 01:27:32,170 To nije tako lako napisati 1199 01:27:32,170 --> 01:27:35,930 samo na temelju svog iskustva programiranja u drugim jezicima. 1200 01:27:35,930 --> 01:27:41,350 Mislim da se može naći Bourne tipa školjke konzistentniji sa svojim iskustvom. 1201 01:27:43,730 --> 01:27:49,270 Neki skripte, međutim, može biti tisuće linija u duljini. 1202 01:27:49,270 --> 01:27:52,450 Oni koje sam vidio se koriste za krpanje operativne sustave. 1203 01:27:52,450 --> 01:27:55,450 Oni mogu izvoditi vrlo sporo, ali ne izvoditi one vrlo često. 1204 01:27:55,450 --> 01:27:57,180 To je samo kad radite krpanje, 1205 01:27:57,180 --> 01:27:59,450 i to je jedini menadžer sustav koji radi one stvari, 1206 01:27:59,450 --> 01:28:01,840 tako da to nije stvarno puno problema. 1207 01:28:01,840 --> 01:28:06,980 Oni koji su stotine linija duga zapravo izvršavati prilično brzo. 1208 01:28:06,980 --> 01:28:10,540 Spominjući ovo ovdje, ono što su oni poboljšanja? 1209 01:28:10,540 --> 01:28:13,170 Već sam spomenuo neke od njih - polja, izračuni, 1210 01:28:13,170 --> 01:28:20,540 su $ () izraz za izračune u Bash ljuska, 1211 01:28:20,540 --> 01:28:23,050 druga vrsta zapovjednoj zamjenu. 1212 01:28:23,050 --> 01:28:25,360 Postoje različite vrste testiranja naredbi 1213 01:28:25,360 --> 01:28:29,350 kojim možete napraviti uvjetne ispitivanja o postojanju datoteke ili drugim stvarima. 1214 01:28:29,350 --> 01:28:34,790 Trajati ovdje, ova naredba ovdje. 1215 01:28:34,790 --> 01:28:38,480 Što to učiniti, i zašto bi bilo tko ga koristi? 1216 01:28:51,170 --> 01:28:52,990 printenv variablename. 1217 01:28:52,990 --> 01:28:56,130 Znamo što printenv radi. To nam govori o vrijednosti varijable. 1218 01:28:56,130 --> 01:29:00,850 I printenv variablename nećemo doznati jako puno, jer ne postoji takva varijabla. 1219 01:29:03,550 --> 01:29:05,120 Blank. 1220 01:29:05,120 --> 01:29:08,440 No, dajmo mu nešto smisleno. 1221 01:29:13,420 --> 01:29:16,800 To nije ni tamo. Ok. Mislim da nikada definirano da. 1222 01:29:16,800 --> 01:29:18,020 Idemo samo provjeriti svoju okolinu. 1223 01:29:18,020 --> 01:29:20,900 Ovo je još jedna naredba kojom možete pregledati svoj okoliš. 1224 01:29:20,900 --> 01:29:24,470 Postoji dobra stara UREDNIK, jedan smo vidjeli prije. 1225 01:29:42,360 --> 01:29:44,120 Što da radim? 1226 01:29:44,120 --> 01:29:48,050 Ovdje imamo backquote izraz. 1227 01:29:48,050 --> 01:29:50,370 Zapamtite ovo je C-shell. 1228 01:29:50,370 --> 01:29:54,850 Dakle printenv UREDNIK će nam dati vrijednost urednik. To je vi. 1229 01:29:54,850 --> 01:29:59,790 I onda će se postaviti tu vrijednost varijabli a, skup naredbi. 1230 01:29:59,790 --> 01:30:02,860 Pa sad, ako mi je činiti echo dolara, sam se vi. 1231 01:30:02,860 --> 01:30:05,850 To se ne čini strašno korisna. 1232 01:30:05,850 --> 01:30:08,080 Međutim, to zapravo imaju svoju svrhu. 1233 01:30:08,080 --> 01:30:12,260 Budući da ne znamo je li varijabla je varijabla ljuska ili varijabla okruženja 1234 01:30:12,260 --> 01:30:16,280 pomoću znak dolara procjene sintakse, možemo koristiti printenv 1235 01:30:16,280 --> 01:30:19,460 kako bi bili sigurni da je varijabla okruženja. 1236 01:30:19,460 --> 01:30:22,550 Dakle, ako je bilo ljuska varijabla urednik, to ne bi ga dobio. 1237 01:30:22,550 --> 01:30:25,640 To radi samo s promjenjivom okruženju. 1238 01:30:25,640 --> 01:30:28,370 Ako je bilo promjenjiva školjka i ja sam htjela svoju vrijednost, 1239 01:30:28,370 --> 01:30:29,980 Ja bih se naći neki drugi način da to učinite. 1240 01:30:29,980 --> 01:30:33,530 Jedan od načina za to bi se na taj skup i cijevi. 1241 01:30:33,530 --> 01:30:36,130 To je jedan od metacharacters, specijalnih znakova. 1242 01:30:36,130 --> 01:30:38,370 Ona šalje izlaz skupa na nešto drugo. 1243 01:30:38,370 --> 01:30:40,650 Da vidimo što možemo tamo naći. 1244 01:30:40,650 --> 01:30:49,340 Ništa. Ok. Ajmo vidjeti što je tamo sve zajedno. 1245 01:30:49,340 --> 01:30:53,580 Bilo je echo_style, jedan sam spomenuo prije. Ok, neka je učiniti. 1246 01:31:02,460 --> 01:31:06,230 Sjeti se što sam spomenuo prije, echo_style 1247 01:31:06,230 --> 01:31:08,410 određuje način na echo naredba će pokrenuti. 1248 01:31:08,410 --> 01:31:10,940 BSD zalaže za Berkeley standardne distribucije. 1249 01:31:10,940 --> 01:31:13,200 To je Berkeley Unix iz 1970. 1250 01:31:13,200 --> 01:31:16,630 To je jedan od načina na koje odjekuju može pokrenuti. 1251 01:31:16,630 --> 01:31:22,310 Postavljanje echo_style na tu vrijednost u TC-ljuske će izazvati odjek da se ponaša na taj način. 1252 01:31:22,310 --> 01:31:27,670 Dakle, postaviti se da je, ali postavili samo dobiva ljuska varijable. 1253 01:31:27,670 --> 01:31:35,430 To ne bi pronašli urednik, koji nije promjenjiva školjka. 1254 01:31:36,870 --> 01:31:38,050 Ništa. 1255 01:31:38,050 --> 01:31:39,660 Dakle, to je jedan od načina kako ih razlikovati. 1256 01:31:39,660 --> 01:31:42,000 No, činjenica da morate proći kroz neke čudne naredbe kao što je to 1257 01:31:42,000 --> 01:31:45,500 razlikovati shell varijabli ili varijabli okoline 1258 01:31:45,500 --> 01:31:49,970 prikazuje vrstu nepraktičan prirode C-ljuske za neke svrhe. 1259 01:31:52,290 --> 01:31:57,960 I sada, posljednji i možda manje važno, ovo je čovjek stranice. 1260 01:31:57,960 --> 01:32:03,190 Oni o tome tko što možda znate, čovjek je naredba za kratko priručniku. 1261 01:32:03,190 --> 01:32:08,610 Man stranice za školjke su teško pročitati. Oni su jako dugo. 1262 01:32:08,610 --> 01:32:14,060 Oni su organizirani na način da može biti teško pronaći ono što tražite. 1263 01:32:14,060 --> 01:32:15,980 Dakle, ako ste u potrazi za nešto sa svrhom, 1264 01:32:15,980 --> 01:32:20,050 što možda ne znate je li to svrha je promjenjiva školjka ili nešto drugo, 1265 01:32:20,050 --> 01:32:21,630 tako da možda ne znate gdje se mogu pogledati za to. 1266 01:32:21,630 --> 01:32:25,030 Možete tražiti razne žice, ali žice se često ponavlja. 1267 01:32:25,030 --> 01:32:27,640 Dakle, to je općenito teško pročitati. 1268 01:32:27,640 --> 01:32:33,810 Mi smo samo gledali na čovjeka stranici TC-školjku malo prije pronaći eval naredbu. 1269 01:32:33,810 --> 01:32:36,610 Neke stvari ići brže. 1270 01:32:36,610 --> 01:32:38,860 Jedan od pristupa je da se potraga za niz. 1271 01:32:38,860 --> 01:32:40,360 Možete koristiti pager. 1272 01:32:40,360 --> 01:32:49,080 Pager ima crtu tražiti naredbe ili niza unutar operacije pager. 1273 01:32:49,080 --> 01:32:52,830 Čovjek po defaultu će koristiti dojavljivače, bilo bi manje ili više. 1274 01:32:52,830 --> 01:32:56,560 Ja ne znam da li ste upoznati s tim, ali oni mogu pokazati datoteke malo po malo. 1275 01:32:56,560 --> 01:33:00,550 Ja sam bio koristeći MANJE prikazati te određene datoteke Imamo ovdje. 1276 01:33:00,550 --> 01:33:03,300 Možete tražiti unutra. 1277 01:33:03,300 --> 01:33:04,880 Možete pokušati koristiti različite nizove pretraživanja. 1278 01:33:04,880 --> 01:33:08,420 Također man stranice u različitim operativnim sustavima ne može biti ista. 1279 01:33:08,420 --> 01:33:11,130 Oni mogu biti odvojene stranice za csh i tcsh. 1280 01:33:11,130 --> 01:33:14,500 Oni nisu na Mac, ali bi mogli biti ako su to odvojene naredbe. 1281 01:33:14,500 --> 01:33:19,000 Ako sh zapravo ne zovu Bash, tu će vjerojatno biti zasebna čovjek stranica. 1282 01:33:19,000 --> 01:33:25,820 Neki sustavi imaju zasebne man stranice samo za C-shell ugrađenih naredbi. 1283 01:33:25,820 --> 01:33:30,250 Ponekad, ako želite pročitati opis ugrađenom zapovjedništvom 1284 01:33:30,250 --> 01:33:35,350 to je također na putu, poput jeke, morate pročitati čovjeka stranicu na toj naredbi na odjek 1285 01:33:35,350 --> 01:33:37,610 kako bi se utvrdilo kako će raditi kao ugrađeni u zapovjedništvo 1286 01:33:37,610 --> 01:33:39,760 čak i ako ne zovete ugrađeni naredbu. 1287 01:33:41,630 --> 01:33:46,090 To je nedostatak operacijskog sustava u cjelini, a ne samo za školjke, 1288 01:33:46,090 --> 01:33:50,710 Iako za školjke osobito man stranice su prilično dugo, 1289 01:33:50,710 --> 01:33:56,180 dijelom zato što su dodali korisne mogućnosti za njih, što može biti pozitivno. 1290 01:33:56,180 --> 01:34:00,290 Ok. Ima li pitanja? Bilo teme želite odgajati? 1291 01:34:00,290 --> 01:34:03,390 Sve relevantne ovdje? 1292 01:34:04,540 --> 01:34:07,100 Pa, to je bilo jako lijepo razgovarati s vama svima. 1293 01:34:07,100 --> 01:34:09,690 Nadam se da je dobio nešto iz ovog seminara 1294 01:34:09,690 --> 01:34:13,080 koji će biti koristan za vas u svojim budućim nastojanjima. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]