1 00:00:00,000 --> 00:00:02,320 >> [Seminar - Unix Shell, keskkondade] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [See on CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Tänane teema on Unix shell. 5 00:00:12,770 --> 00:00:20,600 Ma olen Douglas Kline, ekspert, või vähemalt mõistlikult pädev kasutaja, kest. 6 00:00:20,600 --> 00:00:25,280 Kest on liides kasutaja arvuti operatsioonisüsteem. 7 00:00:25,280 --> 00:00:29,580 Nimi on eksitav, sest erinevalt looma koorega 8 00:00:29,580 --> 00:00:34,890 mis on raske ja kaitsev, arvuti kest võimaldab suhtlemist. 9 00:00:34,890 --> 00:00:39,120 Nii poorne membraan oleks ilmselt parem metafoor. 10 00:00:39,120 --> 00:00:44,500 >> Originaal kest Unix on Bourne shell. 11 00:00:44,500 --> 00:00:46,450 Bourne on kirjutatud B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne oli üks originaal autorid Unix, 13 00:00:49,770 --> 00:00:51,700 ja nii kest on tema nime. 14 00:00:51,700 --> 00:00:54,850 Nimi, mis kesta käsk on vaid lihtsalt sh. 15 00:00:54,850 --> 00:00:57,400 See on käsk, mida on võimalik täita. 16 00:00:57,400 --> 00:01:00,810 Kest algab login. 17 00:01:00,810 --> 00:01:04,459 Kui te logite sisse arvutisse, shell lihtsalt käivitub teie jaoks, 18 00:01:04,459 --> 00:01:06,820 ja see, mida teeb sinu käske. 19 00:01:06,820 --> 00:01:09,790 Ta võib alustada muul ajal ka. 20 00:01:09,790 --> 00:01:16,780 Kui sa avab akna ei ole märgitud teisiti, siis hakkab kest teile. 21 00:01:16,780 --> 00:01:20,450 Nii see on, et sa ei saa minna akna ja hakka käsud 22 00:01:20,450 --> 00:01:23,960 ja nii edasi on, kuigi sa ei saa sisse logida, et aken. 23 00:01:23,960 --> 00:01:26,670 Lisaks sellele, kui te serveriga, 24 00:01:26,670 --> 00:01:30,250 siis ta hakkab kest kaugarvuti. 25 00:01:30,250 --> 00:01:44,310 Ja see on võimalik käivitada käske ilma interaktiivne kest. 26 00:01:44,310 --> 00:01:48,990 See võib tähendada teie praegune töö, 27 00:01:48,990 --> 00:01:50,700 ja see võib tähendada ka kaugjuhtimiseks. 28 00:01:50,700 --> 00:01:52,900 Sa võiksid saata käsk teise arvutisse, 29 00:01:52,900 --> 00:01:55,460 mis sisaldab alustamisega kest seal. 30 00:01:55,460 --> 00:01:57,760 Tegelikult peab see sisaldama alustamisega kest on 31 00:01:57,760 --> 00:02:01,740 isegi kui see ei ole oma lõplikku eesmärki. 32 00:02:05,310 --> 00:02:12,350 Kui midagi hakkab niimoodi, et see ei pea tingimata algama uus kest. 33 00:02:12,350 --> 00:02:17,430 Kui sa avab uue akna, on võimalik öelda seda, et tuua toimetaja 34 00:02:17,430 --> 00:02:18,940 või mingi muu käsk. 35 00:02:18,940 --> 00:02:20,560 Sellisel juhul toimetaja algab nullist. 36 00:02:20,560 --> 00:02:22,930 Kui redaktor lõpeb, akna lõpeb. 37 00:02:22,930 --> 00:02:24,620 See on natuke ebatavaline, kuid seda võib teha. 38 00:02:24,620 --> 00:02:27,140 Neil juhtudel ei ole see kest. 39 00:02:27,140 --> 00:02:31,890 Nii et see ei pruugi nii olla, et akna või mõne sellise taotluse avab kest. 40 00:02:31,890 --> 00:02:34,030 >> Shell korrastab käske. 41 00:02:34,030 --> 00:02:40,900 Parsimine tähendab kindlaks erinevate elementide ja liigitades need. 42 00:02:40,900 --> 00:02:43,470 Jooksul käsk täielik string, et kirjutad, 43 00:02:43,470 --> 00:02:47,310 seal on 1 või enam ühekordset käske täita. 44 00:02:47,310 --> 00:02:50,050 Muud elemendid võivad olla argumente. 45 00:02:50,050 --> 00:02:55,020 Seal võib olla ka erimärke, mis mõjutavad nii et ühe käsu. 46 00:02:55,020 --> 00:02:59,710 Nad võivad saata väljund mujal kui ekraanil 47 00:02:59,710 --> 00:03:01,750 Kui käsk mis tavaliselt saadab selle ekraani. 48 00:03:01,750 --> 00:03:04,390 Seda saab suunata sisend, seda võib teha muid asju ka. 49 00:03:04,390 --> 00:03:08,120 On mitmeid muid sümboleid, sümbolite, ja nii edasi. 50 00:03:08,120 --> 00:03:13,600 Parsimine hõlmab avastamise ja tõlgendades neid asju. 51 00:03:13,600 --> 00:03:19,560 >> Nüüd, kui ei ole rohkem küsimusi, mis on üsna tõenäoline, kuna ei ole enam inimesi, 52 00:03:19,560 --> 00:03:24,620 me jätkame oma järgmisel leheküljel siin. 53 00:03:24,620 --> 00:03:29,170 >> Ma ütlesin, et Bourne shell on esimene kest. 54 00:03:29,170 --> 00:03:31,550 Seal on teised. 55 00:03:31,550 --> 00:03:34,520 Üks on C-shell. Käsk csh. 56 00:03:34,520 --> 00:03:36,830 Nimi C-shell on lihtsalt sõnamäng. 57 00:03:36,830 --> 00:03:41,260 See kest kehtestati Berkeley Unix 1970ndate keskel. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix oli seemnevedeliku sündmuse arengut Unix. 59 00:03:44,830 --> 00:03:48,770 See oli suur revolutsioon ja sisaldas sissejuhatuses seda kest. 60 00:03:48,770 --> 00:03:50,790 Põhjuseks sõnamäng, C-shell, 61 00:03:50,790 --> 00:03:56,490 on see, et C-shell on mõned omadused, see, mis meenutavad C keeles 62 00:03:56,490 --> 00:03:59,740 mis Bourne shell ei ole - 63 00:03:59,740 --> 00:04:02,140 või see ei olnud sel ajal. 64 00:04:02,140 --> 00:04:05,190 Seal on ka TC-kest. 65 00:04:05,190 --> 00:04:07,360 See on superset C-shell. 66 00:04:07,360 --> 00:04:11,470 See on lisavõimalusi, millest paljud on kasulikud interaktiivne kasutamine 67 00:04:11,470 --> 00:04:16,050 näiteks meenutades käskude ajalugu mehhanismi 68 00:04:16,050 --> 00:04:18,459 mis ma kirjeldada mõnevõrra hiljem - 69 00:04:18,459 --> 00:04:23,120 lihtsal viisil, modelleeritud pärast toimetaja. 70 00:04:23,120 --> 00:04:29,170 Samuti on köited, mis võimaldab teil siduda lühikese võti stringi enam käsk. 71 00:04:29,170 --> 00:04:31,440 Me ei kavatse sattumist et täna. 72 00:04:31,440 --> 00:04:33,650 On mõned omadused, mis on kasulik programmeerimine. 73 00:04:33,650 --> 00:04:37,020 Kuid C-pesa ei ole sageli kasutatakse koorega programmeerimine. 74 00:04:37,020 --> 00:04:39,080 Shell programmid, kui sa veel ei tea, 75 00:04:39,080 --> 00:04:41,690 On programme, mis koosneb shell omadused. 76 00:04:41,690 --> 00:04:43,220 Sa võiksid minna need, nagu programmid. 77 00:04:43,220 --> 00:04:46,760 Sa kirjutad hunnik käske arvesse fail ja käivita fail. 78 00:04:46,760 --> 00:04:49,760 Sul ei ole vaja kompileerida. See on tõlgendav keeles. 79 00:04:49,760 --> 00:04:57,320 Väljend C-shell on nüüd üheselt mõistetav, kuna see võib viidata üksnes algse C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 või kõikide C-kestad, sealhulgas Tcsh. See on veidi ebamäärane. 81 00:05:01,200 --> 00:05:08,250 >> Hiljem kest on Korn shell, KSH, nime programmeerija, Korn. 82 00:05:08,250 --> 00:05:14,160 See kest üritanud lisada 1 koorega 83 00:05:14,160 --> 00:05:16,960 eelised C-shell interaktiivseks kasutamiseks 84 00:05:16,960 --> 00:05:19,230 ja Bourne shell programmeerimine. 85 00:05:19,230 --> 00:05:25,440 See on kasutatud interaktiivset shelli mõned inimesed - vähemus. 86 00:05:25,440 --> 00:05:32,050 Hiljem aga oli teise sissejuhatuse Bash koorega Bash 87 00:05:32,050 --> 00:05:35,290 jälle sõnamäng, Bourne-uuesti laduma. 88 00:05:35,290 --> 00:05:43,830 See pikendamine Bourne shell. Korn shell on ka. Mõlemad on. 89 00:05:43,830 --> 00:05:48,100 See on sama eesmärgid Korn shell ühendamise C-Shelli 90 00:05:48,100 --> 00:05:50,980 ja Bourne shell on eelised 1 kest. 91 00:05:50,980 --> 00:05:56,810 Paljud täiustusi Korn shell sisalduvad ka Bash. 92 00:05:56,810 --> 00:06:00,710 Bash on aga rohkem ja seetõttu on eelistatav. 93 00:06:00,710 --> 00:06:05,180 Bourne-uuesti laduma ja Korn shell kutsutakse Bourne tüüpi kestad 94 00:06:05,180 --> 00:06:07,730 sest need sisaldavad Bourne shell omaduste, 95 00:06:07,730 --> 00:06:11,180 mis ei sobi mõnes mõttes koos C-kestad. 96 00:06:11,180 --> 00:06:15,520 On ka teisi kestad peale nende, mõned on mõeldud piiratud kasutamise, 97 00:06:15,520 --> 00:06:20,670 võibolla piiratud mõned käsud, võibolla spetsialiseeritud otstarbeks, mitte tihti. 98 00:06:20,670 --> 00:06:24,240 >> Ok. Järgmine punkt siin. 99 00:06:31,300 --> 00:06:38,970 Bash kest on muutunud seostatud mitmesuguste Linux. 100 00:06:38,970 --> 00:06:41,550 Ma ei ole kindel, kas see on tõsi iga vormi. 101 00:06:41,550 --> 00:06:43,280 Seal on palju vorme olemas ja ma ei ole kasutanud neid kõiki, 102 00:06:43,280 --> 00:06:46,870 aga need, mis olen kasutanud on saanud sellega seotud. 103 00:06:46,870 --> 00:06:49,670 Nii palju kui mina tean, on midagi Bash 104 00:06:49,670 --> 00:06:52,210 mis muudab enam ühildub Linux 105 00:06:52,210 --> 00:06:55,020 kui muu kombinatsioon kest ja operatsioonisüsteemi. 106 00:06:55,020 --> 00:06:59,690 Ma arvan, et see ilmselt lihtsalt peegeldab kalduvustele programmeerijad. 107 00:06:59,690 --> 00:07:07,500 Et see on muutunud seostatud Linux on üks põhjus, et eelistate Bash et ksh 108 00:07:07,500 --> 00:07:11,820 sest asjad on tõenäoliselt kirjutatud ja see on tõenäoliselt levida. 109 00:07:11,820 --> 00:07:15,410 Ma annan sulle muud põhjused, mis hiljem. 110 00:07:15,410 --> 00:07:21,330 Bourne shell skriptid peaks kestma alla Korn shell või Bash. 111 00:07:21,330 --> 00:07:22,650 Kui kirjutad midagi Bourne shell, 112 00:07:22,650 --> 00:07:26,180 saab ilmselt käivitada all KSH või bash. 113 00:07:26,180 --> 00:07:30,610 Korn shell skriptid tõenäoliselt liikuda Bash, kuid ma ei saa garanteerida, et. 114 00:07:30,610 --> 00:07:36,040 Hiljem siia, C-shell skriptid peaks kestma alla TC-kest. 115 00:07:38,850 --> 00:07:41,690 C-shell tegelikult kunagi laialdaselt kasutatud skript 116 00:07:41,690 --> 00:07:48,110 alates Bourne shell ja hiljem Bourne tüüpi kestad olid parem selleks. 117 00:07:48,110 --> 00:07:50,620 Nii et tegelikult ei ole nii oluline. 118 00:07:50,620 --> 00:07:53,480 On üsna palju Bourne shell skriptid, mis on kirjutatud kaua aega tagasi, 119 00:07:53,480 --> 00:07:56,860 enne Korn shell või Bourne-jälle kest toodi. 120 00:07:56,860 --> 00:07:59,300 Need on ikka veel kasutusel, osa operatsioonisüsteemide 121 00:07:59,300 --> 00:08:01,590 ja et sa ei leia neid, kui te vaatate operatsioonisüsteemi 122 00:08:01,590 --> 00:08:03,760 või mõne vana programmeerimine pakette. 123 00:08:03,760 --> 00:08:12,840 >> Bash on mingil määral muutub omamoodi lingua franca operatsioonisüsteemide. 124 00:08:12,840 --> 00:08:17,580 See on juba laiendatud Windows ja VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, juhul kui te ei tea, on varaline operatsioonisüsteemi 126 00:08:20,440 --> 00:08:25,480 Digital Equipment Corporation, mis on ikka veel kasutusel, peamiselt kulisside taga. 127 00:08:25,480 --> 00:08:29,250 Ja kui see läheb töötab mitmete erinevate operatsioonisüsteemide 128 00:08:29,250 --> 00:08:31,110 tõenäoliselt inimesed kipuvad minema seda. 129 00:08:31,110 --> 00:08:33,840 Kuid see areng on suhteliselt uus. 130 00:08:33,840 --> 00:08:39,490 See on alles algus, nii et ma ei saa ennustada, kui see osutub tõesti selline lingua franca. 131 00:08:39,490 --> 00:08:43,539 Samuti, kuna fail teenimesid ja raamatukogud erinevad 132 00:08:43,539 --> 00:08:46,210 nende erinevate operatsioonisüsteemide 133 00:08:46,210 --> 00:08:50,250 sa ei pruugi olla võimalik kirjutada Bash skripti ühe operatsioonisüsteemi 134 00:08:50,250 --> 00:08:51,840 ja seejärel käivitage see teine. 135 00:08:51,840 --> 00:08:54,440 Sa peaksid olema võimeline liigutada erinevate Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS operatsioonisüsteemidega kuid mitte tingimata Windows või VMS. 137 00:08:59,020 --> 00:09:01,390 Te võib-olla muuta faili failinimega kirjelduse, 138 00:09:01,390 --> 00:09:03,180 ja mõned raamatukogud võivad olla erinevad, 139 00:09:03,180 --> 00:09:05,230 mis võivad mõjutada seda, kuidas mõned käsud töötavad 140 00:09:05,230 --> 00:09:09,730 või kuidas nad töötlevad argumendid jms. 141 00:09:09,730 --> 00:09:19,230 Lisaks sellele veel ettevaatlik siin see, et puudub garantii 142 00:09:19,230 --> 00:09:23,570 et kõik erinevad kestad Olen mainitud - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-kest, Korn shell, Bourne-jälle laduma - valmib mingil Unix 144 00:09:29,880 --> 00:09:33,750 või Linux või Mac OS arvutis. 145 00:09:33,750 --> 00:09:35,620 Nad lihtsalt ei pruugi olla seal. 146 00:09:35,620 --> 00:09:38,300 See on üks hoiatusi siin. 147 00:09:38,300 --> 00:09:41,490 See on kahetsusväärne piirang siin, sest sa tahaks asju teha igal pool, 148 00:09:41,490 --> 00:09:44,380 kuid kahjuks te ei saa tugineda sellele. 149 00:09:44,380 --> 00:09:47,230 >> Ok. Next siin. 150 00:09:50,280 --> 00:09:54,370 Oletame, et sa tahad kirjutada skripti, 151 00:09:54,370 --> 00:09:57,170 Programm koosneb käske. 152 00:09:57,170 --> 00:10:01,200 Sa kirjutad oma käske, pange need fail ja käivita fail. 153 00:10:01,200 --> 00:10:04,230 Mis siis, kui soovite lisada argumendid? 154 00:10:04,230 --> 00:10:09,650 Juhul kest operatsioonide argumente nimetatakse parameetrid või asendi parameetrid 155 00:10:09,650 --> 00:10:15,940 ja nad kutsutakse kokku dollari märk ja number, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Nii et kui script on see nimi, minu esimene argument olla argument 1 157 00:10:27,000 --> 00:10:30,540 ja minu teine ​​võib olla argument 2 158 00:10:30,540 --> 00:10:34,110 ja sees minu script, kui ma tahan viidata need asjad - 159 00:10:34,110 --> 00:10:36,810 olgem kustutan selle, sest ma tõesti ei kavatse kasutada seda - 160 00:10:36,810 --> 00:10:42,160 sees minu script ma saaksin $ 1 viidata arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, mis tulevad välja nii, arg2. 162 00:10:45,890 --> 00:10:50,080 Nii et need sümbolid on võimalik esitada argumente, 163 00:10:50,080 --> 00:10:52,390 ning need kehtivad kõigi kohta kestad. 164 00:10:52,390 --> 00:10:56,520 Lisaks on ka muid sümboleid. 165 00:10:56,520 --> 00:11:01,700 $ * Viitab kogu argument loendis neid kõiki. 166 00:11:01,700 --> 00:11:05,390 $ # Viitab mitmeid argumente. 167 00:11:05,390 --> 00:11:07,910 Jällegi, see kehtib kõigi kestad. 168 00:11:07,910 --> 00:11:15,540 Need sümbolid, * ja #, võib kasutada nende tähendused teistes kohtades ka. 169 00:11:15,540 --> 00:11:17,940 Me ei hakka seda. 170 00:11:17,940 --> 00:11:20,460 >> Shell specifier line. Milleks see? 171 00:11:20,460 --> 00:11:27,760 Oletame, et olete kirjutanud stsenaariumi ja see on eriti koore ja soovite käivitada. 172 00:11:27,760 --> 00:11:33,500 Kuidas sa tead, mida laduma oma operatsioonisüsteemi kasutada käivitada oma script? 173 00:11:33,500 --> 00:11:37,230 Ühel hetkel võid arvata, et see läheks see Bourne shell 174 00:11:37,230 --> 00:11:39,440 kui sa ei ole just teisiti, 175 00:11:39,440 --> 00:11:41,730 kuid inimesed ei kirjuta skriptid Bourne shell, et palju enam 176 00:11:41,730 --> 00:11:43,750 ja sa ei saa isegi toetuda sellele enam. 177 00:11:43,750 --> 00:11:48,740 Nii et siin on meil kesta specifier line siin. 178 00:11:48,740 --> 00:11:52,450 See määratleb Bash. 179 00:11:52,450 --> 00:11:56,750 Pange tähele, et see täpsustab seda ja failinimega, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Kui arvuti on Bash kesta kuid mitte bin kataloogi / bin, see ei toimi. 181 00:12:02,870 --> 00:12:06,870 See on teine ​​täpsustava veel ettevaatlik siin. 182 00:12:06,870 --> 00:12:09,500 Nael märk kommentaar line iseloomu. 183 00:12:09,500 --> 00:12:12,300 See kehtib kõigi kestad. 184 00:12:12,300 --> 00:12:18,610 Eriti juhul, #! alguses script, on erijuhtum. 185 00:12:18,610 --> 00:12:23,410 See määratleb kest, mille skripti käivitama. 186 00:12:23,410 --> 00:12:30,230 Nagu ma ütlesin, see ei pruugi olla samas kohas / bin. 187 00:12:30,230 --> 00:12:34,880 Lisaks on veel üks asi siin. 188 00:12:34,880 --> 00:12:41,250 Kui kasutate ainult nael märk ilma hüüumärk ja failinimega, 189 00:12:41,250 --> 00:12:44,640 mis peaks näitama, C-shell. 190 00:12:44,640 --> 00:12:48,300 Kuid ma ei soovita seda tehes, sest ma ei ole võimeline tagama 191 00:12:48,300 --> 00:12:49,750 et see on alati töö. 192 00:12:49,750 --> 00:12:52,220 Kui soovite C-shell, oleks parem öelda. 193 00:12:52,220 --> 00:12:58,450 Siis on midagi üsna segane siin. 194 00:12:58,450 --> 00:13:03,940 Kui kasutate kest specifier line, näiteks / bin / bash 195 00:13:03,940 --> 00:13:07,070 ja et koor ei ole kättesaadav seal, 196 00:13:07,070 --> 00:13:10,680 seal ei ole sellist asja nagu / bin / bash, et erilist arvuti, 197 00:13:10,680 --> 00:13:14,330 kas seetõttu, et ei ole Bash või kuna see on teises kohas, 198 00:13:14,330 --> 00:13:17,450 saad viga ütlen teile, et script sa jooksid ei eksisteeri. 199 00:13:17,450 --> 00:13:21,510 Ja muidugi oma script olemas, nii et veateade on segadusttekitav. 200 00:13:21,510 --> 00:13:24,810 Põhjusel, et operatsioonisüsteem annab teile, et viga 201 00:13:24,810 --> 00:13:28,370 või täpsemalt, et teie interaktiivse shelli, kus teil on seda teinud, et viga, 202 00:13:28,370 --> 00:13:33,510 et aruanded käsk, mida kasutatakse, mis on nimi script. 203 00:13:33,510 --> 00:13:36,920 See käsk tõhusalt nn shell nimega skripti. 204 00:13:36,920 --> 00:13:39,330 See, kui sa selle segase veateate. 205 00:13:39,330 --> 00:13:42,980 Teine võimalus helistada shell script 206 00:13:42,980 --> 00:13:45,910 on täpsustades kest käsureal, kui siin. 207 00:13:45,910 --> 00:13:52,510 See on käsk. See ütleb joosta Bash ja siis saan oma skripti Bash. 208 00:13:52,510 --> 00:13:55,680 See on ülimuslikud specifier line, 209 00:13:55,680 --> 00:14:02,090 ja see on funktsioon, mis võimaldab teil anda lühemaks teenimesid. 210 00:14:02,090 --> 00:14:04,840 Kui annad käsu operatsioonisüsteem otsima, et käsk 211 00:14:04,840 --> 00:14:06,410 erinevates kohtades. 212 00:14:06,410 --> 00:14:08,820 Kui see on olemas, siis tuleb leida. 213 00:14:08,820 --> 00:14:12,290 Arvuti leiad Bash kus see asub ja kasutada seda, 214 00:14:12,290 --> 00:14:15,470 nii et sa ei pea siis olema mures, kui ta leiab, et on. 215 00:14:15,470 --> 00:14:17,360 Seal on potentsiaalselt muid probleeme siin 216 00:14:17,360 --> 00:14:20,830 nagu kui seal on rohkem kui 1 versioon Bash, mis on võimalik, kuigi ebatõenäoline. 217 00:14:20,830 --> 00:14:23,540 Nii et on veel üks võimalus tegeleda nende asjadega. 218 00:14:23,540 --> 00:14:30,480 Täpsustav read võib helistada mistahes kest. 219 00:14:30,480 --> 00:14:34,480 Nad võivad helistada ka asjad peale kestad. 220 00:14:34,480 --> 00:14:37,940 Näited on mul siin on sed, mis on oja toimetaja; 221 00:14:37,940 --> 00:14:39,900 AWK, mis on muster töötlemise keeles; 222 00:14:39,900 --> 00:14:43,680 ja Perl, väga kõrgelt arenenud skriptikeelt. 223 00:14:43,680 --> 00:14:47,570 Kui paned specifier joon tähistab üks neist saate alguses, 224 00:14:47,570 --> 00:14:51,270 see läheb otse, et programmis, aga mitte kest. 225 00:14:51,270 --> 00:14:54,030 Need programmid on piirid oma võimetele. 226 00:14:54,030 --> 00:14:58,790 Perl on väga võimekas. Sed on toimetaja. Seda saab teha asju üle lihtsalt toimetamine. 227 00:14:58,790 --> 00:15:03,300 Kuid see võib olla raske programmeerida, et. 228 00:15:03,300 --> 00:15:09,670 Lisaks läbivad argumendid ja kraami script on kas võimatu või segadust. 229 00:15:09,670 --> 00:15:15,030 Seega nendel juhtudel, kus AWK või sed, see on, vähemalt minu kogemuse 230 00:15:15,030 --> 00:15:18,910 parem kirjutada skripti ja kõne AWK või sed shell script 231 00:15:18,910 --> 00:15:24,660 mitte helistades AWK või sed nagu script specifier line. 232 00:15:24,660 --> 00:15:26,980 Perl on väga mitmekülgne keelt, nagu ma ütlesin. 233 00:15:26,980 --> 00:15:30,050 Te ei saa käivitada interaktiivne käske Perl, 234 00:15:30,050 --> 00:15:32,660 mis tähendab, et sa ei saa testida osad skriptid, et sa arendamine 235 00:15:32,660 --> 00:15:33,970 käivitades neid interaktiivselt. 236 00:15:33,970 --> 00:15:36,160 Kuid see on väga võimalik keel 237 00:15:36,160 --> 00:15:40,960 ja on kujunenud väga laialt levinud vahend. 238 00:15:40,960 --> 00:15:45,720 See on lihtsalt natuke Sulgudes märkus specifier read. 239 00:15:45,720 --> 00:15:50,610 >> Peaaegu kõigi vormide Linux - jälle, ma ei saa olla kindel, et see kõik - 240 00:15:50,610 --> 00:15:57,900 ja Mac OS, kui sa kirjutad csh saad tcsh 241 00:15:57,900 --> 00:16:00,570 ja kui kirjutad SH saad bash. 242 00:16:00,570 --> 00:16:05,020 Nad püüdsid seal teile rohkem arenenud versioonid nendest kestad, 243 00:16:05,020 --> 00:16:07,940 kuid see võib olla segadusttekitav. 244 00:16:07,940 --> 00:16:16,720 Kui kirjutad skripti kasutades Tcsh või Bash pakub samas tehti csh või SH 245 00:16:16,720 --> 00:16:22,230 ja siis proovige käivitada arvuti, mis ei ole Tcsh või Bash, 246 00:16:22,230 --> 00:16:25,050 võite saada mõned vead, kui on käske olemas 247 00:16:25,050 --> 00:16:27,970 mis need kestad ei tunne. 248 00:16:27,970 --> 00:16:34,120 Lisaks olete kutsutud oma shell sinu arvutis 249 00:16:34,120 --> 00:16:37,700 kutsudes seda SH või csh ja siis saan rohkem arenenud kestad. 250 00:16:37,700 --> 00:16:41,440 Te ei tohi isegi mõelda sellele, et te kasutate rohkem arenenud kest. 251 00:16:41,440 --> 00:16:45,670 Nii et see on potentsiaalne lõksu. 252 00:16:45,670 --> 00:16:50,290 Kuidas kindlaks teha, et kui sa kirjutad SH saad Bash, 253 00:16:50,290 --> 00:16:55,580 kui kirjutad csh saad tsch? 254 00:16:55,580 --> 00:16:59,940 On asju, mida nendes arvutites kutsuti lingid 255 00:16:59,940 --> 00:17:06,460 mis saab ühendada failinimed viidata sama asi. 256 00:17:06,460 --> 00:17:12,180 See võib olla kas 2 nimed sama või faili, mille eesmärk on suunata teise faili. 257 00:17:12,180 --> 00:17:17,550 Neid nimetatakse raske ja viitu. Me ei lähe sinna enam täna. 258 00:17:17,550 --> 00:17:21,619 Samuti võib eraldi failidena - 1 fail sh 1 faili Bash - 259 00:17:21,619 --> 00:17:23,880 kuid nad mõlemad kulgema Bash. 260 00:17:23,880 --> 00:17:29,350 Siis on veel täpsustava siin. 261 00:17:29,350 --> 00:17:42,640 Kui te helistate üks neist kestad ühe nime, 262 00:17:42,640 --> 00:17:46,640 siis võiks arvata, et sa saad samu funktsioone nagu helistaja see teine ​​nimi. 263 00:17:46,640 --> 00:17:49,700 Noh, et tegelikult ei pruugi olla tõsi. 264 00:17:49,700 --> 00:17:55,020 Neid käske saab tutvuda nimi, mille nad olid kutsutud 265 00:17:55,020 --> 00:18:00,020 ja nad saavad, alusel, et nimi, käituvad erinevalt. 266 00:18:00,020 --> 00:18:02,740 Esineda võib probleeme püüab vasta standardile. 267 00:18:02,740 --> 00:18:06,060 Mõned teist võivad olla kuulnud POSIX standard või mõni muu, 268 00:18:06,060 --> 00:18:08,730 võibolla muid funktsioone. 269 00:18:08,730 --> 00:18:14,520 Seda saab muuta mõnikord käsureaargumentidena 270 00:18:14,520 --> 00:18:17,310 või seades kest muutujaid. 271 00:18:17,310 --> 00:18:22,170 Üleskutse seda SH või bash võib tegelikult viia teistsuguse täitmine 272 00:18:22,170 --> 00:18:25,300 isegi kui see on sama fail, mis sa täitev. 273 00:18:25,300 --> 00:18:31,800 Teine asi, mida kaaluda, on see, et isegi kui teine ​​arvuti on Tcsh või Bash, 274 00:18:31,800 --> 00:18:35,310 kui need ei ole seotud, kuna need on sinu arvutis 275 00:18:35,310 --> 00:18:37,990 kui sul on Linux või Mac OS arvutis, 276 00:18:37,990 --> 00:18:45,630 siis jälle saad shell et helistate sh või csh, mitte üks, et võiksite. 277 00:18:50,430 --> 00:19:01,130 Praegune Bourne-kesta lisaseadmed vähem kui need, Bash 278 00:19:01,130 --> 00:19:06,100 kuid varem need originaalpakendis Bourne shell. 279 00:19:06,100 --> 00:19:09,690 Nagu tuleneb, et isegi praeguse Bourne shell, SH, 280 00:19:09,690 --> 00:19:14,560 isegi kui see ei ole Bash, sarnaneb C keeles rohkem kui C-shell teeb. 281 00:19:14,560 --> 00:19:20,460 See ei olnud õige, kui C-shell esmakordselt loodud, kuid see on kujunenud nii. 282 00:19:20,460 --> 00:19:26,560 Te võite märgata siin, et kõik need kesta nimed, välja arvatud Bourne shell 283 00:19:26,560 --> 00:19:30,640 on midagi, mis näitab, mis kest nad on - csh, bash - 284 00:19:30,640 --> 00:19:32,550 kuid Bourne shell on vaid sh. 285 00:19:32,550 --> 00:19:34,910 Miks? See oli esialgne kest. 286 00:19:34,910 --> 00:19:37,770 See oli kest siis ei kesta, 287 00:19:37,770 --> 00:19:41,090 ja kuna see oli kest, ei olnud mingit põhjust eristada seda veel kesta. 288 00:19:41,090 --> 00:19:45,030 Nii et miks see on, et nimi ja ikka teeb. 289 00:19:50,630 --> 00:19:58,990 >> See top on siin joont salasõna andmebaasi konto on mul olemas 290 00:19:58,990 --> 00:20:01,680 teises arvutis. 291 00:20:01,680 --> 00:20:08,300 Ma lähen, et proovida saada, et nimi, nii et saate näha, et osa lõpus, kest. 292 00:20:09,720 --> 00:20:15,450 UUS andmebaas omab login parameetrid kõikidele kasutajatele. 293 00:20:15,450 --> 00:20:20,330 Alguses on kasutajanimi, mida näed viimase 2 tähte minu. 294 00:20:20,330 --> 00:20:23,970 Valdkondades siin on eraldatud kooloniga. 295 00:20:23,970 --> 00:20:28,210 Viimane valdkond, nagu näete, on bin / tcsh kest. 296 00:20:28,210 --> 00:20:30,230 See on kest spetsifikatsiooni. 297 00:20:30,230 --> 00:20:33,240 Seal on midagi huvitavat siin. 298 00:20:33,240 --> 00:20:36,950 Kui Unix esmakordselt välja, seal oli ainult 1 koorega 299 00:20:36,950 --> 00:20:38,350 nii ei olnud valikut seal. 300 00:20:38,350 --> 00:20:45,570 Nii et miks nad võimaldavad valdkonnas salasõna andmebaas täpsustada kesta? 301 00:20:45,570 --> 00:20:47,920 Ma ei tea, aga see on hea, et nad tegid. 302 00:20:47,920 --> 00:20:52,030 See on üsna raske teha muudatusi salasõna andmebaasi formaat 303 00:20:52,030 --> 00:20:54,420 sest paljud programmid viitavad selle formaat 304 00:20:54,420 --> 00:20:57,720 ja tuleks ümber kirjutada. 305 00:20:57,720 --> 00:21:04,130 See on õnnestunud või juhuslik arendamine, et need sisalduvad selles valdkonnas. 306 00:21:04,130 --> 00:21:12,780 Selline salasõna faili liini kasutatakse kõigil Unix ja Linux arvutid nii palju kui mina tean. 307 00:21:12,780 --> 00:21:14,650 Mac on oma süsteem. 308 00:21:14,650 --> 00:21:17,810 See on tegelikult salasõna faili read, mis formaadis, 309 00:21:17,810 --> 00:21:21,060 kuid see ei ole, kus kasutaja omadused on määratletud. 310 00:21:21,060 --> 00:21:24,200 Teine Sulgudes märkus seal. 311 00:21:36,470 --> 00:21:46,020 >> Kui olete helistaja koorega, võite helistada see sub-kest oma olemasolevaid kestad. 312 00:21:46,020 --> 00:21:50,480 Nii et kui ma lähen siit, lähme vabaneda need asjad. 313 00:21:50,480 --> 00:21:53,350 Siin ma olen C-shell. 314 00:21:56,830 --> 00:22:01,200 See muutuja, mis täpselt määratleb mu kest, 315 00:22:01,200 --> 00:22:04,300 tegelikult ei ole alati usaldusväärne tee kindlaks, mida laduma näed, 316 00:22:04,300 --> 00:22:06,220 kuid sel juhul on. 317 00:22:06,220 --> 00:22:08,040 Mis siis, kui ma lihtsalt kirjutada - 318 00:22:09,970 --> 00:22:12,470 Nüüd ma olen Bash. 319 00:22:12,470 --> 00:22:19,540 Mõned asjad hakkavad olema sama. Kas ütleb mulle minu käske. 320 00:22:19,540 --> 00:22:24,500 Kui ma seda peatada tagasi oma C-shell, ls, sama. Eks ole? 321 00:22:24,500 --> 00:22:28,890 fg, teadmisi, tagasi minu Bash kesta. 322 00:22:28,890 --> 00:22:38,290 pwd, praeguse kataloogi tagasi C-shell. 323 00:22:38,290 --> 00:22:43,180 pwd erinevad kataloog - tegelikult mitte erinevate kataloog käesolevas asjas. 324 00:22:43,180 --> 00:22:45,110 See on samas kataloogis. 325 00:22:45,110 --> 00:22:50,000 Oletame, et ma tahan helistada käsk siin: kus ls. 326 00:22:50,000 --> 00:22:52,140 Mida see teeb? 327 00:22:52,140 --> 00:22:53,670 Ta ütleb mulle, kus ls käsk, 328 00:22:53,670 --> 00:22:56,670 üks, mis annab mulle kataloogis, asub ls. 329 00:22:56,670 --> 00:23:01,460 Lähme tagasi Bash kesta. Proovime sama asi. 330 00:23:01,460 --> 00:23:05,830 Hmm, huvitav seal, kus: command not found. 331 00:23:05,830 --> 00:23:07,400 Miks see nii on? 332 00:23:07,400 --> 00:23:11,570 Kui käsk on ehitatud C-shell. 333 00:23:11,570 --> 00:23:15,630 See ei ole käsk, mida tuleb lugeda mällu kusagilt mujalt ja hukati. 334 00:23:15,630 --> 00:23:20,310 C-shell jookseb ta kandes täitmise et osa oma kood 335 00:23:20,310 --> 00:23:22,790 ja see ei ole Bash kesta. 336 00:23:22,790 --> 00:23:25,710 Nii Bash, millel ei ole sellist sisseehitatud käsk, loodab ta, ei leia seda, 337 00:23:25,710 --> 00:23:27,720 ja me saame viga. 338 00:23:27,720 --> 00:23:32,290 Nii et meil on Bash kesta sõitmisega C-shell, ja me nimetame seda sub-kest. 339 00:23:32,290 --> 00:23:38,480 Ja igaks juhuks sa oled uudishimulik, Bash kest on oma viis asukoha käske. 340 00:23:38,480 --> 00:23:42,590 räsitud viitab asjaolule, et see on võimalik teostada kiiremini 341 00:23:42,590 --> 00:23:44,960 leitakse kiiremini. 342 00:23:44,960 --> 00:23:48,610 See on üks lisaseadmed ehitatud mõned neist kestad. 343 00:23:50,220 --> 00:23:54,200 >> Bourne tüüpi kestad eelistatakse programmeerimine. 344 00:23:54,200 --> 00:23:57,300 Nad on kontrolli struktuuride nagu silmad, tingimisi avaldused, 345 00:23:57,300 --> 00:24:00,240 omamoodi käske, et sa võiksid kasutada programmeerimiskeeli nagu C 346 00:24:00,240 --> 00:24:04,190 või mis iganes keelt. Võib-olla te Programmeerimine Java või mis iganes. 347 00:24:04,190 --> 00:24:06,460 Koored on need liiga. 348 00:24:06,460 --> 00:24:11,790 Bourne tüüpi kestad, eriti Bash, on rohkem 349 00:24:11,790 --> 00:24:15,730 ning need on ette nähtud suurem paindlikkus. 350 00:24:15,730 --> 00:24:20,700 Bash kest on massiivid. Originaal Bourne shell ei ole. 351 00:24:20,700 --> 00:24:26,130 Nii et võib olla tunduvalt soodsam programmeerimine. 352 00:24:26,130 --> 00:24:29,810 C-shell on tegelik massiive, kuid ei ole palju neid muid funktsioone. 353 00:24:29,810 --> 00:24:33,450 Bourne tüüpi kestad täidab kiiremini 354 00:24:33,450 --> 00:24:36,520 kui nad ei ole mõeldud funktsioonidega interaktiivne kasutamine. 355 00:24:36,520 --> 00:24:39,340 Sa valid asjad maha üks eesmärk, see laadib need alla muuks otstarbeks. 356 00:24:39,340 --> 00:24:41,520 Seal on see kompromiss on. 357 00:24:41,520 --> 00:24:44,510 Need omadused, mis on mõeldud interaktiivne kasutamine 358 00:24:44,510 --> 00:24:46,920 tegelikult on vähe või üldse mitte kasutada skriptid. 359 00:24:46,920 --> 00:24:52,160 On võimalik kasutada interaktiivsete sub-kest nagu üks hakkasin seal 360 00:24:52,160 --> 00:24:57,780 katsetada käske, mida te kavatsete kasutada skripti. 361 00:24:57,780 --> 00:25:01,180 See, mida sa ei saa teha Perl. Sa suudad seda teha koos kestad. 362 00:25:01,180 --> 00:25:04,850 Isegi struktuurid jms silmad ja nii edasi saab käivitada interaktiivselt. 363 00:25:04,850 --> 00:25:07,000 Nad on mõnikord kasulik käivitada interaktiivselt, 364 00:25:07,000 --> 00:25:10,180 kuid tõenäoliselt te kasutate neid arendada script. 365 00:25:15,690 --> 00:25:17,400 >> Varjunimed. 366 00:25:17,400 --> 00:25:21,630 See saab olema umbes C-shell. 367 00:25:23,270 --> 00:25:27,570 Ajalugu mehhanism, kus sa saad tagasi varem käsud 368 00:25:27,570 --> 00:25:30,340 või nende osad, et olete juba jooksma. 369 00:25:30,340 --> 00:25:33,680 Jällegi umbes C-shell, Bourne shell ja Korn shell on need asjad, 370 00:25:33,680 --> 00:25:35,620 aga ma ei hakka neid. 371 00:25:35,620 --> 00:25:40,340 Nii et siin on mõned kasulikud varjunimed, mis mul on. 372 00:25:43,100 --> 00:25:44,880 Kirjutamise asemel ls - see on ühine käsk - 373 00:25:44,880 --> 00:25:47,620 kirjuta l ja säästa ennast 1 märk. 374 00:25:47,620 --> 00:25:50,600 Kas erinevaid võimalusi, kõik need tööd. 375 00:25:50,600 --> 00:25:54,460 Pange tähele, et need mõisted on jutumärkides ümber. 376 00:25:54,460 --> 00:25:57,520 Sellistel juhtudel hinnapakkumisi ei ole vajalik. 377 00:25:57,520 --> 00:26:00,100 Kui saate määratleda need varjunimed ilma jutumärkideta ikkagi tööle. 378 00:26:00,100 --> 00:26:02,910 Nad on soovitatav. 379 00:26:02,910 --> 00:26:04,900 On olukordi, kus ei saa kasutada quote 380 00:26:04,900 --> 00:26:08,050 sest sa tahad, et midagi juhtuks, mis quote takistaks. 381 00:26:08,050 --> 00:26:11,210 Mõnikord võib tsiteerida osa määratlusele, kuid mitte kõik. 382 00:26:11,210 --> 00:26:17,010 Samuti on üldiselt soovitatav kasutada ülakoma asemel jutumärgid. 383 00:26:17,010 --> 00:26:19,750 Jutumärgid on mõju muutuja mõisted, 384 00:26:19,750 --> 00:26:22,950 Eriti põhjustab neid hinnati mitte peatada. 385 00:26:22,950 --> 00:26:25,910 Miks me tahame peatada hindamine? 386 00:26:25,910 --> 00:26:28,710 Ja kuidas hinnapakkumisi teha meie jaoks? 387 00:26:28,710 --> 00:26:32,600 >> Siin on käsk, mis võivad teile huvi pakkuda. 388 00:26:32,600 --> 00:26:35,470 "Kas g *" 389 00:26:35,470 --> 00:26:37,640 g *, nagu te ilmselt teate, on märk väljendus 390 00:26:37,640 --> 00:26:40,290 kõik failinimed algavad g. 391 00:26:40,290 --> 00:26:46,410 Kui ma lihtsalt kirjutada käsk ls g *, ma toon nimekirja kõik need nimed on minu praegune kataloog. 392 00:26:46,410 --> 00:26:50,870 Kui ma defineerin mis alias, sest see on siin hinnapakkumisi, 393 00:26:50,870 --> 00:26:56,990 see töötab, et käsk on oma praeguse kataloogi, kus näed seda. 394 00:26:56,990 --> 00:27:01,250 Aga kui sa jooksed alias definitsioon ilma jutumärkideta, 395 00:27:01,250 --> 00:27:09,620 ta hindab wildcard g * kui ta jookseb selle määratlemisel käsk. 396 00:27:09,620 --> 00:27:14,400 Nii mõiste alias on ls järgneb failide nimekiri kataloog 397 00:27:14,400 --> 00:27:16,310 kus alias käsk on täidetud, 398 00:27:16,310 --> 00:27:19,180 olenemata sellest, kus sa tegelikult kavatsevad käivitada käsk. 399 00:27:19,180 --> 00:27:26,360 See ei ole palju kasutada, ja jutumärkideta vältida hindamise tärn. 400 00:27:26,360 --> 00:27:30,780 Nii et sa lihtsalt saada määratlus heaolu ls g *. 401 00:27:30,780 --> 00:27:35,510 Siis, kui sa jooksed alias, KOVid, see siis paneb selle välja. 402 00:27:35,510 --> 00:27:40,490 Nüüd ei ole hinnapakkumiste ning ta hindab tärniga suorittaessasi alias käsk. 403 00:27:40,490 --> 00:27:43,900 Nii et üks asi. 404 00:27:43,900 --> 00:27:46,590 Jutumärgid oleks sama mõju siin 405 00:27:46,590 --> 00:27:50,580 kuid on ka teisi juhtumeid, kus jutumärkide ei tööta nii hästi. 406 00:27:50,580 --> 00:27:52,450 >> Siin on veel üks. 407 00:27:52,450 --> 00:27:54,270 Sa võid teada, grep käsu. 408 00:27:54,270 --> 00:28:02,110 Grep käsu abil saab skaneerida faili read, mis on teatud strings. 409 00:28:02,110 --> 00:28:10,350 Lähme siis siia ja ma väljuda minu Bourne shell. 410 00:28:23,570 --> 00:28:25,450 Okei. Siin on faili. 411 00:28:25,450 --> 00:28:31,490 Oletame, et see on grep abc stringe. Siin see on. 412 00:28:31,490 --> 00:28:37,930 Kui ma grep zddd ma ei saa midagi. Okei. 413 00:28:37,930 --> 00:28:40,960 Seega leiab stringi aru; ta ei leia, et see ei anna sellest teada. 414 00:28:40,960 --> 00:28:44,930 See väljundid iga rida, mis on, et string peal. 415 00:28:44,930 --> 00:28:49,080 On igasuguseid võimalusi siin, mille leiate dokumentides. 416 00:28:49,080 --> 00:28:52,160 Siin on üks viis seda teha. 417 00:28:52,160 --> 00:29:03,290 Aga see, alias grabc "grep abc"? 418 00:29:03,290 --> 00:29:09,000 See saab lisada 1 argument kui alias on määratud. 419 00:29:09,000 --> 00:29:26,300 Nii et kui ma teen seda siin, nüüd kui ma seda grabc, 420 00:29:26,300 --> 00:29:30,620 nüüd alias sisaldab rohkem kui lihtsa käsuga. Samuti on argument. 421 00:29:30,620 --> 00:29:32,190 Seni, mis töötab. 422 00:29:32,190 --> 00:29:38,590 Mul on veel üks käsk siin see, et need on erinevad stringid seal 423 00:29:38,590 --> 00:29:46,790 ja näidata, et see ei leia midagi seal, sest see ei sobi. 424 00:29:46,790 --> 00:29:56,180 >> Mida teha, kui ma tahan lisada alias definitsiooni fail, et ma lähen otsima 425 00:29:56,180 --> 00:30:02,970 ja ma tahan anda argumendina alias string et ma otsin? 426 00:30:02,970 --> 00:30:08,040 Ma võiksite öelda abc kui argument minu alias, 427 00:30:08,040 --> 00:30:10,870 aga alias on juba kindlaks määratud faili. 428 00:30:10,870 --> 00:30:15,710 Ja see, kui see väljend on sisse 429 00:30:20,430 --> 00:30:25,270 Pange tähele, meil on siin grep nagu enne. 430 00:30:25,270 --> 00:30:28,130 Meil on fail siit, keelpillid. 431 00:30:28,130 --> 00:30:35,610 \! ^, Selline kummaline väljend, ma arvan, kui sa ei ole näinud seda enne. 432 00:30:35,610 --> 00:30:39,920 Hüüumärk on osa C-shell ajalugu mehhanism. 433 00:30:39,920 --> 00:30:45,220 See võib meenutada varem käske, see võib meenutada argumente nende käske ja nii edasi. 434 00:30:46,760 --> 00:31:01,570 Ajalugu mehhanismi kasutatakse osana esitusvigu. 435 00:31:01,570 --> 00:31:07,390 Kui määrate real pärast hüüumärk, siis vaadake, et line ajaloos nimekirja 436 00:31:07,390 --> 00:31:11,910 mida me ei hakka nüüd, sest see on kogu muu teema. 437 00:31:11,910 --> 00:31:16,280 On võimalik määrata osa liin. 438 00:31:16,280 --> 00:31:22,950 Nii! 03:02 oleks teine ​​argument käsu number 3. 439 00:31:22,950 --> 00:31:30,430 Katus siin väljend tähistab esimene argument. 440 00:31:30,430 --> 00:31:34,410 Kui te ei anna see märge, mis käsu te viitate, 441 00:31:34,410 --> 00:31:37,300 see tähendab kohe eelmise käsu, 442 00:31:37,300 --> 00:31:41,990 ja katus on sümbol esimest argumenti. 443 00:31:41,990 --> 00:31:46,820 Sest see on katus ja mitte number, et sa ei pea kasutama koolon, 444 00:31:46,820 --> 00:31:52,660 nii! ^ tähendab esimene argument, et eelnevalt kirjeldatud käskluse. 445 00:31:52,660 --> 00:31:55,020 Vähe sassi siin. 446 00:31:55,020 --> 00:31:58,450 Sel juhul, kui te kasutate seda alias määratlus, 447 00:31:58,450 --> 00:32:04,650 ajalugu viide viitab tagasi käske mis alias kasutatakse. 448 00:32:04,650 --> 00:32:08,470 Nii see läheb tagasi 1 käsu ajalugu operatsiooni 449 00:32:08,470 --> 00:32:11,810 kuid nagu alias operatsiooni viitab see käsk, mis siis oleks tüüp, 450 00:32:11,810 --> 00:32:14,780 öelda, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Meil on jutumärgid siin ta. Mida kurakriips eest? 452 00:32:20,240 --> 00:32:30,810 Sel juhul, nagu ka mujal, me ei taha täita ajalugu mehhanism 453 00:32:30,810 --> 00:32:33,680 määratledes alias. 454 00:32:33,680 --> 00:32:37,900 Kui meil ei oleks kurakriips seal kest oleks tõmmake esimene argument 455 00:32:37,900 --> 00:32:41,870 Käsu õigus enne, kui see jooksis see alias käsk, mida me ei taha. 456 00:32:41,870 --> 00:32:47,520 Me tahame, et see on ehitatud alias käsk helistada argument hiljem. 457 00:32:47,520 --> 00:32:53,550 Ülakoma ei pääse hüüumärk, ajalugu viide. 458 00:32:53,550 --> 00:32:57,450 Ehk tead väljendit põgeneda tähendab muuta tähenduses midagi. 459 00:32:57,450 --> 00:33:00,260 Sellisel juhul tähendab see seda, et lõpetada midagi, millel on eriline tähendus. 460 00:33:00,260 --> 00:33:03,030 Hüüumärk on eriline tähendus on ajalugu. 461 00:33:03,030 --> 00:33:05,790 Põgeneda ning ta ei ole seda mõtet. 462 00:33:05,790 --> 00:33:08,080 Tsitaadid ei tee seda; kurakriips teeb. 463 00:33:08,080 --> 00:33:11,900 Nii et me tegelikult kasutades 2 taset põgenedes siin. 464 00:33:23,500 --> 00:33:29,620 Ma lähen, et liikuda selle käsu teistesse aken ilma kirjutades 465 00:33:29,620 --> 00:33:35,210 kasutades neid töötlusvõtteid, mida võib olla kasulik. 466 00:33:40,620 --> 00:33:42,460 Midagi muud siin ma näitan sulle. 467 00:33:42,460 --> 00:33:46,730 Kui sa lihtsalt kirjutad alias argumentidega, see ütleb teile kõik oma argumendid. 468 00:33:46,730 --> 00:33:48,640 See on kamp varjunimed ma juba siin 469 00:33:48,640 --> 00:33:53,400 peale nende, mida ma olen kasutanud siin täna. 470 00:33:53,400 --> 00:34:00,220 Aga kui ma lihtsalt kirjutada nimega alias, ta ütleb mulle, mida see tähendab. 471 00:34:00,220 --> 00:34:03,390 Pange tähele, et jutumärgid on läinud ja tagurpidi kaldkriips on läinud. 472 00:34:03,390 --> 00:34:08,620 See string siin on tulemus, et alias määratlus, 473 00:34:08,620 --> 00:34:12,199 ja nüüd on lihtsalt! ^ ta. 474 00:34:12,199 --> 00:34:19,150 See läheb otsima failis stringid midagi. 475 00:34:19,150 --> 00:34:34,900 Nii et kui ma teen grstrings_file stringid, ma ei anna see midagi otsida seal, 476 00:34:34,900 --> 00:34:37,429 aga ta otsib ridades. 477 00:34:37,429 --> 00:34:42,330 Ta ei leia sõna stringid fail strings, kuid ei leia abc. 478 00:34:42,330 --> 00:34:46,770 Ja ta ei leia seda. 479 00:34:46,770 --> 00:34:52,330 Nii et siin me anname argument, mis tabab sisse mõiste alias, 480 00:34:52,330 --> 00:34:55,530 mis sisestatakse see. 481 00:34:55,530 --> 00:34:58,540 See on koht, kus see väljend pärineb. 482 00:34:58,540 --> 00:35:00,240 Võite kasutada rohkem kui 1. 483 00:35:00,240 --> 00:35:03,170 Katus on sümbol esimest argumenti. 484 00:35:03,170 --> 00:35:07,510 Kui soovid kasutada teist argumenti, siis oleks siis öelda: 2. 485 00:35:07,510 --> 00:35:11,250 Ei ole eriline sümbol teine ​​argument. 486 00:35:11,250 --> 00:35:14,790 Ja kuna te kasutate number, siis oleks kasutada jämesooles. 487 00:35:14,790 --> 00:35:17,220 On aga veel üks valik siin. 488 00:35:17,220 --> 00:35:21,220 Dollari märk tähistab viimase argument. 489 00:35:21,220 --> 00:35:23,320 Ja kuna see on sümbol, võite jätta jämesooles. 490 00:35:23,320 --> 00:35:25,870 Nii et see oleks viimane argument nimekirjas. 491 00:35:25,870 --> 00:35:27,900 Ja seal on ka, et üks. 492 00:35:27,900 --> 00:35:31,380 Tärn tähendab, kõik, nii et see on täielik argument nimekirja 493 00:35:31,380 --> 00:35:35,150 ja uuesti, võite jätta koolon, sest see ei ole number. 494 00:35:36,970 --> 00:35:39,950 Ma loodan, et te kõik järgides kõiki selle. 495 00:35:39,950 --> 00:35:54,100 >> Ajalugu mehhanism saab minna tagasi varem read ajaloos nimekirja. 496 00:35:54,100 --> 00:36:01,370 Sa võid seda teha alias määratlus. 497 00:36:01,370 --> 00:36:02,950 Ma pole kunagi näinud seda teinud. 498 00:36:02,950 --> 00:36:05,840 See tooks kaasa selle, tõmmates välja varem antud käskude ajalugu nimekiri 499 00:36:05,840 --> 00:36:08,130 kui teil täita alias, mis võivad olla erinevad käsud 500 00:36:08,130 --> 00:36:11,240 olenevalt sellest, millal ja kus sa käivitada. 501 00:36:11,240 --> 00:36:14,020 Mõeldav võiksite tõmmake selline viide 502 00:36:14,020 --> 00:36:15,900 lihtsalt teada, mis varem käsk oli. 503 00:36:15,900 --> 00:36:17,280 Ma pole kunagi näinud seda juhtub. 504 00:36:17,280 --> 00:36:19,970 Ma arvan, et keegi tahta, kuid see on väga ebatõenäoline. 505 00:36:19,970 --> 00:36:26,480 On veel üks asi siin. 506 00:36:26,480 --> 00:36:33,060 Kui te kasutate, et ajalugu tüüpi viide 507 00:36:33,060 --> 00:36:38,190 siis ainult argumente, mis on selline viide on kasutatud. 508 00:36:38,190 --> 00:36:42,180 Kui teil on alias määratlust, mis ei kasuta ajalugu tüüpi viide 509 00:36:42,180 --> 00:36:44,060 kui see muutub lihtsalt alguses käsu 510 00:36:44,060 --> 00:36:46,520 ja sul on rohkem väiteid, siis midagi kirjutad pärast, et 511 00:36:46,520 --> 00:36:48,450 lisatakse käsk. 512 00:36:48,450 --> 00:36:52,040 Sel juhul näiteks ma andsin seal kasutasime esimene argument; 513 00:36:52,040 --> 00:36:54,610 me ei kasutanud teised. 514 00:36:54,610 --> 00:36:57,960 Kui muid argumente oli antud käsureal, et nad ei saa kasutada. 515 00:36:57,960 --> 00:37:04,630 Nii et kui te kasutate ajalugu viide üldse, siis tuleb seda kasutada, et saada kõik argument. 516 00:37:04,630 --> 00:37:11,310 >> Seal on teine ​​asi siin ma tahan mainida, osaliselt sulgudesse 517 00:37:11,310 --> 00:37:15,250 nimelt, et see ajalugu mehhanism hüüumärk 518 00:37:15,250 --> 00:37:18,010 läheb tagasi algse C-shell. 519 00:37:18,010 --> 00:37:27,060 Tcsh kasutusele ajalugu tegevuse 520 00:37:27,060 --> 00:37:30,910 mis kasutavad erinevaid käske ja nöörid toimetajad, 521 00:37:30,910 --> 00:37:33,650 kas Emacs või vi. 522 00:37:33,650 --> 00:37:36,430 Minu isiklik arvamus on, Emacs on palju lihtsam kasutada selleks 523 00:37:36,430 --> 00:37:39,390 isegi kui te kasutate vi Teie regulaarne redigeerimiseks. 524 00:37:39,390 --> 00:37:43,900 On mitmeid Emacsi käske, mis on nüüd kohandatud ajalugu. 525 00:37:43,900 --> 00:37:46,410 Kontroll P saab eelmise rea ajaloos nimekirja. 526 00:37:46,410 --> 00:37:48,840 Teine kontroll P sulle üks enne seda. 527 00:37:48,840 --> 00:37:50,540 Kuni nool teeb sama asja. 528 00:37:50,540 --> 00:37:54,190 Kontroll N saab järgmise käsu, kui olete juba kerida tagasi mõnes mõttes. 529 00:37:54,190 --> 00:37:55,880 Nool teeb seda ka. 530 00:37:55,880 --> 00:38:00,480 Saate liikuda vasakult paremale nooled ja mitmed muud asjad. 531 00:38:00,480 --> 00:38:02,390 Seda saab kasutada ajalugu mehhanism 532 00:38:02,390 --> 00:38:05,070 palju lihtsam kui kasutades hüüumärk süntaks, 533 00:38:05,070 --> 00:38:07,930 kuid te ei kasuta, et alias määratlus. 534 00:38:17,780 --> 00:38:20,020 Me läheme üle, et mõni teine ​​kord. 535 00:38:24,300 --> 00:38:25,810 >> Muutujad. 536 00:38:26,880 --> 00:38:29,510 Sa tead, mida muutujad programmeerimiskeeltes. 537 00:38:29,510 --> 00:38:31,680 Merekarbid on nad ka. 538 00:38:31,680 --> 00:38:37,350 C-shell kasutab käsk seatud määrata muutujad, 539 00:38:37,350 --> 00:38:41,360 et seab muutuja väärtusele b - 540 00:38:41,360 --> 00:38:46,390 nagu ma ütlesin, mõttetu mõiste vaid näide sellest, kuidas seda kasutatakse. 541 00:38:48,790 --> 00:38:52,410 Set käsk loob muutuja kui ta seda juba ei ole. 542 00:38:55,270 --> 00:39:02,490 Asendi parameetrid shelliskriptides võib pidada muutujad, 543 00:39:02,490 --> 00:39:10,750 kuid neid kasutada ja nende suhtes mõnevõrra erinevad. 544 00:39:10,750 --> 00:39:14,320 Sa ei saa omistada väärtus $ 1 käigus script. 545 00:39:14,320 --> 00:39:18,340 Sa oleks võimalik määrata uus muutuja selleks kui mõned tahtsid. 546 00:39:23,000 --> 00:39:28,470 Tüüp määrata ilma argumentideta ja sa saad nimekirja kõigist praegu defineeritud muutujad. 547 00:39:28,470 --> 00:39:34,220 Ja lähme üle minu teisi kest ja vaata mis me saame, kui me teeme seda. 548 00:39:34,220 --> 00:39:37,110 Üsna pikk nimekiri, eks? 549 00:39:37,110 --> 00:39:40,990 Kerige üles natuke. Vaata seda. 550 00:39:40,990 --> 00:39:44,330 Mõned neist asjadest on määratud automaatselt kest. 551 00:39:44,330 --> 00:39:49,320 Kest tekitab muutuva ja annab talle raha. 552 00:39:49,320 --> 00:39:52,730 Mõned neist on määratletud kest aga siis uuesti määratletud alla 553 00:39:52,730 --> 00:39:54,820 vastavalt oma eelistustele. 554 00:39:54,820 --> 00:39:59,110 Ja mõned neist on loodud kasutaja sõltuvalt sellest, mida ta teeb, mis päev. 555 00:39:59,110 --> 00:40:01,880 See on lihtsalt seatud argumentidega. 556 00:40:06,920 --> 00:40:10,050 Seal on kummaline omadus siin see asi. 557 00:40:10,050 --> 00:40:17,980 Ei pea olema kas tühikuteta võrdusmärgi ja muutuja nimi 558 00:40:17,980 --> 00:40:23,700 ja raha või ruume mõlemal pool võrdusmärki, 559 00:40:23,700 --> 00:40:28,940 nagu see üks. 560 00:40:35,620 --> 00:40:41,340 See ei tööta, ja see on tegelikult kehtiv käsk 561 00:40:41,340 --> 00:40:43,390 kuid ta ei tee seda, mida sa kavatsed. 562 00:40:43,390 --> 00:40:50,070 See käsk töötab, sest kui sa just ütlesid seatud ja muutuja nimi 563 00:40:50,070 --> 00:40:54,890 ilma võrdusmärgi või seada ja muutuja nime võrdusmärgi ja mingit väärtust, 564 00:40:54,890 --> 00:40:57,770 see seab muutuja null väärtusega. 565 00:40:57,770 --> 00:41:00,120 Nii seadis = on kehtiv käsk. 566 00:41:00,120 --> 00:41:04,370 Set käsu saab määrata rohkem kui 1 muutuja sama liini. 567 00:41:04,370 --> 00:41:11,240 Nii et see käsk on siin mõju määratletakse nii A ja B null väärtusi. 568 00:41:11,240 --> 00:41:13,470 Ilmselt mitte see, mida sa tahad. 569 00:41:13,470 --> 00:41:17,940 See üks siin eespool mainitud, viib viga 570 00:41:17,940 --> 00:41:21,270 sest = b ei ole korrektne väljend. 571 00:41:21,270 --> 00:41:23,680 Muutuja nimi ei tohi alata võrdusmärki. 572 00:41:26,760 --> 00:41:29,080 Ja seal on neid veelgi asju siin. 573 00:41:29,080 --> 00:41:36,820 Käärsoolelahangu valimiseks kasutatud argumendid ajalugu read, 574 00:41:36,820 --> 00:41:41,210 ning neid saab kasutada - ja ma ei lähe enne - muuta neid asju. 575 00:41:41,210 --> 00:41:44,480 Samuti võib neid kasutada modifitseerida kest muutujad. 576 00:41:44,480 --> 00:41:49,050 See üks siin, $, on väärtus. 577 00:41:49,050 --> 00:41:55,040 : R startida pikendamist. 578 00:41:55,040 --> 00:41:57,200 Pikendamine on midagi pärast dot, 579 00:41:57,200 --> 00:41:59,200 dot ja midagi järgnevat lõpus faili 580 00:41:59,200 --> 00:42:03,230 ainult lõppu loetelu pärast viimase Kaldkriipsude. 581 00:42:03,230 --> 00:42:05,480 Nii et mul on see siin. 582 00:42:05,480 --> 00:42:10,730 on see, et. See langeb. O. 583 00:42:10,730 --> 00:42:16,510 Kui seal ei pikene, vaid teenimesid pärast viimast slash, see ei mõjuta. 584 00:42:16,510 --> 00:42:27,480 : h, et muutuja väljend, võtab ära viimase osa kataloog nimekirja 585 00:42:27,480 --> 00:42:29,660 uuesti alles pärast viimase Kaldkriipsude. 586 00:42:29,660 --> 00:42:33,160 Nii / / b / c muutub / / b, 587 00:42:33,160 --> 00:42:38,870 kuid see on muutunud, sest element loetelu lõppu on null. 588 00:42:38,870 --> 00:42:43,070 Siin on midagi, mida ka mina tahan rõhutada. 589 00:42:43,070 --> 00:42:46,770 Need kvalifitseerujad ei otsi olemasolu neid faile. 590 00:42:46,770 --> 00:42:48,910 Nad lihtsalt otsida stringe. 591 00:42:48,910 --> 00:42:54,520 Need on mõeldud manipuleerida failinimede teenimesid, 592 00:42:54,520 --> 00:42:57,520 kuid neid saab kasutada suvalist stringi, isegi kui see ei ole faili nimi. 593 00:42:57,520 --> 00:42:58,920 Ja nad ei vaata, et oleks olemas, 594 00:42:58,920 --> 00:43:03,550 nii et kui seal ei ole sellist faili / a / b / c see on siiski töö. 595 00:43:03,550 --> 00:43:06,930 Kas see on mingit kasu on teine ​​küsimus, kuid see on siiski töö. 596 00:43:06,930 --> 00:43:12,850 Muutujad erinevad Bourne kestad. Me jõuame hiljem. 597 00:43:12,850 --> 00:43:18,240 Dollar märk võib pääsenud nagu hüüumärk ja tärniga. 598 00:43:18,240 --> 00:43:21,760 Dollar märk saab kenoviiva või ülakoma. 599 00:43:21,760 --> 00:43:24,790 Jutumärgid on kummaline mõju kõik kestad 600 00:43:24,790 --> 00:43:28,690 sunnib hindamise dollari märk muutuja väljend. 601 00:43:28,690 --> 00:43:31,960 Nii et kui see on pääsenud üks viis, jutumärgid võib mõjuda 602 00:43:31,960 --> 00:43:34,380 põhjustab seda hinnata ikkagi. 603 00:43:34,380 --> 00:43:37,090 See on natuke segane. 604 00:43:37,090 --> 00:43:43,740 Kui on mitu taset põgenedes, nagu ülakoma sees jutumärgid 605 00:43:43,740 --> 00:43:46,770 või jutumärkide sees ülakoma tuleb testida, et näha, mis juhtub 606 00:43:46,770 --> 00:43:49,520 muutuja, kui te kasutate üks. 607 00:43:49,520 --> 00:43:53,410 Need 2 olukordades - double sees ühe, ühtse sees topelt - 608 00:43:53,410 --> 00:43:55,980 ei pruugi teile sama tulemus. 609 00:44:02,520 --> 00:44:05,600 Keskkonnamuutujaid kohustatud C-shell muutujaid. 610 00:44:05,600 --> 00:44:08,340 Keskkonnamuutujaid ka muutujate C-kest 611 00:44:08,340 --> 00:44:11,250 samuti on nad muutujad teistes kestad liiga. 612 00:44:11,250 --> 00:44:15,230 In C-shell nad erinevad hulgad. 613 00:44:15,230 --> 00:44:18,130 Asjad, mida ma ütlesin enne asute kest muutujaid. 614 00:44:18,130 --> 00:44:21,300 Keskkonna muutujad eraldi muutujaid 615 00:44:21,300 --> 00:44:28,650 välja arvatud mitme muutuja, mida me nimetame seotud muutujate 616 00:44:28,650 --> 00:44:30,640 mis on väga oluline ja me võtame arvesse need hiljem. 617 00:44:30,640 --> 00:44:34,950 Keskkonnamuutujaid automaatselt edasi 618 00:44:34,950 --> 00:44:41,800 et kestad või käske, mis käivitatakse oma kest. 619 00:44:41,800 --> 00:44:46,220 Muid asju ei ole. Shell muutujate varjunimed ei ole. Keskkonna muutujad. 620 00:44:46,220 --> 00:44:48,630 Sellepärast me nimetame neid keskkonna muutujad, 621 00:44:48,630 --> 00:44:55,030 asja mõte on selles, et keskkond ulatub minevikku lihtsalt oma praeguse shell. 622 00:44:55,030 --> 00:45:00,510 Neid saab kasutada, et määratleda asju käske. 623 00:45:00,510 --> 00:45:05,470 Siin on näide. PRINTER, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Mõlemad need muutujad saab määrata printerit, mis käsk kasutada printimiseks asju. 625 00:45:12,270 --> 00:45:16,500 Kui teil on mitu printerit ümber, võiksite panna üks meeldivaim. 626 00:45:16,500 --> 00:45:21,320 Põhjus on meil 2 muutujad on, et erineva käske kirjutatud 627 00:45:21,320 --> 00:45:23,870 Kasutades neid erinevaid muutujaid. 628 00:45:23,870 --> 00:45:25,910 Sa võid anda neile erinevaid väärtusi. 629 00:45:25,910 --> 00:45:28,860 Tõenäoliselt sa annan neile nii sama väärtusega. 630 00:45:28,860 --> 00:45:35,840 Need asjad töötavad, sest käsud teha trükkimine 631 00:45:35,840 --> 00:45:40,740 programmeeritud uurida väärtusi need muutujad. 632 00:45:42,200 --> 00:45:46,150 Kui programm ei ole kirjutatud, et tee, kui see on kirjutatud, et teha midagi muud, 633 00:45:46,150 --> 00:45:48,280 muutuja oleks asjakohatu. 634 00:45:48,280 --> 00:45:52,530 Nii operatsioonisüsteemi ei otsi need muutujad 635 00:45:52,530 --> 00:45:55,210 iga kord, kui te leiate printeriga. 636 00:45:55,210 --> 00:45:59,090 Käsk, mis teeb trükkimise otsivad need muutujad, kui see on programmeeritud nii. 637 00:46:11,030 --> 00:46:15,240 Need tunnused on sageli määratletud oma vormindamise failid 638 00:46:15,240 --> 00:46:19,440 kuid mitte tingimata. 639 00:46:19,440 --> 00:46:21,050 Saate määrata neile käsureal. 640 00:46:21,050 --> 00:46:24,090 Nad võivad olla määratletud käsuga. 641 00:46:24,090 --> 00:46:28,740 Käsk, mis töötab midagi võib olla oma valik muutujaid - 642 00:46:28,740 --> 00:46:32,390 muutujad, mis on unikaalne eelkõige tarkvarapakett, näiteks. 643 00:46:32,390 --> 00:46:36,740 Need määratakse kindlaks, kui sa jooksed selle paketi. 644 00:46:39,690 --> 00:46:42,680 Kuidas on need muutujad edastatakse sub-shell? 645 00:46:42,680 --> 00:46:48,210 Kui sub-kest on kirjutatud, ei saa kirjutada sellesse piirkonda. 646 00:46:48,210 --> 00:46:53,260 Ala sub-kest, mis on pühendatud keskkonna muutujad 647 00:46:53,260 --> 00:46:56,450 ei kirjutanud sub-kest, see on kirjutatud kopeerimist. 648 00:46:56,450 --> 00:47:00,530 Kui sa jooksed tavaline käsk, nagu need käsud trükkida või mis iganes, 649 00:47:00,530 --> 00:47:03,840 nad alustad luues uue kest. 650 00:47:03,840 --> 00:47:06,190 Kest tekitab koore ja seejärel kirjutab selle osa 651 00:47:06,190 --> 00:47:08,800 käsuga, et näed, mis on veidi segane, 652 00:47:08,800 --> 00:47:10,740 vaid see, kuidas neid käske saada keskkonna muutujad 653 00:47:10,740 --> 00:47:14,890 et nad siis viidata hiljem. 654 00:47:21,920 --> 00:47:28,010 Käsk siin määratlemisel muutuja setenv. 655 00:47:28,010 --> 00:47:36,470 See, kuidas sa määratleda. See on 3 elementi: setenv, muutuja väärtus. 656 00:47:36,470 --> 00:47:44,710 Kui sa lihtsalt ei setenv argumentidega, mida sa saad? 657 00:47:47,220 --> 00:47:48,810 Nimekirja kõik need muutujad. 658 00:47:48,810 --> 00:47:53,190 Jällegi on see kena pikk nimekiri ja sel juhul, kui teised 659 00:47:53,190 --> 00:47:57,320 need muutujad on määratletud suuresti minu login operatsiooni korpusel 660 00:47:57,320 --> 00:47:59,740 mitte midagi, mida ma tegin. 661 00:47:59,740 --> 00:48:03,580 Seal on teine ​​käsk siin printenv. 662 00:48:07,520 --> 00:48:10,340 Et ka prindib keskkond. 663 00:48:10,340 --> 00:48:15,240 Pange tähele, see viimane asi, mida siin toimetaja = vi. 664 00:48:15,240 --> 00:48:21,120 See ütleb, et kui ma kasutan midagi, mis nõuab toimetaja 665 00:48:21,120 --> 00:48:25,530 ja ma ei täpsusta toimetaja ja see võimaldab mul valida, see võib anda mulle vi. 666 00:48:25,530 --> 00:48:37,280 Mis siis, kui ma printenv TOIMETAJA? Ta ütleb mulle, mis see on. 667 00:48:37,280 --> 00:48:41,340 Just enne seda oli muutuv, vähem. 668 00:48:41,340 --> 00:48:46,040 Need on sinu vaikimisi valikuid, kui ma käivitada käsk less, 669 00:48:46,040 --> 00:48:49,360 mis kuvab faile. 670 00:48:49,360 --> 00:48:55,910 Nii et kui ma seda teen, printenv võib võtta 1 argument või 0 argumendid, 671 00:48:55,910 --> 00:48:58,070 mitte rohkem kui 1. 672 00:49:01,800 --> 00:49:05,690 On ka muid käske ka, aga me ei hakka kõik täna. 673 00:49:05,690 --> 00:49:11,010 Mäleta oli modifitseerijaid shell muutujate nagu: h, 674 00:49:11,010 --> 00:49:14,350 mis langeb viimane element failinimega, 675 00:49:14,350 --> 00:49:17,950 või: r, mis langeb pikendamist. 676 00:49:17,950 --> 00:49:23,110 Need praegu kehtivad keskkonna muutujaid liiga. Nad ei kasutatud. 677 00:49:23,110 --> 00:49:24,960 Seda, et nad ei saa muuta. Nüüd neid saab. 678 00:49:24,960 --> 00:49:29,190 See on üks edusammud arengutega kestad aastate jooksul. 679 00:49:29,190 --> 00:49:35,620 Ma ütlesin, et kestad osana keskkondades 680 00:49:35,620 --> 00:49:43,040 ja shell muutujate C-shell on, mõningate eranditega, erinevat komplekti. 681 00:49:43,040 --> 00:49:46,790 Saad luua keskkonnamuutuja ja koorega muutuja sama nime. 682 00:49:46,790 --> 00:49:49,220 Need võivad olla erinevad muutujad, nad võivad olla erinevad väärtused. 683 00:49:49,220 --> 00:49:53,090 Muutuvad väärtus ühe ei muutu väärtus muud. 684 00:49:53,090 --> 00:49:58,070 Need muutujad on kõik hinnatud dollari märk - $ $ iganes. 685 00:49:58,070 --> 00:50:02,340 Mis siis, kui sul on see? Kas sa tead, millest üks teil? 686 00:50:02,340 --> 00:50:04,520 Minu testid sain kest muutuja, 687 00:50:04,520 --> 00:50:07,240 kuid seda ei ole dokumenteeritud ja sa ei saa tugineda sellele. 688 00:50:07,240 --> 00:50:10,270 Nii et ma palun teid, tekitab kest ja keskkonna muutujate 689 00:50:10,270 --> 00:50:13,490 sama nime on hea idee? Ei midagi. 690 00:50:13,490 --> 00:50:17,460 Millised on need peamised erandid, mille puhul keskkonnale ja shell muutujate 691 00:50:17,460 --> 00:50:19,860 on üksteisega seotud? 692 00:50:19,860 --> 00:50:27,470 On need 4. 693 00:50:32,030 --> 00:50:35,510 Suurtäht TERM keskkonnamuutuja 694 00:50:35,510 --> 00:50:41,540 laduma muutuv mõiste väikeste tähtedega, terminaliemulatsiooni. 695 00:50:41,540 --> 00:50:47,430 Ma lihtsalt lähen siia ja ma teen Kaja kasulik käsk siin 696 00:50:47,430 --> 00:50:52,560 $ TERM $ perspektiivis. Ja seal. 697 00:50:52,560 --> 00:51:00,570 xterm on terminal tüüpi aknad kuvatakse x Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-color on variatsioon, et see võimaldab erinevaid värve. 699 00:51:04,330 --> 00:51:06,580 Miks me defineerime neid? Mis on see hea? 700 00:51:06,580 --> 00:51:09,740 Käsud, mis ümber ekraani nagu toimetaja 701 00:51:09,740 --> 00:51:13,680 Kirjuta eriti järjestusi, mida nimetatakse Paojada, 702 00:51:13,680 --> 00:51:18,160 Lisa terminali või akna ümber selle ja nii edasi. 703 00:51:18,160 --> 00:51:20,990 Need järjestused on erinevad erinevate terminalide. 704 00:51:20,990 --> 00:51:23,100 See ütleb see mida kasutada. 705 00:51:23,100 --> 00:51:25,900 Mõnikord on küsimusi seal. 706 00:51:25,900 --> 00:51:28,600 Võiksid muuta. 707 00:51:28,600 --> 00:51:30,780 Kui asjad ei tööta, mõnikord terminal tüübiks on valitud vale, 708 00:51:30,780 --> 00:51:36,440 võib teil olla võimalik seda parandada uueks mõiste muutuja. 709 00:51:36,440 --> 00:51:43,420 Nendel juhtudel, muutes ühe muutuja keskonnamuutujaga või kest muutuja 710 00:51:43,420 --> 00:51:45,970 tuleks muuta teine. 711 00:51:45,970 --> 00:51:50,970 Olen avastanud läbi kogemuse, et muutuvas TERM trükitähtedega 712 00:51:50,970 --> 00:51:54,060 ei ole alati muuta kest muutuv mõiste väikeste tähtedega. 713 00:51:54,060 --> 00:51:55,550 See on viga. 714 00:51:55,550 --> 00:51:59,400 Ma ei tea, kas see on alati tõsi. Suurem osa ajast see ei ole tõsi, kuid see võib olla. 715 00:51:59,400 --> 00:52:02,490 Nii et kui sa midagi muuta, vaid vaadata, et välja. 716 00:52:02,490 --> 00:52:05,830 See ei ole tihti, et sa pead muutma seda väärtust, kuid kord, kui sa seda teed. 717 00:52:05,830 --> 00:52:08,260 Keskkonnamuutuja kasutaja. 718 00:52:08,260 --> 00:52:12,070 Jällegi keskkonnamuutuja trükitähtedega, Shell muutuja väikeste tähtedega. 719 00:52:12,070 --> 00:52:13,710 See on sinu kasutajanimi. 720 00:52:13,710 --> 00:52:16,730 See on ainult väga erandlikel asjaoludel 721 00:52:16,730 --> 00:52:18,420 et sa tahaksid seda muuta. 722 00:52:18,420 --> 00:52:22,350 Kui teie kasutajanimi on keegi teine, siis võib visata igasuguseid asju välja. 723 00:52:22,350 --> 00:52:26,040 Kodu kataloog, kasutaja kodukataloogi. 724 00:52:26,040 --> 00:52:28,060 Jällegi, sa ei taha seda muuta. 725 00:52:28,060 --> 00:52:32,260 Teate kõik need juhtumid ja üks, mida me parasjagu katta, tee muutuja, 726 00:52:32,260 --> 00:52:37,070 keskkonnamuutuja on trükitähtedega ja seotud kesta muutuja on väikeste tähtedega. 727 00:52:37,070 --> 00:52:39,240 Kui muuta mõnda, siis peaks muutma teisi. 728 00:52:39,240 --> 00:52:45,960 Selline siduv ei ole võimalik tuvastada, kui te ei saa siduda 2 muutujad, 729 00:52:45,960 --> 00:52:50,570 va need 4 ja siduvad need muutujad ei saa tagasi võtta, 730 00:52:50,570 --> 00:52:52,090 sa ei saa eraldi neid. 731 00:52:52,090 --> 00:52:55,820 Nii et need 4 paari muutujad on seotud. 732 00:52:55,820 --> 00:52:59,020 Nad alati. Puudub teised on. 733 00:52:59,020 --> 00:53:05,720 Lisaks oleks võimalik luua muutujaid samanimelised 734 00:53:05,720 --> 00:53:07,780 vastupidisel tüübid. 735 00:53:07,780 --> 00:53:11,600 Sa võiksid kesta muutuja mõiste väikeste tähtedega 736 00:53:11,600 --> 00:53:14,990 või keskkonnamuutuja TERM trükitähtedega. 737 00:53:14,990 --> 00:53:19,040 Need muutujad ei sõltuks nende paaris muutujad 738 00:53:19,040 --> 00:53:20,780 ja nad oleksid teineteisest sõltumatud. 739 00:53:20,780 --> 00:53:23,780 Ma ei kujuta ette, miks sa ei tee seda, kui sa tahad inimesi segadusse ajada. 740 00:53:24,600 --> 00:53:29,730 See üks siin, tee muutuja, see on tõesti oluline. 741 00:53:29,730 --> 00:53:35,550 Teine asi on see, et seal võib olla juhtumeid 742 00:53:35,550 --> 00:53:40,430 muutujate sarnaste ühildatud nimed, mis ei ole omavahel seotud. 743 00:53:40,430 --> 00:53:45,000 Ei saa olla muutujad, SHELL ja Shelli ja väiketähti. 744 00:53:45,000 --> 00:53:48,300 Tuginedes sellele nimi, sa ei tea, kas see muutuja on kest muutuja 745 00:53:48,300 --> 00:53:51,580 või keskkonnamuutuja, ja nad ei ole omavahel seotud. 746 00:53:51,580 --> 00:53:55,300 Nii et omamoodi seotud nimed ei tähenda seotud muutujad. 747 00:53:55,300 --> 00:53:58,830 Tee muutuja, mida ma näitas enne, 748 00:53:58,830 --> 00:54:01,880 on loetelu teenimesid kus kest otsib käske. 749 00:54:01,880 --> 00:54:12,320 Lähme üle selle akna siin ja me teeme echo $ PATH, suurtähtedega - 750 00:54:12,320 --> 00:54:20,230 keskkonnamuutuja - echo $ path, väikeste tähtedega - Shell muutuja. 751 00:54:20,230 --> 00:54:24,980 Pange tähele, et kataloogide nimekirja on sama. Need on seotud. 752 00:54:24,980 --> 00:54:26,590 Muuda üks, muudad muu. 753 00:54:26,590 --> 00:54:32,970 Keskkonnas muutuja elemendid on eraldatud kooloniga. Pange tähele, et. 754 00:54:32,970 --> 00:54:35,130 Kest muutujad tühikutega. 755 00:54:35,130 --> 00:54:38,760 See keskkonnamuutuja on üks string. 756 00:54:38,760 --> 00:54:41,480 Kest muutuja massiivi. 757 00:54:41,480 --> 00:54:43,490 Bourne shell ei ole massiivid. 758 00:54:43,490 --> 00:54:46,600 Bash ei, kuid see on juba fikseeritud osa kest. 759 00:54:46,600 --> 00:54:48,660 See on ühekordne string mitte massiivi. 760 00:54:48,660 --> 00:54:50,420 C-shell alati olnud massiivid. 761 00:54:50,420 --> 00:54:52,630 Massiivid on palju lihtsam töötada. 762 00:54:52,630 --> 00:54:54,400 Võite viidata osi. 763 00:54:54,400 --> 00:55:02,350 Nii echo $ path [1] ja ma saan / usr / bin, esimene element. 764 00:55:02,350 --> 00:55:09,950 Taas meenub dollari märk tähistab viimase osa ajaloost nimekirja. 765 00:55:09,950 --> 00:55:16,850 Mis juhtub siis? Ta püüdis leida dollari märk muutuja sümbol. 766 00:55:16,850 --> 00:55:20,850 Ma sellest pääseda. Oops. See ei võtaks, et kas. 767 00:55:20,850 --> 00:55:23,690 Mõned need asjad ei tööta nii hästi. 768 00:55:23,690 --> 00:55:28,140 Võib-olla me lihtsalt jätta see välja. 769 00:55:28,140 --> 00:55:36,980 Tärn tähistab kogu asi, kuid see on, mida sa saad, kui sa ei täpsusta element. 770 00:55:36,980 --> 00:55:46,170 Teine võimalus, et massiivi muutujad saab manipuleerida, 771 00:55:46,170 --> 00:55:49,500 mitmeid elemente seal, 7 elementi. 772 00:55:49,500 --> 00:55:53,410 Siin me esitame nael märk enne muutuja nimi. 773 00:55:53,410 --> 00:55:58,280 Siin on veel üks. Pane küsimärk seal. 774 00:55:58,280 --> 00:56:03,170 See on loogiline väärtus. See näitab, et muutuja eksisteerib. 775 00:56:03,170 --> 00:56:05,160 See on teine ​​töömeetod muutujaid. 776 00:56:05,160 --> 00:56:06,660 See, muide, ei pea olema massiivi muutuja. 777 00:56:06,660 --> 00:56:08,210 See võib olla mis tahes muutuja. 778 00:56:08,210 --> 00:56:11,840 Ja kui ma seda teen, ei ole selline muutuv ja ma saan 0. 779 00:56:11,840 --> 00:56:14,990 Teine väike asi seal umbes muutuja hinnanguid. 780 00:56:23,670 --> 00:56:32,950 Tagasi see siin, kui mingil põhjusel sa tahad teha seda 781 00:56:32,950 --> 00:56:37,990 selle asemel et töötada array kest muutuja, 782 00:56:37,990 --> 00:56:41,470 on käsud, mida saab eraldada need asjad põhinevad jämesooles. 783 00:56:41,470 --> 00:56:44,080 Tegelikult, kui sa lähed tuleb teha seda Bash kesta võimalusel 784 00:56:44,080 --> 00:56:47,110 mingi script, mis oleks ilmselt, kuidas sa seda teha. 785 00:56:47,110 --> 00:56:50,350 Kuid C-shell see on palju lihtsam kasutada massiivi. 786 00:56:50,350 --> 00:56:58,250 In Bourne shell, muutujad on määratud ühe väljend nagu see, 787 00:56:58,250 --> 00:57:01,760 meeldib, kuidas sa võiksid määrata muutuja programmeerimiskeelt 788 00:57:01,760 --> 00:57:05,110 ja siin ei tohi olla tühikuid. 789 00:57:05,110 --> 00:57:09,110 See on vajalik, et see oleks vaid 1 string. 790 00:57:09,110 --> 00:57:14,980 In Bourne tüüpi kestad, kõik muutujad kest muutujaid. 791 00:57:14,980 --> 00:57:19,250 Keskkond muutujad alamhulk kest muutujad. 792 00:57:19,250 --> 00:57:24,060 Nad on eristada mitte-keskkonnamuutujateta eksportides. 793 00:57:24,060 --> 00:57:28,860 Käsk seda teha, on eksport, nagu eksport printer. 794 00:57:28,860 --> 00:57:34,930 Kui me määratleda sellise muutuja, 795 00:57:34,930 --> 00:57:38,480 kui me tahtsime printimiskäsk leida, see peaks olema keskkonnamuutuja 796 00:57:38,480 --> 00:57:40,730 ja see, kuidas me teeme seda üks. 797 00:57:40,730 --> 00:57:42,090 Siin on midagi sellist segadust. 798 00:57:42,090 --> 00:57:50,430 See väljend, eksport keskkonnale, tuleneb sellest Bourne shell mõiste, 799 00:57:50,430 --> 00:57:54,520 ja veel, et märge on esitatud kirjeldusi C-shell, 800 00:57:54,520 --> 00:57:57,920 kus puudub selline käsk nagu eksport. 801 00:57:57,920 --> 00:58:06,200 Kui sa just ütlesid ekspordi iseenesest, saad nimekirja eksportida - 802 00:58:06,200 --> 00:58:10,620 Nii et kui ma lihtsalt eksportida siin, ei ole sellist asja. 803 00:58:13,620 --> 00:58:15,200 Okei, lähme edasi. 804 00:58:15,200 --> 00:58:17,010 Need asjad, muide, on ka määratletud kest. 805 00:58:17,010 --> 00:58:19,400 Ma ei ole määratlenud ühtegi neist ise. 806 00:58:19,400 --> 00:58:23,550 Kest teeb igasuguseid asju ise. 807 00:58:23,550 --> 00:58:26,650 Tuleb teha asju automaatselt. 808 00:58:30,240 --> 00:58:36,880 In Bash või Korn shell, saate käivitada käsk niimoodi, 809 00:58:36,880 --> 00:58:42,000 mis mõlemad annavad muutuja väärtust ja eksportida seda 1 käsk. 810 00:58:42,000 --> 00:58:46,150 In Bourne shell nad olema eraldi käske nagu eksport. 811 00:58:46,150 --> 00:58:48,410 Siin on veel üks aspekt, mis on segane. 812 00:58:48,410 --> 00:58:52,220 Set käsu C-shell defineerib muutujate 813 00:58:52,220 --> 00:58:55,550 ja argumentidega ütleb teile, mida muutujate väärtused. 814 00:58:55,550 --> 00:59:01,140 In Bash kesta, set käsk ilma argumentideta teeb sama asja, 815 00:59:01,140 --> 00:59:03,580 kuid argumendid see hoopis midagi muud. 816 00:59:03,580 --> 00:59:06,200 Nii et need on eri argumente siin. 817 00:59:06,200 --> 00:59:10,460 Mõned neist on keskkonna muutujad, mõned neist on kest muutujaid. 818 00:59:10,460 --> 00:59:13,200 Kõik nad on shell muutujate tõesti. Mõned neist on keskkonna muutujad. 819 00:59:15,690 --> 00:59:23,920 Set käsu argumente saab kasutada tegutseda 820 00:59:23,920 --> 00:59:28,220 on asendi parameetrid script, 821 00:59:28,220 --> 00:59:33,910 mis on viis, kuidas need kõik korraga. 822 00:59:33,910 --> 00:59:36,150 Me ei saa minna sinna täna. 823 00:59:36,150 --> 00:59:39,580 Samuti võib kasutada muutus kest käitumist. 824 00:59:39,580 --> 00:59:46,700 Eriti Bash on muutujad, mis määravad, kui kest käitub. 825 00:59:46,700 --> 00:59:51,310 Siis ka lihtsalt see käsk, et võite näha seda käsku. 826 00:59:51,310 --> 00:59:59,050 Default järgnevad muutujad ja muutuja tüüpi kasutatakse Korn ja Bash kestad. 827 00:59:59,050 --> 01:00:04,970 See ei ole kohustuslik, vaid seda saab kasutada selleks, et piirata väärtused muutujate 828 01:00:04,970 --> 01:00:08,400 mis võib olla kasulik, et vältida vigu ja see on üsna levinud. 829 01:00:08,400 --> 01:00:11,640 Nii et ma lihtsalt mainida, et juhul, kui sa näed seda kusagil. 830 01:00:17,290 --> 01:00:19,160 Kui käsk. 831 01:00:19,160 --> 01:00:22,490 Mäleta mainisin, kui käsk C-shell, 832 01:00:22,490 --> 01:00:28,750 mida saab öelda, asukoht käsk failinimega. 833 01:00:28,750 --> 01:00:32,580 Siin on käsk asendamine. 834 01:00:32,580 --> 01:00:41,900 Te peaksite leidma klaviatuuril kuskil märk, mis näeb välja selline. 835 01:00:41,900 --> 01:00:44,910 Asukoht klaviatuuril läheb erineda. 836 01:00:44,910 --> 01:00:47,050 Oleme kutsunud see backquote. See on umbes sama suur kui tsiteerida. 837 01:00:47,050 --> 01:00:48,720 See läheb ülemine vasakult alla paremale. 838 01:00:48,720 --> 01:00:52,690 Siin on minu Mac klaviatuur on ülemises vasakus nurgas. 839 01:00:52,690 --> 01:00:58,150 See märk saab käivitada käsk jooksul käsk. 840 01:00:58,150 --> 01:01:03,400 Kui teil on väljend sees jutumärgid, 841 01:01:03,400 --> 01:01:07,080 et väljend on käsk, see kestab. 842 01:01:07,080 --> 01:01:09,010 Väljund operatsioonide 843 01:01:09,010 --> 01:01:11,980 asendatakse seejärel kogu backquote ekspressiooni 844 01:01:11,980 --> 01:01:16,110 sees enam käsk mis siis jookseb, et toodang 845 01:01:16,110 --> 01:01:22,010 osana string argumendid ja nii edasi. 846 01:01:22,010 --> 01:01:28,640 Siin on käsk, mis kasutab seda. 847 01:01:28,640 --> 01:01:32,340 Olgem näidata toimingu siin. 848 01:01:44,980 --> 01:01:49,090 Lähme siia, võtta jutumärgid. 849 01:01:49,090 --> 01:01:54,410 Kontroll saab mind alguses kooskõlas Emacsi toimetamine süntaks. 850 01:01:54,410 --> 01:02:00,380 Seni teenimesid just kui ei, 851 01:02:00,380 --> 01:02:05,040 aga kui ma seda niimoodi, see siis pistikud, et nimekiri teenimesid 852 01:02:05,040 --> 01:02:08,750 asemel kogu backquote väljendus ja jookseb ls-l neile. 853 01:02:08,750 --> 01:02:11,120 Objekti mugav, eks? 854 01:02:11,120 --> 01:02:14,860 Nii et üks kena asi. See, kuidas jutumärgid tööta. 855 01:02:14,860 --> 01:02:17,560 Nüüd lähme alla veidi kaugemale. 856 01:02:17,560 --> 01:02:22,050 Need on varjunimed. Ma tegelikult kasutada neid. 857 01:02:22,050 --> 01:02:26,410 Ma püüan saada see koos 1 redigeerimise operatsioon. 858 01:02:34,900 --> 01:02:36,900 Okei. 859 01:02:36,900 --> 01:02:39,630 Nüüd vaatame, kuidas need määratlused tuli välja. 860 01:02:39,630 --> 01:02:44,930 alias LWH mulle, kuidas seda määratleda. 861 01:02:44,930 --> 01:02:51,210 Pange tähele, et see on lihtsalt see, kuid välimine tsitaadid on võetud maha 862 01:02:51,210 --> 01:02:53,750 ja hüüumärk on maha võetud. 863 01:02:53,750 --> 01:02:58,940 ! * Terve kõiki argumente. 864 01:02:58,940 --> 01:03:03,580 In alias määratlus ta kohaldab tagasi, kui ma kasutan seda. 865 01:03:03,580 --> 01:03:10,620 LWH KSH bash. Okei. 866 01:03:10,620 --> 01:03:13,960 Vaata, kuidas see töötab? See säästab mulle kirjutades. 867 01:03:13,960 --> 01:03:16,440 Lähme üles natuke lihtsalt mainida midagi siin. 868 01:03:19,150 --> 01:03:23,120 Pange tähele, siin neid erinevaid kestad. Ma oleks pidanud mainitud varem. 869 01:03:23,120 --> 01:03:36,060 Csh on 2 siin ja nii ei / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Me võiksime luua ka muul viisil, et need on tegelikult sama faili. 871 01:03:39,870 --> 01:03:43,150 Pea meeles ma ütlesin, kui sa kirjutad SH saad bash. 872 01:03:43,150 --> 01:03:47,390 Sisestage see ja sa saad selle. 873 01:03:47,390 --> 01:03:51,730 Aga need ei ole seotud. Need on ühe neist seal. 874 01:03:51,730 --> 01:03:54,910 Ja see ei ole selline fail, mis saab helistada teisele. 875 01:03:54,910 --> 01:03:59,460 Nii et need on eraldi failidena, C-shell neist on sama fail. 876 01:03:59,460 --> 01:04:03,640 Tagasi siin, teine ​​siin, see alias, 877 01:04:03,640 --> 01:04:09,090 tähele, et on selle käsu, fail. 878 01:04:09,090 --> 01:04:13,810 See alias jookseb seda. Faili ütleb tüüpi faili. 879 01:04:13,810 --> 01:04:20,330 Nii FWH KSH bash. Okei. 880 01:04:20,330 --> 01:04:23,230 See väljund faili käsuga. 881 01:04:23,230 --> 01:04:24,630 Ma ei tea, kas sa tead, mida see tähendab siin, 882 01:04:24,630 --> 01:04:26,750 Mach-O universaalne binaarne 2 arhitektuuri. 883 01:04:26,750 --> 01:04:30,470 On võimalik 2 protsessor liigid Mac, 884 01:04:30,470 --> 01:04:34,780 ja mõned programmid kanti olema võimeline liikuma nii, 885 01:04:34,780 --> 01:04:37,950 ja faili käsk saab määrata, et nii see on, mida see tähendab. 886 01:04:37,950 --> 01:04:40,660 Mõlemad failid on kirjutatud nii. 887 01:04:40,660 --> 01:04:43,760 Nii me näeme, kuidas alias töötab, me näeme, kuidas backquote töötab, 888 01:04:43,760 --> 01:04:48,640 me näeme, kuidas tegeliku faili ls või fail töötab. 889 01:04:52,050 --> 01:04:57,000 See ei pruugi töötada. Proovi ", kus kus" ja "LWH kus". Okei, proovime seda. 890 01:04:57,000 --> 01:05:01,040 kus kus. 891 01:05:01,040 --> 01:05:03,500 kus on kest sisseehitatud. 892 01:05:03,500 --> 01:05:06,970 Mäleta varem näidanud, et Bash ei ole kus. 893 01:05:06,970 --> 01:05:10,080 Kui kirjutad, kus Bash kesta, saate veateate. 894 01:05:10,080 --> 01:05:12,540 See on lihtsalt osa koore asemel, et eraldi käsk. 895 01:05:12,540 --> 01:05:20,000 Mis juhtub, kui ma tüüpi LWH otsin kus? Vaata, mis juhtub seal. 896 01:05:20,000 --> 01:05:22,850 Ran kus, kus on see väljund, ja siis üritas joosta Kas 897 01:05:22,850 --> 01:05:25,600 kui l, kus on kest sisseehitatud. 898 01:05:25,600 --> 01:05:28,790 kui on olemas, aga teised need ei eksisteeri. 899 01:05:28,790 --> 01:05:32,090 Ükski neist ei ole, tegelikult. 900 01:05:32,090 --> 01:05:35,560 Nii et alati ei tööta, ja see näitab ka, kuidas mõned asjad 901 01:05:35,560 --> 01:05:39,580 ei tee päris, mida te võib-olla arvasid. 902 01:05:40,930 --> 01:05:43,010 Lähme alla veidi edasi siin. 903 01:05:44,890 --> 01:05:54,760 See siin on Bash. See on ka käsk asendamise nagu backquote. 904 01:05:54,760 --> 01:06:05,280 Kuid erinevalt backquote, kasutab ta seda muutujat stiilis. 905 01:06:05,280 --> 01:06:09,860 On hulk väljendeid, mis algab dollari märk, 906 01:06:09,860 --> 01:06:16,070 ja kuigi need ei ole muutujad nad laenatud kasutamine dollari märk 907 01:06:16,070 --> 01:06:19,570 näidata väljend mingisugune. 908 01:06:19,570 --> 01:06:23,550 See saab olema ümbritsetud sulgudes või sulgudes või topelt sulgudes 909 01:06:23,550 --> 01:06:26,320 mis on teistsugune eesmärk. 910 01:06:26,320 --> 01:06:29,500 Single sulud siin on käsk asendamise nagu jutumärgid. 911 01:06:29,500 --> 01:06:32,720 Double Sulgudes on tegelikult aritmeetilise operatsiooni. 912 01:06:32,720 --> 01:06:35,380 On ka teisi syntaxes muid toiminguid. 913 01:06:35,380 --> 01:06:41,520 Backquote süntaks on saadaval Bash. 914 01:06:41,520 --> 01:06:46,780 Siiski, see üks eelistatav. See on palju lihtsam lugeda ja see võimaldab pesitsevate. 915 01:06:46,780 --> 01:06:51,300 Sul võib olla sees $ (käsk) teise käsu, 916 01:06:51,300 --> 01:06:54,590 midagi sellist - 917 01:07:14,560 --> 01:07:18,210 Ma saan nimekirja seal. 918 01:07:18,210 --> 01:07:21,670 See teeks kui mul oleks backquote ka. 919 01:07:32,050 --> 01:07:38,470 Mis siis, kui ma tahan teha midagi sellist - 920 01:08:03,390 --> 01:08:06,430 Sa ilmselt ei kasuta tegelikult seda käsku, 921 01:08:06,430 --> 01:08:14,160 aga see sisemine käsk asendamine kajab kõik failinimed, mis algavad, 922 01:08:14,160 --> 01:08:18,229 siis see üks töötab ls-l on need failid, 923 01:08:18,229 --> 01:08:20,500 ja siis see lihtsalt kajab väljund. 924 01:08:21,729 --> 01:08:24,479 Sa ilmselt ei tee seda, sa lihtsalt ei kaja või ls, 925 01:08:24,479 --> 01:08:29,450 kuid see näitab, kuidas pesitsevate käske töötab. 926 01:08:29,450 --> 01:08:34,380 Nii lihtsalt teine ​​funktsioon siin. 927 01:08:34,380 --> 01:08:37,450  Ma mainisin seda varem, et kui sul on, kus C-shell, 928 01:08:37,450 --> 01:08:42,770 kirjuta tööde Bourne tüüpi kestad asukoha käske. 929 01:08:48,939 --> 01:08:52,270 Sisseehitatud käsud, just see, mida ma ütlesin seal. 930 01:08:52,270 --> 01:08:54,640 Käsud on osa kest, nagu kus. 931 01:08:54,640 --> 01:08:59,880 Kui kere täidab käsku nagu ls, siis otsib ta läbi tee, 932 01:08:59,880 --> 01:09:03,029 leiab, et mõnel kataloog kuhugi, 933 01:09:03,029 --> 01:09:05,800 loeb see mällu loob uue koorega 934 01:09:05,800 --> 01:09:08,960 loeb käsk ls või mis iganes keresse 935 01:09:08,960 --> 01:09:11,450 kus keskkonna muutujad on juba leitud, 936 01:09:11,450 --> 01:09:14,000 ja siis ta kannab täitmist ta. 937 01:09:14,000 --> 01:09:18,319 Sisseehitatud käsk, kood, et käsk on sees kest, 938 01:09:18,319 --> 01:09:21,460 nii shell lihtsalt hakkab täidesaatva osa oma kood. 939 01:09:21,460 --> 01:09:24,569 kus on selline käsk. See tegelikult saab kiiremini. 940 01:09:24,569 --> 01:09:28,380 See ei pea lugema midagi mällu, see on juba mällu. 941 01:09:28,380 --> 01:09:32,460 Sisseehitatud käsud alati ülimuslikud käske sama nime. 942 01:09:32,460 --> 01:09:36,050 Käsud, mis on katalooge tee võib olla sama nimi, 943 01:09:36,050 --> 01:09:39,090 käsud asuvad erinevates kataloogides, failid asuvad erinevates kataloogides. 944 01:09:39,090 --> 01:09:41,740 Üks, mis leiab aset varem, tee on üks saate. 945 01:09:41,740 --> 01:09:43,770 Kui on sisseehitatud käsk, et te saate alati seda. 946 01:09:43,770 --> 01:09:47,890 Ei ole nii, et anda see madalam tähtsam kui käsk tee. 947 01:09:47,890 --> 01:09:54,140 Kui sa tahad saada, et tee käsk, saate tippida täis failinimega. 948 01:09:54,140 --> 01:09:55,850 Kui oli käsk, kui teed kuskil, 949 01:09:55,850 --> 01:09:58,440 sa võiks tüüp / bin / kus ja sa saad selle. 950 01:09:58,440 --> 01:10:01,800 Kui sa ei taha, et kirjutad kogu failinimega, siis võiks määratleda alias. 951 01:10:01,800 --> 01:10:06,310 Tegelikult, kui sa andsid alias sama nimi sisseehitatud käsk, et see töötab 952 01:10:06,310 --> 01:10:08,790 sest alias määratlus hinnatakse 953 01:10:08,790 --> 01:10:13,220 enne kest teeb kindlaks, et see on sisseehitatud käsk, mida tuleb täita. 954 01:10:18,810 --> 01:10:23,440 Siis see muutub veidi keerulisem mõned käsud here. 955 01:10:23,440 --> 01:10:29,880 Kui mõned käsud on tegelikult sisseehitatud käsud ja teed. 956 01:10:29,880 --> 01:10:34,140 Üks neist on echo käsk Ma kasutasin natuke aega tagasi need näited. 957 01:10:34,140 --> 01:10:37,410 Echo on käsk tee ja see on iga kest. 958 01:10:37,410 --> 01:10:40,580 Nad ei pruugi kõik käituvad ühtemoodi. 959 01:10:40,580 --> 01:10:42,970 Algselt oli käsk ainult tee. 960 01:10:42,970 --> 01:10:45,280 See oli ehitatud karpidele hiljem. 961 01:10:45,280 --> 01:10:48,080 Sest seal on võimalusi, mis sõltuvad keskkond 962 01:10:48,080 --> 01:10:52,970 ja käsurea võtmeid, sisseehitatud käsud 963 01:10:52,970 --> 01:10:57,030 kanti toimida sama käsku, mis oli olnud tee 964 01:10:57,030 --> 01:10:59,670 see on ebatõenäoline, et nad on valmis nii 965 01:10:59,670 --> 01:11:01,720 kui käsk ei oleks juba kirjutatud tee. 966 01:11:01,720 --> 01:11:06,180 Seega see on kõrvaltoimed. Selle ajalugu on mõju siin. 967 01:11:06,180 --> 01:11:08,380 Seal on võimalused olemas. 968 01:11:14,280 --> 01:11:23,060 Seal on ka võimalus määratleda muutuja Tcsh nimetatakse echo_style. 969 01:11:23,060 --> 01:11:27,700 See on üks neid muutujaid, mida saab muuta nii, et echo teoseid. 970 01:11:27,700 --> 01:11:30,910 On ka teisi juhtumeid, kus saab määrata muutuja 971 01:11:30,910 --> 01:11:36,290 mis muudab seda, kuidas koor toimimist, sealhulgas sisseehitatud käsk toimib. 972 01:11:36,290 --> 01:11:38,130 See ei mõjuta midagi 973 01:11:38,130 --> 01:11:40,640 kuna teised käsud ei ole juurdepääsu kest muutujate 974 01:11:40,640 --> 01:11:42,090 ainult keskkonna muutujate kohta. 975 01:11:42,090 --> 01:11:45,360 Aga shell toiminguid saab lugeda kest muutujaid. 976 01:11:45,360 --> 01:11:50,710 See ei tööta csh. See on ainult Tcsh. See on üks lisaseadmeid. 977 01:11:58,540 --> 01:12:04,620 Parsimine on järjestused, kui ta hindab metacharacters, 978 01:12:04,620 --> 01:12:08,140 kui ta hindab muutujate varjunimed, ajalugu viited. 979 01:12:08,140 --> 01:12:11,830 Seal on teatud järjestuses need asjad. 980 01:12:11,830 --> 01:12:13,730 Kui see juhtub asju kindlas järjekorras 981 01:12:13,730 --> 01:12:16,080 ja saab midagi, mis väljendus omamoodi 982 01:12:16,080 --> 01:12:20,650 mida on juba hinnatud, siis ei hinnata uuesti. 983 01:12:20,650 --> 01:12:24,520 Kui see muutub, siis on see lihtsalt edasi tähemärki. 984 01:12:24,520 --> 01:12:29,920 Nii et kui hindamisel mõned väljendid nagu käsu asendamine 985 01:12:29,920 --> 01:12:36,850 või muutuva iganes tekitab väljend 986 01:12:36,850 --> 01:12:39,240 mis sa tahaksid, hinnatakse 987 01:12:39,240 --> 01:12:42,510 mis töötab ainult siis, kui hindamine toimub hiljem järjekorras. 988 01:12:42,510 --> 01:12:45,010 Ma loodan, et on selge, seal. 989 01:12:45,010 --> 01:12:50,460 See parsing jada operatsiooni C-shell, 990 01:12:50,460 --> 01:12:56,490 ei ole sama sisseehitatud käske, sest see on vähem sisseehitatud käske. 991 01:12:56,490 --> 01:12:58,890 Ma ei ole kindel, Bash seal. 992 01:12:58,890 --> 01:13:02,450 Näiteks, kui kest muutujas ajalugu viide 993 01:13:02,450 --> 01:13:04,230 see ilmselt ei lähe tagasi ajaloos. 994 01:13:04,230 --> 01:13:06,010 See oleks lihtsalt saada hüüumärk. 995 01:13:06,010 --> 01:13:08,840 Tegelikult me ​​lihtsalt proovime seda kohe. 996 01:13:09,720 --> 01:13:18,240 seatud = ja me peame panna see sinna. 997 01:13:30,690 --> 01:13:34,580 Oh, oota. Vabandust. Ma tegin seda Bash. Ma tahtsin seda teha siin. 998 01:13:53,470 --> 01:13:56,080 Vaata, et ta ei hinnanud, et ajalugu viide 999 01:13:56,080 --> 01:14:00,520 sest ta oli juba varem punkti hindamiseks ajalugu väljendid 1000 01:14:00,520 --> 01:14:02,720 kui ta hindas muutuja. 1001 01:14:02,720 --> 01:14:05,550 Nii et 1 mõju parsing. 1002 01:14:05,550 --> 01:14:08,760 Ja jälle, sisseehitatud käske ei tehta ühtemoodi. 1003 01:14:08,760 --> 01:14:11,230 Hea küll. Lähme järgmise siin. 1004 01:14:11,230 --> 01:14:16,060 See on mõeldud 1 rida, kuid see muudab lugemise lihtsamaks. 1005 01:14:19,130 --> 01:14:21,530 Mida see teeb? 1006 01:14:21,530 --> 01:14:28,640 Nette et saaksime hinnata tärnide nagu failinimi metamärke 1007 01:14:28,640 --> 01:14:33,890 ja on ka teisi failinime metamärke nagu küsimärk ja sulg väljendeid. 1008 01:14:33,890 --> 01:14:39,000 Selline hindamine on nn globbing. 1009 01:14:39,000 --> 01:14:46,290 määrata noglob alguses see käsk ütleb ära tee seda. 1010 01:14:46,290 --> 01:14:53,370 väljalülitatud noglob ütleb minna tagasi tehes. 1011 01:14:53,370 --> 01:14:56,440 Pange tähele, et komplekt universum ei ole seda mõju. 1012 01:14:56,440 --> 01:15:00,800 Tavalise keele, määrata universum või väljalülitatud noglob tundub olevat samaväärne, 1013 01:15:00,800 --> 01:15:03,290 kuid siin ei ole. See on väljalülitatud noglob. 1014 01:15:05,120 --> 01:15:07,910 Nüüd Tset. tset seisis terminal komplekt. 1015 01:15:07,910 --> 01:15:11,840 See ei ole kasutatud, et tihti nüüd, kuid enne aknasüsteemide vabanes 1016 01:15:11,840 --> 01:15:15,760 ja siis tuli ühe terminali, siis võib-olla kindlaks, mis tüüpi. 1017 01:15:15,760 --> 01:15:18,700 Ja kui midagi on tulemas üle Ethernet või võrgust, 1018 01:15:18,700 --> 01:15:21,120 võiksite öelda, et see vt100. 1019 01:15:21,120 --> 01:15:26,630 VT100 on selline standard terminali äri. Ta on pärit detsember terminal. 1020 01:15:26,630 --> 01:15:35,270 Kui sa lihtsalt teha dialup - teate mis? See ulatub tagasi viisil, mis? 1021 01:15:35,270 --> 01:15:39,520 Nii et kui me lihtsalt ei Tset siia, 1022 01:15:39,520 --> 01:15:45,250 kui ma lihtsalt ei tset, see lähtestamine terminal, kuid sa ei näe midagi. 1023 01:15:45,250 --> 01:15:47,340 See ei ole tõesti midagi muuta. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Okei. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm-color. 1027 01:15:53,350 --> 01:15:57,080 Me juba teame, et mõiste loodi nii, et ei muutnud. 1028 01:15:57,080 --> 01:15:58,860 See on viis, kuidas me tahaks seda teha. 1029 01:15:58,860 --> 01:16:07,080 Aga teate, et see käsk, tset-s, vaid toodang need käsud. Ta ei jooksnud neid. 1030 01:16:07,080 --> 01:16:09,770 Ta ei jooksnud neid käske, see väljund neile. 1031 01:16:09,770 --> 01:16:13,650 Nii et see eesmärk on tekitada käskude, mis seejärel käivitada. 1032 01:16:13,650 --> 01:16:16,360 Mäletad käsk selles failis ma just näitasin oli Q ta. 1033 01:16:16,360 --> 01:16:18,910 Teeme seda. 1034 01:16:18,910 --> 01:16:23,750 Q surub teatud toodangut, kuid see ei ole oluline siin, nagu näete. 1035 01:16:23,750 --> 01:16:27,980 Ma teen, et teile näidata, et see ei ole oluline. 1036 01:16:27,980 --> 01:16:31,870 See on backquote süntaks. 1037 01:16:31,870 --> 01:16:35,340 Märkus backquote siin backquote siin. 1038 01:16:35,340 --> 01:16:37,680 Ma jättes need asjad siin. 1039 01:16:37,680 --> 01:16:39,570 Need on juhtumid, kus räägitakse seda, mida teha 1040 01:16:39,570 --> 01:16:42,050 aastal Konkreetsete tüüpi terminalide - 1041 01:16:42,050 --> 01:16:45,400 Ethernet võrgu, dialup, mida olete. 1042 01:16:45,400 --> 01:16:48,050 See ei ole oluline siin, sest me tegelikult ei tee ühtegi neist asjadest. 1043 01:16:48,050 --> 01:16:49,720 Ma lihtsalt illustreerib käsk. 1044 01:16:49,720 --> 01:16:55,170 Kui ma seda teha backquote, mida ma nüüd saan? 1045 01:16:55,170 --> 01:17:00,210 Märgata ka siin, et see sisaldas komplekt noglob ja väljalülitatud noglob, 1046 01:17:00,210 --> 01:17:02,630 Nii et need on muutunud tarbetuks määratlemisel. 1047 01:17:02,630 --> 01:17:05,380 See ei olnud alati tõsi olla, kuid nüüd nad on kantud selle käsu. 1048 01:17:05,380 --> 01:17:08,890 Aga vaatame, mis juhtub, kui ma seda teen 1049 01:17:08,890 --> 01:17:12,570 ja minge alguses kooskõlas kontrolli ja ma teen seda. 1050 01:17:14,380 --> 01:17:18,040 Okei, määrata: command not found. See on omamoodi veider, kas pole? 1051 01:17:18,040 --> 01:17:20,570 komplekt on tuntud käsk. See on osa kest. 1052 01:17:20,570 --> 01:17:24,040 määratud: command not found? Miks see nii on? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Noh, mõtle seda. 1054 01:17:26,790 --> 01:17:31,100 See töötab backquote käsu asendamine 1055 01:17:31,100 --> 01:17:37,430 ja mis tekib teatud osa jada parsing käsk. 1056 01:17:37,430 --> 01:17:40,360 Komplekt on sisseehitatud käsk. 1057 01:17:40,360 --> 01:17:43,900 Nii et selleks ajaks see, et käsk asendamine 1058 01:17:43,900 --> 01:17:48,280 see on juba saanud viimase punkti tuvastamiseks sisseehitatud käske. 1059 01:17:48,280 --> 01:17:51,900 Nii ta kohtleb määrata, nagu see oleks käsk tee. 1060 01:17:51,900 --> 01:17:55,440 Ütlematagi selge, et ta ei leia seda ja sa saad viga. 1061 01:17:55,440 --> 01:17:59,300 Noh. Seal on näiteks parsing jada. 1062 01:17:59,300 --> 01:18:01,460 Ja mida me teeme seda? 1063 01:18:01,460 --> 01:18:04,800 Pange tähele, see on väga huvitav käsk siin eval. 1064 01:18:04,800 --> 01:18:06,530 Ma ei tea, mida see teeb. 1065 01:18:06,530 --> 01:18:08,760 Kui te vaatate käsitsi - ja olgem lihtsalt teha 1066 01:18:08,760 --> 01:18:12,000 näidata, kuidas segane need juhendid on - 1067 01:18:12,000 --> 01:18:19,400 mees tcsh segaduses manuaal, leida asju siin ei ole lihtne kas. 1068 01:18:19,400 --> 01:18:31,850 Läksime, eval arg, et saaksime olla 1 või rohkem argumente 1069 01:18:31,850 --> 01:18:34,090 ja seal on nimekiri asjadest seal. 1070 01:18:34,090 --> 01:18:37,730 Kohtleb argumendid sisenditena koorega 1071 01:18:37,730 --> 01:18:43,600 ja täidab saadud käske kontekstis praegune kest. 1072 01:18:43,600 --> 01:18:46,900 See on tavaliselt kasutatakse täita käske genereeritakse tulemusena käsk 1073 01:18:46,900 --> 01:18:51,310 või muutuja vahetusest sest parsing toimus enne asendust. 1074 01:18:51,310 --> 01:18:52,580 Väga hea. 1075 01:18:52,580 --> 01:18:54,740 Ja siin nad isegi viidata tset käsk proovi kasutada 1076 01:18:54,740 --> 01:18:57,700 nagu ma just näitasin. 1077 01:18:57,700 --> 01:19:00,440 Nüüd ma pean akna tagasi kasulik koht. 1078 01:19:03,150 --> 01:19:07,800 Paneme siia ja me näeme, et eval kasutatakse vahetult enne seda. 1079 01:19:07,800 --> 01:19:14,010 Vaatame, mis juhtub, kui me paneme - siin me läheme koos nooli, et käsk 1080 01:19:14,010 --> 01:19:20,940 ja kontrolli algust, eval. 1081 01:19:20,940 --> 01:19:22,850 Okei, nii et see töötab. 1082 01:19:22,850 --> 01:19:26,440 Kui te seda teete eval, kulub mis tuleb pärast seda ja teeb selle käsu. 1083 01:19:26,440 --> 01:19:29,460 See võimaldab teil põhimõtteliselt sõeluda see kaks korda. 1084 01:19:29,460 --> 01:19:33,710 Lõik siin töötab see käsk sees jutumärgid, 1085 01:19:33,710 --> 01:19:36,210 saab väljundi. 1086 01:19:36,210 --> 01:19:42,850 Etendus peaks kulgema nagu need käsud here nagu need 1087 01:19:42,850 --> 01:19:45,890 selles üks ja see üks. 1088 01:19:45,890 --> 01:19:50,100 Nii need käsud on nüüd siin järjestus 1089 01:19:50,100 --> 01:19:58,950 kuid need on sisseehitatud käsud ja see ei saa neid kohe. 1090 01:19:58,950 --> 01:20:06,440 Läksime eval, eval korjab selle üles, hakkab kogu asi kõik jälle, ja see toimib. 1091 01:20:06,440 --> 01:20:18,460 Näiteks nii backquoting, eval, parsing, tagajärjed parsing, 1092 01:20:18,460 --> 01:20:21,910 ja käsk, mis on ilmselt väga vähe kasu teile tänapäeval. 1093 01:20:21,910 --> 01:20:25,540 Okei. Olgu, umaski. 1094 01:20:25,540 --> 01:20:32,160 Vaatame seda käsku siin umask 022. Ma ei tea, mida see teeb. 1095 01:20:32,160 --> 01:20:38,420 Lihtsalt kirjuta umaski midagi pärast seda. 22. Okei. 1096 01:20:38,420 --> 01:20:44,350 022 ja seda uuesti teha. 1097 01:20:44,350 --> 01:20:48,580 Nagu te võib-olla arvasid, umaski argumentidega ütleb praegune mask; 1098 01:20:48,580 --> 01:20:51,760 umask argumentidega teeb ta seda, kuid see oli üks Mul oli juba. 1099 01:20:51,760 --> 01:20:53,800 Mis 022 tähendab? 1100 01:21:01,650 --> 01:21:07,080 Need on siin kaitse jaoks fail. 1101 01:21:07,080 --> 01:21:11,440 Nad määravad kindlaks, kellel on lubatud lugeda või kirjutada või käivita fail. 1102 01:21:11,440 --> 01:21:16,560 Kaitsmed nimetatakse ka õigused. 1103 01:21:16,560 --> 01:21:21,390 R tähistab lugeda, W kirjutada, 1104 01:21:21,390 --> 01:21:25,500 ja x, mis ei ole seal kohal tähistab täita. 1105 01:21:25,500 --> 01:21:27,260 Seal on 3 kategooriat seal. 1106 01:21:27,260 --> 01:21:33,540 Viimase 3 elemendid on kasutajate kategooria. Need kehtivad minu kasutaja. 1107 01:21:33,540 --> 01:21:36,870 Need 3 siin kohaldata gruppi. 1108 01:21:36,870 --> 01:21:41,590 Fail kuulub 1 grupp, kasutaja võib kuuluda mitmesse gruppi, 1109 01:21:41,590 --> 01:21:47,150 kuid kui kasutaja on rühm, kuhu see fail kuulub, 1110 01:21:47,150 --> 01:21:51,090 siis need kaitsed kohaldatakse kas ta ei ole kasutaja. 1111 01:21:51,090 --> 01:21:54,230 Ja see on kõik teisedki. 1112 01:21:55,540 --> 01:21:57,690 Need kategooriad on teineteist välistavad. 1113 01:21:57,690 --> 01:21:59,750 Kasutaja kaitset kohaldatakse temale 1114 01:21:59,750 --> 01:22:03,780 Kaitsed kohaldatakse rühma liikmed, kes ei ole kasutaja, 1115 01:22:03,780 --> 01:22:08,110 ja teiste kaitset kohaldatakse ainult inimesed, kes ei ole kasutaja ja rühma liikmetele. 1116 01:22:08,110 --> 01:22:12,320 Kui seal r või aw või x, see tähendab, et kaitse on antud. 1117 01:22:12,320 --> 01:22:13,950 Kui seal on sidekriips, siis tähendab see, et ei ole. 1118 01:22:13,950 --> 01:22:16,690 Ei tegelikult on ka teisi asju, mida saab panna siin peale nende, 1119 01:22:16,690 --> 01:22:18,350 mida ma ei hakka nüüd. 1120 01:22:18,350 --> 01:22:24,450 Umask määrab vaikimisi faile, mida loote. 1121 01:22:24,450 --> 01:22:28,580 Ja nagu mask, põhiliselt see ütleb bitti, et sa ei seatud. 1122 01:22:28,580 --> 01:22:30,450 Kuidas on see muutunud bitti? 1123 01:22:30,450 --> 01:22:33,240 Kui sa arvad, et kõik need nagu kaheksand number, 1124 01:22:33,240 --> 01:22:42,120 see on 1s bit on see 2s, see on 4s. 1125 01:22:42,120 --> 01:22:45,840 Niisiis 0 kuni 7. 1126 01:22:45,840 --> 01:22:51,770 kirjeldada milline kombinatsioon Ri, W ja X on sul neid 3 1127 01:22:51,770 --> 01:22:53,710 ja seejärel sama palju neid ja seejärel neid. 1128 01:22:53,710 --> 01:23:12,030 Nii 022 tähendab 0 kõiki, 2 rühma, 2 alla. 1129 01:23:12,030 --> 01:23:15,870 Kuid see on mask. Mask on, mida sa tegelikult ei ole. 1130 01:23:19,380 --> 01:23:20,610 Vabandust. Ma andsin sulle asju vales järjekorras. 1131 01:23:20,610 --> 01:23:25,620 See on esimene 3. Need 3 on alla need 3 on rühma, need 3 on muud. 1132 01:23:25,620 --> 01:23:27,970 Vabandust, et ma andsin sulle need vales järjekorras. 1133 01:23:27,970 --> 01:23:31,910 0, mis on esimene neist, siis ei näita väärtus, 1134 01:23:31,910 --> 01:23:35,430 aga kui number ei ole olemas, see on 0. 1135 01:23:35,430 --> 01:23:38,370 See tähendab, et kõik 3 neist oleks lubatud. 1136 01:23:38,370 --> 01:23:41,550 Pange tähele, et selles konkreetses üks x ei ole lubatud. 1137 01:23:41,550 --> 01:23:44,090 Põhjuseks on see, et kest on võimalik kindlaks 1138 01:23:44,090 --> 01:23:46,260 kas fail peab olema täidetud või mitte. 1139 01:23:46,260 --> 01:23:49,800 Kuna see ei ole käivitatav fail, siis ei seadnud x. 1140 01:23:49,800 --> 01:23:54,000 2 tähendab, et kirjutada luba, teise kategooriasse siin, 1141 01:23:54,000 --> 01:23:56,500 üks keskel, on keelatud. 1142 01:23:56,500 --> 01:23:58,500 Nii et taas, need on asjad, mida ta eitas. 1143 01:23:58,500 --> 01:24:02,080 Noh, x on lubatud, kuid see ei ole siin, sest see ei ole käivitatav 1144 01:24:02,080 --> 01:24:04,260 ja sarnaselt teistele. 1145 01:24:04,260 --> 01:24:08,880 Nii et see ühine umaski. 1146 01:24:08,880 --> 01:24:14,630 Teine levinum on 700 - anda endale kõike ja keegi midagi. 1147 01:24:14,630 --> 01:24:17,040 Ja seal on ka teisi võimalusi. 1148 01:24:21,340 --> 01:24:27,110 Ma lähen tagasi sinna. Kasutades ajalugu võin otsida tagasi, et LWH sinna. 1149 01:24:27,110 --> 01:24:30,210 Okei. Nii et siin on need kestad. 1150 01:24:30,210 --> 01:24:36,020 Bash omanik, kes on süsteemis kontot saab teha kõike. 1151 01:24:36,020 --> 01:24:41,210 Rühm ja kõik teised saavad teha lugeda või täitmisest, kuid mitte kirjutada. 1152 01:24:41,210 --> 01:24:44,570 See üks isegi ei võimalda omanik kirjutada seda. 1153 01:24:44,570 --> 01:24:46,460 Kui omanik tahtis kirjutada see süsteem konto 1154 01:24:46,460 --> 01:24:48,020 ta oleks pidanud muutma kaitse esimene. 1155 01:24:48,020 --> 01:24:53,940 Aga jälle, umaski seab default varjab seda, 1156 01:24:53,940 --> 01:24:57,160 näidates bitti, mis ei ole määratud. 1157 01:24:57,160 --> 01:25:04,380 See on tavaliselt ühe oma initsialiseerimise faile, mis on. Cshrc jaoks C-shell 1158 01:25:04,380 --> 01:25:07,500 või. profiili Bourne tüüpi kestad. 1159 01:25:07,500 --> 01:25:12,520 See võib olla mujal ka kui on muid initsialiseerimise faile süsteemi. 1160 01:25:12,520 --> 01:25:14,610 Igatahes, see umaski. 1161 01:25:14,610 --> 01:25:18,180 Midagi on pisut imelik siin 1162 01:25:18,180 --> 01:25:22,800 ja see on, miks on ühe käsu selle eest? 1163 01:25:22,800 --> 01:25:28,690 Kui ma kirjutan seda, ma teeks muutuja, umask = mingi väärtus. 1164 01:25:28,690 --> 01:25:31,100 Miks on kogu käsk lihtsalt selleks? 1165 01:25:31,100 --> 01:25:34,560 Põhjuseks on see lihtsalt läheb tagasi päritolu Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix oli lihtsalt mingi programmi projekti Bell Labs 1970-ndate alguses. 1167 01:25:41,050 --> 01:25:42,610 Inimesed lihtsalt tulid kokku, et programmi. 1168 01:25:42,610 --> 01:25:45,290 Nad ei ole kunagi soovinud saada maailma operatsioonisüsteemi. 1169 01:25:45,290 --> 01:25:47,250 Erinevad inimesed kirjutasid erinevate osade mõtlemata väga palju 1170 01:25:47,250 --> 01:25:49,790 kohta, kuidas nad kavatsevad kasutada - pigem pealiskaudsed. 1171 01:25:49,790 --> 01:25:53,290 Ja see tuli koos niimoodi, ja see on ikka nii mõnes mõttes. 1172 01:25:53,290 --> 01:25:57,930 Niisiis, mis peegeldab ajalugu, ja seal on veel neid vastuolusid ja kummaline elemente ta. 1173 01:25:57,930 --> 01:26:00,750 Okei. Next siin. 1174 01:26:08,170 --> 01:26:11,000 Nagu ma varem kirjutasin, C-shell ei ole tegelikult kasutatakse väga programmeerimine, 1175 01:26:11,000 --> 01:26:12,420 kuigi see võib olla. 1176 01:26:12,420 --> 01:26:15,080 See täidab aeglasemalt, uuesti kompromiss interaktiivseks kasutuseks 1177 01:26:15,080 --> 01:26:17,820 mis on rohkem töötlemispaigad kui kiirus, 1178 01:26:17,820 --> 01:26:20,710 mida saab teha ilma töötlemine. 1179 01:26:20,710 --> 01:26:28,320 Lisafunktsioone lisatakse Bourne shell poolt Korn ja Bourne-jälle kestad 1180 01:26:28,320 --> 01:26:32,120 ei tundu aeglustada neid, ja ma ei tea, miks see nii on. 1181 01:26:32,120 --> 01:26:36,310 See võib lihtsalt olla parem kavandamine, aga ma ei ole võimeline seda teada. 1182 01:26:36,310 --> 01:26:40,420 Speed ​​siin tegelikult ei ole nii suur asi, kuigi seda mainitakse. 1183 01:26:40,420 --> 01:26:43,690 Põhjuseks on, et shelliskriptides tegelikult saada üsna kiiresti. 1184 01:26:43,690 --> 01:26:46,450 Kui on palju käske nagu arvutusetappide programmi 1185 01:26:46,450 --> 01:26:49,110 siis ilmselt ei teeks seda skripti. 1186 01:26:49,110 --> 01:26:51,450 Toimingud on suhteliselt lihtne ja arusaadav. 1187 01:26:51,450 --> 01:26:53,960 Need, mis ma olen kogenud, et on liiga aeglane 1188 01:26:53,960 --> 01:26:57,110 kaasama korrata rakendusi aeglane käske. 1189 01:26:57,110 --> 01:27:00,480 Ma mainisin varem stream editor sed. See käsk on aeglane. 1190 01:27:00,480 --> 01:27:03,760 Kui teil täita sed mitu korda, saad aeglane script, kuid see ei kesta see aeglane. 1191 01:27:03,760 --> 01:27:07,920 Running seda Bourne shell ei ole palju kiiremini kui töötab see C-shell, 1192 01:27:07,920 --> 01:27:10,070 kuigi seal on võib-olla mõningaid eeliseid seal. 1193 01:27:10,070 --> 01:27:12,760 Lisaprogrammeerimiskuludeta varustust, seevastu 1194 01:27:12,760 --> 01:27:17,920 on olulised põhjused, miks soovid kasutada Bourne tüüpi kestad. 1195 01:27:17,920 --> 01:27:21,390 C-shell on kummaline funktsioone see - 1196 01:27:21,390 --> 01:27:25,250 see, et sa ei tea, kas muutuja on kest muutuja või keskkonnamuutuja. 1197 01:27:25,250 --> 01:27:27,440 See võib olla väga eksitav. 1198 01:27:27,440 --> 01:27:32,170 See ei ole nii lihtne kirjutada 1199 01:27:32,170 --> 01:27:35,930 lihtsalt põhineb teie kogemused programmeerimise teistes keeltes. 1200 01:27:35,930 --> 01:27:41,350 Ma arvan, et te võite leida Bourne tüüpi kestad rohkem kooskõlas oma kogemust. 1201 01:27:43,730 --> 01:27:49,270 Mõned skriptid, kuigi võib olla tuhandeid ridu pikk. 1202 01:27:49,270 --> 01:27:52,450 Need, mida ma olen näinud, mida kasutatakse lappimine operatsioonisüsteemid. 1203 01:27:52,450 --> 01:27:55,450 Need võib täita väga aeglaselt, kuid sa ei jookse need väga sageli. 1204 01:27:55,450 --> 01:27:57,180 See on ainult siis, kui sa teed lappimine, 1205 01:27:57,180 --> 01:27:59,450 ja see on ainult süsteemi juht, kes teeb neid asju, 1206 01:27:59,450 --> 01:28:01,840 nii see ei ole tõesti suur probleem. 1207 01:28:01,840 --> 01:28:06,980 Need, kes on sadu ridu pikk tegelikult täidab üsna kiiresti. 1208 01:28:06,980 --> 01:28:10,540 Viitavad siin, mis need parandusi? 1209 01:28:10,540 --> 01:28:13,170 Olen juba maininud, mõned neist - massiivid, arvutused, 1210 01:28:13,170 --> 01:28:20,540 $ () avaldis arvutused Bash koorega 1211 01:28:20,540 --> 01:28:23,050 muud liiki käsk asendamine. 1212 01:28:23,050 --> 01:28:25,360 On erinevaid testing käsud 1213 01:28:25,360 --> 01:28:29,350 , mille abil saab teha tingimuslik testide olemasolu failis või muid asju. 1214 01:28:29,350 --> 01:28:34,790 Viimane siin, see käsk siin. 1215 01:28:34,790 --> 01:28:38,480 Mida see teeb, ja miks peaks keegi seda kasutada? 1216 01:28:51,170 --> 01:28:52,990 printenv muutujaNimi. 1217 01:28:52,990 --> 01:28:56,130 Me teame, mida printenv teeb. See ütleb meile, väärtus muutuja. 1218 01:28:56,130 --> 01:29:00,850 Ja printenv muutujaNimi ei ütle meile väga palju, sest seal ei ole sellist muutuja. 1219 01:29:03,550 --> 01:29:05,120 Blank. 1220 01:29:05,120 --> 01:29:08,440 Kuid andkem see midagi olulist. 1221 01:29:13,420 --> 01:29:16,800 See ei ole seal kas. Okei. Ma arvan, et ma ei ole kunagi defineeritud seda. 1222 01:29:16,800 --> 01:29:18,020 Lihtsalt kontrollida oma keskkonda. 1223 01:29:18,020 --> 01:29:20,900 See on veel üks käsk, mille abil saate kontrollida oma keskkonda. 1224 01:29:20,900 --> 01:29:24,470 On vana hea toimetaja, nägime enne. 1225 01:29:42,360 --> 01:29:44,120 Mida see teeb? 1226 01:29:44,120 --> 01:29:48,050 Siin on meil backquote väljendus. 1227 01:29:48,050 --> 01:29:50,370 Pea meeles, see on C-shell. 1228 01:29:50,370 --> 01:29:54,850 Nii printenv TOIMETAJA annab meile väärtuse redaktor. See on vi. 1229 01:29:54,850 --> 01:29:59,790 Ja siis ta loob selle väärtuse muutujale, set käsuga. 1230 01:29:59,790 --> 01:30:02,860 Nüüd, kui ma echo $, saan vi. 1231 01:30:02,860 --> 01:30:05,850 See ei tundu väga kasulik. 1232 01:30:05,850 --> 01:30:08,080 Siiski on tegelik eesmärk. 1233 01:30:08,080 --> 01:30:12,260 Kuna me ei tea, kas muutuja on kest muutuja või keskkonnamuutuja 1234 01:30:12,260 --> 01:30:16,280 abil dollari märk hindamine süntaks, mida saame kasutada printenv 1235 01:30:16,280 --> 01:30:19,460 veenduda, et see on keskkonnamuutuja. 1236 01:30:19,460 --> 01:30:22,550 Nii et kui oli kest muutuja toimetaja, see ei oleks saanud seda. 1237 01:30:22,550 --> 01:30:25,640 See töötab ainult keskkonnamuutuja. 1238 01:30:25,640 --> 01:30:28,370 Kui esines koor muutuv ja ma tahtsin selle väärtust, 1239 01:30:28,370 --> 01:30:29,980 Ma pean leidma mõne muu viis seda teha. 1240 01:30:29,980 --> 01:30:33,530 Üks viis seda teha oleks tehes komplekt ja torustik. 1241 01:30:33,530 --> 01:30:36,130 See on üks metacharacters, erimärgid. 1242 01:30:36,130 --> 01:30:38,370 Ta saadab väljund seatud midagi muud. 1243 01:30:38,370 --> 01:30:40,650 Vaatame, mida me võiksime leida seal. 1244 01:30:40,650 --> 01:30:49,340 Mitte midagi. Okei. Vaatame, mis seal kõik koos. 1245 01:30:49,340 --> 01:30:53,580 See oli echo_style, üks juba mainisin. Okei, teeme nii. 1246 01:31:02,460 --> 01:31:06,230 Mäleta ütlesin, echo_style 1247 01:31:06,230 --> 01:31:08,410 määrab, kuidas kaja käsk käivitada. 1248 01:31:08,410 --> 01:31:10,940 BSD tähistab Berkeley Standard Distribution. 1249 01:31:10,940 --> 01:31:13,200 See on Berkeley Unix alates 1970. 1250 01:31:13,200 --> 01:31:16,630 See on üks viise, et kaja saab. 1251 01:31:16,630 --> 01:31:22,310 Setting echo_style selle väärtus TC-kest tekitab kaja käituda niimoodi. 1252 01:31:22,310 --> 01:31:27,670 Nii määratud teeb seda, kuid seatud ainult muutub kest muutujaid. 1253 01:31:27,670 --> 01:31:35,430 Ta ei leia TOIMETAJA, mis ei kesta muutuja. 1254 01:31:36,870 --> 01:31:38,050 Mitte midagi. 1255 01:31:38,050 --> 01:31:39,660 Nii et üks võimalus eristada neid. 1256 01:31:39,660 --> 01:31:42,000 Aga see, et sa pead läbima mõned kummaline käsk niimoodi 1257 01:31:42,000 --> 01:31:45,500 eristada shell muutujate või keskkonna muutujad 1258 01:31:45,500 --> 01:31:49,970 näitab selline ebapraktiline milline C-shell teatud otstarvetel. 1259 01:31:52,290 --> 01:31:57,960 Ja nüüd, viimane ja võib-olla vähem, see on man-lehekülgi. 1260 01:31:57,960 --> 01:32:03,190 Need, kes te teate, et mees on käsk lühike kasutusjuhend. 1261 01:32:03,190 --> 01:32:08,610 Mees lehekülgi kestad on raske lugeda. Nad on väga pikk. 1262 01:32:08,610 --> 01:32:14,060 Nad korraldatud nii, et võib raskendada leida, mida te otsite. 1263 01:32:14,060 --> 01:32:15,980 Nii et kui te otsite midagi, mille eesmärk, 1264 01:32:15,980 --> 01:32:20,050 sa ei tea, kas see eesmärk on kesta muutuja või midagi muud, 1265 01:32:20,050 --> 01:32:21,630 nii et sa ei tea, kust otsida. 1266 01:32:21,630 --> 01:32:25,030 Võite otsida erinevaid stringid, kuid niite sageli korrata. 1267 01:32:25,030 --> 01:32:27,640 Nii et see on üldiselt raske lugeda. 1268 01:32:27,640 --> 01:32:33,810 Me lihtsalt vaatasin TC-kest mees lehekülg veidi enne leida eval käsu. 1269 01:32:33,810 --> 01:32:36,610 Mõned asjad lähevad kiiremini. 1270 01:32:36,610 --> 01:32:38,860 Üks võimalus on otsida string. 1271 01:32:38,860 --> 01:32:40,360 Võite kasutada piipar. 1272 01:32:40,360 --> 01:32:49,080 Piipar on kaldkriipsuga otsima käsu või stringi sees piipar operatsioon. 1273 01:32:49,080 --> 01:32:52,830 Man vaikimisi kasutab piiparid, kas rohkem või vähem. 1274 01:32:52,830 --> 01:32:56,560 Ma ei tea, kas te olete juba tuttav neile, kuid need ei näita faile vähehaaval. 1275 01:32:56,560 --> 01:33:00,550 Olen olnud kasutades vähem näidata nende konkreetsete failide meil siin. 1276 01:33:00,550 --> 01:33:03,300 Võite otsida seal sees. 1277 01:33:03,300 --> 01:33:04,880 Võite proovida kasutada erinevaid search strings. 1278 01:33:04,880 --> 01:33:08,420 Ka mees lehekülgi erinevate operatsioonisüsteemide ei pruugi olla sama. 1279 01:33:08,420 --> 01:33:11,130 Nad võivad olla eraldi lehekülgi csh ja Tcsh. 1280 01:33:11,130 --> 01:33:14,500 Nad ei ole Mac, kuid nad võivad olla, kui need on eraldi käske. 1281 01:33:14,500 --> 01:33:19,000 Kui SH tegelikult ei helista Bash, siis ilmselt oleks eraldi mees lehele. 1282 01:33:19,000 --> 01:33:25,820 Mõned süsteemid on eraldi inimene lehekülge just C-shell sisseehitatud käske. 1283 01:33:25,820 --> 01:33:30,250 Mõnikord, kui soovite lugeda kirjeldust sisseehitatud käsk 1284 01:33:30,250 --> 01:33:35,350 see on ka tee, nagu kaja, pead lugema man-lehekülg, et käsk echo 1285 01:33:35,350 --> 01:33:37,610 otsustada, kuidas see toimib nagu sisseehitatud käsu 1286 01:33:37,610 --> 01:33:39,760 isegi kui sa ei helista sisseehitatud käsk. 1287 01:33:41,630 --> 01:33:46,090 See on puuduseks operatsioonisüsteemi üldiselt mitte ainult kestad, 1288 01:33:46,090 --> 01:33:50,710 kuigi kestad eriti man-lehekülgi on üsna pikk, 1289 01:33:50,710 --> 01:33:56,180 osaliselt seetõttu, et nad lisanud kasulikke funktsioone neile, mis võib olla positiivne. 1290 01:33:56,180 --> 01:34:00,290 Okei. Kas on küsimusi? Kõik teemad, mida soovite tuua? 1291 01:34:00,290 --> 01:34:03,390 Midagi siin oluline? 1292 01:34:04,540 --> 01:34:07,100 Noh, see on olnud väga tore sinuga rääkida kõik. 1293 01:34:07,100 --> 01:34:09,690 Loodan, et teil on midagi sellest seminar 1294 01:34:09,690 --> 01:34:13,080 mis on kasulik teile oma tulevikku püüab. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]