1 00:00:00,000 --> 00:00:02,320 >> [Seminaar - Unix Shells, omgewings] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard Universiteit] 3 00:00:04,180 --> 00:00:07,160 [Hierdie is CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Vandag se onderwerp is die Unix dop. 5 00:00:12,770 --> 00:00:20,600 Ek is Douglas Kline, kenner, of ten minste redelik bevoegde gebruiker van die dop. 6 00:00:20,600 --> 00:00:25,280 'N dop is die koppelvlak vir die gebruiker om die rekenaar se bedryfstelsel. 7 00:00:25,280 --> 00:00:29,580 Die naam is misleidend as, in teenstelling met 'n dier se dop, 8 00:00:29,580 --> 00:00:34,890 wat is hard en beskermende, die rekenaar dop vir die kommunikasie. 9 00:00:34,890 --> 00:00:39,120 So poreuse membraan sou waarskynlik 'n beter metafoor. 10 00:00:39,120 --> 00:00:44,500 >> Die oorspronklike dop vir Unix is ​​die Bourne dop. 11 00:00:44,500 --> 00:00:46,450 Bourne gespel B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne was een van die oorspronklike skrywers van Unix, 13 00:00:49,770 --> 00:00:51,700 En so het die dop is na hom vernoem. 14 00:00:51,700 --> 00:00:54,850 Die naam van die dop as 'n opdrag is eenvoudig net SH. 15 00:00:54,850 --> 00:00:57,400 Dit is die opdrag wat jy kan voer. 16 00:00:57,400 --> 00:01:00,810 Die dop begin by inskrywing. 17 00:01:00,810 --> 00:01:04,459 Wanneer jy inteken op die rekenaar, die dop net begin hardloop vir jou, 18 00:01:04,459 --> 00:01:06,820 en dit is wat neem jou opdragte. 19 00:01:06,820 --> 00:01:09,790 Dit kan begin by ander tye ook. 20 00:01:09,790 --> 00:01:16,780 As jy bring 'n venster met geen ander aanduiding is, sal dit 'n dop vir jou begin. 21 00:01:16,780 --> 00:01:20,450 Dit is hoe dit is dat jy kan gaan na 'n venster en begin tik opdragte 22 00:01:20,450 --> 00:01:23,960 en so is daar weer selfs al is jy nie teken het in daardie venster. 23 00:01:23,960 --> 00:01:26,670 Verder, as jy 'n afgeleë login doen, 24 00:01:26,670 --> 00:01:30,250 dan sal dit 'n dop begin op die afgeleë rekenaar. 25 00:01:30,250 --> 00:01:44,310 En dit is moontlik opdragte uit te voer sonder 'n interaktiewe dop. 26 00:01:44,310 --> 00:01:48,990 Dit kan jou huidige werking bedoel, 27 00:01:48,990 --> 00:01:50,700 en dit kan ook beteken dat 'n afgeleë operasie. 28 00:01:50,700 --> 00:01:52,900 Jy kan 'n bevel stuur na 'n ander rekenaar, 29 00:01:52,900 --> 00:01:55,460 Dit sluit die oprigting van 'n dop daar. 30 00:01:55,460 --> 00:01:57,760 Trouens, dit het in te sluit die oprigting van 'n dop daar 31 00:01:57,760 --> 00:02:01,740 selfs al is dit nie die finale doel. 32 00:02:05,310 --> 00:02:12,350 Wanneer iets begin het soos hierdie, beteken dit nie noodwendig 'n nuwe dop. 33 00:02:12,350 --> 00:02:17,430 As jy bring 'n nuwe venster, is dit moontlik om dit te vertel te bring 'n redakteur 34 00:02:17,430 --> 00:02:18,940 of 'n ander opdrag. 35 00:02:18,940 --> 00:02:20,560 In daardie geval, sal die redakteur van nuuts af begin. 36 00:02:20,560 --> 00:02:22,930 Wanneer die redakteur eindig, die venster eindig. 37 00:02:22,930 --> 00:02:24,620 Dit is 'n bietjie ongewoon, maar dit kan gedoen word. 38 00:02:24,620 --> 00:02:27,140 In sulke gevalle is, sal dit nie wees om 'n dop. 39 00:02:27,140 --> 00:02:31,890 So is dit nie noodwendig die geval dat 'n venster of 'n so 'n aansoek sal bring 'n dop. 40 00:02:31,890 --> 00:02:34,030 >> Shell ontleed opdragte. 41 00:02:34,030 --> 00:02:40,900 Parsing beteken die identifisering van die verskillende elemente en die klassifikasie van hulle. 42 00:02:40,900 --> 00:02:43,470 Binne 'n bevel, die volledige string wat jy tik, 43 00:02:43,470 --> 00:02:47,310 Daar sal 1 of meer enkele opdragte wat uitgevoer moet word. 44 00:02:47,310 --> 00:02:50,050 Ander elemente kan wees argumente. 45 00:02:50,050 --> 00:02:55,020 Daar kan ook spesiale karakters wat invloed op die uitvoering van 'n opdrag. 46 00:02:55,020 --> 00:02:59,710 Hulle kan die uitset iewers anders as die skerm stuur 47 00:02:59,710 --> 00:03:01,750 As die opdrag gewoonlik sou dit stuur na die skerm. 48 00:03:01,750 --> 00:03:04,390 Dit kan insette lei, maar dit kan ook ander dinge. 49 00:03:04,390 --> 00:03:08,120 Daar is verskeie ander simbole, karakters, en so meer. 50 00:03:08,120 --> 00:03:13,600 Parsing behels die opsporing en die interpretasie van daardie dinge. 51 00:03:13,600 --> 00:03:19,560 >> Nou as daar nie meer vrae, wat is eerder geneig want daar is nie meer mense, 52 00:03:19,560 --> 00:03:24,620 ons gaan op na my volgende bladsy hier. 53 00:03:24,620 --> 00:03:29,170 >> Ek het vroeër gesê dat die Bourne dop is die aanvanklike dop. 54 00:03:29,170 --> 00:03:31,550 Daar is ook ander. 55 00:03:31,550 --> 00:03:34,520 Een daarvan is die C-dop. Die opdrag is csh. 56 00:03:34,520 --> 00:03:36,830 Die naam C-dop is net 'n spel op woorde. 57 00:03:36,830 --> 00:03:41,260 Dit dop is ingestel met Berkeley Unix in die middel van die 1970's. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix was 'n seminale gebeurtenis in die ontwikkeling van Unix. 59 00:03:44,830 --> 00:03:48,770 Dit was 'n groot revolusie en die bekendstelling van hierdie dop. 60 00:03:48,770 --> 00:03:50,790 Die rede hiervoor is dat die spel op woorde, C-dop, 61 00:03:50,790 --> 00:03:56,490 is dat die C-dop het 'n paar eienskappe in dit wat lyk soos die C-taal, 62 00:03:56,490 --> 00:03:59,740 wat die Bourne shell het nie - 63 00:03:59,740 --> 00:04:02,140 of dit het nie op daardie tydstip. 64 00:04:02,140 --> 00:04:05,190 Daar is ook die TC-dop. 65 00:04:05,190 --> 00:04:07,360 Dit is 'n superstel van die C-dop. 66 00:04:07,360 --> 00:04:11,470 Dit het bykomende funksies, baie van wat nuttig is vir interaktiewe gebruik, 67 00:04:11,470 --> 00:04:16,050 soos herinner opdragte in die geskiedenis meganisme, 68 00:04:16,050 --> 00:04:18,459 wat ek sal 'n bietjie later beskryf - 69 00:04:18,459 --> 00:04:23,120 in 'n eenvoudige manier, na die model van 'n redakteur. 70 00:04:23,120 --> 00:04:29,170 Dit het ook bindings wat toelaat dat jy 'n kort sleutel string na 'n langer opdrag te bind. 71 00:04:29,170 --> 00:04:31,440 Ons gaan nie te wees om in vandag. 72 00:04:31,440 --> 00:04:33,650 Dit het 'n paar eienskappe wat nuttig is vir ontwikkeling. 73 00:04:33,650 --> 00:04:37,020 Tog is die C-dop nie dikwels gebruik vir die dop ontwikkeling. 74 00:04:37,020 --> 00:04:39,080 Shell programme, as jy nie reeds weet, 75 00:04:39,080 --> 00:04:41,690 is programme wat bestaan ​​uit dop eienskappe. 76 00:04:41,690 --> 00:04:43,220 Jy kan hardloop dit as programme. 77 00:04:43,220 --> 00:04:46,760 Jy skryf 'n klomp van die tolk opdragte in 'n lêer en die lêer uit te voer. 78 00:04:46,760 --> 00:04:49,760 Jy hoef nie om dit te stel. Dit is 'n interpretatiewe taal. 79 00:04:49,760 --> 00:04:57,320 Die frase C-dop is nou dubbelsinnig omdat dit net kan verwys na die oorspronklike C-dop, csh, 80 00:04:57,320 --> 00:05:01,200 of aan alle C-skulpe, insluitend tcsh. Dit is 'n bietjie dubbelsinnig. 81 00:05:01,200 --> 00:05:08,250 >> 'N later dop is die Korn dop, ksh, vernoem na die programmeerder, Korn. 82 00:05:08,250 --> 00:05:14,160 Dit dop poging te neem in 1 dop 83 00:05:14,160 --> 00:05:16,960 die voordele van die C-dop vir interaktiewe gebruik 84 00:05:16,960 --> 00:05:19,230 en die Bourne dop vir ontwikkeling. 85 00:05:19,230 --> 00:05:25,440 Dit is gebruik as 'n interaktiewe dop deur sommige mense - 'n minderheid. 86 00:05:25,440 --> 00:05:32,050 Later egter, was daar 'n ander instelling, die Shell, bash, 87 00:05:32,050 --> 00:05:35,290 weer 'n spel op woorde, Bourne-weer dop. 88 00:05:35,290 --> 00:05:43,830 Dit is 'n uitbreiding van die Bourne dop. Korn dop is ook. Beide van hulle is. 89 00:05:43,830 --> 00:05:48,100 Dit het dieselfde doelstellings van die Korn dop van samevoeging van die C-Shell se 90 00:05:48,100 --> 00:05:50,980 en Bourne Shell se voordele in 1 dop. 91 00:05:50,980 --> 00:05:56,810 Baie van die versterking van die Korn dop is ook ingesluit in Bash. 92 00:05:56,810 --> 00:06:00,710 Bash egter, het meer en is dus verkieslik. 93 00:06:00,710 --> 00:06:05,180 Die Bourne-weer dop en die Korn dop is Bourne-tipe doppe genoem 94 00:06:05,180 --> 00:06:07,730 omdat hulle sluit die Bourne Shell se eienskappe, 95 00:06:07,730 --> 00:06:11,180 wat in stryd is in sommige opsigte met C-skulpe. 96 00:06:11,180 --> 00:06:15,520 Daar is ander doppe behalwe dié, 'n paar wat bedoel is vir beperkte gebruik, 97 00:06:15,520 --> 00:06:20,670 Miskien beperk tot sommige opdragte, miskien gespesialiseerde doeleindes, nie dikwels gebruik nie. 98 00:06:20,670 --> 00:06:24,240 >> Goed. Volgende item hier. 99 00:06:31,300 --> 00:06:38,970 Die Shell geword het wat verband hou met verskillende vorme van Linux. 100 00:06:38,970 --> 00:06:41,550 Ek is nie seker of dit waar is van elke vorm. 101 00:06:41,550 --> 00:06:43,280 Daar is baie vorms daar buite en ek het nie gebruik word om hulle almal, 102 00:06:43,280 --> 00:06:46,870 Maar in daardie wat ek gebruik het om dit wat daarmee gepaard gaan word. 103 00:06:46,870 --> 00:06:49,670 So ver as wat ek weet, is daar niks oor Bash 104 00:06:49,670 --> 00:06:52,210 Dit maak dit nie meer versoenbaar is met Linux 105 00:06:52,210 --> 00:06:55,020 as enige ander kombinasie van Shell en bedryfstelsel. 106 00:06:55,020 --> 00:06:59,690 Ek dink dit is waarskynlik net weerspieël die neigings van die programmeerders. 107 00:06:59,690 --> 00:07:07,500 Dat dit geassosieer word met Linux is 'n ander rede Bash te verkies om ksh 108 00:07:07,500 --> 00:07:11,820 sedert dinge is geneig om in dit geskryf word en dit is geneig om te versprei. 109 00:07:11,820 --> 00:07:15,410 Ek gee jou ander redes vir daardie later. 110 00:07:15,410 --> 00:07:21,330 Bourne dop skrifte moet hardloop onder die Korn dop of Bash. 111 00:07:21,330 --> 00:07:22,650 As jy iets vir die Bourne dop skryf, 112 00:07:22,650 --> 00:07:26,180 jy kan waarskynlik voer dit onder ksh of bash. 113 00:07:26,180 --> 00:07:30,610 Korn dop skrifte sal waarskynlik hardloop onder Bash, maar ek kan nie waarborg dat. 114 00:07:30,610 --> 00:07:36,040 Later hier, moet C-dop skrifte loop onder die TC-dop. 115 00:07:38,850 --> 00:07:41,690 Die C-dop was eintlik nooit op groot skaal gebruik vir script 116 00:07:41,690 --> 00:07:48,110 sedert die Bourne Shell en later die Bourne-tipe doppe was beter vir daardie doel. 117 00:07:48,110 --> 00:07:50,620 So wat werklik is nie al wat belangrik is. 118 00:07:50,620 --> 00:07:53,480 Daar is nogal 'n baie Bourne dop skrifte wat lank gelede geskryf is, 119 00:07:53,480 --> 00:07:56,860 voor die Korn dop of die Bourne-weer dop is ingestel. 120 00:07:56,860 --> 00:07:59,300 Dit is nog steeds in gebruik is, deel van die bedryfstelsel, 121 00:07:59,300 --> 00:08:01,590 en so sal jy hulle vind as jy kyk na die bedryfstelsel 122 00:08:01,590 --> 00:08:03,760 of 'n paar ou ontwikkeling pakkette. 123 00:08:03,760 --> 00:08:12,840 >> Bash is tot 'n mate om 'n soort van omgangstaal vir bedryfstelsels. 124 00:08:12,840 --> 00:08:17,580 Dit is reeds uitgebrei na Windows en VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, in geval jy nie weet nie, is 'n eie bedryfstelsel 126 00:08:20,440 --> 00:08:25,480 Digitale Equipment Corporation, wat steeds in gebruik is, grootliks agter die skerms. 127 00:08:25,480 --> 00:08:29,250 En as dit gaan om te loop op verskillende bedryfstelsels, 128 00:08:29,250 --> 00:08:31,110 waarskynlik die mense is geneig om te skuif, want dit. 129 00:08:31,110 --> 00:08:33,840 Maar hierdie ontwikkeling is relatief onlangse. 130 00:08:33,840 --> 00:08:39,490 Dit is net die begin, so ek kan nie voorspel of dit sal uitdraai om werklik wees dat die soort van omgangstaal. 131 00:08:39,490 --> 00:08:43,539 Ook, omdat die lêer padnamen en biblioteke verskil 132 00:08:43,539 --> 00:08:46,210 tussen die verskillende bedryfstelsels, 133 00:08:46,210 --> 00:08:50,250 jy mag nie in staat wees om 'n bash script op een bedryfstelsel te skryf 134 00:08:50,250 --> 00:08:51,840 en dan loop dit op 'n ander een. 135 00:08:51,840 --> 00:08:54,440 Jy moet in staat wees om dit te skuif tussen verskillende Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS bedryfstelsels, maar nie noodwendig op Windows of VMS. 137 00:08:59,020 --> 00:09:01,390 Jy het dalk 'n lêer padnaam beskrywings te verander, 138 00:09:01,390 --> 00:09:03,180 en sommige biblioteke kan anders wees, 139 00:09:03,180 --> 00:09:05,230 wat die manier waarop sommige opdragte werk affekteer 140 00:09:05,230 --> 00:09:09,730 of hoe hulle verwerk argumente en dies meer. 141 00:09:09,730 --> 00:09:19,230 Behalwe dat 'n ander waarskuwing hier is dat daar geen waarborg 142 00:09:19,230 --> 00:09:23,570 dat al die verskillende doppe wat ek genoem het - Bourne dop, C-dop, 143 00:09:23,570 --> 00:09:29,880 TC-dop, Korn dop, Bourne-weer dop - sal onder geen Unix beskikbaar wees 144 00:09:29,880 --> 00:09:33,750 of Linux of Mac OS rekenaar. 145 00:09:33,750 --> 00:09:35,620 Hulle kan eenvoudig nie daar wees nie. 146 00:09:35,620 --> 00:09:38,300 Dit is een van die waarsku hier. 147 00:09:38,300 --> 00:09:41,490 Dit is 'n ongelukkige beperking hier omdat jy wil dinge om oral werk, 148 00:09:41,490 --> 00:09:44,380 maar ongelukkig is, kan jy nie staatmaak op dit. 149 00:09:44,380 --> 00:09:47,230 >> Goed. Volgende een hier. 150 00:09:50,280 --> 00:09:54,370 Kom ons sê dat jy 'n dop script te skryf, 151 00:09:54,370 --> 00:09:57,170 'n program wat bestaan ​​uit tolk opdragte. 152 00:09:57,170 --> 00:10:01,200 Jy skryf jou opdragte, sit hulle in 'n lêer en die lêer uit te voer. 153 00:10:01,200 --> 00:10:04,230 Wat gebeur as jy wil argumente in te sluit? 154 00:10:04,230 --> 00:10:09,650 In die geval van die dop bedrywighede word argumente parameters of posisionele parameters genoem 155 00:10:09,650 --> 00:10:15,940 en hulle sal deur 'n dollar teken en getal, $ 1, $ 2 genoem word. 156 00:10:15,940 --> 00:10:27,000 So as die script het hierdie naam, dalk my eerste argument argument 1 wees 157 00:10:27,000 --> 00:10:30,540 en my tweede argument kan wees 2, 158 00:10:30,540 --> 00:10:34,110 en binnekant my script as ek wil om te verwys na hierdie dinge - 159 00:10:34,110 --> 00:10:36,810 laat se vee dit omdat ek nie regtig gaan om dit te doen - 160 00:10:36,810 --> 00:10:42,160 binne my script ek $ 1 kan hê om te verwys na arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, wat sal kom uit die manier, arg2. 162 00:10:45,890 --> 00:10:50,080 So diegene simbole is beskikbaar om te verwys na argumente, 163 00:10:50,080 --> 00:10:52,390 en dié van toepassing op al die skulpe. 164 00:10:52,390 --> 00:10:56,520 Daarbenewens is daar die ander karakters. 165 00:10:56,520 --> 00:11:01,700 $ * Verwys na die hele argument lys, almal van hulle. 166 00:11:01,700 --> 00:11:05,390 $ # Verwys na die aantal argumente. 167 00:11:05,390 --> 00:11:07,910 Weereens, dit is van toepassing op al die skulpe. 168 00:11:07,910 --> 00:11:15,540 Diegene simbole, * en #, kan gebruik word om met dié betekenis in ander plekke ook. 169 00:11:15,540 --> 00:11:17,940 Ons sal nie wees om in daardie. 170 00:11:17,940 --> 00:11:20,460 >> Shell specific line. Wat is dit vir? 171 00:11:20,460 --> 00:11:27,760 Kom ons sê jy 'n script geskryf het en dit is vir 'n spesifieke dop en jy wil dit uit te voer. 172 00:11:27,760 --> 00:11:33,500 Hoe weet jy wat dop jou bedryfstelsel sal gebruik om jou script uit te voer? 173 00:11:33,500 --> 00:11:37,230 Op 'n stadium kon jy aanvaar dat hy dit sou loop in die Bourne dop 174 00:11:37,230 --> 00:11:39,440 as jy nie anders sê nie, 175 00:11:39,440 --> 00:11:41,730 maar die mense is nie die skryf van skrifte in die Bourne dop wat veel meer 176 00:11:41,730 --> 00:11:43,750 en jy kan nie eens vertrou dat nie. 177 00:11:43,750 --> 00:11:48,740 So hier het ons 'n dop specific line reg hier. 178 00:11:48,740 --> 00:11:52,450 Dit spesifiseer Bash. 179 00:11:52,450 --> 00:11:56,750 Let daarop dat dit bepaal dit in die padnaam, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 As 'n rekenaar het die Shell, maar nie in die bin gids / bin, dit sal nie werk nie. 181 00:12:02,870 --> 00:12:06,870 Dit is 'n ander deelnemer, 'n ander waarskuwing hier. 182 00:12:06,870 --> 00:12:09,500 Die pond teken is die kommentaar lyn karakter. 183 00:12:09,500 --> 00:12:12,300 Dit geld vir alle doppe. 184 00:12:12,300 --> 00:12:18,610 Die spesifieke geval hier, #! aan die begin van 'n script, is 'n spesiale geval. 185 00:12:18,610 --> 00:12:23,410 Dit spesifiseer die dop waarin die script uit te voer. 186 00:12:23,410 --> 00:12:30,230 Soos ek gesê het, is dit dalk nie op dieselfde plek / bin. 187 00:12:30,230 --> 00:12:34,880 Daarbenewens is daar is 'n ander ding hier. 188 00:12:34,880 --> 00:12:41,250 As jy net gebruik om die pond teken met geen uitroepteken en padnaam, 189 00:12:41,250 --> 00:12:44,640 wat moet dui op 'n C-dop. 190 00:12:44,640 --> 00:12:48,300 Maar ek raai nie om dit te doen, want ek is nie in staat om te verseker 191 00:12:48,300 --> 00:12:49,750 dat wat altyd sal werk. 192 00:12:49,750 --> 00:12:52,220 As jy wil 'n C-dop, sou dit beter wees om dit te sê. 193 00:12:52,220 --> 00:12:58,450 Dan is daar iets eerder verwarrend hier. 194 00:12:58,450 --> 00:13:03,940 As jy 'n dop specific line soos / bin / bash 195 00:13:03,940 --> 00:13:07,070 en dat die dop nie beskikbaar is nie daar nie, 196 00:13:07,070 --> 00:13:10,680 daar is nie so iets soos / bin / bash op die spesifieke rekenaar, 197 00:13:10,680 --> 00:13:14,330 óf omdat dit nie Bash of omdat dit in 'n ander plek, 198 00:13:14,330 --> 00:13:17,450 jy 'n fout wat jy vertel dat die script wat jy het nie bestaan ​​nie kry. 199 00:13:17,450 --> 00:13:21,510 En natuurlik jou script bestaan, so die fout boodskap is verwarrend. 200 00:13:21,510 --> 00:13:24,810 Die rede is dat die bedryfstelsel gee jy die fout 201 00:13:24,810 --> 00:13:28,370 of, meer akkuraat, dat jou interaktiewe dop waarin jy loop dit gee die fout, 202 00:13:28,370 --> 00:13:33,510 is dat dit verslae van die opdrag wat jy gebruik, wat is die naam van die skrif. 203 00:13:33,510 --> 00:13:36,920 Daardie bevel effektief die dop genoem deur die naam van die skrif. 204 00:13:36,920 --> 00:13:39,330 Dit is waar jy wat verwarrend fout boodskap. 205 00:13:39,330 --> 00:13:42,980 Nog 'n manier dop script om te bel 206 00:13:42,980 --> 00:13:45,910 is deur die spesifiseer van die dop op die command line, as hier. 207 00:13:45,910 --> 00:13:52,510 Dit is 'n opdrag. Dit sê hardloop Bash en dan hardloop my script in Bash. 208 00:13:52,510 --> 00:13:55,680 Dit sal voorrang geniet bo 'n specific line, 209 00:13:55,680 --> 00:14:02,090 en dit het die funksie van die sodat jy voorsiening te maak vir verskillende padnamen. 210 00:14:02,090 --> 00:14:04,840 As jy net 'n bevel kan word, sal die bedryfstelsel kyk vir hierdie bevel 211 00:14:04,840 --> 00:14:06,410 in verskeie plekke. 212 00:14:06,410 --> 00:14:08,820 As dit beskikbaar is, moet hy dit vind. 213 00:14:08,820 --> 00:14:12,290 Die rekenaar sal Bash vind waar dit geleë is en loop dit, 214 00:14:12,290 --> 00:14:15,470 sodat jy nie nodig het nie, dan bekommerd wees oor waar dit bevind dat dit te wees. 215 00:14:15,470 --> 00:14:17,360 Daar is moontlik ander probleme hier, 216 00:14:17,360 --> 00:14:20,830 asof daar meer as 1 weergawe van Bash, wat moontlik is, hoewel dit onwaarskynlik. 217 00:14:20,830 --> 00:14:23,540 So dit is 'n ander manier om te gaan met hierdie dinge. 218 00:14:23,540 --> 00:14:30,480 Specific lyne kan enige dop noem. 219 00:14:30,480 --> 00:14:34,480 Hulle kan ook 'n beroep dinge anders as doppe. 220 00:14:34,480 --> 00:14:37,940 Voorbeelde Ek het hier sed, wat is die stroom editor; 221 00:14:37,940 --> 00:14:39,900 AWK, wat is 'n patroon verwerking van taal; 222 00:14:39,900 --> 00:14:43,680 en perl, 'n baie hoogs ontwikkelde script taal. 223 00:14:43,680 --> 00:14:47,570 As jy 'n specific line dui een van die programme aan die begin, 224 00:14:47,570 --> 00:14:51,270 dit sal direk in die program, eerder as die begin van 'n dop. 225 00:14:51,270 --> 00:14:54,030 Hierdie programme het perke aan hul vermoëns. 226 00:14:54,030 --> 00:14:58,790 Perl is baie bekwaam. Sed is 'n redakteur. Dit kan dinge doen as net redigering. 227 00:14:58,790 --> 00:15:03,300 Maar dit kan moeilik om te program. 228 00:15:03,300 --> 00:15:09,670 Daarbenewens, verby argumente en dinge te script of onmoontlik is of verwarrend. 229 00:15:09,670 --> 00:15:15,030 So in daardie gevalle, met AWK of sed, dit is, ten minste in my ervaring, 230 00:15:15,030 --> 00:15:18,910 verkieslik 'n dop script en oproep AWK te skryf of sed uit die dop script 231 00:15:18,910 --> 00:15:24,660 eerder as 'n beroep AWK of sed as die script specific line. 232 00:15:24,660 --> 00:15:26,980 Perl is 'n hoogs gediversifiseerde taal, soos ek gesê het. 233 00:15:26,980 --> 00:15:30,050 Jy kan nie interaktiewe opdragte loop in Perl, 234 00:15:30,050 --> 00:15:32,660 wat beteken dat jy nie dele van skrifte wat jy ontwikkel kan toets 235 00:15:32,660 --> 00:15:33,970 deur die loop van hulle interaktief. 236 00:15:33,970 --> 00:15:36,160 Dit is egter 'n uiters bekwame taal 237 00:15:36,160 --> 00:15:40,960 en het ontwikkel tot 'n baie wyd gebruik hulpmiddel. 238 00:15:40,960 --> 00:15:45,720 Dit is net 'n bietjie van 'n hakies opmerking oor die specific lyne. 239 00:15:45,720 --> 00:15:50,610 >> In alle of die meeste vorme van Linux - weer, ek kan nie seker wees dat alles wees - 240 00:15:50,610 --> 00:15:57,900 en in Mac OS, as jy tik csh jy tcsh, 241 00:15:57,900 --> 00:16:00,570 en as jy tik sh jy bash. 242 00:16:00,570 --> 00:16:05,020 Hulle is daar probeer om te gee wat jy die meer gevorderde weergawes van hierdie skulpe, 243 00:16:05,020 --> 00:16:07,940 maar dit kan verwarrend wees. 244 00:16:07,940 --> 00:16:16,720 As jy 'n script gebruik tcsh skryf of Bash funksies terwyl roeping csh of k 245 00:16:16,720 --> 00:16:22,230 en dan probeer om dit uit te voer op 'n rekenaar wat nie tcsh of Bash, 246 00:16:22,230 --> 00:16:25,050 jy kan kry 'n paar foute as daar opdragte in daar 247 00:16:25,050 --> 00:16:27,970 wat die doppe nie erken nie. 248 00:16:27,970 --> 00:16:34,120 Daarbenewens kan jy genoem het tot jou dop op jou plaaslike rekenaar 249 00:16:34,120 --> 00:16:37,700 noem dit as SH of csh en dan kry die meer gevorderde doppe. 250 00:16:37,700 --> 00:16:41,440 Jy kan nie eens dink aan die feit dat jy met behulp van die meer gevorderde dop. 251 00:16:41,440 --> 00:16:45,670 So, dit is 'n potensiële slaggat. 252 00:16:45,670 --> 00:16:50,290 Hoe is dit vasgestel dat as jy tik sh jy Bash, 253 00:16:50,290 --> 00:16:55,580 As jy tik csh jy tsch? 254 00:16:55,580 --> 00:16:59,940 Daar is dinge wat in hierdie rekenaars genoem skakels 255 00:16:59,940 --> 00:17:06,460 wat kan koppel name in te dien om te verwys na dieselfde ding. 256 00:17:06,460 --> 00:17:12,180 Dit kan óf 2 name vir dieselfde lêer of 'n lêer waarvan die doel is om te verwys na 'n ander lêer. 257 00:17:12,180 --> 00:17:17,550 Hulle is geroep hard en simboliese skakels. Ons sal nie gaan nie in daardie nie vandag. 258 00:17:17,550 --> 00:17:21,619 Daar kan ook afsonderlike lêers - 1 lêer SH, 1 lêer Bash - 259 00:17:21,619 --> 00:17:23,880 maar hulle albei loop Bash. 260 00:17:23,880 --> 00:17:29,350 Dan is daar nog 'n kwalifiseerder hier. 261 00:17:29,350 --> 00:17:42,640 As jy 'n beroep een van hierdie skulpe deur een naam, 262 00:17:42,640 --> 00:17:46,640 jy dink jy wil dieselfde funksie kry as noem dit 'n ander naam. 263 00:17:46,640 --> 00:17:49,700 Wel, wat eintlik is nie noodwendig waar nie. 264 00:17:49,700 --> 00:17:55,020 Hierdie opdragte kan die naam wat hulle genoem ondersoek 265 00:17:55,020 --> 00:18:00,020 en hulle kan, op grond van die naam, anders optree. 266 00:18:00,020 --> 00:18:02,740 Daar mag kwessies van probeer om te voldoen aan 'n standaard. 267 00:18:02,740 --> 00:18:06,060 Sommige van julle het seker al gehoor van die POSIX-standaard of 'n ander, 268 00:18:06,060 --> 00:18:08,730 Miskien ander funksies. 269 00:18:08,730 --> 00:18:14,520 Dit kan soms deur command line argumente gekies word 270 00:18:14,520 --> 00:18:17,310 of deur die opstel van die dop veranderlikes. 271 00:18:17,310 --> 00:18:22,170 Noem dit as SH of bash kan eintlik lei tot 'n ander uitvoering 272 00:18:22,170 --> 00:18:25,300 selfs al is dit dieselfde lêer wat jy uitvoer. 273 00:18:25,300 --> 00:18:31,800 Nog 'n ding om te oorweeg, is dat selfs as 'n ander rekenaar het tcsh of Bash, 274 00:18:31,800 --> 00:18:35,310 As hulle nie gekoppel word as hulle op jou plaaslike rekenaar 275 00:18:35,310 --> 00:18:37,990 as jy 'n Linux of Mac OS plaaslike rekenaar, 276 00:18:37,990 --> 00:18:45,630 dan weer jy sal die dop wat jy noem SH of csh, nie die een wat jy kan verkies te kry. 277 00:18:50,430 --> 00:19:01,130 Die huidige Bourne dop uitbreidings van minder as dié in Bash 278 00:19:01,130 --> 00:19:06,100 maar die verlede wat in die oorspronklike Bourne dop. 279 00:19:06,100 --> 00:19:09,690 As gevolg van dat, selfs die huidige Bourne dop, SH, 280 00:19:09,690 --> 00:19:14,560 selfs wanneer dit is nie Bash, lyk die C-taal meer is as die C-Shell. 281 00:19:14,560 --> 00:19:20,460 Dit was nie waar nie wanneer die C-dop vir die eerste keer geskep het, maar dit het op die manier ontwikkel. 282 00:19:20,460 --> 00:19:26,560 Jy kan hier sien dat al hierdie dop name, behalwe vir die Bourne dop 283 00:19:26,560 --> 00:19:30,640 iets om aan te dui wat hulle dop - csh, bash - 284 00:19:30,640 --> 00:19:32,550 Maar die Bourne dop is net k. 285 00:19:32,550 --> 00:19:34,910 Hoekom? Dit was die oorspronklike dop. 286 00:19:34,910 --> 00:19:37,770 Dit was die dop dan nie 'n dop, 287 00:19:37,770 --> 00:19:41,090 en aangesien dit die dop, daar is geen rede om dit te onderskei van 'n ander dop. 288 00:19:41,090 --> 00:19:45,030 So dit is waarom dit is dat die naam en nog steeds doen. 289 00:19:50,630 --> 00:19:58,990 >> Hierdie top hier is 'n lyn van 'n wagwoord databasis vir 'n rekening Ek het daar 290 00:19:58,990 --> 00:20:01,680 op 'n ander rekenaar. 291 00:20:01,680 --> 00:20:08,300 Ek gaan om te probeer om die naam te kry, sodat jy kan sien dat 'n deel aan die einde, die dop. 292 00:20:09,720 --> 00:20:15,450 Die wagwoord databasis hou met die aanmelding eienskappe vir al die gebruikers. 293 00:20:15,450 --> 00:20:20,330 Aan die begin is die rekening wat jy nou kan sien die laaste 2 letters van my. 294 00:20:20,330 --> 00:20:23,970 Die velde hier word geskei deur kommas. 295 00:20:23,970 --> 00:20:28,210 Die laaste veld, soos jy kan sien, is bin / tcsh, die dop. 296 00:20:28,210 --> 00:20:30,230 Dit is die dop specific. 297 00:20:30,230 --> 00:20:33,240 Daar is iets interessant hier. 298 00:20:33,240 --> 00:20:36,950 Wanneer Unix was die eerste ontwikkel het, was daar net 1 dop, 299 00:20:36,950 --> 00:20:38,350 so daar was geen ander keuse daar. 300 00:20:38,350 --> 00:20:45,570 So hoekom het hulle toelaat dat 'n veld in die wagwoord databasis 'n dop te spesifiseer? 301 00:20:45,570 --> 00:20:47,920 Ek weet nie, maar dit is gelukkig dat hulle gedoen het. 302 00:20:47,920 --> 00:20:52,030 Dit is nogal moeilik om die veranderinge in die wagwoord databasis-formaat te maak 303 00:20:52,030 --> 00:20:54,420 omdat baie programme verwys na die formaat 304 00:20:54,420 --> 00:20:57,720 en sal moet herskryf word. 305 00:20:57,720 --> 00:21:04,130 Dit is 'n gelukkige of toevallig ontwikkeling dat hulle ingesluit die gebied. 306 00:21:04,130 --> 00:21:12,780 Daardie soort van 'n wagwoord lêer lyn word gebruik op al Unix en Linux rekenaars so ver as wat ek weet. 307 00:21:12,780 --> 00:21:14,650 Die Mac het sy eie stelsel. 308 00:21:14,650 --> 00:21:17,810 Dit het eintlik 'n wagwoord lêer met die lyne in die formaat, 309 00:21:17,810 --> 00:21:21,060 maar dit is nie waar die gebruiker eienskappe gedefinieer word. 310 00:21:21,060 --> 00:21:24,200 Nog 'n opmerking hakies daar. 311 00:21:36,470 --> 00:21:46,020 >> As jy 'n dop roep, kan jy dit noem as 'n sub-dop van jou bestaande doppe. 312 00:21:46,020 --> 00:21:50,480 So as ek hier gaan, laat ons ontslae te raak van hierdie dinge. 313 00:21:50,480 --> 00:21:53,350 Hier is ek in die C-dop. 314 00:21:56,830 --> 00:22:01,200 Dit veranderlike, wat akkuraat my dop identifiseer, 315 00:22:01,200 --> 00:22:04,300 eintlik is nie altyd 'n betroubare manier om te bepaal wat die dop jy hardloop, 316 00:22:04,300 --> 00:22:06,220 maar in hierdie geval is dit. 317 00:22:06,220 --> 00:22:08,040 Wat as ek tik net - 318 00:22:09,970 --> 00:22:12,470 Nou is ek in Bash. 319 00:22:12,470 --> 00:22:19,540 Sommige dinge gaan dieselfde wees. LS vertel my bevele. 320 00:22:19,540 --> 00:22:24,500 As ek nie 'n skort terug na my C-dop, LS, dieselfde. Reg? 321 00:22:24,500 --> 00:22:28,890 FG, voorgrond, terug na my Shell. 322 00:22:28,890 --> 00:22:38,290 pwd, huidige gids, terug na die C-dop. 323 00:22:38,290 --> 00:22:43,180 pwd, ander gids - eintlik nie 'n ander gids in hierdie geval. 324 00:22:43,180 --> 00:22:45,110 Dit is dieselfde gids. 325 00:22:45,110 --> 00:22:50,000 Kom ons sê ek wil 'n opdrag om hier te noem: waar LS. 326 00:22:50,000 --> 00:22:52,140 Wat beteken dat jy doen? 327 00:22:52,140 --> 00:22:53,670 Dit sê vir my waar die LS beveel, 328 00:22:53,670 --> 00:22:56,670 die een wat gee my 'n gids notering, is geleë in LS. 329 00:22:56,670 --> 00:23:01,460 Kom ons gaan terug na Shell gaan. Kom ons probeer om dieselfde ding. 330 00:23:01,460 --> 00:23:05,830 Hmm, interessante daar waar: Opdrag nie gevind nie. 331 00:23:05,830 --> 00:23:07,400 Hoekom is dit? 332 00:23:07,400 --> 00:23:11,570 Die opdrag waar is gebou in die C-dop. 333 00:23:11,570 --> 00:23:15,630 Dit is nie 'n opdrag wat in die geheue van iewers anders te lees en uitgevoer word. 334 00:23:15,630 --> 00:23:20,310 Die C-dop loop dit deur die oordrag van die uitvoering te deel van sy eie kode 335 00:23:20,310 --> 00:23:22,790 en dit is nie in die Shell. 336 00:23:22,790 --> 00:23:25,710 So Bash, nie met so 'n ingeboude in bevel, lyk dit, het dit nie vind nie, 337 00:23:25,710 --> 00:23:27,720 en ons kry 'n fout. 338 00:23:27,720 --> 00:23:32,290 So daar het ons 'n Shell hardloop onder 'n C-dop, en ons noem dit 'n sub-dop. 339 00:23:32,290 --> 00:23:38,480 En net in geval jy nuuskierig, Shell het sy eie manier van die opspoor van opdragte. 340 00:23:38,480 --> 00:23:42,590 hashed verwys na die feit dat dit vinniger uitgevoer kan word, 341 00:23:42,590 --> 00:23:44,960 word vinniger gevind. 342 00:23:44,960 --> 00:23:48,610 Dit is een van die verbeterings in die gebou om 'n paar van hierdie skulpe. 343 00:23:50,220 --> 00:23:54,200 >> Bourne-tipe doppe word verkies vir ontwikkeling. 344 00:23:54,200 --> 00:23:57,300 Hulle het beheer strukture soos loops, voorwaardelike state, 345 00:23:57,300 --> 00:24:00,240 die soort van opdragte wat jy kan gebruik in programmeertale soos C 346 00:24:00,240 --> 00:24:04,190 of wat ook al taal. Miskien is jy programmering in Java of wat ook al. 347 00:24:04,190 --> 00:24:06,460 Doppe het diegene wat te. 348 00:24:06,460 --> 00:24:11,790 Die Bourne-tipe doppe, veral Bash, het meer 349 00:24:11,790 --> 00:24:15,730 en hulle is ontwerp om met 'n groter buigsaamheid. 350 00:24:15,730 --> 00:24:20,700 Die Shell het skikkings. Die oorspronklike Bourne dop nie. 351 00:24:20,700 --> 00:24:26,130 So wat kan aansienlik voordelig is vir ontwikkeling. 352 00:24:26,130 --> 00:24:29,810 Die C-Shell eintlik skikkings, maar het nie 'n groot deel van hierdie ander funksies. 353 00:24:29,810 --> 00:24:33,450 Die Bourne-tipe doppe sal vinniger uit te voer 354 00:24:33,450 --> 00:24:36,520 As hulle nie die eienskappe wat bedoel is vir interaktiewe gebruik. 355 00:24:36,520 --> 00:24:39,340 Jy laai dinge af een doel, dit laai hulle af vir 'n ander doel. 356 00:24:39,340 --> 00:24:41,520 Daar is dat die trade-off is daar. 357 00:24:41,520 --> 00:24:44,510 Die eienskappe wat bedoel is vir die interaktiewe gebruik 358 00:24:44,510 --> 00:24:46,920 regtig is van min of geen gebruik vir script. 359 00:24:46,920 --> 00:24:52,160 Dit is moontlik om 'n interaktiewe sub-dop om te gebruik, net soos die een wat ek daar begin 360 00:24:52,160 --> 00:24:57,780 uit te toets opdragte wat jy van plan is om te gebruik in 'n script. 361 00:24:57,780 --> 00:25:01,180 Dit is wat jy nie kan doen met Perl. Jy kan dit doen met die doppe. 362 00:25:01,180 --> 00:25:04,850 Selfs die strukture soos vir loops en so meer interaktief kan uitgevoer word. 363 00:25:04,850 --> 00:25:07,000 Hulle is soms nuttig om interaktief te hardloop, 364 00:25:07,000 --> 00:25:10,180 maar meer waarskynlik jy met hulle 'n script te ontwikkel. 365 00:25:15,690 --> 00:25:17,400 >> Aliassen. 366 00:25:17,400 --> 00:25:21,630 Dit gaan wees oor die C-dop. 367 00:25:23,270 --> 00:25:27,570 Geskiedenis meganisme waar jy terug na vroeër opdragte 368 00:25:27,570 --> 00:25:30,340 of dele van hulle wat jy reeds loop. 369 00:25:30,340 --> 00:25:33,680 Weereens, oor die C-dop, die Bourne shell en die Korn dop het hierdie dinge, 370 00:25:33,680 --> 00:25:35,620 maar ek gaan nie te kry in hulle. 371 00:25:35,620 --> 00:25:40,340 So hier is 'n paar nuttige aliasse wat ek het. 372 00:25:43,100 --> 00:25:44,880 In plaas van tik LS - dit is 'n gemeenskaplike bevel - 373 00:25:44,880 --> 00:25:47,620 tik net l en red jouself 1 karakter. 374 00:25:47,620 --> 00:25:50,600 LS met verskeie opsies, almal werk. 375 00:25:50,600 --> 00:25:54,460 Let daarop dat die definisies aanhalingstekens rondom hulle. 376 00:25:54,460 --> 00:25:57,520 In hierdie gevalle, die aanhalings is nie nodig nie. 377 00:25:57,520 --> 00:26:00,100 As jy dié aliasse kan definieer sonder die aanhalingstekens, sou dit nog steeds werk. 378 00:26:00,100 --> 00:26:02,910 Hulle word aanbeveel. 379 00:26:02,910 --> 00:26:04,900 Daar is situasies waar jy kan nie die aanhaling gebruik 380 00:26:04,900 --> 00:26:08,050 omdat jy iets om te gebeur wat die kwotasie sal voorkom wil. 381 00:26:08,050 --> 00:26:11,210 Soms kan jy deel van die definisie haal, maar nie alles nie. 382 00:26:11,210 --> 00:26:17,010 Dit is ook algemeen aanbeveel aanhalingstekens eerder as dubbel aanhalingstekens te gebruik. 383 00:26:17,010 --> 00:26:19,750 Double aanhalings uitwerking op veranderlike definisies, 384 00:26:19,750 --> 00:26:22,950 veral veroorsaak dat hulle eerder as om te stop dit geëvalueer word. 385 00:26:22,950 --> 00:26:25,910 Hoekom sal ons wil hê dat die evaluering te stop? 386 00:26:25,910 --> 00:26:28,710 En hoe aanhalings doen vir ons? 387 00:26:28,710 --> 00:26:32,600 >> Hier is 'n opdrag wat jy dalk interessant vind. 388 00:26:32,600 --> 00:26:35,470 'LS g *' 389 00:26:35,470 --> 00:26:37,640 g *, soos jy seker weet, is 'n wildcard uitdrukking 390 00:26:37,640 --> 00:26:40,290 vir al die lêer name wat begin met g. 391 00:26:40,290 --> 00:26:46,410 As ek skryf net in 'n opdrag LS g *, sal ek 'n lys van al die name kry in my huidige gids. 392 00:26:46,410 --> 00:26:50,870 As ek definieer wat alias as dit is hier met die aanhalings, 393 00:26:50,870 --> 00:26:56,990 dit sal loop wat opdrag in jou huidige gids waar jy loop nie. 394 00:26:56,990 --> 00:27:01,250 Maar as jy die alias definisie hardloop sonder die aanhalingstekens, 395 00:27:01,250 --> 00:27:09,620 dit sal die wildcard g * evalueer wanneer dit loop van hierdie definisie van opdrag. 396 00:27:09,620 --> 00:27:14,400 So het die definisie van die alias sal LS gevolg word deur die lys van lêers in die gids 397 00:27:14,400 --> 00:27:16,310 waarin die alias opdrag uitgevoer word, 398 00:27:16,310 --> 00:27:19,180 ongeag van waar jy eintlik van plan om die opdrag uit te voer. 399 00:27:19,180 --> 00:27:26,360 Dit is nie van veel te gebruik, en die enkele aanhalings verhoed dat die evaluering van die asterisk. 400 00:27:26,360 --> 00:27:30,780 Sodat jy net die definisie wese LS g *. 401 00:27:30,780 --> 00:27:35,510 Dan wanneer jy die alias, LGS, is dit dan stel dat uit. 402 00:27:35,510 --> 00:27:40,490 Nou is daar geen kwotasies, en dit sal die asterisk evalueer wanneer jy die alias opdrag. 403 00:27:40,490 --> 00:27:43,900 So dit is een ding. 404 00:27:43,900 --> 00:27:46,590 Dubbele aanhalingstekens sou dit dieselfde effek hier het, 405 00:27:46,590 --> 00:27:50,580 maar daar is ander gevalle waar dubbele aanhalingstekens sou nie so goed werk. 406 00:27:50,580 --> 00:27:52,450 >> Hier is 'n ander een. 407 00:27:52,450 --> 00:27:54,270 Jy mag weet van die grep opdrag. 408 00:27:54,270 --> 00:28:02,110 Die grep opdrag kan gebruik word om 'n lêer vir lyne wat sekere snare te scan. 409 00:28:02,110 --> 00:28:10,350 So laat ons gaan oor hier en ek sal verlaat my Bourne dop. 410 00:28:23,570 --> 00:28:25,450 Goed. Hier is 'n lêer. 411 00:28:25,450 --> 00:28:31,490 Kom ons sê dit is grep ABC snare. Daar is dit. 412 00:28:31,490 --> 00:28:37,930 As ek dit doen grep zddd, ek kry niks nie. Goed. 413 00:28:37,930 --> 00:28:40,960 Dit vind dus 'n string, dit verslae, dit nie kry nie, beteken dit nie dit rapporteer. 414 00:28:40,960 --> 00:28:44,930 Dit uitgange enige lyn wat dat string op dit. 415 00:28:44,930 --> 00:28:49,080 Daar is allerhande opsies hier wat jy kan vind in die dokumentasie. 416 00:28:49,080 --> 00:28:52,160 Hier is een manier om dit te doen nie. 417 00:28:52,160 --> 00:29:03,290 Wat van hierdie een, alias grabc 'grep ABC? 418 00:29:03,290 --> 00:29:09,000 Dit gaan 1 argument in te sluit wanneer die alias gedefinieer word. 419 00:29:09,000 --> 00:29:26,300 So as ek doen wat hier, nou as ek dit doen grabc, 420 00:29:26,300 --> 00:29:30,620 nou die alias sluit meer as die eenvoudige opdrag. Dit het ook die argument. 421 00:29:30,620 --> 00:29:32,190 Tot dusver wat werk. 422 00:29:32,190 --> 00:29:38,590 Ek het nog 'n opdrag hier, hierdie een, sodat die verskillende snare daar 423 00:29:38,590 --> 00:29:46,790 en wys dat dit nie iets vind daar omdat dit nie pas nie. 424 00:29:46,790 --> 00:29:56,180 >> Wat as ek wil in te sluit in die alias definisie die lêer wat ek gaan soek 425 00:29:56,180 --> 00:30:02,970 en ek wil 'n argument aan die alias die tou wat ek soek om te gee? 426 00:30:02,970 --> 00:30:08,040 Ek mag dalk wil ABC om te sê as die argument na my alias, 427 00:30:08,040 --> 00:30:10,870 Maar die alias reeds die lêer bepaal. 428 00:30:10,870 --> 00:30:15,710 En dit is waar hierdie uitdrukking kom in 429 00:30:20,430 --> 00:30:25,270 Let hier het ons grep net soos voorheen. 430 00:30:25,270 --> 00:30:28,130 Ons het die lêer hier, stringe. 431 00:30:28,130 --> 00:30:35,610 \! ^, Soort van 'n vreemde uitdrukking, dink ek, as jy nog nooit hierdie gesien. 432 00:30:35,610 --> 00:30:39,920 Uitroepteken is deel van die C-dop geskiedenis meganisme. 433 00:30:39,920 --> 00:30:45,220 Dit kan vroeër opdragte onthou, kan dit argumente daardie opdragte te onthou en so meer. 434 00:30:46,760 --> 00:31:01,570 Die geskiedenis meganisme word gebruik as deel van aliasing. 435 00:31:01,570 --> 00:31:07,390 As jy 'n lyn na die uitroepteken, sal dit verwys na die lyn in die geskiedenis lys, 436 00:31:07,390 --> 00:31:11,910 wat ons nie sal wees om in nou want dit is 'n heel ander onderwerp. 437 00:31:11,910 --> 00:31:16,280 Dit is moontlik deel van 'n lyn te spesifiseer. 438 00:31:16,280 --> 00:31:22,950 So! 03:02 sal die tweede argument van die opdrag nommer 3 wees. 439 00:31:22,950 --> 00:31:30,430 Die kappie hier in hierdie uitdrukking staan ​​vir die eerste argument. 440 00:31:30,430 --> 00:31:34,410 As jy nie gee dit 'n aanduiding van wat beveel jy verwys, 441 00:31:34,410 --> 00:31:37,300 verwys dit na die onmiddellik voorafgaande gebod, 442 00:31:37,300 --> 00:31:41,990 en die kappie is 'n simbool vir die eerste argument. 443 00:31:41,990 --> 00:31:46,820 Want dit is die kappie en nie die aantal, jy hoef nie die kolon te gebruik, 444 00:31:46,820 --> 00:31:52,660 so! ^ beteken die eerste argument na die vorige opdrag. 445 00:31:52,660 --> 00:31:55,020 'N bietjie deurmekaar hier. 446 00:31:55,020 --> 00:31:58,450 In hierdie geval, wanneer jy gebruik dit as 'n alias definisie, 447 00:31:58,450 --> 00:32:04,650 Die geskiedenis verwysing verwys terug na die opdragte in wat die alias gebruik word. 448 00:32:04,650 --> 00:32:08,470 So hierdie gaan terug 1 opdrag as 'n geskiedenis operasie, 449 00:32:08,470 --> 00:32:11,810 maar as 'n alias werking verwys dit na die opdrag in wat jy wil tik, 450 00:32:11,810 --> 00:32:14,780 sê grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Ons het die aanhalings hier in dit. Wat is die backslash vir? 452 00:32:20,240 --> 00:32:30,810 In hierdie geval, soos elders, ons wil nie die geskiedenis meganisme uit te voer 453 00:32:30,810 --> 00:32:33,680 terwyl die definisie van die alias. 454 00:32:33,680 --> 00:32:37,900 As ons nie die backslash daar was, sou die dop trek in die eerste argument 455 00:32:37,900 --> 00:32:41,870 van die opdrag reg voor dit het die alias opdrag, wat ons wil hê nie. 456 00:32:41,870 --> 00:32:47,520 Ons wil dit in die alias bevel gebou word om later bel in 'n argument. 457 00:32:47,520 --> 00:32:53,550 Enkele aanhalings nie ontsnap nie 'n uitroepteken, die geskiedenis verwysing. 458 00:32:53,550 --> 00:32:57,450 Miskien weet jy die uitdrukking ontsnapping beteken die betekenis van iets te verander. 459 00:32:57,450 --> 00:33:00,260 In hierdie geval, beteken dit iets om te verhoed dat 'n spesiale betekenis. 460 00:33:00,260 --> 00:33:03,030 Uitroepteken se spesiale betekenis is geskiedenis. 461 00:33:03,030 --> 00:33:05,790 Ontsnap en dit het nie daardie betekenis. 462 00:33:05,790 --> 00:33:08,080 Aanhalings nie doen nie; backslash doen. 463 00:33:08,080 --> 00:33:11,900 So ons is eintlik die gebruik van 2 vlakke van ontsnapping hier. 464 00:33:23,500 --> 00:33:29,620 Ek gaan hierdie opdrag om te skuif na die ander venster sonder om dit te tik 465 00:33:29,620 --> 00:33:35,210 deur die gebruik van hierdie redigering bedrywighede, wat jy mag nuttig vind. 466 00:33:40,620 --> 00:33:42,460 Iets anders hier het ek sal jou wys. 467 00:33:42,460 --> 00:33:46,730 As jy net tik alias met geen argumente, dit vertel dat jy al jou argumente. 468 00:33:46,730 --> 00:33:48,640 Dit is 'n klomp van die aliasse wat ek al hier gehad 469 00:33:48,640 --> 00:33:53,400 Behalwe dié wat ek hier vandag gebruik. 470 00:33:53,400 --> 00:34:00,220 Maar as ek tik net met die naam van 'n alias, dit vertel my wat dit beteken. 471 00:34:00,220 --> 00:34:03,390 Let daarop dat die aanhalings is verby en die backslash is weg. 472 00:34:03,390 --> 00:34:08,620 Hierdie string hier is die resultaat van daardie alias definisie, 473 00:34:08,620 --> 00:34:12,199 en nou is dit net! ^ in dit. 474 00:34:12,199 --> 00:34:19,150 Dit gaan om te kyk in die lêer snare vir enigiets nie. 475 00:34:19,150 --> 00:34:34,900 So as ek dit doen grstrings_file snare, het ek nie gee dit iets om na te kyk, want daar, 476 00:34:34,900 --> 00:34:37,429 maar dit is op soek na in snare. 477 00:34:37,429 --> 00:34:42,330 Dit het nie die woord snare vind in die lêer snare, maar dit beteken ABC. 478 00:34:42,330 --> 00:34:46,770 En dit nie vind nie. 479 00:34:46,770 --> 00:34:52,330 So hier gee ons 'n argument wat treffers in die definisie van die alias, 480 00:34:52,330 --> 00:34:55,530 wat is opgeneem in dit. 481 00:34:55,530 --> 00:34:58,540 Dit is waar hierdie uitdrukking vandaan kom. 482 00:34:58,540 --> 00:35:00,240 Jy kan gebruik om meer as 1. 483 00:35:00,240 --> 00:35:03,170 Die kappie is 'n simbool vir die eerste argument. 484 00:35:03,170 --> 00:35:07,510 As jy wil 'n tweede argument te gebruik, sal jy dan sê: 2. 485 00:35:07,510 --> 00:35:11,250 Daar is geen spesiale simbool vir die tweede argument. 486 00:35:11,250 --> 00:35:14,790 En omdat jy met behulp van 'n syfer, sal jy die kolon te gebruik. 487 00:35:14,790 --> 00:35:17,220 Daar is egter 'n ander keuse hier. 488 00:35:17,220 --> 00:35:21,220 Die dollar-teken staan ​​vir die laaste argument. 489 00:35:21,220 --> 00:35:23,320 En omdat dit 'n simbool, kan jy die kolon laat. 490 00:35:23,320 --> 00:35:25,870 So dit sou die laaste argument in die lys wees. 491 00:35:25,870 --> 00:35:27,900 En daar is ook dat 'n mens. 492 00:35:27,900 --> 00:35:31,380 Asterisk beteken al, so dit is die volledige argument lys 493 00:35:31,380 --> 00:35:35,150 en weer, kan jy die kolon laat, want dit is nie 'n syfer. 494 00:35:36,970 --> 00:35:39,950 Ek hoop dat jy al die waarneming van al hierdie. 495 00:35:39,950 --> 00:35:54,100 >> Die geskiedenis meganisme kan terug na vroeër lyne gaan in die geskiedenis lys. 496 00:35:54,100 --> 00:36:01,370 Jy kan dit doen in 'n alias definisie. 497 00:36:01,370 --> 00:36:02,950 Ek het nog nooit gesien het dit gedoen. 498 00:36:02,950 --> 00:36:05,840 Dit sou die effek van die trek uit vroeër opdragte uit die geskiedenis lys het 499 00:36:05,840 --> 00:36:08,130 wanneer jy die alias, wat kan wees die verskillende opdragte uit te voer 500 00:36:08,130 --> 00:36:11,240 afhangende van wanneer en waar jy dit uit te voer. 501 00:36:11,240 --> 00:36:14,020 Verstaanbaar jy dalk wil om te trek uit so 'n verwysing 502 00:36:14,020 --> 00:36:15,900 net om te weet wat 'n vroeëre opdrag was. 503 00:36:15,900 --> 00:36:17,280 Ek het nog nooit gesien dat dit gebeur. 504 00:36:17,280 --> 00:36:19,970 Ek veronderstel iemand dalk wil, maar dit is baie onwaarskynlik. 505 00:36:19,970 --> 00:36:26,480 Daar is nog 'n ding hier. 506 00:36:26,480 --> 00:36:33,060 As jy dat die geskiedenis-tipe verwysing, 507 00:36:33,060 --> 00:36:38,190 dan slegs die argumente wat daar is so 'n verwysing gebruik word. 508 00:36:38,190 --> 00:36:42,180 As jy 'n alias definisie wat nie 'n geskiedenis-tipe verwysing gebruik, 509 00:36:42,180 --> 00:36:44,060 As dit maar net die begin van die opdrag 510 00:36:44,060 --> 00:36:46,520 en jy het verdere argumente, dan is enigiets wat jy tik nadat 511 00:36:46,520 --> 00:36:48,450 sal bygevoeg word om die opdrag. 512 00:36:48,450 --> 00:36:52,040 In hierdie geval, die voorbeeld wat ek net daar het, het ons die eerste argument; 513 00:36:52,040 --> 00:36:54,610 Ons het nie enige ander gebruik. 514 00:36:54,610 --> 00:36:57,960 As ander argumente gegee is op die opdrag lyn, sou hulle nie gebruik word nie. 515 00:36:57,960 --> 00:37:04,630 So as jy die geskiedenis verwysing gebruik nie, dan moet jy dit gebruik om enige argument te kry. 516 00:37:04,630 --> 00:37:11,310 >> Daar is 'n ander ding hier wil ek net noem, deels parenthetically, 517 00:37:11,310 --> 00:37:15,250 naamlik dat hierdie geskiedenis meganisme met die uitroepteken 518 00:37:15,250 --> 00:37:18,010 gaan terug na die oorspronklike C-dop. 519 00:37:18,010 --> 00:37:27,060 Die tcsh bekendgestel geskiedenis bedrywighede 520 00:37:27,060 --> 00:37:30,910 wat die vorme van opdragte en snare van die redakteurs te gebruik, 521 00:37:30,910 --> 00:37:33,650 óf Emacs of vi. 522 00:37:33,650 --> 00:37:36,430 My persoonlike mening is Emacs is veel makliker om te gebruik vir hierdie doel 523 00:37:36,430 --> 00:37:39,390 selfs as jy vi gebruik vir jou gereelde redigering. 524 00:37:39,390 --> 00:37:43,900 Daar is verskeie Emacs opdragte wat nou aangepas vir die geskiedenis. 525 00:37:43,900 --> 00:37:46,410 Control P kry die vorige lyn in die geskiedenis lys. 526 00:37:46,410 --> 00:37:48,840 Nog Control P sal kry jy die een voor dit. 527 00:37:48,840 --> 00:37:50,540 Die pyl nie dieselfde ding. 528 00:37:50,540 --> 00:37:54,190 Beheer N kry die volgende opdrag as jy reeds scrolled terug 'n paar maniere. 529 00:37:54,190 --> 00:37:55,880 Down pyl doen dit ook. 530 00:37:55,880 --> 00:38:00,480 Jy kan skuif na links na regs met die pyle en verskeie ander dinge. 531 00:38:00,480 --> 00:38:02,390 Dit kan gebruik maak van die geskiedenis meganisme 532 00:38:02,390 --> 00:38:05,070 baie makliker as die gebruik van die uitroepteken sintaksis, 533 00:38:05,070 --> 00:38:07,930 maar jy sal nie gebruik wat in 'n alias definisie. 534 00:38:17,780 --> 00:38:20,020 Ons gaan oor wat 'n ander tyd. 535 00:38:24,300 --> 00:38:25,810 >> Veranderlikes. 536 00:38:26,880 --> 00:38:29,510 Jy weet wat veranderlikes is in programmeertale. 537 00:38:29,510 --> 00:38:31,680 Die doppe het hulle ook. 538 00:38:31,680 --> 00:38:37,350 Die C-dop gebruik die opdrag stel veranderlikes te ken, 539 00:38:37,350 --> 00:38:41,360 sodat stel die veranderlike 'n waarde van b - 540 00:38:41,360 --> 00:38:46,390 soos ek gesê het, 'n nuttelose definisie, maar 'n voorbeeld van hoe dit gebruik word. 541 00:38:48,790 --> 00:38:52,410 Die stel opdrag sal 'n veranderlike te skep as dit nie reeds bestaan. 542 00:38:55,270 --> 00:39:02,490 Die posisionele parameters vir die dop skrifte kan beskou word as veranderlikes, 543 00:39:02,490 --> 00:39:10,750 maar die gebruik van hulle en die reëls vir hulle is 'n bietjie anders. 544 00:39:10,750 --> 00:39:14,320 Jy kan nie 'n waarde $ 1 wys in die loop van 'n script. 545 00:39:14,320 --> 00:39:18,340 Jy sal 'n nuwe veranderlike te definieer vir daardie doel as 'n paar van julle wou. 546 00:39:23,000 --> 00:39:28,470 Tik stel met geen argumente en jy 'n lys van al die huidig ​​gedefinieerde veranderlikes. 547 00:39:28,470 --> 00:39:34,220 En laat ons oor aan my ander dop hier en kyk wat ons kry as ons dit doen. 548 00:39:34,220 --> 00:39:37,110 Nogal 'n lang lys daar, reg? 549 00:39:37,110 --> 00:39:40,990 Blaai 'n bietjie. Kyk na alles wat. 550 00:39:40,990 --> 00:39:44,330 Sommige van hierdie dinge word outomaties bepaal deur die dop. 551 00:39:44,330 --> 00:39:49,320 Die dop skep die veranderlike en gee dit 'n waarde. 552 00:39:49,320 --> 00:39:52,730 Sommige van hulle is gedefinieer deur die dop, maar dan geherdefinieer deur die gebruiker 553 00:39:52,730 --> 00:39:54,820 volgens sy voorkeure. 554 00:39:54,820 --> 00:39:59,110 En sommige van hulle is geskep deur die gebruiker, afhangende van wat hy doen daardie dag. 555 00:39:59,110 --> 00:40:01,880 Dit is net soos met geen argumente. 556 00:40:06,920 --> 00:40:10,050 Daar is 'n vreemde verskynsel hier van hierdie ding. 557 00:40:10,050 --> 00:40:17,980 Daar het óf geen spasies tussen die gelykaanteken en die veranderlike naam wees 558 00:40:17,980 --> 00:40:23,700 en die waarde of spasies aan beide kante van die gelykaan teken, 559 00:40:23,700 --> 00:40:28,940 soos in hierdie een. 560 00:40:35,620 --> 00:40:41,340 Dit sal nie werk nie, en dit is eintlik 'n geldige opdrag 561 00:40:41,340 --> 00:40:43,390 maar dit sal nie doen wat jy wil. 562 00:40:43,390 --> 00:40:50,070 Daardie bevel sal werk nie, want as jy net sê stel en 'n veranderlike naam 563 00:40:50,070 --> 00:40:54,890 met geen gelykaanteken of stel en 'n veranderlike naam met 'n gelykaanteken en geen waarde, 564 00:40:54,890 --> 00:40:57,770 dit sal die veranderlike stel om 'n nul waarde. 565 00:40:57,770 --> 00:41:00,120 So het 'n = 'n geldige opdrag. 566 00:41:00,120 --> 00:41:04,370 Die opdrag set kan meer as 1 veranderlike te definieer op dieselfde lyn. 567 00:41:04,370 --> 00:41:11,240 So hierdie opdrag hier het die effek van die definisie van beide A en B waardes null. 568 00:41:11,240 --> 00:41:13,470 Waarskynlik nie wat jy wil. 569 00:41:13,470 --> 00:41:17,940 Hierdie een hier, wat vroeër genoem is, sal lei tot 'n fout 570 00:41:17,940 --> 00:41:21,270 omdat = b is nie 'n geldige uitdrukking. 571 00:41:21,270 --> 00:41:23,680 'N veranderlike naam kan nie begin met die gelykaanteken. 572 00:41:26,760 --> 00:41:29,080 En daar is die verdere dinge hier. 573 00:41:29,080 --> 00:41:36,820 Die dubbelpunte gebruik argumente uit die geskiedenis lyne te kies, 574 00:41:36,820 --> 00:41:41,210 en dit gebruik kan word - en ek het nie gaan in voor - dié dinge te verander. 575 00:41:41,210 --> 00:41:44,480 Hulle kan ook gebruik word om dop veranderlikes aan te pas. 576 00:41:44,480 --> 00:41:49,050 Hierdie een hier, $ a, 'n waarde. 577 00:41:49,050 --> 00:41:55,040 : R sal opstyg 'n uitbreiding. 578 00:41:55,040 --> 00:41:57,200 'N uitbreiding sal enigiets aanleiding van 'n kol wees, 579 00:41:57,200 --> 00:41:59,200 'n kol en enigiets volgende aan die einde van 'n lêer, 580 00:41:59,200 --> 00:42:03,230 eers aan die einde van die lys na die laaste streep. 581 00:42:03,230 --> 00:42:05,480 So ek het dit hier. 582 00:42:05,480 --> 00:42:10,730 'n is dat. Dit sal daal die. O. 583 00:42:10,730 --> 00:42:16,510 As daar geen uitbreiding, net die padnamen na die laaste streep, sal dit geen effek. 584 00:42:16,510 --> 00:42:27,480 A: h, wat veranderlike uitdrukking, sal opstyg die laaste element van 'n gids lys, 585 00:42:27,480 --> 00:42:29,660 weer, net na die laaste streep. 586 00:42:29,660 --> 00:42:33,160 So / a / b / c word / a / b, 587 00:42:33,160 --> 00:42:38,870 maar hierdie een is verander omdat die element na die lys is leeg. 588 00:42:38,870 --> 00:42:43,070 Hier is iets wat ek ook wil beklemtoon. 589 00:42:43,070 --> 00:42:46,770 Hierdie kwalifiseerders nie soek nie vir die bestaan ​​van hierdie lêers. 590 00:42:46,770 --> 00:42:48,910 Hulle kyk net vir strykers. 591 00:42:48,910 --> 00:42:54,520 Dit is bedoel om die lêer name te manipuleer, padnamen, 592 00:42:54,520 --> 00:42:57,520 maar hulle kan gebruik word op enige string selfs al is dit nie 'n lêer naam. 593 00:42:57,520 --> 00:42:58,920 En hulle lyk nie vir die bestaan, 594 00:42:58,920 --> 00:43:03,550 So as daar is geen sodanige lêer, / a / b / c, dit sal nog steeds werk. 595 00:43:03,550 --> 00:43:06,930 Of is dit van enige nut is 'n ander vraag, maar dit sal nog steeds werk. 596 00:43:06,930 --> 00:43:12,850 Veranderlikes is anders in die Bourne doppe. Ons sal later aan daardie. 597 00:43:12,850 --> 00:43:18,240 Dollar-teken kan ontsnap word net soos die uitroepteken en die asterisk. 598 00:43:18,240 --> 00:43:21,760 Dollar-teken kan ontsnap word met 'n backslash of die aanhalingstekens. 599 00:43:21,760 --> 00:43:24,790 Dubbele aanhalingstekens het die vreemde uitwerking in alle doppe 600 00:43:24,790 --> 00:43:28,690 dwing die evaluering van 'n dollar teken veranderlike uitdrukking. 601 00:43:28,690 --> 00:43:31,960 So as dit is wat een manier ontsnap, kan die dubbele aanhalingstekens die effek 602 00:43:31,960 --> 00:43:34,380 veroorsaak dit in elk geval word geëvalueer. 603 00:43:34,380 --> 00:43:37,090 Dit is 'n bietjie verwarrend. 604 00:43:37,090 --> 00:43:43,740 As daar is verskeie vlakke van ontsnapping, soos 'n enkele aanhalings binne dubbele aanhalingstekens 605 00:43:43,740 --> 00:43:46,770 of dubbele aanhalingstekens binne enkele aanhalings, moet jy toets om te sien wat sal gebeur 606 00:43:46,770 --> 00:43:49,520 'n veranderlike As jy een. 607 00:43:49,520 --> 00:43:53,410 Diegene 2 situasies - dubbel binnekant van 'n enkele, enkele binnekant van dubbel - 608 00:43:53,410 --> 00:43:55,980 nie noodwendig vir jou nie dieselfde resultaat. 609 00:44:02,520 --> 00:44:05,600 Omgewing veranderlikes, gebind C-dop veranderlikes. 610 00:44:05,600 --> 00:44:08,340 Omgewing veranderlikes is ook veranderlikes in die C-dop, 611 00:44:08,340 --> 00:44:11,250 en hulle is ook veranderlikes in ander doppe ook. 612 00:44:11,250 --> 00:44:15,230 In die C-dop, hulle is afsonderlike stelle. 613 00:44:15,230 --> 00:44:18,130 Die dinge wat ek voor sê is oor die dop veranderlikes. 614 00:44:18,130 --> 00:44:21,300 Omgewing veranderlikes is 'n duidelike stel veranderlikes 615 00:44:21,300 --> 00:44:28,650 met die uitsondering van 'n paar veranderlikes wat ons noem gebonde veranderlikes, 616 00:44:28,650 --> 00:44:30,640 wat baie belangrik is en ons sal kry in die later. 617 00:44:30,640 --> 00:44:34,950 Omgewing veranderlikes word outomaties oorgedra 618 00:44:34,950 --> 00:44:41,800 skulpe of opdragte wat uitgevoer word uit jou dop. 619 00:44:41,800 --> 00:44:46,220 Die ander dinge is nie. Die dop veranderlikes, die aliasse is nie. Omgewing veranderlikes is. 620 00:44:46,220 --> 00:44:48,630 Dit is hoekom ons noem hulle omgewing veranderlikes, 621 00:44:48,630 --> 00:44:55,030 die idee is dat die omgewing strek verby net jou huidige dop. 622 00:44:55,030 --> 00:45:00,510 Hulle kan gebruik word om dinge vir instruksies te definieer. 623 00:45:00,510 --> 00:45:05,470 Hier is 'n voorbeeld. Bosmanstraat, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Beide van die veranderlikes kan 'n drukker wat 'n opdrag sal gebruik om dinge te druk definieer. 625 00:45:12,270 --> 00:45:16,500 As jy meer drukkers rondom, wil jy dalk die een wat jy wil om te sit. 626 00:45:16,500 --> 00:45:21,320 Die rede waarom ons het 2 veranderlikes is dat verskillende stelle van instruksies is geskryf 627 00:45:21,320 --> 00:45:23,870 die gebruik van hierdie verskillende veranderlikes. 628 00:45:23,870 --> 00:45:25,910 Jy kan gee hulle verskillende waardes. 629 00:45:25,910 --> 00:45:28,860 Heel waarskynlik sal jy gee hulle albei dieselfde waarde. 630 00:45:28,860 --> 00:45:35,840 Daardie dinge werk nie, want die bevele wat dit doen druk 631 00:45:35,840 --> 00:45:40,740 is geprogrammeer om die waardes van die veranderlikes te ondersoek. 632 00:45:42,200 --> 00:45:46,150 As 'n program is nie so geskryf is, as dit is geskryf om iets anders om te doen, 633 00:45:46,150 --> 00:45:48,280 die veranderlike sal irrelevant wees. 634 00:45:48,280 --> 00:45:52,530 So die bedryfstelsel is nie op soek na hierdie veranderlikes 635 00:45:52,530 --> 00:45:55,210 elke keer as jy verwys na 'n drukker. 636 00:45:55,210 --> 00:45:59,090 'N opdrag wat nie die druk is op soek na hierdie veranderlikes as dit is geprogrammeer dat die pad. 637 00:46:11,030 --> 00:46:15,240 Hierdie veranderlikes word dikwels gedefinieer in jou inisialisering lêers 638 00:46:15,240 --> 00:46:19,440 maar nie noodwendig nie. 639 00:46:19,440 --> 00:46:21,050 Jy kan dit op die opdrag lyn definieer. 640 00:46:21,050 --> 00:46:24,090 Hulle kan gedefinieer word in 'n opdrag. 641 00:46:24,090 --> 00:46:28,740 'N bevel dat iets loop kan sy eie keuse van veranderlikes het - 642 00:46:28,740 --> 00:46:32,390 veranderlikes wat eie is aan 'n bepaalde pakket, byvoorbeeld. 643 00:46:32,390 --> 00:46:36,740 Hulle sal gedefinieer word wanneer jy die pakket. 644 00:46:39,690 --> 00:46:42,680 Hoe word hierdie veranderlikes geslaag om 'n sub-dop? 645 00:46:42,680 --> 00:46:48,210 Wanneer 'n sub-dop geskryf is, beteken dit nie in daardie gebied te skryf. 646 00:46:48,210 --> 00:46:53,260 Die oppervlakte van die sub-dop wat toegewy is aan die omgewing veranderlikes 647 00:46:53,260 --> 00:46:56,450 is nie geskryf deur die sub-dop, dit is geskryf deur die kopiëring. 648 00:46:56,450 --> 00:47:00,530 Wanneer jy 'n gewone opdrag, soos hierdie opdragte te druk of wat ook al, 649 00:47:00,530 --> 00:47:03,840 hulle begin af deur die skep van 'n nuwe dop. 650 00:47:03,840 --> 00:47:06,190 Die dop skep 'n dop en dan oor skryf deel van dit 651 00:47:06,190 --> 00:47:08,800 met die opdrag dat jy hardloop, wat is 'n bietjie verwarrend, 652 00:47:08,800 --> 00:47:10,740 maar dit is hoe hierdie opdragte kry die omgewing veranderlikes 653 00:47:10,740 --> 00:47:14,890 dat hulle dan verwys na later. 654 00:47:21,920 --> 00:47:28,010 Die opdrag hier vir die definisie van die veranderlike setenv. 655 00:47:28,010 --> 00:47:36,470 Dit is hoe jy dit definieer. Dit is 3 elemente: setenv, veranderlike, waarde. 656 00:47:36,470 --> 00:47:44,710 As jy net nie setenv met geen argumente, wat kry jy? 657 00:47:47,220 --> 00:47:48,810 'N lys van al die veranderlikes. 658 00:47:48,810 --> 00:47:53,190 Weereens, dit is 'n lekker lang lys en in hierdie geval, soos in die ander, 659 00:47:53,190 --> 00:47:57,320 hierdie veranderlikes word grootliks bepaal deur my login werking deur die dop self 660 00:47:57,320 --> 00:47:59,740 eerder as deur enigiets wat ek gedoen het. 661 00:47:59,740 --> 00:48:03,580 Daar is nog 'n opdrag hier, printenv. 662 00:48:07,520 --> 00:48:10,340 Dit druk ook uit die omgewing. 663 00:48:10,340 --> 00:48:15,240 Let op hierdie laaste ding hier, redakteur = vi. 664 00:48:15,240 --> 00:48:21,120 Wat sê dat as ek die gebruik van iets wat roep 'n redakteur 665 00:48:21,120 --> 00:48:25,530 en ek 'n redakteur spesifiseer nie en dit laat my die keuse is, kan dit vir my gee vi. 666 00:48:25,530 --> 00:48:37,280 Wat as ek dit doen printenv Editor? Dit sê vir my wat dit is. 667 00:48:37,280 --> 00:48:41,340 Reg voor dit, was daar 'n veranderlike, minder. 668 00:48:41,340 --> 00:48:46,040 Dit is jou standaard opsies wanneer ek hardloop minder opdrag, 669 00:48:46,040 --> 00:48:49,360 wat vertoon lêers. 670 00:48:49,360 --> 00:48:55,910 So as ek dit doen, kan printenv neem 1 argument of 0 argumente, 671 00:48:55,910 --> 00:48:58,070 nie meer as 1. 672 00:49:01,800 --> 00:49:05,690 Daar is ander opdragte ook, maar ons gaan nie te kry in alles wat vandag. 673 00:49:05,690 --> 00:49:11,010 Onthou daar was die wysigers vir die dop veranderlikes soos: h, 674 00:49:11,010 --> 00:49:14,350 wat die laaste element van 'n padnaam sal daal, 675 00:49:14,350 --> 00:49:17,950 of: R wat sal 'n uitbreiding daal. 676 00:49:17,950 --> 00:49:23,110 Diegene nou aansoek doen om die omgewing veranderlikes ook. Hulle het nie gebruik word om te. 677 00:49:23,110 --> 00:49:24,960 Dit word gebruik om hulle kon nie verander word nie. Nou hulle kan wees. 678 00:49:24,960 --> 00:49:29,190 Dit is een van die vooruitgang met die ontwikkeling van die doppe oor die jare. 679 00:49:29,190 --> 00:49:35,620 Ek het gesê dat die skulpe as deel van die omgewings 680 00:49:35,620 --> 00:49:43,040 en dop veranderlikes in die C-dop is, met 'n paar uitsonderings, afsonderlike stelle. 681 00:49:43,040 --> 00:49:46,790 Jy kan vestig 'n omgewing veranderlike en 'n dop veranderlike met dieselfde naam. 682 00:49:46,790 --> 00:49:49,220 Hulle sal verskillende veranderlikes wees, hulle verskillende waardes kan hê. 683 00:49:49,220 --> 00:49:53,090 Die verandering van die waarde van een sal nie die waarde van die ander verander. 684 00:49:53,090 --> 00:49:58,070 Hierdie veranderlikes is almal geëvalueer met die dollar teken - $ n $ ookal. 685 00:49:58,070 --> 00:50:02,340 So wat as jy dit? Weet jy watter een jy? 686 00:50:02,340 --> 00:50:04,520 In my toetse het ek die dop veranderlike, 687 00:50:04,520 --> 00:50:07,240 maar dit is nie gedokumenteer en jy kan nie op daardie staatmaak. 688 00:50:07,240 --> 00:50:10,270 Daarom vra ek jou, is die skep van Shell en omgewing veranderlikes 689 00:50:10,270 --> 00:50:13,490 met dieselfde name 'n goeie idee? No Goed. 690 00:50:13,490 --> 00:50:17,460 Wat is die vernaamste uitsonderings waarop die omgewing en dop veranderlikes 691 00:50:17,460 --> 00:50:19,860 gekoppel is aan mekaar? 692 00:50:19,860 --> 00:50:27,470 Daar is hierdie 4. 693 00:50:32,030 --> 00:50:35,510 Hoofletter KWARTAAL omgewing veranderlike, 694 00:50:35,510 --> 00:50:41,540 dop veranderlike term in klein letters, tipe terminale nydigheid. 695 00:50:41,540 --> 00:50:47,430 Ek gaan net oor te gaan hier en ek gaan hier eggo, 'n nuttige opdrag te doen, 696 00:50:47,430 --> 00:50:52,560 $ Begrip $ termyn. En daar. 697 00:50:52,560 --> 00:51:00,570 xterm is 'n terminale tipe vir vensters vertoon in die X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-kleur is 'n variasie van die wat toelaat dat verskillende kleure. 699 00:51:04,330 --> 00:51:06,580 Hoekom moet ons definieer dit? Wat is dit goed vir? 700 00:51:06,580 --> 00:51:09,740 Opdragte wat op die skerm soos die redakteur herrangskik 701 00:51:09,740 --> 00:51:13,680 stuur die besonder rye, genoem ontsnapping rye, 702 00:51:13,680 --> 00:51:18,160 'n terminaal of 'n venster om dit te herrangskik en so meer. 703 00:51:18,160 --> 00:51:20,990 Diegene rye is verskillend vir verskillende tipes van terminale. 704 00:51:20,990 --> 00:51:23,100 Dit sê dit wat om te gebruik. 705 00:51:23,100 --> 00:51:25,900 Soms is daar kwessies is daar. 706 00:51:25,900 --> 00:51:28,600 Jy mag dalk wil om dit te verander. 707 00:51:28,600 --> 00:51:30,780 As dinge nie werk nie, soms die terminale tipe is ingestel verkeerd is, 708 00:51:30,780 --> 00:51:36,440 kan jy dalk om dit te los deur die herdefiniëring van die term veranderlike. 709 00:51:36,440 --> 00:51:43,420 In hierdie gevalle, die verandering van een veranderlike, die omgewing veranderlike of die dop veranderlike, 710 00:51:43,420 --> 00:51:45,970 moet die ander een verander. 711 00:51:45,970 --> 00:51:50,970 Ek deur ervaring ontdek het dat die verandering term in hoofletters 712 00:51:50,970 --> 00:51:54,060 nie altyd verander dop veranderlike term in klein letters. 713 00:51:54,060 --> 00:51:55,550 Dit is 'n fout. 714 00:51:55,550 --> 00:51:59,400 Ek weet nie of dit is altyd waar. Die meeste van die tyd wat dit is nie waar nie, maar dit kan wees. 715 00:51:59,400 --> 00:52:02,490 So as jy 'n verandering, net seker te maak dat uit. 716 00:52:02,490 --> 00:52:05,830 Dit is nie dikwels dat jy moet besef dat die waarde te verander nie, maar een keer in 'n rukkie wat jy doen. 717 00:52:05,830 --> 00:52:08,260 Omgewing veranderlike gebruiker. 718 00:52:08,260 --> 00:52:12,070 Weereens, omgewing veranderlike in hoofletters, dop veranderlike in klein letters. 719 00:52:12,070 --> 00:52:13,710 Dit is jou gebruikersnaam. 720 00:52:13,710 --> 00:52:16,730 Dit is slegs onder baie uitsonderlike omstandighede 721 00:52:16,730 --> 00:52:18,420 wat jy graag wil hê om dit te verander. 722 00:52:18,420 --> 00:52:22,350 As jy jou gebruikersnaam is iemand anders, kan dit gooi allerhande dinge af. 723 00:52:22,350 --> 00:52:26,040 Tuisgids, gebruiker se tuisgids. 724 00:52:26,040 --> 00:52:28,060 Weereens, sal jy nie wil om dit te verander. 725 00:52:28,060 --> 00:52:32,260 Kennisgewing in al hierdie gevalle en die een wat ons oor te dek, die pad veranderlike, 726 00:52:32,260 --> 00:52:37,070 omgewing veranderlike is in hoofletters en die gebonde dop veranderlike is in klein letters. 727 00:52:37,070 --> 00:52:39,240 As jy een van hulle verander, moet jy die ander verander. 728 00:52:39,240 --> 00:52:45,960 Hierdie soort van binding kan nie vasgestel word as jy nie kan 2 veranderlikes bind, 729 00:52:45,960 --> 00:52:50,570 anders as hierdie 4, en die binding in hierdie veranderlikes kan nie ongedaan gemaak word nie, 730 00:52:50,570 --> 00:52:52,090 jy kan hulle nie skei nie. 731 00:52:52,090 --> 00:52:55,820 So het hierdie 4 pare veranderlikes gebind. 732 00:52:55,820 --> 00:52:59,020 Hulle sal altyd wees. Geen ander sal wees. 733 00:52:59,020 --> 00:53:05,720 Daarbenewens, sou dit moontlik wees om veranderlikes met dieselfde name te skep 734 00:53:05,720 --> 00:53:07,780 van die teenoorgestelde tipes. 735 00:53:07,780 --> 00:53:11,600 Jy kan 'n dop veranderlike term maak in klein letters 736 00:53:11,600 --> 00:53:14,990 of 'n omgewing veranderlike term in hoofletters. 737 00:53:14,990 --> 00:53:19,040 Diegene veranderlikes sou onafhanklik van hierdie veranderlikes gepaar word 738 00:53:19,040 --> 00:53:20,780 en hulle sal onafhanklik van mekaar wees. 739 00:53:20,780 --> 00:53:23,780 Ek kan nie dink hoekom jy sou doen nie, tensy jy wil hê mense te verwar. 740 00:53:24,600 --> 00:53:29,730 Hierdie een hier, pad veranderlike, dit is 'n baie belangrike een. 741 00:53:29,730 --> 00:53:35,550 Nog 'n ding hier is dat daar gevalle kan wees 742 00:53:35,550 --> 00:53:40,430 veranderlikes met soortgelyke pare name wat nie gebind is aan mekaar. 743 00:53:40,430 --> 00:53:45,000 Daar kan veranderlikes, Shell en Shell, in kapitaal en klein letters. 744 00:53:45,000 --> 00:53:48,300 Gebaseer op die naam, jy weet nie of dit veranderlike is 'n dop veranderlike 745 00:53:48,300 --> 00:53:51,580 of 'n omgewing veranderlike, en hulle is nie gebind aan mekaar. 746 00:53:51,580 --> 00:53:55,300 So dat die soort van saam name impliseer nie gebonde veranderlikes. 747 00:53:55,300 --> 00:53:58,830 Die pad veranderlike, wat ek was voor wys, 748 00:53:58,830 --> 00:54:01,880 is 'n lys van padnamen waarin die dop lyk vir opdragte. 749 00:54:01,880 --> 00:54:12,320 Kom ons kry oor hierdie venster hier en ons sal doen echo $ PATH, hoofletters - 750 00:54:12,320 --> 00:54:20,230 omgewing veranderlike - echo $ pad, klein letters - dop veranderlike. 751 00:54:20,230 --> 00:54:24,980 Let daarop dat die lys van gidse is dieselfde. Hierdie is gebind. 752 00:54:24,980 --> 00:54:26,590 Verander, jy die ander verander. 753 00:54:26,590 --> 00:54:32,970 In die omgewing veranderlike die elemente word geskei deur kommas. Let daarop dat. 754 00:54:32,970 --> 00:54:35,130 Die dop veranderlikes word deur spasies geskei. 755 00:54:35,130 --> 00:54:38,760 Hierdie omgewing veranderlike is 'n enkele string. 756 00:54:38,760 --> 00:54:41,480 Die dop veranderlike is 'n skikking. 757 00:54:41,480 --> 00:54:43,490 Die Bourne dop het nie skikkings. 758 00:54:43,490 --> 00:54:46,600 Bash doen nie, maar dit is reeds 'n vaste deel van die dop. 759 00:54:46,600 --> 00:54:48,660 Dit is 'n enkele string en nie 'n skikking. 760 00:54:48,660 --> 00:54:50,420 Die C-dop altyd skikkings het. 761 00:54:50,420 --> 00:54:52,630 Die skikkings is baie makliker om te werk met. 762 00:54:52,630 --> 00:54:54,400 Jy kan verwys na dele daarvan. 763 00:54:54,400 --> 00:55:02,350 So eggo $ pad [1] en ek kry / usr / bin, die eerste element. 764 00:55:02,350 --> 00:55:09,950 Weereens, onthou dollar-teken staan ​​vir die laaste deel van die geskiedenis lys. 765 00:55:09,950 --> 00:55:16,850 Wat gebeur daar? Dit probeer dollar teken om te vind as 'n veranderlike simbool. 766 00:55:16,850 --> 00:55:20,850 Ek ontsnap nie. Oeps. Dit sou nie neem dat óf. 767 00:55:20,850 --> 00:55:23,690 Sommige van hierdie dinge nie so goed werk nie. 768 00:55:23,690 --> 00:55:28,140 Miskien sal ons net laat dit uit. 769 00:55:28,140 --> 00:55:36,980 Asterisk verwys na die hele ding, maar dit is wat jy kry as jy nie 'n element spesifiseer nie. 770 00:55:36,980 --> 00:55:46,170 Nog 'n manier dat verskeidenheid veranderlikes kan gemanipuleer word, 771 00:55:46,170 --> 00:55:49,500 aantal elemente is daar, 7 elemente. 772 00:55:49,500 --> 00:55:53,410 Hier het ons die pond teken voor die veranderlike naam. 773 00:55:53,410 --> 00:55:58,280 Hier is 'n ander een. Sit 'n vraagteken daar. 774 00:55:58,280 --> 00:56:03,170 Dit is 'n logiese waarde. Dit dui daarop dat die veranderlike bestaan. 775 00:56:03,170 --> 00:56:05,160 Dit is 'n ander manier van werk met veranderlikes. 776 00:56:05,160 --> 00:56:06,660 Dit, op die pad, het nie 'n skikking veranderlike te wees. 777 00:56:06,660 --> 00:56:08,210 Dit kan enige veranderlike. 778 00:56:08,210 --> 00:56:11,840 En as ek dit doen, is daar geen so 'n veranderlike en ek kry 'n 0. 779 00:56:11,840 --> 00:56:14,990 Nog 'n klein ding is daar oor die veranderlike evaluerings. 780 00:56:23,670 --> 00:56:32,950 Terug na hierdie een hier, as vir een of ander rede wou werk met hierdie 781 00:56:32,950 --> 00:56:37,990 eerder as om te werk met die skikking, die dop veranderlike, 782 00:56:37,990 --> 00:56:41,470 Daar is opdragte wat hierdie dinge kan skei op grond van die kolon. 783 00:56:41,470 --> 00:56:44,080 In werklikheid, as jy gaan hierdie te doen in die Shell moontlik, 784 00:56:44,080 --> 00:56:47,110 'n soort van 'n script, sou dit waarskynlik wees hoe jy dit sou doen. 785 00:56:47,110 --> 00:56:50,350 Maar in die C-dop dit is baie makliker om die skikking te gebruik. 786 00:56:50,350 --> 00:56:58,250 In die Bourne dop, is veranderlikes wat deur 'n enkele uitdrukking soos hierdie, 787 00:56:58,250 --> 00:57:01,760 soos die manier waarop jy kan 'n veranderlike toewys in 'n programmeertaal, 788 00:57:01,760 --> 00:57:05,110 en hier moet daar geen spasies nie. 789 00:57:05,110 --> 00:57:09,110 Dit is nodig dat dit net 1 string. 790 00:57:09,110 --> 00:57:14,980 In die Bourne-tipe doppe, alle veranderlikes is dop veranderlikes. 791 00:57:14,980 --> 00:57:19,250 Omgewing veranderlikes is 'n subset van die dop veranderlikes. 792 00:57:19,250 --> 00:57:24,060 Hulle word onderskei van die nie-omgewing veranderlikes deur die uitvoer. 793 00:57:24,060 --> 00:57:28,860 Die opdrag om dit te doen is die uitvoer, soos die uitvoer drukker. 794 00:57:28,860 --> 00:57:34,930 As ons so 'n veranderlike te definieer, 795 00:57:34,930 --> 00:57:38,480 As ons wou 'n druk opdrag om dit te vind, sou dit 'n omgewing veranderlike te wees, 796 00:57:38,480 --> 00:57:40,730 en dit is hoe ons maak dit een. 797 00:57:40,730 --> 00:57:42,090 Hier is daar iets soort van verwarrend. 798 00:57:42,090 --> 00:57:50,430 Hierdie uitdrukking, uitvoer na die omgewing, is afgelei van die Bourne dop konsep, 799 00:57:50,430 --> 00:57:54,520 En tog het daardie uitdrukking gebruik in beskrywings van die C-dop, 800 00:57:54,520 --> 00:57:57,920 waar daar nie so 'n opdrag as die uitvoer. 801 00:57:57,920 --> 00:58:06,200 As jy net sê uitvoer deur self, kry jy 'n lys van uitgevoer - 802 00:58:06,200 --> 00:58:10,620 So as ek net nie die uitvoer van hier, nie so 'n ding. 803 00:58:13,620 --> 00:58:15,200 Goed, daar gaan ons. 804 00:58:15,200 --> 00:58:17,010 Hierdie dinge, deur die manier, is ook bepaal deur die dop. 805 00:58:17,010 --> 00:58:19,400 Ek het nie enige van hierdie definieer deur myself. 806 00:58:19,400 --> 00:58:23,550 Die Shell allerhande dinge deur die self. 807 00:58:23,550 --> 00:58:26,650 Dit moet dinge outomaties doen. 808 00:58:30,240 --> 00:58:36,880 In Bash of Korn dop, kan jy 'n opdrag loop soos hierdie, 809 00:58:36,880 --> 00:58:42,000 wat beide gee 'n veranderlike 'n waarde en uitvoer om dit in 1 opdrag. 810 00:58:42,000 --> 00:58:46,150 In die Bourne dop hulle het 'n aparte opdragte soos uitvoer 'n te wees. 811 00:58:46,150 --> 00:58:48,410 Hier is 'n ander aspek wat is verwarrend. 812 00:58:48,410 --> 00:58:52,220 Die stel opdrag in die C-dop definieer veranderlikes 813 00:58:52,220 --> 00:58:55,550 en met geen argumente vir jou vertel wat die veranderlikes se waardes is. 814 00:58:55,550 --> 00:59:01,140 In die Shell, die opdrag set met geen argumente nie dieselfde ding, 815 00:59:01,140 --> 00:59:03,580 maar met argumente dit nie iets heel anders. 816 00:59:03,580 --> 00:59:06,200 So dit is die verskillende argumente hier. 817 00:59:06,200 --> 00:59:10,460 Sommige van hierdie is die omgewing veranderlikes, sommige van hulle is dop veranderlikes. 818 00:59:10,460 --> 00:59:13,200 Almal van hulle is dop veranderlikes regtig nie. Sommige van hulle is omgewing veranderlikes. 819 00:59:15,690 --> 00:59:23,920 Die opdrag set met argumente kan gebruik word om te werk 820 00:59:23,920 --> 00:59:28,220 op die posisionele parameters na 'n script, 821 00:59:28,220 --> 00:59:33,910 wat is 'n manier om hulle almal op een slag. 822 00:59:33,910 --> 00:59:36,150 Ons kan nie regtig gaan in vandag. 823 00:59:36,150 --> 00:59:39,580 Dit kan ook gebruik word om dop gedrag te verander. 824 00:59:39,580 --> 00:59:46,700 Veral in Bash daar veranderlikes wat sal bepaal hoe die dop optree. 825 00:59:46,700 --> 00:59:51,310 Dan ook net hierdie een opdrag wat jy kan sien, hierdie bevel. 826 00:59:51,310 --> 00:59:59,050 Set gevolg deur veranderlikes en veranderlike tipes word gebruik in die Korn en Bash doppe. 827 00:59:59,050 --> 01:00:04,970 Dit is nie verpligtend nie, maar dit kan gebruik word om die waardes van veranderlikes te beperk, 828 01:00:04,970 --> 01:00:08,400 wat nuttig foute te voorkom kan word, en dit is redelik algemeen. 829 01:00:08,400 --> 01:00:11,640 So is ek net noem dat in die geval dat jy dit iewers sien. 830 01:00:17,290 --> 01:00:19,160 Die waar opdrag. 831 01:00:19,160 --> 01:00:22,490 Onthou ek vroeër genoem die waar opdrag in die C-dop, 832 01:00:22,490 --> 01:00:28,750 wat kan vertel nie die plek van 'n bevel padnaam. 833 01:00:28,750 --> 01:00:32,580 Hier is bevel vervang. 834 01:00:32,580 --> 01:00:41,900 Jy moet vind op jou sleutelbord iewers 'n karakter wat lyk soos hierdie. 835 01:00:41,900 --> 01:00:44,910 Die plek op die sleutelbord gaan wissel. 836 01:00:44,910 --> 01:00:47,050 Ons het dit genoem backquote. Dit is ongeveer die grootte van 'n kwotasie. 837 01:00:47,050 --> 01:00:48,720 Dit gaan van links bo na regs onder. 838 01:00:48,720 --> 01:00:52,690 Hier op my Mac sleutelbord dit is in die boonste linkerhoek. 839 01:00:52,690 --> 01:00:58,150 Dit karakter kan gebruik word om 'n opdrag binne 'n bevel uit te voer. 840 01:00:58,150 --> 01:01:03,400 As jy 'n uitdrukking in backquotes, 841 01:01:03,400 --> 01:01:07,080 daardie uitdrukking is 'n opdrag, is dit hardloop. 842 01:01:07,080 --> 01:01:09,010 Die uitset van daardie bevel 843 01:01:09,010 --> 01:01:11,980 word dan vervang vir die hele backquote uitdrukking 844 01:01:11,980 --> 01:01:16,110 binne 'n langer opdrag wat loop dan met die opbrengs 845 01:01:16,110 --> 01:01:22,010 as deel van sy string van argumente en so meer. 846 01:01:22,010 --> 01:01:28,640 Hier is 'n opdrag wat gebruik maak van dit. 847 01:01:28,640 --> 01:01:32,340 Kom ons demonstreer die operasie hier. 848 01:01:44,980 --> 01:01:49,090 Kom ons gaan hier, neem die backquotes. 849 01:01:49,090 --> 01:01:54,410 Beheer van 'n kry my aan die begin van die lyn met die Emacs redigering sintaksis. 850 01:01:54,410 --> 01:02:00,380 Tot dusver het die padnamen is wat waar kom, 851 01:02:00,380 --> 01:02:05,040 maar toe ek dit doen soos hierdie, is dit dan prop in die lys van padnamen 852 01:02:05,040 --> 01:02:08,750 in die plek van hierdie hele backquote uitdrukking en lopies LS-l op hulle. 853 01:02:08,750 --> 01:02:11,120 Soort van gerieflike, huh? 854 01:02:11,120 --> 01:02:14,860 So dit is een ding netjies. Dit is hoe backquotes werk. 855 01:02:14,860 --> 01:02:17,560 Kom ons gaan af 'n bietjie verder nou. 856 01:02:17,560 --> 01:02:22,050 Dit is aliasse. Ek het eintlik die gebruik van hierdie. 857 01:02:22,050 --> 01:02:26,410 Ek sal probeer om dit in te kry met 1 redigering operasie. 858 01:02:34,900 --> 01:02:36,900 Goed. 859 01:02:36,900 --> 01:02:39,630 Nou laat ons sien hoe die definisies uitgekom. 860 01:02:39,630 --> 01:02:44,930 alias LWH my vertel hoe dit gedefinieer word. 861 01:02:44,930 --> 01:02:51,210 Let daarop dat dit is net dit nie, maar die buitenste aanhalings is geneem uit 862 01:02:51,210 --> 01:02:53,750 en die uitroepteken is geneem uit. 863 01:02:53,750 --> 01:02:58,940 *, Volledige lys van al die argumente. 864 01:02:58,940 --> 01:03:03,580 In 'n alias definisie dit terug sal van toepassing wees waar ek dit gebruik. 865 01:03:03,580 --> 01:03:10,620 LWH ksh bash. Goed. 866 01:03:10,620 --> 01:03:13,960 Sien hoe dit werk? Dit spaar my 'n paar tik. 867 01:03:13,960 --> 01:03:16,440 Kom ons gaan 'n bietjie net iets anders om hier te noem. 868 01:03:19,150 --> 01:03:23,120 Let hier die verskillende doppe. Ek moet dit voor genoem het. 869 01:03:23,120 --> 01:03:36,060 Die csh het 'n 2 hier en so ook / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Ons kon vestig deur 'n ander manier wat dit is eintlik dieselfde lêer. 871 01:03:39,870 --> 01:03:43,150 Onthou ek het gesê as jy tik sh jy bash. 872 01:03:43,150 --> 01:03:47,390 Tik hierdie en jy kry hierdie. 873 01:03:47,390 --> 01:03:51,730 Maar dit is nie gekoppel. Diegene het enkele mense daar. 874 01:03:51,730 --> 01:03:54,910 En dit is nie die aard van die lêer wat kan 'n ander een noem. 875 01:03:54,910 --> 01:03:59,460 So dit is afsonderlike lêers, die C-dop kinders is dieselfde lêer. 876 01:03:59,460 --> 01:04:03,640 Terug hier, die ander een hier, hierdie alias, 877 01:04:03,640 --> 01:04:09,090 daarop dat hardloop hierdie opdrag, lêer. 878 01:04:09,090 --> 01:04:13,810 Dit alias loop nie. File vertel jy die tipe van 'n lêer. 879 01:04:13,810 --> 01:04:20,330 So FWH ksh bash. Goed. 880 01:04:20,330 --> 01:04:23,230 Dit is die opbrengs van die lêer opdrag. 881 01:04:23,230 --> 01:04:24,630 Ek weet nie of jy weet wat dit beteken hier, 882 01:04:24,630 --> 01:04:26,750 Mach-O universele binêre met 2 argitekture. 883 01:04:26,750 --> 01:04:30,470 Daar is 2 moontlike verwerker tipes in Mac, 884 01:04:30,470 --> 01:04:34,780 en 'n paar programme is geskryf om in staat wees om te hardloop met beide, 885 01:04:34,780 --> 01:04:37,950 en die lêer opdrag kan bepaal dat, so dit is wat dit beteken nie. 886 01:04:37,950 --> 01:04:40,660 Beide van hierdie lêers is geskryf dat die pad. 887 01:04:40,660 --> 01:04:43,760 So sien ons hoe die alias werk, sien ons hoe die backquote werk, 888 01:04:43,760 --> 01:04:48,640 ons sien hoe die werklike lêer LS of lêer werk. 889 01:04:52,050 --> 01:04:57,000 Dit kan nie werk nie. Probeer "waar waar" en "LWH waar". Goed, kom ons probeer dit. 890 01:04:57,000 --> 01:05:01,040 waar waar. 891 01:05:01,040 --> 01:05:03,500 waar is 'n dop ingeboude. 892 01:05:03,500 --> 01:05:06,970 Onthou vroeër ons gewys dat Bash het nie waar. 893 01:05:06,970 --> 01:05:10,080 As jy tik, waar in die Shell, kry jy 'n fout boodskap. 894 01:05:10,080 --> 01:05:12,540 Dit is net 'n deel van die dop, eerder as om 'n aparte opdrag. 895 01:05:12,540 --> 01:05:20,000 Wat gebeur as ek tik LWH soek waar? Sien wat daar gebeur. 896 01:05:20,000 --> 01:05:22,850 Gehardloop waar waar, het hierdie produksie, en dan probeer LS te hardloop 897 01:05:22,850 --> 01:05:25,600 as l op die plek waar 'n dop ingeboude. 898 01:05:25,600 --> 01:05:28,790 waar is daar, maar die ander mense nie bestaan ​​nie. 899 01:05:28,790 --> 01:05:32,090 Nie een van hierdie bestaan ​​nie, eintlik. 900 01:05:32,090 --> 01:05:35,560 Sodat nie altyd werk nie, en dit illustreer ook hoe sommige dinge 901 01:05:35,560 --> 01:05:39,580 doen nie heeltemal wat jy dalk gedink het. 902 01:05:40,930 --> 01:05:43,010 Kom ons gaan 'n bietjie verder hier. 903 01:05:44,890 --> 01:05:54,760 Dit is hier is in Bash. Dit is ook die opdrag vervang soos die backquote. 904 01:05:54,760 --> 01:06:05,280 Maar in teenstelling met backquote, dit maak gebruik van hierdie veranderlike styl. 905 01:06:05,280 --> 01:06:09,860 Daar is 'n aantal uitdrukkings wat begin met 'n dollar-teken, 906 01:06:09,860 --> 01:06:16,070 en terwyl dit is nie veranderlikes, het hulle geleen om die gebruik van die dollar-teken 907 01:06:16,070 --> 01:06:19,570 'n uitdrukking van 'n soort aan te dui. 908 01:06:19,570 --> 01:06:23,550 Dit kan omring word deur hakies of hakies of dubbel hakies, 909 01:06:23,550 --> 01:06:26,320 wat 'n ander doel. 910 01:06:26,320 --> 01:06:29,500 Enkele hakies hier is 'n bevel vervang, net soos die backquotes. 911 01:06:29,500 --> 01:06:32,720 Double hakies is eintlik 'n rekenkundige operasie. 912 01:06:32,720 --> 01:06:35,380 Daar is ander syntaxes, ander bedrywighede. 913 01:06:35,380 --> 01:06:41,520 Backquote sintaksis is beskikbaar in Bash. 914 01:06:41,520 --> 01:06:46,780 Maar hierdie een is beter. Dit is veel makliker om te lees en dit laat broei. 915 01:06:46,780 --> 01:06:51,300 Jy kan binne (opdrag) $ n ander opdrag, 916 01:06:51,300 --> 01:06:54,590 iets soos - 917 01:07:14,560 --> 01:07:18,210 Ek kry 'n lys daar. 918 01:07:18,210 --> 01:07:21,670 Dit sal werk as ek die backquote ook. 919 01:07:32,050 --> 01:07:38,470 Wat as ek wil iets te doen - 920 01:08:03,390 --> 01:08:06,430 Jy sal waarskynlik nie eintlik gebruik van hierdie opdrag, 921 01:08:06,430 --> 01:08:14,160 maar hierdie interne opdrag vervanging eggo die name van al die lêers wat begin met 'n, 922 01:08:14,160 --> 01:08:18,229 dan is hierdie een loop LS-l op die lêers, 923 01:08:18,229 --> 01:08:20,500 en dan hierdie een eggo net die uitset. 924 01:08:21,729 --> 01:08:24,479 Jy sal waarskynlik nie doen nie, jy net wil nie die eggo of LS, 925 01:08:24,479 --> 01:08:29,450 maar dit illustreer hoe die nes van opdragte werk. 926 01:08:29,450 --> 01:08:34,380 So net nog 'n kenmerk hier. 927 01:08:34,380 --> 01:08:37,450  Ek het dit vroeër, dat wanneer jy waar in die C-dop, 928 01:08:37,450 --> 01:08:42,770 tik werke in die Bourne-tipe doppe vir die opspoor van opdragte. 929 01:08:48,939 --> 01:08:52,270 Ingeboude opdragte, net wat ek daar gesê. 930 01:08:52,270 --> 01:08:54,640 Opdragte is deel van die dop, soos waar. 931 01:08:54,640 --> 01:08:59,880 Wanneer die dop voer 'n opdrag soos LS, is dit geplaas om dit deur middel van die pad, 932 01:08:59,880 --> 01:09:03,029 vind dit in sommige Gids iewers, 933 01:09:03,029 --> 01:09:05,800 lees wat in die geheue, skep 'n nuwe dop, 934 01:09:05,800 --> 01:09:08,960 lees die opdrag LS of wat ook al in die dop 935 01:09:08,960 --> 01:09:11,450 waar die omgewing veranderlikes is reeds geleë, 936 01:09:11,450 --> 01:09:14,000 en dan dra dit uitvoering om dit te. 937 01:09:14,000 --> 01:09:18,319 Ingeboude in bevel, die kode vir daardie bevel is binne-in die dop, 938 01:09:18,319 --> 01:09:21,460 sodat die dop net begin uitvoer deel van sy eie kode. 939 01:09:21,460 --> 01:09:24,569 waar so 'n bevel. Dit raak eintlik vinniger. 940 01:09:24,569 --> 01:09:28,380 Dit hoef nie iets in die geheue te lees nie, dit is reeds in die geheue. 941 01:09:28,380 --> 01:09:32,460 Ingeboude opdragte altyd voorkeur bó opdragte met dieselfde naam. 942 01:09:32,460 --> 01:09:36,050 Opdragte wat in dopgehou in die pad kan dieselfde naam het, 943 01:09:36,050 --> 01:09:39,090 opdragte in verskillende dopgehou, lêers in verskillende dopgehou. 944 01:09:39,090 --> 01:09:41,740 Die een wat vroeër in die pad kom, is die een wat jy kry. 945 01:09:41,740 --> 01:09:43,770 As daar 'n ingeboude in bevel, het jy altyd kry. 946 01:09:43,770 --> 01:09:47,890 Daar is geen manier om dit 'n laer voorrang as 'n opdrag in die pad te gee. 947 01:09:47,890 --> 01:09:54,140 As jy wil hê dat die pad bevel te kry, kan jy tik die volle padnaam. 948 01:09:54,140 --> 01:09:55,850 As daar 'n opdrag waar in die pad iewers, 949 01:09:55,850 --> 01:09:58,440 jy kan / bin / waar tik en jy sal dit kry. 950 01:09:58,440 --> 01:10:01,800 As jy nie wil hê dat die hele padnaam te tik, kan jy 'n alias definieer. 951 01:10:01,800 --> 01:10:06,310 In werklikheid, as jy het die alias dieselfde naam as die gebou in opdrag, sou dit werk 952 01:10:06,310 --> 01:10:08,790 omdat die alias definisie geëvalueer 953 01:10:08,790 --> 01:10:13,220 voor die dop bepaal dat dit 'n ingeboude in opdrag wat uitgevoer moet word. 954 01:10:18,810 --> 01:10:23,440 Dan is hierdie kry 'n bietjie meer ingewikkeld met 'n paar opdragte hier. 955 01:10:23,440 --> 01:10:29,880 Die geval van sommige opdragte is eintlik gebou in opdragte en in die pad. 956 01:10:29,880 --> 01:10:34,140 Een van hulle is eggo, die opdrag Ek het net 'n kort rukkie gelede gebruik in daardie voorbeelde. 957 01:10:34,140 --> 01:10:37,410 Echo is 'n opdrag in die pad en dit is in elke dop. 958 01:10:37,410 --> 01:10:40,580 Hulle noodwendig al tree nie op dieselfde manier. 959 01:10:40,580 --> 01:10:42,970 Dit was oorspronklik 'n bevel net in die pad. 960 01:10:42,970 --> 01:10:45,280 Dit is later in die doppe gebou. 961 01:10:45,280 --> 01:10:48,080 Want daar is opsies wat afhanklik is van die omgewing 962 01:10:48,080 --> 01:10:52,970 en die command line opsies, die gebou in opdragte 963 01:10:52,970 --> 01:10:57,030 geskryf dieselfde as die opdrag wat was in die pad te kan funksioneer, 964 01:10:57,030 --> 01:10:59,670 dit is onwaarskynlik dat hulle wil hê dat die manier geskryf gewees het 965 01:10:59,670 --> 01:11:01,720 As die opdrag nie reeds geskryf vir die pad. 966 01:11:01,720 --> 01:11:06,180 So dit het newe-effekte. Sy geskiedenis het gevolge hier. 967 01:11:06,180 --> 01:11:08,380 Daar is opsies wat daar. 968 01:11:14,280 --> 01:11:23,060 Daar is ook 'n opsie gedefinieer deur 'n veranderlike in die tcsh genoem echo_style. 969 01:11:23,060 --> 01:11:27,700 Dit is een van die veranderlikes wat die manier waarop ECHO werk verander. 970 01:11:27,700 --> 01:11:30,910 Daar is ander gevalle waar jy kan 'n veranderlike toewys 971 01:11:30,910 --> 01:11:36,290 wat verander die manier waarop die dop operasie, insluitend 'n ingeboude in bevel, werk. 972 01:11:36,290 --> 01:11:38,130 Dit sou nie enige iets anders raak 973 01:11:38,130 --> 01:11:40,640 aangesien ander opdragte nie toegang tot die dop veranderlikes het nie, 974 01:11:40,640 --> 01:11:42,090 net die omgewing veranderlikes. 975 01:11:42,090 --> 01:11:45,360 Maar dop bedrywighede kan die dop veranderlikes lees. 976 01:11:45,360 --> 01:11:50,710 Dit sal nie werk vir csh. Dis net tcsh. Dit is een van die verbeterings. 977 01:11:58,540 --> 01:12:04,620 Parsing het rye wanneer dit evalueer metakarakters, 978 01:12:04,620 --> 01:12:08,140 wanneer dit evalueer veranderlikes, aliasse, geskiedenis verwysings. 979 01:12:08,140 --> 01:12:11,830 Daar is 'n bepaalde volgorde vir hierdie dinge. 980 01:12:11,830 --> 01:12:13,730 As dit nie in 'n bepaalde volgorde 981 01:12:13,730 --> 01:12:16,080 en kry om iets wat 'n uitdrukking van 'n soort 982 01:12:16,080 --> 01:12:20,650 wat reeds geëvalueer word, sal dit nie weer te evalueer. 983 01:12:20,650 --> 01:12:24,520 As dit nie, dan sal dit net verby op die karakters. 984 01:12:24,520 --> 01:12:29,920 So as evaluering van 'n paar uitdrukkings soos command vervanging 985 01:12:29,920 --> 01:12:36,850 of veranderlike of wat ook al wat aanleiding gee tot 'n uitdrukking 986 01:12:36,850 --> 01:12:39,240 wat jy graag wil hê om geëvalueer te word, 987 01:12:39,240 --> 01:12:42,510 wat sal werk net as wat evaluering later in die volgorde plaasvind. 988 01:12:42,510 --> 01:12:45,010 Ek hoop ek wat duidelik daar. 989 01:12:45,010 --> 01:12:50,460 Dit ontleding ry, 'n operasie in die C-dop, 990 01:12:50,460 --> 01:12:56,490 is nie dieselfde vir ingeboude opdragte soos dit is vir nie-ingeboude opdragte. 991 01:12:56,490 --> 01:12:58,890 Ek is nie seker oor Bash daar. 992 01:12:58,890 --> 01:13:02,450 Byvoorbeeld, as 'n dop veranderlike het 'n geskiedenis verwysing, 993 01:13:02,450 --> 01:13:04,230 sou dit waarskynlik nie weer terug in die geskiedenis gaan. 994 01:13:04,230 --> 01:13:06,010 Dit sou net die uitroepteken. 995 01:13:06,010 --> 01:13:08,840 In werklikheid, kan ons net probeer dat uit nou. 996 01:13:09,720 --> 01:13:18,240 a = en ons sal dit in daar te vestig. 997 01:13:30,690 --> 01:13:34,580 O, wag. Jammer. Ek het dit gedoen in die bash. Ek wou dit hier doen. 998 01:13:53,470 --> 01:13:56,080 Sien, so dit het nie dat die geskiedenis verwysing evalueer 999 01:13:56,080 --> 01:14:00,520 want dit was al verby die punt van die evaluering van die geskiedenis uitdrukkings 1000 01:14:00,520 --> 01:14:02,720 wanneer dit geëvalueer die veranderlike. 1001 01:14:02,720 --> 01:14:05,550 So dit is 1 effek van ontleding. 1002 01:14:05,550 --> 01:14:08,760 En weer, is 'n ingeboude in bevele nie gedoen op dieselfde manier. 1003 01:14:08,760 --> 01:14:11,230 Alle regte. Kom ons gaan na die volgende een hier. 1004 01:14:11,230 --> 01:14:16,060 Dit is bedoel om 1 lyn te wees nie, maar dit maak dit makliker om te lees. 1005 01:14:19,130 --> 01:14:21,530 Wat beteken dat jy doen? 1006 01:14:21,530 --> 01:14:28,640 Jy kan onthou dat ons sterretjies as lêernaam wildcards kan evalueer, 1007 01:14:28,640 --> 01:14:33,890 en daar is ander lêernaam wildcards soos die vraagteken en bracket uitdrukkings. 1008 01:14:33,890 --> 01:14:39,000 Daardie soort evaluering globbing genoem. 1009 01:14:39,000 --> 01:14:46,290 stel noglob aan die begin van hierdie bevel sê dit nie doen nie. 1010 01:14:46,290 --> 01:14:53,370 ontstel noglob sê gaan terug na dit te doen. 1011 01:14:53,370 --> 01:14:56,440 Let daarop dat stel glob wil nie hê dat effek. 1012 01:14:56,440 --> 01:15:00,800 In gewone taal, sou stel glob of ontstel noglob blyk te wees ekwivalent, 1013 01:15:00,800 --> 01:15:03,290 maar hier is dit nie. Dit is ontstel noglob. 1014 01:15:05,120 --> 01:15:07,910 Nou tStel. tStel staan ​​vir terminale stel. 1015 01:15:07,910 --> 01:15:11,840 Dit is nie wat dikwels nou gebruik, maar voor te venster stelsels beskikbaar geword het 1016 01:15:11,840 --> 01:15:15,760 en jy het 'n enkele terminaal, kan jy die tipe om te bepaal. 1017 01:15:15,760 --> 01:15:18,700 En as daar iets is oor 'n Ethernet of van die netwerk kom, 1018 01:15:18,700 --> 01:15:21,120 wil jy dalk om te sê dit is 'n VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 is soort van 'n standaard in die terminale besigheid. Dit kom van die Desember terminale. 1020 01:15:26,630 --> 01:15:35,270 As jy net doen inbel - sien dat? Dit gaan terug 'n manier, huh? 1021 01:15:35,270 --> 01:15:39,520 So as ons net nie tStel hier, 1022 01:15:39,520 --> 01:15:45,250 as ek net doen tStel, is dit die Herstel my terminale, maar jy het niks gesien nie. 1023 01:15:45,250 --> 01:15:47,340 Dit het nie regtig verander nie. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Goed. 1026 01:15:51,480 --> 01:15:53,350 setenv KWARTAAL xterm-kleur. 1027 01:15:53,350 --> 01:15:57,080 Ons weet reeds dat die term is vasgestel dat die pad, so dit het nie verander nie. 1028 01:15:57,080 --> 01:15:58,860 Dit is die manier waarop ons wil hê om dit te doen. 1029 01:15:58,860 --> 01:16:07,080 Maar let op dat hierdie opdrag, tStel-s, net uitset hierdie opdragte. Dit het nie hardloop hulle. 1030 01:16:07,080 --> 01:16:09,770 Dit het nie hierdie gebooie loop nie, dit uitset hulle. 1031 01:16:09,770 --> 01:16:13,650 So dit is bedoel om bevele wat dan uitgevoer word om te produseer. 1032 01:16:13,650 --> 01:16:16,360 Jy onthou die bevel in daardie lêer Ek het net het jy 'n Q in dit. 1033 01:16:16,360 --> 01:16:18,910 So laat ons dit doen. 1034 01:16:18,910 --> 01:16:23,750 Die Q onderdruk sommige uitvoer, maar dit maak nie saak hier, soos jy kan sien. 1035 01:16:23,750 --> 01:16:27,980 Ek is net om dit te doen om te wys dat dit nie saak maak nie. 1036 01:16:27,980 --> 01:16:31,870 Dit is in backquote sintaksis. 1037 01:16:31,870 --> 01:16:35,340 Let op die backquote hier, backquote hier. 1038 01:16:35,340 --> 01:16:37,680 Ek laat hierdie dinge hier. 1039 01:16:37,680 --> 01:16:39,570 Dit is gevalle van vertel dit wat om te doen 1040 01:16:39,570 --> 01:16:42,050 in die geval van spesifieke tipes van terminale - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, netwerk, inbel, wat jy het. 1042 01:16:45,400 --> 01:16:48,050 Dit maak nie saak hier, want ons is nie eintlik enige van hierdie dinge. 1043 01:16:48,050 --> 01:16:49,720 Ek is net ter illustrasie van die opdrag. 1044 01:16:49,720 --> 01:16:55,170 As ek dit doen met die backquote, wat gaan ek te kry? 1045 01:16:55,170 --> 01:17:00,210 Let ook hier dat dit sluit in die versameling noglob en die ontstel noglob, 1046 01:17:00,210 --> 01:17:02,630 So dit is nou oorbodig die definisie. 1047 01:17:02,630 --> 01:17:05,380 Dit was nie altyd waar nie, maar nou is hulle in hierdie opdrag. 1048 01:17:05,380 --> 01:17:08,890 Maar laat ons kyk wat gebeur as ek doen wat 1049 01:17:08,890 --> 01:17:12,570 en gaan na die begin van die lyn met die beheer oor 'en ek doen nie. 1050 01:17:14,380 --> 01:17:18,040 Goed, gestel: Opdrag nie gevind nie. Dit is soort van vreemd, is dit nie? 1051 01:17:18,040 --> 01:17:20,570 stel is 'n bekende opdrag. Dit is deel van die dop. 1052 01:17:20,570 --> 01:17:24,040 stel: Opdrag nie gevind nie? Hoekom is dit? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Wel, laat ons dink oor hierdie. 1054 01:17:26,790 --> 01:17:31,100 Dit loop 'n backquote bevel vervang, 1055 01:17:31,100 --> 01:17:37,430 en wat gebeur op 'n sekere deel van die volgorde van die ontleding van die opdrag. 1056 01:17:37,430 --> 01:17:40,360 stel is 'n ingeboude in bevel. 1057 01:17:40,360 --> 01:17:43,900 So deur die tyd wat dit doen wat bevel vervang, 1058 01:17:43,900 --> 01:17:48,280 dit is reeds gekry verby die punt van die identifisering van ingeboude opdragte. 1059 01:17:48,280 --> 01:17:51,900 So dit behandel soos asof dit 'n opdrag in die pad. 1060 01:17:51,900 --> 01:17:55,440 Nodeloos om te sê, beteken dit nie vind nie, en jy kry 'n fout. 1061 01:17:55,440 --> 01:17:59,300 Wel. Daar is 'n voorbeeld van ontleding ry. 1062 01:17:59,300 --> 01:18:01,460 En wat doen ons daaraan? 1063 01:18:01,460 --> 01:18:04,800 Let op hierdie baie interessante opdrag hier, eval. 1064 01:18:04,800 --> 01:18:06,530 Ek wonder wat dit beteken. 1065 01:18:06,530 --> 01:18:08,760 As jy kyk na die handleiding - en laat ons net doen wat 1066 01:18:08,760 --> 01:18:12,000 om te wys hoe verwarrend hierdie handleidings is - 1067 01:18:12,000 --> 01:18:19,400 man tcsh, verward handleiding, vind dinge hier is nie maklik nie. 1068 01:18:19,400 --> 01:18:31,850 Hier gaan ons, eval arg, sodat ons 1 of meer argumente kan hê 1069 01:18:31,850 --> 01:18:34,090 en daar is 'n lys van die dinge wat daar. 1070 01:18:34,090 --> 01:18:37,730 Behandel die argumente as insette tot die dop 1071 01:18:37,730 --> 01:18:43,600 en voer die gevolglike bevele in die konteks van die huidige dop. 1072 01:18:43,600 --> 01:18:46,900 Dit word gewoonlik gebruik om opdragte gegenereer as gevolg van die opdrag uit te voer 1073 01:18:46,900 --> 01:18:51,310 of veranderlike vervanging, want ontleding plaasvind voor die plaasvervangers. 1074 01:18:51,310 --> 01:18:52,580 Baie goed. 1075 01:18:52,580 --> 01:18:54,740 En hier is hulle selfs verwys na die tStel opdrag vir 'n voorbeeld gebruik 1076 01:18:54,740 --> 01:18:57,700 soos die een wat ek net het jy. 1077 01:18:57,700 --> 01:19:00,440 Nou het ek die venster om terug na 'n nuttige plek kry. 1078 01:19:03,150 --> 01:19:07,800 Kom ons kry hier en ons sal sien wat eval word net voor dit. 1079 01:19:07,800 --> 01:19:14,010 So laat ons sien wat gebeur as ons het - hier gaan ons met die pyle aan daardie bevel 1080 01:19:14,010 --> 01:19:20,940 en beheer oor 'n aan die begin, eval. 1081 01:19:20,940 --> 01:19:22,850 Goed, so dit werk. 1082 01:19:22,850 --> 01:19:26,440 As jy dit doen eval, neem dit wat kom nadat dit en maak dit 'n opdrag. 1083 01:19:26,440 --> 01:19:29,460 Dit stel jou in staat om te ontleed nie in wese is dit twee keer. 1084 01:19:29,460 --> 01:19:33,710 Die artikel hier loop die opdrag binne die backquotes, 1085 01:19:33,710 --> 01:19:36,210 kry die uitset. 1086 01:19:36,210 --> 01:19:42,850 Uitset is veronderstel om te loop nie as daardie opdragte hier soos hierdie 1087 01:19:42,850 --> 01:19:45,890 op hierdie een en hierdie een. 1088 01:19:45,890 --> 01:19:50,100 So daardie opdragte is nou hier in hierdie volgorde, 1089 01:19:50,100 --> 01:19:58,950 maar hierdie is 'n ingeboude in opdragte en dit nie kan kry hulle dadelik. 1090 01:19:58,950 --> 01:20:06,440 So ons gaan na eval, eval optel wat op, begin die hele ding alles weer, en dit werk. 1091 01:20:06,440 --> 01:20:18,460 'N voorbeeld van beide backquoting, eval, ontleding, gevolge van ontleding, 1092 01:20:18,460 --> 01:20:21,910 en 'n opdrag wat waarskynlik baie min gebruik vir jou vandag. 1093 01:20:21,910 --> 01:20:25,540 Goed. Alle reg, Umask. 1094 01:20:25,540 --> 01:20:32,160 Kom ons kyk hier by hierdie opdrag, Umask 022. Ek wonder wat dit beteken. 1095 01:20:32,160 --> 01:20:38,420 Kom ons tik net Umask met niks nadat dit. 22. Goed. 1096 01:20:38,420 --> 01:20:44,350 022 en dit weer doen. 1097 01:20:44,350 --> 01:20:48,580 Soos jy kan raai, Umask met geen argumente vertel jy die huidige masker; 1098 01:20:48,580 --> 01:20:51,760 Umask met argumente maak dit nie, maar dit was die een wat ek reeds gehad het. 1099 01:20:51,760 --> 01:20:53,800 Wat beteken 022 beteken? 1100 01:21:01,650 --> 01:21:07,080 Dit is hier om die beskerming vir 'n lêer. 1101 01:21:07,080 --> 01:21:11,440 Hulle bepaal wat toegelaat is om te lees, skryf of voer die lêer. 1102 01:21:11,440 --> 01:21:16,560 Beskerming is ook regte genoem. 1103 01:21:16,560 --> 01:21:21,390 Die r staan ​​vir lees, die w vir skryf, 1104 01:21:21,390 --> 01:21:25,500 en die x, wat nie teenwoordig is nie daar nie, staan ​​vir uitvoer. 1105 01:21:25,500 --> 01:21:27,260 Daar is 3 kategorieë is daar. 1106 01:21:27,260 --> 01:21:33,540 Die laaste 3 elemente is in die kategorie van die gebruiker. Diegene van toepassing op my, die gebruiker. 1107 01:21:33,540 --> 01:21:36,870 Hierdie 3 hier is van toepassing op die groep. 1108 01:21:36,870 --> 01:21:41,590 Die lêer behoort aan 1 groep, kan die gebruiker behoort aan verskeie groepe, 1109 01:21:41,590 --> 01:21:47,150 maar as die gebruiker is in die groep waaraan hierdie lêer behoort, 1110 01:21:47,150 --> 01:21:51,090 dan is hierdie beskerming sal geld vir hom of hy is nie die gebruiker. 1111 01:21:51,090 --> 01:21:54,230 En hierdie een is almal anders. 1112 01:21:55,540 --> 01:21:57,690 Hierdie kategorieë is wedersyds uitsluitend. 1113 01:21:57,690 --> 01:21:59,750 Die gebruiker beskerming van toepassing vir hom 1114 01:21:59,750 --> 01:22:03,780 die groep beskerming van toepassing op lede van die ander groep as die gebruiker, 1115 01:22:03,780 --> 01:22:08,110 en die ander te beskerm net van toepassing op mense anders as die gebruiker en die lede van die groep. 1116 01:22:08,110 --> 01:22:12,320 As daar 'n r of AW of 'n x, beteken dit dat die beskerming verleen word. 1117 01:22:12,320 --> 01:22:13,950 As daar 'n koppelteken, beteken dit dit is nie. 1118 01:22:13,950 --> 01:22:16,690 Daar is eintlik ander dinge wat ingestel kan word hier Behalwe dit, 1119 01:22:16,690 --> 01:22:18,350 wat ek sal nie in nou. 1120 01:22:18,350 --> 01:22:24,450 Die Umask definieer 'n standaard vir lêers wat jy skep. 1121 01:22:24,450 --> 01:22:28,580 En as 'n masker, basies sê die stukkies wat jy nie opgestel. 1122 01:22:28,580 --> 01:22:30,450 Hoe het dit geword stukkies? 1123 01:22:30,450 --> 01:22:33,240 As jy dink van elk van hierdie as 'n oktale getal, 1124 01:22:33,240 --> 01:22:42,120 dit is die 1'e bietjie, dit is die 2's, dit is die 4s. 1125 01:22:42,120 --> 01:22:45,840 So 0 tot 7 1126 01:22:45,840 --> 01:22:51,770 sal beskryf wat n kombinasie van r's, w's, en x se jy vir hierdie 3 1127 01:22:51,770 --> 01:22:53,710 en dan 'n soortgelyke nommer vir hierdie en dan vir hulle nie. 1128 01:22:53,710 --> 01:23:12,030 So 022 beteken 0 vir ander, 2 vir die groep, 2 vir die gebruiker. 1129 01:23:12,030 --> 01:23:15,870 Maar dit is 'n masker. Die masker is wat jy nie het nie. 1130 01:23:19,380 --> 01:23:20,610 Ek is jammer. Ek het net jy het dinge in die verkeerde volgorde. 1131 01:23:20,610 --> 01:23:25,620 Dit is die eerste 3. Hierdie 3 is die gebruiker, hierdie 3 is die groep, hierdie 3 is die ander. 1132 01:23:25,620 --> 01:23:27,970 Jammer ek het julle dit in die verkeerde volgorde. 1133 01:23:27,970 --> 01:23:31,910 Die 0, wat is die eerste van die, nie die waarde vertoon, 1134 01:23:31,910 --> 01:23:35,430 Maar as 'n aantal nie daar is nie, is dit 'n 0. 1135 01:23:35,430 --> 01:23:38,370 Dit beteken dat al 3 van hulle sal toegelaat word nie. 1136 01:23:38,370 --> 01:23:41,550 Let daarop dat in hierdie spesifieke een die x word nie toegelaat nie. 1137 01:23:41,550 --> 01:23:44,090 Die rede hiervoor is dat die dop in staat is om te bepaal 1138 01:23:44,090 --> 01:23:46,260 of 'n lêer uitgevoer moet word of nie. 1139 01:23:46,260 --> 01:23:49,800 Aangesien dit nie 'n uitvoerbare lêer, het dit nie stel die x. 1140 01:23:49,800 --> 01:23:54,000 Die 2 beteken dat toestemming, die tweede kategorie hier skryf, 1141 01:23:54,000 --> 01:23:56,500 die een in die middel, word ontken. 1142 01:23:56,500 --> 01:23:58,500 So weer, dit is die dinge wat dit ontken. 1143 01:23:58,500 --> 01:24:02,080 Wel, is x toegelaat nie, maar dit is nie hier omdat dit nie uitvoerbaar 1144 01:24:02,080 --> 01:24:04,260 en soortgelyk vir die ander. 1145 01:24:04,260 --> 01:24:08,880 So dit is 'n algemene Umask. 1146 01:24:08,880 --> 01:24:14,630 Nog 'n algemene een is 700 - gee jouself alles en niemand anders nie. 1147 01:24:14,630 --> 01:24:17,040 En daar is ander moontlikhede. 1148 01:24:21,340 --> 01:24:27,110 Ek kom terug na wat gaan. Met behulp van die geskiedenis wat ek kan terug soek vir wat, LWH daar. 1149 01:24:27,110 --> 01:24:30,210 Goed. So hier, dit is die doppe. 1150 01:24:30,210 --> 01:24:36,020 Bash, die eienaar wat stelsel rekening, alles kan doen. 1151 01:24:36,020 --> 01:24:41,210 Groep en almal kan doen lees of uit te voer, maar nie skryf nie. 1152 01:24:41,210 --> 01:24:44,570 Hierdie een het nie eens toelaat dat die eienaar dit te skryf. 1153 01:24:44,570 --> 01:24:46,460 Indien die eienaar wou skryf nie, die stelsel rekening 1154 01:24:46,460 --> 01:24:48,020 Hy wil hê dat die beskerming van die eerste verander. 1155 01:24:48,020 --> 01:24:53,940 Maar weereens, die Umask verstek deur 'n masker nie, 1156 01:24:53,940 --> 01:24:57,160 deur aan te dui die stukkies wat nie sal opgestel word. 1157 01:24:57,160 --> 01:25:04,380 Dit is tipies in een van jou inisialisering lêers, wat is die. Cshrc vir die C-dop 1158 01:25:04,380 --> 01:25:07,500 of die. profiel vir die Bourne-tipe doppe. 1159 01:25:07,500 --> 01:25:12,520 Dit kan elders ook as daar ander inisialisering lêers op die stelsel. 1160 01:25:12,520 --> 01:25:14,610 In elk geval, dit is Umask. 1161 01:25:14,610 --> 01:25:18,180 Daar is iets soort van vreemd hier, 1162 01:25:18,180 --> 01:25:22,800 en dit is die rede waarom daar 'n enkele opdrag vir hierdie? 1163 01:25:22,800 --> 01:25:28,690 As ek skryf van hierdie, sal ek dit 'n veranderlike, Umask = 'n waarde maak. 1164 01:25:28,690 --> 01:25:31,100 Hoekom is daar 'n hele opdrag net vir hierdie doel? 1165 01:25:31,100 --> 01:25:34,560 Die rede hiervoor is dit gaan net terug na die oorsprong van Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix was net 'n paar programme projek by Bell Labs in die vroeë 1970's. 1167 01:25:41,050 --> 01:25:42,610 Mense het net saam te program. 1168 01:25:42,610 --> 01:25:45,290 Hulle het nooit bedoel dat dit tot 'n wêreldwye bedryfstelsel word. 1169 01:25:45,290 --> 01:25:47,250 Verskillende mense het verskillende dele sonder om te dink baie 1170 01:25:47,250 --> 01:25:49,790 van hoe hulle gebruik gaan word - eerder oppervlakkig. 1171 01:25:49,790 --> 01:25:53,290 En dit bymekaar gekom het soos dit, en dit is nog steeds soos wat in sommige opsigte. 1172 01:25:53,290 --> 01:25:57,930 So wat weerspieël die geskiedenis, en daar is nog steeds hierdie teenstrydighede en vreemde elemente van dit. 1173 01:25:57,930 --> 01:26:00,750 Goed. Volgende een hier. 1174 01:26:08,170 --> 01:26:11,000 Soos ek vroeër geskryf het, is die C-dop nie regtig gebruik baie vir ontwikkeling, 1175 01:26:11,000 --> 01:26:12,420 hoewel dit kan wees. 1176 01:26:12,420 --> 01:26:15,080 Dit voer stadiger, weer die trade-off tussen interaktiewe gebruik, 1177 01:26:15,080 --> 01:26:17,820 wat meer verwerking betrokke as spoed, 1178 01:26:17,820 --> 01:26:20,710 wat kan doen sonder die verwerking. 1179 01:26:20,710 --> 01:26:28,320 Die ekstra funksies bygevoeg tot die Bourne dop deur die Korn en Bourne-weer doppe 1180 01:26:28,320 --> 01:26:32,120 nie lyk om hulle te vertraag, en ek weet nie hoekom dit is. 1181 01:26:32,120 --> 01:26:36,310 Dit mag dalk net 'n beter ontwikkeling, maar ek is nie in 'n posisie om te weet. 1182 01:26:36,310 --> 01:26:40,420 Spoed hier is eintlik nie so 'n groot deal, maar dit word genoem. 1183 01:26:40,420 --> 01:26:43,690 Die rede hiervoor is dat die dop skrifte eintlik redelik vinnig. 1184 01:26:43,690 --> 01:26:46,450 As daar 'n klomp van opdragte soos in 'n Berekende program, 1185 01:26:46,450 --> 01:26:49,110 sou jy waarskynlik nie doen dit in 'n skulp script. 1186 01:26:49,110 --> 01:26:51,450 Die bedrywighede daar is redelik eenvoudig en duidelik. 1187 01:26:51,450 --> 01:26:53,960 Die mense wat ek ervaar het wat te stadig 1188 01:26:53,960 --> 01:26:57,110 behels herhaalde aansoeke van stadige opdragte. 1189 01:26:57,110 --> 01:27:00,480 Vroeër het ek genoem die stroom editor sed. Daardie bevel is stadig. 1190 01:27:00,480 --> 01:27:03,760 As jy voer sed baie keer, sal jy 'n stadige script kry, maar dit is nie die dop wat is stadig. 1191 01:27:03,760 --> 01:27:07,920 Loop dit in die Bourne dop sal nie veel vinniger as loop dit in die C-dop, 1192 01:27:07,920 --> 01:27:10,070 Hoewel daar is dalk 'n paar voordele daar. 1193 01:27:10,070 --> 01:27:12,760 Die bykomende ontwikkeling vermoëns, aan die ander kant, 1194 01:27:12,760 --> 01:27:17,920 beduidende redes waarom jy die Bourne-tipe doppe sal gebruik. 1195 01:27:17,920 --> 01:27:21,390 C-dop het vreemde eienskappe na dit - 1196 01:27:21,390 --> 01:27:25,250 die feit dat jy nie weet wanneer 'n veranderlike is 'n dop veranderlike of 'n omgewing veranderlike. 1197 01:27:25,250 --> 01:27:27,440 Dit kan baie verwarrend wees. 1198 01:27:27,440 --> 01:27:32,170 Dit is nie so maklik om te skryf 1199 01:27:32,170 --> 01:27:35,930 Net op grond van jou ervaring van die ontwikkeling in ander tale. 1200 01:27:35,930 --> 01:27:41,350 Ek dink jy kan vind die Bourne-tipe doppe meer in ooreenstemming met jou ervaring. 1201 01:27:43,730 --> 01:27:49,270 Sommige skrifte, al is, kan duisende lyne in lengte. 1202 01:27:49,270 --> 01:27:52,450 Diegene wat ek gesien word gebruik vir lap bedryfstelsels. 1203 01:27:52,450 --> 01:27:55,450 Diegene kan baie stadig uit te voer, maar jy diegene loop nie baie dikwels. 1204 01:27:55,450 --> 01:27:57,180 Dit is eers wanneer jy doen lap, 1205 01:27:57,180 --> 01:27:59,450 en dit is net die stelsel bestuurder wat dié dinge doen, 1206 01:27:59,450 --> 01:28:01,840 so dit is nie regtig veel van 'n probleem. 1207 01:28:01,840 --> 01:28:06,980 Diegene wat honderde lyne lank eintlik voer redelik vinnig. 1208 01:28:06,980 --> 01:28:10,540 Waarin hierdie hier, wat is die uitbreidings? 1209 01:28:10,540 --> 01:28:13,170 Ek het reeds genoem 'n paar van hulle - skikkings, berekeninge, 1210 01:28:13,170 --> 01:28:20,540 die $ () uitdrukking vir berekeninge in die Shell, 1211 01:28:20,540 --> 01:28:23,050 die ander soort bevel vervang. 1212 01:28:23,050 --> 01:28:25,360 Daar is verskillende soorte van die toets opdragte 1213 01:28:25,360 --> 01:28:29,350 deur wat jy kan doen voorwaardelike toetse op die bestaan ​​van 'n lêer of ander dinge. 1214 01:28:29,350 --> 01:28:34,790 Laas hier, hierdie bevel hier. 1215 01:28:34,790 --> 01:28:38,480 Wat beteken dit doen, en hoekom sou enige iemand dit gebruik? 1216 01:28:51,170 --> 01:28:52,990 printenv veranderlike. 1217 01:28:52,990 --> 01:28:56,130 Ons weet wat printenv doen. Dit vertel ons die waarde van 'n veranderlike. 1218 01:28:56,130 --> 01:29:00,850 En printenv veranderlike sal nie vir ons sê baie, want daar is nie so veranderlike. 1219 01:29:03,550 --> 01:29:05,120 Leeg. 1220 01:29:05,120 --> 01:29:08,440 Maar kom ons gee dit iets betekenisvol. 1221 01:29:13,420 --> 01:29:16,800 Dit is nie daar nie. Goed. Ek dink ek het nooit gedefinieer nie. 1222 01:29:16,800 --> 01:29:18,020 Kom ons kyk net my omgewing. 1223 01:29:18,020 --> 01:29:20,900 Dit is nog 'n opdrag wat jy kan jou omgewing inspekteer. 1224 01:29:20,900 --> 01:29:24,470 Daar is 'n goeie ou redakteur, die een wat ons gesien het voor. 1225 01:29:42,360 --> 01:29:44,120 Wat beteken dat jy doen? 1226 01:29:44,120 --> 01:29:48,050 Hier het ons 'n backquote uitdrukking. 1227 01:29:48,050 --> 01:29:50,370 Onthou, dit is die C-dop. 1228 01:29:50,370 --> 01:29:54,850 So printenv Editor gee ons 'n waarde van redakteur. Dit is vi. 1229 01:29:54,850 --> 01:29:59,790 En dan sal dit wat waarde ingestel op veranderlike a, die opdrag set. 1230 01:29:59,790 --> 01:30:02,860 So as ek nou doen echo $ a, ek kry vi. 1231 01:30:02,860 --> 01:30:05,850 Dit lyk nie vreeslik nuttig. 1232 01:30:05,850 --> 01:30:08,080 Dit is egter nie eintlik 'n doel. 1233 01:30:08,080 --> 01:30:12,260 Omdat ons weet nie of 'n veranderlike is 'n dop veranderlike of 'n omgewing veranderlike 1234 01:30:12,260 --> 01:30:16,280 deur gebruik te maak van die dollar teken evaluering sintaksis, kan ons printenv gebruik 1235 01:30:16,280 --> 01:30:19,460 om seker te maak dat dit 'n omgewing veranderlike nie. 1236 01:30:19,460 --> 01:30:22,550 So as daar 'n dop veranderlike redakteur, sou dit nie gekry het nie. 1237 01:30:22,550 --> 01:30:25,640 Dit werk slegs met die omgewing veranderlike. 1238 01:30:25,640 --> 01:30:28,370 As daar 'n dop veranderlike en ek wou die waarde daarvan, 1239 01:30:28,370 --> 01:30:29,980 Ek wil hê 'n ander manier om dit te doen om uit te vind. 1240 01:30:29,980 --> 01:30:33,530 Een manier om dit te doen sou wees om deur te doen stel en pype. 1241 01:30:33,530 --> 01:30:36,130 Dit is een van die metakarakters, spesiale karakters. 1242 01:30:36,130 --> 01:30:38,370 Dit stuur die opbrengs van stel na iets anders. 1243 01:30:38,370 --> 01:30:40,650 Kom ons kyk wat ons daar kon vind. 1244 01:30:40,650 --> 01:30:49,340 Niks nie. Goed. Laat ons net sien wat daar alles saam. 1245 01:30:49,340 --> 01:30:53,580 Dit was echo_style, die een wat ek voorheen genoem. Goed, laat ons dit doen. 1246 01:31:02,460 --> 01:31:06,230 Onthou ek voorheen genoem, echo_style 1247 01:31:06,230 --> 01:31:08,410 bepaal die manier waarop die eggo opdrag sal loop. 1248 01:31:08,410 --> 01:31:10,940 bsd staan ​​vir Berkeley Standard Distribution. 1249 01:31:10,940 --> 01:31:13,200 Dit is die Berkeley Unix uit die 1970's. 1250 01:31:13,200 --> 01:31:16,630 Dit is een van die maniere wat eggo kan hardloop. 1251 01:31:16,630 --> 01:31:22,310 Die opstel echo_style tot daardie waarde in die TC-dop sal veroorsaak eggo die manier om op te tree. 1252 01:31:22,310 --> 01:31:27,670 So stel dit doen, maar stel net kry dop veranderlikes. 1253 01:31:27,670 --> 01:31:35,430 Dit sou nie vind redakteur, wat nie 'n dop veranderlike. 1254 01:31:36,870 --> 01:31:38,050 Niks nie. 1255 01:31:38,050 --> 01:31:39,660 So dit is 'n manier om te onderskei hulle. 1256 01:31:39,660 --> 01:31:42,000 Maar die feit dat jy hoef te gaan deur 'n paar vreemde opdrag soos wat 1257 01:31:42,000 --> 01:31:45,500 om te onderskei tussen dop veranderlikes of omgewing veranderlikes 1258 01:31:45,500 --> 01:31:49,970 toon die soort onprakties aard van die C-dop vir sekere doeleindes. 1259 01:31:52,290 --> 01:31:57,960 En nou, die laaste en miskien die minste nie, is dit die man bladsye. 1260 01:31:57,960 --> 01:32:03,190 Diegene van wie jy ken, die man is die opdrag kort vir die handleiding. 1261 01:32:03,190 --> 01:32:08,610 Die man bladsye vir die dop is moeilik om te lees. Hulle is baie lank. 1262 01:32:08,610 --> 01:32:14,060 Hulle is georganiseer in 'n manier dat dit moeilik maak om te vind wat jy soek. 1263 01:32:14,060 --> 01:32:15,980 So as jy op soek is na iets met 'n doel, 1264 01:32:15,980 --> 01:32:20,050 jy mag nie weet of dit die doel is om 'n dop veranderlike of iets anders, 1265 01:32:20,050 --> 01:32:21,630 sodat jy mag nie weet waar om te kyk vir dit. 1266 01:32:21,630 --> 01:32:25,030 Jy kan kyk vir verskillende snare, maar die snare word dikwels herhaal. 1267 01:32:25,030 --> 01:32:27,640 So dit is oor die algemeen moeilik om te lees. 1268 01:32:27,640 --> 01:32:33,810 Ons het net gekyk na die TC-dop man bladsy 'n bietjie voor die eval opdrag te vind. 1269 01:32:33,810 --> 01:32:36,610 Sommige dinge gaan vinniger. 1270 01:32:36,610 --> 01:32:38,860 Een benadering is om te soek na 'n string. 1271 01:32:38,860 --> 01:32:40,360 Jy kan die pager gebruik. 1272 01:32:40,360 --> 01:32:49,080 Pager het die streep te kyk vir 'n opdrag of 'n string in 'n pager operasie. 1273 01:32:49,080 --> 01:32:52,830 Man by verstek sal gebruik pagers, hetsy meer of minder wees. 1274 01:32:52,830 --> 01:32:56,560 Ek weet nie of jy vertroud is met diegene, maar dié kan lêers bietjie wys bietjie. 1275 01:32:56,560 --> 01:33:00,550 Ek het al met behulp MINDER hierdie spesifieke lêers wat ons hier het, te vertoon. 1276 01:33:00,550 --> 01:33:03,300 Jy kan daar binne soek. 1277 01:33:03,300 --> 01:33:04,880 Jy kan probeer om met behulp van verskillende soek snare. 1278 01:33:04,880 --> 01:33:08,420 Ook man bladsye in verskillende bedryfstelsels kan nie dieselfde wees nie. 1279 01:33:08,420 --> 01:33:11,130 Hulle kan aparte bladsye vir csh en tcsh. 1280 01:33:11,130 --> 01:33:14,500 Hulle is nie op die Mac, maar hulle kan wees as dit is afsonderlike instruksies. 1281 01:33:14,500 --> 01:33:19,000 As k nie regtig Bash noem, is daar waarskynlik 'n aparte man bladsy wees. 1282 01:33:19,000 --> 01:33:25,820 Sommige stelsels het 'n aparte man bladsye net vir die C-dop ingeboude opdragte. 1283 01:33:25,820 --> 01:33:30,250 Soms as jy wil 'n beskrywing van 'n ingeboude in bevel om te lees 1284 01:33:30,250 --> 01:33:35,350 dit is ook in die pad, soos eggo, moet jy die man-bladsy op daardie opdrag op ECHO te lees 1285 01:33:35,350 --> 01:33:37,610 om te bepaal hoe dit sal werk as 'n gebou in opdrag 1286 01:33:37,610 --> 01:33:39,760 selfs as jy nie die roeping van die gebou-in-bevel. 1287 01:33:41,630 --> 01:33:46,090 Dit is 'n nadeel van die bedryfstelsel in die algemeen, nie net vir die doppe, 1288 01:33:46,090 --> 01:33:50,710 Hoewel die doppe in die besonder die man bladsye is baie lank, 1289 01:33:50,710 --> 01:33:56,180 deels omdat hulle het nuttige funksies bygevoeg aan hulle, wat dalk 'n positiewe. 1290 01:33:56,180 --> 01:34:00,290 Goed. Is daar enige vrae? Enige onderwerpe wat jy wil om te laat opkom? 1291 01:34:00,290 --> 01:34:03,390 Enigiets wat hier ter sprake? 1292 01:34:04,540 --> 01:34:07,100 Wel, dit is baie mooi praat met julle almal. 1293 01:34:07,100 --> 01:34:09,690 Ek hoop jy het iets uit van hierdie seminaar 1294 01:34:09,690 --> 01:34:13,080 wat nuttig sal wees vir jou in jou toekoms. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]