1 00:00:00,000 --> 00:00:02,320 >> [Seminar - predhat Unix, Mjediset] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [Kjo është CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Tema e sotme është shell Unix. 5 00:00:12,770 --> 00:00:20,600 Unë jam Douglas Kline, ekspert, ose së paku të arsyeshme përdorues kompetent, e shell. 6 00:00:20,600 --> 00:00:25,280 Një predhë është interface për përdoruesit të sistemit operativ të kompjuterit. 7 00:00:25,280 --> 00:00:29,580 Emri është mashtruese si, ndryshe nga një predhë kafshës, 8 00:00:29,580 --> 00:00:34,890 e cila është e vështirë dhe mbrojtëse, shell kompjuter lejon për komunikim. 9 00:00:34,890 --> 00:00:39,120 Pra, membrana poroze ndoshta do të jetë një metaforë më e mirë. 10 00:00:39,120 --> 00:00:44,500 >> Shell origjinal për Unix është shell Bourne. 11 00:00:44,500 --> 00:00:46,450 Bourne është shkruar B-O-u-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne ishte një nga autorët origjinalë të Unix, 13 00:00:49,770 --> 00:00:51,700 dhe kështu shell është emëruar pas tij. 14 00:00:51,700 --> 00:00:54,850 Emri i kësaj shell si një komandë është vetëm thjesht sh. 15 00:00:54,850 --> 00:00:57,400 Kjo është komanda që ju mund të ekzekutojë. 16 00:00:57,400 --> 00:01:00,810 Shell fillon në hyrje. 17 00:01:00,810 --> 00:01:04,459 Kur ju hyni në kompjuter, shell vetëm fillon drejtimin për ju, 18 00:01:04,459 --> 00:01:06,820 dhe kjo është ajo që e merr komandat tuaja. 19 00:01:06,820 --> 00:01:09,790 Ajo mund të fillojë herët e tjera gjithashtu. 20 00:01:09,790 --> 00:01:16,780 Nëse ju të sjellë një dritare me asnjë indikacion tjetër, ajo do të fillojë një shell për ju. 21 00:01:16,780 --> 00:01:20,450 Kjo është se si ajo është se ju mund të shkoni në një dritare dhe të filloni të shtypni komandat e 22 00:01:20,450 --> 00:01:23,960 dhe kështu me radhë atje edhe pse ju nuk hyni në atë dritare. 23 00:01:23,960 --> 00:01:26,670 Përveç kësaj, në qoftë se ju bëni një hyrje të largët, 24 00:01:26,670 --> 00:01:30,250 atëherë ajo do të fillojë një predhë në kompjuter në distancë. 25 00:01:30,250 --> 00:01:44,310 Dhe kjo është e mundur për të kandiduar komandat pa një shell interaktiv. 26 00:01:44,310 --> 00:01:48,990 Kjo mund të thotë brenda operacionit tuaj të tanishme, 27 00:01:48,990 --> 00:01:50,700 dhe gjithashtu mund të thotë një operacion të largët. 28 00:01:50,700 --> 00:01:52,900 Ju mund të dërgoni një komandë në një kompjuter tjetër, 29 00:01:52,900 --> 00:01:55,460 e cila përfshin filluar një predhë atje. 30 00:01:55,460 --> 00:01:57,760 Në fakt, ajo duhet të përfshijë filluar një predhë atje 31 00:01:57,760 --> 00:02:01,740 edhe në qoftë se nuk është qëllimi juaj i fundit. 32 00:02:05,310 --> 00:02:12,350 Kur diçka fillon si kjo, ajo nuk do të fillojë një shell të ri. 33 00:02:12,350 --> 00:02:17,430 Nëse ju të sjellë një dritare të re, është e mundur për të të treguar atë të sjellë deri një redaktor 34 00:02:17,430 --> 00:02:18,940 apo ndonjë komandë tjetër. 35 00:02:18,940 --> 00:02:20,560 Në këtë rast, redaktori do të fillojë nga e para. 36 00:02:20,560 --> 00:02:22,930 Kur mbaron redaktor, dritare përfundon. 37 00:02:22,930 --> 00:02:24,620 Kjo është pak e pazakontë, por kjo mund të bëhet. 38 00:02:24,620 --> 00:02:27,140 Në ato raste, ajo nuk do të jetë një shell. 39 00:02:27,140 --> 00:02:31,890 Pra, nuk është detyrimisht rasti që një dritare ose disa aplikim i tillë do të sjellë një shell. 40 00:02:31,890 --> 00:02:34,030 Shell >> parses komandat. 41 00:02:34,030 --> 00:02:40,900 Parsing nënkupton identifikimin e elementeve të ndryshme dhe klasifikimin e tyre. 42 00:02:40,900 --> 00:02:43,470 Brenda një komandë, vargu i plotë që ju shkruani, 43 00:02:43,470 --> 00:02:47,310 nuk do të jetë 1 ose më shumë komandat e vetme që do të ekzekutohen. 44 00:02:47,310 --> 00:02:50,050 Elemente të tjera mund të jenë argumente. 45 00:02:50,050 --> 00:02:55,020 Nuk mund të jetë edhe karaktere të veçanta të cilat ndikojnë në ekzekutimin e një komande. 46 00:02:55,020 --> 00:02:59,710 Ata mund të dërgoni e prodhimit diku tjetër se në ekran 47 00:02:59,710 --> 00:03:01,750 nëse komanda zakonisht do ta dërgojnë atë në ekran. 48 00:03:01,750 --> 00:03:04,390 Ajo mund të përcjellim të dhëna, ai mund të bëjë gjëra të tjera gjithashtu. 49 00:03:04,390 --> 00:03:08,120 Nuk janë simbole të ndryshme të tjera, karaktere, dhe kështu me radhë. 50 00:03:08,120 --> 00:03:13,600 Parsing përfshin zbulimin dhe interpretimin ato gjëra. 51 00:03:13,600 --> 00:03:19,560 >> Tani në qoftë se nuk ka më shumë pyetje, që është mjaft e mundshme pasi nuk ka më shumë njerëz, 52 00:03:19,560 --> 00:03:24,620 ne do të shkojmë në në faqen time të ardhshëm këtu. 53 00:03:24,620 --> 00:03:29,170 >> Thashë më parë se Bourne shell është shell fillestar. 54 00:03:29,170 --> 00:03:31,550 Ka edhe të tjerë. 55 00:03:31,550 --> 00:03:34,520 Njëra është C-shell. Komanda është csh. 56 00:03:34,520 --> 00:03:36,830 Emri C-shell është vetëm një lojë fjalësh. 57 00:03:36,830 --> 00:03:41,260 Kjo shell u prezantua me Berkeley Unix në mes të viteve 1970. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix ishte një ngjarje e farës në zhvillimin e Unix. 59 00:03:44,830 --> 00:03:48,770 Kjo ishte një revolucion i madh dhe ka përfshirë futjen e këtij shell. 60 00:03:48,770 --> 00:03:50,790 Arsyeja për këtë luajtur në fjalë, C-shell, 61 00:03:50,790 --> 00:03:56,490 është se C-shell ka disa karakteristika në të cilat ngjajnë gjuhën C, 62 00:03:56,490 --> 00:03:59,740 të cilat Bourne shell nuk ka - 63 00:03:59,740 --> 00:04:02,140 ose ajo nuk kishte në atë kohë. 64 00:04:02,140 --> 00:04:05,190 Ka gjithashtu TC-shell. 65 00:04:05,190 --> 00:04:07,360 Kjo është një superset e C-skeletit. 66 00:04:07,360 --> 00:04:11,470 Ajo ka karakteristika të tjera, shumë prej të cilave janë të dobishme për përdorim interaktive, 67 00:04:11,470 --> 00:04:16,050 të tilla si duke kujtuar komandat në mekanizmin e historisë, 68 00:04:16,050 --> 00:04:18,459 të cilat unë do të përshkruaj pak më vonë - 69 00:04:18,459 --> 00:04:23,120 në një mënyrë të thjeshtë, modeluar sipas një redaktor. 70 00:04:23,120 --> 00:04:29,170 Ai ka gjithashtu edhe lidhjet të cilat ju lejojnë për të lidhur një varg të shkurtër kyç për një komandë më të gjatë. 71 00:04:29,170 --> 00:04:31,440 Ne nuk jemi duke shkuar për të marrë në se sot. 72 00:04:31,440 --> 00:04:33,650 Ajo ka disa karakteristika që janë të dobishme për programimin. 73 00:04:33,650 --> 00:04:37,020 Megjithatë, C-shell nuk është përdorur shpesh për programim shell. 74 00:04:37,020 --> 00:04:39,080 Programet shell, në qoftë se ju nuk e dini tashmë, 75 00:04:39,080 --> 00:04:41,690 janë programe që përbëhen nga karakteristikat shell. 76 00:04:41,690 --> 00:04:43,220 Ju mund të kandidojë si këto programe. 77 00:04:43,220 --> 00:04:46,760 Ju shkruani një bandë e komandave shell në një skedar dhe të ekzekutuar file. 78 00:04:46,760 --> 00:04:49,760 Ju nuk keni nevojë për të hartuar atë. Ky është një gjuhë interpretuese. 79 00:04:49,760 --> 00:04:57,320 Fraza C-shell tani është i paqartë pasi ajo mund të referohen vetëm në origjinal C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 ose të gjitha C-predha, duke përfshirë tcsh. Kjo është pak e paqartë. 81 00:05:01,200 --> 00:05:08,250 >> Një predhë më vonë është Korn shell, KSH, i quajtur sipas programues, Korn. 82 00:05:08,250 --> 00:05:14,160 Kjo predhë përpoq për të përfshirë në 1 shell 83 00:05:14,160 --> 00:05:16,960 avantazhet e C-skeletit për përdorim interaktiv 84 00:05:16,960 --> 00:05:19,230 dhe Bourne shell për programimin. 85 00:05:19,230 --> 00:05:25,440 Ajo është përdorur si një shell interaktiv me disa njerëz - një e pakicave. 86 00:05:25,440 --> 00:05:32,050 Më vonë edhe pse, nuk ishte një tjetër hyrje, shell bash, BASH, 87 00:05:32,050 --> 00:05:35,290 përsëri një lojë fjalësh, Bourne-përsëri derdh. 88 00:05:35,290 --> 00:05:43,830 Kjo është një zgjerim i shell Bourne. Korn shell është gjithashtu. Dy prej tyre janë. 89 00:05:43,830 --> 00:05:48,100 Ajo ka të njëjtat objektiva të Korn shell të grupohet C-shell-së 90 00:05:48,100 --> 00:05:50,980 dhe avantazhet Bourne Shell në 1 shell. 91 00:05:50,980 --> 00:05:56,810 Shumë prej përmirësimeve të shell Korn janë të përfshira edhe në Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, megjithatë, ka më shumë dhe për këtë arsye është e preferueshme. 93 00:06:00,710 --> 00:06:05,180 Bourne-përsëri derdh dhe shell Korn quhen predha Bourne-lloj 94 00:06:05,180 --> 00:06:07,730 sepse ato përfshijnë karakteristikat e Bourne Shell-së, 95 00:06:07,730 --> 00:06:11,180 të cilat janë të papajtueshme në disa aspekte me C-predha. 96 00:06:11,180 --> 00:06:15,520 Ka predha të tjera përveç atyre, disa të destinuara për përdorim të kufizuar, 97 00:06:15,520 --> 00:06:20,670 ndoshta i kufizuar në disa komandave, ndoshta për qëllime të specializuara, nuk përdoret shpesh. 98 00:06:20,670 --> 00:06:24,240 Mirë >>. Pika Next këtu. 99 00:06:31,300 --> 00:06:38,970 Bash shell është bërë lidhur me forma të ndryshme të Linux. 100 00:06:38,970 --> 00:06:41,550 Unë nuk jam i sigurt nëse kjo është e vërtetë e çdo forme. 101 00:06:41,550 --> 00:06:43,280 Ka shumë forma atje dhe unë nuk e kanë përdorur ata të gjithë, 102 00:06:43,280 --> 00:06:46,870 por në ato që kam përdorur ajo është bërë të lidhur me të. 103 00:06:46,870 --> 00:06:49,670 Deri sa di unë, nuk ka asgjë në lidhje me Bash 104 00:06:49,670 --> 00:06:52,210 që e bën atë më të pajtueshme me Linux 105 00:06:52,210 --> 00:06:55,020 se çdo kombinim tjetër të shell dhe të sistemit operativ. 106 00:06:55,020 --> 00:06:59,690 Unë mendoj se kjo ndoshta vetëm reflekton prirjet e programuesit. 107 00:06:59,690 --> 00:07:07,500 Se ajo ka bërë lidhur me Linux është një tjetër arsye për të preferojnë Bash për KSH 108 00:07:07,500 --> 00:07:11,820 që gjërat janë të ngjarë të jetë e shkruar në të dhe është e mundshme për të përhapur. 109 00:07:11,820 --> 00:07:15,410 Unë do të ju jap arsye të tjera për të cilat më vonë. 110 00:07:15,410 --> 00:07:21,330 Scripts Bourne shell duhet të kandidojë nën shell Korn ose Bash. 111 00:07:21,330 --> 00:07:22,650 Nëse ju shkruani diçka për shell Bourne, 112 00:07:22,650 --> 00:07:26,180 ju ndoshta mund të ekzekutojë atë nën KSH ose bash. 113 00:07:26,180 --> 00:07:30,610 Korn Scripts shell ndoshta do të kandidojë nën Bash, por unë nuk mund të garantojë se. 114 00:07:30,610 --> 00:07:36,040 Më vonë këtu, scripts C-shell duhet të kandidojë nën TC-shell. 115 00:07:38,850 --> 00:07:41,690 C-shell është në të vërtetë kurrë nuk e përdorur gjerësisht për të shkruar 116 00:07:41,690 --> 00:07:48,110 që nga Bourne shell dhe më vonë predha Bourne-lloj ishin të preferueshme për atë qëllim. 117 00:07:48,110 --> 00:07:50,620 Kështu që me të vërtetë nuk është e gjitha se e rëndësishme. 118 00:07:50,620 --> 00:07:53,480 Nuk janë një shumë mjaft e Bourne shell Scripts të shkruara kohë më parë, 119 00:07:53,480 --> 00:07:56,860 para shell Korn ose shell Bourne-sërish u paraqitën. 120 00:07:56,860 --> 00:07:59,300 Ata janë ende në përdorim, pjesë e sistemeve operative, 121 00:07:59,300 --> 00:08:01,590 dhe kështu ju do të gjeni ato në qoftë se ju shikoni në sistemin operativ 122 00:08:01,590 --> 00:08:03,760 ose disa paketat e programeve të vjetra. 123 00:08:03,760 --> 00:08:12,840 >> Bash është në një farë mase duke u bërë një lloj lingua franca për sistemet operative. 124 00:08:12,840 --> 00:08:17,580 Ajo tashmë i është zgjeruar për Windows dhe të VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, në rast se ju nuk e dini, është një sistem operativ të pronarit 126 00:08:20,440 --> 00:08:25,480 i Digital Equipment Corporation e cila është ende në përdorim, në masë të madhe në prapaskenë. 127 00:08:25,480 --> 00:08:29,250 Dhe në qoftë se ajo do të të konkurrojnë në disa sisteme të ndryshme operative, 128 00:08:29,250 --> 00:08:31,110 të ngjarë që njerëzit kanë tendencë të zhvendoset për të. 129 00:08:31,110 --> 00:08:33,840 Por ky zhvillim është relativisht i kohëve të fundit. 130 00:08:33,840 --> 00:08:39,490 Është vetëm fillimi, kështu që unë nuk mund të parashikojë nëse kjo do të kthehet të vërtetë të jetë kjo lloj lingua franca. 131 00:08:39,490 --> 00:08:43,539 Gjithashtu, për shkak se pathname-in file dhe bibliotekat ndryshojnë 132 00:08:43,539 --> 00:08:46,210 në mes të këtyre sistemeve të ndryshme operative, 133 00:08:46,210 --> 00:08:50,250 ju nuk mund të jetë në gjendje për të shkruar një skenar bash në një sistem operativ 134 00:08:50,250 --> 00:08:51,840 dhe pastaj të drejtuar atë në një tjetër. 135 00:08:51,840 --> 00:08:54,440 Ju duhet të jetë në gjendje për të lëvizur atë në mes të ndryshme Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Sistemet operative Mac OS, por jo domosdoshmërisht të Windows ose VMS. 137 00:08:59,020 --> 00:09:01,390 Ju mund të duhet të ndryshojë përshkrimet fotografi shtegun, 138 00:09:01,390 --> 00:09:03,180 dhe disa biblioteka mund të jenë të ndryshme, 139 00:09:03,180 --> 00:09:05,230 të cilat mund të ndikojnë në mënyrën se disa komanda të punuar 140 00:09:05,230 --> 00:09:09,730 apo se si ata të procesit argumentet dhe si. 141 00:09:09,730 --> 00:09:19,230 Përveç kësaj, një tjetër kujdes këtu është se nuk ka garanci 142 00:09:19,230 --> 00:09:23,570 se të gjitha predha të ndryshme që unë kam përmendur - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, shell Korn, Bourne-përsëri predhë - do të jenë në dispozicion nën ndonjë Unix 144 00:09:29,880 --> 00:09:33,750 ose Linux apo Mac OS kompjuter. 145 00:09:33,750 --> 00:09:35,620 Ata thjesht nuk mund të jetë atje. 146 00:09:35,620 --> 00:09:38,300 Kjo është një nga këshillon këtu. 147 00:09:38,300 --> 00:09:41,490 Kjo është një kufizim për të ardhur keq që këtu ju dëshironi gjërat për të punuar kudo, 148 00:09:41,490 --> 00:09:44,380 por për fat të keq, ju nuk mund të mbështetet në atë. 149 00:09:44,380 --> 00:09:47,230 Mirë >>. Një tjetër këtu. 150 00:09:50,280 --> 00:09:54,370 Le të thonë se ju doni të shkruani një skenar shell, 151 00:09:54,370 --> 00:09:57,170 një program të përbërë nga komandat shell. 152 00:09:57,170 --> 00:10:01,200 Ju shkruani komandat tuaja, vënë ato në një skedar, dhe të ekzekutuar file. 153 00:10:01,200 --> 00:10:04,230 Çfarë nëse ju doni të përfshijë argumente? 154 00:10:04,230 --> 00:10:09,650 Në rastin e operacioneve të shell, argumentet janë quajtur parametrat ose parametra të pozicionit 155 00:10:09,650 --> 00:10:15,940 dhe ata do të thirresh me një shenjë të dollarit dhe numëror, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Pra, nëse dorëshkrim ka këtë emër, argumenti im i parë mund të jetë argument i 1 157 00:10:27,000 --> 00:10:30,540 dhe i dytë im të mbetet argumenti 2, 158 00:10:30,540 --> 00:10:34,110 dhe brenda shkrimit tim në qoftë se unë dua të referohen këto gjëra - 159 00:10:34,110 --> 00:10:36,810 le të shuaj këtë që unë nuk jam me të vërtetë duke shkuar për të drejtuar atë - 160 00:10:36,810 --> 00:10:42,160 brenda shkrimin tim unë mund të duhet $ 1 për ta referohen ARG1, 161 00:10:42,160 --> 00:10:45,890 $ 2, i cili do të dalë në këtë mënyrë, arg2. 162 00:10:45,890 --> 00:10:50,080 Pra, këto simbole janë në dispozicion për t'iu referuar argumenteve, 163 00:10:50,080 --> 00:10:52,390 dhe ato që zbatohen për të gjitha predha. 164 00:10:52,390 --> 00:10:56,520 Përveç kësaj, ka karaktere të tjera. 165 00:10:56,520 --> 00:11:01,700 $ * I referohet të gjithë listën argument të gjitha prej tyre. 166 00:11:01,700 --> 00:11:05,390 $ # Referohet numrit të argumenteve. 167 00:11:05,390 --> 00:11:07,910 Përsëri, kjo vlen për të gjitha predha. 168 00:11:07,910 --> 00:11:15,540 Këto simbole, * dhe #, mund të përdoret me këto kuptime në vende të tjera gjithashtu. 169 00:11:15,540 --> 00:11:17,940 Ne nuk do të marrë në atë. 170 00:11:17,940 --> 00:11:20,460 >> Linjë Shell specifier. Çfarë është ajo për të? 171 00:11:20,460 --> 00:11:27,760 Le të thonë se ju keni shkruar një skenar dhe kjo është për një shell të veçantë dhe ju doni të drejtuar atë. 172 00:11:27,760 --> 00:11:33,500 Si mund të dini se çfarë derdh sistemi juaj operativ do të përdorë për të drejtuar shkrimit tuaj? 173 00:11:33,500 --> 00:11:37,230 Në një moment ju mund të supozojmë se do të kandidojë atë në shell Bourne 174 00:11:37,230 --> 00:11:39,440 në qoftë se ju nuk e thoni ndryshe, 175 00:11:39,440 --> 00:11:41,730 por njerëzit nuk janë të shkrimit të shkrimeve në Bourne, predhë që shumë më 176 00:11:41,730 --> 00:11:43,750 dhe ju nuk mund të mbështetet në atë më. 177 00:11:43,750 --> 00:11:48,740 Pra, këtu ne kemi një linjë specifier shell drejtë këtu. 178 00:11:48,740 --> 00:11:52,450 Kjo specifikon Bash. 179 00:11:52,450 --> 00:11:56,750 Vini re se ajo përcakton atë në shtegun e treguar, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Në qoftë se një kompjuter ka shell bash por jo në directory bin, / bin, kjo nuk do të funksionojë. 181 00:12:02,870 --> 00:12:06,870 Kjo është një kriter tjetër, një tjetër kujdes këtu. 182 00:12:06,870 --> 00:12:09,500 Shenjë kile është karakteri linjë koment. 183 00:12:09,500 --> 00:12:12,300 Kjo vlen për të gjitha predha. 184 00:12:12,300 --> 00:12:18,610 Rast i veçantë këtu, #! në fillim të një shkrimit, është një rast i veçantë. 185 00:12:18,610 --> 00:12:23,410 Kjo specifikon shell në të cilën për të drejtuar script. 186 00:12:23,410 --> 00:12:30,230 Siç isha duke thënë, nuk mund të jetë i njëjti vend / bin. 187 00:12:30,230 --> 00:12:34,880 Përveç kësaj, ka një tjetër gjë këtu. 188 00:12:34,880 --> 00:12:41,250 Nëse ju vetëm përdorni shenjën kile pa pikë thirrje dhe shtegun, 189 00:12:41,250 --> 00:12:44,640 që duhet të tregojnë një C-shell. 190 00:12:44,640 --> 00:12:48,300 Megjithatë, unë nuk e rekomandojmë duke bërë që për shkak se unë nuk jam në gjendje për të garantuar 191 00:12:48,300 --> 00:12:49,750 se që gjithmonë do të punojnë. 192 00:12:49,750 --> 00:12:52,220 Nëse doni një C-shell, do të ishte më mirë të them kështu. 193 00:12:52,220 --> 00:12:58,450 Pastaj ka diçka më tepër konfuz këtu. 194 00:12:58,450 --> 00:13:03,940 Në qoftë se ju përdorni një linjë të specifier shell të tilla si / bin / bash 195 00:13:03,940 --> 00:13:07,070 dhe se shell nuk është në dispozicion atje, 196 00:13:07,070 --> 00:13:10,680 nuk ka gjë të tillë si / bin / bash në atë kompjuter të veçantë, 197 00:13:10,680 --> 00:13:14,330 ose për shkak se ajo nuk ka Bash ose për shkak se ajo është në një vend tjetër, 198 00:13:14,330 --> 00:13:17,450 ju do të merrni një gabim duke i thënë se script ju u nuk ekziston. 199 00:13:17,450 --> 00:13:21,510 Dhe sigurisht ekziston shkrimit tuaj, në mënyrë që mesazhi gabimi është konfuze. 200 00:13:21,510 --> 00:13:24,810 Arsyeja se sistemi operativ ju jep këtë gabim 201 00:13:24,810 --> 00:13:28,370 ose, më saktë, se shell juaj interaktive në të cilën ju do të vrapojnë kjo i jep atë gabim, 202 00:13:28,370 --> 00:13:33,510 është se ai raporton komandën keni përdorur, i cili është emri i shkrimit. 203 00:13:33,510 --> 00:13:36,920 Kjo komandë efektive quajtur shell me emrin e shkrimit. 204 00:13:36,920 --> 00:13:39,330 Kjo është ajo ku ju merrni këtë mesazh gabimi konfuz. 205 00:13:39,330 --> 00:13:42,980 Një tjetër mënyrë për të thirrur script shell 206 00:13:42,980 --> 00:13:45,910 është duke specifikuar shell në rreshtin e komandave, si këtu. 207 00:13:45,910 --> 00:13:52,510 Kjo është një komandë. Kjo thotë të drejtuar bash dhe pastaj të drejtuar script time në Bash. 208 00:13:52,510 --> 00:13:55,680 Kjo do të marrë përparësi mbi një linjë specifier, 209 00:13:55,680 --> 00:14:02,090 dhe kjo e ka cilësinë e lejuar ju për të siguruar për pathname ndryshme. 210 00:14:02,090 --> 00:14:04,840 Nëse ju vetëm të jepni një komandë, sistemi operativ do të shikoni për atë komandë 211 00:14:04,840 --> 00:14:06,410 në vende të ndryshme. 212 00:14:06,410 --> 00:14:08,820 Nëse është në dispozicion, ajo duhet të gjeni atë. 213 00:14:08,820 --> 00:14:12,290 Kompjuteri do të gjeni Bash kudo që është e vendosur dhe drejtuar atë, 214 00:14:12,290 --> 00:14:15,470 kështu që ju nuk duhet pastaj të jenë të shqetësuar rreth ku ajo e gjen atë. 215 00:14:15,470 --> 00:14:17,360 Ka shqetësime potencialisht të tjera këtu, 216 00:14:17,360 --> 00:14:20,830 si në qoftë se ka më shumë se 1 version i Bash, që është e mundur, edhe pse nuk ka gjasa. 217 00:14:20,830 --> 00:14:23,540 Pra, kjo është një tjetër mënyrë për t'u marrë me këto gjëra. 218 00:14:23,540 --> 00:14:30,480 Linjat Specifier mund të telefononi çdo shell. 219 00:14:30,480 --> 00:14:34,480 Ata gjithashtu mund të telefononi gjëra të tjera se sa predha. 220 00:14:34,480 --> 00:14:37,940 Shembuj unë kam këtu janë sed, i cili është redaktor lumë; 221 00:14:37,940 --> 00:14:39,900 awk, e cila është një gjuhë e përpunimit model; 222 00:14:39,900 --> 00:14:43,680 dhe perl, një gjuhë shumë e shumë të zhvilluar e shkruar. 223 00:14:43,680 --> 00:14:47,570 Nëse ju vendosni një linjë të specifier që tregon një nga ata programe në fillim, 224 00:14:47,570 --> 00:14:51,270 ajo do të shkojnë direkt në atë program në vend se duke filluar një shell. 225 00:14:51,270 --> 00:14:54,030 Këto programe kanë kufizime në aftësitë e tyre. 226 00:14:54,030 --> 00:14:58,790 Perl është shumë e aftë. Sed është një redaktor. Ajo mund të bëjë gjëra përtej thjesht redaktimi. 227 00:14:58,790 --> 00:15:03,300 Por kjo mund të jetë e vështirë për të programit se. 228 00:15:03,300 --> 00:15:09,670 Përveç kësaj, duke kaluar argumente dhe sende të shkrimit është ose i pamundur ose konfuze. 229 00:15:09,670 --> 00:15:15,030 Pra, në këto raste, me awk ose sed, është, të paktën në përvojën time, 230 00:15:15,030 --> 00:15:18,910 e preferueshme për të shkruar një script shell dhe thirrjes awk ose sed nga script shell 231 00:15:18,910 --> 00:15:24,660 në vend se duke e quajtur awk ose sed si linjë specifier script. 232 00:15:24,660 --> 00:15:26,980 Perl është një gjuhë shumë të larmishëm, siç thashë. 233 00:15:26,980 --> 00:15:30,050 Ju nuk mund të kandidojë komandat interaktive në Perl, 234 00:15:30,050 --> 00:15:32,660 që do të thotë se ju nuk mund ta provoni pjesë të Scripts që ju jeni në zhvillim 235 00:15:32,660 --> 00:15:33,970 duke xhiruar ato interaktive. 236 00:15:33,970 --> 00:15:36,160 Megjithatë, kjo është një gjuhë jashtëzakonisht të aftë 237 00:15:36,160 --> 00:15:40,960 dhe është zhvilluar në një mjet të përdorur shumë gjerësisht. 238 00:15:40,960 --> 00:15:45,720 Kjo është vetëm pak e një vërejtje në kllapa për linjat specifier. 239 00:15:45,720 --> 00:15:50,610 >> Në të gjitha ose shumica e formave të Linux - përsëri, unë nuk mund të jenë të sigurt se është e gjitha - 240 00:15:50,610 --> 00:15:57,900 dhe në Mac OS, në qoftë se ju shkruani csh ju merrni tcsh, 241 00:15:57,900 --> 00:16:00,570 dhe në qoftë se ju shkruani sh ju merrni bash. 242 00:16:00,570 --> 00:16:05,020 Ata ishin duke u përpjekur atje për të ju japin versionet më të avancuara të këtyre predha, 243 00:16:05,020 --> 00:16:07,940 por kjo mund të jetë konfuze. 244 00:16:07,940 --> 00:16:16,720 Nëse ju shkruani një skenar duke përdorur tcsh ose Bash përmban ndërkohë që bëri thirrje csh ose sh 245 00:16:16,720 --> 00:16:22,230 dhe pastaj të përpiqen për të drejtuar atë në një kompjuter i cili nuk ka tcsh ose Bash, 246 00:16:22,230 --> 00:16:25,050 ju mund të merrni disa gabime nëse ka komandat në atje 247 00:16:25,050 --> 00:16:27,970 të cilat ato predha nuk e njohin. 248 00:16:27,970 --> 00:16:34,120 Përveç kësaj, ju mund të keni thirrur deri shell tuaj në kompjuterin tuaj lokal 249 00:16:34,120 --> 00:16:37,700 duke e quajtur atë si sh apo csh dhe pastaj marrjen e predhave më të përparuara. 250 00:16:37,700 --> 00:16:41,440 Ju nuk mund të mendoj edhe për faktin se ju jeni duke përdorur shell më të avancuar. 251 00:16:41,440 --> 00:16:45,670 Pra, kjo është një kurth i mundshëm. 252 00:16:45,670 --> 00:16:50,290 Si është e vendosur që në qoftë se ju shkruani sh ju merrni Bash, 253 00:16:50,290 --> 00:16:55,580 në qoftë se ju shkruani csh ju merrni tsch? 254 00:16:55,580 --> 00:16:59,940 Ka gjëra në këta kompjuterë quajtur links 255 00:16:59,940 --> 00:17:06,460 të cilat mund të lidhen për të paraqitur emrat për t'iu referuar të njëjtën gjë. 256 00:17:06,460 --> 00:17:12,180 Ajo mund të jetë ose 2 emra për të njëjtën file apo një file qëllimi i të cilit është për të referuar në një tjetër fotografi. 257 00:17:12,180 --> 00:17:17,550 Ata janë quajtur lidhjet vështirë dhe simbolike. Ne nuk do të shkojnë në atë më sot. 258 00:17:17,550 --> 00:17:21,619 Mund të ketë edhe fotografi të veçanta - 1 fotografi sh, bash 1 fotografi - 259 00:17:21,619 --> 00:17:23,880 por ata të dy të drejtuar Bash. 260 00:17:23,880 --> 00:17:29,350 Pastaj ka një kriter tjetër këtu. 261 00:17:29,350 --> 00:17:42,640 Nëse ju jeni duke bërë thirrje një nga këto predha nga një emër, 262 00:17:42,640 --> 00:17:46,640 ju mund të mendoni se ju do të merrni të njëjtën funksionalitetit si duke e quajtur atë një emër tjetër. 263 00:17:46,640 --> 00:17:49,700 E pra, që në fakt nuk është domosdoshmërisht e vërtetë. 264 00:17:49,700 --> 00:17:55,020 Këto komanda mund të shqyrtojë emrin me të cilin ata ishin të quajtur 265 00:17:55,020 --> 00:18:00,020 dhe ata mund të, në bazë të atij emri, sillen ndryshe. 266 00:18:00,020 --> 00:18:02,740 Nuk mund të jetë çështje e duke u përpjekur të jenë në përputhje me një standard. 267 00:18:02,740 --> 00:18:06,060 Disa nga ju mund të keni dëgjuar standardit POSIX apo në një tjetër, 268 00:18:06,060 --> 00:18:08,730 ndoshta karakteristika të tjera. 269 00:18:08,730 --> 00:18:14,520 Kjo mund të zgjidhet ndonjëherë nga argumentet e linjës komanduese 270 00:18:14,520 --> 00:18:17,310 ose nga përcaktimi i të ndryshueshmeve shell. 271 00:18:17,310 --> 00:18:22,170 Duke e quajtur atë si sh ose bash në fakt mund të çojë në një ekzekutim të ndryshme 272 00:18:22,170 --> 00:18:25,300 edhe në qoftë se është e njëjta fotografi që ju jeni ekzekutimin. 273 00:18:25,300 --> 00:18:31,800 Një tjetër gjë për t'u marrë parasysh është se edhe në qoftë se një kompjuter ka tcsh ose Bash, 274 00:18:31,800 --> 00:18:35,310 në qoftë se ata nuk janë të lidhura si ata janë në kompjuterin tuaj lokal 275 00:18:35,310 --> 00:18:37,990 në qoftë se ju keni një kompjuter lokal Linux apo Mac OS, 276 00:18:37,990 --> 00:18:45,630 pastaj përsëri ju do të merrni shell që ju telefononi sh ose csh, e jo një që ju mund të preferoni. 277 00:18:50,430 --> 00:19:01,130 Aktuale Bourne shell ka enhancements më të vogël se ato në Bash 278 00:19:01,130 --> 00:19:06,100 por e kaluara ato në origjinal shell Bourne. 279 00:19:06,100 --> 00:19:09,690 Si rezultat i kësaj, edhe shell aktuale Bourne, sh, 280 00:19:09,690 --> 00:19:14,560 edhe kur kjo nuk është bash, ngjan gjuha C më shumë se C-shell bën. 281 00:19:14,560 --> 00:19:20,460 Kjo nuk ishte e vërtetë kur C-shell u krijua për herë të parë, por ajo ka zhvilluar në këtë mënyrë. 282 00:19:20,460 --> 00:19:26,560 Ju mund të vini re këtu se të gjitha këto emra shell përveç shell Bourne 283 00:19:26,560 --> 00:19:30,640 kanë diçka për të treguar cilat shell ata janë - csh, bash - 284 00:19:30,640 --> 00:19:32,550 por Bourne shell është vetëm sh. 285 00:19:32,550 --> 00:19:34,910 Pse? Kjo ishte shell origjinal. 286 00:19:34,910 --> 00:19:37,770 Ishte shell atëherë, jo një predhë, 287 00:19:37,770 --> 00:19:41,090 dhe pasi ishte shell, nuk kishte asnjë arsye për të dalluar atë nga një tjetër shell. 288 00:19:41,090 --> 00:19:45,030 Pra, kjo është arsyeja pse ajo ka këtë emër dhe ende ka. 289 00:19:50,630 --> 00:19:58,990 Kjo >> lartë këtu është një linjë nga një bazë të dhënash fjalëkalim për një llogari kam atje 290 00:19:58,990 --> 00:20:01,680 në një kompjuter tjetër. 291 00:20:01,680 --> 00:20:08,300 Unë do të përpiqen për të marrë këtë emër, që të shihni se një pjesë në fund, shell. 292 00:20:09,720 --> 00:20:15,450 Baza e të dhënave fjalëkalimi mban karakteristikat e hyrjes për të gjithë përdoruesit. 293 00:20:15,450 --> 00:20:20,330 Në fillim është emrin, të cilat ju mund të shihni e fundit 2 letra të mia tani. 294 00:20:20,330 --> 00:20:23,970 Fushat këtu janë të ndara nga colons. 295 00:20:23,970 --> 00:20:28,210 Fusha e fundit, si ju mund të shihni, është bin / tcsh, shell. 296 00:20:28,210 --> 00:20:30,230 Kjo është specifier shell. 297 00:20:30,230 --> 00:20:33,240 Ka diçka interesante këtu. 298 00:20:33,240 --> 00:20:36,950 Kur Unix u zhvillua në fillim, nuk ishte vetëm 1 shell, 299 00:20:36,950 --> 00:20:38,350 kështu që nuk ka pasur zgjedhje atje. 300 00:20:38,350 --> 00:20:45,570 Pra, pse ata lejojnë një fushë në bazën e të dhënave me fjalëkalim për të specifikoni një predhë? 301 00:20:45,570 --> 00:20:47,920 Unë nuk e di, por është me fat që ata vepruan. 302 00:20:47,920 --> 00:20:52,030 Është mjaft e vështirë për të bërë ndryshime në formatin e bazës së të dhënave fjalëkalimi 303 00:20:52,030 --> 00:20:54,420 për shkak se shumë programe referohen format e saj 304 00:20:54,420 --> 00:20:57,720 dhe do të duhet të rishkruhen. 305 00:20:57,720 --> 00:21:04,130 Kjo është një zhvillim i lumtur apo i rastësishëm që ata të përfshirë atë arë. 306 00:21:04,130 --> 00:21:12,780 Ky lloj i një linjë skedar fjalëkalimi është përdorur në të gjitha Unix dhe Linux kompjuterat aq sa unë di. 307 00:21:12,780 --> 00:21:14,650 Mac ka sistemin e vet. 308 00:21:14,650 --> 00:21:17,810 Ajo në fakt ka një skedë fjalëkalimi me linjat e në atë format, 309 00:21:17,810 --> 00:21:21,060 por që nuk është aty ku karakteristikat e përdoruesit janë të përcaktuara. 310 00:21:21,060 --> 00:21:24,200 Një tjetër vërejtje kllapa atje. 311 00:21:36,470 --> 00:21:46,020 >> Nëse ju jeni duke bërë thirrje një predhë, ju mund të telefononi atë si një nën-guaskë e predha tuaj ekzistues. 312 00:21:46,020 --> 00:21:50,480 Pra, nëse unë shkoj këtu, le të të shpëtoj nga këto gjëra. 313 00:21:50,480 --> 00:21:53,350 Ja ku jam në C-shell. 314 00:21:56,830 --> 00:22:01,200 Kjo variabël, i cili identifikon me saktësi shell tim, 315 00:22:01,200 --> 00:22:04,300 në të vërtetë nuk është gjithmonë një mënyrë të besueshme për të përcaktuar se çfarë derdh xhironi, 316 00:22:04,300 --> 00:22:06,220 por në këtë rast ajo është. 317 00:22:06,220 --> 00:22:08,040 Çka nëse unë vetëm lloji - 318 00:22:09,970 --> 00:22:12,470 Tani unë jam në Bash. 319 00:22:12,470 --> 00:22:19,540 Disa gjëra do të jetë i njëjtë. ls tregon mua urdhërimet e mia. 320 00:22:19,540 --> 00:22:24,500 Nëse unë do të pezullojë një prapa në time C-shell, ls, njëjtë. E drejtë? 321 00:22:24,500 --> 00:22:28,890 fg, i dukshëm, përsëri në shell tim Bash. 322 00:22:28,890 --> 00:22:38,290 pwd, drejtori i tanishëm, përsëri në C-shell. 323 00:22:38,290 --> 00:22:43,180 pwd, directory të ndryshme - në të vërtetë nuk është një directory të ndryshme në këtë rast. 324 00:22:43,180 --> 00:22:45,110 Është e njëjta directory. 325 00:22:45,110 --> 00:22:50,000 Le të thonë se unë dua të thërrasë një komandë këtu: ku ls. 326 00:22:50,000 --> 00:22:52,140 Çfarë do të bëni? 327 00:22:52,140 --> 00:22:53,670 Ajo tregon mua ku ls komandën, 328 00:22:53,670 --> 00:22:56,670 ai që më jep një listë directory, është e vendosur në ls. 329 00:22:56,670 --> 00:23:01,460 Le të kthehemi në Bash shell. Le të përpiqemi të njëjtën gjë. 330 00:23:01,460 --> 00:23:05,830 Hmm, interesante aty, ku: komandë nuk u gjet. 331 00:23:05,830 --> 00:23:07,400 Pse është kjo? 332 00:23:07,400 --> 00:23:11,570 Ku komandës është ndërtuar në në C-shell. 333 00:23:11,570 --> 00:23:15,630 Kjo nuk është një urdhër që duhet të lexohet në të kujtesën nga diku tjetër dhe të ekzekutuar. 334 00:23:15,630 --> 00:23:20,310 C-shell shkon ajo duke transferuar ekzekutimin në pjesë të kodit të vet 335 00:23:20,310 --> 00:23:22,790 dhe kjo nuk është në Bash shell. 336 00:23:22,790 --> 00:23:25,710 Pra Bash, nuk ka një komandë të tillë ndërtuar-në, duket për atë, nuk e gjeni atë, 337 00:23:25,710 --> 00:23:27,720 dhe ne të merrni një gabim. 338 00:23:27,720 --> 00:23:32,290 Kështu që nuk kemi një shell bash drejtimin në bazë të një C-shell, dhe ne e quajmë se një nën-shell. 339 00:23:32,290 --> 00:23:38,480 Dhe vetëm në rast se ju jeni kurioz, bash shell ka rrugën e vet të gjetjen komandat. 340 00:23:38,480 --> 00:23:42,590 sheshuar i referohet faktit se ajo mund të ekzekutohet më shpejt, 341 00:23:42,590 --> 00:23:44,960 duke u gjetur më shpejt. 342 00:23:44,960 --> 00:23:48,610 Kjo është një nga enhancements ndërtuar në për disa nga këto predha. 343 00:23:50,220 --> 00:23:54,200 >> Predha Bourne-lloj janë të preferuar për programimin. 344 00:23:54,200 --> 00:23:57,300 Ata kanë strukturat e kontrollit si sythe, deklaratat kushtëzuara, 345 00:23:57,300 --> 00:24:00,240 lloj komandave që ju mund të përdorni në gjuhët e programimit si C 346 00:24:00,240 --> 00:24:04,190 apo çfarëdo gjuhë. Ndoshta ju jeni të programimit në Java apo çfarëdo. 347 00:24:04,190 --> 00:24:06,460 Predhat kanë ato shumë. 348 00:24:06,460 --> 00:24:11,790 Predha Bourne-lloj, veçanërisht bash, kanë më shumë 349 00:24:11,790 --> 00:24:15,730 dhe ata janë të dizajnuara me fleksibilitet më të madh. 350 00:24:15,730 --> 00:24:20,700 Bash shell ka vargjeve. Origjinal Bourne shell nuk ka. 351 00:24:20,700 --> 00:24:26,130 Kështu që mund të jetë shumë e dobishme për programimin. 352 00:24:26,130 --> 00:24:29,810 C-shell në fakt nuk kanë vargjeve, por nuk kanë shumë nga këto karakteristika të tjera. 353 00:24:29,810 --> 00:24:33,450 Predha Bourne-lloj do të kryej më të shpejtë 354 00:24:33,450 --> 00:24:36,520 në qoftë se ata nuk kanë karakteristika të destinuara për përdorim interaktive. 355 00:24:36,520 --> 00:24:39,340 Ju ngarkesës gjëra poshtë për një qëllim, kjo ngarkon ato për një tjetër qëllim. 356 00:24:39,340 --> 00:24:41,520 Ka që tregtisë-off atje. 357 00:24:41,520 --> 00:24:44,510 Këto karakteristika të cilat janë të destinuara për përdorim interaktive 358 00:24:44,510 --> 00:24:46,920 të vërtetë janë pak ose aspak përdorim për scripting. 359 00:24:46,920 --> 00:24:52,160 Është e mundur që të përdorin një nën-shell interaktiv ashtu si e kam filluar aty 360 00:24:52,160 --> 00:24:57,780 për të testuar nga komandat të cilat ju kanë për qëllim për të përdorur në një skenar. 361 00:24:57,780 --> 00:25:01,180 Kjo është ajo që ju nuk mund të bëjë me perl. Ju mund ta bëni atë me predha. 362 00:25:01,180 --> 00:25:04,850 Edhe strukturat si për sythe e kështu me radhë mund të drejtohet në mënyrë interaktive. 363 00:25:04,850 --> 00:25:07,000 Ata janë herë pas here të dobishme për të kandiduar interaktive, 364 00:25:07,000 --> 00:25:10,180 por më shumë të ngjarë që ju jeni duke përdorur ato për të zhvilluar një script. 365 00:25:15,690 --> 00:25:17,400 >> Aliases. 366 00:25:17,400 --> 00:25:21,630 Kjo do të jetë i lidhur me C lëvozhgë. 367 00:25:23,270 --> 00:25:27,570 Mekanizmi Historia ku mund të merrni përsëri në komandat më parë 368 00:25:27,570 --> 00:25:30,340 ose pjesë të tyre që e keni tashmë të drejtuar. 369 00:25:30,340 --> 00:25:33,680 Përsëri, në lidhje me C-shell, shell Bourne dhe shell Korn kanë këto gjëra, 370 00:25:33,680 --> 00:25:35,620 por unë nuk jam duke shkuar për të marrë në ta. 371 00:25:35,620 --> 00:25:40,340 Pra, këtu janë disa pseudonime të dobishme që kam. 372 00:25:43,100 --> 00:25:44,880 Në vend që të shtypni ls - kjo është një komandë të përbashkët - 373 00:25:44,880 --> 00:25:47,620 vetëm lloji l dhe për të shpëtuar veten 1 karakter. 374 00:25:47,620 --> 00:25:50,600 ls me opsione të ndryshme, të gjithë ata të punës. 375 00:25:50,600 --> 00:25:54,460 Vini re se këto definicione kanë kuotat rreth tyre. 376 00:25:54,460 --> 00:25:57,520 Në këto raste, kuotat nuk janë të nevojshme. 377 00:25:57,520 --> 00:26:00,100 Nëse ju mund të përcaktojë ato emërtimet pa thonjëza, ajo ende do të punojnë. 378 00:26:00,100 --> 00:26:02,910 Ata janë të rekomanduara. 379 00:26:02,910 --> 00:26:04,900 Ka situata në të cilat ju nuk mund të përdorni të japin kuotën e 380 00:26:04,900 --> 00:26:08,050 për shkak se ju doni diçka të ndodhë cilat japin kuotën e do të parandalojë. 381 00:26:08,050 --> 00:26:11,210 Ndonjëherë ju mund të japin kuotën e tyre një pjesë të përkufizimit, por jo të gjithë atë. 382 00:26:11,210 --> 00:26:17,010 Është gjithashtu e rekomanduar në përgjithësi për të përdorur Kuotat e vetme në vend se kuotat e dyfishtë. 383 00:26:17,010 --> 00:26:19,750 Kuotat dopio kanë efekte në përkufizimet ndryshueshme, 384 00:26:19,750 --> 00:26:22,950 veçanërisht duke shkaktuar ato që të vlerësohen në vend se ta ndalojmë atë. 385 00:26:22,950 --> 00:26:25,910 Pse do të duam të ndaluar vlerësimin? 386 00:26:25,910 --> 00:26:28,710 Dhe si do Kuotat e bëjnë këtë për ne? 387 00:26:28,710 --> 00:26:32,600 >> Këtu është një komandë të cilat ju mund të gjeni interesante. 388 00:26:32,600 --> 00:26:35,470 'Ls g *' 389 00:26:35,470 --> 00:26:37,640 g *, si ju ndoshta e dini, është një shprehje wildcard 390 00:26:37,640 --> 00:26:40,290 për të gjitha emrat e file të filluar me g. 391 00:26:40,290 --> 00:26:46,410 Në qoftë se unë vetëm shkruaj në një komandë ls g *, unë do të merrni një listë të të gjitha atyre emrave në directory time aktuale. 392 00:26:46,410 --> 00:26:50,870 Nëse unë të përcaktojë atë pseudonim si ajo është këtu me kuotat, 393 00:26:50,870 --> 00:26:56,990 ajo do të kandidojë atë komandë në Direktorinë tuaj të tanishme kur ju jeni running atë. 394 00:26:56,990 --> 00:27:01,250 Por në qoftë se ju drejtuar përkufizimin alias pa thonjëza, 395 00:27:01,250 --> 00:27:09,620 ajo do të vlerësojë wildcard g * kur ajo shkon këtë komandë përcakton. 396 00:27:09,620 --> 00:27:14,400 Pra, përkufizimi i alias do të ls pasohet nga lista e dosjeve në directory 397 00:27:14,400 --> 00:27:16,310 në të cilën komanda Aliasi kryhet, 398 00:27:16,310 --> 00:27:19,180 pavarësisht se ku ju në të vërtetë ndërmend të drejtuar komandën. 399 00:27:19,180 --> 00:27:26,360 Kjo nuk është shumë e dobishme, dhe kuotat e vetme parandaluar vlerësimin e yll. 400 00:27:26,360 --> 00:27:30,780 Pra, ju vetëm merrni përkufizim qenie ls g *. 401 00:27:30,780 --> 00:27:35,510 Pastaj kur ju drejtuar alias, LGS, ajo pastaj e vë atë jashtë. 402 00:27:35,510 --> 00:27:40,490 Tani nuk ka citate, dhe ajo do të vlerësojë yll kur ju drejtuar komandën alias. 403 00:27:40,490 --> 00:27:43,900 Pra, kjo është një gjë. 404 00:27:43,900 --> 00:27:46,590 Kuotat e dyfishtë do të kishte të njëjtin efekt këtu, 405 00:27:46,590 --> 00:27:50,580 por ka raste të tjera në të cilat kuotat e dyfishta nuk do të punojnë aq mirë. 406 00:27:50,580 --> 00:27:52,450 >> Këtu është një tjetër. 407 00:27:52,450 --> 00:27:54,270 Ju mund të dini komandën grep. 408 00:27:54,270 --> 00:28:02,110 Komanda grep mund të përdoret për të skanoni një skedar për linja të cilat kanë strings caktuara. 409 00:28:02,110 --> 00:28:10,350 Pra, le të shkojë mbi këtu dhe unë do të dalë nga shell tim Bourne. 410 00:28:23,570 --> 00:28:25,450 Mirë. Këtu ka një fotografi. 411 00:28:25,450 --> 00:28:31,490 Le të thonë se është grep vargjet ABC. Nuk është. 412 00:28:31,490 --> 00:28:37,930 Nëse unë bëj zddd grep, unë të marrë asgjë. Mirë. 413 00:28:37,930 --> 00:28:40,960 Pra, ajo gjen një varg, ai raporton, por nuk ka gjetur, ajo nuk e denoncon këtë. 414 00:28:40,960 --> 00:28:44,930 Ajo nxjerr ndonjë linjë e cila ka atë varg në të. 415 00:28:44,930 --> 00:28:49,080 Nuk janë të gjitha llojet e opsioneve të cilat këtu ju mund të gjeni në dokumentacionin. 416 00:28:49,080 --> 00:28:52,160 Këtu ka një mënyrë për të bërë atë. 417 00:28:52,160 --> 00:29:03,290 Po në lidhje me këtë, një alias grabc 'grep abc "? 418 00:29:03,290 --> 00:29:09,000 Kjo do të përfshijë 1 argumentin kur alias është përcaktuar. 419 00:29:09,000 --> 00:29:26,300 Pra, në qoftë se bëj atë këtu, tani në qoftë se unë bëj grabc, 420 00:29:26,300 --> 00:29:30,620 tani alias përfshin më shumë se komandën e thjeshtë. Ajo gjithashtu ka argument. 421 00:29:30,620 --> 00:29:32,190 Deri tani që punon. 422 00:29:32,190 --> 00:29:38,590 Unë kam një tjetër komandë këtu, këtë, kështu që ata janë vargjet e ndryshme në atje 423 00:29:38,590 --> 00:29:46,790 dhe të tregojnë se kjo nuk do të gjeni ndonjë gjë atje pasi ajo nuk përputhet. 424 00:29:46,790 --> 00:29:56,180 >> Çka nëse unë dua për të përfshirë në përkufizimin alias skedarin që unë jam duke shkuar për të kërkuar 425 00:29:56,180 --> 00:30:02,970 dhe unë dua të jap si argument për alias varg që unë jam duke kërkuar për? 426 00:30:02,970 --> 00:30:08,040 Unë mund të dua të them abc si argument për alias tim, 427 00:30:08,040 --> 00:30:10,870 por alias tashmë të përcaktuar file. 428 00:30:10,870 --> 00:30:15,710 Dhe kjo është ajo ku kjo shprehje vjen in 429 00:30:20,430 --> 00:30:25,270 Vini re këtu ne kemi grep ashtu si më parë. 430 00:30:25,270 --> 00:30:28,130 Ne kemi skedarin këtu, vargjet. 431 00:30:28,130 --> 00:30:35,610 \! ^, Lloj shprehje e çuditshme, unë mendoj, në qoftë se ju nuk e keni parë këtë më parë. 432 00:30:35,610 --> 00:30:39,920 Pikë thirrje është pjesë e mekanizmit të historisë C-shell. 433 00:30:39,920 --> 00:30:45,220 Ajo mund të kujtojnë komandat më parë, ajo mund të kujtojnë argumente për ato komandat e kështu me radhë. 434 00:30:46,760 --> 00:31:01,570 Mekanizmi historia përdoret si pjesë e aliasing. 435 00:31:01,570 --> 00:31:07,390 Nëse ju specifikoni një vijë pas pikë thirrje, ajo do të referohen në atë linjë në listën e historisë, 436 00:31:07,390 --> 00:31:11,910 të cilat ne nuk do të marrë në tani që kjo është një temë e tërë të tjera. 437 00:31:11,910 --> 00:31:16,280 Është e mundur të specifikojë një pjesë të një linjë. 438 00:31:16,280 --> 00:31:22,950 Pra! 03:02 do të jetë argumenti i dytë i numrit komandës 3. 439 00:31:22,950 --> 00:31:30,430 Caret këtu në këtë shprehje qëndron për argumentin e parë. 440 00:31:30,430 --> 00:31:34,410 Nëse ju nuk e jepte një indikacion të cilin urdhëroj ju jeni duke iu referuar, 441 00:31:34,410 --> 00:31:37,300 ai i referohet komandën menjëherë të mëparshëm, 442 00:31:37,300 --> 00:31:41,990 dhe caret është një simbol për argumentin e parë. 443 00:31:41,990 --> 00:31:46,820 Sepse është e caret dhe jo numri, ju nuk keni nevojë të përdorni zorrës së trashë, 444 00:31:46,820 --> 00:31:52,660 kështu! ^ do të thotë argumentin e parë në komandën e mëparshme. 445 00:31:52,660 --> 00:31:55,020 Pak përzier këtu. 446 00:31:55,020 --> 00:31:58,450 Në këtë rast, kur ju përdorni këtë si një përkufizim alias, 447 00:31:58,450 --> 00:32:04,650 referencë historia i referohet përsëri në komandat në të cilat alias është përdorur. 448 00:32:04,650 --> 00:32:08,470 Pra, kjo është kthim 1 komandë si një operacion të historisë, 449 00:32:08,470 --> 00:32:11,810 por si një operacion alias ajo i referohet komandën në të cilën ju do të shkruani, 450 00:32:11,810 --> 00:32:14,780 thonë, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Ne kemi kuotat këtu në të. Çfarë është backslash për? 452 00:32:20,240 --> 00:32:30,810 Në këtë rast, si në vende të tjera, ne nuk duam të ekzekutuar mekanizmin e historisë 453 00:32:30,810 --> 00:32:33,680 duke përcaktuar pseudonimin. 454 00:32:33,680 --> 00:32:37,900 Në qoftë se ne nuk e kemi backslash atje, shell do të tërheqë në argumentin e parë 455 00:32:37,900 --> 00:32:41,870 e komandës e drejtë para se ajo u zhvillua këtë komandë alias, të cilat ne nuk e duam. 456 00:32:41,870 --> 00:32:47,520 Ne duam që kjo që do të ndërtohet në të komandën alias për të thirrur në një argument më vonë. 457 00:32:47,520 --> 00:32:53,550 Kuotat e vetme nuk do të shpëtojnë një pikë thirrje, referencën histori. 458 00:32:53,550 --> 00:32:57,450 Ndoshta ju e dini shpëtuar shprehja do të thotë për të ndryshuar kuptimin e diçkaje. 459 00:32:57,450 --> 00:33:00,260 Në këtë rast, kjo do të thotë për të ndaluar diçka nga të paturit e një domethënie të veçantë. 460 00:33:00,260 --> 00:33:03,030 Domethënie të veçantë pikë thirrje-së është histori. 461 00:33:03,030 --> 00:33:05,790 Shpëtuar dhe ajo nuk e ka atë kuptim. 462 00:33:05,790 --> 00:33:08,080 Kuotat nuk e bëjmë këtë, backslash bën. 463 00:33:08,080 --> 00:33:11,900 Pra, ne jemi të vërtetë duke përdorur 2 nivele të ikin këtu. 464 00:33:23,500 --> 00:33:29,620 Unë jam duke shkuar për të lëvizur këtë komandë në dritare tjetër pa e shtypur atë 465 00:33:29,620 --> 00:33:35,210 duke përdorur këto operacione redaktimi, të cilat ju mund të gjeni të dobishme. 466 00:33:40,620 --> 00:33:42,460 Diçka tjetër këtu unë do të ju tregoj. 467 00:33:42,460 --> 00:33:46,730 Nëse ju vetëm lloji pseudonim pa argumente, ajo ju tregon të gjitha argumentet tuaja. 468 00:33:46,730 --> 00:33:48,640 Kjo është një bandë e emërtimet unë tashmë e kishte këtu 469 00:33:48,640 --> 00:33:53,400 përveç atyre që unë kam qenë duke përdorur sot këtu. 470 00:33:53,400 --> 00:34:00,220 Por në qoftë se unë vetëm lloji me emrin e një alias, ajo më thotë çfarë do të thotë. 471 00:34:00,220 --> 00:34:03,390 Vini re se kuotat janë zhdukur dhe backslash është zhdukur. 472 00:34:03,390 --> 00:34:08,620 Ky string këtu është rezultat i atij përkufizimi alias, 473 00:34:08,620 --> 00:34:12,199 dhe tani ajo ka vetëm! ^ në të. 474 00:34:12,199 --> 00:34:19,150 Kjo do të duket në vargjet e file për çdo gjë. 475 00:34:19,150 --> 00:34:34,900 Pra, në qoftë se bëj vargjet grstrings_file, unë nuk jap asgjë për të kërkuar atje, 476 00:34:34,900 --> 00:34:37,429 por ajo është në kërkim në vargjet. 477 00:34:37,429 --> 00:34:42,330 Ajo nuk ka gjetur strings fjalë në vargjet e file, por ajo ka gjetur abc. 478 00:34:42,330 --> 00:34:46,770 Dhe kjo nuk do të gjeni se. 479 00:34:46,770 --> 00:34:52,330 Pra, këtu ne jemi duke i dhënë një argument që godet në përkufizimin e alias, 480 00:34:52,330 --> 00:34:55,530 që është futur në të. 481 00:34:55,530 --> 00:34:58,540 Kjo është ku kjo shprehje vjen nga. 482 00:34:58,540 --> 00:35:00,240 Ju mund të përdorni më shumë se 1. 483 00:35:00,240 --> 00:35:03,170 Caret është një simbol për argumentin e parë. 484 00:35:03,170 --> 00:35:07,510 Nëse dëshironi të përdorni një argument të dytë, atëherë ju do të thonë: 2. 485 00:35:07,510 --> 00:35:11,250 Nuk ka simbol të veçantë për argumentin e dytë. 486 00:35:11,250 --> 00:35:14,790 Dhe për shkak se ju jeni duke përdorur një shifër, ju do të keni për të përdorur zorrës së trashë. 487 00:35:14,790 --> 00:35:17,220 Nuk është, megjithatë, një tjetër zgjedhje këtu. 488 00:35:17,220 --> 00:35:21,220 Shenja dollar qëndron për argumentin e fundit. 489 00:35:21,220 --> 00:35:23,320 Dhe për shkak se kjo është një simbol, ju mund të heq zorrës së trashë. 490 00:35:23,320 --> 00:35:25,870 Pra, kjo do të jetë argumenti i fundit në listë. 491 00:35:25,870 --> 00:35:27,900 Dhe ka edhe që një. 492 00:35:27,900 --> 00:35:31,380 Asterisk do të thotë të gjithë, kështu që kjo është lista e plotë argumenti, 493 00:35:31,380 --> 00:35:35,150 dhe përsëri, ju mund të heq zorrës së trashë për shkak se ajo nuk është një shifër. 494 00:35:36,970 --> 00:35:39,950 Unë shpresoj se ju jeni të gjithë duke respektuar të gjitha këto. 495 00:35:39,950 --> 00:35:54,100 Mekanizmi >> Historia mund të shkoni përsëri në linjat e mëparshme në listën e historisë. 496 00:35:54,100 --> 00:36:01,370 Ju mund ta bëni këtë në një përkufizim alias. 497 00:36:01,370 --> 00:36:02,950 Unë kurrë nuk kam parë këtë bërë. 498 00:36:02,950 --> 00:36:05,840 Ajo do të ketë efektin e tërhequr nga komandat më parë nga lista e historisë 499 00:36:05,840 --> 00:36:08,130 kur ju të ekzekutuar alias që mund të jetë komandat e ndryshme 500 00:36:08,130 --> 00:36:11,240 në varësi të kur dhe ku keni ekzekutuar atë. 501 00:36:11,240 --> 00:36:14,020 Bindshëm ju mund të dëshironi që të tërhiqet nga një referencë të tillë 502 00:36:14,020 --> 00:36:15,900 vetëm për të dini se çfarë një komandë më parë ishte. 503 00:36:15,900 --> 00:36:17,280 Unë kurrë nuk kam parë këtë të ndodhë. 504 00:36:17,280 --> 00:36:19,970 Unë mendoj dikush mund të dëshironi të, por kjo është shumë e vështirë. 505 00:36:19,970 --> 00:36:26,480 Nuk është një tjetër gjë këtu. 506 00:36:26,480 --> 00:36:33,060 Në qoftë se ju përdorni këtë referencë histori të tipit, 507 00:36:33,060 --> 00:36:38,190 atëherë vetëm argumentet për të cilat ka një referencë të tillë janë përdorur. 508 00:36:38,190 --> 00:36:42,180 Nëse ju keni një përkufizim alias i cili nuk e përdor një referencë histori të tipit, 509 00:36:42,180 --> 00:36:44,060 në qoftë se ajo vetëm të bëhet fillimi i komandës 510 00:36:44,060 --> 00:36:46,520 dhe ju keni argumente të tjera, atëherë çdo gjë që shkruani mbas se 511 00:36:46,520 --> 00:36:48,450 shtohet tek komanda. 512 00:36:48,450 --> 00:36:52,040 Në këtë rast, shembulli i vetëm i dha atje, kemi përdorur argumentin e parë; 513 00:36:52,040 --> 00:36:54,610 ne nuk përdorim ndonjë të tjerët. 514 00:36:54,610 --> 00:36:57,960 Nëse argumente të tjera janë dhënë në rreshtin e komandave, ato nuk do të përdoren. 515 00:36:57,960 --> 00:37:04,630 Pra, nëse ju përdorni referencë historisë në të gjitha, atëherë ju duhet të përdorni atë për të marrë ndonjë argument. 516 00:37:04,630 --> 00:37:11,310 >> Ka një tjetër gjë këtu unë vetëm dua të përmend, pjesërisht parenthetically, 517 00:37:11,310 --> 00:37:15,250 domethënë se ky mekanizëm historia me pikë thirrje 518 00:37:15,250 --> 00:37:18,010 shkon prapa në origjinal C-shell. 519 00:37:18,010 --> 00:37:27,060 Tcsh futur operacionet e historisë 520 00:37:27,060 --> 00:37:30,910 të cilat përdorin llojet e komandave dhe frazave nga redaktorët, 521 00:37:30,910 --> 00:37:33,650 ose Emacs ose vi. 522 00:37:33,650 --> 00:37:36,430 Mendimi im personal është Emacs është shumë më e lehtë për t'u përdorur për këtë qëllim 523 00:37:36,430 --> 00:37:39,390 edhe në qoftë se ju përdorni vi për përpunim tuaj të rregullt. 524 00:37:39,390 --> 00:37:43,900 Ka komanda të ndryshme Emacs të cilat janë të përshtatura tani për historinë. 525 00:37:43,900 --> 00:37:46,410 Kontrolli P merr vijën e mëparshme në listën e historisë. 526 00:37:46,410 --> 00:37:48,840 Një tjetër Kontrollit P do të merrni ju një të tillë para se. 527 00:37:48,840 --> 00:37:50,540 Shigjeta up bën të njëjtën gjë. 528 00:37:50,540 --> 00:37:54,190 Kontrolli N merr komandën e ardhshme në qoftë se ju keni scrolled tashmë prapa disa mënyra. 529 00:37:54,190 --> 00:37:55,880 Shigjetë poshtë e bën atë shumë. 530 00:37:55,880 --> 00:38:00,480 Ju mund të lëvizur majtas në të djathtë me shigjeta dhe gjëra të ndryshme të tjera. 531 00:38:00,480 --> 00:38:02,390 Kjo mund të bëjë përdorimin e mekanizmit të historisë 532 00:38:02,390 --> 00:38:05,070 shumë më e lehtë se sa duke përdorur pikë thirrje sintaksë, 533 00:38:05,070 --> 00:38:07,930 por ju nuk do të përdorin atë në një përkufizim alias. 534 00:38:17,780 --> 00:38:20,020 Ne do të shkoj për se disa kohë të tjera. 535 00:38:24,300 --> 00:38:25,810 Variablat >>. 536 00:38:26,880 --> 00:38:29,510 Ti e di se çfarë variablat janë në gjuhët e programimit. 537 00:38:29,510 --> 00:38:31,680 Predha kanë edhe ata. 538 00:38:31,680 --> 00:38:37,350 C-shell përdor komandën vendosur të caktojë variablave, 539 00:38:37,350 --> 00:38:41,360 kështu që vendos të ndryshueshëm të a të vlerës së b - 540 00:38:41,360 --> 00:38:46,390 siç thashë, një përkufizim të padobishme, por një ilustrim se si kjo është përdorur. 541 00:38:48,790 --> 00:38:52,410 Komanda vendosur do të krijojë një ndryshore në qoftë se ajo nuk ekziston. 542 00:38:55,270 --> 00:39:02,490 Parametrat e pozicionit për guackë mund të konsiderohet variabla, 543 00:39:02,490 --> 00:39:10,750 por përdorimi i tyre dhe rregullat e tyre janë disi të ndryshme. 544 00:39:10,750 --> 00:39:14,320 Ju nuk mund të caktojë një vlerë për 1 $ në rrjedhën e një script. 545 00:39:14,320 --> 00:39:18,340 Ju do të duhet të përcaktojë një variabël të re për këtë qëllim, nëse disa nga ju të kërkuar për të. 546 00:39:23,000 --> 00:39:28,470 Lloji vendosur pa argumente dhe që ju të merrni një listë të të gjitha variablave të përcaktuara aktualisht. 547 00:39:28,470 --> 00:39:34,220 Dhe le të marrë mbi të shell tim të tjera këtu dhe të shohim se çfarë ne të merrni në qoftë se ne bëjmë këtë. 548 00:39:34,220 --> 00:39:37,110 Një listë të gjatë atje mjaft, e drejtë? 549 00:39:37,110 --> 00:39:40,990 Shkoni deri pak. Shikoni të gjitha këto. 550 00:39:40,990 --> 00:39:44,330 Disa nga këto gjëra janë përcaktuar automatikisht nga shell. 551 00:39:44,330 --> 00:39:49,320 Shell krijon ndryshueshme dhe i jep një vlerë. 552 00:39:49,320 --> 00:39:52,730 Disa prej tyre janë të përcaktuara nga shell por pastaj ripërcaktuar nga përdoruesi 553 00:39:52,730 --> 00:39:54,820 sipas preferencave të tij. 554 00:39:54,820 --> 00:39:59,110 Dhe disa prej tyre janë të krijuar nga ana e përdoruesit në varësi të asaj që ai e bën atë ditë. 555 00:39:59,110 --> 00:40:01,880 Kjo është vendosur vetëm pa argumente. 556 00:40:06,920 --> 00:40:10,050 Ka një tipar çuditshme këtu për këtë gjë. 557 00:40:10,050 --> 00:40:17,980 Nuk duhet të jetë ose pa hapësira në mes të barabartëve nënshkruajnë dhe emrin e ndryshueshme 558 00:40:17,980 --> 00:40:23,700 dhe vlera ose hapësira në të dy anët e shenjës së barazimit, 559 00:40:23,700 --> 00:40:28,940 si në këtë një të tillë. 560 00:40:35,620 --> 00:40:41,340 Kjo nuk do të punojë, dhe kjo në fakt është një komandë e vlefshme 561 00:40:41,340 --> 00:40:43,390 por kjo nuk do të bëni atë që keni ndërmend. 562 00:40:43,390 --> 00:40:50,070 Kjo komandë do të punojë, sepse në qoftë se ju vetëm thonë vendosur dhe një emër të ndryshores 563 00:40:50,070 --> 00:40:54,890 me ka shenjën e barazimit apo të vendosur dhe një emër e ndryshueshme me një shenjës së barazimit dhe pa vlerë, 564 00:40:54,890 --> 00:40:57,770 ajo do të vendosë ndryshore në një vlerë null. 565 00:40:57,770 --> 00:41:00,120 Pra vendosur një = është një komandë e vlefshme. 566 00:41:00,120 --> 00:41:04,370 Komanda caktuar mund të përcaktojë më shumë se 1 ndryshore në të njëjtën linjë. 567 00:41:04,370 --> 00:41:11,240 Pra, kjo komandë këtu ka efektin e përcaktimit të të dy a dhe b të null vlerat. 568 00:41:11,240 --> 00:41:13,470 Ndoshta jo atë që ju dëshironi. 569 00:41:13,470 --> 00:41:17,940 Ky këtu, u përmend më herët, do të çojë në një gabimi 570 00:41:17,940 --> 00:41:21,270 sepse = b nuk është një shprehje e vlefshme. 571 00:41:21,270 --> 00:41:23,680 Një emër ndryshore nuk mund të fillojë me shenjë të barabartë. 572 00:41:26,760 --> 00:41:29,080 Dhe ka këto gjëra të mëtejshme këtu. 573 00:41:29,080 --> 00:41:36,820 Të colons janë përdorur për të zgjedhur argumente nga linjat e historisë, 574 00:41:36,820 --> 00:41:41,210 dhe ato mund të përdoren - dhe unë nuk shkoj në para - për të modifikuar këto gjëra. 575 00:41:41,210 --> 00:41:44,480 Ata gjithashtu mund të përdoret për të modifikuar variablave shell. 576 00:41:44,480 --> 00:41:49,050 Ky këtu, $ a, ka një vlerë. 577 00:41:49,050 --> 00:41:55,040 : R do të ngrihen një zgjatje. 578 00:41:55,040 --> 00:41:57,200 Një zgjerim do të jetë çdo gjë pas një pikë, 579 00:41:57,200 --> 00:41:59,200 një dot dhe çdo gjë pas atë në fund të një fotografi, 580 00:41:59,200 --> 00:42:03,230 vetëm në fund të lista pas plagë fundit. 581 00:42:03,230 --> 00:42:05,480 Pra, unë kam këtu. 582 00:42:05,480 --> 00:42:10,730 a është se. Ajo do të bjerë. O. 583 00:42:10,730 --> 00:42:16,510 Nëse nuk ka extension, vetëm pathname-in pas plagë të fundit, ajo do të ketë efekt. 584 00:42:16,510 --> 00:42:27,480 a: h, se shprehja e ndryshueshme, do të marrë jashtë elementin e fundit të një listë directory, 585 00:42:27,480 --> 00:42:29,660 përsëri, vetëm pas slash fundit. 586 00:42:29,660 --> 00:42:33,160 Pra / a / b / c të bëhet / a / b, 587 00:42:33,160 --> 00:42:38,870 por kjo është ndryshuar sepse elementi pas listë është null. 588 00:42:38,870 --> 00:42:43,070 Këtu ka diçka që edhe unë dua të theksoj. 589 00:42:43,070 --> 00:42:46,770 Këto kualifikueset mos e kërko për ekzistencën e këtyre dosjeve. 590 00:42:46,770 --> 00:42:48,910 Ata vetëm shikoni për vargjet. 591 00:42:48,910 --> 00:42:54,520 Këto janë të destinuara për të manipuluar emrat e file, pathname-in, 592 00:42:54,520 --> 00:42:57,520 por ato mund të përdoren në çdo varg edhe nëse kjo nuk është një emër file. 593 00:42:57,520 --> 00:42:58,920 Dhe ata nuk e shohin për ekzistencën, 594 00:42:58,920 --> 00:43:03,550 kështu që nëse nuk ka fotografi të tilla, / a / b / c, kjo do të vazhdojë të punojë. 595 00:43:03,550 --> 00:43:06,930 Nëse kjo është e ndonjë përdorim është një pyetje tjetër, por ajo do të vazhdojë të punojë. 596 00:43:06,930 --> 00:43:12,850 Variablat janë të ndryshme në predha Bourne. Ne do të shkoj në atë më vonë. 597 00:43:12,850 --> 00:43:18,240 Shenjë Dollar mund të shpëtoi vetëm si pikë thirrje dhe yll. 598 00:43:18,240 --> 00:43:21,760 Shenjë Dollar mund të shpëtoi me një backslash apo thonjëza të vetme. 599 00:43:21,760 --> 00:43:24,790 Kuotat e dyfishtë të ketë efekt të rastësishëm në të gjitha predha 600 00:43:24,790 --> 00:43:28,690 i detyruar vlerësimin e një dollar të nënshkruar shprehjen e ndryshueshme. 601 00:43:28,690 --> 00:43:31,960 Pra, në qoftë se ajo është duke u arratis në një mënyrë, kuotat e dyfishtë mund të ketë efekt 602 00:43:31,960 --> 00:43:34,380 e duke shkaktuar atë që të vlerësohet anyway. 603 00:43:34,380 --> 00:43:37,090 Kjo është pak konfuze. 604 00:43:37,090 --> 00:43:43,740 Nëse ka nivele të shumta të ikin, të tilla si kuotat e vetme brenda kuotat e dyfishtë 605 00:43:43,740 --> 00:43:46,770 ose kuotat e dyfishtë brenda thonjëza të vetme, ju duhet të provoni të parë se çfarë do të ndodhë 606 00:43:46,770 --> 00:43:49,520 në një variabël në qoftë se ju jeni duke përdorur një të tillë. 607 00:43:49,520 --> 00:43:53,410 Këto 2 - situata brenda dyfishtë të vetme brenda, të vetme të dyfishtë - 608 00:43:53,410 --> 00:43:55,980 jo doemos ju japin të njëjtin rezultat. 609 00:44:02,520 --> 00:44:05,600 Mjedisit të ndryshueshëm, të lidhur variablat C-shell. 610 00:44:05,600 --> 00:44:08,340 Variable Mjedisit janë edhe variablat në C-shell, 611 00:44:08,340 --> 00:44:11,250 dhe ata janë gjithashtu të variablave në predha të tjera. 612 00:44:11,250 --> 00:44:15,230 Në C-skeletit, ata janë grupe të dallueshme. 613 00:44:15,230 --> 00:44:18,130 Gjërat që unë kam qenë duke thënë se para se të jeni gati variablave shell. 614 00:44:18,130 --> 00:44:21,300 Variable Mjedisit janë një grup të veçantë të variablave 615 00:44:21,300 --> 00:44:28,650 me përjashtim të disa variablat e cila ne quajmë variablat lidhur, 616 00:44:28,650 --> 00:44:30,640 të cilat janë shumë të rëndësishme dhe ne do të merrni në ato më vonë. 617 00:44:30,640 --> 00:44:34,950 Variable Mjedisit janë kaluar automatikisht në 618 00:44:34,950 --> 00:44:41,800 për predha apo komandat që janë drejtuar nga shell tuaj. 619 00:44:41,800 --> 00:44:46,220 Gjëra të tjera nuk janë. Variablat shell, se emërtimet nuk janë. Variable Mjedisit janë. 620 00:44:46,220 --> 00:44:48,630 Kjo është arsyeja pse ne e quajmë ato mjedisit të ndryshueshëm, 621 00:44:48,630 --> 00:44:55,030 me idenë që mjedisi shtrihet kaluara vetëm shell tuaj të tanishme. 622 00:44:55,030 --> 00:45:00,510 Ato mund të përdoren për të përcaktuar gjëra për komandat. 623 00:45:00,510 --> 00:45:05,470 Këtu është një shembull. Printer, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Të dyja këtyre variablave mund të përcaktojë një printer që një komandë do të përdorin për të shtypur gjëra. 625 00:45:12,270 --> 00:45:16,500 Nëse keni printera të shumta rreth, ju mund të dëshironi të vënë një që ju pëlqen. 626 00:45:16,500 --> 00:45:21,320 Arsyeja që ne kemi 2 variabla është se grupe të ndryshme të komandave u shkruan 627 00:45:21,320 --> 00:45:23,870 duke përdorur këto variabla të ndryshme. 628 00:45:23,870 --> 00:45:25,910 Ju mund të jepni atyre vlera të ndryshme. 629 00:45:25,910 --> 00:45:28,860 Më shumë gjasa që ju do të jepni atyre si njëjtën vlerë të. 630 00:45:28,860 --> 00:45:35,840 Këto gjëra të punojnë, sepse komandat që bëjnë shtypje 631 00:45:35,840 --> 00:45:40,740 janë programuar për të shqyrtuar vlerat e këtyre variablave. 632 00:45:42,200 --> 00:45:46,150 Nëse një program nuk janë shkruar në këtë mënyrë, nëse do të ishte shkruar për të bërë diçka tjetër, 633 00:45:46,150 --> 00:45:48,280 variabël do të ishte e parëndësishme. 634 00:45:48,280 --> 00:45:52,530 Pra sistemi operativ nuk është në kërkim të këtyre variablave 635 00:45:52,530 --> 00:45:55,210 çdo herë që i referohen një printer. 636 00:45:55,210 --> 00:45:59,090 Një komandë që bën shtypje është në kërkim të këtyre variablave, nëse ajo është e programuar në këtë mënyrë. 637 00:46:11,030 --> 00:46:15,240 Këto variabla shpesh janë të përcaktuara në dosjet tuaja inicializimit 638 00:46:15,240 --> 00:46:19,440 por jo domosdoshmërisht. 639 00:46:19,440 --> 00:46:21,050 Ju mund të përcaktojë ato në rreshtin e komandave. 640 00:46:21,050 --> 00:46:24,090 Ata mund të përcaktohen në një komandë. 641 00:46:24,090 --> 00:46:28,740 Një komandë që shkon diçka mund të ketë përzgjedhje e vet të variablave - 642 00:46:28,740 --> 00:46:32,390 variablat që janë unike për një paketë të veçantë software, për shembull. 643 00:46:32,390 --> 00:46:36,740 Ata do të përcaktohet kur ju drejtuar atë paketë. 644 00:46:39,690 --> 00:46:42,680 Si janë këto variabla kaluar në një nën-shell? 645 00:46:42,680 --> 00:46:48,210 Kur një nën-shell është shkruar, kjo nuk do të shkruaj në atë zonë. 646 00:46:48,210 --> 00:46:53,260 Zona e nën-shell që i kushtohet mjedis të ndryshueshëm 647 00:46:53,260 --> 00:46:56,450 nuk është shkruar nga nën-shell, ajo e shkruar nga kopjimit. 648 00:46:56,450 --> 00:47:00,530 Kur ju drejtuar një komandë të zakonshëm, të tilla si këto komanda për të shtypur apo çfarëdo, 649 00:47:00,530 --> 00:47:03,840 ata nisem duke krijuar një shell të ri. 650 00:47:03,840 --> 00:47:06,190 Shell krijon një predhë dhe pastaj overwrites pjesë të saj 651 00:47:06,190 --> 00:47:08,800 me komandën që ju jeni të rrjedhshëm, që është pak konfuze, 652 00:47:08,800 --> 00:47:10,740 por kjo është se si këto komanda merrni mjedis të ndryshueshëm 653 00:47:10,740 --> 00:47:14,890 se ata pastaj i referohen më vonë. 654 00:47:21,920 --> 00:47:28,010 Komanda këtu për përcaktimin e setenv ndryshueshme. 655 00:47:28,010 --> 00:47:36,470 Kjo është se si ju define atë. Kjo është 3 elemente: setenv, e ndryshueshme, vlerë. 656 00:47:36,470 --> 00:47:44,710 Nëse ju vetëm bëni setenv pa argumente, çfarë do të merrni? 657 00:47:47,220 --> 00:47:48,810 Një listë e të gjithë atyre variablave. 658 00:47:48,810 --> 00:47:53,190 Përsëri, kjo është një listë e bukur të gjatë dhe në këtë rast, si në të tjerët, 659 00:47:53,190 --> 00:47:57,320 këto variabla janë të përcaktuara kryesisht nga operacioni Hyrja nga shell vetë 660 00:47:57,320 --> 00:47:59,740 në vend se nga ndonjë gjë e kam bërë. 661 00:47:59,740 --> 00:48:03,580 Ka një tjetër komandë këtu, printenv. 662 00:48:07,520 --> 00:48:10,340 Kjo gjithashtu printime nga mjedisin. 663 00:48:10,340 --> 00:48:15,240 Vini re këtë gjë fundit këtu, = vi editorin. 664 00:48:15,240 --> 00:48:21,120 Kjo thotë se në qoftë se unë jam duke përdorur diçka që e quan një redaktor 665 00:48:21,120 --> 00:48:25,530 dhe unë nuk e specifikon një redaktor dhe ajo lejon mua zgjedhjen, mund të më jepni vi. 666 00:48:25,530 --> 00:48:37,280 Çka nëse unë bëj Editor printenv? Ajo tregon mua se çfarë është ajo. 667 00:48:37,280 --> 00:48:41,340 E drejtë para se, ka pasur një variabël, PAK. 668 00:48:41,340 --> 00:48:46,040 Këto janë defaults mundësitë tuaja kur unë të drejtuar komandën e PAK, 669 00:48:46,040 --> 00:48:49,360 e cila tregon fotografi. 670 00:48:49,360 --> 00:48:55,910 Pra, në qoftë se bëj atë, printenv mund të marrë 1 argumentin ose 0 argumente, 671 00:48:55,910 --> 00:48:58,070 jo më shumë se 1. 672 00:49:01,800 --> 00:49:05,690 Ka komanda të tjera gjithashtu, por ne nuk jemi duke shkuar për të marrë në të gjitha që sot. 673 00:49:05,690 --> 00:49:11,010 Mos harroni se ishin modifiers për variablat shell si: h, 674 00:49:11,010 --> 00:49:14,350 të cilat do të bjerë elementin e fundit të një shtegun, 675 00:49:14,350 --> 00:49:17,950 ose: r, e cila do të bjerë një zgjatje. 676 00:49:17,950 --> 00:49:23,110 Ata tani aplikojnë për variablat e mjedisit shumë. Ata nuk kanë përdorur për të. 677 00:49:23,110 --> 00:49:24,960 Ajo përdoret për të se ata nuk mund të modifikohet. Tani ata mund të jenë. 678 00:49:24,960 --> 00:49:29,190 Kjo është një nga përparimet me zhvillimet e predha gjatë viteve. 679 00:49:29,190 --> 00:49:35,620 Unë kam qenë duke thënë se predha si pjesë e mjediseve 680 00:49:35,620 --> 00:49:43,040 dhe variablave shell në C-shell janë, me disa përjashtime, vendos të dallueshme. 681 00:49:43,040 --> 00:49:46,790 Ju mund të krijojë një variabël mjedisi dhe një ndryshore shell me të njëjtin emër. 682 00:49:46,790 --> 00:49:49,220 Ata do të jenë variabla të ndryshme, ata mund të kenë vlera të ndryshme. 683 00:49:49,220 --> 00:49:53,090 Ndryshimi vlerën e një nuk do të ndryshojë vlerën e tjera. 684 00:49:53,090 --> 00:49:58,070 Këto variabla janë vlerësuar të gjitha me shenjën e dollarit - $ a, $ çdo gjë. 685 00:49:58,070 --> 00:50:02,340 Pra, çfarë nëse ju keni këtë? A e dini në cilën ju merrni? 686 00:50:02,340 --> 00:50:04,520 Në analizat e mia që kam marrë variablin shell, 687 00:50:04,520 --> 00:50:07,240 por kjo nuk është e dokumentuar dhe ju nuk mund të mbështetet në atë. 688 00:50:07,240 --> 00:50:10,270 Kështu që unë kërkoj nga ju, po krijon shell dhe mjedisit variablave 689 00:50:10,270 --> 00:50:13,490 me emra të njëjtë një ide e mirë? Nr Mirë. 690 00:50:13,490 --> 00:50:17,460 Cilat janë këto përjashtime të mëdha në të cilin mjedisi dhe shell variablat 691 00:50:17,460 --> 00:50:19,860 janë të lidhura me njëra-tjetrën? 692 00:50:19,860 --> 00:50:27,470 Nuk janë këto 4. 693 00:50:32,030 --> 00:50:35,510 Letër Capital variabël mjedisi Term, 694 00:50:35,510 --> 00:50:41,540 predhë termin ndryshueshme me shkronja të vogla, lloj rivalitet terminal. 695 00:50:41,540 --> 00:50:47,430 Unë jam vetëm do të shkojnë mbi këtu dhe unë jam duke shkuar për të bërë jehonë, një komandë të dobishëm këtu, 696 00:50:47,430 --> 00:50:52,560 $ Termi Term $. Dhe nuk ka. 697 00:50:52,560 --> 00:51:00,570 xterm është një lloj terminali për dritare shfaqura në x Window System. 698 00:51:00,570 --> 00:51:04,330 xterm-ngjyra është një variant i se që lejon ngjyra të ndryshme. 699 00:51:04,330 --> 00:51:06,580 Pse nuk kemi përcaktuar këto? Çfarë është kjo e mirë për të? 700 00:51:06,580 --> 00:51:09,740 Komandat që të korrigjoj ekran si e redaktorit 701 00:51:09,740 --> 00:51:13,680 dërgoni sekuenca të veçanta, të quajtur sekuenca shpëtuar, 702 00:51:13,680 --> 00:51:18,160 në një terminal ose një dritare për të korrigjoj atë dhe kështu me radhë. 703 00:51:18,160 --> 00:51:20,990 Këto sekuenca janë të ndryshme për lloje të ndryshme të terminaleve. 704 00:51:20,990 --> 00:51:23,100 Kjo tregon atë që ato për të përdorur. 705 00:51:23,100 --> 00:51:25,900 Ndonjëherë ka çështje atje. 706 00:51:25,900 --> 00:51:28,600 Ju mund të dëshironi të ndryshojë këtë. 707 00:51:28,600 --> 00:51:30,780 Nëse gjërat nuk janë duke punuar, ndonjëherë lloji terminali është vendosur gabim, 708 00:51:30,780 --> 00:51:36,440 ju mund të jeni në gjendje për të rregulluar atë duke ripërcaktimin ndryshueshme afat. 709 00:51:36,440 --> 00:51:43,420 Në këto raste, ndryshimi i një ndryshore, të variabël mjedisi apo variablin shell, 710 00:51:43,420 --> 00:51:45,970 duhet të ndryshojë një tjetër. 711 00:51:45,970 --> 00:51:50,970 Unë e kam zbuluar nga përvoja që ndryshon gjatë në shkronja të mëdha 712 00:51:50,970 --> 00:51:54,060 nuk ka gjithmonë të ndryshojë shell termin ndryshueshme me shkronja të vogla. 713 00:51:54,060 --> 00:51:55,550 Kjo është një bug. 714 00:51:55,550 --> 00:51:59,400 Unë nuk e di nëse kjo është gjithmonë e vërtetë. Shumica e kohës kjo nuk është e vërtetë, por ajo mund të jetë. 715 00:51:59,400 --> 00:52:02,490 Pra, nëse ju bëni një ndryshim, vetëm shikoni se nga. 716 00:52:02,490 --> 00:52:05,830 Kjo nuk është shpesh se keni nevojë për të ndryshuar atë vlerë, por një herë në një kohë që ju bëni. 717 00:52:05,830 --> 00:52:08,260 USER Mjedisi ndryshueshme. 718 00:52:08,260 --> 00:52:12,070 Përsëri, variabël mjedisi me shkronja të mëdha, predhë ndryshueshme me shkronja të vogla. 719 00:52:12,070 --> 00:52:13,710 Kjo është emrin e përdoruesit. 720 00:52:13,710 --> 00:52:16,730 Është vetëm në rrethana shumë të jashtëzakonshme 721 00:52:16,730 --> 00:52:18,420 që ju do të duan të ndryshojnë këtë. 722 00:52:18,420 --> 00:52:22,350 Nëse emrin e përdoruesit është dikush tjetër, ajo mund të hedhin të gjitha llojet e gjërave off. 723 00:52:22,350 --> 00:52:26,040 Faqja kryesore directory, directory përdoruesit në shtëpi. 724 00:52:26,040 --> 00:52:28,060 Përsëri, ju nuk do të duan për të ndryshuar këtë. 725 00:52:28,060 --> 00:52:32,260 Vini re në të gjitha këto raste dhe një që ne jemi gati për të mbuluar, variablin rrugën, 726 00:52:32,260 --> 00:52:37,070 Ndryshorja e mjedisit është me shkronja të mëdha dhe të ndryshueshme lidhur shell është me shkronja të vogla. 727 00:52:37,070 --> 00:52:39,240 Nëse ju të ndryshojë një, ju duhet të ndryshojë të tjera. 728 00:52:39,240 --> 00:52:45,960 Ky lloj detyrueshme nuk mund të përcaktohet si ju nuk mund të lidhet 2 variablave, 729 00:52:45,960 --> 00:52:50,570 përveç keto 4, dhe lidhjen ne variablat nuk mund te fikur, 730 00:52:50,570 --> 00:52:52,090 ju nuk mund të veçanta ato. 731 00:52:52,090 --> 00:52:55,820 Pra, këto 4 palë variablave janë të lidhur. 732 00:52:55,820 --> 00:52:59,020 Ata gjithmonë do të jetë. Askush tjetër nuk do të jetë. 733 00:52:59,020 --> 00:53:05,720 Përveç kësaj, do të ishte e mundur për të krijuar variabla me emra të njëjtë 734 00:53:05,720 --> 00:53:07,780 e llojeve të kundërta. 735 00:53:07,780 --> 00:53:11,600 Ju mund të bëni një term shell ndryshueshme me shkronja të vogla 736 00:53:11,600 --> 00:53:14,990 ose një mjedis Term variabël me shkronja të mëdha. 737 00:53:14,990 --> 00:53:19,040 Këto variabla do të jetë i pavarur prej këtyre variablave çiftëzohet 738 00:53:19,040 --> 00:53:20,780 dhe që do të jenë të pavarur nga njëra-tjetra. 739 00:53:20,780 --> 00:53:23,780 Unë nuk mund ta imagjinoj pse ju do të bëni atë nëse nuk doni të ngatërruar njerëzit. 740 00:53:24,600 --> 00:53:29,730 Ky këtu, e ndryshueshme rrugë, kjo është një e vërtetë e rëndësishme. 741 00:53:29,730 --> 00:53:35,550 Një tjetër gjë këtu është se nuk mund të ketë raste 742 00:53:35,550 --> 00:53:40,430 i variablat emrat ngjashme çiftuar që nuk janë të lidhur me njëri tjetrin. 743 00:53:40,430 --> 00:53:45,000 Nuk mund të variablave, SHELL dhe shell, në kapitale dhe letra të vogla. 744 00:53:45,000 --> 00:53:48,300 Bazuar në atë emër, ju nuk e di nëse kjo është e ndryshueshme një variabël shell 745 00:53:48,300 --> 00:53:51,580 ose një variable mjedis, dhe ata nuk janë të lidhur me njëri tjetrin. 746 00:53:51,580 --> 00:53:55,300 Pra, kjo lloj emrave çiftëzohet nuk nënkupton variablave të lidhur. 747 00:53:55,300 --> 00:53:58,830 Ndryshueshme rrugë, të cilën unë u treguar më parë, 748 00:53:58,830 --> 00:54:01,880 është një listë e pathname-in në të cilin shell duket për komandat. 749 00:54:01,880 --> 00:54:12,320 Le të marrë mbi këtë dritare ketu dhe ne do të bëjmë echo $ PATH, shkronja të mëdha - 750 00:54:12,320 --> 00:54:20,230 Ndryshorja e mjedisit - echo $ rrugën, letra të vogla - derdh ndryshore. 751 00:54:20,230 --> 00:54:24,980 Vini re se lista e directories është e njëjtë. Këto janë të lidhur. 752 00:54:24,980 --> 00:54:26,590 Ndryshimi një, ju ndryshim tjetër. 753 00:54:26,590 --> 00:54:32,970 Në variabël ambiental elementet janë të ndara nga colons. Vini re se. 754 00:54:32,970 --> 00:54:35,130 Variablat shell janë të ndara nga hapësira. 755 00:54:35,130 --> 00:54:38,760 Kjo variabël mjedisi është një varg i vetëm. 756 00:54:38,760 --> 00:54:41,480 Ndryshueshme shell është një koleksion. 757 00:54:41,480 --> 00:54:43,490 Bourne shell nuk kishte vargjeve. 758 00:54:43,490 --> 00:54:46,600 Bash bën, por kjo është tashmë një pjesë të caktuar të shell. 759 00:54:46,600 --> 00:54:48,660 Ky është një varg i vetëm dhe jo një grup. 760 00:54:48,660 --> 00:54:50,420 C-shell gjithmonë ka pasur vargjeve. 761 00:54:50,420 --> 00:54:52,630 Vargjeve janë shumë më të lehtë për të punuar me të. 762 00:54:52,630 --> 00:54:54,400 Ju mund të referohet në pjesë të tij. 763 00:54:54,400 --> 00:55:02,350 Rruga Pra echo $ [1] dhe të shkoj / usr / bin, elementi i parë. 764 00:55:02,350 --> 00:55:09,950 Përsëri, mos harroni dollar shenjë qëndron për elementin e fundit të listës së historisë. 765 00:55:09,950 --> 00:55:16,850 Çfarë ndodh atje? Ai u përpoq për të gjetur shenjë e dollarit si një simbol të ndryshueshme. 766 00:55:16,850 --> 00:55:20,850 I shpëtuar atë. Oops. Kjo nuk do të marrë atë ose. 767 00:55:20,850 --> 00:55:23,690 Disa nga këto gjëra nuk punojnë aq mirë. 768 00:55:23,690 --> 00:55:28,140 Ndoshta ne do të lënë vetëm atë jashtë. 769 00:55:28,140 --> 00:55:36,980 Asterisk i referohet të gjithë gjë, por kjo është ajo që ju merrni nëse nuk e specifikoni një element. 770 00:55:36,980 --> 00:55:46,170 Një tjetër mënyrë që variablat array mund të manipulohen, 771 00:55:46,170 --> 00:55:49,500 Numri i elementeve atje, 7 elemente. 772 00:55:49,500 --> 00:55:53,410 Këtu ne kemi vënë shenjën paund para emrin e ndryshueshme. 773 00:55:53,410 --> 00:55:58,280 Ja një tjetër. Vendos një pikëpyetje atje. 774 00:55:58,280 --> 00:56:03,170 Kjo është një vlerë logjike. Kjo tregon se ekziston ndryshueshme. 775 00:56:03,170 --> 00:56:05,160 Kjo është një tjetër mënyrë për të punuar me variablave. 776 00:56:05,160 --> 00:56:06,660 Kjo, nga rruga, nuk duhet të jetë një variabël grup. 777 00:56:06,660 --> 00:56:08,210 Kjo mund të jetë çdo variabël. 778 00:56:08,210 --> 00:56:11,840 Dhe në qoftë se unë bëj, nuk ka ndryshore të tilla dhe të marr një 0. 779 00:56:11,840 --> 00:56:14,990 Një tjetër gjë e vogël ka lidhje me vlerësimet e ndryshueshme. 780 00:56:23,670 --> 00:56:32,950 Mbrapsht në këtë këtu, në qoftë se për ndonjë arsye ju të kërkuar për të punuar me këtë 781 00:56:32,950 --> 00:56:37,990 në vend se të punojnë me grup, ndryshueshme shell, 782 00:56:37,990 --> 00:56:41,470 ka komandat që mund të ndajnë këto gjëra në bazë të zorrës së trashë. 783 00:56:41,470 --> 00:56:44,080 Në fakt, në qoftë se ju jeni do të jetë bërë këtë në Bash shell ndoshta, 784 00:56:44,080 --> 00:56:47,110 një lloj një skenar, kjo do të ishte me siguri se si do të bëhet kjo. 785 00:56:47,110 --> 00:56:50,350 Por në C-shell është shumë më e lehtë për t'u përdorur array. 786 00:56:50,350 --> 00:56:58,250 Në Bourne shell, variablat janë caktuar nga një shprehje të vetme si kjo, 787 00:56:58,250 --> 00:57:01,760 si mënyrë ju mund të caktoni një ndryshore në një gjuhë programimi, 788 00:57:01,760 --> 00:57:05,110 dhe këtu nuk duhet të ketë hapësira. 789 00:57:05,110 --> 00:57:09,110 Është e nevojshme që ajo të jetë vetëm 1 string. 790 00:57:09,110 --> 00:57:14,980 Në predha Bourne tipit, të gjithë variablat janë variablat shell. 791 00:57:14,980 --> 00:57:19,250 Variable Mjedisit janë një mesin e variablave shell. 792 00:57:19,250 --> 00:57:24,060 Ata dallohen nga variablave jo-mjedisore duke eksportuar. 793 00:57:24,060 --> 00:57:28,860 Komanda për të bërë këtë është të eksportit, si eksportit printer. 794 00:57:28,860 --> 00:57:34,930 Nëse do të përcaktojë një ndryshore të tillë, 795 00:57:34,930 --> 00:57:38,480 nëse kemi dashur një komandë shtypjen për të gjetur atë, ajo do të duhet të jetë një variabël mjedisi, 796 00:57:38,480 --> 00:57:40,730 dhe kjo është se si ne të bërë atë një. 797 00:57:40,730 --> 00:57:42,090 Këtu ka diçka lloj i konfuze. 798 00:57:42,090 --> 00:57:50,430 Kjo shprehje, eksporti në mjedis, buron nga ky koncept Bourne shell, 799 00:57:50,430 --> 00:57:54,520 dhe akoma qe shprehja përdoret në përshkrimit të C-skeletit, 800 00:57:54,520 --> 00:57:57,920 kur nuk ka të tillë urdhër si eksport. 801 00:57:57,920 --> 00:58:06,200 Nëse ju vetëm thonë eksportit në vetvete, që ju të merrni një listë të eksportuar - 802 00:58:06,200 --> 00:58:10,620 Pra, në qoftë se unë vetëm do të eksportit këtu, ka gjë të tillë. 803 00:58:13,620 --> 00:58:15,200 Mirë, këtu ne do të shkojmë. 804 00:58:15,200 --> 00:58:17,010 Këto gjëra, nga mënyra, janë gjithashtu të përcaktuar nga shell. 805 00:58:17,010 --> 00:58:19,400 Unë nuk ka përcaktuar ndonjë nga këto me veten time. 806 00:58:19,400 --> 00:58:23,550 Shell bën të gjitha llojet e gjërave në vetvete. 807 00:58:23,550 --> 00:58:26,650 Ajo duhet të bëjë gjëra automatikisht. 808 00:58:30,240 --> 00:58:36,880 Në Bash ose Korn shell, ju mund të kandidojë një komandë si kjo, 809 00:58:36,880 --> 00:58:42,000 e cila do të të dy të japë një variable një vlerë dhe të eksportojë atë në 1 komandë. 810 00:58:42,000 --> 00:58:46,150 Në shell Bourne ata duhet të jenë të komandave të veçanta si eksport një. 811 00:58:46,150 --> 00:58:48,410 Këtu është një tjetër aspekt që është konfuze. 812 00:58:48,410 --> 00:58:52,220 Komanda vendosur në C-shell përcakton variablat 813 00:58:52,220 --> 00:58:55,550 dhe pa argumente ju tregon se çfarë vlerat e variablave janë të '. 814 00:58:55,550 --> 00:59:01,140 Në Bash shell, komanda vendosur pa argumente bën të njëjtën gjë, 815 00:59:01,140 --> 00:59:03,580 por me argumente që të bëjë diçka krejt të ndryshme. 816 00:59:03,580 --> 00:59:06,200 Pra, këto janë argumentet të ndryshme këtu. 817 00:59:06,200 --> 00:59:10,460 Disa nga këto janë të mjedisit të ndryshueshëm, disa prej tyre janë të variablave shell. 818 00:59:10,460 --> 00:59:13,200 Të gjithë ata janë të variablave shell me të vërtetë. Disa nga ato janë të mjedisit të ndryshueshëm. 819 00:59:15,690 --> 00:59:23,920 Komanda vendosur me argumente mund të përdoret për të vepruar 820 00:59:23,920 --> 00:59:28,220 në parametrat pozicional në një skenar, 821 00:59:28,220 --> 00:59:33,910 e cila është një mënyrë për të marrë ato të gjitha në të njëjtën kohë. 822 00:59:33,910 --> 00:59:36,150 Ne nuk mund të vërtetë të shkojnë në atë sot. 823 00:59:36,150 --> 00:59:39,580 Ajo gjithashtu mund të përdoret për të ndryshuar sjelljen shell. 824 00:59:39,580 --> 00:59:46,700 Veçanërisht në Bash ka variabla të cilat do të përcaktojnë se si sillet shell. 825 00:59:46,700 --> 00:59:51,310 Pastaj edhe vetëm këtë komandë një që ju mund të shihni, kjo komandë. 826 00:59:51,310 --> 00:59:59,050 Typeset ndjekur nga variabla dhe llojet e ndryshueshme është përdorur në Korn dhe bash predha. 827 00:59:59,050 --> 01:00:04,970 Kjo nuk është e detyrueshme, por ajo mund të përdoret për të kufizuar vlerat e variablave, 828 01:00:04,970 --> 01:00:08,400 të cilat mund të jenë të dobishme për të parandaluar gabime, dhe kjo është mjaft e zakonshme. 829 01:00:08,400 --> 01:00:11,640 Kështu që unë jam vetëm të përmendet se në rast se ju shohin atë diku. 830 01:00:17,290 --> 01:00:19,160 Ku komandës. 831 01:00:19,160 --> 01:00:22,490 Mos harroni përmenda më parë, ku komanda në C-shell, 832 01:00:22,490 --> 01:00:28,750 të cilat mund të ju tregojnë vendndodhjen e një shtegun komandës. 833 01:00:28,750 --> 01:00:32,580 Këtu është zëvendësimi komandës. 834 01:00:32,580 --> 01:00:41,900 Ju duhet të gjeni në tastierën tuaj diku një karakter që duket si ky. 835 01:00:41,900 --> 01:00:44,910 Vend në tastierë do të ndryshojnë. 836 01:00:44,910 --> 01:00:47,050 Ne e kemi quajtur atë backquote. Është në lidhje me madhësinë e një kuotë. 837 01:00:47,050 --> 01:00:48,720 Ajo shkon nga majta e sipërme për të ulur të drejtë. 838 01:00:48,720 --> 01:00:52,690 Këtu në Mac tastierën e mia është në këndin e sipërm të majtë. 839 01:00:52,690 --> 01:00:58,150 Që karakteri mund të përdoret për të ekzekutuar një komandë në një komandë. 840 01:00:58,150 --> 01:01:03,400 Nëse ju keni një shprehje brenda backquotes, 841 01:01:03,400 --> 01:01:07,080 kjo shprehje është një komandë, është e drejtuar. 842 01:01:07,080 --> 01:01:09,010 Prodhimi i kësaj komande 843 01:01:09,010 --> 01:01:11,980 zevendesohet pastaj për të tërë shprehjes backquote 844 01:01:11,980 --> 01:01:16,110 brenda një komandë më të gjatë e cila më pas shkon me atë prodhim 845 01:01:16,110 --> 01:01:22,010 si pjesë e vargut të tij të argumenteve e kështu me radhë. 846 01:01:22,010 --> 01:01:28,640 Këtu është një komandë e cila përdor atë. 847 01:01:28,640 --> 01:01:32,340 Le të demonstrojnë operacionin këtu. 848 01:01:44,980 --> 01:01:49,090 Le të shkojnë deri këtu, të marrë nga backquotes. 849 01:01:49,090 --> 01:01:54,410 Kontrolli Një merr mua në fillim të linjës me redaktimi sintaksë Emacs. 850 01:01:54,410 --> 01:02:00,380 Deri tani pathname-in është ajo ku bën, 851 01:02:00,380 --> 01:02:05,040 por kur kam bërë atë si kjo, ajo pastaj priza në atë listë të pathname-in 852 01:02:05,040 --> 01:02:08,750 në vend të kësaj shprehje tërë backquote dhe shkon Ls-l mbi ta. 853 01:02:08,750 --> 01:02:11,120 Lloji i përshtatshëm, huh? 854 01:02:11,120 --> 01:02:14,860 Pra, kjo është një gjë zoti. Kjo është se si të punojnë backquotes. 855 01:02:14,860 --> 01:02:17,560 Tani le të zbresin pak më tej. 856 01:02:17,560 --> 01:02:22,050 Këto janë emërtimet. Unë në fakt përdorin këto. 857 01:02:22,050 --> 01:02:26,410 Unë do të përpiqemi për të marrë këtë në me 1 operacion redaktimi. 858 01:02:34,900 --> 01:02:36,900 Mirë. 859 01:02:36,900 --> 01:02:39,630 Tani le të shohim se si dolën këto përkufizime. 860 01:02:39,630 --> 01:02:44,930 alias LWH thënë mua se si është përcaktuar. 861 01:02:44,930 --> 01:02:51,210 Vini re se kjo është vetëm kjo, por kuotat e jashtme janë marrë off 862 01:02:51,210 --> 01:02:53,750 dhe pikë thirrje është marrë off. 863 01:02:53,750 --> 01:02:58,940 ! *, Lista e plotë e të gjitha argumenteve. 864 01:02:58,940 --> 01:03:03,580 Në një përkufizim alias ajo do të aplikojë përsëri në ku unë të përdorur këtë. 865 01:03:03,580 --> 01:03:10,620 LWH ksh bash. Mirë. 866 01:03:10,620 --> 01:03:13,960 Shih se si punon kjo? Kjo kursen mua disa typing. 867 01:03:13,960 --> 01:03:16,440 Le të shkojnë deri pak vetëm për të përmendur diçka tjetër këtu. 868 01:03:19,150 --> 01:03:23,120 Vini re këtu këto predha të ndryshme. Unë duhet të ketë përmendur këtë më parë. 869 01:03:23,120 --> 01:03:36,060 Csh ka një 2 mbi këtu dhe kështu bën / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Ne mund të krijojë me mjete të tjera se ata janë në të vërtetë të njëjtën fotografi. 871 01:03:39,870 --> 01:03:43,150 Mos harroni Unë kam qenë duke thënë se në qoftë se ju shkruani sh ju merrni bash. 872 01:03:43,150 --> 01:03:47,390 Lloji këtë dhe që ju të merrni këtë. 873 01:03:47,390 --> 01:03:51,730 Por, ata nuk janë të lidhura. Ata kanë ato të vetme atje. 874 01:03:51,730 --> 01:03:54,910 Dhe kjo nuk është lloji i skedarit cilat mund të telefononi një tjetër. 875 01:03:54,910 --> 01:03:59,460 Pra, ata janë fotografi të veçanta, ato C-shell janë të njëjta fotografi. 876 01:03:59,460 --> 01:04:03,640 Përsëri poshtë këtu, një tjetër këtu, kjo alias, 877 01:04:03,640 --> 01:04:09,090 vini re që është duke këtë komandë, fotografi. 878 01:04:09,090 --> 01:04:13,810 Kjo alias shkon se. Fotografi ju tregon llojin e një file. 879 01:04:13,810 --> 01:04:20,330 Bash kështu FWH ksh. Mirë. 880 01:04:20,330 --> 01:04:23,230 Kjo është prodhimi i komandës file. 881 01:04:23,230 --> 01:04:24,630 Unë nuk e di nëse e dini se çfarë kjo do të thotë këtu, 882 01:04:24,630 --> 01:04:26,750 Mach-O binar universal me 2 arkitektura. 883 01:04:26,750 --> 01:04:30,470 Ka 2 lloje të mundshme procesor në Mac, 884 01:04:30,470 --> 01:04:34,780 dhe disa programe janë shkruar që të jetë në gjendje për të drejtuar me të dyja, 885 01:04:34,780 --> 01:04:37,950 dhe komandën fotografi mund të përcaktojë se, kështu që kjo është ajo që do të thotë kjo. 886 01:04:37,950 --> 01:04:40,660 Të dyja këto fotografi janë shkruar në këtë mënyrë. 887 01:04:40,660 --> 01:04:43,760 Pra, ne shohim se si punon alias, ne shohim se si punon backquote, 888 01:04:43,760 --> 01:04:48,640 ne shohim se si ls aktuale e file ose fotografi punon. 889 01:04:52,050 --> 01:04:57,000 Kjo mund të mos punojnë. Provoni "ku ku" dhe "LWH ku". Mirë, le të provojmë atë. 890 01:04:57,000 --> 01:05:01,040 ku ku. 891 01:05:01,040 --> 01:05:03,500 ku është një shell ndërtuar në. 892 01:05:03,500 --> 01:05:06,970 Mos harroni më herët kemi treguar se bash nuk kishte ku. 893 01:05:06,970 --> 01:05:10,080 Nëse ju shkruani, ku në Bash shell, ju merrni një mesazh gabimi. 894 01:05:10,080 --> 01:05:12,540 Kjo është vetëm pjesë e shell në vend se të qënit një komandë të veçantë. 895 01:05:12,540 --> 01:05:20,000 Çfarë ndodh nëse unë lloji LWH duke kërkuar për ku? Shih se çfarë ndodh atje. 896 01:05:20,000 --> 01:05:22,850 Ran ku ku, mori këtë prodhim, dhe pastaj u përpoq për të drejtuar ls 897 01:05:22,850 --> 01:05:25,600 si l se ku është një shell ndërtuar në. 898 01:05:25,600 --> 01:05:28,790 ku është atje, por ato të tjera nuk ekzistojnë. 899 01:05:28,790 --> 01:05:32,090 Asnjë nga këto nuk ekzistojnë, në të vërtetë. 900 01:05:32,090 --> 01:05:35,560 Kështu që nuk funksionon gjithmonë, dhe kjo ilustron edhe se si disa gjëra 901 01:05:35,560 --> 01:05:39,580 mos e bëni fare se çfarë ju mund të keni menduar. 902 01:05:40,930 --> 01:05:43,010 Le të zbresin pak më tej këtu. 903 01:05:44,890 --> 01:05:54,760 Kjo këtu është në Bash. Kjo është edhe zëvendësimi i komanda si backquote. 904 01:05:54,760 --> 01:06:05,280 Por ndryshe nga backquote, ai përdor këtë stil të ndryshueshme. 905 01:06:05,280 --> 01:06:09,860 Ka një numër të shprehjeve të cilat fillojnë me një shenjë dollar, 906 01:06:09,860 --> 01:06:16,070 dhe ndërsa këto nuk janë variabla, ata huazuar përdorimin e shenjës së dollarit 907 01:06:16,070 --> 01:06:19,570 për të treguar një shprehje të këtij lloji. 908 01:06:19,570 --> 01:06:23,550 Që mund të jetë i rrethuar me kllapa ose kllapa ose kllapa dyshe 909 01:06:23,550 --> 01:06:26,320 cila ka një qëllim tjetër. 910 01:06:26,320 --> 01:06:29,500 Kllapat Beqar këtu janë një zëvendësim komandë vetëm si backquotes. 911 01:06:29,500 --> 01:06:32,720 Kllapat dyshe është në fakt një operacion aritmetik. 912 01:06:32,720 --> 01:06:35,380 Ka syntaxes të tjera, operacione të tjera. 913 01:06:35,380 --> 01:06:41,520 Sintaksa Backquote është në dispozicion në Bash. 914 01:06:41,520 --> 01:06:46,780 Megjithatë, kjo është e preferueshme. Është shumë më e lehtë për të lexuar dhe i lejon fole. 915 01:06:46,780 --> 01:06:51,300 Ju mund të keni brenda $ (komanda) një tjetër komandë, 916 01:06:51,300 --> 01:06:54,590 diçka si - 917 01:07:14,560 --> 01:07:18,210 Unë të merrni një listë atje. 918 01:07:18,210 --> 01:07:21,670 Kjo do të punojë në qoftë se kam pasur backquote gjithashtu. 919 01:07:32,050 --> 01:07:38,470 Çka nëse unë dua të bëj diçka si - 920 01:08:03,390 --> 01:08:06,430 Ju ndoshta nuk do të vërtetë e përdorin këtë komandë, 921 01:08:06,430 --> 01:08:14,160 por kjo komandë zëvendësimi i brendshëm i bën jehonë emrat e të gjitha dosjeve që fillojnë me një, 922 01:08:14,160 --> 01:08:18,229 atëherë kjo shkon ls-l në ato fotografi, 923 01:08:18,229 --> 01:08:20,500 dhe pastaj kjo vetëm i bën jehonë e prodhimit. 924 01:08:21,729 --> 01:08:24,479 Ju ndoshta nuk do të bëjë këtë, ju vetëm do të bëjë jehonë ose ls, 925 01:08:24,479 --> 01:08:29,450 por kjo ilustron se si fole e komandave punon. 926 01:08:29,450 --> 01:08:34,380 Pra, vetëm një tjetër tipar këtu. 927 01:08:34,380 --> 01:08:37,450  I përmendur këtë më parë, se kur ju keni ku në C-shell, 928 01:08:37,450 --> 01:08:42,770 shkruani punëve në predha Bourne tipit për gjetjen e komandave. 929 01:08:48,939 --> 01:08:52,270 Ndërtuar në komandat, vetëm atë që unë isha duke thënë atje. 930 01:08:52,270 --> 01:08:54,640 Komandat jane pjese e guaskes, si ku. 931 01:08:54,640 --> 01:08:59,880 Kur shell ekzekuton një komandë si ls, ajo ndodhet atë nëpërmjet rrugën, 932 01:08:59,880 --> 01:09:03,029 e gjen atë në një directory diku, 933 01:09:03,029 --> 01:09:05,800 thuhet se në kujtesë, krijon një predhë të re, 934 01:09:05,800 --> 01:09:08,960 lexon ls komandën ose çfarëdo në shell 935 01:09:08,960 --> 01:09:11,450 ku mjedisit të ndryshueshëm janë të vendosura tashmë, 936 01:09:11,450 --> 01:09:14,000 dhe pastaj ajo transferon ekzekutimin për të. 937 01:09:14,000 --> 01:09:18,319 Built-in komandën, Kodi për atë komandë është brenda shell, 938 01:09:18,319 --> 01:09:21,460 kështu shell vetëm fillon ekzekutimin e një pjesë të kodit të saj. 939 01:09:21,460 --> 01:09:24,569 ku është një urdhër i tillë. Ajo në fakt merr më të shpejtë. 940 01:09:24,569 --> 01:09:28,380 Ai nuk ka për të lexuar ndonjë gjë në kujtesë, është tashmë në kujtesën. 941 01:09:28,380 --> 01:09:32,460 Komandat Built-në gjithmonë kanë përparësi ndaj komandave me të njëjtin emër. 942 01:09:32,460 --> 01:09:36,050 Komandat që janë në directories në rrugën mund të ketë të njëjtin emër, 943 01:09:36,050 --> 01:09:39,090 komandat në drejtorive të ndryshme, fotografi në directories të ndryshme. 944 01:09:39,090 --> 01:09:41,740 Një që ndodh më herët në rrugën është një që ju do të merrni. 945 01:09:41,740 --> 01:09:43,770 Nëse ka një komandë ndërtuar në, ju gjithmonë merrni atë. 946 01:09:43,770 --> 01:09:47,890 Nuk ka asnjë mënyrë për të dhënë atë një përparësi më të ulët se një komandë në rrugën. 947 01:09:47,890 --> 01:09:54,140 Nëse ju doni të merrni atë komandën rrugën, ju mund të shtypni e file të plotë. 948 01:09:54,140 --> 01:09:55,850 Nëse do të kishte një komandë, ku në rrugën diku, 949 01:09:55,850 --> 01:09:58,440 ju mund të shkruani / bin / ku dhe ju do të merrni atë. 950 01:09:58,440 --> 01:10:01,800 Nëse ju nuk doni të shkruani të gjithë të file, ju mund të përcaktojë një pseudonim. 951 01:10:01,800 --> 01:10:06,310 Në fakt, në qoftë se ju dha pseudonimin të njëjtin emër si ndërtuar në komandë, ajo do të punojë 952 01:10:06,310 --> 01:10:08,790 sepse përkufizimi alias është vlerësuar 953 01:10:08,790 --> 01:10:13,220 para shell përcakton se kjo është një ndërtuar në komandë të cilat duhet të ekzekutohet. 954 01:10:18,810 --> 01:10:23,440 Atëherë kjo merr pak më e komplikuar me disa komandat këtu. 955 01:10:23,440 --> 01:10:29,880 Rasti i disa komandave janë ndërtuar në të vërtetë komandat dhe në rrugën. 956 01:10:29,880 --> 01:10:34,140 Një prej tyre është jehonë, komanda unë vetëm përdorur pak kohë më parë në këto shembuj. 957 01:10:34,140 --> 01:10:37,410 Echo është një komandë në rrugën dhe është në çdo shell. 958 01:10:37,410 --> 01:10:40,580 Ata jo domosdoshmërisht të gjithë sillen në të njëjtën mënyrë. 959 01:10:40,580 --> 01:10:42,970 Kjo ishte fillimisht një komandë vetëm në rrugë. 960 01:10:42,970 --> 01:10:45,280 Ajo është ndërtuar në të predha më vonë. 961 01:10:45,280 --> 01:10:48,080 Sepse ka opsione të cilat varen nga mjedisi 962 01:10:48,080 --> 01:10:52,970 dhe opsioneve të komandës, e ndërtuar në komandat 963 01:10:52,970 --> 01:10:57,030 janë shkruar të funksionojë njëjtë me komandën që kishte qenë në rrugë, 964 01:10:57,030 --> 01:10:59,670 është e pamundur që ata do të ishin shkruar në këtë mënyrë 965 01:10:59,670 --> 01:11:01,720 nëse komanda nuk e kishte tashmë janë shkruar për rrugën. 966 01:11:01,720 --> 01:11:06,180 Pra, kjo ka efekte anësore. Historia e saj ka efekte këtu. 967 01:11:06,180 --> 01:11:08,380 Ka mundësi atje. 968 01:11:14,280 --> 01:11:23,060 Ka edhe një opsion të përcaktuara nga një ndryshore në tcsh quajtur echo_style. 969 01:11:23,060 --> 01:11:27,700 Kjo është një prej këtyre variablave që mund të ndryshojë mënyrën se ECHO vepra. 970 01:11:27,700 --> 01:11:30,910 Ka raste të tjera në të cilat ju mund të caktojë një ndryshore 971 01:11:30,910 --> 01:11:36,290 që ndryshon mënyrën se operacioni shell, duke përfshirë një komandë të ndërtuar-në, punon. 972 01:11:36,290 --> 01:11:38,130 Kjo nuk do të ndikojë në çdo gjë tjetër 973 01:11:38,130 --> 01:11:40,640 që nga komandat e tjera nuk kanë qasje në ndryshoret shell, 974 01:11:40,640 --> 01:11:42,090 vetëm variablat e mjedisit. 975 01:11:42,090 --> 01:11:45,360 Por operacionet shell mund të lexoni variablat shell. 976 01:11:45,360 --> 01:11:50,710 Kjo nuk do të punojë për csh. Kjo është vetëm tcsh. Kjo është një nga enhancements. 977 01:11:58,540 --> 01:12:04,620 Parsing ka sekuenca kur vlerëson metacharacters, 978 01:12:04,620 --> 01:12:08,140 kur vlerëson variablave, emërtimet, referencat e historisë. 979 01:12:08,140 --> 01:12:11,830 Ka një sekuencë të veçantë për këto gjëra. 980 01:12:11,830 --> 01:12:13,730 Nëse e bën gjërat në një sekuencë të veçantë 981 01:12:13,730 --> 01:12:16,080 dhe merr për diçka që është një shprehje e një lloj 982 01:12:16,080 --> 01:12:20,650 i cili tashmë është vlerësuar, ajo nuk do të vlerësojë atë përsëri. 983 01:12:20,650 --> 01:12:24,520 Nëse ajo merr atë, atëherë ai thjesht do të kalojë në karaktere. 984 01:12:24,520 --> 01:12:29,920 Pra, nëse vlerësimi i disa shprehjeve si zëvendësim të komandës 985 01:12:29,920 --> 01:12:36,850 ose variabël ose çfarëdo jep të rritet në një shprehje 986 01:12:36,850 --> 01:12:39,240 të cilën ju do të duan të jenë të vlerësuar, 987 01:12:39,240 --> 01:12:42,510 që do të punojnë vetëm në qoftë se vlerësimi ndodh më pas në rend. 988 01:12:42,510 --> 01:12:45,010 Unë shpresoj se unë jam duke u qartë atje. 989 01:12:45,010 --> 01:12:50,460 Kjo sekuencë parsing, një operacion në C-shell, 990 01:12:50,460 --> 01:12:56,490 nuk është e njëjtë për të ndërtuar në komandat si ajo është për jo-të ndërtuar në komandat. 991 01:12:56,490 --> 01:12:58,890 Unë nuk jam i sigurt për Bash atje. 992 01:12:58,890 --> 01:13:02,450 Për shembull, në qoftë se një variabël predhë prodhuar një referencë të historisë, 993 01:13:02,450 --> 01:13:04,230 kjo ndoshta nuk do të kthehemi në histori. 994 01:13:04,230 --> 01:13:06,010 Ajo do të marrë vetëm me pikë thirrje. 995 01:13:06,010 --> 01:13:08,840 Në fakt, ne mund të përpiqemi vetëm se nga tani. 996 01:13:09,720 --> 01:13:18,240 vendosur një = dhe ne do të duhet për të vënë këtë në atje. 997 01:13:30,690 --> 01:13:34,580 Oh, prisni. Më vjen keq. Unë e bëri këtë në Bash. Unë të kërkuar për të bërë atë këtu. 998 01:13:53,470 --> 01:13:56,080 Shih, kështu që nuk ka vlerësuar se referimi të historisë 999 01:13:56,080 --> 01:14:00,520 sepse ishte tashmë e kaluar në pikën e vlerësimit shprehje të historisë 1000 01:14:00,520 --> 01:14:02,720 kur është vlerësuar ndryshueshme. 1001 01:14:02,720 --> 01:14:05,550 Pra, kjo është 1 efekti i analizë gramatikore. 1002 01:14:05,550 --> 01:14:08,760 Dhe përsëri, ndërtuar në komandat nuk janë bërë në të njëjtën mënyrë. 1003 01:14:08,760 --> 01:14:11,230 Dakord. Le të shkojnë në një tjetër këtu. 1004 01:14:11,230 --> 01:14:16,060 Kjo ka për qëllim të jetë 1 linjë, por është duke e bërë më të lehtë për të lexuar. 1005 01:14:19,130 --> 01:14:21,530 Çfarë do të bëni? 1006 01:14:21,530 --> 01:14:28,640 Ju mund të kujtojnë se ne mund të vlerësojmë asterisks si vijat filename, 1007 01:14:28,640 --> 01:14:33,890 dhe ka si wildcards tjera filename si pikëpyetje dhe shprehjet kllapa. 1008 01:14:33,890 --> 01:14:39,000 Kjo lloj vlerësimi është quajtur globbing. 1009 01:14:39,000 --> 01:14:46,290 vendosur noglob në fillim të kësaj komande thotë se nuk e bëjnë këtë. 1010 01:14:46,290 --> 01:14:53,370 noglob unset thotë të kthehemi për të bërë atë. 1011 01:14:53,370 --> 01:14:56,440 Vini re se vendosur glob nuk do të kishte atë efekt. 1012 01:14:56,440 --> 01:15:00,800 Në gjuhën e zakonshme, të vendosur glob apo noglob unset do të duket të jetë e barabartë, 1013 01:15:00,800 --> 01:15:03,290 por këtu nuk është. Është noglob unset. 1014 01:15:05,120 --> 01:15:07,910 Tani TSET. TSET qëndroi për të vendosur terminal. 1015 01:15:07,910 --> 01:15:11,840 Nuk është përdorur që shpesh tani, por para se sistemet windowing u bë në dispozicion 1016 01:15:11,840 --> 01:15:15,760 dhe keni pasur një terminal të vetëm, ju mund të keni për të përcaktuar llojin. 1017 01:15:15,760 --> 01:15:18,700 Dhe nëse diçka po vinte mbi një Ethernet apo nga rrjeti, 1018 01:15:18,700 --> 01:15:21,120 ju mund të dëshironi të them se është një vt100. 1019 01:15:21,120 --> 01:15:26,630 Vt100 është lloj i një standardi në biznesin e terminalit. Ajo vjen nga terminali dhjetor. 1020 01:15:26,630 --> 01:15:35,270 Nëse ju vetëm bëni me telefon - të vini re se? Kjo shkon prapa një rrugë, huh? 1021 01:15:35,270 --> 01:15:39,520 Pra, nëse ne vetëm e TSET gjatë këtu, 1022 01:15:39,520 --> 01:15:45,250 në qoftë se unë vetëm bëj TSET, është e resetting terminal time, por ju nuk shihni asgjë. 1023 01:15:45,250 --> 01:15:47,340 Ajo nuk ka të vërtetë të ndryshojë asgjë. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Mirë. 1026 01:15:51,480 --> 01:15:53,350 Term setenv xterm-ngjyra. 1027 01:15:53,350 --> 01:15:57,080 Ne tashmë e dimë se termi ishte vendosur në këtë mënyrë, kështu që nuk ka ndryshuar. 1028 01:15:57,080 --> 01:15:58,860 Kjo është mënyra që ne do të duan të bëhet kjo. 1029 01:15:58,860 --> 01:16:07,080 Por vini re se kjo komandë, TSET-s, vetëm të prodhimit këto komanda. Ai nuk ka drejtuar ato. 1030 01:16:07,080 --> 01:16:09,770 Ai nuk ka drejtuar këto komanda, por ata të prodhimit. 1031 01:16:09,770 --> 01:16:13,650 Pra, kjo ka për qëllim të prodhojë komandat të cilat më pas do të kandidojë. 1032 01:16:13,650 --> 01:16:16,360 Ju kujtohet komandën në këtë dosje unë vetëm tregoi se keni pasur një Q në të. 1033 01:16:16,360 --> 01:16:18,910 Pra, le ta bëjmë atë. 1034 01:16:18,910 --> 01:16:23,750 Q suppresses disa dalje, por kjo nuk ka rëndësi këtu, si ju mund të shihni. 1035 01:16:23,750 --> 01:16:27,980 Unë jam vetëm duke bërë që për të të treguar ju se kjo nuk kishte rëndësi. 1036 01:16:27,980 --> 01:16:31,870 Kjo është në backquote sintaksë. 1037 01:16:31,870 --> 01:16:35,340 Shënim backquote këtu, backquote këtu. 1038 01:16:35,340 --> 01:16:37,680 Unë jam duke lënë jashtë këto gjëra këtu. 1039 01:16:37,680 --> 01:16:39,570 Këto janë raste të thënë atë çfarë duhet të bëni 1040 01:16:39,570 --> 01:16:42,050 në rastin e llojeve të veçanta të terminaleve - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, rrjet, me telefon, çfarë keni. 1042 01:16:45,400 --> 01:16:48,050 Nuk ka rëndësi këtu, sepse ne nuk jeni në të vërtetë duke bërë ndonjë nga këto gjëra. 1043 01:16:48,050 --> 01:16:49,720 Unë jam vetëm duke ilustruar komandën. 1044 01:16:49,720 --> 01:16:55,170 Po e bëra këtë me backquote, çfarë jam unë do të merrni? 1045 01:16:55,170 --> 01:17:00,210 Gjithashtu vini re këtu se kjo përfshinte noglob vendosur dhe noglob unset, 1046 01:17:00,210 --> 01:17:02,630 kështu që ata janë të tepërta tani në përkufizimin. 1047 01:17:02,630 --> 01:17:05,380 Kjo nuk ishte gjithmonë e vërtetë, por tani ata janë të përfshira në këtë komandë. 1048 01:17:05,380 --> 01:17:08,890 Por le të shohim se çfarë ndodh në qoftë se unë bëj që 1049 01:17:08,890 --> 01:17:12,570 dhe të shkojnë në fillim të vijë me të Kontrollit A dhe unë ta bëjë këtë. 1050 01:17:14,380 --> 01:17:18,040 Mirë, të vendosur: Komanda nuk u gjet. Kjo është lloj i rastësishëm, nuk është ajo? 1051 01:17:18,040 --> 01:17:20,570 vendosur është një urdhër i njohur. Kjo është pjesë e shell. 1052 01:17:20,570 --> 01:17:24,040 vendosur: Komanda nuk u gjet? Pse është kjo? 1053 01:17:24,040 --> 01:17:26,790 Hmm. E pra, le të mendojnë për këtë. 1054 01:17:26,790 --> 01:17:31,100 Është drejtimin e një zëvendësim të komandës backquote, 1055 01:17:31,100 --> 01:17:37,430 dhe që ndodh në një pjesë të caktuar të sekuencës së analizimit të komandës. 1056 01:17:37,430 --> 01:17:40,360 vendosur është një komandë ndërtuar në. 1057 01:17:40,360 --> 01:17:43,900 Kështu që nga ajo kohë e bën atë zëvendësim të komandës, 1058 01:17:43,900 --> 01:17:48,280 kjo është marrë tashmë e kaluara në pikën e identifikimit të ndërtuar në komandat. 1059 01:17:48,280 --> 01:17:51,900 Pra, ajo i trajton të vendosur si të ishte një komandë në rrugën. 1060 01:17:51,900 --> 01:17:55,440 Eshtë e panevojshme të thuhet, kjo nuk do të gjeni atë dhe që ju të merrni një gabim. 1061 01:17:55,440 --> 01:17:59,300 Well. Ka një shembull i rend analizë gramatikore. 1062 01:17:59,300 --> 01:18:01,460 Dhe çfarë bëjmë ne për këtë? 1063 01:18:01,460 --> 01:18:04,800 Vini re këtë komandë shumë interesante këtu, eval. 1064 01:18:04,800 --> 01:18:06,530 Pyes veten se çfarë ajo bën. 1065 01:18:06,530 --> 01:18:08,760 Nëse ju shikoni në doracakun - dhe le të vetëm të bëjë këtë 1066 01:18:08,760 --> 01:18:12,000 për të treguar se si konfuz këto manuale janë - 1067 01:18:12,000 --> 01:18:19,400 tcsh njeri, manual hutuar, duke gjetur gjëra këtu nuk është e lehtë as. 1068 01:18:19,400 --> 01:18:31,850 Këtu ne do të shkojmë, eval arg, kështu që ne mund të ketë 1 ose më shumë argumente 1069 01:18:31,850 --> 01:18:34,090 dhe ka një listë të gjërave atje. 1070 01:18:34,090 --> 01:18:37,730 Trajton argumentet si inpute në shell 1071 01:18:37,730 --> 01:18:43,600 dhe ekzekuton komandat që rezultojnë në kontekstin e shell aktuale. 1072 01:18:43,600 --> 01:18:46,900 Kjo përdoret zakonisht për të ekzekutuar komanda e krijuara si rezultat i komandës 1073 01:18:46,900 --> 01:18:51,310 ose zëvendësimi ndryshueshme sepse parsing ndodh para se këto zëvendësime. 1074 01:18:51,310 --> 01:18:52,580 Shumë mirë. 1075 01:18:52,580 --> 01:18:54,740 Dhe këtu ata edhe i referohen komandën TSET për një përdorim të mostrës 1076 01:18:54,740 --> 01:18:57,700 si ai që unë vetëm ju tregoi. 1077 01:18:57,700 --> 01:19:00,440 Tani unë kam për të marrë dritaren përsëri në një vend të dobishme. 1078 01:19:03,150 --> 01:19:07,800 Le të merrni mbi këtu dhe ne do të shohim se eval përdoret vetëm para se. 1079 01:19:07,800 --> 01:19:14,010 Pra, le të shohim se çfarë ndodh në qoftë se ne kemi vënë - këtu ne do të shkojmë me shigjeta në këtë komandë 1080 01:19:14,010 --> 01:19:20,940 dhe Kontrollit Një në fillim, eval. 1081 01:19:20,940 --> 01:19:22,850 Mirë, kështu që ajo punon. 1082 01:19:22,850 --> 01:19:26,440 Kur ju bëni eval, ajo merr atë që vjen pas saj dhe e bën atë një komandë. 1083 01:19:26,440 --> 01:19:29,460 Kjo ju mundëson që të kuptoj në thelb atë dy herë. 1084 01:19:29,460 --> 01:19:33,710 Seksioni këtu shkon këtë komandë brenda backquotes, 1085 01:19:33,710 --> 01:19:36,210 merr e prodhimit. 1086 01:19:36,210 --> 01:19:42,850 Output është menduar të jenë të drejtuar si ato komandat këtu si këto 1087 01:19:42,850 --> 01:19:45,890 në këtë dhe këtë. 1088 01:19:45,890 --> 01:19:50,100 Pra, ato komandat janë tani këtu në këtë rend, 1089 01:19:50,100 --> 01:19:58,950 por këto janë ndërtuar në komandat dhe nuk mund t'i merrni ato menjëherë. 1090 01:19:58,950 --> 01:20:06,440 Pra, ne do të shkojmë për të eval, eval zgjedh se deri, fillon të gjithë gjë nga e para, dhe ajo punon. 1091 01:20:06,440 --> 01:20:18,460 Një shembull të dy backquoting, eval, parsing, pasojat e parsing, 1092 01:20:18,460 --> 01:20:21,910 dhe një komandë e cila është ndoshta e shumë pak përdorim për ju në ditët e sotme. 1093 01:20:21,910 --> 01:20:25,540 Mirë. Në rregull, umask. 1094 01:20:25,540 --> 01:20:32,160 Le të shikojmë në këtë komandë këtu, umask 022. Pyes veten se çfarë ajo bën. 1095 01:20:32,160 --> 01:20:38,420 Le të vetëm lloji umask me asgjë pas saj. 22. Mirë. 1096 01:20:38,420 --> 01:20:44,350 022 dhe të bëjë atë përsëri. 1097 01:20:44,350 --> 01:20:48,580 Siç mund ta keni mendoi, umask pa argumente ju tregon maskë aktuale; 1098 01:20:48,580 --> 01:20:51,760 umask me argumente që e bën atë, por se ishte ai që unë tashmë kishte. 1099 01:20:51,760 --> 01:20:53,800 Çfarë do të thotë 022? 1100 01:21:01,650 --> 01:21:07,080 Këto janë këtu mbrojtjet për një fotografi. 1101 01:21:07,080 --> 01:21:11,440 Ata të përcaktuar se kush është i lejuar të lexojnë ose të shkruajnë apo të ekzekutuar file. 1102 01:21:11,440 --> 01:21:16,560 Mbrojtjet janë quajtur edhe lejet. 1103 01:21:16,560 --> 01:21:21,390 R qëndron për të lexuar, w për të shkruani, 1104 01:21:21,390 --> 01:21:25,500 dhe x, i cili nuk është i pranishëm aty, qëndron për ekzekutuar. 1105 01:21:25,500 --> 01:21:27,260 Ka 3 kategori atje. 1106 01:21:27,260 --> 01:21:33,540 3 elementet e fundit janë në kategorinë e përdoruesit. Ata që aplikojnë për mua, të përdoruesit. 1107 01:21:33,540 --> 01:21:36,870 Këto 3 këtu të zbatohet për grupin. 1108 01:21:36,870 --> 01:21:41,590 Skedari i takon 1 grup, përdorues mund ti përkasë disa grupeve, 1109 01:21:41,590 --> 01:21:47,150 por nëse përdoruesi është në grupin te cilin skedarit takon, 1110 01:21:47,150 --> 01:21:51,090 atëherë këto mbrojtje do të zbatohet për të nëse ai nuk është përdorues. 1111 01:21:51,090 --> 01:21:54,230 Dhe kjo është e të gjithë të tjerët. 1112 01:21:55,540 --> 01:21:57,690 Këto kategori janë reciprokisht ekskluzive. 1113 01:21:57,690 --> 01:21:59,750 Mbrojtjet e anëtarit zbatohen për të, 1114 01:21:59,750 --> 01:22:03,780 mbrojtjet e grupit të zbatohet për anëtarët e grupit të tjerë se sa të përdoruesit, 1115 01:22:03,780 --> 01:22:08,110 dhe mbrojtjet e tjera të zbatohet vetëm për njerëz të tjerë se sa të përdoruesit dhe anëtarëve të grupit. 1116 01:22:08,110 --> 01:22:12,320 Nëse ka një r ose aw ose një x, kjo do të thotë se mbrojtja është dhënë. 1117 01:22:12,320 --> 01:22:13,950 Nëse ka një vizë ndarëse, kjo do të thotë se nuk është. 1118 01:22:13,950 --> 01:22:16,690 Ka të vërtetë janë gjëra të tjera që mund të vihet në këtu përveç këtyre, 1119 01:22:16,690 --> 01:22:18,350 që unë nuk do të marrë në tani. 1120 01:22:18,350 --> 01:22:24,450 Umask përcakton një default për fotografi që keni krijuar. 1121 01:22:24,450 --> 01:22:28,580 Dhe si një maskë, në thelb ajo thotë copa që ju nuk e përcaktuara. 1122 01:22:28,580 --> 01:22:30,450 Si është bërë kjo bit? 1123 01:22:30,450 --> 01:22:33,240 Nëse ju mendoni për secilin nga këto si një numër oktal, 1124 01:22:33,240 --> 01:22:42,120 kjo është pak 1s, kjo është 2s, kjo është 4s. 1125 01:22:42,120 --> 01:22:45,840 Pra, përmes 0 7 1126 01:22:45,840 --> 01:22:51,770 do të përshkruajnë se çfarë kombinim i r-së, W-së, dhe x-së ju keni për këto 3 1127 01:22:51,770 --> 01:22:53,710 dhe pastaj një numër i ngjashëm për këto dhe pastaj për këto. 1128 01:22:53,710 --> 01:23:12,030 Kështu që do të thotë 022 0 per tjetrin, me 2 për grupin, 2 për përdoruesit. 1129 01:23:12,030 --> 01:23:15,870 Por kjo është një maskë. Maskë është ajo që ju nuk keni. 1130 01:23:19,380 --> 01:23:20,610 Më vjen keq. Unë vetëm ju dha gjërat në mënyrë të gabuar. 1131 01:23:20,610 --> 01:23:25,620 Kjo është e para 3. Këto janë 3 përdorues, këta 3 janë grupi, këto 3 janë të tjera. 1132 01:23:25,620 --> 01:23:27,970 Na vjen keq unë ju dha këto në mënyrë të gabuar. 1133 01:23:27,970 --> 01:23:31,910 0, i cili është i pari i atyre, nuk shfaq vlerën, 1134 01:23:31,910 --> 01:23:35,430 por në qoftë se një numër nuk është atje, kjo është një 0. 1135 01:23:35,430 --> 01:23:38,370 Kjo do të thotë të gjitha 3 e këto do të lejohet. 1136 01:23:38,370 --> 01:23:41,550 Njoftim se në këtë veçantë x nuk lejohet. 1137 01:23:41,550 --> 01:23:44,090 Arsye është se predhë është i aftë për përcaktimin 1138 01:23:44,090 --> 01:23:46,260 nëse një skedar duhet të ekzekutohet ose jo. 1139 01:23:46,260 --> 01:23:49,800 Që kjo nuk është një skedar i ekzekutueshëm, ajo nuk e ka vënë x. 1140 01:23:49,800 --> 01:23:54,000 Të 2 do të thotë që shkruajnë leje, kategorinë e dytë këtu, 1141 01:23:54,000 --> 01:23:56,500 një në mes, është mohuar. 1142 01:23:56,500 --> 01:23:58,500 Pra, përsëri, këto janë gjërat që ajo i mohoi. 1143 01:23:58,500 --> 01:24:02,080 E pra, x është i lejuar por nuk është këtu, sepse nuk është i ekzekutueshëm 1144 01:24:02,080 --> 01:24:04,260 dhe në mënyrë të ngjashme për të tjerët. 1145 01:24:04,260 --> 01:24:08,880 Pra, kjo është një umask të përbashkët. 1146 01:24:08,880 --> 01:24:14,630 Një tjetër e përbashkët është 700 - dhënë vetes çdo gjë dhe askush tjetër asgjë. 1147 01:24:14,630 --> 01:24:17,040 Dhe ka mundësi të tjera. 1148 01:24:21,340 --> 01:24:27,110 Unë do të kthehem në atë. Duke përdorur historinë unë mund të kërkoni përsëri për këtë, LWH për atje. 1149 01:24:27,110 --> 01:24:30,210 Mirë. Kështu që këtu, këto janë predha. 1150 01:24:30,210 --> 01:24:36,020 Bash, pronari i cili është llogaria sistemi, mund të bëjë gjithçka. 1151 01:24:36,020 --> 01:24:41,210 Grup dhe të gjithë të tjerët mund të bëjnë të lexojnë ose të ekzekutuar, por nuk shkruaj. 1152 01:24:41,210 --> 01:24:44,570 Ky i fundit nuk ka edhe të lejojë që pronari për të shkruar për të. 1153 01:24:44,570 --> 01:24:46,460 Nëse pronari donte për të shkruar për të, llogarinë e sistemit, 1154 01:24:46,460 --> 01:24:48,020 ai do të duhet të ndryshojë mbrojtjen e parë. 1155 01:24:48,020 --> 01:24:53,940 Por përsëri, umask vendos default nga maskimin atë, 1156 01:24:53,940 --> 01:24:57,160 duke treguar copa që nuk do të përcaktuara. 1157 01:24:57,160 --> 01:25:04,380 Kjo eshte zakonisht në një nga dosjet tu Gatitjeje, e cila është. Cshrc tuaj për C-skeletit 1158 01:25:04,380 --> 01:25:07,500 ose profilit. për skeleteve Bourne tipit. 1159 01:25:07,500 --> 01:25:12,520 Ajo mund të jetë diku tjetër edhe nëse ka fotografi të tjera Gatitjeje në sistemin. 1160 01:25:12,520 --> 01:25:14,610 Gjithsesi, kjo është umask. 1161 01:25:14,610 --> 01:25:18,180 Ka lloj diçka e çuditshme këtu, 1162 01:25:18,180 --> 01:25:22,800 dhe kjo është, pse nuk ka një komandë të vetme për këtë? 1163 01:25:22,800 --> 01:25:28,690 Nëse unë ishin të këtij shkrimi, unë do të bëjë atë një variabël, umask = disa vlera. 1164 01:25:28,690 --> 01:25:31,100 Pse ka një komandë të tërë vetëm për këtë qëllim? 1165 01:25:31,100 --> 01:25:34,560 Arsyeja është kjo vetëm shkon prapa në origjinën e Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix ishte vetëm disa projekt programimit në Bell Labs në fillim të viteve 1970. 1167 01:25:41,050 --> 01:25:42,610 Njerëzit vetëm të marrë së bashku për të programit. 1168 01:25:42,610 --> 01:25:45,290 Ata kurrë nuk për qëllim që ajo të bëhet një sistem operativ të gjithë botën. 1169 01:25:45,290 --> 01:25:47,250 Njerëz të ndryshëm shkroi pjesë të ndryshme pa u menduar shumë 1170 01:25:47,250 --> 01:25:49,790 se si ata ishin duke shkuar për të përdorur - në vend të paqarta. 1171 01:25:49,790 --> 01:25:53,290 Dhe ajo erdhi së bashku si kjo, dhe është ende si kjo në disa aspekte. 1172 01:25:53,290 --> 01:25:57,930 Kështu që reflekton historinë, dhe ka ende këto mospërputhje dhe elemente të çuditshme të saj. 1173 01:25:57,930 --> 01:26:00,750 Mirë. Një tjetër këtu. 1174 01:26:08,170 --> 01:26:11,000 Siç kam shkruar më parë, C-shell nuk është përdorur me të vërtetë shumë për programimin, 1175 01:26:11,000 --> 01:26:12,420 edhe pse ajo mund të jetë. 1176 01:26:12,420 --> 01:26:15,080 Ajo ekzekuton më ngadalë, përsëri e tregtisë-off midis përdorimit interaktive, 1177 01:26:15,080 --> 01:26:17,820 e cila ka më shumë se shpejtësia e përpunimit të përfshirë, 1178 01:26:17,820 --> 01:26:20,710 të cilat mund të bëjë pa të përpunimit. 1179 01:26:20,710 --> 01:26:28,320 Karakteristika shtese mbi shell Bourne nga Korn dhe Bourne-përsëri predha 1180 01:26:28,320 --> 01:26:32,120 nuk duket për të ngadalësuar ato, dhe unë nuk e di pse kjo është. 1181 01:26:32,120 --> 01:26:36,310 Ajo mund të jetë vetëm programimit më të mirë, por unë nuk jam në gjendje të dinë. 1182 01:26:36,310 --> 01:26:40,420 Speed ​​këtu në të vërtetë nuk është një punë e madhe, edhe pse ajo është përmendur. 1183 01:26:40,420 --> 01:26:43,690 Arsyeja është se Scripts predhë të vërtetë të marrë në mënyrë të drejtë të shpejtë. 1184 01:26:43,690 --> 01:26:46,450 Nëse ka një shumë të komandave si në një program rrugedalje, 1185 01:26:46,450 --> 01:26:49,110 ju ndoshta nuk do të bëjë atë në një script shell. 1186 01:26:49,110 --> 01:26:51,450 Operacionet janë mjaft të thjeshtë dhe drejtpërdrejtë. 1187 01:26:51,450 --> 01:26:53,960 Ato që unë kam përjetuar që janë shumë të ngadaltë 1188 01:26:53,960 --> 01:26:57,110 përfshijnë aplikime të përsëritura të komandave të ngadaltë. 1189 01:26:57,110 --> 01:27:00,480 Më parë kam përmendur redaktor lumë sed. Kjo komandë është i ngadalshëm. 1190 01:27:00,480 --> 01:27:03,760 Nëse ju të ekzekutuar shumë herë sed, ju do të merrni një skenar të ngadaltë, por kjo nuk është shell që është i ngadalshëm. 1191 01:27:03,760 --> 01:27:07,920 Drejtimin e tij në Bourne shell nuk do të jetë shumë më shpejt se duke atë në C-shell, 1192 01:27:07,920 --> 01:27:10,070 edhe pse ka ndoshta disa avantazhe atje. 1193 01:27:10,070 --> 01:27:12,760 Aftësitë e programimit shtesë, nga ana tjetër, 1194 01:27:12,760 --> 01:27:17,920 arsye të rëndësishme pse ju do të përdorni predha Bourne-lloj. 1195 01:27:17,920 --> 01:27:21,390 C-shell ka karakteristika të çuditshme të saj - 1196 01:27:21,390 --> 01:27:25,250 fakti që ju nuk e dini nëse një variabël është një variabël shell ose një variabël mjedisi. 1197 01:27:25,250 --> 01:27:27,440 Ajo mund të jetë shumë konfuze. 1198 01:27:27,440 --> 01:27:32,170 Kjo nuk është aq e lehtë për të shkruar 1199 01:27:32,170 --> 01:27:35,930 vetëm bazuar në përvojën tuaj të programeve në gjuhë të tjera. 1200 01:27:35,930 --> 01:27:41,350 Unë mendoj se ju mund të gjeni predha Bourne tipit më shumë në përputhje me përvojën tuaj. 1201 01:27:43,730 --> 01:27:49,270 Disa scripts, megjithatë, mund të jetë mijëra linjave në gjatësi. 1202 01:27:49,270 --> 01:27:52,450 Ata që unë kam parë janë përdorur për patching sistemet operative. 1203 01:27:52,450 --> 01:27:55,450 Ata mund të ekzekutojë shumë ngadalë, por ju nuk do të kandidojë ata shumë shpesh. 1204 01:27:55,450 --> 01:27:57,180 Kjo është vetëm kur ju jeni duke bërë patching, 1205 01:27:57,180 --> 01:27:59,450 dhe kjo është vetëm menaxher sistemi që bën këto gjëra, 1206 01:27:59,450 --> 01:28:01,840 kështu që nuk është me të vërtetë shumë e një çështje. 1207 01:28:01,840 --> 01:28:06,980 Ata që me qindra e linjave të gjatë në të vërtetë të ekzekutuar mjaft shpejt. 1208 01:28:06,980 --> 01:28:10,540 Duke përmendur këtu këtë, çfarë janë ato enhancements? 1209 01:28:10,540 --> 01:28:13,170 Unë e kam përmendur tashmë disa prej tyre - vargjeve, llogaritjet, 1210 01:28:13,170 --> 01:28:20,540 e $ () shprehje për llogaritje në Bash shell, 1211 01:28:20,540 --> 01:28:23,050 lloj tjetër të zëvendësimit të komandës. 1212 01:28:23,050 --> 01:28:25,360 Ka lloje të ndryshme të komandave të testimit 1213 01:28:25,360 --> 01:28:29,350 me të cilat ju mund të bëni teste të kushtëzuara nga ekzistenca e një file apo gjëra të tjera. 1214 01:28:29,350 --> 01:28:34,790 Fundit për këtu, kjo komandë këtu. 1215 01:28:34,790 --> 01:28:38,480 Çfarë e bën këtë të bëjë, dhe pse do të përdorë dikush atë? 1216 01:28:51,170 --> 01:28:52,990 variablename printenv. 1217 01:28:52,990 --> 01:28:56,130 Ne e dimë se çfarë printenv bën. Ajo na tregon vlerën e një ndryshore. 1218 01:28:56,130 --> 01:29:00,850 Dhe variablename printenv nuk do të na tregojë shumë, sepse nuk ka asnjë variabël të tillë. 1219 01:29:03,550 --> 01:29:05,120 Blank. 1220 01:29:05,120 --> 01:29:08,440 Por le t'i jepte diçka të rëndësishme. 1221 01:29:13,420 --> 01:29:16,800 Kjo nuk është as atje. Mirë. I guess Unë kurrë nuk përcaktohet se. 1222 01:29:16,800 --> 01:29:18,020 Le të vetëm të kontrolluar mjedisin tim. 1223 01:29:18,020 --> 01:29:20,900 Kjo është një tjetër komandë me të cilat ju mund të inspektojnë mjedisin tuaj. 1224 01:29:20,900 --> 01:29:24,470 Nuk është redaktor të mirë të vjetër, e kemi parë më parë. 1225 01:29:42,360 --> 01:29:44,120 Çfarë do të bëni? 1226 01:29:44,120 --> 01:29:48,050 Këtu kemi një shprehje backquote. 1227 01:29:48,050 --> 01:29:50,370 Mos harroni kjo është C-shell. 1228 01:29:50,370 --> 01:29:54,850 Pra EDITOR printenv do të na japin një vlerë prej Editor. Është e vi. 1229 01:29:54,850 --> 01:29:59,790 Dhe atëherë ajo do të vendosë këtë vlerë të ndryshueshme a, komandën caktuar. 1230 01:29:59,790 --> 01:30:02,860 Deri tani në qoftë se bëj echo $ a, shkoj vi. 1231 01:30:02,860 --> 01:30:05,850 Kjo nuk duket tmerrësisht e dobishme. 1232 01:30:05,850 --> 01:30:08,080 Megjithatë, ai në fakt ka një qëllim. 1233 01:30:08,080 --> 01:30:12,260 Që ne nuk e dimë nëse një variabël është një variabël shell ose një variabël mjedisi 1234 01:30:12,260 --> 01:30:16,280 duke përdorur vlerësimit sintaksë shenjë dollar, ne mund të përdorim printenv 1235 01:30:16,280 --> 01:30:19,460 për të siguruar se kjo është një variabël mjedisi. 1236 01:30:19,460 --> 01:30:22,550 Pra, nëse do të kishte një redaktor predhë ndryshueshme, kjo nuk do të kishte marrë atë. 1237 01:30:22,550 --> 01:30:25,640 Kjo punon vetëm me variabël ambiental. 1238 01:30:25,640 --> 01:30:28,370 Nëse do të kishte një variabël shell dhe kam kërkuar vlerën e saj, 1239 01:30:28,370 --> 01:30:29,980 Unë do të duhet për të gjetur një mënyrë tjetër për të bërë atë. 1240 01:30:29,980 --> 01:30:33,530 Një mënyrë për të bërë këtë do të ishte duke bërë grup dhe gypave. 1241 01:30:33,530 --> 01:30:36,130 Kjo është një nga metacharacters, karaktere të veçanta. 1242 01:30:36,130 --> 01:30:38,370 Ajo dërgon prodhimin e vendosur për diçka tjetër. 1243 01:30:38,370 --> 01:30:40,650 Le të shohim se çfarë ne mund të gjeni atje. 1244 01:30:40,650 --> 01:30:49,340 Asgjë. Mirë. Le të shohim se çfarë është në atje të gjithë së bashku. 1245 01:30:49,340 --> 01:30:53,580 Ishte echo_style, e përmenda më parë. Mirë, le të bëjë këtë. 1246 01:31:02,460 --> 01:31:06,230 Mos harroni e përmenda më parë, echo_style 1247 01:31:06,230 --> 01:31:08,410 përcakton mënyrën komanda echo do të kandidojë. 1248 01:31:08,410 --> 01:31:10,940 BSD qëndron për Berkeley Standard Shpërndarjes. 1249 01:31:10,940 --> 01:31:13,200 Kjo është Berkeley Unix nga vitet 1970. 1250 01:31:13,200 --> 01:31:16,630 Kjo është një nga mënyrat që jehonë mund të kandidojë. 1251 01:31:16,630 --> 01:31:22,310 Vendosja echo_style për këtë vlerë në TC-shell do të bëjë jehonë të sillet në këtë mënyrë. 1252 01:31:22,310 --> 01:31:27,670 Në mënyrë të vendosur e bën këtë, por të vendosur vetëm merr variablave shell. 1253 01:31:27,670 --> 01:31:35,430 Kjo nuk do të gjeni redaktor, që nuk është një variabël shell. 1254 01:31:36,870 --> 01:31:38,050 Asgjë. 1255 01:31:38,050 --> 01:31:39,660 Pra, kjo është një mënyrë për të bërë dallimin e tyre. 1256 01:31:39,660 --> 01:31:42,000 Por fakti që ju duhet të kalojnë nëpër një komandë të çuditshme si kjo 1257 01:31:42,000 --> 01:31:45,500 të bëjnë dallimin në mes të variablave shell apo mjedis të ndryshueshëm 1258 01:31:45,500 --> 01:31:49,970 tregon llojin e natyrës jopraktike të C-shell për disa qëllime. 1259 01:31:52,290 --> 01:31:57,960 Dhe tani, i fundit dhe ndoshta më pak, kjo është faqet njeriu. 1260 01:31:57,960 --> 01:32:03,190 Ata të cilët ju mund të dini, njeriu është e shkurtër komanda për manual. 1261 01:32:03,190 --> 01:32:08,610 Faqet njeri për predha janë të vështirë për të lexuar. Ata janë shumë të gjatë. 1262 01:32:08,610 --> 01:32:14,060 Ata janë të organizuar në një mënyrë që mund të bëjnë të vështirë për të gjetur atë që ju po kërkoni. 1263 01:32:14,060 --> 01:32:15,980 Pra, nëse ju jeni duke kërkuar për diçka me një qëllim, 1264 01:32:15,980 --> 01:32:20,050 ju nuk mund të dini nëse se qëllimi është një variabël shell apo diçka tjetër, 1265 01:32:20,050 --> 01:32:21,630 kështu që ju nuk mund të dini ku të kërkoni për të. 1266 01:32:21,630 --> 01:32:25,030 Ju mund të shikoni për vargjet të ndryshme, por vargjet shpesh përsëriten. 1267 01:32:25,030 --> 01:32:27,640 Pra, është në përgjithësi e vështirë për të lexuar. 1268 01:32:27,640 --> 01:32:33,810 Ne vetëm shikuar në faqen e TC-shell njeri pak para për të gjetur komandën eval. 1269 01:32:33,810 --> 01:32:36,610 Disa gjëra shkojnë më të shpejtë. 1270 01:32:36,610 --> 01:32:38,860 Një mënyrë është për të kërkuar për një varg. 1271 01:32:38,860 --> 01:32:40,360 Ju mund të përdorni pager. 1272 01:32:40,360 --> 01:32:49,080 Pager ka plagë për të kërkuar një komandë apo një varg brenda një operacion pager. 1273 01:32:49,080 --> 01:32:52,830 Njeriu nga default do të përdorë pagers, të jetë ose shumë ose më pak. 1274 01:32:52,830 --> 01:32:56,560 Unë nuk e di nëse ju jeni të njohur me ata, por ata mund të tregojnë fotografi pak nga pak. 1275 01:32:56,560 --> 01:33:00,550 Unë kam qenë duke përdorur më pak për të shfaqur këto fotografi të veçantë ne kemi marrë këtu. 1276 01:33:00,550 --> 01:33:03,300 Ju mund të kërkoni brenda atje. 1277 01:33:03,300 --> 01:33:04,880 Ju mund të provoni duke përdorur vargjet e ndryshme të kërkimit. 1278 01:33:04,880 --> 01:33:08,420 Gjithashtu faqet njeriu në sisteme të ndryshme operative mund të mos jetë e njëjtë. 1279 01:33:08,420 --> 01:33:11,130 Ata mund të jenë të veçanta për faqet csh dhe tcsh. 1280 01:33:11,130 --> 01:33:14,500 Ata janë nuk janë në Mac, por ato mund të jenë, nëse ata janë të komandave të veçanta. 1281 01:33:14,500 --> 01:33:19,000 Nëse sh nuk ka të vërtetë të thirrur Bash, se ndoshta do të jetë një faqe e veçantë njeri. 1282 01:33:19,000 --> 01:33:25,820 Disa sisteme kanë faqet e ndara nga njeri vetëm për C-shell të ndërtuar në komandat e. 1283 01:33:25,820 --> 01:33:30,250 Ndonjëherë në qoftë se ju dëshironi të lexoni një përshkrim i një komande të ndërtuar në 1284 01:33:30,250 --> 01:33:35,350 kjo është edhe në rrugën, si jehonë, ju duhet të lexoni faqen e njeri në këtë komandë në jehonë 1285 01:33:35,350 --> 01:33:37,610 për të përcaktuar se si do të punojë si një komandë të ndërtuar-në 1286 01:33:37,610 --> 01:33:39,760 edhe në qoftë se ju nuk jeni duke e quajtur ndërtuar në komandën. 1287 01:33:41,630 --> 01:33:46,090 Kjo është një pengesë e sistemit operativ në përgjithësi, jo vetëm për predha, 1288 01:33:46,090 --> 01:33:50,710 edhe pse për predha në veçanti faqet njeriu janë mjaft të gjatë, 1289 01:33:50,710 --> 01:33:56,180 pjesërisht sepse ata kanë shtuar karakteristika të dobishme për ta, e cila mund të jetë një pozitiv. 1290 01:33:56,180 --> 01:34:00,290 Mirë. A ka ndonjë pyetje? Çdo tema ju doni të sjellë deri? 1291 01:34:00,290 --> 01:34:03,390 Çdo gjë e rëndësishme këtu? 1292 01:34:04,540 --> 01:34:07,100 E pra, kjo është shumë e bukur duke folur me ju të gjithë. 1293 01:34:07,100 --> 01:34:09,690 Unë shpresoj që ju të marrë diçka nga këtij seminari 1294 01:34:09,690 --> 01:34:13,080 që do të jenë të dobishme për ju në përpjekjet tuaja të ardhshme. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]