1 00:00:00,000 --> 00:00:02,320 >> [Seminar - Školjke Unix, Environments] 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 lupina Unix. 5 00:00:12,770 --> 00:00:20,600 Sem Douglas Kline, strokovnjak ali vsaj razumno pristojni uporabnik, lupine. 6 00:00:20,600 --> 00:00:25,280 Lupina je vmesnik za uporabnika na operacijski sistem računalnika. 7 00:00:25,280 --> 00:00:29,580 Ime je zavajajoče, saj za razliko od lupine žival je, 8 00:00:29,580 --> 00:00:34,890 , ki je trda in zaščitne lupine računalnik omogoča komunikacijo. 9 00:00:34,890 --> 00:00:39,120 Torej bi porozna membrana verjetno bolje metafora. 10 00:00:39,120 --> 00:00:44,500 >> Originalna lupina za Unix je Bournova lupina. 11 00:00:44,500 --> 00:00:46,450 Bourne je napisane B-O-U-R-N-C. 12 00:00:46,450 --> 00:00:49,770 Bourne je bil eden od prvotnih avtorjev Unixa 13 00:00:49,770 --> 00:00:51,700 in tako je lupina poimenovali po njem. 14 00:00:51,700 --> 00:00:54,850 Ime te lupine kot ukaz je samo preprosto sh. 15 00:00:54,850 --> 00:00:57,400 To je ukaz, ki ga je mogoče izvršiti. 16 00:00:57,400 --> 00:01:00,810 Lupina zažene ob prijavi. 17 00:01:00,810 --> 00:01:04,459 Ko se prijavite v računalnik, lupina šele začne teče za vas, 18 00:01:04,459 --> 00:01:06,820 in to je tisto, kar ima svoje ukaze. 19 00:01:06,820 --> 00:01:09,790 To se lahko začne tudi v drugih obdobjih. 20 00:01:09,790 --> 00:01:16,780 Če ste odprlo okno z nobeno drugo označbo, se bo začela lupino za vas. 21 00:01:16,780 --> 00:01:20,450 To je, kako je to, da lahko greš k oknu in začnite tipkati ukaze 22 00:01:20,450 --> 00:01:23,960 in tako naprej, pa čeprav se niste prijavili v to okno. 23 00:01:23,960 --> 00:01:26,670 Poleg tega, če vam oddaljena prijava, 24 00:01:26,670 --> 00:01:30,250 potem pa bo začelo lupino na oddaljenem računalniku. 25 00:01:30,250 --> 00:01:44,310 In je možno, da se izvajajo ukaze brez interaktivno lupino. 26 00:01:44,310 --> 00:01:48,990 To lahko pomeni v vašem trenutnem delovanju, 27 00:01:48,990 --> 00:01:50,700 in to lahko pomeni tudi daljinsko upravljanje. 28 00:01:50,700 --> 00:01:52,900 Lahko pošljete ukaz v drug računalnik, 29 00:01:52,900 --> 00:01:55,460 ki vključuje začetek lupino tam. 30 00:01:55,460 --> 00:01:57,760 Dejstvo je, da mora vsebovati zagonom lupino tam 31 00:01:57,760 --> 00:02:01,740 čeprav to ni vaš končni cilj. 32 00:02:05,310 --> 00:02:12,350 Ko se nekaj zažene, kot je ta, da ni nujno, da začnete novo lupino. 33 00:02:12,350 --> 00:02:17,430 Če ste odprlo novo okno, je možno, da je povedal, da bi do urednika 34 00:02:17,430 --> 00:02:18,940 ali kakšen drug ukaz. 35 00:02:18,940 --> 00:02:20,560 V tem primeru bo urednik začeti iz nič. 36 00:02:20,560 --> 00:02:22,930 Ko konča urednik okno konča. 37 00:02:22,930 --> 00:02:24,620 To je malce nenavadno, vendar je mogoče storiti. 38 00:02:24,620 --> 00:02:27,140 V teh primerih, ne bo lupina. 39 00:02:27,140 --> 00:02:31,890 Torej ni nujno, da bo okno ali nekatere taka uporaba bruhati lupino. 40 00:02:31,890 --> 00:02:34,030 >> Shell razčleni ukaze. 41 00:02:34,030 --> 00:02:40,900 Razčlenjevanje pomeni opredelitev različnih elementov in njihovo razvrščanje. 42 00:02:40,900 --> 00:02:43,470 Okviru ukaza, popoln niz, ki ga vnesete, 43 00:02:43,470 --> 00:02:47,310 ne bo 1 ali več enoposteljnih ukaze, ki se izvedejo. 44 00:02:47,310 --> 00:02:50,050 Drugi elementi so lahko argumenti. 45 00:02:50,050 --> 00:02:55,020 Obstajajo lahko tudi posebne znake, ki vplivajo na izvedbo ukaza. 46 00:02:55,020 --> 00:02:59,710 Prav tako lahko pošljete izhod nekje razen zaslonu 47 00:02:59,710 --> 00:03:01,750 če bi ukaz običajno ga pošljite na zaslonu. 48 00:03:01,750 --> 00:03:04,390 To je mogoče preusmeriti vhoda, to lahko storite tudi druge stvari. 49 00:03:04,390 --> 00:03:08,120 Obstajajo različne druge simbole, znake in tako naprej. 50 00:03:08,120 --> 00:03:13,600 Razčlenjevanju vključuje odkrivanje in razlagi teh stvari. 51 00:03:13,600 --> 00:03:19,560 >> Zdaj, če ne obstajajo več vprašanj, kar je precej verjetno, saj ne obstajajo več ljudi, 52 00:03:19,560 --> 00:03:24,620 bomo šli na moj naslednji strani tukaj. 53 00:03:24,620 --> 00:03:29,170 >> Sem že prej dejal, da je začetna lupina Bourne shell. 54 00:03:29,170 --> 00:03:31,550 Obstajajo drugi. 55 00:03:31,550 --> 00:03:34,520 Ena je C-shell. Ukaz je csh. 56 00:03:34,520 --> 00:03:36,830 Ime C-shell je samo besedna igra. 57 00:03:36,830 --> 00:03:41,260 Ta lupina je bila uvedena z Berkeley Unix v sredini 1970-ih. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix je Prvinsko dogodek v razvoju Unix. 59 00:03:44,830 --> 00:03:48,770 To je bila velika revolucija in ki vključuje uvedbo te lupine. 60 00:03:48,770 --> 00:03:50,790 Razlog za to besedno igro, C-shell, 61 00:03:50,790 --> 00:03:56,490 je, da ima C-shell nekatere značilnosti v njem, ki spominjajo na jezik C, 62 00:03:56,490 --> 00:03:59,740 ki Bournova lupina nima - 63 00:03:59,740 --> 00:04:02,140 ali pa niso imeli v tistem času. 64 00:04:02,140 --> 00:04:05,190 Tam je tudi TC-shell. 65 00:04:05,190 --> 00:04:07,360 To je nadgradnja C-lupini. 66 00:04:07,360 --> 00:04:11,470 To ima še dodatne funkcije, od katerih so mnogi koristni za interaktivno uporabo, 67 00:04:11,470 --> 00:04:16,050 kot opozarja ukaze v mehanizmu zgodovine, 68 00:04:16,050 --> 00:04:18,459 katere bom opisal nekoliko kasneje - 69 00:04:18,459 --> 00:04:23,120 na enostaven način, po vzoru urednik. 70 00:04:23,120 --> 00:04:29,170 Ima tudi vezi, ki vam omogočajo, da se veže na kratko ključno niz daljši ukaz. 71 00:04:29,170 --> 00:04:31,440 Mi ne bomo dobili v to danes. 72 00:04:31,440 --> 00:04:33,650 To ima nekaj značilnosti, ki so koristne za programiranje. 73 00:04:33,650 --> 00:04:37,020 Vendar, C-lupina ni pogosto uporablja za programiranju. 74 00:04:37,020 --> 00:04:39,080 Programi shell, če niste že veste, 75 00:04:39,080 --> 00:04:41,690 so programi, ki so sestavljeni iz značilnosti lupine. 76 00:04:41,690 --> 00:04:43,220 Lahko bi vodenje teh programov, kot je. 77 00:04:43,220 --> 00:04:46,760 Pišete kup ukazov lupine v datoteko in izvajajo datoteko. 78 00:04:46,760 --> 00:04:49,760 Vam ni treba, da ga pripravijo. To je interpretativna jezik. 79 00:04:49,760 --> 00:04:57,320 Stavek C-shell je zdaj dvoumno, saj lahko nanaša le na izvirno C-lupine, csh, 80 00:04:57,320 --> 00:05:01,200 ali za vse C-lupin, vključno tcsh. To je malce dvoumno. 81 00:05:01,200 --> 00:05:08,250 >> Kasneje lupine Korn, ksh, poimenovana po programer, Korn. 82 00:05:08,250 --> 00:05:14,160 Ta lupina poskušal vključiti v 1 lupino 83 00:05:14,160 --> 00:05:16,960 prednosti C-lupini za interaktivno uporabo 84 00:05:16,960 --> 00:05:19,230 in Bournova lupina za programiranje. 85 00:05:19,230 --> 00:05:25,440 To je bil uporabljen kot interaktivno lupino, ki ga nekateri ljudje - manjšino. 86 00:05:25,440 --> 00:05:32,050 Kasneje, čeprav je bil še en uvod, bash lupini, BASH, 87 00:05:32,050 --> 00:05:35,290 spet besedna igra, Bourne-spet lupini. 88 00:05:35,290 --> 00:05:43,830 To je razširitev lupine Bourne. Korn je prav. Oba sta. 89 00:05:43,830 --> 00:05:48,100 Ima enake cilje Korn o združil C-shell je 90 00:05:48,100 --> 00:05:50,980 in prednosti Bournova lupina je v 1. lupini. 91 00:05:50,980 --> 00:05:56,810 Mnoge izboljšave v Korn so vključene tudi v Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, vendar pa je bolj in je zato prednostna. 93 00:06:00,710 --> 00:06:05,180 Bourne-spet lupini in Korn se imenujejo Bourne tipa lupine 94 00:06:05,180 --> 00:06:07,730 , ker vsebujejo značilnosti Bournova lupina je, 95 00:06:07,730 --> 00:06:11,180 ki so nezdružljive v nekaterih pogledih C-lupin. 96 00:06:11,180 --> 00:06:15,520 Obstajajo druge lupine poleg tistih, nekatere namenjene za omejeno uporabo, 97 00:06:15,520 --> 00:06:20,670 morda omejena na nekaterih ukazov, morda specializirane namene, ne uporabljajo prav pogosto. 98 00:06:20,670 --> 00:06:24,240 >> Ok. Next item tukaj. 99 00:06:31,300 --> 00:06:38,970 Bash shell je postala povezana z različnimi oblikami Linux. 100 00:06:38,970 --> 00:06:41,550 Nisem prepričan, če to velja za vsako obliko. 101 00:06:41,550 --> 00:06:43,280 Obstaja veliko oblik tam in sem jih vse ne uporabljajo, 102 00:06:43,280 --> 00:06:46,870 ampak v tistih, ki so bili uporabljeni je postala povezana z njim. 103 00:06:46,870 --> 00:06:49,670 Kolikor vem, ni ničesar Bash 104 00:06:49,670 --> 00:06:52,210 zaradi česar je več združljiva s Linux 105 00:06:52,210 --> 00:06:55,020 kot katerikoli drugi kombinaciji lupine in operacijskega sistema. 106 00:06:55,020 --> 00:06:59,690 Mislim, da je to verjetno le odraža naklone programerje. 107 00:06:59,690 --> 00:07:07,500 To je postal povezan z Linux je še en razlog, da raje Bash za KSH 108 00:07:07,500 --> 00:07:11,820 ker so stvari, ki bi lahko bili napisani v njem, in je verjetno, da se širijo. 109 00:07:11,820 --> 00:07:15,410 Dam ti druge razloge za to kasneje. 110 00:07:15,410 --> 00:07:21,330 Bournova lupina skripti naj bi potekal v okviru Korn ali Bash. 111 00:07:21,330 --> 00:07:22,650 Če pišete nekaj za Bournova lupina, 112 00:07:22,650 --> 00:07:26,180 ga verjetno lahko izvrši pod ksh ali bash. 113 00:07:26,180 --> 00:07:30,610 Korn skripte bo verjetno potekal v okviru Bash, vendar ne morem jamčiti, da. 114 00:07:30,610 --> 00:07:36,040 Kasneje tukaj, C-shell skripte potekal v okviru TC lupini. 115 00:07:38,850 --> 00:07:41,690 C-shell bil nikoli dejansko v veliki meri uporabljajo za skripte 116 00:07:41,690 --> 00:07:48,110 saj Bourne shell in kasneje so bolje za ta namen lupine Bourne tipa. 117 00:07:48,110 --> 00:07:50,620 Tako, da res ni tako pomembno. 118 00:07:50,620 --> 00:07:53,480 Obstaja precej veliko Bournova lupina skripte, ki so bile napisane že davno, 119 00:07:53,480 --> 00:07:56,860 pred Korn in Bourne-spet shell so bili uvedeni. 120 00:07:56,860 --> 00:07:59,300 Tisti, ki so še vedno v uporabi, ki je del operacijskih sistemov, 121 00:07:59,300 --> 00:08:01,590 in tako jih boste našli, če pogledaš v operacijski sistem 122 00:08:01,590 --> 00:08:03,760 ali nekaj starih programskih paketov. 123 00:08:03,760 --> 00:08:12,840 >> Bash je do neke mere postane neke vrste lingua franca za operacijske sisteme. 124 00:08:12,840 --> 00:08:17,580 To je že razširjen operacijski sistem Windows in VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, v primeru, da ne veste, je lastniški operacijski sistem 126 00:08:20,440 --> 00:08:25,480 Digital Equipment Corporation, ki je še vedno v uporabi, predvsem v zakulisju. 127 00:08:25,480 --> 00:08:29,250 In če se dogaja, da teče na različnih operacijskih sistemih, 128 00:08:29,250 --> 00:08:31,110 verjetno se ljudje nagibajo k premik za to. 129 00:08:31,110 --> 00:08:33,840 Toda ta razvoj je razmeroma nova. 130 00:08:33,840 --> 00:08:39,490 To je šele začetek, tako da ne morem napovedati, če se bo to izkazalo za resnično, da nekako lingua franca. 131 00:08:39,490 --> 00:08:43,539 Tudi zato, ker datotek in knjižnice poti pa se razlikujejo 132 00:08:43,539 --> 00:08:46,210 med temi različnimi operacijskimi sistemi, 133 00:08:46,210 --> 00:08:50,250 morda ne boste mogli napisati Bash skripta na eni operacijski sistem 134 00:08:50,250 --> 00:08:51,840 in potem jih predvajajo na drugo. 135 00:08:51,840 --> 00:08:54,440 Vi bi morali imeti možnost, da se premaknete med različnimi Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Operacijskih sistemov Mac OS, vendar ni nujno, da Windows ali VMS. 137 00:08:59,020 --> 00:09:01,390 Morda boste morali spremeniti opise datoteke ime poti, 138 00:09:01,390 --> 00:09:03,180 in nekatere knjižnice lahko drugačna, 139 00:09:03,180 --> 00:09:05,230 ki lahko vplivajo na način, da so nekateri ukazi delo 140 00:09:05,230 --> 00:09:09,730 ali kako obdelati argumente in podobno. 141 00:09:09,730 --> 00:09:19,230 Poleg tega je še ena previdnost tukaj je, da ni nobenega zagotovila, 142 00:09:19,230 --> 00:09:23,570 da vse različne školjke, ki sem jih omenili - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn, Bourne-spet lupini - bo na voljo v vsakem Unixu 144 00:09:29,880 --> 00:09:33,750 ali Linux ali računalnik Mac OS. 145 00:09:33,750 --> 00:09:35,620 Preprosto ne bi bilo tam. 146 00:09:35,620 --> 00:09:38,300 To je eden od opozorila tukaj. 147 00:09:38,300 --> 00:09:41,490 To je žalostno, omejitev tukaj, ker bi radi stvari povsod delo, 148 00:09:41,490 --> 00:09:44,380 ampak žal, ne more sklicevati na to. 149 00:09:44,380 --> 00:09:47,230 >> Ok. Naslednja tukaj. 150 00:09:50,280 --> 00:09:54,370 Recimo, da želite napisati shell skript, 151 00:09:54,370 --> 00:09:57,170 Program, ki sestoji iz ukazov lupine. 152 00:09:57,170 --> 00:10:01,200 Napišete svoje ukaze, da jih v spis, in izvajajo datoteko. 153 00:10:01,200 --> 00:10:04,230 Kaj pa, če želite vključiti argumente? 154 00:10:04,230 --> 00:10:09,650 V primeru operacij lupine, so argumenti imenujemo parametri ali položajne parametre 155 00:10:09,650 --> 00:10:15,940 in jih bomo se imenuje po znaku za dolar in številčne oznake, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Torej, če je scenarij to ime, bi moj prvi argument je argument 1 157 00:10:27,000 --> 00:10:30,540 in moj drugi morda argument 2, 158 00:10:30,540 --> 00:10:34,110 in v moji pisavi, če želim, da se sklicuje na te stvari - 159 00:10:34,110 --> 00:10:36,810 dajmo izbrisati to, ker sem v resnici ne dogaja, da bi sistem deloval - 160 00:10:36,810 --> 00:10:42,160 znotraj moj scenarij bi jaz imel $ 1 do nanašajo na arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, ki bo prišel ven na tak način, arg2. 162 00:10:45,890 --> 00:10:50,080 Torej ti simboli so na voljo za sklicevanje na trditve, 163 00:10:50,080 --> 00:10:52,390 in tiste, veljajo za vse lupin. 164 00:10:52,390 --> 00:10:56,520 Poleg tega obstajajo še drugi znaki. 165 00:10:56,520 --> 00:11:01,700 $ * Se nanaša na celoten seznam argumentov, vse od njih. 166 00:11:01,700 --> 00:11:05,390 $ # Nanaša na število argumentov. 167 00:11:05,390 --> 00:11:07,910 Tudi to velja za vse lupin. 168 00:11:07,910 --> 00:11:15,540 Ti simboli, * in # se lahko uporablja s temi pomene v drugih mestih tudi. 169 00:11:15,540 --> 00:11:17,940 Mi se ne bomo dobili v to. 170 00:11:17,940 --> 00:11:20,460 >> Shell določilo črta. Kaj je to? 171 00:11:20,460 --> 00:11:27,760 Recimo, da ste napisal scenarij in to je za neko lupino in ga želite zagnati. 172 00:11:27,760 --> 00:11:33,500 Kako veš, kaj lupini vaš operacijski sistem bo uporabljal zagnati skript? 173 00:11:33,500 --> 00:11:37,230 Na neki točki bi si domnevati, da bi bilo teči v Bournova lupina 174 00:11:37,230 --> 00:11:39,440 Če ni rekel drugače, 175 00:11:39,440 --> 00:11:41,730 ampak ljudje se ne bi pisal skripte v Bournova lupina, da je veliko več 176 00:11:41,730 --> 00:11:43,750 in ti niti ne more zanašati na več. 177 00:11:43,750 --> 00:11:48,740 Torej, tukaj imamo lupine določilo linijo tukaj. 178 00:11:48,740 --> 00:11:52,450 , Ki določa Bash. 179 00:11:52,450 --> 00:11:56,750 Opozarjamo pa, da jo podaja v ime poti, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Če ima računalnik bash lupino, vendar ne v imenik bin / bin, to ne bo delovalo. 181 00:12:02,870 --> 00:12:06,870 To je še en kvalifikant, še ena previdnost tukaj. 182 00:12:06,870 --> 00:12:09,500 Lojtra je komentar linija znak. 183 00:12:09,500 --> 00:12:12,300 To velja za vse školjke. 184 00:12:12,300 --> 00:12:18,610 Zlasti v tem primeru, #! na začetku skripta, je poseben primer. 185 00:12:18,610 --> 00:12:23,410 , Ki določa lupino, v kateri teči scenarij. 186 00:12:23,410 --> 00:12:30,230 Kot sem rekel, to ne bi bilo isto mesto / bin. 187 00:12:30,230 --> 00:12:34,880 Poleg tega obstaja še ena stvar tukaj. 188 00:12:34,880 --> 00:12:41,250 Če ste jo pravkar uporabljate lojtra brez klicajem in ime poti, 189 00:12:41,250 --> 00:12:44,640 da je treba navesti C-lupino. 190 00:12:44,640 --> 00:12:48,300 Vendar jaz ne priporočam početje to zato, ker nisem mogel zagotoviti 191 00:12:48,300 --> 00:12:49,750 da bo ta vedno deluje. 192 00:12:49,750 --> 00:12:52,220 Če želite carski lupino, bi bilo bolje, da tako rečem. 193 00:12:52,220 --> 00:12:58,450 Potem je tu še nekaj precej zmedeno tukaj. 194 00:12:58,450 --> 00:13:03,940 Če uporabljate lupino določilo črto kot / bin / bash 195 00:13:03,940 --> 00:13:07,070 in da lupina ni na voljo tam, 196 00:13:07,070 --> 00:13:10,680 ni taka stvar kot je / bin / bash na določenem računalniku ne, 197 00:13:10,680 --> 00:13:14,330 bodisi zato, ker nima Bash ali zato, ker je na drugi lokaciji, 198 00:13:14,330 --> 00:13:17,450 boste dobili napako, vam pove, da je skripta, ki jo je pretekel ne obstaja. 199 00:13:17,450 --> 00:13:21,510 In seveda tvoj scenarij obstaja, tako da sporočilo o napaki, je zmedeno. 200 00:13:21,510 --> 00:13:24,810 Razlog, da operacijski sistem, vam daje to napako 201 00:13:24,810 --> 00:13:28,370 ali, natančneje, da je vaš interaktivno lupino, v kateri ste tekmovanje v teku to daje to napako, 202 00:13:28,370 --> 00:13:33,510 , da se poročila ukaz, ki ga uporablja, ki je ime scenarija. 203 00:13:33,510 --> 00:13:36,920 Ta ukaz učinkovito imenuje lupino z imenom skripta. 204 00:13:36,920 --> 00:13:39,330 To je, kjer boste dobili, da je zmedeno sporočilo o napaki. 205 00:13:39,330 --> 00:13:42,980 Drug način, da pokličete shell skript 206 00:13:42,980 --> 00:13:45,910 je z določitvijo lupine v ukazni vrstici, kot je tukaj. 207 00:13:45,910 --> 00:13:52,510 To je ukaz. Ta pravi, da teče bash in nato zaženite svoj skript v bash. 208 00:13:52,510 --> 00:13:55,680 Da bo prednost pred določilo linije, 209 00:13:55,680 --> 00:14:02,090 in to je značilnost vam omogoča, da predvidi različno pathnames. 210 00:14:02,090 --> 00:14:04,840 Če si dal ukaz, bo operacijski sistem iskati ta ukaz 211 00:14:04,840 --> 00:14:06,410 v različnih krajih. 212 00:14:06,410 --> 00:14:08,820 Če je na voljo, bi jo našli. 213 00:14:08,820 --> 00:14:12,290 Računalnik bo našel Bash kjerkoli se nahaja, in ga vodijo, 214 00:14:12,290 --> 00:14:15,470 tako da vam ni treba potem biti zaskrbljeni, če ga najde. 215 00:14:15,470 --> 00:14:17,360 Obstajajo lahko tudi druge skrbi tukaj, 216 00:14:17,360 --> 00:14:20,830 kot če obstaja več kot 1 različica Bash, kar je mogoče, čeprav malo verjetno. 217 00:14:20,830 --> 00:14:23,540 Tako da je še en način za spopadanje s temi stvarmi. 218 00:14:23,540 --> 00:14:30,480 Določilo linije lahko pokličete nobene lupino. 219 00:14:30,480 --> 00:14:34,480 Prav tako lahko pokličete tudi druge stvari, kot lupine. 220 00:14:34,480 --> 00:14:37,940 Primeri, ki jih imam tukaj sed, ki je urednik tok; 221 00:14:37,940 --> 00:14:39,900 awk, ki je jezik, obdelava za vzorec; 222 00:14:39,900 --> 00:14:43,680 in perl, zelo visoko razvita skriptni jezik. 223 00:14:43,680 --> 00:14:47,570 Če si dal določilo črto, ki označuje eno od teh programov na začetku, 224 00:14:47,570 --> 00:14:51,270 bo šel neposredno v tem programu, ne pa začetek lupino. 225 00:14:51,270 --> 00:14:54,030 Ti programi so meje svojih zmožnosti. 226 00:14:54,030 --> 00:14:58,790 Perl je zelo sposoben. Sed je urednik. To lahko počnejo stvari, onkraj preprosto urejanje. 227 00:14:58,790 --> 00:15:03,300 Ampak to je lahko težko programirati, da. 228 00:15:03,300 --> 00:15:09,670 Poleg tega, da posredujete argumente in stvari, skript, nemogoča ali zavajajoče. 229 00:15:09,670 --> 00:15:15,030 Torej v teh primerih z awk ali sed, to je, vsaj po mojih izkušnjah, 230 00:15:15,030 --> 00:15:18,910 bolje napisati shell skripta in klicev awk ali sed iz skripte 231 00:15:18,910 --> 00:15:24,660 namesto da bi awk ali sed kot scenarij določilo linijo. 232 00:15:24,660 --> 00:15:26,980 Perl je zelo raznolika jezik, kot sem rekel. 233 00:15:26,980 --> 00:15:30,050 Ne morete zagnati interaktivne ukaze v perl, 234 00:15:30,050 --> 00:15:32,660 kar pomeni, da ni mogoče preizkusiti dele skripte, da ste v razvoju 235 00:15:32,660 --> 00:15:33,970 tako, da jih teče interaktivno. 236 00:15:33,970 --> 00:15:36,160 Vendar pa je zelo sposoben jezik 237 00:15:36,160 --> 00:15:40,960 in se je razvila v zelo široko uporablja orodje. 238 00:15:40,960 --> 00:15:45,720 To je samo malo je oklepaji pripombo o določilo linij. 239 00:15:45,720 --> 00:15:50,610 >> Na vse ali večino oblik Linux - še enkrat, ne morem biti prepričan, da je vse - 240 00:15:50,610 --> 00:15:57,900 in Mac OS, če vtipkate csh dobiš tcsh, 241 00:15:57,900 --> 00:16:00,570 in če ste tip sh dobiš zabavo. 242 00:16:00,570 --> 00:16:05,020 Bili so tam poskušajo, da bi vam bolj napredne različice teh školjk, 243 00:16:05,020 --> 00:16:07,940 vendar je to lahko zavajajoče. 244 00:16:07,940 --> 00:16:16,720 Če napišete skript uporabljate tcsh ali bash funkcije, medtem ko kliče csh ali sh 245 00:16:16,720 --> 00:16:22,230 in nato poskusite, da jih predvajajo na računalniku, ki nima tcsh in bash, 246 00:16:22,230 --> 00:16:25,050 boste morda dobili nekaj napak, če obstajajo ukazi tam 247 00:16:25,050 --> 00:16:27,970 ki te školjke ne priznavajo. 248 00:16:27,970 --> 00:16:34,120 Poleg tega se lahko, da ste vpoklicani lupino na vašem računalniku 249 00:16:34,120 --> 00:16:37,700 kliče kot sh ali csh in nato dobili več naprednih lupine. 250 00:16:37,700 --> 00:16:41,440 Morda niti ne pomislite na to, da ste z uporabo bolj napredno lupino. 251 00:16:41,440 --> 00:16:45,670 Torej je to potencialna past. 252 00:16:45,670 --> 00:16:50,290 Kako je bilo ugotovljeno, da če vtipkate sh dobiš Bash, 253 00:16:50,290 --> 00:16:55,580 Če ste tip csh dobiš tsch? 254 00:16:55,580 --> 00:16:59,940 Obstajajo stvari v teh računalnikov imenovanih links 255 00:16:59,940 --> 00:17:06,460 ki se lahko poveže z datoteko imen se nanašajo na isto stvar. 256 00:17:06,460 --> 00:17:12,180 To je lahko bodisi 2 imena za iste datoteke ali datoteke, katere namen je, da se nanašajo na druge datoteke. 257 00:17:12,180 --> 00:17:17,550 Pravijo jim trde in simbolne povezave. Mi se danes ne bo šlo v to anymore. 258 00:17:17,550 --> 00:17:21,619 Obstajajo lahko tudi ločene datoteke - 1 slika sh, 1 slika Bash - 259 00:17:21,619 --> 00:17:23,880 vendar sta oba poganjal bash. 260 00:17:23,880 --> 00:17:29,350 Potem je tu še en kvalifikant tukaj. 261 00:17:29,350 --> 00:17:42,640 Če kličeš enega od teh školjk eno ime, 262 00:17:42,640 --> 00:17:46,640 morda mislite, da bi dobili enako funkcionalnost, kot jo kliče z drugim imenom. 263 00:17:46,640 --> 00:17:49,700 No, to je pravzaprav ni nujno res. 264 00:17:49,700 --> 00:17:55,020 Ti ukazi lahko preuči ime, s katerim so bili imenovani 265 00:17:55,020 --> 00:18:00,020 in jih lahko, na podlagi tega imena, obnašajo drugače. 266 00:18:00,020 --> 00:18:02,740 Obstajajo lahko vprašanja poskuša v skladu s standardom. 267 00:18:02,740 --> 00:18:06,060 Nekateri ste morda slišali standarda POSIX ali drugo, 268 00:18:06,060 --> 00:18:08,730 morda druge funkcije. 269 00:18:08,730 --> 00:18:14,520 To lahko včasih izbere argumente ukazni vrstici 270 00:18:14,520 --> 00:18:17,310 ali z določitvijo lupine spremenljivk. 271 00:18:17,310 --> 00:18:22,170 Kliče kot sh ali bash lahko dejansko privede do drugačne izvedbe 272 00:18:22,170 --> 00:18:25,300 tudi če je ista datoteka, ki ste izvršitve. 273 00:18:25,300 --> 00:18:31,800 Še ena stvar, ki menijo, da je, tudi če drug računalnik tcsh in bash, 274 00:18:31,800 --> 00:18:35,310 če niso povezani, saj so na lokalnem računalniku 275 00:18:35,310 --> 00:18:37,990 če imate Linux in Mac OS lokalni računalnik, 276 00:18:37,990 --> 00:18:45,630 potem spet boste dobili lupino, ki jo imenujemo sh ali csh, ne tisti, ki bi jih raje. 277 00:18:50,430 --> 00:19:01,130 Sedanji Bournova lupina ima izboljšav manjši od tistih v Bash 278 00:19:01,130 --> 00:19:06,100 vendar peto tiste iz prvotne Bourneovi lupini. 279 00:19:06,100 --> 00:19:09,690 Kot rezultat, da tudi tok Bournova lupina, SH, 280 00:19:09,690 --> 00:19:14,560 tudi takrat, ko to ni Bash, podoben jezik C več kot C-lupina. 281 00:19:14,560 --> 00:19:20,460 To ni bilo res, ko je bila prvič ustvarjena C-shell, vendar pa se je razvila v to smer. 282 00:19:20,460 --> 00:19:26,560 Morda boste opazili, da sem vse te shell imena, razen za Bournova lupina 283 00:19:26,560 --> 00:19:30,640 nekaj navesti, za katere lupina so - csh bash - 284 00:19:30,640 --> 00:19:32,550 ampak Bournova lupina je le sh. 285 00:19:32,550 --> 00:19:34,910 Zakaj? Da je bila prvotna lupina. 286 00:19:34,910 --> 00:19:37,770 Bilo je lupina takrat, ne lupina, 287 00:19:37,770 --> 00:19:41,090 in ker je lupina, ni bilo razloga, da se razlikuje od druge lupine. 288 00:19:41,090 --> 00:19:45,030 Torej, to je razlog, zakaj je to ime in še vedno počne. 289 00:19:50,630 --> 00:19:58,990 >> To top tukaj je črta iz baze podatkov, gesel za račun imam tam 290 00:19:58,990 --> 00:20:01,680 na drugem računalniku. 291 00:20:01,680 --> 00:20:08,300 Bom poskusil, da bi dobili to ime, tako da lahko vidite, da je del, na koncu lupino. 292 00:20:09,720 --> 00:20:15,450 Podatkovna baza geslo ima značilnosti prijavo za vse uporabnike. 293 00:20:15,450 --> 00:20:20,330 Na začetku je ime, ki si lahko ogledate zadnje črke 2 rudnika zdaj. 294 00:20:20,330 --> 00:20:23,970 Polja Tu so ločeni z debelo črevo. 295 00:20:23,970 --> 00:20:28,210 Zadnje polje, kot lahko vidite, je bin / tcsh, lupina. 296 00:20:28,210 --> 00:20:30,230 To je lupina določilo. 297 00:20:30,230 --> 00:20:33,240 Tukaj je nekaj zanimivega tukaj. 298 00:20:33,240 --> 00:20:36,950 Ko je bil Unix najprej razvil, je bil samo 1 lupina, 299 00:20:36,950 --> 00:20:38,350 tako da ni bilo izbire tam. 300 00:20:38,350 --> 00:20:45,570 Torej, zakaj jim omogočajo, polje v podatkovni bazi gesel za določitev lupino? 301 00:20:45,570 --> 00:20:47,920 Ne vem, ampak to je srečo, da so to storili. 302 00:20:47,920 --> 00:20:52,030 To je precej težko, da bi spremembe v formatu geslo baze podatkov 303 00:20:52,030 --> 00:20:54,420 ker mnogi programi se nanašajo na njegovo obliko 304 00:20:54,420 --> 00:20:57,720 in bi bilo treba prepisovati. 305 00:20:57,720 --> 00:21:04,130 To je posrečena ali naključen razvoj, ki so vključene tem področju. 306 00:21:04,130 --> 00:21:12,780 Da je neke vrste geslo vrstici datoteke se uporabljajo na vseh računalnikih, Unix in Linux, kolikor vem. 307 00:21:12,780 --> 00:21:14,650 Mac ima svoj sistem. 308 00:21:14,650 --> 00:21:17,810 Je dejansko datoteko gesel s črtami v tej obliki, 309 00:21:17,810 --> 00:21:21,060 vendar to ni v katerih so opredeljene značilnosti uporabnikov. 310 00:21:21,060 --> 00:21:24,200 Druga pripomba oklepaji tam. 311 00:21:36,470 --> 00:21:46,020 >> Če kličeš lupino, ga lahko imenujemo kot podlupine vaših obstoječih lupin. 312 00:21:46,020 --> 00:21:50,480 Torej, če grem tukaj, kaj je znebiti teh stvari. 313 00:21:50,480 --> 00:21:53,350 Tukaj sem v C-lupini. 314 00:21:56,830 --> 00:22:01,200 Da je spremenljivka, ki natančno opredeljuje moje lupine, 315 00:22:01,200 --> 00:22:04,300 dejansko ni vedno zanesljiv način za ugotavljanje, kaj lupine ste tekmovanje v teku, 316 00:22:04,300 --> 00:22:06,220 toda v tem primeru je. 317 00:22:06,220 --> 00:22:08,040 Kaj pa, če sem tip - 318 00:22:09,970 --> 00:22:12,470 Zdaj sem v Bash. 319 00:22:12,470 --> 00:22:19,540 Nekatere stvari se bodo enaki. Ali mi pravi moje ukaze. 320 00:22:19,540 --> 00:22:24,500 Če me ustavi nazaj na mojo C-lupini, LS, isto. Kajne? 321 00:22:24,500 --> 00:22:28,890 fg, novo znanje, nazaj na moj Bash lupine. 322 00:22:28,890 --> 00:22:38,290 pwd, trenutni imenik, nazaj v C-lupini. 323 00:22:38,290 --> 00:22:43,180 pwd, drugačna imenik - pravzaprav ne razlikuje imenik v tem primeru. 324 00:22:43,180 --> 00:22:45,110 To je isti imenik. 325 00:22:45,110 --> 00:22:50,000 Recimo, da želim, da pokličete ukaz tukaj: Kje ls. 326 00:22:50,000 --> 00:22:52,140 Kaj naj bi to naredil? 327 00:22:52,140 --> 00:22:53,670 To mi pove, kje ukaz ls, 328 00:22:53,670 --> 00:22:56,670 tista, ki mi daje imenika, se nahaja v ls. 329 00:22:56,670 --> 00:23:01,460 Vrnimo se k Bash lupine. Poskusimo isto stvar. 330 00:23:01,460 --> 00:23:05,830 Hmm, zanimivo tam, kjer je: ukaz ni bil najden. 331 00:23:05,830 --> 00:23:07,400 Zakaj je tako? 332 00:23:07,400 --> 00:23:11,570 Kjer je ukaz je vgrajena v C-lupini. 333 00:23:11,570 --> 00:23:15,630 To ni ukaz, da je treba brati v spominu od nekje drugje in usmrtili. 334 00:23:15,630 --> 00:23:20,310 C-shell ga zažene s prenosom izvršitve, da del svoje lastne kode 335 00:23:20,310 --> 00:23:22,790 in to ne v lupini Bash. 336 00:23:22,790 --> 00:23:25,710 Torej Bash, ki nimajo takega vgrajen ukaz, išče ga, ga ne najdejo, 337 00:23:25,710 --> 00:23:27,720 in smo dobili napako. 338 00:23:27,720 --> 00:23:32,290 Tako da imamo Bash lupino teče pod C-lupine in pravimo, da je sub-shell. 339 00:23:32,290 --> 00:23:38,480 In samo v primeru, da ste radovedni, bash lupini ima svoj način za lociranje ukazov. 340 00:23:38,480 --> 00:23:42,590 delčku zgoščenega se nanaša na dejstvo, da se lahko izvede hitreje, 341 00:23:42,590 --> 00:23:44,960 najdena hitreje. 342 00:23:44,960 --> 00:23:48,610 To je ena od izboljšav, vgrajene v nekaterih od teh školjk. 343 00:23:50,220 --> 00:23:54,200 >> Bourne tipa lupine so prednostni za programiranje. 344 00:23:54,200 --> 00:23:57,300 Imajo nadzorne strukture, kot so zanke, pogojni stavki, 345 00:23:57,300 --> 00:24:00,240 vrsta ukazov, ki jih lahko uporabite pri programskih jezikih, kot so C 346 00:24:00,240 --> 00:24:04,190 ali katerem koli jeziku. Morda ste programiranju v Javi ali karkoli. 347 00:24:04,190 --> 00:24:06,460 Lupine imajo tisti, preveč. 348 00:24:06,460 --> 00:24:11,790 Lupine Bourne tipa, zlasti Bash, imajo več 349 00:24:11,790 --> 00:24:15,730 in so izdelani z večjo prožnostjo. 350 00:24:15,730 --> 00:24:20,700 Bash shell ima nize. Prvotni Bournova lupina ne. 351 00:24:20,700 --> 00:24:26,130 Tako da je lahko precej koristno za programiranje. 352 00:24:26,130 --> 00:24:29,810 C-shell dejansko ima nize, vendar nima veliko teh drugih funkcij. 353 00:24:29,810 --> 00:24:33,450 Lupine Bourne tipa bodo izvajale hitreje 354 00:24:33,450 --> 00:24:36,520 če nimajo značilnosti, namenjene za interaktivno uporabo. 355 00:24:36,520 --> 00:24:39,340 Boste naložili stvari navzdol za en namen, to jim naloži navzdol za druge namene. 356 00:24:39,340 --> 00:24:41,520 Tam je, da kompromis ni. 357 00:24:41,520 --> 00:24:44,510 Te funkcije, ki so namenjeni za interaktivno uporabo 358 00:24:44,510 --> 00:24:46,920 Res so malo ali nič uporabe skripte. 359 00:24:46,920 --> 00:24:52,160 Možno je, da uporabite interaktivni sub-lupino, tako kot tisti, ki sem začel tam 360 00:24:52,160 --> 00:24:57,780 preizkusiti ukazov, ki jih nameravate uporabiti v scenariju. 361 00:24:57,780 --> 00:25:01,180 To je tisto, kar ni mogoče storiti z perl. To lahko storite z lupinami. 362 00:25:01,180 --> 00:25:04,850 Tudi objekti, kot za zanke in tako naprej, se lahko vodijo interaktivno. 363 00:25:04,850 --> 00:25:07,000 So včasih koristno, da delujejo interaktivno, 364 00:25:07,000 --> 00:25:10,180 vendar je bolj verjetno ste jih uporabljajo za razvoj scenarija. 365 00:25:15,690 --> 00:25:17,400 >> Vzdevki. 366 00:25:17,400 --> 00:25:21,630 To se bo o C-lupini. 367 00:25:23,270 --> 00:25:27,570 Zgodovina mehanizem, kjer boste dobili nazaj v prejšnjih ukazov 368 00:25:27,570 --> 00:25:30,340 ali njihovih delov, ki ste jih že teče. 369 00:25:30,340 --> 00:25:33,680 Spet o C-lupini, Bournova lupina in Korn imajo te stvari, 370 00:25:33,680 --> 00:25:35,620 ampak ne bom priti v njih. 371 00:25:35,620 --> 00:25:40,340 Torej, tukaj je nekaj koristnih vzdevki, ki jih imam. 372 00:25:43,100 --> 00:25:44,880 Namesto da vnesete ls - to je skupno ukaz - 373 00:25:44,880 --> 00:25:47,620 samo tip l in prihranite 1 značaja. 374 00:25:47,620 --> 00:25:50,600 Je z različnimi možnostmi, vse tiste delo. 375 00:25:50,600 --> 00:25:54,460 Upoštevajte, da imajo te opredelitve narekovaje okoli njih. 376 00:25:54,460 --> 00:25:57,520 V teh primerih, citati niso potrebni. 377 00:25:57,520 --> 00:26:00,100 Če lahko opredeliti tiste vzdevke brez narekovajev, bi to še vedno dela. 378 00:26:00,100 --> 00:26:02,910 Priporočljive so. 379 00:26:02,910 --> 00:26:04,900 Obstajajo primeri, v katerih ne morete uporabiti citat 380 00:26:04,900 --> 00:26:08,050 ker hočeš nekaj zgodilo ki bi quote preprečiti. 381 00:26:08,050 --> 00:26:11,210 Včasih lahko citiram del opredelitve, vendar ne vse. 382 00:26:11,210 --> 00:26:17,010 Prav tako je na splošno priporočljivo, da uporabite enojne narekovaje namesto dvojne narekovaje. 383 00:26:17,010 --> 00:26:19,750 Dvojne kotacije imajo učinke na spremenljivih opredelitev, 384 00:26:19,750 --> 00:26:22,950 še posebej zaradi česar jih je mogoče ovrednotiti namesto da bi ga ustavil. 385 00:26:22,950 --> 00:26:25,910 Zakaj bi si želeli, da se ustavi oceno? 386 00:26:25,910 --> 00:26:28,710 In kako kotacije naredil za nas? 387 00:26:28,710 --> 00:26:32,600 >> Tukaj je ukaz, ki bi vas lahko zanimale. 388 00:26:32,600 --> 00:26:35,470 "Ali je g *" 389 00:26:35,470 --> 00:26:37,640 g *, kot verjetno veste, je nadomestni izraz 390 00:26:37,640 --> 00:26:40,290 za vseh imen datotek, ki se začnejo z g. 391 00:26:40,290 --> 00:26:46,410 Če sem samo napisati na ukaz ls g *, bom dobil seznam vseh teh imen v mojem trenutnem imeniku. 392 00:26:46,410 --> 00:26:50,870 Če bi opredelil ta vzdevek, saj je tukaj z narekovaji, 393 00:26:50,870 --> 00:26:56,990 pa bo trajal ta ukaz v vašem trenutnem imeniku, kjer ste ga teče. 394 00:26:56,990 --> 00:27:01,250 Ampak, če naletite na opredelitev alias brez narekovajev, 395 00:27:01,250 --> 00:27:09,620 Ocenila bo nadomestni G *, ko teče ta definira ukaz. 396 00:27:09,620 --> 00:27:14,400 Tako opredelitev alias bo ls sledi seznam datotek v direktoriju 397 00:27:14,400 --> 00:27:16,310 v katerem ukaz alias se izvrši, 398 00:27:16,310 --> 00:27:19,180 glede na to, kje ste dejansko nameravajo zagnati ukaz. 399 00:27:19,180 --> 00:27:26,360 To ni veliko uporabo in enojne narekovaje preprečiti oceno zvezdico. 400 00:27:26,360 --> 00:27:30,780 Torej ste pravkar dobili ločljivosti počutje ls g *. 401 00:27:30,780 --> 00:27:35,510 Potem ko zaženete alias, LGS, potem postavlja to. 402 00:27:35,510 --> 00:27:40,490 Zdaj pa so brez narekovajev, in to bo ocenila zvezdico, ko zaženete ukaz alias. 403 00:27:40,490 --> 00:27:43,900 Tako, da je ena stvar. 404 00:27:43,900 --> 00:27:46,590 Dvojne narekovaje, da bi imela enak učinek tukaj, 405 00:27:46,590 --> 00:27:50,580 vendar pa obstajajo še drugi primeri, v katerih dvojni narekovaji ne bi delovalo tako dobro. 406 00:27:50,580 --> 00:27:52,450 >> Tu je še eden. 407 00:27:52,450 --> 00:27:54,270 Morda veste ukaz grep. 408 00:27:54,270 --> 00:28:02,110 Ukaz grep se lahko uporablja za skeniranje datotek za progah, ki so določene nize. 409 00:28:02,110 --> 00:28:10,350 Torej, gremo tja in bom izhod iz mojega Bourne lupine. 410 00:28:23,570 --> 00:28:25,450 Ok. Tukaj je slika. 411 00:28:25,450 --> 00:28:31,490 Recimo, da je grep abc strune. Tukaj je. 412 00:28:31,490 --> 00:28:37,930 Če naredim grep zddd, dobim ničesar. Ok. 413 00:28:37,930 --> 00:28:40,960 Tako da najde niz, poroča, da ne bi našli, da ne poročajo o njih. 414 00:28:40,960 --> 00:28:44,930 Je izhodi nobene vrstice, ki je ta niz na njej. 415 00:28:44,930 --> 00:28:49,080 Obstajajo vse vrste možnosti, ki tukaj lahko najdete v dokumentaciji. 416 00:28:49,080 --> 00:28:52,160 Tukaj je eden od načinov, da to storite. 417 00:28:52,160 --> 00:29:03,290 Kaj pravite na to, alias grabc "grep abc"? 418 00:29:03,290 --> 00:29:09,000 To se dogaja zaradi vključitve 1 argumenta, ko je alias opredeljena. 419 00:29:09,000 --> 00:29:26,300 Torej, če naredim to tukaj, zdaj, če jaz grabc, 420 00:29:26,300 --> 00:29:30,620 Zdaj alias vključuje več kot preprostega ukaza. Prav tako ima argument. 421 00:29:30,620 --> 00:29:32,190 Tako daleč, da deluje. 422 00:29:32,190 --> 00:29:38,590 Imam še en ukaz, tukaj, ta, tako tistih, ki so različni nizi tam 423 00:29:38,590 --> 00:29:46,790 in kažejo, da to ne bi našli ničesar ni, ker se ne ujema. 424 00:29:46,790 --> 00:29:56,180 >> Kaj, če želim, da pri opredeljevanju alias vključujejo datoteko, da sem bom za iskanje 425 00:29:56,180 --> 00:30:02,970 in želim, da bi kot argument alias godalni da iščem? 426 00:30:02,970 --> 00:30:08,040 Jaz bi rad povedal, abc kot argument na moje drugo ime, 427 00:30:08,040 --> 00:30:10,870 ampak alias že določena datoteko. 428 00:30:10,870 --> 00:30:15,710 In to je, če je ta izraz pride noter 429 00:30:20,430 --> 00:30:25,270 Opazili tukaj imamo grep tako kot prej. 430 00:30:25,270 --> 00:30:28,130 Imamo datoteko tukaj, strune. 431 00:30:28,130 --> 00:30:35,610 \! ^, Nekakšen čuden izraz, mislim, če še niste videli tega. 432 00:30:35,610 --> 00:30:39,920 Klicaj je del zgodovine mehanizma C-shell. 433 00:30:39,920 --> 00:30:45,220 Lahko se spomnimo prejšnje ukaze, lahko pa opozarjajo, argumente za te ukaze in tako naprej. 434 00:30:46,760 --> 00:31:01,570 Mehanizem Zgodovina se uporablja kot del aliasing. 435 00:31:01,570 --> 00:31:07,390 Če določite črto, potem ko je klicaj, bo to nanaša na to črto na seznamu zgodovine, 436 00:31:07,390 --> 00:31:11,910 ki ne bomo dobili v zdaj, saj je to povsem druga tema. 437 00:31:11,910 --> 00:31:16,280 Možno je določiti del črte. 438 00:31:16,280 --> 00:31:22,950 Torej! 03:02 bo drugi argument v ukazu številko 3. 439 00:31:22,950 --> 00:31:30,430 Strešica tukaj v tem izrazom predstavlja prvi argument. 440 00:31:30,430 --> 00:31:34,410 Če ga ne pokažeta, katere ukaze ste se sklicuje na, 441 00:31:34,410 --> 00:31:37,300 se nanaša na neposredno prejšnjega ukaza, 442 00:31:37,300 --> 00:31:41,990 in strešica je simbol za prvi argument. 443 00:31:41,990 --> 00:31:46,820 Ker je strešica in ne številko, vam ni treba uporabljati debelo črevo, 444 00:31:46,820 --> 00:31:52,660 tako! ^ pomeni prvo trditev na prejšnji ukaz. 445 00:31:52,660 --> 00:31:55,020 Malo pomešal tukaj. 446 00:31:55,020 --> 00:31:58,450 V tem primeru, ko to uporabiti kot opredelitev alias, 447 00:31:58,450 --> 00:32:04,650 Referenčna zgodovina sklicuje na ukaze, v katerih se uporablja alias. 448 00:32:04,650 --> 00:32:08,470 Torej, to se vrača 1 ukaz za operacijo zgodovine, 449 00:32:08,470 --> 00:32:11,810 ampak kot dejavnost, alias se nanaša na ukaz, v katerem bi jo vpišete, 450 00:32:11,810 --> 00:32:14,780 pravijo, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Imamo narekovajev tukaj v njej. Kaj je Nagibnica za? 452 00:32:20,240 --> 00:32:30,810 V tem primeru, tako kot drugod, ne želimo izvesti mehanizem zgodovino 453 00:32:30,810 --> 00:32:33,680 medtem ko opredelitev vzdevek. 454 00:32:33,680 --> 00:32:37,900 Če nismo imeli poševnico tam, bi lupina potegnite v prvem argumentu 455 00:32:37,900 --> 00:32:41,870 ukaza tik preden je potekal ta ukaz, vzdevek, ki ne želimo. 456 00:32:41,870 --> 00:32:47,520 Želimo, to se bo gradilo v ukazu vzdevka za klic v argument kasneje. 457 00:32:47,520 --> 00:32:53,550 Enojnih narekovajih, ne bodo izognili klicaj, sklic zgodovino. 458 00:32:53,550 --> 00:32:57,450 Mogoče veste, izraz pobeg pomeni, da spremenijo pomen nečesa. 459 00:32:57,450 --> 00:33:00,260 V tem primeru, to pomeni, da se prepreči nekaj iz imajo poseben pomen. 460 00:33:00,260 --> 00:33:03,030 Klicaj je poseben pomen je zgodovina. 461 00:33:03,030 --> 00:33:05,790 Escape in da nima v tem smislu. 462 00:33:05,790 --> 00:33:08,080 Citati ne delaj; Nagibnica ne. 463 00:33:08,080 --> 00:33:11,900 Torej smo dejansko uporabo 2 ravni uhaja tukaj. 464 00:33:23,500 --> 00:33:29,620 Grem, da se premaknete tega ukaza v drugo okno, ne da bi ga vnesete 465 00:33:29,620 --> 00:33:35,210 z uporabo teh operacij urejanja, ki boste morda našli koristne. 466 00:33:40,620 --> 00:33:42,460 Nekaj ​​drugega tukaj vam bom pokazal. 467 00:33:42,460 --> 00:33:46,730 Če si tip alias brez argumentov, to vam pove vse svoje argumente. 468 00:33:46,730 --> 00:33:48,640 To je kup vzdevkov sem že tu 469 00:33:48,640 --> 00:33:53,400 poleg tistih, ki sem bil z danes tukaj. 470 00:33:53,400 --> 00:34:00,220 Ampak, če sem samo tip z imenom vzdevkom, da mi pove, kaj to pomeni. 471 00:34:00,220 --> 00:34:03,390 Opazili, da so citati več in poševnica nazaj ni več. 472 00:34:03,390 --> 00:34:08,620 Ta niz tukaj je rezultat te opredelitve alias, 473 00:34:08,620 --> 00:34:12,199 in zdaj je samo! ^ v njem. 474 00:34:12,199 --> 00:34:19,150 To bo pogledati v datoteki strune za karkoli. 475 00:34:19,150 --> 00:34:34,900 Torej, če naredim grstrings_file strune, nisem ji dati ničesar iskati tam, 476 00:34:34,900 --> 00:34:37,429 vendar je videti v nizih. 477 00:34:37,429 --> 00:34:42,330 To ni našel besednih nizov v datoteki nizih, vendar pa ne najdejo abc. 478 00:34:42,330 --> 00:34:46,770 In to ne da najdejo. 479 00:34:46,770 --> 00:34:52,330 Tako da tukaj dajemo argument, ki hits v opredelitev alias, 480 00:34:52,330 --> 00:34:55,530 , ki je vstavljen v njem. 481 00:34:55,530 --> 00:34:58,540 To je, če je ta izraz prihaja. 482 00:34:58,540 --> 00:35:00,240 Lahko uporabite več kot 1. 483 00:35:00,240 --> 00:35:03,170 Strešica je simbol za prvi argument. 484 00:35:03,170 --> 00:35:07,510 Če boste želeli uporabiti drugo trditev, bi potem rekli: 2. 485 00:35:07,510 --> 00:35:11,250 Ni posebnega simbol za drugega argumenta. 486 00:35:11,250 --> 00:35:14,790 In ker ste z uporabo številčne oznake, ki bi jih morali uporabiti debelo črevo. 487 00:35:14,790 --> 00:35:17,220 Obstaja pa še ena izbira tukaj. 488 00:35:17,220 --> 00:35:21,220 Dolar znak stoji za zadnji argument. 489 00:35:21,220 --> 00:35:23,320 In ker je to simbol, lahko izpustite debelo črevo. 490 00:35:23,320 --> 00:35:25,870 Torej bi bilo zadnji argument v seznamu. 491 00:35:25,870 --> 00:35:27,900 In tam je tudi, da je eden. 492 00:35:27,900 --> 00:35:31,380 Zvezdica pomeni vse, tako da je to popoln seznam argumentov, 493 00:35:31,380 --> 00:35:35,150 in spet, lahko izpustite debelo črevo, ker to ni številka. 494 00:35:36,970 --> 00:35:39,950 Upam, da ste vsi opazujemo vse to. 495 00:35:39,950 --> 00:35:54,100 >> Mehanizem zgodovina lahko vrnete na prejšnjih vrstic v seznamu zgodovine. 496 00:35:54,100 --> 00:36:01,370 Lahko bi to naredili v definiciji vzdevka. 497 00:36:01,370 --> 00:36:02,950 Še nikoli nisem videl to narejeno. 498 00:36:02,950 --> 00:36:05,840 To bi imelo za posledico, da izvlečete prejšnje ukaze iz seznama zgodovine 499 00:36:05,840 --> 00:36:08,130 ko izvedete vzdevka, ki bi lahko različni ukazi 500 00:36:08,130 --> 00:36:11,240 odvisno od tega, kdaj in kje ste jo izvrši. 501 00:36:11,240 --> 00:36:14,020 Razumljivo boste morda želeli izvleči takšno sklicevanje 502 00:36:14,020 --> 00:36:15,900 samo da vem, kaj je bilo prej ukaz. 503 00:36:15,900 --> 00:36:17,280 Še nikoli nisem videl to zgodilo. 504 00:36:17,280 --> 00:36:19,970 Mislim, da nekdo morda želeli, vendar je to zelo malo verjetno. 505 00:36:19,970 --> 00:36:26,480 Obstaja pa še ena stvar tukaj. 506 00:36:26,480 --> 00:36:33,060 Če ste uporabili, da sklicevanje zgodovina tipa, 507 00:36:33,060 --> 00:36:38,190 nato pa se uporabljajo le argumente za katere obstaja takšno sklicevanje. 508 00:36:38,190 --> 00:36:42,180 Če imate definicijo vzdevka, ki ne uporablja sklicevanje na zgodovino tipa, 509 00:36:42,180 --> 00:36:44,060 če to postane začetek ukaza 510 00:36:44,060 --> 00:36:46,520 in boste imeli dodatnih argumentov, potem kaj vnašate po tem 511 00:36:46,520 --> 00:36:48,450 bo dodan ukaz. 512 00:36:48,450 --> 00:36:52,040 V tem primeru je primer sem dal tam, smo uporabili prvi argument; 513 00:36:52,040 --> 00:36:54,610 nismo uporabljali nobene druge. 514 00:36:54,610 --> 00:36:57,960 Če bi bili drugi argumenti glede na ukazni vrstici, jih ne bo uporabljal. 515 00:36:57,960 --> 00:37:04,630 Torej, če boste uporabili sklic zgodovine sploh, potem morate uporabiti, da bi dobili nobenega argumenta. 516 00:37:04,630 --> 00:37:11,310 >> Še ena stvar, ki si želim omeniti, delno Mimogrede, 517 00:37:11,310 --> 00:37:15,250 in sicer, da ta zgodovina mehanizem s klicajem 518 00:37:15,250 --> 00:37:18,010 sega v prvotni C-lupine. 519 00:37:18,010 --> 00:37:27,060 Tcsh predstavil zgodovino poslovanja 520 00:37:27,060 --> 00:37:30,910 ki uporabljajo vrste ukazov in godala iz urednikov, 521 00:37:30,910 --> 00:37:33,650 bodisi Emacs ali vi. 522 00:37:33,650 --> 00:37:36,430 Moje osebno mnenje je Emacs je veliko lažje za uporabo za ta namen 523 00:37:36,430 --> 00:37:39,390 tudi če ste vi uporabljate za vaše redne urejanje. 524 00:37:39,390 --> 00:37:43,900 Obstajajo različne Emacs, ukazi, ki so zdaj prilagojeni za zgodovino. 525 00:37:43,900 --> 00:37:46,410 Control P dobi prejšnjo vrstico v seznamu zgodovine. 526 00:37:46,410 --> 00:37:48,840 Drug Control P boste dobili eno pred tem. 527 00:37:48,840 --> 00:37:50,540 Puščica gor počne isto stvar. 528 00:37:50,540 --> 00:37:54,190 Control N dobi naslednji ukaz, če ste že pomika nazaj nekaj načinov. 529 00:37:54,190 --> 00:37:55,880 Puščica dol pa to preveč. 530 00:37:55,880 --> 00:38:00,480 Lahko premaknete z leve proti desni s puščicami in raznih drugih stvari. 531 00:38:00,480 --> 00:38:02,390 To se lahko uporabi mehanizma zgodovine 532 00:38:02,390 --> 00:38:05,070 veliko lažje kot z uporabo točke sintakso klicajem, 533 00:38:05,070 --> 00:38:07,930 vendar ga ne bo uporabila, da je v definiciji vzdevka. 534 00:38:17,780 --> 00:38:20,020 Mi bomo šli čez, da kdaj drugič. 535 00:38:24,300 --> 00:38:25,810 >> Spremenljivke. 536 00:38:26,880 --> 00:38:29,510 Veš, kaj spremenljivke so v programskih jezikih. 537 00:38:29,510 --> 00:38:31,680 Lupine jih imajo tudi. 538 00:38:31,680 --> 00:38:37,350 C-shell uporablja ukaz nastavljena dodelite spremenljivke, 539 00:38:37,350 --> 00:38:41,360 tako, da določa spremenljivo A na vrednost B - 540 00:38:41,360 --> 00:38:46,390 kot sem rekel, nekoristen opredelitev, ampak ponazarja, kako se to uporablja. 541 00:38:48,790 --> 00:38:52,410 Set ukaz bo ustvaril spremenljivko, če ne že obstajajo. 542 00:38:55,270 --> 00:39:02,490 Pozicijska parametri za shell skripte se lahko šteje za spremenljivke, 543 00:39:02,490 --> 00:39:10,750 vendar uporaba njih ter pravila za njimi pa so nekoliko drugačne. 544 00:39:10,750 --> 00:39:14,320 Ne morete dodeliti vrednost $ 1 v okviru scenarija. 545 00:39:14,320 --> 00:39:18,340 Ti bi morali določiti novo spremenljivko za ta namen, če ste nekateri želeli. 546 00:39:23,000 --> 00:39:28,470 Tipom, brez argumentov in dobili boste seznam vseh trenutno definiranih spremenljivk. 547 00:39:28,470 --> 00:39:34,220 In kaj je dobil na moj drugi lupini tukaj in videli, kaj bomo dobili, če bomo to storili. 548 00:39:34,220 --> 00:39:37,110 Precej dolg seznam obstaja, kajne? 549 00:39:37,110 --> 00:39:40,990 Pomaknite se gor malo. Pogled na vse to. 550 00:39:40,990 --> 00:39:44,330 Nekatere od teh stvari se samodejno opredeljena z lupino. 551 00:39:44,330 --> 00:39:49,320 Lupina ustvari spremenljivko in ji daje vrednost. 552 00:39:49,320 --> 00:39:52,730 Nekateri izmed njih so opredeljene z lupino, nato pa na novo s strani uporabnika 553 00:39:52,730 --> 00:39:54,820 po njegovih željah. 554 00:39:54,820 --> 00:39:59,110 In nekateri od njih so ustvarjene s strani uporabnika, odvisno od tega, kaj počne tisti dan. 555 00:39:59,110 --> 00:40:01,880 To je samo nastaviti brez argumentov. 556 00:40:06,920 --> 00:40:10,050 Tam je čudno lastnost tukaj te stvari. 557 00:40:10,050 --> 00:40:17,980 Tam morajo biti bodisi ni presledkov med enačajem in ime spremenljivke 558 00:40:17,980 --> 00:40:23,700 in vrednost ali prostori na obeh straneh enačajem 559 00:40:23,700 --> 00:40:28,940 kot v tej. 560 00:40:35,620 --> 00:40:41,340 To ne bo delovalo, in to dejansko je veljaven ukaz 561 00:40:41,340 --> 00:40:43,390 vendar to ne bo storila, kaj nameravate. 562 00:40:43,390 --> 00:40:50,070 Ta ukaz bo deloval, ker če si rekel nastaviti in ime spremenljivke 563 00:40:50,070 --> 00:40:54,890 brez enačaj ali nastaviti in ime spremenljivke z enačajem in ne vrednost, 564 00:40:54,890 --> 00:40:57,770 bo nastavitev spremenljivke na ničelno vrednost. 565 00:40:57,770 --> 00:41:00,120 Torej nastaviti A = je veljaven ukaz. 566 00:41:00,120 --> 00:41:04,370 Set ukaz lahko določite več kot 1 spremenljivko na isti liniji. 567 00:41:04,370 --> 00:41:11,240 Torej ta ukaz tukaj ima učinek opredeljuje tako A in B k null vrednosti. 568 00:41:11,240 --> 00:41:13,470 Verjetno ne, kaj hočeš. 569 00:41:13,470 --> 00:41:17,940 Ta tukaj, je bilo že omenjeno, bo povzročila napake 570 00:41:17,940 --> 00:41:21,270 ker = B ni veljaven izraz. 571 00:41:21,270 --> 00:41:23,680 Ime spremenljivke ne more začeti z enačajem. 572 00:41:26,760 --> 00:41:29,080 In tam so tukaj te dodatne stvari. 573 00:41:29,080 --> 00:41:36,820 V colons so bili uporabljeni za izbiro argumente iz zgodovine linij, 574 00:41:36,820 --> 00:41:41,210 in se jih lahko uporabi - in nisem šel v prej - spremeniti te stvari. 575 00:41:41,210 --> 00:41:44,480 Lahko se uporablja tudi za spreminjanje lupine spremenljivke. 576 00:41:44,480 --> 00:41:49,050 Ta tukaj, $, ima svojo vrednost. 577 00:41:49,050 --> 00:41:55,040 : R bo off podaljšanje. 578 00:41:55,040 --> 00:41:57,200 Podaljšanje bo nič po piko, 579 00:41:57,200 --> 00:41:59,200 dot in kaj po njej na koncu datoteke, 580 00:41:59,200 --> 00:42:03,230 šele na koncu seznama po zadnjem poševnica. 581 00:42:03,230 --> 00:42:05,480 Torej ga imam tukaj. 582 00:42:05,480 --> 00:42:10,730 je da. To bo zmanjšalo. O. 583 00:42:10,730 --> 00:42:16,510 Če ni podaljšek, le poti pa po zadnjem poševnica, bo imel nobenega učinka. 584 00:42:16,510 --> 00:42:27,480 : h, da bo spremenljivka izraz, vzlet zadnji element seznama imenika, 585 00:42:27,480 --> 00:42:29,660 še enkrat, šele po zadnji slash. 586 00:42:29,660 --> 00:42:33,160 Torej / / b / c postane / / b, 587 00:42:33,160 --> 00:42:38,870 vendar je to ena spremenilo, ker element po seznamu, je nična. 588 00:42:38,870 --> 00:42:43,070 Tukaj je nekaj, kar prav tako želim poudariti. 589 00:42:43,070 --> 00:42:46,770 Te kvalifikanti ne iščejo za obstoj teh datotek. 590 00:42:46,770 --> 00:42:48,910 Ti samo poglej za godala. 591 00:42:48,910 --> 00:42:54,520 Ti so namenjeni za manipulacijo imena datotek, pathnames, 592 00:42:54,520 --> 00:42:57,520 vendar se jih lahko uporablja na vsakem nizu, tudi če to ni ime datoteke. 593 00:42:57,520 --> 00:42:58,920 In ne izgledajo za obstoj, 594 00:42:58,920 --> 00:43:03,550 tako da če obstaja taka datoteka ne, / a / b / c, da bo to še vedno dela. 595 00:43:03,550 --> 00:43:06,930 Ali je to za nobeno rabo, je drugo vprašanje, vendar bo še vedno delovala. 596 00:43:06,930 --> 00:43:12,850 Spremenljivke so v The Bourne lupin drugačna. Bova kasneje. 597 00:43:12,850 --> 00:43:18,240 Znak za dolar lahko pobegnil, tako kot klicajem in zvezdico. 598 00:43:18,240 --> 00:43:21,760 Znak za dolar lahko pobegnil s poševnico nazaj ali enojnimi narekovaji. 599 00:43:21,760 --> 00:43:24,790 Dvojne kotacije ima čuden učinek v vseh lupin 600 00:43:24,790 --> 00:43:28,690 silijo oceno dolar prijavite spremenljivo izražanje. 601 00:43:28,690 --> 00:43:31,960 Torej, če je to, ki je pobegnil v eno smer, v narekovajih lahko imelo za posledico 602 00:43:31,960 --> 00:43:34,380 povzročiti, da jih je treba oceniti anyway. 603 00:43:34,380 --> 00:43:37,090 To je malo zmedeno. 604 00:43:37,090 --> 00:43:43,740 Če obstaja več ravni uhaja, kot enojnimi narekovaji znotraj narekovajev 605 00:43:43,740 --> 00:43:46,770 ali dvojne narekovaje znotraj enojnih narekovajev, morate test, da vidimo, kaj se bo zgodilo 606 00:43:46,770 --> 00:43:49,520 spremenljivki, če uporabljate eno. 607 00:43:49,520 --> 00:43:53,410 Ti 2 situacije - dvojni znotraj enotnega, enotni notranji dvojni - 608 00:43:53,410 --> 00:43:55,980 vam ni nujno, da je enako učinkovit. 609 00:44:02,520 --> 00:44:05,600 Okoljske spremenljivke, vezane spremenljivke C-shell. 610 00:44:05,600 --> 00:44:08,340 Spremenljivke okolja so tudi spremenljivke v C-lupini, 611 00:44:08,340 --> 00:44:11,250 in so tudi spremenljivke v drugih školjk preveč. 612 00:44:11,250 --> 00:44:15,230 V C-lupino, so ločeni skupini. 613 00:44:15,230 --> 00:44:18,130 Stvari, ki sem rekel, preden so o navideznih spremenljivk. 614 00:44:18,130 --> 00:44:21,300 Spremenljivke okolja, so ločena skupina spremenljivk 615 00:44:21,300 --> 00:44:28,650 z izjemo nekaterih spremenljivk, ki jih imenujemo vezanih spremenljivk, 616 00:44:28,650 --> 00:44:30,640 ki so zelo pomembne in da bomo dobili na tiste, ki kasneje. 617 00:44:30,640 --> 00:44:34,950 Okoljske spremenljivke se samodejno prenesejo na 618 00:44:34,950 --> 00:44:41,800 na lupinah ali ukazov, ki jih vodijo iz vaše lupine. 619 00:44:41,800 --> 00:44:46,220 Druge stvari niso. Spremenljivke, shell, da vzdevki niso. Okoljske spremenljivke. 620 00:44:46,220 --> 00:44:48,630 Zato jim pravimo spremenljivke okolja, 621 00:44:48,630 --> 00:44:55,030 Ideja je, da okolje razteza mimo samo vaš trenutni lupine. 622 00:44:55,030 --> 00:45:00,510 Lahko se uporabljajo za določanje stvari za ukaze. 623 00:45:00,510 --> 00:45:05,470 Tukaj je primer. PRINTER, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Oba od teh spremenljivk lahko določite tiskalnik, ki bo ukaz uporabite za tiskanje stvari. 625 00:45:12,270 --> 00:45:16,500 Če imate več tiskalnikov naokoli, boste morda želeli, da dajo eno vam je všeč. 626 00:45:16,500 --> 00:45:21,320 Razlog imamo 2 spremenljivk je, da so bili napisani različnih sklopov ukazov 627 00:45:21,320 --> 00:45:23,870 z uporabo teh različnih spremenljivk. 628 00:45:23,870 --> 00:45:25,910 Boste morda jim različne vrednosti. 629 00:45:25,910 --> 00:45:28,860 Najverjetneje ste jim bom dal oba enako vrednost. 630 00:45:28,860 --> 00:45:35,840 Te stvari delujejo, ker so ukazi za tiskanje 631 00:45:35,840 --> 00:45:40,740 so bili programirani, da preuči vrednosti teh spremenljivk. 632 00:45:42,200 --> 00:45:46,150 Če program ni bila napisana na ta način, če bi bila napisana za nekaj drugega, 633 00:45:46,150 --> 00:45:48,280 spremenljivka bi bilo nepomembno. 634 00:45:48,280 --> 00:45:52,530 Tako je operacijski sistem ne išče za te spremenljivke 635 00:45:52,530 --> 00:45:55,210 vsakič, ko se nanašajo na tiskalniku. 636 00:45:55,210 --> 00:45:59,090 Ukaz, ki ne tiskanje išče za te spremenljivke, če je programirana, da je tako. 637 00:46:11,030 --> 00:46:15,240 Te spremenljivke so pogosto opredeljena v vaših inicializacijo datoteke 638 00:46:15,240 --> 00:46:19,440 vendar ne nujno. 639 00:46:19,440 --> 00:46:21,050 Lahko jih določite v ukazni vrstici. 640 00:46:21,050 --> 00:46:24,090 Lahko se je definirano v ukaz. 641 00:46:24,090 --> 00:46:28,740 Ukaz, ki zažene kaj bi lahko svoj izbor spremenljivk - 642 00:46:28,740 --> 00:46:32,390 spremenljivke, ki so edinstveni za posameznega programskega paketa, na primer. 643 00:46:32,390 --> 00:46:36,740 Bodo opredeljene, ko zaženete ta paket. 644 00:46:39,690 --> 00:46:42,680 Kako se ti podatki prenesejo na podlupine? 645 00:46:42,680 --> 00:46:48,210 Ko je sub-shell napisana, da ne pišejo v tem območju. 646 00:46:48,210 --> 00:46:53,260 Območje podlupine, ki je namenjen spremenljivke okolja 647 00:46:53,260 --> 00:46:56,450 ni napisal podlupine, to je napisano s kopiranjem. 648 00:46:56,450 --> 00:47:00,530 Ko zaženete navaden ukaz, kot so ti ukazi za tiskanje ali karkoli, 649 00:47:00,530 --> 00:47:03,840 so začeli z ustvarjanjem novega lupino. 650 00:47:03,840 --> 00:47:06,190 Lupina ustvarja lupino in nato prepiše del tega 651 00:47:06,190 --> 00:47:08,800 z ukazom, da ste tekmovanje v teku, kar je malo zmedeno, 652 00:47:08,800 --> 00:47:10,740 ampak to je, kako so ti ukazi priti spremenljivke okolja 653 00:47:10,740 --> 00:47:14,890 ki jih nato oglejte kasneje. 654 00:47:21,920 --> 00:47:28,010 Ukaz tukaj za določanje variabilnega SETENV. 655 00:47:28,010 --> 00:47:36,470 To je, kako ga definirati. To je 3 elemente: setenv, spremenljive, vrednost. 656 00:47:36,470 --> 00:47:44,710 Če si ne SETENV brez argumentov, kaj imaš od tega? 657 00:47:47,220 --> 00:47:48,810 Seznam vseh teh spremenljivk. 658 00:47:48,810 --> 00:47:53,190 Še enkrat, to je lepo dolg seznam in v tem primeru, tako kot v drugih, 659 00:47:53,190 --> 00:47:57,320 Te spremenljivke so opredeljene predvsem z mojo prijavo operacije z lupino sam 660 00:47:57,320 --> 00:47:59,740 namesto da jih kar sem storil. 661 00:47:59,740 --> 00:48:03,580 Še en ukaz tukaj, printenv. 662 00:48:07,520 --> 00:48:10,340 , Ki prav tako natisne okolje. 663 00:48:10,340 --> 00:48:15,240 Opazili to zadnja stvar tukaj, urednik = vi. 664 00:48:15,240 --> 00:48:21,120 , Ki pravi, da če sem z nekaj, kar kliče urednika 665 00:48:21,120 --> 00:48:25,530 in jaz ne podate urednik in to mi omogoča izbiro, lahko pa mi vi. 666 00:48:25,530 --> 00:48:37,280 Kaj pa, če naredim printenv urejevalniku? To mi pove, kaj je to. 667 00:48:37,280 --> 00:48:41,340 Tik pred, da je bil spremenljiv, MANJ. 668 00:48:41,340 --> 00:48:46,040 To so vaše možnosti privzete ko sem prost manj ukaz, 669 00:48:46,040 --> 00:48:49,360 ki prikazuje datoteke. 670 00:48:49,360 --> 00:48:55,910 Torej, če sem to storil, lahko printenv traja 1 argument, ali 0 argumente, 671 00:48:55,910 --> 00:48:58,070 ne več kot 1. 672 00:49:01,800 --> 00:49:05,690 Obstajajo tudi drugi ukazi, vendar ne bomo dobili v vsem tem danes. 673 00:49:05,690 --> 00:49:11,010 Ne pozabite, da so modifikatorji za spremenljivke, kot so lupine: h 674 00:49:11,010 --> 00:49:14,350 , ki bo znižala zadnji element je ime poti, 675 00:49:14,350 --> 00:49:17,950 ali: r, kar bo zmanjšalo podaljšanje. 676 00:49:17,950 --> 00:49:23,110 Tisti, ki zdaj veljajo za spremenljivke okolja preveč. Niso vajeni. 677 00:49:23,110 --> 00:49:24,960 Včasih je treba, da jih ni mogoče spremeniti. Zdaj so lahko. 678 00:49:24,960 --> 00:49:29,190 To je eden od napredka pri razvoju sistema lupin v preteklih letih. 679 00:49:29,190 --> 00:49:35,620 Sem rekel, da lupine kot del okolja 680 00:49:35,620 --> 00:49:43,040 in spremenljivke shell v C-lupino, so z nekaj izjemami, ločenih sklopov. 681 00:49:43,040 --> 00:49:46,790 Lahko ustanovi spremenljivko okolja in lupine spremenljivko z enakim imenom. 682 00:49:46,790 --> 00:49:49,220 Ti bodo različne spremenljivke, imajo lahko različne vrednosti. 683 00:49:49,220 --> 00:49:53,090 Spreminjanje vrednosti enega ne spremeni vrednost drugih. 684 00:49:53,090 --> 00:49:58,070 Te spremenljivke so vsi ocenili z znak za dolar - $ $ karkoli. 685 00:49:58,070 --> 00:50:02,340 Pa kaj, če imate to? Ali veste, katero ste dobili? 686 00:50:02,340 --> 00:50:04,520 V mojih testih sem spremenljivko lupine, 687 00:50:04,520 --> 00:50:07,240 vendar to ni dokumentirana in vam ne more sklicevati na to. 688 00:50:07,240 --> 00:50:10,270 Zato vas prosim, ustvarja lupine in spremenljivk okolja 689 00:50:10,270 --> 00:50:13,490 z enakimi imeni dobra ideja? No redu. 690 00:50:13,490 --> 00:50:17,460 Katere so tiste velike izjeme, v katerih okolja in shell spremenljivke 691 00:50:17,460 --> 00:50:19,860 so povezani med seboj? 692 00:50:19,860 --> 00:50:27,470 Tam so ti 4. 693 00:50:32,030 --> 00:50:35,510 Črka TERM okoljska spremenljivka, 694 00:50:35,510 --> 00:50:41,540 lupine spremenljivo izraz z malimi črkami, tip emulacijo terminala. 695 00:50:41,540 --> 00:50:47,430 Jaz sem samo šel sem in bom naredil odmev, uporaben ukaz tukaj 696 00:50:47,430 --> 00:50:52,560 $ $ TERM izraz. In tam. 697 00:50:52,560 --> 00:51:00,570 xterm je vrsta terminal za okna, prikazanih na X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-barva je sprememba, ki omogoča, da različne barve. 699 00:51:04,330 --> 00:51:06,580 Zakaj opredeliti to? Kaj je to dobro za? 700 00:51:06,580 --> 00:51:09,740 Ukazi, ki preurediti zaslon kot urednik 701 00:51:09,740 --> 00:51:13,680 poslati posebne sekvence, imenovane sekvence za izhod v sili, 702 00:51:13,680 --> 00:51:18,160 priklop ali okna, da ga preurediti in tako naprej. 703 00:51:18,160 --> 00:51:20,990 Te sekvence so različni za različne vrste terminalov. 704 00:51:20,990 --> 00:51:23,100 To je tisti, ki za uporabo pove. 705 00:51:23,100 --> 00:51:25,900 Včasih so vprašanja tam. 706 00:51:25,900 --> 00:51:28,600 Morda boste želeli spremeniti. 707 00:51:28,600 --> 00:51:30,780 Če se stvari ne delajo, včasih se tip terminala nastavite napačno, 708 00:51:30,780 --> 00:51:36,440 boste morda lahko, da se določi nova opredelitev pojma spremenljivko. 709 00:51:36,440 --> 00:51:43,420 V teh primerih se spreminja eno spremenljivko, spremenljivko okolja ali spremenljivko lupine, 710 00:51:43,420 --> 00:51:45,970 morali spremeniti drugega. 711 00:51:45,970 --> 00:51:50,970 Odkril sem skozi izkušnje, ki spreminja TERM z velikimi tiskanimi črkami 712 00:51:50,970 --> 00:51:54,060 vedno ne spremenijo lupine spremenljivo mandat z malimi črkami. 713 00:51:54,060 --> 00:51:55,550 To je napaka. 714 00:51:55,550 --> 00:51:59,400 Ne vem, če je to vedno res. Večino časa ni res, vendar je lahko. 715 00:51:59,400 --> 00:52:02,490 Torej, če ste naredili spremembo, samo preveriti, ven. 716 00:52:02,490 --> 00:52:05,830 Ne zgodi se pogosto, da boste morali spremeniti to vrednost, ampak enkrat v nekaj časa delate. 717 00:52:05,830 --> 00:52:08,260 Spremenljivka okolja UPORABNIK. 718 00:52:08,260 --> 00:52:12,070 Again, spremenljivko okolja z velikimi tiskanimi črkami, shell spremenljivke z malimi črkami. 719 00:52:12,070 --> 00:52:13,710 To je tvoje ime. 720 00:52:13,710 --> 00:52:16,730 To je le v zelo izjemnih okoliščinah 721 00:52:16,730 --> 00:52:18,420 da bi si želeli to spremeniti. 722 00:52:18,420 --> 00:52:22,350 Če je vaše uporabniško ime nekoga drugega, lahko vrgel vse mogoče stvari off. 723 00:52:22,350 --> 00:52:26,040 Domači imenik, uporabnikov domači imenik. 724 00:52:26,040 --> 00:52:28,060 Again, si ne bi želeli to spremeniti. 725 00:52:28,060 --> 00:52:32,260 Opazili v vseh teh primerih, in tisti, ki smo na tem, da zajema spremenljivo pot, 726 00:52:32,260 --> 00:52:37,070 spremenljivka okolja je z velikimi črkami in vezan lupina spremenljivka je z malimi črkami. 727 00:52:37,070 --> 00:52:39,240 Če spremenite eno, bi morali spremeniti druge. 728 00:52:39,240 --> 00:52:45,960 Ni mogoče ugotoviti ta vrsta zavezujoče, kot si ne more vezati 2 spremenljivk, 729 00:52:45,960 --> 00:52:50,570 Razen tega 4, in pri teh spremenljivkah vezavo ni mogoče razveljaviti, 730 00:52:50,570 --> 00:52:52,090 jih ni mogoče ločiti. 731 00:52:52,090 --> 00:52:55,820 Torej so te 4 pari spremenljivk zavezuje. 732 00:52:55,820 --> 00:52:59,020 Vedno bodo. Noben drugi bo. 733 00:52:59,020 --> 00:53:05,720 Poleg tega bi bilo mogoče ustvariti spremenljivke z enakimi imeni 734 00:53:05,720 --> 00:53:07,780 nasprotnih vrstah. 735 00:53:07,780 --> 00:53:11,600 Lahko bi lupine spremenljivo izraz z malimi črkami 736 00:53:11,600 --> 00:53:14,990 ali spremenljivko okolja TERM z velikimi tiskanimi črkami. 737 00:53:14,990 --> 00:53:19,040 Navedene spremenljivke bi bilo neodvisno od teh parih spremenljivk 738 00:53:19,040 --> 00:53:20,780 in bi bili neodvisna drug od drugega. 739 00:53:20,780 --> 00:53:23,780 Ne morem si predstavljati, zakaj bi to naredil, če želite zamenjati ljudi. 740 00:53:24,600 --> 00:53:29,730 Ta tukaj, pot spremenljivka, to je res pomembno. 741 00:53:29,730 --> 00:53:35,550 Druga stvar tukaj je, da lahko obstajajo primeri, 742 00:53:35,550 --> 00:53:40,430 spremenljivk s podobnimi v paru, imeni, ki niso vezani na drug drugega. 743 00:53:40,430 --> 00:53:45,000 Ne more biti spremenljivke, SHELL in lupine, z velikimi in malimi črkami. 744 00:53:45,000 --> 00:53:48,300 Na osnovi tega imena, ne vem, če je spremenljivka je lupina spremenljivka 745 00:53:48,300 --> 00:53:51,580 ali nastavljena, oni ni vezan na drug drugega. 746 00:53:51,580 --> 00:53:55,300 Tako da nekako seznanjenih imen ne pomeni, vezanih spremenljivk. 747 00:53:55,300 --> 00:53:58,830 Spremenljivka pot, ki sem jo kazal prej, 748 00:53:58,830 --> 00:54:01,880 je seznam pathnames pri kateri lupina išče ukazov. 749 00:54:01,880 --> 00:54:12,320 Pojdimo v to okno tukaj in potrudili se bomo echo $ PATH, z velikimi črkami - 750 00:54:12,320 --> 00:54:20,230 spremenljivka okolja - echo $ PATH, male črke - lupini spremenljivko. 751 00:54:20,230 --> 00:54:24,980 Opazimo, da je seznam imenikov isto. Ti so vezani. 752 00:54:24,980 --> 00:54:26,590 Spremenite eno, lahko spremenite druge. 753 00:54:26,590 --> 00:54:32,970 V spremenljivko okolja so elementi ločeni z dvopičjem. Opazil. 754 00:54:32,970 --> 00:54:35,130 V lupinskih so ločeni s presledki. 755 00:54:35,130 --> 00:54:38,760 Ta spremenljivka okolja je en sam niz. 756 00:54:38,760 --> 00:54:41,480 Spremenljivka lupina je matrika. 757 00:54:41,480 --> 00:54:43,490 Bournova lupina ni imela nize. 758 00:54:43,490 --> 00:54:46,600 Bash počne, vendar je to že določen del školjke. 759 00:54:46,600 --> 00:54:48,660 To je en sam niz in ne matrika. 760 00:54:48,660 --> 00:54:50,420 C-shell vedno imela nize. 761 00:54:50,420 --> 00:54:52,630 Na nizi so veliko lažje delati. 762 00:54:52,630 --> 00:54:54,400 Lahko se nanašajo na njegove dele. 763 00:54:54,400 --> 00:55:02,350 Torej echo $ Pot [1] in dobim / usr / bin, prvi element. 764 00:55:02,350 --> 00:55:09,950 Še enkrat, ne pozabite dolar znamenje stoji za zadnji element seznama zgodovine. 765 00:55:09,950 --> 00:55:16,850 Kaj se dogaja tam? Je poskušala najti znak za dolar kot variabilni simbol. 766 00:55:16,850 --> 00:55:20,850 Sem pobegniti. Ups. Da ne bo niti tega. 767 00:55:20,850 --> 00:55:23,690 Nekatere od teh stvari ne delujejo tako dobro. 768 00:55:23,690 --> 00:55:28,140 Mogoče bomo pustite, da ven. 769 00:55:28,140 --> 00:55:36,980 Zvezdica nanaša na celotno stvar, ampak to je tisto, kar dobiš, če ne določite element. 770 00:55:36,980 --> 00:55:46,170 Drug način, da se zaporedji spremenljivke lahko manipulira, 771 00:55:46,170 --> 00:55:49,500 število elementov tam, 7 elementov. 772 00:55:49,500 --> 00:55:53,410 Tukaj smo se lojtra pred imenom spremenljivke. 773 00:55:53,410 --> 00:55:58,280 Tukaj je še eden. Daj vprašaj tam. 774 00:55:58,280 --> 00:56:03,170 To je logična vrednost. To kaže, da je spremenljivka. 775 00:56:03,170 --> 00:56:05,160 To je še en način za delo s spremenljivkami. 776 00:56:05,160 --> 00:56:06,660 To, mimogrede, ni nujno, da je matrika spremenljivka. 777 00:56:06,660 --> 00:56:08,210 , Da bi lahko katera koli spremenljivka. 778 00:56:08,210 --> 00:56:11,840 In če naredim, tam je taka spremenljivka ni in dobim 0. 779 00:56:11,840 --> 00:56:14,990 Obstaja še ena majhna stvar spremenljivih ocen. 780 00:56:23,670 --> 00:56:32,950 Nazaj na tale tukaj, če iz nekega razloga si želel delati s tem 781 00:56:32,950 --> 00:56:37,990 namesto dela s paleto, spremenljivka lupina, 782 00:56:37,990 --> 00:56:41,470 so ukazi, ki lahko ločujejo te stvari, ki temelji na debelem črevesu. 783 00:56:41,470 --> 00:56:44,080 V bistvu, če boš to počel v bash lupini možnosti 784 00:56:44,080 --> 00:56:47,110 nekakšen scenarij, da bi bilo verjetno, kako bi si to naredil. 785 00:56:47,110 --> 00:56:50,350 Ampak v C-lupini je veliko lažje, da uporabite paleto. 786 00:56:50,350 --> 00:56:58,250 V Bournova lupina, so spremenljivke, ki jih določi en sam izraz, kot je ta, 787 00:56:58,250 --> 00:57:01,760 kot način si lahko dodeli spremenljivko v programskem jeziku, 788 00:57:01,760 --> 00:57:05,110 in tu ne sme biti nobenih presledkov. 789 00:57:05,110 --> 00:57:09,110 To je potrebno, da je bilo samo 1 niz. 790 00:57:09,110 --> 00:57:14,980 V lupin The Bourne tipa, vse spremenljivke so shell spremenljivke. 791 00:57:14,980 --> 00:57:19,250 Spremenljivke okolja so podmnožica spremenljivk lupine. 792 00:57:19,250 --> 00:57:24,060 Odlikuje od spremenljivk, ki niso okolju z izvozom. 793 00:57:24,060 --> 00:57:28,860 Ukaz za to, da je izvoz, kot so izvozne tiskalnik. 794 00:57:28,860 --> 00:57:34,930 Če smo bili, da opredelijo take spremenljivke, 795 00:57:34,930 --> 00:57:38,480 če bi želeli ukaz za tiskanje, da ga najdejo, bi moral biti spremenljivka okolja, 796 00:57:38,480 --> 00:57:40,730 in to je, kako bi bilo eno. 797 00:57:40,730 --> 00:57:42,090 Tukaj je nekaj nekako zmedeno. 798 00:57:42,090 --> 00:57:50,430 Ta izraz, izvoz za okolje, izhaja iz tega Bourne shell koncept, 799 00:57:50,430 --> 00:57:54,520 in vendar se ta izraz uporablja v opisih C-lupini, 800 00:57:54,520 --> 00:57:57,920 kjer ni takega ukaza ni kot izvoz. 801 00:57:57,920 --> 00:58:06,200 Če ste pravkar rekel izvoz po sebi, boste dobili seznam izvozi - 802 00:58:06,200 --> 00:58:10,620 Torej, če sem se izvažajo tukaj, nič takšnega. 803 00:58:13,620 --> 00:58:15,200 Ok, pa gremo. 804 00:58:15,200 --> 00:58:17,010 Te stvari je, mimogrede, so opredeljeni tudi lupine. 805 00:58:17,010 --> 00:58:19,400 Nisem opredeli nobenega od teh, ki jih sama. 806 00:58:19,400 --> 00:58:23,550 Shell pa vse mogoče stvari, ki jih sama. 807 00:58:23,550 --> 00:58:26,650 To bi morali storiti stvari samodejno. 808 00:58:30,240 --> 00:58:36,880 V Bash ali Korn, lahko zaženete ukaz, kot je ta, 809 00:58:36,880 --> 00:58:42,000 ki bosta dala spremenljivka, vrednost in jo izvoziti v 1 poveljevanja. 810 00:58:42,000 --> 00:58:46,150 V Bournovi lupini, morajo biti ločene ukaze, kot izvoziti. 811 00:58:46,150 --> 00:58:48,410 Tu je še en vidik, ki je zmedeno. 812 00:58:48,410 --> 00:58:52,220 Set ukaz v C-lupini definira spremenljivke 813 00:58:52,220 --> 00:58:55,550 in brez argumentov vam pove, kaj se vrednosti spremenljivk "so. 814 00:58:55,550 --> 00:59:01,140 V Bash lupini, set ukaz brez argumentov počne isto stvar, 815 00:59:01,140 --> 00:59:03,580 ampak z argumenti počne nekaj povsem drugega. 816 00:59:03,580 --> 00:59:06,200 Torej, to so različni argumenti tukaj. 817 00:59:06,200 --> 00:59:10,460 Nekatere od teh so spremenljivke okolja, nekateri od njih so shell spremenljivke. 818 00:59:10,460 --> 00:59:13,200 Vsi izmed njih so shell spremenljivke res. Nekateri od tistih, ki sta spremenljivki okolja. 819 00:59:15,690 --> 00:59:23,920 Ukaz set z argumenti, se lahko uporablja za delovanje 820 00:59:23,920 --> 00:59:28,220 o pozicijskih parametrov do scenarija, 821 00:59:28,220 --> 00:59:33,910 ki je način jih dobili vse naenkrat. 822 00:59:33,910 --> 00:59:36,150 Mi ne morem iti v to danes. 823 00:59:36,150 --> 00:59:39,580 Lahko se uporablja tudi za spremembo obnašanja lupine. 824 00:59:39,580 --> 00:59:46,700 Zlasti v Bash obstajajo spremenljivke, ki bodo ugotovili, kako se obnaša lupina. 825 00:59:46,700 --> 00:59:51,310 Potem tudi samo tale ukaz, ki ga lahko vidite, ta ukaz. 826 00:59:51,310 --> 00:59:59,050 Stavljene sledi spremenljivk in tipov spremenljivk se uporablja v Korn in bash. 827 00:59:59,050 --> 01:00:04,970 To ni obvezno, vendar ga je mogoče uporabiti za omejitev vrednosti spremenljivk, 828 01:00:04,970 --> 01:00:08,400 ki so lahko koristni za preprečevanje napak, in to je dokaj pogost. 829 01:00:08,400 --> 01:00:11,640 Torej, jaz sem samo omeniti, da v primeru, da ste ga videli nekje. 830 01:00:17,290 --> 01:00:19,160 Ukaz kje. 831 01:00:19,160 --> 01:00:22,490 Spomnim se, da sem omenil že prej, če ukaz v C-lupini, 832 01:00:22,490 --> 01:00:28,750 ki vam lahko pove, kje ukazni pot. 833 01:00:28,750 --> 01:00:32,580 Tukaj je ukaz zamenjavo. 834 01:00:32,580 --> 01:00:41,900 Moral bi najti na tipkovnici nekje znakov, ki izgleda takole. 835 01:00:41,900 --> 01:00:44,910 Mesto na tipkovnici se bo razlikujejo. 836 01:00:44,910 --> 01:00:47,050 Smo jo imenovali backquote. To je približno velikosti ponudbo. 837 01:00:47,050 --> 01:00:48,720 To gre od zgoraj levo do spodaj desno. 838 01:00:48,720 --> 01:00:52,690 Tu na mojem Mac tipkovnici, da je v zgornjem levem kotu. 839 01:00:52,690 --> 01:00:58,150 Ta znak se lahko uporablja za izvršitev ukaza okviru ukaza. 840 01:00:58,150 --> 01:01:03,400 Če imate izraz znotraj backquotes, 841 01:01:03,400 --> 01:01:07,080 ta izraz je ukaz, to je prost. 842 01:01:07,080 --> 01:01:09,010 Izhod iz tega ukaza 843 01:01:09,010 --> 01:01:11,980 Nato substituiran za celotno backquote izražanja 844 01:01:11,980 --> 01:01:16,110 znotraj daljšega ukaz, ki potem poteka s tem izhodno 845 01:01:16,110 --> 01:01:22,010 kot del niza argumentov in tako naprej. 846 01:01:22,010 --> 01:01:28,640 Tukaj je ukaz, ki uporablja to. 847 01:01:28,640 --> 01:01:32,340 Oglejmo prikazati delovanje tukaj. 848 01:01:44,980 --> 01:01:49,090 Pojdiva sem gor, da iz backquotes. 849 01:01:49,090 --> 01:01:54,410 Nadzorna mi pride na začetku vrstice s urejanja sintakso Emacs. 850 01:01:54,410 --> 01:02:00,380 Doslej poti pa je, kaj, če ne, 851 01:02:00,380 --> 01:02:05,040 ampak ko sem to naredil, kot je ta, potem svečke na tem seznamu pathnames 852 01:02:05,040 --> 01:02:08,750 namesto tega celotnega backquote izražanja in teče ls-l na njih. 853 01:02:08,750 --> 01:02:11,120 Nekako prikladno, kajne? 854 01:02:11,120 --> 01:02:14,860 Tako, da je ena gladka stvar. Tako backquotes delo. 855 01:02:14,860 --> 01:02:17,560 Zdaj greva dol malo naprej. 856 01:02:17,560 --> 01:02:22,050 To so vzdevki. Pravzaprav sem uporabljati. 857 01:02:22,050 --> 01:02:26,410 Bom poskusil dobiti tega z 1 operacijo urejanja. 858 01:02:34,900 --> 01:02:36,900 Ok. 859 01:02:36,900 --> 01:02:39,630 Zdaj pa poglejmo, kako te opredelitve je prišel ven. 860 01:02:39,630 --> 01:02:44,930 alias LWH mi povedal, kako je to opredeljeno. 861 01:02:44,930 --> 01:02:51,210 Opazili, da je samo to, ampak zunanja citati so bili ukinjeni 862 01:02:51,210 --> 01:02:53,750 in klicaj je vzletelo. 863 01:02:53,750 --> 01:02:58,940 ! *, Popoln seznam vseh argumentov. 864 01:02:58,940 --> 01:03:03,580 Pri opredelitvi alias bo uporabljala nazaj, kjer sem uporabljati. 865 01:03:03,580 --> 01:03:10,620 LWH ksh bash. Ok. 866 01:03:10,620 --> 01:03:13,960 Oglejte si, kako to deluje? To mi prihrani nekaj tipkanja. 867 01:03:13,960 --> 01:03:16,440 Greva gor malo samo omeniti nekaj drugega tukaj. 868 01:03:19,150 --> 01:03:23,120 Opazil sem te različne lupine. Moral bi že prej omenil. 869 01:03:23,120 --> 01:03:36,060 Csh ima 2 tukaj in tako ne / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Mi lahko ugotovi z drugimi sredstvi, da so tisti, ki dejansko ista slika. 871 01:03:39,870 --> 01:03:43,150 Ne pozabite, sem rekel, če ste tip sh dobiš zabavo. 872 01:03:43,150 --> 01:03:47,390 Tip to in dobiš to. 873 01:03:47,390 --> 01:03:51,730 Vendar pa so tisti, ki niso povezani. Tisti, ki imajo eno samo tisti tam. 874 01:03:51,730 --> 01:03:54,910 In to ni vrsta datoteke, ki lahko zahtevajo še enega. 875 01:03:54,910 --> 01:03:59,460 Torej tistih, ki so ločene datoteke, C-shell tisti, ki so na ista datoteka. 876 01:03:59,460 --> 01:04:03,640 Tukaj nazaj navzdol, drugi pa tukaj, to alias, 877 01:04:03,640 --> 01:04:09,090 Upoštevajte, da teče ta ukaz, datoteko. 878 01:04:09,090 --> 01:04:13,810 To alias teče to. Datoteka vam pove tip datoteke. 879 01:04:13,810 --> 01:04:20,330 Torej FWH ksh bash. Ok. 880 01:04:20,330 --> 01:04:23,230 To je izhod ukaza datoteko. 881 01:04:23,230 --> 01:04:24,630 Ne vem, če veste, kaj je to tukaj pomeni, 882 01:04:24,630 --> 01:04:26,750 Mach-O univerzalna binarna z 2 arhitektur. 883 01:04:26,750 --> 01:04:30,470 Obstajata 2 možni vrsti procesor na Mac, 884 01:04:30,470 --> 01:04:34,780 in nekateri programi so bili napisani, da se lahko vozijo z obema, 885 01:04:34,780 --> 01:04:37,950 in ukaz datoteke lahko določi, da, tako da je, kaj to pomeni. 886 01:04:37,950 --> 01:04:40,660 Oba od teh spisov so bili napisani na tak način. 887 01:04:40,660 --> 01:04:43,760 Tako da bomo videli, kako alias deluje, bomo videli, kako backquote deluje, 888 01:04:43,760 --> 01:04:48,640 bomo videli, kako dejansko datoteko ls ali datoteke deluje. 889 01:04:52,050 --> 01:04:57,000 To morda ne bo delovala. Poskusite ", kjer, če" in "LWH kje". Ok, poskusimo to. 890 01:04:57,000 --> 01:05:01,040 kjer kadar. 891 01:05:01,040 --> 01:05:03,500 kjer je lupina vgrajen. 892 01:05:03,500 --> 01:05:06,970 Ne pozabite pred tem smo pokazali, da Bash ni imel kam. 893 01:05:06,970 --> 01:05:10,080 Če ste tip, kje v Bash lupini, boste dobili sporočilo o napaki. 894 01:05:10,080 --> 01:05:12,540 To je samo del lupine, namesto da bi ločen ukaz. 895 01:05:12,540 --> 01:05:20,000 Kaj se zgodi, če sem s tipom LWH iskal kje? Poglejte, kaj se tam dogaja. 896 01:05:20,000 --> 01:05:22,850 Ran, kjer kjer je dobila ta izhod, in nato poskušal teči ls 897 01:05:22,850 --> 01:05:25,600 kot sem o tem, kje je lupina vgrajen. 898 01:05:25,600 --> 01:05:28,790 kadar je tam, vendar ostale pa ne obstajajo. 899 01:05:28,790 --> 01:05:32,090 Nobena od teh obstajajo, pravzaprav. 900 01:05:32,090 --> 01:05:35,560 Torej, to vedno ne deluje, prav tako ponazarja, kako se nekatere stvari 901 01:05:35,560 --> 01:05:39,580 ne delaj tisto, kar ste morda mislili. 902 01:05:40,930 --> 01:05:43,010 Pojdimo še malo tukaj. 903 01:05:44,890 --> 01:05:54,760 To tukaj je v Bash. To je tudi ukaz substitucija kot backquote. 904 01:05:54,760 --> 01:06:05,280 Toda za razliko od backquote, ki jih uporablja ta spremenljivi slog. 905 01:06:05,280 --> 01:06:09,860 Obstajajo številne izraze, ki se začnejo z znak za dolar, 906 01:06:09,860 --> 01:06:16,070 in čeprav ne gre za spremenljivke, ki jih sposodil uporabo znak za dolar 907 01:06:16,070 --> 01:06:19,570 , ki označuje izraz neke vrste. 908 01:06:19,570 --> 01:06:23,550 , Ki se lahko obdan z oklepaji ali razredi ali dvojnih oklepajih, 909 01:06:23,550 --> 01:06:26,320 ki ima drugačen namen. 910 01:06:26,320 --> 01:06:29,500 Samski oklepaji so tukaj zamenjavo ukaz tako kot backquotes. 911 01:06:29,500 --> 01:06:32,720 Dvojne oklepaje je pravzaprav aritmetično operacijo. 912 01:06:32,720 --> 01:06:35,380 Obstajajo tudi druge skladnji, druge operacije. 913 01:06:35,380 --> 01:06:41,520 Backquote sintaksa je na voljo v Bash. 914 01:06:41,520 --> 01:06:46,780 Vendar pa ta je prednostna. To je veliko lažje brati in omogoča gnezdenje. 915 01:06:46,780 --> 01:06:51,300 Imaš notri $ (ukaz), lahko drug ukaz, 916 01:06:51,300 --> 01:06:54,590 nekaj podobnega - 917 01:07:14,560 --> 01:07:18,210 Dobim seznam tam. 918 01:07:18,210 --> 01:07:21,670 To bi delovalo, če sem imel backquote tudi. 919 01:07:32,050 --> 01:07:38,470 Kaj, če želim narediti nekaj podobnega - 920 01:08:03,390 --> 01:08:06,430 Verjetno si ne bi dejansko uporabiti ta ukaz, 921 01:08:06,430 --> 01:08:14,160 vendar je to notranja zamenjava ukaz odmeva imena vseh datotek, ki se začnejo z, 922 01:08:14,160 --> 01:08:18,229 potem je to ena teče ls-l na teh datotek, 923 01:08:18,229 --> 01:08:20,500 in potem je to eno samo odmeva izhod. 924 01:08:21,729 --> 01:08:24,479 Verjetno si ne bi to naredil, boš pač odmev ali ls, 925 01:08:24,479 --> 01:08:29,450 vendar to kaže, kako gnezdenje ukazov deluje. 926 01:08:29,450 --> 01:08:34,380 Torej samo še ena značilnost tukaj. 927 01:08:34,380 --> 01:08:37,450  Sem omenil že prej, da če imate kje v C-lupini, 928 01:08:37,450 --> 01:08:42,770 tip dela v lupinah The Bourne tipa za iskanje ukazov. 929 01:08:48,939 --> 01:08:52,270 Vgrajeni ukazi, samo tisto, kar sem bil tam rekel. 930 01:08:52,270 --> 01:08:54,640 Ukazi so del lupine, kot so kje. 931 01:08:54,640 --> 01:08:59,880 Ko lupina izvede ukaz kot ls, jo najde skozi sredino, 932 01:08:59,880 --> 01:09:03,029 ga najde v nekem imeniku nekje 933 01:09:03,029 --> 01:09:05,800 se glasi, da v spomin, ustvarja novo lupino, 934 01:09:05,800 --> 01:09:08,960 bere ukaz ls ali karkoli v lupini 935 01:09:08,960 --> 01:09:11,450 kjer so spremenljivke okolja že nahaja, 936 01:09:11,450 --> 01:09:14,000 in potem prenese izvrševanje z njo. 937 01:09:14,000 --> 01:09:18,319 Vgrajen ukaz, oznaka za ta ukaz je v notranjosti lupine, 938 01:09:18,319 --> 01:09:21,460 tako lupina šele začne izvršitve del lastne kode. 939 01:09:21,460 --> 01:09:24,569 če je tak ukaz. To dejansko postane hitreje. 940 01:09:24,569 --> 01:09:28,380 To ni nujno, da se glasi kaj v spomin, to je že v spominu. 941 01:09:28,380 --> 01:09:32,460 Vgrajeni ukazi vedno prednost pred ukaze z enakim imenom. 942 01:09:32,460 --> 01:09:36,050 Ukazi, ki so v imenikih v poti, imajo lahko isto ime, 943 01:09:36,050 --> 01:09:39,090 ukazi v različne imenike, datoteke v različnih imenikih. 944 01:09:39,090 --> 01:09:41,740 Tisti, ki prej pride na pot je tista, ki jo boste dobili. 945 01:09:41,740 --> 01:09:43,770 Če je vgrajen ukaz, vedno si ga dobil. 946 01:09:43,770 --> 01:09:47,890 Ni šans, da ga nižjo prednost kot ukaz na poti. 947 01:09:47,890 --> 01:09:54,140 Če želite, da bi dobili ta ukaz poti, lahko vnesete polno ime. 948 01:09:54,140 --> 01:09:55,850 Če ne bi bilo ukaza, kjer na poti nekje, 949 01:09:55,850 --> 01:09:58,440 lahko bi tip / bin / kje in boš dobil. 950 01:09:58,440 --> 01:10:01,800 Če ne želite vnesti celotno ime poti, lahko določite vzdevek. 951 01:10:01,800 --> 01:10:06,310 V bistvu, če si dal vzdevek, enako ime kot vgrajen ukaz, bi to delo 952 01:10:06,310 --> 01:10:08,790 ker se ocenjuje definicija alias 953 01:10:08,790 --> 01:10:13,220 pred lupina ugotovi, da je vgrajen ukaz kar je treba izvesti. 954 01:10:18,810 --> 01:10:23,440 Potem to postane malo bolj zapletena pri nekaterih ukazov tukaj. 955 01:10:23,440 --> 01:10:29,880 Pri nekaterih ukazov dejansko vgrajeno v poveljstvih in na poti. 956 01:10:29,880 --> 01:10:34,140 Eden od njih je, echo, ukaz sem uporabiti nekaj časa nazaj v teh primerih. 957 01:10:34,140 --> 01:10:37,410 Echo je ukaz na poti in da je v vsakem lupine. 958 01:10:37,410 --> 01:10:40,580 Ni nujno, da se vsi obnašajo enako. 959 01:10:40,580 --> 01:10:42,970 To je bil prvotno ukaz le na poti. 960 01:10:42,970 --> 01:10:45,280 Zgrajena je bila leta na lupinah kasneje. 961 01:10:45,280 --> 01:10:48,080 Ker obstajajo možnosti, ki so odvisne od okolja 962 01:10:48,080 --> 01:10:52,970 in možnosti v ukazni vrstici, so vgrajeni ukazi 963 01:10:52,970 --> 01:10:57,030 je napisano kot deluje enako kot ukaz, ki je bila v sredino, 964 01:10:57,030 --> 01:10:59,670 to je malo verjetno, da bi bila napisana na ta način 965 01:10:59,670 --> 01:11:01,720 če bi ukaz ni bilo napisano za pot. 966 01:11:01,720 --> 01:11:06,180 Torej, to ima tudi stranske učinke. Njegova zgodovina je učinek tukaj. 967 01:11:06,180 --> 01:11:08,380 Obstajajo možnosti tam. 968 01:11:14,280 --> 01:11:23,060 Obstaja tudi možnost, ki jo spremenljivko je opredeljena v tcsh imenovano echo_style. 969 01:11:23,060 --> 01:11:27,700 To je ena od teh spremenljivk, ki lahko spremenijo tako, da ECHO sodeluje. 970 01:11:27,700 --> 01:11:30,910 Obstajajo še drugi primeri, v katerih boste lahko določite spremenljivko 971 01:11:30,910 --> 01:11:36,290 , ki spreminja način, da operacija lupina, vključno z vgrajeno ukaz, ki deluje. 972 01:11:36,290 --> 01:11:38,130 To ne bi vplivalo kaj drugega 973 01:11:38,130 --> 01:11:40,640 ker drugi ukazi nimajo dostopa do spremenljivk lupine, 974 01:11:40,640 --> 01:11:42,090 Samo okoljske spremenljivke. 975 01:11:42,090 --> 01:11:45,360 Vendar pa lahko operacije shell prebrati spremenljivk lupine. 976 01:11:45,360 --> 01:11:50,710 Da ne bo delo za csh. To je samo tcsh. To je ena od izboljšav. 977 01:11:58,540 --> 01:12:04,620 Razčlenjevanje ima sekvenc pri oceni metacharacters, 978 01:12:04,620 --> 01:12:08,140 pri oceni spremenljivke, vzdevke, reference zgodovine. 979 01:12:08,140 --> 01:12:11,830 Tam je posebna sekvenca za te stvari. 980 01:12:11,830 --> 01:12:13,730 Če se to zgodi stvari v določenem zaporedju 981 01:12:13,730 --> 01:12:16,080 in dobi za nekaj, kar je izraz neke 982 01:12:16,080 --> 01:12:20,650 , ki je bila že ocenili, da ne bo ponovno oceni. 983 01:12:20,650 --> 01:12:24,520 Če se ga dobi, potem bo to šele prenesti znakov. 984 01:12:24,520 --> 01:12:29,920 Torej, če vrednotenje nekaterih izrazov, kot ukazni zamenjavo 985 01:12:29,920 --> 01:12:36,850 ali spremenljivo ali karkoli povzroča izraz 986 01:12:36,850 --> 01:12:39,240 ki bi si želeli, da je treba oceniti, 987 01:12:39,240 --> 01:12:42,510 da bo deloval le, če se je ta ocena kasneje v zaporedju. 988 01:12:42,510 --> 01:12:45,010 Upam, da bom na jasnem tam. 989 01:12:45,010 --> 01:12:50,460 Da razčlenjevanju zaporedje, operacija v C-lupini, 990 01:12:50,460 --> 01:12:56,490 ni enaka za vgradne ukazov, saj je za nekadilce in vgrajenih ukazov. 991 01:12:56,490 --> 01:12:58,890 Nisem prepričan o Bash tam. 992 01:12:58,890 --> 01:13:02,450 Na primer, če lupina spremenljivka proizvaja sklicujejo na zgodovino, 993 01:13:02,450 --> 01:13:04,230 to verjetno ne bi šel nazaj v zgodovino. 994 01:13:04,230 --> 01:13:06,010 To bi šele dobili klicaj. 995 01:13:06,010 --> 01:13:08,840 V bistvu, lahko poizkusiva da ven prav zdaj. 996 01:13:09,720 --> 01:13:18,240 nastavite A = in bomo morali dati to tam. 997 01:13:30,690 --> 01:13:34,580 Oh, počakaj. Žal mi je. To sem naredil v Bash. Želel sem, da to storite tukaj. 998 01:13:53,470 --> 01:13:56,080 Glej, tako da ni ocenjeval, da sklicevanje zgodovino 999 01:13:56,080 --> 01:14:00,520 ker je bil že mimo točke vrednotenja zgodovine izrazov 1000 01:14:00,520 --> 01:14:02,720 ko ocenili spremenljivko. 1001 01:14:02,720 --> 01:14:05,550 Tako da je 1 učinek razčlenjevanju. 1002 01:14:05,550 --> 01:14:08,760 In spet so vgrajeni ukazi niso storile enako. 1003 01:14:08,760 --> 01:14:11,230 Vse je v redu. Gremo na naslednjo igro. 1004 01:14:11,230 --> 01:14:16,060 To naj bi bila 1 linijo, vendar je lažje brati. 1005 01:14:19,130 --> 01:14:21,530 Kaj naj bi to naredil? 1006 01:14:21,530 --> 01:14:28,640 Morda se spomnite, da smo lahko oceni zvezdicam kot datotečnih nadomestnih znakov, 1007 01:14:28,640 --> 01:14:33,890 pa obstajajo še drugi filename nadomestne znake, kot vprašajem in nosilec izrazov. 1008 01:14:33,890 --> 01:14:39,000 Ta vrsta vrednotenja se imenuje vzorcev v datotekah. 1009 01:14:39,000 --> 01:14:46,290 nastavite noglob na začetku tega ukaza pravi, ne delaj tega. 1010 01:14:46,290 --> 01:14:53,370 nenastavljeni noglob pravi, da se vrnete na tem. 1011 01:14:53,370 --> 01:14:56,440 Upoštevajte, da niz glob ne bi imela tak učinek. 1012 01:14:56,440 --> 01:15:00,800 V običajnem jeziku, bi določila glob ali nenastavljeni noglob zdi, da so enakovredni, 1013 01:15:00,800 --> 01:15:03,290 ampak tukaj je ni. To je nenastavljeni noglob. 1014 01:15:05,120 --> 01:15:07,910 Zdaj TSET. Tset stal na terminalu. 1015 01:15:07,910 --> 01:15:11,840 Ni pa to zdaj pogosto uporabljajo, vendar preden je bil na voljo okenski sistemi 1016 01:15:11,840 --> 01:15:15,760 in bi imeli en sam terminal, boste morda morali določiti vrsto. 1017 01:15:15,760 --> 01:15:18,700 In če je nekaj, prihajajo preko Ethernet ali iz mreže, 1018 01:15:18,700 --> 01:15:21,120 boste morda želeli, da pravijo, da je VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 je nekako standarda v poslovanje terminala. Izhaja iz december terminala. 1020 01:15:26,630 --> 01:15:35,270 Če si naredil dialup - opazil, da? To sega nazaj v čas, kajne? 1021 01:15:35,270 --> 01:15:39,520 Torej, če smo samo mi TSET tukaj, 1022 01:15:39,520 --> 01:15:45,250 če sem naredil TSET, to je ponastavitvi mojo terminal, vendar nisi videl ničesar. 1023 01:15:45,250 --> 01:15:47,340 To ni res ničesar spremeniti. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Ok. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm-color. 1027 01:15:53,350 --> 01:15:57,080 Mi že vemo, da je bil izraz nastavljen na ta način, tako da se ni spremenilo. 1028 01:15:57,080 --> 01:15:58,860 To je način, kako bi želeli, da to storite. 1029 01:15:58,860 --> 01:16:07,080 Ampak obvestilo, da je ta ukaz, Tset-ov, samo izhodni ukazi. To jim ni prost. 1030 01:16:07,080 --> 01:16:09,770 To ni bilo v teh ukazov, da izhod njih. 1031 01:16:09,770 --> 01:16:13,650 Torej je ta namenjen za proizvodnjo ukaze, ki se bo nato teči. 1032 01:16:13,650 --> 01:16:16,360 Se spomniš ukaz v tej datoteki sem pokazala, da si imel Q v njej. 1033 01:16:16,360 --> 01:16:18,910 Torej, kaj je to. 1034 01:16:18,910 --> 01:16:23,750 Q zavira nekaj moči, toda to ni važno tukaj, kot lahko vidite. 1035 01:16:23,750 --> 01:16:27,980 Jaz sem samo delaš, da bi vam pokazal, da ni važno. 1036 01:16:27,980 --> 01:16:31,870 To je v backquote sintakso. 1037 01:16:31,870 --> 01:16:35,340 Bodite pozorni na backquote tukaj, backquote tukaj. 1038 01:16:35,340 --> 01:16:37,680 Jaz opustitev te stvari tukaj. 1039 01:16:37,680 --> 01:16:39,570 To so primeri je povedal, kaj storiti 1040 01:16:39,570 --> 01:16:42,050 v primeru posebnih vrst terminalov - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, mreža, dialup, kar imate. 1042 01:16:45,400 --> 01:16:48,050 Ni važno tukaj, ker smo dejansko ne delaš koli od teh stvari. 1043 01:16:48,050 --> 01:16:49,720 Jaz sem samo kaže na ukaz. 1044 01:16:49,720 --> 01:16:55,170 Če naredim to z backquote, kaj bom dobil? 1045 01:16:55,170 --> 01:17:00,210 Opazili tudi tukaj, da se to vključi zastavljeni noglob in nenastavljeno noglob, 1046 01:17:00,210 --> 01:17:02,630 tako tistih, ki so zdaj odveč opredelitev. 1047 01:17:02,630 --> 01:17:05,380 To ni bilo vedno res, zdaj pa oni so vključeni v ta ukaz. 1048 01:17:05,380 --> 01:17:08,890 Ampak poglejmo, kaj se zgodi, če naredim to 1049 01:17:08,890 --> 01:17:12,570 in pojdite na začetku vrstice s kontrolnimi A in sem to naredil. 1050 01:17:14,380 --> 01:17:18,040 Ok, določi: Command not found. To je nekako čudno, kajne? 1051 01:17:18,040 --> 01:17:20,570 Niz je znana ukaz. To je del lupine. 1052 01:17:20,570 --> 01:17:24,040 nastavite: Command not found? Zakaj je tako? 1053 01:17:24,040 --> 01:17:26,790 Hmm. No, kaj je razmišljati o tem. 1054 01:17:26,790 --> 01:17:31,100 To je tekmovanje v teku zapoved menjavo backquote, 1055 01:17:31,100 --> 01:17:37,430 in ki se pojavlja v določenem delu zaporedja razčlenjevanje ukaz. 1056 01:17:37,430 --> 01:17:40,360 Niz je vgrajen ukaz. 1057 01:17:40,360 --> 01:17:43,900 Torej, do takrat pa naj bi to zapoved menjavo, 1058 01:17:43,900 --> 01:17:48,280 to je že prišel mimo točke identifikacije vgrajenimi ukazi. 1059 01:17:48,280 --> 01:17:51,900 Tako da obravnava določena kot da bi bil ukaz na poti. 1060 01:17:51,900 --> 01:17:55,440 Ni treba posebej poudarjati, da ne najdejo in dobiš napako. 1061 01:17:55,440 --> 01:17:59,300 Dobro. Tam je primer razčlenjevanju zaporedju. 1062 01:17:59,300 --> 01:18:01,460 In kaj naj storimo glede tega? 1063 01:18:01,460 --> 01:18:04,800 Opazili to zelo zanimiv ukaz tukaj, eval. 1064 01:18:04,800 --> 01:18:06,530 Zanima me, kaj to počne. 1065 01:18:06,530 --> 01:18:08,760 Če pogledaš na navodila - in kaj je samo to, da 1066 01:18:08,760 --> 01:18:12,000 pokazati, kako nejasne so ti priročniki - 1067 01:18:12,000 --> 01:18:19,400 Človek tcsh, zmeden priročnik, iskanju stvari tukaj ni enostavno niti. 1068 01:18:19,400 --> 01:18:31,850 Gremo, eval arg, tako da imamo lahko 1 ali več argumentov 1069 01:18:31,850 --> 01:18:34,090 in tam je seznam stvari tam. 1070 01:18:34,090 --> 01:18:37,730 Obravnava argumente, kot so vhodi v lupini 1071 01:18:37,730 --> 01:18:43,600 in izvede posledica ukazov v okviru trenutne lupine. 1072 01:18:43,600 --> 01:18:46,900 To se običajno uporablja za izvajanje ukazov, ki nastanejo kot rezultat ukaza 1073 01:18:46,900 --> 01:18:51,310 ali spremenljivo zamenjavo, saj se pojavlja pri razčlenjevanju pred temi menjav. 1074 01:18:51,310 --> 01:18:52,580 Zelo dobro. 1075 01:18:52,580 --> 01:18:54,740 In tukaj se celo nanašajo na ukaz TSET za uporabo vzorca 1076 01:18:54,740 --> 01:18:57,700 kot tisti, pravkar sem ti pokazal. 1077 01:18:57,700 --> 01:19:00,440 Zdaj moram okno nazaj na uporabno mesto. 1078 01:19:03,150 --> 01:19:07,800 Pojdimo tja in bomo videli, da eval se uporablja tik pred tem. 1079 01:19:07,800 --> 01:19:14,010 Pa poglejmo, kaj se zgodi, če smo se - gremo v korak s puščicami za ta ukaz 1080 01:19:14,010 --> 01:19:20,940 in nadzor na začetku, eval. 1081 01:19:20,940 --> 01:19:22,850 Ok, tako da deluje. 1082 01:19:22,850 --> 01:19:26,440 Ko boste to storili eval, saj traja kar pride po njo in jo naredi ukaz. 1083 01:19:26,440 --> 01:19:29,460 To vam omogoča, da v bistvu to razčleniti dvakrat. 1084 01:19:29,460 --> 01:19:33,710 Oddelek tukaj teče ta ukaz znotraj backquotes, 1085 01:19:33,710 --> 01:19:36,210 dobi izhod. 1086 01:19:36,210 --> 01:19:42,850 Izhod naj bi se vodijo kot tiste ukaze tukaj, kot ti 1087 01:19:42,850 --> 01:19:45,890 na ta in ta. 1088 01:19:45,890 --> 01:19:50,100 Torej ti ukazi so zdaj tukaj, v tem zaporedju, 1089 01:19:50,100 --> 01:19:58,950 vendar pa so te vgrajene ukaze, zato jih ne more dobiti takoj. 1090 01:19:58,950 --> 01:20:06,440 Torej gremo na eval, eval pobere, da se prične celotno stvar znova in deluje. 1091 01:20:06,440 --> 01:20:18,460 Primer oba backquoting, eval, razčlenjevanje, posledice razčlenjevanje, 1092 01:20:18,460 --> 01:20:21,910 in ukaz, ki je verjetno zelo malo uporabljajo za vas danes. 1093 01:20:21,910 --> 01:20:25,540 Ok. Vse je v redu, umask. 1094 01:20:25,540 --> 01:20:32,160 Oglejmo si ta ukaz tukaj umask 022. Zanima me, kaj to počne. 1095 01:20:32,160 --> 01:20:38,420 Reciva, tip umask nič po njej. 22. Ok. 1096 01:20:38,420 --> 01:20:44,350 022 in še enkrat. 1097 01:20:44,350 --> 01:20:48,580 Kot ste morda uganili ste, umask brez argumentov vam pove trenutni masko; 1098 01:20:48,580 --> 01:20:51,760 umask z argumenti, zaradi česar je to, ampak da je bil tisti, ki sem že imel. 1099 01:20:51,760 --> 01:20:53,800 Kaj pomeni 022? 1100 01:21:01,650 --> 01:21:07,080 To so tu zaščite za datoteko. 1101 01:21:07,080 --> 01:21:11,440 Ti določajo, kdo sme brati ali pisati ali izvajajo datoteko. 1102 01:21:11,440 --> 01:21:16,560 Zaščite so imenovane tudi dovoljenja. 1103 01:21:16,560 --> 01:21:21,390 R stoji za branje, w za pisanje, 1104 01:21:21,390 --> 01:21:25,500 in x, ki niso prisotni, stoji za izvedbo. 1105 01:21:25,500 --> 01:21:27,260 Obstajajo 3 kategorije tam. 1106 01:21:27,260 --> 01:21:33,540 Zadnje 3 elementi so v kategoriji uporabnika. Tisti, ki se uporablja za mene, uporabnika. 1107 01:21:33,540 --> 01:21:36,870 Te 3 tu veljajo za skupino. 1108 01:21:36,870 --> 01:21:41,590 Datoteka spada v skupino 1, uporabnik lahko pripada več skupinam, 1109 01:21:41,590 --> 01:21:47,150 toda, če je uporabnik v skupino, v kateri je ta datoteka pripada, 1110 01:21:47,150 --> 01:21:51,090 potem bodo te zaščite veljajo za njim, če ni uporabnik. 1111 01:21:51,090 --> 01:21:54,230 In ta je vsakdo drug. 1112 01:21:55,540 --> 01:21:57,690 Te kategorije so med seboj izključujejo. 1113 01:21:57,690 --> 01:21:59,750 V zaščite uporabnikov uporablja zanj, 1114 01:21:59,750 --> 01:22:03,780 z varstvom, skupina za člane skupine, razen uporabnika, 1115 01:22:03,780 --> 01:22:08,110 in druge zaščite uporabljajo le za druge, kot uporabnika in člani skupine ljudi. 1116 01:22:08,110 --> 01:22:12,320 Če je r ali aw ali x, to pomeni, da se zaščita odobri. 1117 01:22:12,320 --> 01:22:13,950 Če je vezaj, to pomeni, da ni. 1118 01:22:13,950 --> 01:22:16,690 Obstaja dejansko tudi druge stvari, ki jih lahko dal noter poleg teh 1119 01:22:16,690 --> 01:22:18,350 ki je ne bom dobil v zdaj. 1120 01:22:18,350 --> 01:22:24,450 Umask določa privzeto za datoteke, ki jih ustvarite. 1121 01:22:24,450 --> 01:22:28,580 In kot masko, v bistvu pravi, bite, da ne boste zastavili. 1122 01:22:28,580 --> 01:22:30,450 Kako je to postalo bitov? 1123 01:22:30,450 --> 01:22:33,240 Če menite, da je vsak od teh, kot osmiško število, 1124 01:22:33,240 --> 01:22:42,120 To je 1S bit, to je 2S, to je 4S. 1125 01:22:42,120 --> 01:22:45,840 Torej od 0 do 7 1126 01:22:45,840 --> 01:22:51,770 bo opisal, kaj kombinacija r-ih, je w in x je imate za te 3 1127 01:22:51,770 --> 01:22:53,710 in potem podobno številko za to in potem za njih. 1128 01:22:53,710 --> 01:23:12,030 Torej 022 pomeni 0 Za druge 2 za skupino 2 za uporabnika. 1129 01:23:12,030 --> 01:23:15,870 Ampak to je maska. Maska je tisto, kar vam ni treba. 1130 01:23:19,380 --> 01:23:20,610 Žal mi je. Pravkar sem ti dal stvari v napačnem vrstnem redu. 1131 01:23:20,610 --> 01:23:25,620 To je prva 3. Te 3 so uporabnik, ti ​​3 so skupina, ti 3 so drugi. 1132 01:23:25,620 --> 01:23:27,970 Oprosti, ker sem ti dal to v napačnem vrstnem redu. 1133 01:23:27,970 --> 01:23:31,910 0, ki je prvi od tistih, ne prikaz vrednosti, 1134 01:23:31,910 --> 01:23:35,430 vendar če število ni tam, je 0. 1135 01:23:35,430 --> 01:23:38,370 To pomeni, da vse 3 od teh bi bila dovoljena. 1136 01:23:38,370 --> 01:23:41,550 Opazimo, da v tem posebnem one x ni dovoljeno. 1137 01:23:41,550 --> 01:23:44,090 Razlog za to je, da je lupina lahko določi 1138 01:23:44,090 --> 01:23:46,260 ali naj se datoteka izvrši ali ne. 1139 01:23:46,260 --> 01:23:49,800 Ker to ni izvedljivo datoteko, da niso bili določeni x. 1140 01:23:49,800 --> 01:23:54,000 V 2 pomeni, da pišejo dovoljenje, drugo kategorijo tu, 1141 01:23:54,000 --> 01:23:56,500 ena na sredini, je zanikal. 1142 01:23:56,500 --> 01:23:58,500 Torej še enkrat, to so stvari, ki jih zanikal. 1143 01:23:58,500 --> 01:24:02,080 No, x dovoljeno, vendar to ni tukaj, ker to ni izvedljivo 1144 01:24:02,080 --> 01:24:04,260 Podobno velja tudi za ostale. 1145 01:24:04,260 --> 01:24:08,880 Tako da je skupno umask. 1146 01:24:08,880 --> 01:24:14,630 Druga skupna ena je 700 - da si vse, kar je in nihče drug ničesar. 1147 01:24:14,630 --> 01:24:17,040 In obstajajo tudi druge možnosti. 1148 01:24:21,340 --> 01:24:27,110 Vrnil se bom k temu. Uporaba zgodovine sem lahko poiščete nazaj, da LWH tam. 1149 01:24:27,110 --> 01:24:30,210 Ok. Torej tukaj, to so lupine. 1150 01:24:30,210 --> 01:24:36,020 Bash, lastnik, ki je sistem za račun, lahko storite vse, kar je. 1151 01:24:36,020 --> 01:24:41,210 Skupina in vsi ostali lahko preberemo ali izvršitev, ne pa pisati. 1152 01:24:41,210 --> 01:24:44,570 Tale sploh ne dovoli lastnik pisati z njo. 1153 01:24:44,570 --> 01:24:46,460 Če je lastnik želel napisati na to, sistemski račun, 1154 01:24:46,460 --> 01:24:48,020 kar bi morali najprej spremeniti zaščito. 1155 01:24:48,020 --> 01:24:53,940 Ampak še enkrat, umask določa privzeto, da jo maskiranje, 1156 01:24:53,940 --> 01:24:57,160 z navedbo bite, ki se ne bodo določene. 1157 01:24:57,160 --> 01:25:04,380 Ta je ponavadi v eni od inicializacijo datoteke, ki je. Cshrc za C-lupini 1158 01:25:04,380 --> 01:25:07,500 ali. profil lupine Bourne tipa. 1159 01:25:07,500 --> 01:25:12,520 To je lahko tudi na drugem mestu, če obstajajo drugi inicializacijo datotek na sistemu. 1160 01:25:12,520 --> 01:25:14,610 Kakorkoli že, to je umask. 1161 01:25:14,610 --> 01:25:18,180 Nekaj ​​je nekako čudno tukaj 1162 01:25:18,180 --> 01:25:22,800 in da je, zakaj je tam en sam ukaz za to? 1163 01:25:22,800 --> 01:25:28,690 Če bi bilo to pisanje, jaz bi, da je spremenljivka, umask = nekaj vrednosti. 1164 01:25:28,690 --> 01:25:31,100 Zato obstaja cela ukaz samo za ta namen? 1165 01:25:31,100 --> 01:25:34,560 Razlog za to je to samo sega v začetke Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix je samo nek programski projekt v Bell Labs v začetku leta 1970. 1167 01:25:41,050 --> 01:25:42,610 Ljudje pravkar dobil skupaj s programom. 1168 01:25:42,610 --> 01:25:45,290 Oni nikoli ni bila namenjena, da postane svetovni operacijski sistem. 1169 01:25:45,290 --> 01:25:47,250 Različni ljudje napisal različnih delov brez razmišljanja zelo 1170 01:25:47,250 --> 01:25:49,790 o tem, kako so bili, da bo treba uporabiti - precej nedorečena. 1171 01:25:49,790 --> 01:25:53,290 In je prišel skupaj, kot da, in to je še vedno všeč, da je v nekaterih pogledih. 1172 01:25:53,290 --> 01:25:57,930 Tako, da odseva zgodovino, in še vedno obstajajo te nedoslednosti in lihe elemente njej. 1173 01:25:57,930 --> 01:26:00,750 Ok. Naslednja tukaj. 1174 01:26:08,170 --> 01:26:11,000 Kot sem napisal že prej, je C-shell ni res uporablja zelo veliko za programiranje, 1175 01:26:11,000 --> 01:26:12,420 čeprav je lahko. 1176 01:26:12,420 --> 01:26:15,080 Izvaja bolj počasi, spet kompromis med interaktivno uporabo, 1177 01:26:15,080 --> 01:26:17,820 ki ima več procesiranja vključena kot hitrosti 1178 01:26:17,820 --> 01:26:20,710 kar lahko storite brez obdelave. 1179 01:26:20,710 --> 01:26:28,320 Dodatne funkcije, dodane Bournova lupina, ki jih Korn in Bourne-spet školjk 1180 01:26:28,320 --> 01:26:32,120 ne zdi, da jih upočasni, in ne vem, zakaj je tako. 1181 01:26:32,120 --> 01:26:36,310 Morda bi le bilo bolje programiranje, ampak jaz nisem v položaju, da veš. 1182 01:26:36,310 --> 01:26:40,420 Speed ​​tukaj pravzaprav ni tako velik posel, čeprav je bilo omenjeno. 1183 01:26:40,420 --> 01:26:43,690 Razlog za to je, da skriptov dejansko dobili dokaj hitro. 1184 01:26:43,690 --> 01:26:46,450 Če obstaja veliko ukazov, kot v calculational programa, 1185 01:26:46,450 --> 01:26:49,110 vam verjetno ne bi mogla v skripte. 1186 01:26:49,110 --> 01:26:51,450 Operacije so dokaj preprosta in enostavna. 1187 01:26:51,450 --> 01:26:53,960 Tiste, ki sem jih doživela, da so prepočasne 1188 01:26:53,960 --> 01:26:57,110 vključujejo ponavljajoče se prošnje počasi ukazov. 1189 01:26:57,110 --> 01:27:00,480 Prej sem omenil tok urednik sed. Ta ukaz je počasen. 1190 01:27:00,480 --> 01:27:03,760 Če izvedete sed večkrat, boste dobili počasi scenarij, vendar to ni lupina, ki je počasen. 1191 01:27:03,760 --> 01:27:07,920 To tekmovanje v teku v Bournova lupina ne bo veliko hitreje, kot to poteka v C-lupini, 1192 01:27:07,920 --> 01:27:10,070 čeprav je morda nekaj prednosti tam. 1193 01:27:10,070 --> 01:27:12,760 Dodatna programska zmogljivosti, na drugi strani pa 1194 01:27:12,760 --> 01:27:17,920 so pomembni razlogi, zakaj bi jih uporabite lupine Bourne tipa. 1195 01:27:17,920 --> 01:27:21,390 C-shell ima čuden funkcije za njo - 1196 01:27:21,390 --> 01:27:25,250 Dejstvo, da ne vem, če spremenljivka je spremenljivka lupina ali spremenljivka okolja. 1197 01:27:25,250 --> 01:27:27,440 To je lahko zelo zavajajoče. 1198 01:27:27,440 --> 01:27:32,170 To ni tako enostavno napisati 1199 01:27:32,170 --> 01:27:35,930 temelji le na vaše izkušnje programiranja v drugih jezikih. 1200 01:27:35,930 --> 01:27:41,350 Mislim, da boste ugotovili, lupine Bourne tipa bolj v skladu z vašo izkušnjo. 1201 01:27:43,730 --> 01:27:49,270 Nekatere skripte, čeprav je lahko na tisoče vrstic v dolžino. 1202 01:27:49,270 --> 01:27:52,450 Tisti, ki sem jih videl se uporabljajo za krpanje operacijskih sistemov. 1203 01:27:52,450 --> 01:27:55,450 Tisti, ki lahko izvajajo zelo počasi, vendar vam ne zmanjka tistih, ki zelo pogosto. 1204 01:27:55,450 --> 01:27:57,180 To je samo takrat, ko delaš zaplata, 1205 01:27:57,180 --> 01:27:59,450 in to je edini sistem manager, ki počne te stvari, 1206 01:27:59,450 --> 01:28:01,840 tako da to ni res veliko vprašanje. 1207 01:28:01,840 --> 01:28:06,980 Tisti, ki so na stotine vrstic dolg dejansko izvajati precej hitro. 1208 01:28:06,980 --> 01:28:10,540 Omenjajo tu, kaj so te izboljšave? 1209 01:28:10,540 --> 01:28:13,170 Sem že omenil nekaj od njih - nizi, izračuni, 1210 01:28:13,170 --> 01:28:20,540 The $ () izraz za izračune v Bash lupini, 1211 01:28:20,540 --> 01:28:23,050 druga vrsta ukaza zamenjavo. 1212 01:28:23,050 --> 01:28:25,360 Obstajajo različne vrste ukazov za testiranje 1213 01:28:25,360 --> 01:28:29,350 , s katerim lahko storite pogojne teste o obstoju datoteke ali druge stvari. 1214 01:28:29,350 --> 01:28:34,790 Trajal tukaj, ta ukaz tukaj. 1215 01:28:34,790 --> 01:28:38,480 Kaj to storiti in zakaj bi kdorkoli uporablja? 1216 01:28:51,170 --> 01:28:52,990 printenv variablename. 1217 01:28:52,990 --> 01:28:56,130 Vemo, kaj printenv počne. To nam pove vrednost spremenljivke. 1218 01:28:56,130 --> 01:29:00,850 In printenv variablename nam ne bo povedal zelo veliko, ker ni taka spremenljivka ni. 1219 01:29:03,550 --> 01:29:05,120 Prazno. 1220 01:29:05,120 --> 01:29:08,440 Ampak dajmo mu nekaj pomembnega. 1221 01:29:13,420 --> 01:29:16,800 Da ni tam niti. Ok. Mislim, da ne bom nikoli opredeljeno, da. 1222 01:29:16,800 --> 01:29:18,020 Reciva, preverite svoj okolja. 1223 01:29:18,020 --> 01:29:20,900 To je še en ukaz, s katerim lahko preverite svoje okolje. 1224 01:29:20,900 --> 01:29:24,470 Tam je dobra stara UREDNIK, eno smo videli prej. 1225 01:29:42,360 --> 01:29:44,120 Kaj naj bi to naredil? 1226 01:29:44,120 --> 01:29:48,050 Tukaj imamo backquote izraz. 1227 01:29:48,050 --> 01:29:50,370 Shrani to je C-shell. 1228 01:29:50,370 --> 01:29:54,850 Torej nam bo printenv UREDNIK dala vrednost urednik. To je vi. 1229 01:29:54,850 --> 01:29:59,790 In potem se bo določila, da je vrednost spremenljivki A, določenem ukazu. 1230 01:29:59,790 --> 01:30:02,860 Torej, zdaj, če naredim echo $ a, sem dobil vi. 1231 01:30:02,860 --> 01:30:05,850 To se ne zdi strašno koristen. 1232 01:30:05,850 --> 01:30:08,080 Vendar pa dejansko ima svoj namen. 1233 01:30:08,080 --> 01:30:12,260 Ker ne vemo, ali je spremenljivka spremenljivka lupina ali spremenljivka okolja 1234 01:30:12,260 --> 01:30:16,280 s pomočjo sintakse ocenjevalnega znak za dolar, lahko uporabite printenv 1235 01:30:16,280 --> 01:30:19,460 se prepričajte, da je spremenljivka okolja. 1236 01:30:19,460 --> 01:30:22,550 Torej, če je bilo lupina spremenljivka urednik, to ne bi ga dobila. 1237 01:30:22,550 --> 01:30:25,640 To deluje samo z okoljsko spremenljivko. 1238 01:30:25,640 --> 01:30:28,370 Če ne bi bilo lupina spremenljiv in sem želela svojo vrednost, 1239 01:30:28,370 --> 01:30:29,980 Jaz bi moral najti drug način, da to storite. 1240 01:30:29,980 --> 01:30:33,530 Eden od načinov za to, da bi se s tem niz in cevovodov. 1241 01:30:33,530 --> 01:30:36,130 To je eden izmed metacharacters, posebnimi znaki. 1242 01:30:36,130 --> 01:30:38,370 To pošilja izhod nastavljen na nekaj drugega. 1243 01:30:38,370 --> 01:30:40,650 Poglejmo, kaj bi lahko našli tam. 1244 01:30:40,650 --> 01:30:49,340 Nič. Ok. Da vidimo, kaj se je tam vse skupaj. 1245 01:30:49,340 --> 01:30:53,580 To je bil echo_style, eden preden sem omenil. Ok, naredimo to. 1246 01:31:02,460 --> 01:31:06,230 Zapomni si prej sem omenil, echo_style 1247 01:31:06,230 --> 01:31:08,410 določa način echo ukaz bo teči. 1248 01:31:08,410 --> 01:31:10,940 bsd stoji za Berkeley standardne distribucije. 1249 01:31:10,940 --> 01:31:13,200 To je Berkeley Unix iz leta 1970. 1250 01:31:13,200 --> 01:31:16,630 To je eden od načinov, ki odmeva mogoče zagnati. 1251 01:31:16,630 --> 01:31:22,310 Nastavitev echo_style tej vrednosti v TC-lupini povzroči odmev, da se obnašajo na ta način. 1252 01:31:22,310 --> 01:31:27,670 Tako nastavljen, da počne, vendar so le dobi lupine spremenljivk. 1253 01:31:27,670 --> 01:31:35,430 To ne bi našli urednik, ki ni lupina spremenljivka. 1254 01:31:36,870 --> 01:31:38,050 Nič. 1255 01:31:38,050 --> 01:31:39,660 Tako da je eden od načinov za njihovo razlikovanje. 1256 01:31:39,660 --> 01:31:42,000 Toda dejstvo, da boste morali iti skozi nek čuden ukaz, kot da 1257 01:31:42,000 --> 01:31:45,500 razlikovati med spremenljivkami oklepu ali spremenljivke okolja 1258 01:31:45,500 --> 01:31:49,970 prikazuje vrsto nepraktičen po naravi C-lupini za nekatere namene. 1259 01:31:52,290 --> 01:31:57,960 In zdaj, zadnji in morda najmanj, to je man strani. 1260 01:31:57,960 --> 01:32:03,190 Tisti, ki veste, človek je ukaz za kratka navodila. 1261 01:32:03,190 --> 01:32:08,610 Man strani lupine so težko prebere. Oni so zelo dolgo. 1262 01:32:08,610 --> 01:32:14,060 Oni so organizirana na način, ki bi lahko oteži, da bi našli tisto, kar iščete. 1263 01:32:14,060 --> 01:32:15,980 Torej, če iščete nekaj z namenom, 1264 01:32:15,980 --> 01:32:20,050 morda ne boste vedeli, če je v ta namen je spremenljivka lupina ali kaj drugega, 1265 01:32:20,050 --> 01:32:21,630 zato morda ne boste vedeli, kje iskati za to. 1266 01:32:21,630 --> 01:32:25,030 Si lahko ogledate za različne strune, vendar strune so pogosto ponovi. 1267 01:32:25,030 --> 01:32:27,640 Tako da je na splošno težko prebere. 1268 01:32:27,640 --> 01:32:33,810 Pravkar smo pogledal man strani TC-shell malo prej, da bi našli ukaz eval. 1269 01:32:33,810 --> 01:32:36,610 Nekatere stvari gredo hitreje. 1270 01:32:36,610 --> 01:32:38,860 Ena možnost je, da poiščete niz. 1271 01:32:38,860 --> 01:32:40,360 Lahko uporabite pozivnik. 1272 01:32:40,360 --> 01:32:49,080 Pozivnik ima poševnica, da si za ukaz ali niz znotraj operacijo pozivnik. 1273 01:32:49,080 --> 01:32:52,830 Človek se privzeto uporabljajo pozivniki, bodisi bolj ali manj. 1274 01:32:52,830 --> 01:32:56,560 Ne vem, če ste seznanjeni s tistimi, ampak tistih, ki lahko pokažejo files bit by bit. 1275 01:32:56,560 --> 01:33:00,550 Sem bil z uporabo manj prikaz te posebne datoteke imamo tukaj. 1276 01:33:00,550 --> 01:33:03,300 Iščete lahko tam notri. 1277 01:33:03,300 --> 01:33:04,880 Lahko poskusite z uporabo različnih iskalnih nizov. 1278 01:33:04,880 --> 01:33:08,420 Tudi strani man v različnih operacijskih sistemih, ne sme biti isti. 1279 01:33:08,420 --> 01:33:11,130 Lahko so ločene strani za csh in tcsh. 1280 01:33:11,130 --> 01:33:14,500 Oni niso na Mac, vendar pa bi lahko, če so ločeni ukazi. 1281 01:33:14,500 --> 01:33:19,000 Če ne sh ni res poklical Bash pa verjetno bi bilo ločeno man stran. 1282 01:33:19,000 --> 01:33:25,820 Nekateri sistemi imajo ločene man strani samo za C-shell vgrajenih ukazov. 1283 01:33:25,820 --> 01:33:30,250 Včasih, če želite prebrati opis vgrajenim ukazom 1284 01:33:30,250 --> 01:33:35,350 , ki je tudi na poti, kot odmev, morate prebrati stran man o tem ukazu o odmeva 1285 01:33:35,350 --> 01:33:37,610 ugotoviti, kako bo to delovalo kot vgrajenim ukazom 1286 01:33:37,610 --> 01:33:39,760 tudi če niste kliče vgrajenega ukaza. 1287 01:33:41,630 --> 01:33:46,090 To je pomanjkljivost operacijskega sistema na splošno, ne samo za lupin, 1288 01:33:46,090 --> 01:33:50,710 čeprav lupin, so zlasti man strani precej dolg, 1289 01:33:50,710 --> 01:33:56,180 deloma zato, ker smo jim dodali uporabne funkcije z njimi, ki je lahko pozitivna. 1290 01:33:56,180 --> 01:34:00,290 Ok. Ima kdo kakšno vprašanje? Morebitne teme, ki jih želite bruhati? 1291 01:34:00,290 --> 01:34:03,390 Kaj tukaj pomembno? 1292 01:34:04,540 --> 01:34:07,100 No, to je bilo zelo lepo, se pogovarjam z vami vsemi. 1293 01:34:07,100 --> 01:34:09,690 Upam, da imaš nekaj od tega seminarja 1294 01:34:09,690 --> 01:34:13,080 , ki bo koristno za vas v vaših prihodnjih prizadevanj. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]