1 00:00:00,000 --> 00:00:02,320 >> [Семинар - Unix школки, околини] 2 00:00:02,320 --> 00:00:04,180 [Даглас Клајн - Универзитетот Харвард] 3 00:00:04,180 --> 00:00:07,160 [Ова е CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Денешните тема е Unix шел. 5 00:00:12,770 --> 00:00:20,600 Јас сум Даглас Клајн, експерт, или барем разумно надлежните корисник, на школка. 6 00:00:20,600 --> 00:00:25,280 Школката е интерфејс за корисникот на оперативниот систем на компјутерот. 7 00:00:25,280 --> 00:00:29,580 Името е погрешно како, за разлика од школка на животните, 8 00:00:29,580 --> 00:00:34,890 што е тешко и заштитни, компјутерот школка овозможува комуникација. 9 00:00:34,890 --> 00:00:39,120 Па порозна мембрана, најверојатно, ќе биде подобро метафора. 10 00:00:39,120 --> 00:00:44,500 >> Оригиналниот школка за Unix е Bourne школката. 11 00:00:44,500 --> 00:00:46,450 Предел е наведено B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Борн е еден од оригиналните автори на Unix, 13 00:00:49,770 --> 00:00:51,700 и така школка е именуван по него. 14 00:00:51,700 --> 00:00:54,850 Името на таа школка како команда е само едноставно Ш. 15 00:00:54,850 --> 00:00:57,400 Тоа е команда може да се изврши. 16 00:00:57,400 --> 00:01:00,810 Школка започнува во најава. 17 00:01:00,810 --> 00:01:04,459 Кога ќе се најавите во компјутерот, на школка само почнува да трча за вас, 18 00:01:04,459 --> 00:01:06,820 и тоа е она што се вашите команди. 19 00:01:06,820 --> 00:01:09,790 Тоа може да почне во други времиња, исто така. 20 00:01:09,790 --> 00:01:16,780 Ако ви донесе до прозорецот без други индикации, ќе почне школка за вас. 21 00:01:16,780 --> 00:01:20,450 Тоа е како тоа е дека можете да отидете на прозорецот и почнете да пишувате команди 22 00:01:20,450 --> 00:01:23,960 и така натаму постои, иако не сте влезете во прозорецот. 23 00:01:23,960 --> 00:01:26,670 Покрај тоа, ако се направи далечинско логирање, 24 00:01:26,670 --> 00:01:30,250 тогаш ќе почне школка на оддалечениот компјутер. 25 00:01:30,250 --> 00:01:44,310 И тоа е можно да се кандидира команди без интерактивна школка. 26 00:01:44,310 --> 00:01:48,990 Тоа може да значи во рамките на вашиот тековната операција, 27 00:01:48,990 --> 00:01:50,700 и тоа исто така може да значи далечинско управување. 28 00:01:50,700 --> 00:01:52,900 Вие би можеле да испрати команда на друг компјутер, 29 00:01:52,900 --> 00:01:55,460 која вклучува стартување школка таму. 30 00:01:55,460 --> 00:01:57,760 Всушност, тоа е да го вклучите стартување школка има 31 00:01:57,760 --> 00:02:01,740 дури и ако тоа не е вашата крајна цел. 32 00:02:05,310 --> 00:02:12,350 Кога нешто ќе почне со работа како овој, тоа не мора да започне нова школка. 33 00:02:12,350 --> 00:02:17,430 Ако ви донесе нов прозорец, тоа е можно да се каже да се донесе до уредникот 34 00:02:17,430 --> 00:02:18,940 или некои други команда. 35 00:02:18,940 --> 00:02:20,560 Во тој случај, уредувачот ќе започне од нула. 36 00:02:20,560 --> 00:02:22,930 Кога ќе заврши уредник, прозорецот завршува. 37 00:02:22,930 --> 00:02:24,620 Ова е малку необично, но тоа може да се направи. 38 00:02:24,620 --> 00:02:27,140 Во тие случаи, тоа нема да биде школка. 39 00:02:27,140 --> 00:02:31,890 Па тоа не е секогаш случај дека некој прозорец или некои такви апликации ќе донесе до школка. 40 00:02:31,890 --> 00:02:34,030 >> Шел парсира команди. 41 00:02:34,030 --> 00:02:40,900 Парсирање значи идентификување на различните елементи и класифицирање на нив. 42 00:02:40,900 --> 00:02:43,470 Во рамките на командата, комплетната стринг кој што пишувате, 43 00:02:43,470 --> 00:02:47,310 ќе има 1 или повеќе единствена команди за да биде погубен. 44 00:02:47,310 --> 00:02:50,050 Други елементи може да биде аргументи. 45 00:02:50,050 --> 00:02:55,020 Постојат, исто така, може да биде специјални карактери кои влијаат на извршувањето на командата. 46 00:02:55,020 --> 00:02:59,710 Тие можат да испрати излез некаде различна од екранот 47 00:02:59,710 --> 00:03:01,750 ако командата вообичаено би го испрати на екранот. 48 00:03:01,750 --> 00:03:04,390 Тоа може да се пренасочи влез; тоа може да прават други работи исто така. 49 00:03:04,390 --> 00:03:08,120 Постојат разни други симболи, знаци, и така натаму. 50 00:03:08,120 --> 00:03:13,600 Парсирање вклучува откривање и толкување тие работи. 51 00:03:13,600 --> 00:03:19,560 >> Сега, ако не постојат повеќе прашања, што е прилично веројатно бидејќи не постојат повеќе луѓе, 52 00:03:19,560 --> 00:03:24,620 ние ќе одат за да се мојата следна страница тука. 53 00:03:24,620 --> 00:03:29,170 >> Реков претходно дека Борн школка е почетната школка. 54 00:03:29,170 --> 00:03:31,550 Постојат и други. 55 00:03:31,550 --> 00:03:34,520 Една од нив е на C-школка. Командата е csh. 56 00:03:34,520 --> 00:03:36,830 Името C-школка е само игра на зборови. 57 00:03:36,830 --> 00:03:41,260 Оваа школка беше воведен со Беркли Unix во средината на 1970-тите. 58 00:03:41,260 --> 00:03:44,830 Беркли Unix беше плодотворен настан во развојот на Unix. 59 00:03:44,830 --> 00:03:48,770 Беше тоа една огромна револуција и вклучени воведувањето на оваа школка. 60 00:03:48,770 --> 00:03:50,790 Причината за тоа игра на зборови, Ц-школка, 61 00:03:50,790 --> 00:03:56,490 е дека C-школка има некои карактеристики во него, која личи на јазикот Ц, 62 00:03:56,490 --> 00:03:59,740 кој Bourne школката нема - 63 00:03:59,740 --> 00:04:02,140 или тоа не се во тоа време. 64 00:04:02,140 --> 00:04:05,190 Исто така на ТЦ-школка. 65 00:04:05,190 --> 00:04:07,360 Ова е superset на Ц-школка. 66 00:04:07,360 --> 00:04:11,470 Има дополнителни функции, од кои многу се корисни за интерактивна употреба, 67 00:04:11,470 --> 00:04:16,050 како што се сеќавајќи се команди во механизмот историја, 68 00:04:16,050 --> 00:04:18,459 која Јас ќе се опише нешто подоцна - 69 00:04:18,459 --> 00:04:23,120 на едноставен начин, моделирани по уредник. 70 00:04:23,120 --> 00:04:29,170 Исто така, има поврзувања кои ќе ви овозможи да се поврзе со кратки клучни низа на подолг команда. 71 00:04:29,170 --> 00:04:31,440 Ние нема да се навлегува во кои денес. 72 00:04:31,440 --> 00:04:33,650 Таа има некои карактеристики кои се корисни за програмирање. 73 00:04:33,650 --> 00:04:37,020 Сепак, C-школка не често се користи за школка програмирање. 74 00:04:37,020 --> 00:04:39,080 Програми школка, ако не веќе знаете, 75 00:04:39,080 --> 00:04:41,690 се програми кои се состојат од школка карактеристики. 76 00:04:41,690 --> 00:04:43,220 Вие би можеле да се кандидира на овие програми. 77 00:04:43,220 --> 00:04:46,760 Ти пишувам еден куп на школка команди во датотека и извршување на датотеката. 78 00:04:46,760 --> 00:04:49,760 Вие не треба да го компајлирате. Ова е извршителот јазик. 79 00:04:49,760 --> 00:04:57,320 Фразата Ц-школка е сега двосмислена, бидејќи тоа може да се однесува само на оригиналниот Ц-школка, csh, 80 00:04:57,320 --> 00:05:01,200 или сите C лушпи, вклучувајќи tcsh. Тоа е малку двосмислена. 81 00:05:01,200 --> 00:05:08,250 >> А подоцна школка е Korn школката, ksh, именувана по програмер, Корн. 82 00:05:08,250 --> 00:05:14,160 Оваа школка се обиде да се вклучат во 1 школка 83 00:05:14,160 --> 00:05:16,960 предностите на C-школка за интерактивна употреба 84 00:05:16,960 --> 00:05:19,230 и Bourne плаќа за програмирање. 85 00:05:19,230 --> 00:05:25,440 Таа се користи како интерактивна школка од страна на некои луѓе - малцинство. 86 00:05:25,440 --> 00:05:32,050 Подоцна, сепак, има уште еден вовед, баш школка, баш, 87 00:05:32,050 --> 00:05:35,290 повторно игра на зборови, Bourne-школка повторно. 88 00:05:35,290 --> 00:05:43,830 Тоа е продолжување на Bourne школката. Korn школката исто така. Двете од нив се. 89 00:05:43,830 --> 00:05:48,100 Таа има истите цели на Korn школката на amalgamating C-школка е 90 00:05:48,100 --> 00:05:50,980 и предности Bourne школката во 1 школка. 91 00:05:50,980 --> 00:05:56,810 Многу од подобрувања на Korn школката исто така се вклучени во баш. 92 00:05:56,810 --> 00:06:00,710 Баш, сепак, има се повеќе и затоа е подобро. 93 00:06:00,710 --> 00:06:05,180 На Bourne-школка повторно и Korn школката се нарекуваат Bourne-тип школки 94 00:06:05,180 --> 00:06:07,730 бидејќи тие вклучуваат карактеристики на Bourne школката е, 95 00:06:07,730 --> 00:06:11,180 што се некомпатибилни со некои аспекти со C-школки. 96 00:06:11,180 --> 00:06:15,520 Постојат и други школки покрај оние, некои се наменети за ограничена употреба, 97 00:06:15,520 --> 00:06:20,670 можеби ограничени на некои команди, можеби специјализирани цели, а не често се користи. 98 00:06:20,670 --> 00:06:24,240 >> Океј. Следната точка тука. 99 00:06:31,300 --> 00:06:38,970 Баш школка стана поврзани со различни форми на Линукс. 100 00:06:38,970 --> 00:06:41,550 Не сум сигурен дали тоа е вистина на секоја форма. 101 00:06:41,550 --> 00:06:43,280 Постојат многу форми таму и не сум ги користи, 102 00:06:43,280 --> 00:06:46,870 но во оние кои Го употребив тоа стана поврзани со неа. 103 00:06:46,870 --> 00:06:49,670 Па колку што знам, не постои ништо за баш 104 00:06:49,670 --> 00:06:52,210 што го прави повеќе компатибилен со Линукс 105 00:06:52,210 --> 00:06:55,020 од која било друга комбинација на школка и оперативниот систем. 106 00:06:55,020 --> 00:06:59,690 Мислам дека ова веројатно само го одразува наклони на програмери. 107 00:06:59,690 --> 00:07:07,500 Дека тоа стана поврзани со Линукс е уште една причина да е насочен баш да ksh 108 00:07:07,500 --> 00:07:11,820 бидејќи нештата е веројатно да бидат напишани во него и тоа е веројатно да се шири. 109 00:07:11,820 --> 00:07:15,410 Јас ќе ти дадам други причини за тоа подоцна. 110 00:07:15,410 --> 00:07:21,330 Bourne школката скрипти треба да работи под Korn школката или баш. 111 00:07:21,330 --> 00:07:22,650 Ако напишете нешто за Bourne школката, 112 00:07:22,650 --> 00:07:26,180 што веројатно може да го изврши под ksh или баш. 113 00:07:26,180 --> 00:07:30,610 Korn школката скрипти, веројатно ќе се одвива под баш, но не можам да гарантирам тоа. 114 00:07:30,610 --> 00:07:36,040 Подоцна тука, Ц-школка скрипти треба да работи под TC-школка. 115 00:07:38,850 --> 00:07:41,690 C-школка, всушност, никогаш не широко се користат за скриптирање 116 00:07:41,690 --> 00:07:48,110 бидејќи Bourne плаќа, а подоцна и на Bourne-тип школки се препорачува за таа намена. 117 00:07:48,110 --> 00:07:50,620 Така што навистина не е сето тоа важно. 118 00:07:50,620 --> 00:07:53,480 Постојат доста Bourne школката скрипти кои биле напишани многу одамна, 119 00:07:53,480 --> 00:07:56,860 пред Korn школката или на Bourne-школка повторно беа воведени. 120 00:07:56,860 --> 00:07:59,300 Оние кои се уште се во употреба, дел од оперативните системи, 121 00:07:59,300 --> 00:08:01,590 и така ќе ги најдете ако се погледне во оперативниот систем 122 00:08:01,590 --> 00:08:03,760 или некои стари програмски пакети. 123 00:08:03,760 --> 00:08:12,840 >> Баш до одреден степен да стане еден вид на лингва франка за оперативни системи. 124 00:08:12,840 --> 00:08:17,580 Тоа е веќе проширена на Windows и да VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, во случај да не знаете, е неслободен оперативен систем 126 00:08:20,440 --> 00:08:25,480 на Digital Equipment Corporation, која е сеуште во употреба, во голема мера зад сцената. 127 00:08:25,480 --> 00:08:29,250 И ако тоа се случува да се работи на неколку различни оперативни системи, 128 00:08:29,250 --> 00:08:31,110 веројатно луѓето имаат тенденција да се префрлат за тоа. 129 00:08:31,110 --> 00:08:33,840 Но овој развој е релативно нова. 130 00:08:33,840 --> 00:08:39,490 Тоа е само почетокот, па јас не може да се предвиди дали ова ќе испаднат да навистина биде оној вид на лингва франка. 131 00:08:39,490 --> 00:08:43,539 Исто така, бидејќи на датотека pathnames и библиотеки се разликуваат 132 00:08:43,539 --> 00:08:46,210 помеѓу овие различни оперативни системи, 133 00:08:46,210 --> 00:08:50,250 Вие не може да биде во можност да се напише баш скрипта на еден оперативен систем 134 00:08:50,250 --> 00:08:51,840 а потоа се пушта и на уште еден. 135 00:08:51,840 --> 00:08:54,440 Треба да бидете во можност да го движите помеѓу различни Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS оперативни системи, но не нужно на Windows или VMS. 137 00:08:59,020 --> 00:09:01,390 Можеби ќе треба да се промени датотека патеката описи, 138 00:09:01,390 --> 00:09:03,180 и некои библиотеки може да биде различна, 139 00:09:03,180 --> 00:09:05,230 кои можат да влијаат на начинот на кој некои команди работат 140 00:09:05,230 --> 00:09:09,730 или како тие процес аргументи и слично. 141 00:09:09,730 --> 00:09:19,230 Во прилог на тоа, уште претпазливи тука е дека не постои гаранција 142 00:09:19,230 --> 00:09:23,570 дека сите различни школки што сум споменат - Bourne школката, Ц-школка, 143 00:09:23,570 --> 00:09:29,880 TC-школка, Korn школката, Bourne-школка повторно - ќе бидат достапни под никакви Unix 144 00:09:29,880 --> 00:09:33,750 или Linux или Mac OS компјутер. 145 00:09:33,750 --> 00:09:35,620 Тие едноставно не може да биде таму. 146 00:09:35,620 --> 00:09:38,300 Тоа е една од предупредува тука. 147 00:09:38,300 --> 00:09:41,490 Тоа е несреќна ограничување тука, бидејќи сакате работите да работат насекаде, 148 00:09:41,490 --> 00:09:44,380 но за жал, не можете да се потпираат на тоа. 149 00:09:44,380 --> 00:09:47,230 >> Океј. Следниот тука. 150 00:09:50,280 --> 00:09:54,370 Да речеме дека сакате да напишете школка скрипта, 151 00:09:54,370 --> 00:09:57,170 програма се состои од школка команди. 152 00:09:57,170 --> 00:10:01,200 Вие напишете ја вашата команди, ги стави во една датотека, и извршување на датотеката. 153 00:10:01,200 --> 00:10:04,230 Што ако сакате да се вклучат аргументи? 154 00:10:04,230 --> 00:10:09,650 Во случај на школка операции, аргументи се нарекуваат параметри или позиционен параметри 155 00:10:09,650 --> 00:10:15,940 и тие ќе бидат повикани од страна на знакот за долар и бројки, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Значи, ако сценариото има ова име, мојот прв аргумент може да биде аргумент 1 157 00:10:27,000 --> 00:10:30,540 и моето второ може да биде аргумент 2, 158 00:10:30,540 --> 00:10:34,110 и во внатрешноста на мојата скрипта ако сакам да се однесуваат на овие работи - 159 00:10:34,110 --> 00:10:36,810 ајде да избрише тоа, бидејќи јас не сум навистина се случува да се кандидира - 160 00:10:36,810 --> 00:10:42,160 внатрешноста на мојата скрипта би можеле да имаат $ 1 да се однесуваат на arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, кој ќе излезе на тој начин, arg2. 162 00:10:45,890 --> 00:10:50,080 Па оние симболи се на располагање да се однесуваат на аргументи, 163 00:10:50,080 --> 00:10:52,390 и оние важат за сите школки. 164 00:10:52,390 --> 00:10:56,520 Покрај тоа, постојат и други ликови. 165 00:10:56,520 --> 00:11:01,700 $ * Се однесува на целата аргумент листа, сите од нив. 166 00:11:01,700 --> 00:11:05,390 $ # Однесува на бројот на аргументи. 167 00:11:05,390 --> 00:11:07,910 Повторно, ова се однесува на сите школки. 168 00:11:07,910 --> 00:11:15,540 Оние симболи, * и #, може да се користи со оние значења во други места, исто така. 169 00:11:15,540 --> 00:11:17,940 Ние не ќе се добива во тоа. 170 00:11:17,940 --> 00:11:20,460 >> Шел назначувач линија. Што е тоа? 171 00:11:20,460 --> 00:11:27,760 Да речеме дека сум напишал сценариото и тоа е за одредена школка и дека сакате да го работи. 172 00:11:27,760 --> 00:11:33,500 Како да знаете што се плаќа вашиот оперативен систем ќе го користи за да се кандидира на вашиот скрипта? 173 00:11:33,500 --> 00:11:37,230 Во еден момент можете да се претпостави дека тоа ќе се кандидира во Борн школка 174 00:11:37,230 --> 00:11:39,440 ако не се каже поинаку, 175 00:11:39,440 --> 00:11:41,730 но луѓето не се пишува сценарија во Борн плаќа дека многу повеќе 176 00:11:41,730 --> 00:11:43,750 и вие нема ни да се потпираат на тоа повеќе. 177 00:11:43,750 --> 00:11:48,740 Значи тука имаме школка назначувач линија, токму тука. 178 00:11:48,740 --> 00:11:52,450 Што го одредува баш. 179 00:11:52,450 --> 00:11:56,750 Имајте на ум дека тоа го одредува во патеката, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Ако компјутерот има баш школка, но не и во bin директориумот, / bin, ова нема да работи. 181 00:12:02,870 --> 00:12:06,870 Тоа е друга одредница, уште претпазливи тука. 182 00:12:06,870 --> 00:12:09,500 Знакот фунта е коментарот линија карактер. 183 00:12:09,500 --> 00:12:12,300 Тоа се однесува на сите школки. 184 00:12:12,300 --> 00:12:18,610 Конкретниот случај тука, #! на почетокот на сценариото, е посебен случај. 185 00:12:18,610 --> 00:12:23,410 Карактеристиките на таа школка во која за да се кандидира на сценариото. 186 00:12:23,410 --> 00:12:30,230 Како што реков, тоа не може да биде на истото место / bin. 187 00:12:30,230 --> 00:12:34,880 Покрај тоа, има уште нешто овде. 188 00:12:34,880 --> 00:12:41,250 Ако само користење на фунтата знак без извичник и патеката, 189 00:12:41,250 --> 00:12:44,640 што треба да се укаже на Ц-школка. 190 00:12:44,640 --> 00:12:48,300 Сепак, јас не препорачувам прави тоа, бидејќи јас не сум во состојба да се гарантира 191 00:12:48,300 --> 00:12:49,750 дека секогаш ќе работи. 192 00:12:49,750 --> 00:12:52,220 Ако сакате Ц-школка, тоа ќе биде подобро да се каже така. 193 00:12:52,220 --> 00:12:58,450 Потоа, тука е нешто прилично збунувачки тука. 194 00:12:58,450 --> 00:13:03,940 Ако користите школка назначувач линија, како што / bin / bash 195 00:13:03,940 --> 00:13:07,070 и дека школка не е на располагање таму, 196 00:13:07,070 --> 00:13:10,680 не постои такво нешто како / bin / bash на тој одреден компјутер, 197 00:13:10,680 --> 00:13:14,330 или поради тоа што не мора баш или затоа што тоа е во различна локација, 198 00:13:14,330 --> 00:13:17,450 ќе добиете грешка ти го кажувам дека сценариото ќе истрча не постои. 199 00:13:17,450 --> 00:13:21,510 И, се разбира вашата скрипта постои, така што порака за грешка е збунувачки. 200 00:13:21,510 --> 00:13:24,810 Причината дека оперативниот систем ти дава дека грешка 201 00:13:24,810 --> 00:13:28,370 или, попрецизно, дека вашиот интерактивна школка во која се извршува ова му дава оваа грешка, 202 00:13:28,370 --> 00:13:33,510 дека извештаите на командата ќе се користат, што е името на сценариото. 203 00:13:33,510 --> 00:13:36,920 Таа команда ефикасно наречена школка со името на сценариото. 204 00:13:36,920 --> 00:13:39,330 Тоа е каде што ќе го добиете тоа збунувачки порака за грешка. 205 00:13:39,330 --> 00:13:42,980 Друг начин да се јавите школка скрипта 206 00:13:42,980 --> 00:13:45,910 е со впишување на школка на командната линија, како што е тука. 207 00:13:45,910 --> 00:13:52,510 Ова е команда. Ова се вели кандидира баш и потоа изврши мојата скрипта во баш. 208 00:13:52,510 --> 00:13:55,680 Кои ќе имаат предност над назначувач линија, 209 00:13:55,680 --> 00:14:02,090 и ова има функција на што ќе ви овозможи да се грижат за различни pathnames. 210 00:14:02,090 --> 00:14:04,840 Ако само даде команда, оперативниот систем ќе изгледа за таа команда 211 00:14:04,840 --> 00:14:06,410 во различни места. 212 00:14:06,410 --> 00:14:08,820 Ако е на располагање, треба да го најдат. 213 00:14:08,820 --> 00:14:12,290 Компјутерот ќе најдете баш секаде каде што е лоциран и да ја стартувате, 214 00:14:12,290 --> 00:14:15,470 така да не треба тогаш да бидат загрижени за тоа каде се наоѓа. 215 00:14:15,470 --> 00:14:17,360 Постојат потенцијално други проблеми тука, 216 00:14:17,360 --> 00:14:20,830 како да има повеќе од 1 верзија на баш, што е можно, иако малку веројатно. 217 00:14:20,830 --> 00:14:23,540 Па тоа е уште еден начин да се справи со овие работи. 218 00:14:23,540 --> 00:14:30,480 Назначувач линии може да се јавите било школка. 219 00:14:30,480 --> 00:14:34,480 Тие, исто така може да се јавите нешта различни од школки. 220 00:14:34,480 --> 00:14:37,940 Примери имам тука се сед, што е поток уредник; 221 00:14:37,940 --> 00:14:39,900 awk, што е шемата на обработката на јазикот; 222 00:14:39,900 --> 00:14:43,680 и Perl, многу високо развиени скриптен јазик. 223 00:14:43,680 --> 00:14:47,570 Ако се стави назначувач линија укажува еден од оние програми на почетокот, 224 00:14:47,570 --> 00:14:51,270 тоа ќе оди директно во таа програма наместо да стартуваат школка. 225 00:14:51,270 --> 00:14:54,030 Овие програми имаат ограничувања на нивните способности. 226 00:14:54,030 --> 00:14:58,790 Perl е многу способен. Сед е уредник. Тоа може да се прават работите подалеку од едноставно уредување. 227 00:14:58,790 --> 00:15:03,300 Но, тоа може да биде тешко да се програмира тоа. 228 00:15:03,300 --> 00:15:09,670 Покрај тоа, поминува аргументи и работи на сценариото е невозможно или збунувачки. 229 00:15:09,670 --> 00:15:15,030 Така и во оние случаи, со awk или сед, тоа е, барем во моето искуство, 230 00:15:15,030 --> 00:15:18,910 подобро да се напише на школка скрипта и повик awk или сед од школка скрипта 231 00:15:18,910 --> 00:15:24,660 наместо нарекувајќи awk или сед како скрипта назначувач линија. 232 00:15:24,660 --> 00:15:26,980 Perl е многу разновиден јазик, како што реков. 233 00:15:26,980 --> 00:15:30,050 Вие не може да работи интерактивни команди во Perl, 234 00:15:30,050 --> 00:15:32,660 што значи дека не може да го тестира делови на скрипти дека сте развој 235 00:15:32,660 --> 00:15:33,970 со извршување на нив интерактивно. 236 00:15:33,970 --> 00:15:36,160 Сепак, тоа е исклучително способен јазик 237 00:15:36,160 --> 00:15:40,960 и се разви во многу широко се користи алатка. 238 00:15:40,960 --> 00:15:45,720 Тоа е само малку на parenthetical забелешка за назначувач линии. 239 00:15:45,720 --> 00:15:50,610 >> Во сите или повеќето форми на Линукс - повторно, не можам да бидете сигурни дека е сè - 240 00:15:50,610 --> 00:15:57,900 и во Mac OS, ако го напишете csh ќе добиете tcsh, 241 00:15:57,900 --> 00:16:00,570 и ако го напишете sh ќе добиете баш. 242 00:16:00,570 --> 00:16:05,020 Тие се обидуваат таму да ви даде повеќе напредни верзии на овие школки, 243 00:16:05,020 --> 00:16:07,940 но ова може да биде збунувачки. 244 00:16:07,940 --> 00:16:16,720 Ако ти напишам скрипта користејќи tcsh или баш карактеристики при повикувањето csh или sh 245 00:16:16,720 --> 00:16:22,230 и потоа обидете се да се пушта и на компјутер кој нема tcsh или баш, 246 00:16:22,230 --> 00:16:25,050 може да се добијат некои грешки, ако постојат команди таму 247 00:16:25,050 --> 00:16:27,970 кои тие школки не се признаваат. 248 00:16:27,970 --> 00:16:34,120 Покрај тоа, може да се нарече вашиот школка на вашиот компјутер 249 00:16:34,120 --> 00:16:37,700 нарекувајќи го како sh или csh а потоа добивање на повеќе напредни школки. 250 00:16:37,700 --> 00:16:41,440 Вие не може дури и да мислат на фактот дека сте со користење на повеќе напредни школка. 251 00:16:41,440 --> 00:16:45,670 Значи ова е потенцијален замка. 252 00:16:45,670 --> 00:16:50,290 Како се утврди дека ако го напишете sh ќе добиете баш, 253 00:16:50,290 --> 00:16:55,580 ако го напишете csh ќе добиете tsch? 254 00:16:55,580 --> 00:16:59,940 Постојат нешта во овие компјутери наречен линкови 255 00:16:59,940 --> 00:17:06,460 кои можат да се поврзете со датотека имиња да се однесуваат на иста работа. 256 00:17:06,460 --> 00:17:12,180 Тоа можат да бидат 2 имиња за истата датотека или датотека, чија цел е да се однесуваат на друга датотека. 257 00:17:12,180 --> 00:17:17,550 Тие се нарекуваат тешко и симболички врски. Ние не ќе се случува во таа веќе денес. 258 00:17:17,550 --> 00:17:21,619 Исто така, може да биде посебен фајлови - 1 датотека sh, 1 датотека баш - 259 00:17:21,619 --> 00:17:23,880 но тие двете работи баш. 260 00:17:23,880 --> 00:17:29,350 Потоа, тука е друг квалификациите тука. 261 00:17:29,350 --> 00:17:42,640 Ако сте повикувајќи еден од овие школки од едно име, 262 00:17:42,640 --> 00:17:46,640 што можеле да помислат дека ќе добиете истата функционалност како нарекувајќи го со друго име. 263 00:17:46,640 --> 00:17:49,700 Па, тоа всушност не е секогаш точно. 264 00:17:49,700 --> 00:17:55,020 Овие команди можат да ги испита името со кое тие биле повикани 265 00:17:55,020 --> 00:18:00,020 и тие можат да, врз основа на тоа име, се однесуваат поинаку. 266 00:18:00,020 --> 00:18:02,740 Може да има проблеми да се обидува да се во согласност со стандард. 267 00:18:02,740 --> 00:18:06,060 Некои од вас може да се чуе на POSIX стандардот или некој друг, 268 00:18:06,060 --> 00:18:08,730 можеби други карактеристики. 269 00:18:08,730 --> 00:18:14,520 Ова може да биде избран понекогаш со командната линија аргументи 270 00:18:14,520 --> 00:18:17,310 или со поставување школка променливи. 271 00:18:17,310 --> 00:18:22,170 Нарекувајќи го како sh или баш всушност може да доведе до различни извршување 272 00:18:22,170 --> 00:18:25,300 дури и ако тоа е на иста датотека што сте извршување. 273 00:18:25,300 --> 00:18:31,800 Друга работа е да се разгледа е дека дури и ако друг компјутер има tcsh или баш, 274 00:18:31,800 --> 00:18:35,310 ако тие не се поврзани како што се на вашиот локален компјутер 275 00:18:35,310 --> 00:18:37,990 ако имате Linux или Mac OS локалниот компјутер, 276 00:18:37,990 --> 00:18:45,630 тогаш повторно ќе добиете школка која ќе се јавите sh или csh, а не оној што можеби ќе сакате. 277 00:18:50,430 --> 00:19:01,130 Тековната Bourne школката има подобрувања помала од оние во баш 278 00:19:01,130 --> 00:19:06,100 но минатото оние во оригиналната Bourne школката. 279 00:19:06,100 --> 00:19:09,690 Како резултат на тоа, дури и тековниот Bourne школката, sh, 280 00:19:09,690 --> 00:19:14,560 дури и кога тоа не е баш личи на јазикот Ц повеќе од C-школка прави. 281 00:19:14,560 --> 00:19:20,460 Тоа не беше точно кога на C-школка прв пат беше замислен, но таа се разви на тој начин. 282 00:19:20,460 --> 00:19:26,560 Може да се забележи дека сите овие школка имиња освен за Bourne школката 283 00:19:26,560 --> 00:19:30,640 има нешто да се покаже кој школка тие се - csh, баш - 284 00:19:30,640 --> 00:19:32,550 но на Bourne школката е само sh. 285 00:19:32,550 --> 00:19:34,910 Зошто? Тоа беше оригиналниот школка. 286 00:19:34,910 --> 00:19:37,770 Тоа беше школка тогаш, не е школка, 287 00:19:37,770 --> 00:19:41,090 и бидејќи беше школка, нема причина да се разликува од друга обвивка. 288 00:19:41,090 --> 00:19:45,030 Па затоа тој има тоа име и се уште го прави тоа. 289 00:19:50,630 --> 00:19:58,990 >> Оваа топ тука е линија од лозинка база на податоци за сметка имам таму 290 00:19:58,990 --> 00:20:01,680 на друг компјутер. 291 00:20:01,680 --> 00:20:08,300 Одам да се обиде да добие што име, така што можете да видите дека дел на крајот, на школка. 292 00:20:09,720 --> 00:20:15,450 Лозинка база на податоци има карактеристики најава за сите корисници. 293 00:20:15,450 --> 00:20:20,330 На почетокот е корисничко име, кое може да се види на последните 2 букви од рудникот сега. 294 00:20:20,330 --> 00:20:23,970 Полиња тука се одделени со запирки. 295 00:20:23,970 --> 00:20:28,210 Последните поле, како што можете да видите, е bin / tcsh, на школка. 296 00:20:28,210 --> 00:20:30,230 Тоа е школка назначувач. 297 00:20:30,230 --> 00:20:33,240 Има нешто интересно овде. 298 00:20:33,240 --> 00:20:36,950 Кога Unix беше првиот развиена, имаше само 1 школка, 299 00:20:36,950 --> 00:20:38,350 па немаше избор таму. 300 00:20:38,350 --> 00:20:45,570 Па зошто тие овозможуваат едно поле во лозинка база на податоци за да се одреди школка? 301 00:20:45,570 --> 00:20:47,920 Не знам, но тоа е среќа што го направија. 302 00:20:47,920 --> 00:20:52,030 Тоа е прилично тешко да се прават промени во лозинка база на податоци формат 303 00:20:52,030 --> 00:20:54,420 затоа што многу програми се однесуваат на нејзината формат 304 00:20:54,420 --> 00:20:57,720 и ќе треба да се препишува и повторно. 305 00:20:57,720 --> 00:21:04,130 Тоа е на место или случајно развој дека тие се вклучени тоа поле. 306 00:21:04,130 --> 00:21:12,780 Оној вид на лозинка датотека линија се користи на сите Unix и Linux компјутери, па колку што знам. 307 00:21:12,780 --> 00:21:14,650 На Mac има свој систем. 308 00:21:14,650 --> 00:21:17,810 Тоа всушност има лозинка датотека со линии во овој формат, 309 00:21:17,810 --> 00:21:21,060 но тоа не е местото каде што се дефинирани на корисникот карактеристики. 310 00:21:21,060 --> 00:21:24,200 Друга parenthetical забелешка таму. 311 00:21:36,470 --> 00:21:46,020 >> Ако сте повикувајќи школка, можете да го наречеме како под-школка на вашиот постоечки школки. 312 00:21:46,020 --> 00:21:50,480 Значи, ако јас одам тука, ајде да се ослободи од овие работи. 313 00:21:50,480 --> 00:21:53,350 Јас сум тука во Ц-школка. 314 00:21:56,830 --> 00:22:01,200 Таа променлива, која точно ги идентификува мојата школка, 315 00:22:01,200 --> 00:22:04,300 всушност, не е секогаш сигурен начин на одредување на она што се плаќа сте водење, 316 00:22:04,300 --> 00:22:06,220 но во овој случај тоа е. 317 00:22:06,220 --> 00:22:08,040 Што ако јас само напишете - 318 00:22:09,970 --> 00:22:12,470 Сега сум во баш. 319 00:22:12,470 --> 00:22:19,540 Некои работи се случува да бидат исти. ls ми кажува моите заповеди. 320 00:22:19,540 --> 00:22:24,500 Ако јас не суспендирање вратам на мојот Ц-школка, ls, исти. Нели? 321 00:22:24,500 --> 00:22:28,890 fg, преден план, се враќам на баш школка. 322 00:22:28,890 --> 00:22:38,290 pwd, тековниот директориум, назад кон C-школка. 323 00:22:38,290 --> 00:22:43,180 pwd, различен директориум - всушност не е различен директориум во овој случај. 324 00:22:43,180 --> 00:22:45,110 Тоа е истиот директориум. 325 00:22:45,110 --> 00:22:50,000 Да речеме сакам да се јавите на команда тука: каде ls. 326 00:22:50,000 --> 00:22:52,140 Што значи дека направам? 327 00:22:52,140 --> 00:22:53,670 Тоа ми кажува каде Командата ls 328 00:22:53,670 --> 00:22:56,670 оној кој ми дава директориумот, се наоѓа во ЛС. 329 00:22:56,670 --> 00:23:01,460 Ајде да се вратиме на баш школка. Ајде да се обидеме истото. 330 00:23:01,460 --> 00:23:05,830 Хм, интересно таму, каде што: команда не е пронајден. 331 00:23:05,830 --> 00:23:07,400 Зошто е тоа така? 332 00:23:07,400 --> 00:23:11,570 КАДЕ команда е изграден во C-школка. 333 00:23:11,570 --> 00:23:15,630 Ова не е команда која мора да се прочита во меморијата од некаде на друго место и егзекутирани. 334 00:23:15,630 --> 00:23:20,310 C-школка бега од страна на трансфер извршување на дел од свој код 335 00:23:20,310 --> 00:23:22,790 и тоа не е во баш школка. 336 00:23:22,790 --> 00:23:25,710 Па баш, не поминуваат толку вграден во командата, изгледа за тоа, не го најдете, 337 00:23:25,710 --> 00:23:27,720 и ние добиеш грешка. 338 00:23:27,720 --> 00:23:32,290 Па ние имаме еден баш школка работи под Ц-школка, и ние го нарекуваме дека под-школка. 339 00:23:32,290 --> 00:23:38,480 И само во случај да сте љубопитни, баш школка има свој начин на наоѓање на команди. 340 00:23:38,480 --> 00:23:42,590 хеширана се однесува на фактот дека тоа може да се изврши побрзо, 341 00:23:42,590 --> 00:23:44,960 се најде побрзо. 342 00:23:44,960 --> 00:23:48,610 Тоа е една од подобрувања изградена во некои од овие школки. 343 00:23:50,220 --> 00:23:54,200 >> Bourne-тип школки се најпосакувана за програмирање. 344 00:23:54,200 --> 00:23:57,300 Тие имаат контрола структури како петелки, условно извештаи, 345 00:23:57,300 --> 00:24:00,240 вид на команди кои можете да го користите во програмски јазици како C 346 00:24:00,240 --> 00:24:04,190 или кој било јазик. Можеби сте програмирање во Јава или whatever. 347 00:24:04,190 --> 00:24:06,460 Школки мораме оние премногу. 348 00:24:06,460 --> 00:24:11,790 Школки Bourne-тип, особено баш, имаат повеќе 349 00:24:11,790 --> 00:24:15,730 и тие се дизајнирани со поголема флексибилност. 350 00:24:15,730 --> 00:24:20,700 Баш школка има низи. Оригиналниот Bourne школката не. 351 00:24:20,700 --> 00:24:26,130 Така што може да биде значително поволна за програмирање. 352 00:24:26,130 --> 00:24:29,810 C-школка, всушност, има низи, но не се многу од овие други карактеристики. 353 00:24:29,810 --> 00:24:33,450 Bourne-тип школки на ќе се изврши побрзо 354 00:24:33,450 --> 00:24:36,520 ако тие не имаат карактеристики наменета за интерактивна употреба. 355 00:24:36,520 --> 00:24:39,340 Ќе се вчита работи надолу за една цел, тоа ги вчитува долу за друга намена. 356 00:24:39,340 --> 00:24:41,520 Тука е дека трампа таму. 357 00:24:41,520 --> 00:24:44,510 Оние карактеристики кои се наменети за интерактивна употреба 358 00:24:44,510 --> 00:24:46,920 навистина се од мала или никаква употреба за скриптирање. 359 00:24:46,920 --> 00:24:52,160 Тоа е можно да се користи интерактивна под-школка исто како и оној почнав таму 360 00:24:52,160 --> 00:24:57,780 да пробате команди кои имате намера да се користи во сценариото. 361 00:24:57,780 --> 00:25:01,180 Тоа е она што не можете да направите со Perl. Можете да го направите со школки. 362 00:25:01,180 --> 00:25:04,850 Дури и структури како за јамки и така натаму може да се работи интерактивно. 363 00:25:04,850 --> 00:25:07,000 Тие се понекогаш е корисно да се кандидира интерактивно, 364 00:25:07,000 --> 00:25:10,180 но поверојатно сте да ги користите за да се развие сценариото. 365 00:25:15,690 --> 00:25:17,400 >> Алијаси. 366 00:25:17,400 --> 00:25:21,630 Ова се случува да биде за C-школка. 367 00:25:23,270 --> 00:25:27,570 Историја механизам каде што можете да се вратам на почетокот команди 368 00:25:27,570 --> 00:25:30,340 или делови од нив кои веќе сте се кандидира. 369 00:25:30,340 --> 00:25:33,680 Повторно, за C-школка, на Bourne школката и Korn школката имаат овие работи, 370 00:25:33,680 --> 00:25:35,620 но јас не одам да се влезе во нив. 371 00:25:35,620 --> 00:25:40,340 Значи тука се и некои корисни адреси дека имам. 372 00:25:43,100 --> 00:25:44,880 Наместо внесување на ls - тоа е заедничка команда - 373 00:25:44,880 --> 00:25:47,620 само напишете l и се спаси себе си 1 карактер. 374 00:25:47,620 --> 00:25:50,600 ЛС со различни опции, сите тие работат. 375 00:25:50,600 --> 00:25:54,460 Имајте на ум дека овие дефиниции мора наводници околу нив. 376 00:25:54,460 --> 00:25:57,520 Во овие случаи, цитати не се потребни. 377 00:25:57,520 --> 00:26:00,100 Ако може да се дефинираат оние адреси без наводниците, тоа сепак би сакал да работиш. 378 00:26:00,100 --> 00:26:02,910 Тие се препорачува. 379 00:26:02,910 --> 00:26:04,900 Има ситуации во кои не можете да ги користите цитат 380 00:26:04,900 --> 00:26:08,050 затоа што сакате нешто да се случи што понуда ќе се спречи. 381 00:26:08,050 --> 00:26:11,210 Понекогаш можете да цитирате дел од дефиницијата, но не сите од неа. 382 00:26:11,210 --> 00:26:17,010 Тоа е, исто така, генерално се препорачува да се користи единечен наводник наместо двојни наводници. 383 00:26:17,010 --> 00:26:19,750 Двојни наводници имаат ефекти врз променлива дефиниции, 384 00:26:19,750 --> 00:26:22,950 особено предизвикувајќи ги да се оценува наместо запирање на тоа. 385 00:26:22,950 --> 00:26:25,910 Зошто ние би сакале да се запре оценка? 386 00:26:25,910 --> 00:26:28,710 И како цитати направи тоа за нас? 387 00:26:28,710 --> 00:26:32,600 >> Тука е команда која може да најдете интересни. 388 00:26:32,600 --> 00:26:35,470 'Ls g * 389 00:26:35,470 --> 00:26:37,640 g *, како што веројатно знаете, е маска израз 390 00:26:37,640 --> 00:26:40,290 за сите имиња на датотеки почнувајќи со г. 391 00:26:40,290 --> 00:26:46,410 Ако јас само пишувам во командата ls g *, јас ќе добиете листа на сите оние имиња во мојот тековниот директориум. 392 00:26:46,410 --> 00:26:50,870 Ако јас се дефинира дека алијас, како што е тука со цитати, 393 00:26:50,870 --> 00:26:56,990 тоа ќе се кандидира таа команда во тековниот директориум каде што сте го работи. 394 00:26:56,990 --> 00:27:01,250 Но, ако извршувате дефиниција алијас без наводниците, 395 00:27:01,250 --> 00:27:09,620 тоа ќе се оцени маска g * кога се работи овој дефинирање команда. 396 00:27:09,620 --> 00:27:14,400 Значи дефиницијата на алијас ќе биде ли проследено со листа на датотеки во директориумот 397 00:27:14,400 --> 00:27:16,310 во кои алијас командата е извршена, 398 00:27:16,310 --> 00:27:19,180 без оглед на тоа каде сте, всушност, имаат намера да ја извршите командата. 399 00:27:19,180 --> 00:27:26,360 Ова не е од многу употреба и единечен наводник спречи евалуација на ѕвездичка. 400 00:27:26,360 --> 00:27:30,780 Така да само го добиете дефиниција суштество ls g *. 401 00:27:30,780 --> 00:27:35,510 Тогаш кога ќе ја извршите алијас, гаранции, тогаш го става тоа. 402 00:27:35,510 --> 00:27:40,490 Сега постојат без наводници, и тоа ќе се оцени ѕвездичка кога ќе ја извршите алијас команда. 403 00:27:40,490 --> 00:27:43,900 Па тоа е една работа. 404 00:27:43,900 --> 00:27:46,590 Двојни наводници ќе имаат истиот ефект тука, 405 00:27:46,590 --> 00:27:50,580 но постојат и други случаи во кои двојни наводници не би сакал да работиш толку добро. 406 00:27:50,580 --> 00:27:52,450 >> Еве уште еден. 407 00:27:52,450 --> 00:27:54,270 Може да знаете на grep команда. 408 00:27:54,270 --> 00:28:02,110 На grep команда може да се користи за скенирање на датотека за линии кои имаат одредени низи. 409 00:28:02,110 --> 00:28:10,350 Па ајде да одиме над тука и јас ќе излезете од мојот Bourne школката. 410 00:28:23,570 --> 00:28:25,450 Во ред. Еве датотека. 411 00:28:25,450 --> 00:28:31,490 Да речеме дека е grep ABC жици. Ете го. 412 00:28:31,490 --> 00:28:37,930 Ако го направам grep zddd, да се добие ништо. Во ред. 413 00:28:37,930 --> 00:28:40,960 Па таа се наоѓа на стринг, таа извештаи, таа не се најде, тоа не го пријави. 414 00:28:40,960 --> 00:28:44,930 Тоа излези било која линија која има стрингот на неа. 415 00:28:44,930 --> 00:28:49,080 Постојат сите видови на опции тука што може да се најдат во документацијата. 416 00:28:49,080 --> 00:28:52,160 Еве еден начин да го направи тоа. 417 00:28:52,160 --> 00:29:03,290 Што е овој, алијас grabc "grep ABC '? 418 00:29:03,290 --> 00:29:09,000 Што се случува да се вклучат 1 аргумент кога алијас е дефинирано. 419 00:29:09,000 --> 00:29:26,300 Значи, ако го направам тоа тука, сега, ако го направам grabc, 420 00:29:26,300 --> 00:29:30,620 сега алијас вклучува повеќе од едноставна команда. Исто така, има аргумент. 421 00:29:30,620 --> 00:29:32,190 Досега, која работи. 422 00:29:32,190 --> 00:29:38,590 Имам друга команда тука, и оваа, па оние кои се различни жици таму 423 00:29:38,590 --> 00:29:46,790 и да покаже дека ова не се најде нешто таму, бидејќи тоа не се совпаѓаат. 424 00:29:46,790 --> 00:29:56,180 >> Што ако сакам да се вклучат во дефиницијата алијас датотека што јас ќе одам да се бараат 425 00:29:56,180 --> 00:30:02,970 и сакам да се даде како аргумент за алијас стрингот дека јас сум во потрага по? 426 00:30:02,970 --> 00:30:08,040 Јас можеби ќе сакате да се каже ABC како аргумент на мојот алијас, 427 00:30:08,040 --> 00:30:10,870 но алијас веќе утврдени датотеката. 428 00:30:10,870 --> 00:30:15,710 И тоа е каде што овој израз влегува внатре 429 00:30:20,430 --> 00:30:25,270 Забележете тука имаме grep како порано. 430 00:30:25,270 --> 00:30:28,130 Имаме датотека тука, стрингови. 431 00:30:28,130 --> 00:30:35,610 \! ^, Вид на чудно изразување, претпоставувам, ако не сте го виделе ова досега. 432 00:30:35,610 --> 00:30:39,920 Извичник е дел од C-школка историја механизам. 433 00:30:39,920 --> 00:30:45,220 Тоа може да се сети порано команди, тоа може да се сети аргументи на оние команди и така натаму. 434 00:30:46,760 --> 00:31:01,570 Механизам историјата се користи како дел од aliasing. 435 00:31:01,570 --> 00:31:07,390 Ако наведете линија по фантастичен точка, таа ќе се однесуваат на таа линија во листата на историјата, 436 00:31:07,390 --> 00:31:11,910 кои ние нема да се навлегува во сега, бидејќи тоа е сосема друга тема. 437 00:31:11,910 --> 00:31:16,280 Можно е да се одреди дел од линијата. 438 00:31:16,280 --> 00:31:22,950 Така! 03:02 ќе биде вториот аргумент на командата број 3. 439 00:31:22,950 --> 00:31:30,430 На коректорски знак тука во овој израз се залага за првиот аргумент. 440 00:31:30,430 --> 00:31:34,410 Ако не го даде индикација за која команда сте се однесуваат, 441 00:31:34,410 --> 00:31:37,300 тоа се однесува на веднаш претходната команда, 442 00:31:37,300 --> 00:31:41,990 и коректорски знак е симбол за прв аргументот. 443 00:31:41,990 --> 00:31:46,820 Затоа што тоа е коректорски знак, а не број, вие не треба да се користи на дебелото црево, 444 00:31:46,820 --> 00:31:52,660 така! ^ значи првиот аргумент на претходната команда. 445 00:31:52,660 --> 00:31:55,020 А малку измешани тука. 446 00:31:55,020 --> 00:31:58,450 Во овој случај, кога ќе го користи ова како дефиниција алијас, 447 00:31:58,450 --> 00:32:04,650 референца историјата се однесува назад кон команди во кои се користи псевдоним. 448 00:32:04,650 --> 00:32:08,470 Значи ова се случува назад 1 команда како историја операција, 449 00:32:08,470 --> 00:32:11,810 но како алијас операција се однесува на командата во која ќе напишеш, 450 00:32:11,810 --> 00:32:14,780 велат, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Имаме цитати тука во неа. Што е обратна коса црта за? 452 00:32:20,240 --> 00:32:30,810 Во овој случај, како и секаде, не сакаме да се изврши механизам историја 453 00:32:30,810 --> 00:32:33,680 при дефинирање на алијас. 454 00:32:33,680 --> 00:32:37,900 Ако ние не имаат обратна коса црта таму, школка ќе се повлече во првиот аргумент 455 00:32:37,900 --> 00:32:41,870 на командната право пред тој да истрча оваа алијас команда, која ние не сакаме. 456 00:32:41,870 --> 00:32:47,520 Ние сакаме тоа да биде изградена во алијас команда да се јавам во аргумент подоцна. 457 00:32:47,520 --> 00:32:53,550 Единечен наводник не избега фантастичен точка, повикување на историјата. 458 00:32:53,550 --> 00:32:57,450 Можеби знаете изразот бегство значи да го промени значењето на нешто. 459 00:32:57,450 --> 00:33:00,260 Во овој случај, тоа значи да престанат со нешто од тоа да имаат посебно значење. 460 00:33:00,260 --> 00:33:03,030 Посебно значење фантастичен точка е историја. 461 00:33:03,030 --> 00:33:05,790 Избега и тоа не дека имаат значење. 462 00:33:05,790 --> 00:33:08,080 Цитати не го сторат тоа, обратна коса црта прави. 463 00:33:08,080 --> 00:33:11,900 Па ние сме всушност користење на 2 нивоа на бегство тука. 464 00:33:23,500 --> 00:33:29,620 Одам да се движат оваа команда во другиот прозорец без внесување 465 00:33:29,620 --> 00:33:35,210 со користење на овие уредување операции, кои може да најдете корисни. 466 00:33:40,620 --> 00:33:42,460 Нешто друго еве јас ќе ви покажам. 467 00:33:42,460 --> 00:33:46,730 Ако само напишете алијас без аргументи, тоа ви кажува сите ваши аргументи. 468 00:33:46,730 --> 00:33:48,640 Ова е еден куп на адреси јас веќе имал тука 469 00:33:48,640 --> 00:33:53,400 покрај оние кои Јас сум бил користење тука и денес. 470 00:33:53,400 --> 00:34:00,220 Но, ако јас само напишете со името на алијас, тоа ми кажува што значи тоа. 471 00:34:00,220 --> 00:34:03,390 Забележите дека цитати се качил и коса црта е нема. 472 00:34:03,390 --> 00:34:08,620 Оваа низа тука е резултат на тоа алијас дефиниција, 473 00:34:08,620 --> 00:34:12,199 и сега има само! ^ во неа. 474 00:34:12,199 --> 00:34:19,150 Ова се случува да се погледне во датотеката жици за ништо. 475 00:34:19,150 --> 00:34:34,900 Значи, ако го направам grstrings_file жици, јас не го даде ништо да се погледне за таму, 476 00:34:34,900 --> 00:34:37,429 но тоа е во потрага во жици. 477 00:34:37,429 --> 00:34:42,330 Тоа не го најдете зборот стрингови во датотека жици, но тоа не се најде ABC. 478 00:34:42,330 --> 00:34:46,770 И тоа не најдете тоа. 479 00:34:46,770 --> 00:34:52,330 Па еве ние се даваат аргумент дека удира во дефиницијата на алијас, 480 00:34:52,330 --> 00:34:55,530 кој се вметнува во тоа. 481 00:34:55,530 --> 00:34:58,540 Тоа е каде што овој израз доаѓа. 482 00:34:58,540 --> 00:35:00,240 Можете да го користите повеќе од 1. 483 00:35:00,240 --> 00:35:03,170 На коректорски знак е симбол за прв аргумент. 484 00:35:03,170 --> 00:35:07,510 Ако сакаше да го користат вториот аргумент, тогаш би рекол: 2. 485 00:35:07,510 --> 00:35:11,250 Нема посебен симбол за вториот аргумент. 486 00:35:11,250 --> 00:35:14,790 И затоа што сте со користење на бројки, вие ќе треба да се користи на дебелото црево. 487 00:35:14,790 --> 00:35:17,220 Постои, меѓутоа, друг избор тука. 488 00:35:17,220 --> 00:35:21,220 На знакот за долар се залага за последен аргумент. 489 00:35:21,220 --> 00:35:23,320 И бидејќи ова е симбол, можете да ја изостави на дебелото црево. 490 00:35:23,320 --> 00:35:25,870 Па тоа ќе биде последен аргумент во листата. 491 00:35:25,870 --> 00:35:27,900 И таму е исто така, дека една. 492 00:35:27,900 --> 00:35:31,380 Ѕвездичка значи дека сите, така што ова е комплетната аргумент листа, 493 00:35:31,380 --> 00:35:35,150 и повторно, можете да ја изостави на дебелото црево, бидејќи тоа не е броен. 494 00:35:36,970 --> 00:35:39,950 Се надевам дека вие ќе бидете сите набљудување сето тоа. 495 00:35:39,950 --> 00:35:54,100 >> Механизам историја може да се врати на претходните линии во листата на историјата. 496 00:35:54,100 --> 00:36:01,370 Можете да го направите ова во дефиницијата алијас. 497 00:36:01,370 --> 00:36:02,950 Никогаш не сум видел оваа направено. 498 00:36:02,950 --> 00:36:05,840 Тоа ќе има ефект на повлекување порано команди од листата на историјата 499 00:36:05,840 --> 00:36:08,130 кога ќе се изврши алијас, кои би можеле да бидат различни команди 500 00:36:08,130 --> 00:36:11,240 во зависност од тоа кога и каде ќе ја изврши. 501 00:36:11,240 --> 00:36:14,020 Разбирливо можеби ќе сакате да се повлече од такво упатување 502 00:36:14,020 --> 00:36:15,900 само да знаете што претходно команда беше. 503 00:36:15,900 --> 00:36:17,280 Никогаш не сум видел се случи ова. 504 00:36:17,280 --> 00:36:19,970 Претпоставувам дека некој можеби ќе сакате да, но ова е малку веројатно. 505 00:36:19,970 --> 00:36:26,480 Постои уште една работа овде. 506 00:36:26,480 --> 00:36:33,060 Ако користите дека историјата тип референца, 507 00:36:33,060 --> 00:36:38,190 тогаш само аргументите за кои постои такво упатување се користат. 508 00:36:38,190 --> 00:36:42,180 Ако имате дефиниција алијас кој не користи историја тип референца, 509 00:36:42,180 --> 00:36:44,060 ако тоа само станува почетокот на команда 510 00:36:44,060 --> 00:36:46,520 и имате дополнителни аргументи, тогаш ништо што пишувате после тоа 511 00:36:46,520 --> 00:36:48,450 ќе биде додадена на командата. 512 00:36:48,450 --> 00:36:52,040 Во овој случај, на примерот, јас само го даде таму, ние се користи првиот аргумент; 513 00:36:52,040 --> 00:36:54,610 ние не се користи било кој други. 514 00:36:54,610 --> 00:36:57,960 Ако се користат други аргументи биле дадени на командната линија, тие нема да се користи. 515 00:36:57,960 --> 00:37:04,630 Значи, ако користите референца историјата на сите, тогаш ќе мора да го користат за да се добие било аргумент. 516 00:37:04,630 --> 00:37:11,310 >> Има уште една работа тука сакам само да напоменам, делумно parenthetically, 517 00:37:11,310 --> 00:37:15,250 имено дека оваа историја механизам со извичник 518 00:37:15,250 --> 00:37:18,010 оди назад кон оригиналната C-школка. 519 00:37:18,010 --> 00:37:27,060 На tcsh воведе историја операции 520 00:37:27,060 --> 00:37:30,910 кои користат видови на команди и жици од уредници, 521 00:37:30,910 --> 00:37:33,650 или Emacs или VI. 522 00:37:33,650 --> 00:37:36,430 Моето лично мислење е Emacs е многу полесно да се користи за оваа намена 523 00:37:36,430 --> 00:37:39,390 дури и ако VI користите за вашите редовни уредување. 524 00:37:39,390 --> 00:37:43,900 Постојат различни Emacs команди кои сега се прилагодени за историја. 525 00:37:43,900 --> 00:37:46,410 Контрола P добива претходната линија во листата на историјата. 526 00:37:46,410 --> 00:37:48,840 Друга контрола P ќе добиете оној пред тоа. 527 00:37:48,840 --> 00:37:50,540 Стрелка нагоре прави истото. 528 00:37:50,540 --> 00:37:54,190 Контрола N добива следната команда ако веќе сте дошле назад некои начини. 529 00:37:54,190 --> 00:37:55,880 Стрелката надолу го прави тоа. 530 00:37:55,880 --> 00:38:00,480 Можете да се движите лево кон десно со стрелките и разни други работи. 531 00:38:00,480 --> 00:38:02,390 Ова може да се направи употреба на механизмот историја 532 00:38:02,390 --> 00:38:05,070 многу полесно отколку со користење на фантастичен точка синтакса, 533 00:38:05,070 --> 00:38:07,930 но вие не би го користите дека во дефиницијата алијас. 534 00:38:17,780 --> 00:38:20,020 Ќе одиме во текот на овој некое друго време. 535 00:38:24,300 --> 00:38:25,810 >> Променливи. 536 00:38:26,880 --> 00:38:29,510 Знаеш што променливи се во програмски јазици. 537 00:38:29,510 --> 00:38:31,680 Школки нив имаат, исто така. 538 00:38:31,680 --> 00:38:37,350 C-школка користи команда во собата да доделите варијабли, 539 00:38:37,350 --> 00:38:41,360 така што се поставува на променливата а на вредноста на Б - 540 00:38:41,360 --> 00:38:46,390 како што реков, бескорисни дефиниција, но илустрација на тоа како ова се користи. 541 00:38:48,790 --> 00:38:52,410 Множество команда ќе креира променлива ако тоа веќе не постои. 542 00:38:55,270 --> 00:39:02,490 Позиционен параметри за скрипти може да се смета променливи, 543 00:39:02,490 --> 00:39:10,750 но употребата на нив и правила за нив се малку различни. 544 00:39:10,750 --> 00:39:14,320 Вие не може да се додели вредност до $ 1 во текот на скрипта. 545 00:39:14,320 --> 00:39:18,340 Вие ќе треба да се дефинира нова променлива за таа намена дали некои од вас сака. 546 00:39:23,000 --> 00:39:28,470 Вид на Поставување без аргументи и ќе добиете листа на сите тековно дефинирани променливи. 547 00:39:28,470 --> 00:39:34,220 И ајде да се добие во текот на моите други школка тука и да видиме што можеме да добијам ако тоа го правиме. 548 00:39:34,220 --> 00:39:37,110 Доста долга листа таму, нели? 549 00:39:37,110 --> 00:39:40,990 Дојдете до малку. Погледне во сето тоа. 550 00:39:40,990 --> 00:39:44,330 Некои од овие работи се дефинирани автоматски од страна на школка. 551 00:39:44,330 --> 00:39:49,320 Школка создава променлива и тоа му дава вредност. 552 00:39:49,320 --> 00:39:52,730 Некои од нив се дефинирани од страна на школка, но потоа редефинира од страна на корисникот 553 00:39:52,730 --> 00:39:54,820 според неговите желби. 554 00:39:54,820 --> 00:39:59,110 А некои од нив се создадени од страна на корисникот во зависност од она што тој го прави тој ден. 555 00:39:59,110 --> 00:40:01,880 Тоа е само во собата без аргументи. 556 00:40:06,920 --> 00:40:10,050 Има непарен функција овде на оваа работа. 557 00:40:10,050 --> 00:40:17,980 Таму треба да биде или без празни места помеѓу еднаквите знаци и името на променливата 558 00:40:17,980 --> 00:40:23,700 и вредноста или простори на двете страни на еднаквите знаци, 559 00:40:23,700 --> 00:40:28,940 па и во овој. 560 00:40:35,620 --> 00:40:41,340 Ова не ќе работат, и ова всушност е валидна команда 561 00:40:41,340 --> 00:40:43,390 но тоа нема да го направи она што имате намера. 562 00:40:43,390 --> 00:40:50,070 Таа команда ќе работат, бидејќи ако само велат во собата и името на променливата 563 00:40:50,070 --> 00:40:54,890 без еднаквите знаци или во собата и име на променлива со еднаквите знаци и нема вредност, 564 00:40:54,890 --> 00:40:57,770 тоа ќе се постави променлива null вредност. 565 00:40:57,770 --> 00:41:00,120 Па постави = е валидна команда. 566 00:41:00,120 --> 00:41:04,370 Множество команда може да се дефинира повеќе од 1 променливата на иста линија. 567 00:41:04,370 --> 00:41:11,240 Па оваа команда тука има ефект на дефинирање и и b за да null вредности. 568 00:41:11,240 --> 00:41:13,470 Веројатно не она што го сакате. 569 00:41:13,470 --> 00:41:17,940 Овој овде, што споменавме порано, ќе доведе до грешка 570 00:41:17,940 --> 00:41:21,270 бидејќи = b не е валидна израз. 571 00:41:21,270 --> 00:41:23,680 А името на променливата не можат да почнат со знакот еднакви. 572 00:41:26,760 --> 00:41:29,080 И таму се овие дополнителни работи тука. 573 00:41:29,080 --> 00:41:36,820 Колонките беа користени за да изберете аргументи од историјата линии, 574 00:41:36,820 --> 00:41:41,210 и тие може да се користи - и јас не одат во пред - да ги промени тие работи. 575 00:41:41,210 --> 00:41:44,480 Тие, исто така може да се користи за да модифицирате школка променливи. 576 00:41:44,480 --> 00:41:49,050 Овој овде, $ a, има вредност. 577 00:41:49,050 --> 00:41:55,040 : R ќе ги тргнеме продолжување. 578 00:41:55,040 --> 00:41:57,200 Продолжување ќе биде нешто по точка, 579 00:41:57,200 --> 00:41:59,200 точка и ништо следниве тоа на крајот на датотеката, 580 00:41:59,200 --> 00:42:03,230 само на крајот на листата по последниот расцеп. 581 00:42:03,230 --> 00:42:05,480 Па јас го имам тука. 582 00:42:05,480 --> 00:42:10,730 а е тоа. Тоа ќе се намали на. O. 583 00:42:10,730 --> 00:42:16,510 Ако нема продолжување, само pathnames по последната коса црта, тоа нема да имаат ефект. 584 00:42:16,510 --> 00:42:27,480 A: h, таа променлива израз, ќе ги тргнеме на последниот елемент од директориумот листа, 585 00:42:27,480 --> 00:42:29,660 повторно, само по последната коса црта. 586 00:42:29,660 --> 00:42:33,160 Значи / a / b / в станува / А / Б, 587 00:42:33,160 --> 00:42:38,870 но овој е изменета, бидејќи елементот откако на листата е нула. 588 00:42:38,870 --> 00:42:43,070 Тука постои нешто што, исто така, сакам да го истакнам. 589 00:42:43,070 --> 00:42:46,770 Овие квалификациите не го бара за постоењето на овие датотеки. 590 00:42:46,770 --> 00:42:48,910 Тие само се погледне за жици. 591 00:42:48,910 --> 00:42:54,520 Овие се наменети да се манипулира имиња на датотеки, pathnames, 592 00:42:54,520 --> 00:42:57,520 но тие може да се користи на било низа, дури и ако тоа не е името на датотеката. 593 00:42:57,520 --> 00:42:58,920 И тие не изгледаат за постоењето, 594 00:42:58,920 --> 00:43:03,550 па ако нема таква датотека, / a / b / в, ова сè уште ќе работи. 595 00:43:03,550 --> 00:43:06,930 Дали тоа е од било каква употреба е друго прашање, но тоа сè уште ќе работи. 596 00:43:06,930 --> 00:43:12,850 Променливи се различни во Борн школки. Ние ќе дојдеме до тоа подоцна. 597 00:43:12,850 --> 00:43:18,240 Знакот за долар може да се избега исто како извичник и ѕвездичка. 598 00:43:18,240 --> 00:43:21,760 Знакот за долар може да се избега со обратна коса црта или единечен наводник. 599 00:43:21,760 --> 00:43:24,790 Двојни наводници имаат чудни ефект во сите школки 600 00:43:24,790 --> 00:43:28,690 за принудување на евалуација на знакот за долар променлива израз. 601 00:43:28,690 --> 00:43:31,960 Значи, ако тоа е се избегна еден начин, двојни наводници може да има ефект 602 00:43:31,960 --> 00:43:34,380 на предизвикува таа да се оценува во секој случај. 603 00:43:34,380 --> 00:43:37,090 Ова е малку збунувачки. 604 00:43:37,090 --> 00:43:43,740 Ако постојат повеќе нивоа на бегство, како што единечен наводник става во двојни наводници 605 00:43:43,740 --> 00:43:46,770 или двојни наводници внатре единечен наводник, треба да се тестира за да видите што ќе се случи 606 00:43:46,770 --> 00:43:49,520 на променлива, ако сте со користење на еден. 607 00:43:49,520 --> 00:43:53,410 Тие 2 ситуации - двојно внатрешноста на еден, еден во внатрешноста на двојно - 608 00:43:53,410 --> 00:43:55,980 не мора да ви даде истиот резултат. 609 00:44:02,520 --> 00:44:05,600 Животната средина променливи, врзани Ц-школка променливи. 610 00:44:05,600 --> 00:44:08,340 Животната средина променливи се исто така променливи во Ц-школка, 611 00:44:08,340 --> 00:44:11,250 и тие се, исто така, променливи во други школки премногу. 612 00:44:11,250 --> 00:44:15,230 Во Ц-школка, тие се различни комплети. 613 00:44:15,230 --> 00:44:18,130 Она што сум бил велејќи дека пред се за школка променливи. 614 00:44:18,130 --> 00:44:21,300 Животната средина променливи се посебен сет на променливи 615 00:44:21,300 --> 00:44:28,650 со исклучок на неколку променливи што ние го нарекуваме врзани променливи, 616 00:44:28,650 --> 00:44:30,640 кои се многу важни и ние ќе се влезе во оние подоцна. 617 00:44:30,640 --> 00:44:34,950 Животната средина променливи автоматски се пренесат на 618 00:44:34,950 --> 00:44:41,800 да школки или команди кои се извршуваат од вашиот школка. 619 00:44:41,800 --> 00:44:46,220 Други работи не се. Школка променливи, адреси не се. Животната средина променливи се. 620 00:44:46,220 --> 00:44:48,630 Тоа е причината зошто ние ги викаме животната средина променливи, 621 00:44:48,630 --> 00:44:55,030 Идејата е дека животната средина се протега минатото само вашата актуелна школка. 622 00:44:55,030 --> 00:45:00,510 Тие може да се користи да се дефинира работи за команди. 623 00:45:00,510 --> 00:45:05,470 Еве еден пример. Печатач, LPDEST. 624 00:45:05,470 --> 00:45:12,270 И двете од овие променливи може да се дефинира печатач кој командата ќе се користи за печатење работи. 625 00:45:12,270 --> 00:45:16,500 Ако имате повеќе печатари околу, можеби ќе сакате да се стави на еден ви се допаѓа. 626 00:45:16,500 --> 00:45:21,320 Причината имаме 2 променливи е дека различни групи на команди биле напишани 627 00:45:21,320 --> 00:45:23,870 користење на овие различни варијабли. 628 00:45:23,870 --> 00:45:25,910 Можеби ќе им даде различни вредности. 629 00:45:25,910 --> 00:45:28,860 Најверојатно ќе им даде на двете со иста вредност. 630 00:45:28,860 --> 00:45:35,840 Тие работи работат бидејќи команди кои го прават печатење 631 00:45:35,840 --> 00:45:40,740 биле програмирани да ги испита вредности на овие променливи. 632 00:45:42,200 --> 00:45:46,150 Ако програмата не биле напишани на тој начин, ако тоа беа напишани да се направи нешто друго, 633 00:45:46,150 --> 00:45:48,280 променливата ќе биде ирелевантно. 634 00:45:48,280 --> 00:45:52,530 Па на оперативниот систем не е во потрага по овие променливи 635 00:45:52,530 --> 00:45:55,210 секој пат кога ќе се однесува на еден печатач. 636 00:45:55,210 --> 00:45:59,090 А команда која го прави печатењето е во потрага по овие променливи ако тоа е програмиран на тој начин. 637 00:46:11,030 --> 00:46:15,240 Овие променливи често се дефинирани во вашиот иницијализација датотеки 638 00:46:15,240 --> 00:46:19,440 но не е задолжително. 639 00:46:19,440 --> 00:46:21,050 Можете да ги дефинираат на командната линија. 640 00:46:21,050 --> 00:46:24,090 Тие можат да бидат дефинирани во команда. 641 00:46:24,090 --> 00:46:28,740 А команда што тече нешто може да има свој избор на променливи - 642 00:46:28,740 --> 00:46:32,390 променливи кои се уникатни за одредена софтверски пакет, на пример. 643 00:46:32,390 --> 00:46:36,740 Тие ќе бидат дефинирани кога ќе ја стартувате таа пакет. 644 00:46:39,690 --> 00:46:42,680 Како се овие променливи донесен за да под-школка? 645 00:46:42,680 --> 00:46:48,210 Кога под-школка е напишана, таа не пишува во таа област. 646 00:46:48,210 --> 00:46:53,260 Областа на под-школка кој е посветен на животната средина променливи 647 00:46:53,260 --> 00:46:56,450 не е напишана од страна на под-школка, тоа е напишано од страна на копирање. 648 00:46:56,450 --> 00:47:00,530 Кога ќе ја стартувате обична команда, како што се овие команди да се печати или што, 649 00:47:00,530 --> 00:47:03,840 Тие започнете со креирање на нова школка. 650 00:47:03,840 --> 00:47:06,190 Школка создава обвивка и потоа да ги презапишува дел од неа 651 00:47:06,190 --> 00:47:08,800 со командата дека сте водење, што е малку збунувачки, 652 00:47:08,800 --> 00:47:10,740 но тоа е како овие команди се на животната средина променливи 653 00:47:10,740 --> 00:47:14,890 дека тие потоа да се однесува подоцна. 654 00:47:21,920 --> 00:47:28,010 Команда тука за дефинирање на променливи setenv. 655 00:47:28,010 --> 00:47:36,470 Тоа е како да го дефинираат. Тоа е 3 елементи: setenv, променлива, вредноста. 656 00:47:36,470 --> 00:47:44,710 Ако само се setenv без аргументи, она што го добивате? 657 00:47:47,220 --> 00:47:48,810 Листа на сите овие променливи. 658 00:47:48,810 --> 00:47:53,190 Повторно, тоа е убаво, долга листа и во овој случај, како и во другите, 659 00:47:53,190 --> 00:47:57,320 овие променливи се дефинирани во голема мера од моето корисничко име операција од страна на школка самата 660 00:47:57,320 --> 00:47:59,740 а не од ништо што јас направив. 661 00:47:59,740 --> 00:48:03,580 Има уште една команда тука, printenv. 662 00:48:07,520 --> 00:48:10,340 Кој исто така отпечатоци од животната средина. 663 00:48:10,340 --> 00:48:15,240 Забележите ова последното нешто тука, уредник = VI. 664 00:48:15,240 --> 00:48:21,120 Во која се вели дека ако јас сум со користење нешто што го нарекува уредник 665 00:48:21,120 --> 00:48:25,530 и јас не го наведете уредник и ми овозможува избор, тоа може да ми даде VI. 666 00:48:25,530 --> 00:48:37,280 Што ако го направам printenv уредник? Тоа ми кажува што е тоа. 667 00:48:37,280 --> 00:48:41,340 Непосредно пред тоа, имаше променлива, помалку. 668 00:48:41,340 --> 00:48:46,040 Овие се твоите стандардните опции при Трчам помалку команда, 669 00:48:46,040 --> 00:48:49,360 кој прикажува датотеки. 670 00:48:49,360 --> 00:48:55,910 Значи, ако го направи тоа, printenv може да потрае 1 аргумент или 0 аргументи, 671 00:48:55,910 --> 00:48:58,070 не повеќе од 1. 672 00:49:01,800 --> 00:49:05,690 Постојат и други команди, исто така, но ние нема да навлегувам во сето тоа денес. 673 00:49:05,690 --> 00:49:11,010 Се сеќавам имаше изменувачи за школка променливи како што се: H, 674 00:49:11,010 --> 00:49:14,350 кои ќе се откажат од последниот елемент на патеката, 675 00:49:14,350 --> 00:49:17,950 или: R, која ќе се намали продолжување. 676 00:49:17,950 --> 00:49:23,110 Оние кои сега се однесуваат на животната средина променливи премногу. Тие не се користат за. 677 00:49:23,110 --> 00:49:24,960 Се користи за да биде дека не може да биде изменета. Сега тие може да биде. 678 00:49:24,960 --> 00:49:29,190 Тоа е една од напредокот со развојот на настаните на школки во текот на годините. 679 00:49:29,190 --> 00:49:35,620 Бев велејќи дека гранатите, како дел од средини 680 00:49:35,620 --> 00:49:43,040 и школка променливи во Ц-школка се, со некои исклучоци, различни комплети. 681 00:49:43,040 --> 00:49:46,790 Можете да воспостави променлива на околината и школка променлива со исто име. 682 00:49:46,790 --> 00:49:49,220 Тие ќе бидат различни варијабли, тие можат да имаат различни вредности. 683 00:49:49,220 --> 00:49:53,090 Менување на вредноста на еден нема да се промени вредноста на другиот. 684 00:49:53,090 --> 00:49:58,070 Овие променливи се сите оценети со знакот за долар - $ a, $ сеедно. 685 00:49:58,070 --> 00:50:02,340 Па што ако имаш ова? Дали знаете кој ви се добие? 686 00:50:02,340 --> 00:50:04,520 Во мојот тестови добив школка променлива, 687 00:50:04,520 --> 00:50:07,240 но тоа не е документирана и не можете да се потпираат на тоа. 688 00:50:07,240 --> 00:50:10,270 Па јас да ве прашам, е создавање школка и животната средина променливи 689 00:50:10,270 --> 00:50:13,490 со истите имиња е добра идеја? Не Океј. 690 00:50:13,490 --> 00:50:17,460 Кои се тие големи исклучоци во кои животната средина и школка променливи 691 00:50:17,460 --> 00:50:19,860 се поврзани еден со друг? 692 00:50:19,860 --> 00:50:27,470 Постојат овие 4. 693 00:50:32,030 --> 00:50:35,510 Буква РОК променлива на околината, 694 00:50:35,510 --> 00:50:41,540 плаќа променлива мандат во мали букви, тип на терминал емулација. 695 00:50:41,540 --> 00:50:47,430 Јас сум само ќе поминат тука и јас ќе одам да направите ехо, корисна команда тука, 696 00:50:47,430 --> 00:50:52,560 $ $ РОК рок. И таму. 697 00:50:52,560 --> 00:51:00,570 xterm е терминал тип за прозорци прикажани во X Window System. 698 00:51:00,570 --> 00:51:04,330 xterm боја е варијација на тоа што им овозможува на различни бои. 699 00:51:04,330 --> 00:51:06,580 Зошто ни се дефинираат овие? Што е ова добро за? 700 00:51:06,580 --> 00:51:09,740 Команди кои ги преуредите на екранот како уредник 701 00:51:09,740 --> 00:51:13,680 испрати особено секвенци, наречени бегство секвенци, 702 00:51:13,680 --> 00:51:18,160 до терминалот или прозорец да го преуредите и така натаму. 703 00:51:18,160 --> 00:51:20,990 Тие секвенци се различни за различни видови на терминали. 704 00:51:20,990 --> 00:51:23,100 Ова го кои од нив да се користи кажува. 705 00:51:23,100 --> 00:51:25,900 Понекогаш постојат прашања таму. 706 00:51:25,900 --> 00:51:28,600 Можеби ќе сакате да се промени тоа. 707 00:51:28,600 --> 00:51:30,780 Ако работите не се работи, понекогаш терминал тип е поставена погрешно, 708 00:51:30,780 --> 00:51:36,440 може да биде во можност да го исправиме со редефинирање на поимот променлива. 709 00:51:36,440 --> 00:51:43,420 Во овие случаи, менување на една променлива, променливата на околина или школка променлива, 710 00:51:43,420 --> 00:51:45,970 треба да се менува на другиот. 711 00:51:45,970 --> 00:51:50,970 Јас открив преку искуство дека менувањето на терминот во големи букви 712 00:51:50,970 --> 00:51:54,060 не секогаш се менува школка променлива мандат во мали букви. 713 00:51:54,060 --> 00:51:55,550 Ова е грешка во Maxima. 714 00:51:55,550 --> 00:51:59,400 Јас не знам дали тоа е секогаш точно. Поголемиот дел од времето тоа не е точно, но тоа може да биде. 715 00:51:59,400 --> 00:52:02,490 Значи, ако се направи промена, само провери тоа. 716 00:52:02,490 --> 00:52:05,830 Тоа не е често дека треба да се промени таа вредност, но еднаш во некое време ќе се направи. 717 00:52:05,830 --> 00:52:08,260 Променлива на околината КОРИСНИКОТ. 718 00:52:08,260 --> 00:52:12,070 Повторно, променлива на околината со големи букви, школка променлива во мали букви. 719 00:52:12,070 --> 00:52:13,710 Ова е вашето корисничко име. 720 00:52:13,710 --> 00:52:16,730 Тоа е само под многу исклучителни околности 721 00:52:16,730 --> 00:52:18,420 дека вие би сакале да го промени тоа. 722 00:52:18,420 --> 00:52:22,350 Ако вашето корисничко име е некој друг, може да фрли сите видови на работи надвор. 723 00:52:22,350 --> 00:52:26,040 Домашен директориум, домашниот директориум на корисникот. 724 00:52:26,040 --> 00:52:28,060 Повторно, вие не би сакале да го промени тоа. 725 00:52:28,060 --> 00:52:32,260 Известување во сите овие случаи и оној што ние сме за да се покријат, патот променлива, 726 00:52:32,260 --> 00:52:37,070 променлива на околината е со големи букви и врзани школка променлива е со мали букви. 727 00:52:37,070 --> 00:52:39,240 Ако го промените еден, треба да се промени од друга страна. 728 00:52:39,240 --> 00:52:45,960 Овој вид на обврзувачки не може да се утврди како да не може да се врзе 2 променливи, 729 00:52:45,960 --> 00:52:50,570 освен овие 4 и обврзувачки во овие променливи не може да се врати назад, 730 00:52:50,570 --> 00:52:52,090 не можете да ги разделат. 731 00:52:52,090 --> 00:52:55,820 Па овие 4 пара променливи се врзани. 732 00:52:55,820 --> 00:52:59,020 Тие секогаш ќе биде. Никој другите ќе биде. 733 00:52:59,020 --> 00:53:05,720 Покрај тоа, тоа ќе биде можно да се создаде променливи со истите имиња 734 00:53:05,720 --> 00:53:07,780 од спротивниот типови. 735 00:53:07,780 --> 00:53:11,600 Можете да направите школка променлива мандат во мали букви 736 00:53:11,600 --> 00:53:14,990 или променлива на околината мандат во големи букви. 737 00:53:14,990 --> 00:53:19,040 Оние варијабли ќе биде независна од овие поврзан променливи 738 00:53:19,040 --> 00:53:20,780 и тие ќе бидат независни една од друга. 739 00:53:20,780 --> 00:53:23,780 Не можам да замислам зошто вие би го сториле тоа, освен ако не сакате да ги збунуваат луѓето. 740 00:53:24,600 --> 00:53:29,730 Овој овде, патот променлива, ова е навистина важно. 741 00:53:29,730 --> 00:53:35,550 Друга работа тука е дека не може да има случаи 742 00:53:35,550 --> 00:53:40,430 на променливи со слични Спарените имиња кои не се врзани едни на други. 743 00:53:40,430 --> 00:53:45,000 Не може да има променливи, школка и на школка, во главниот град и мали букви. 744 00:53:45,000 --> 00:53:48,300 Врз основа на тоа име, не знам дали таа променлива е школка променлива 745 00:53:48,300 --> 00:53:51,580 или променлива на околината, и тие не се врзани едни со други. 746 00:53:51,580 --> 00:53:55,300 Така што вид на парни имиња не значи врзани променливи. 747 00:53:55,300 --> 00:53:58,830 На патот променлива, што бев покажува пред, 748 00:53:58,830 --> 00:54:01,880 Ова е листа на pathnames во која школка изгледа за команди. 749 00:54:01,880 --> 00:54:12,320 Ајде да се добие во текот на овој прозорец тука и ние ќе се echo $ PATH, големи букви - 750 00:54:12,320 --> 00:54:20,230 променлива на околината - echo $ пат, мали букви - Школка променлива. 751 00:54:20,230 --> 00:54:24,980 Забележите дека листата на директориуми е иста. Овие се врзани. 752 00:54:24,980 --> 00:54:26,590 Промена на еден, да го промените други. 753 00:54:26,590 --> 00:54:32,970 Во променлива на околината елементи се одделени со запирки. Забележите дека. 754 00:54:32,970 --> 00:54:35,130 Школка променливи се одделени со празен простор. 755 00:54:35,130 --> 00:54:38,760 Оваа променлива на околината е еден стринг. 756 00:54:38,760 --> 00:54:41,480 Школка променливата е низа. 757 00:54:41,480 --> 00:54:43,490 Кажи на пријател школка немаа низи. 758 00:54:43,490 --> 00:54:46,600 Баш не, но ова е веќе фиксна дел од школка. 759 00:54:46,600 --> 00:54:48,660 Ова е еден стринг и не низа. 760 00:54:48,660 --> 00:54:50,420 C-школка секогаш има низи. 761 00:54:50,420 --> 00:54:52,630 Низи се многу полесно да се работи со. 762 00:54:52,630 --> 00:54:54,400 Може да се однесува делови од неа. 763 00:54:54,400 --> 00:55:02,350 Па echo $ патот [1] и јас се / usr / bin, првиот елемент. 764 00:55:02,350 --> 00:55:09,950 Повторно, се сеќавам знакот за долар се залага за последниот елемент од листата на историјата. 765 00:55:09,950 --> 00:55:16,850 Што се случува таму? Се обиде да се најде знакот за долар како променлива симбол. 766 00:55:16,850 --> 00:55:20,850 Јас го избегаат. Упс. Тоа не би се ни тоа. 767 00:55:20,850 --> 00:55:23,690 Некои од овие работи не работат толку добро. 768 00:55:23,690 --> 00:55:28,140 Можеби ние само ќе го оставиме тоа надвор. 769 00:55:28,140 --> 00:55:36,980 Ѕвездичка се однесува на целата работа, но тоа е она што ќе добиете ако не се определи елемент. 770 00:55:36,980 --> 00:55:46,170 Друг начин на кој низа варијабли може да се манипулира, 771 00:55:46,170 --> 00:55:49,500 број на елементи таму, 7 елементи. 772 00:55:49,500 --> 00:55:53,410 Еве ние се стави на фунтата знак пред името на променливата. 773 00:55:53,410 --> 00:55:58,280 Еве уште еден. Стави знак прашалник таму. 774 00:55:58,280 --> 00:56:03,170 Тоа е логичен вредност. Тоа укажува дека променливата постои. 775 00:56:03,170 --> 00:56:05,160 Тоа е уште еден начин на работа со променливи. 776 00:56:05,160 --> 00:56:06,660 Дека, патем, не мора да биде низа променлива. 777 00:56:06,660 --> 00:56:08,210 Тоа би можело да биде било променлива. 778 00:56:08,210 --> 00:56:11,840 И ако го направам, не постои такво променлива и да се добие 0. 779 00:56:11,840 --> 00:56:14,990 Уште малку нешто таму за променлива оценки. 780 00:56:23,670 --> 00:56:32,950 Назад кон овој овде, ако поради некоја причина сакав да работам со ова 781 00:56:32,950 --> 00:56:37,990 Наместо да работат со низа, школка променлива, 782 00:56:37,990 --> 00:56:41,470 постојат команди кои можат да се издвојат овие работи врз основа на дебелото црево. 783 00:56:41,470 --> 00:56:44,080 Всушност, ако си оди за да се прави ова во баш школка можеби, 784 00:56:44,080 --> 00:56:47,110 некој вид на скрипта, тоа ќе биде веројатно како ќе го направи тоа. 785 00:56:47,110 --> 00:56:50,350 Но, во Ц-школка тоа е многу полесно да се користи низа. 786 00:56:50,350 --> 00:56:58,250 Во Борн школка, променливи се доделуваат од страна на еден израз вака, 787 00:56:58,250 --> 00:57:01,760 како начин може да се додели на променлива во програмскиот јазик, 788 00:57:01,760 --> 00:57:05,110 и тука мора да има празни места. 789 00:57:05,110 --> 00:57:09,110 Тоа е потребно тоа да биде само 1 стринг. 790 00:57:09,110 --> 00:57:14,980 Во Борн тип школки, сите променливи се школка променливи. 791 00:57:14,980 --> 00:57:19,250 Животната средина променливи се подмножество на школка променливи. 792 00:57:19,250 --> 00:57:24,060 Тие се разликуваат од не-животната средина променливи, со извоз. 793 00:57:24,060 --> 00:57:28,860 Команда за да го направите тоа е извозот, како извозот печатач. 794 00:57:28,860 --> 00:57:34,930 Ако ние требаше да се дефинира како променлива, 795 00:57:34,930 --> 00:57:38,480 ако сакаме печатење команда за да го најдете, тоа ќе мора да биде променлива на околината, 796 00:57:38,480 --> 00:57:40,730 а тоа е како ние го еден. 797 00:57:40,730 --> 00:57:42,090 Тука има нешто вид на збунувачки. 798 00:57:42,090 --> 00:57:50,430 Овој израз, извоз на животната средина, произлегува од овој Bourne школката концепт, 799 00:57:50,430 --> 00:57:54,520 а сепак тој израз се користи во описот на C-школка, 800 00:57:54,520 --> 00:57:57,920 каде што не постои таква команда како извоз. 801 00:57:57,920 --> 00:58:06,200 Ако речеме извоз по себе, ќе добиете листа на извезените - 802 00:58:06,200 --> 00:58:10,620 Значи, ако јас само не извезува тука, нема такво нешто. 803 00:58:13,620 --> 00:58:15,200 Добро, да одиме. 804 00:58:15,200 --> 00:58:17,010 Овие работи, патем, исто така, се дефинирани од страна на школка. 805 00:58:17,010 --> 00:58:19,400 Јас не се дефинира некоја од овие од мене. 806 00:58:19,400 --> 00:58:23,550 Школка прави сите видови на работи од себе. 807 00:58:23,550 --> 00:58:26,650 Тоа треба да се прават работите автоматски. 808 00:58:30,240 --> 00:58:36,880 Во баш или Korn школката, можете да го извршите командата вака, 809 00:58:36,880 --> 00:58:42,000 кој и двете ќе им даде променлива вредност и извоз во 1 команда. 810 00:58:42,000 --> 00:58:46,150 Во Борн школка тие мора да бидат посебни команди како извозно. 811 00:58:46,150 --> 00:58:48,410 Тука е уште еден аспект што е збунувачки. 812 00:58:48,410 --> 00:58:52,220 Множество команда во Ц-школка дефинира променливи 813 00:58:52,220 --> 00:58:55,550 и без аргументи ти го кажува она вредности на променливи "се. 814 00:58:55,550 --> 00:59:01,140 Во баш школка, множество командата без аргументи го прави истото, 815 00:59:01,140 --> 00:59:03,580 но со аргументи тоа го прави нешто сосема друго. 816 00:59:03,580 --> 00:59:06,200 Значи овие се различни аргументи тука. 817 00:59:06,200 --> 00:59:10,460 Некои од овие се животната средина променливи, некои од нив се школка променливи. 818 00:59:10,460 --> 00:59:13,200 Сите од нив се школка променливи навистина. Некои од оние кои се на животната средина променливи. 819 00:59:15,690 --> 00:59:23,920 Множество команда со аргументи може да се користи за да работат 820 00:59:23,920 --> 00:59:28,220 на позиционен параметри на сценариото, 821 00:59:28,220 --> 00:59:33,910 што е начин на добивање на сите нив одеднаш. 822 00:59:33,910 --> 00:59:36,150 Ние навистина не може да оди во таа денес. 823 00:59:36,150 --> 00:59:39,580 Таа, исто така може да се користи за промена на школка однесување. 824 00:59:39,580 --> 00:59:46,700 Особено во баш постојат променливи кои ќе се утврди како школка се однесува. 825 00:59:46,700 --> 00:59:51,310 Потоа, исто така, само оваа команда која може да видите, оваа команда. 826 00:59:51,310 --> 00:59:59,050 Typeset проследено со променливи и променлива видови се користи во Korn и баш лушпи. 827 00:59:59,050 --> 01:00:04,970 Тоа не е задолжително, но тоа може да се користи за да се ограничи вредности на променливи, 828 01:00:04,970 --> 01:00:08,400 кој може да биде корисно за да се спречи грешки, и тоа е прилично честа појава. 829 01:00:08,400 --> 01:00:11,640 Па јас сум само се спомене дека во случај да го видите некаде. 830 01:00:17,290 --> 01:00:19,160 Команда каде. 831 01:00:19,160 --> 01:00:22,490 Запомни што споменав порано, каде што командата во Ц-школка, 832 01:00:22,490 --> 01:00:28,750 кои можат да ви ја каже локацијата на командата патеката. 833 01:00:28,750 --> 01:00:32,580 Тука е команда замена. 834 01:00:32,580 --> 01:00:41,900 Треба да се најде на вашата тастатура некаде лик што личи ова. 835 01:00:41,900 --> 01:00:44,910 Локацијата на тастатурата се случува да се разликуваат. 836 01:00:44,910 --> 01:00:47,050 Ние го нарекуваме backquote. Тоа е со големина на понуда. 837 01:00:47,050 --> 01:00:48,720 Тоа оди од горниот лев да долниот десен. 838 01:00:48,720 --> 01:00:52,690 Тука на мојот Mac тастатура тоа е во горниот лев агол. 839 01:00:52,690 --> 01:00:58,150 Дека карактерот може да се користи за да се изврши командата во команда. 840 01:00:58,150 --> 01:01:03,400 Ако имате израз внатре backquotes, 841 01:01:03,400 --> 01:01:07,080 тој израз е команда, тоа е се кандидира. 842 01:01:07,080 --> 01:01:09,010 На излез од таа команда 843 01:01:09,010 --> 01:01:11,980 потоа се замена за целата backquote израз 844 01:01:11,980 --> 01:01:16,110 внатре подолг команда која потоа бега со тоа излез 845 01:01:16,110 --> 01:01:22,010 како дел од својата низа на аргументи и така натаму. 846 01:01:22,010 --> 01:01:28,640 Тука е команда која користи тоа. 847 01:01:28,640 --> 01:01:32,340 Ајде да се демонстрира работата овде. 848 01:01:44,980 --> 01:01:49,090 Ајде да одиме до тука, извадете ја backquotes. 849 01:01:49,090 --> 01:01:54,410 Контрола на мене добива на почетокот на линијата со Emacs уредување синтакса. 850 01:01:54,410 --> 01:02:00,380 Досега pathnames е она од каде доаѓа, 851 01:02:00,380 --> 01:02:05,040 но кога ќе го направите вака, тогаш приклучоци во таа листа на pathnames 852 01:02:05,040 --> 01:02:08,750 во местото на целата оваа backquote изразување и работи ls-l на нив. 853 01:02:08,750 --> 01:02:11,120 Вид на удобен, нели? 854 01:02:11,120 --> 01:02:14,860 Па тоа е една уредни нешто. Тоа е како backquotes работа. 855 01:02:14,860 --> 01:02:17,560 Сега, ајде да одиме надолу малку понатаму. 856 01:02:17,560 --> 01:02:22,050 Овие се адреси. Јас всушност ги користат овие. 857 01:02:22,050 --> 01:02:26,410 Ќе се обидам да го добивате ова во со 1 уредување операција. 858 01:02:34,900 --> 01:02:36,900 Во ред. 859 01:02:36,900 --> 01:02:39,630 Сега да видиме како тие дефиниции излезе. 860 01:02:39,630 --> 01:02:44,930 алијас LWH ми кажуваше како се дефинирани. 861 01:02:44,930 --> 01:02:51,210 Забележите тоа е само ова, но надворешниот цитати се земени од 862 01:02:51,210 --> 01:02:53,750 и извичник е симната. 863 01:02:53,750 --> 01:02:58,940 ! *, Комплетната листа на сите аргументи. 864 01:02:58,940 --> 01:03:03,580 Во дефиницијата алијас тој ќе се однесува назад кон каде јас го користам ова. 865 01:03:03,580 --> 01:03:10,620 LWH ksh баш. Во ред. 866 01:03:10,620 --> 01:03:13,960 Види како тоа функционира? Тоа ме спасува некои пишување. 867 01:03:13,960 --> 01:03:16,440 Ајде да одиме до малку само да споменам нешто друго овде. 868 01:03:19,150 --> 01:03:23,120 Забележи овие различни школки. Јас треба да ги спомнав ова и порано. 869 01:03:23,120 --> 01:03:36,060 На csh има 2 ваму и така / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Ние може да се утврди со други средства дека тие се всушност една иста датотека. 871 01:03:39,870 --> 01:03:43,150 Се сеќавам што реков, ако сте тип sh ќе добиете баш. 872 01:03:43,150 --> 01:03:47,390 Тип тоа и ќе го добиете ова. 873 01:03:47,390 --> 01:03:51,730 Но тие не се поврзани. Оние кои имаат една од нив таму. 874 01:03:51,730 --> 01:03:54,910 И ова не е вид на датотека која може да се јавите друг. 875 01:03:54,910 --> 01:03:59,460 Па оние се одвоени датотеки; C-школка од нив се иста датотека. 876 01:03:59,460 --> 01:04:03,640 Врати долу тука, другиот тука, овој алијас, 877 01:04:03,640 --> 01:04:09,090 се напомене дека е трчање оваа команда, датотека. 878 01:04:09,090 --> 01:04:13,810 Дека алијас работи тоа. Датотека ви кажува типот на датотека. 879 01:04:13,810 --> 01:04:20,330 Па fwh ksh баш. Во ред. 880 01:04:20,330 --> 01:04:23,230 Тоа е излез на датотека команда. 881 01:04:23,230 --> 01:04:24,630 Јас не знам дали знаеш што тоа значи тука, 882 01:04:24,630 --> 01:04:26,750 Мах-О универзална бинарни со 2 архитектури. 883 01:04:26,750 --> 01:04:30,470 Постојат 2 можни видови процесор во Mac, 884 01:04:30,470 --> 01:04:34,780 и некои програми се напишани за да може да работи со двете, 885 01:04:34,780 --> 01:04:37,950 и датотеката команда може да се утврди тоа, па тоа е она што ова значи. 886 01:04:37,950 --> 01:04:40,660 И двете од овие датотеки се напишани на тој начин. 887 01:04:40,660 --> 01:04:43,760 Значи можеме да видиме колку алијас работи, можеме да видиме колку backquote работи, 888 01:04:43,760 --> 01:04:48,640 можеме да видиме колку вистински датотека ЛС или датотека работи. 889 01:04:52,050 --> 01:04:57,000 Ова не би можеле да работат. Се обиде ", каде што" и "LWH каде". Океј, ајде да се обидеме тоа. 890 01:04:57,000 --> 01:05:01,040 каде каде. 891 01:05:01,040 --> 01:05:03,500 каде е школка вграден. 892 01:05:03,500 --> 01:05:06,970 Се сеќавам порано покажавме дека баш немаа каде. 893 01:05:06,970 --> 01:05:10,080 Ако го напишете каде во баш школка, ќе добиете порака за грешка. 894 01:05:10,080 --> 01:05:12,540 Тоа е само дел од школка наместо да биде посебен команда. 895 01:05:12,540 --> 01:05:20,000 Што се случува ако сум тип LWH во потрага за каде? Погледнете што се случува таму. 896 01:05:20,000 --> 01:05:22,850 Трчаше каде каде, добив оваа излез, а потоа се обиде да се кандидира ls 897 01:05:22,850 --> 01:05:25,600 како l за тоа каде е школка вграден. 898 01:05:25,600 --> 01:05:28,790 каде е таму, но останатите не постојат. 899 01:05:28,790 --> 01:05:32,090 Ниту еден од овие постојат, всушност. 900 01:05:32,090 --> 01:05:35,560 Така што не е секогаш работа, а исто така покажува како некои работи 901 01:05:35,560 --> 01:05:39,580 не прават доста она што може да си помисли. 902 01:05:40,930 --> 01:05:43,010 Ајде да одиме надолу малку понатаму тука. 903 01:05:44,890 --> 01:05:54,760 Ова овде е во баш. Тоа е, исто така, команда замена како backquote. 904 01:05:54,760 --> 01:06:05,280 Но, за разлика backquote, го користи оваа променлива стил. 905 01:06:05,280 --> 01:06:09,860 Постојат голем број на изрази кои почнуваат со знакот за долар, 906 01:06:09,860 --> 01:06:16,070 и додека тие не се променливи, тие позајмени употребата на знакот за долар 907 01:06:16,070 --> 01:06:19,570 за да се покаже израз на некој вид. 908 01:06:19,570 --> 01:06:23,550 Кои можат да бидат опкружени со загради или загради или двојно загради, 909 01:06:23,550 --> 01:06:26,320 која има различна намена. 910 01:06:26,320 --> 01:06:29,500 Една голема заграда еве команда замена исто како backquotes. 911 01:06:29,500 --> 01:06:32,720 Двојно загради е всушност аритметичка операција. 912 01:06:32,720 --> 01:06:35,380 Постојат и други syntaxes, други операции. 913 01:06:35,380 --> 01:06:41,520 Backquote синтакса е достапен во баш. 914 01:06:41,520 --> 01:06:46,780 Сепак, ова е подобро. Тоа е многу полесно да се чита и тоа им овозможува на вгнездување. 915 01:06:46,780 --> 01:06:51,300 Ќе може да има внатре $ (команда) друга команда, 916 01:06:51,300 --> 01:06:54,590 нешто како - 917 01:07:14,560 --> 01:07:18,210 Јас добиете листа таму. 918 01:07:18,210 --> 01:07:21,670 Кои ќе работат ако имав backquote, исто така. 919 01:07:32,050 --> 01:07:38,470 Што ако сакам да направам нешто како - 920 01:08:03,390 --> 01:08:06,430 Вие веројатно нема да всушност ќе ја користите оваа команда, 921 01:08:06,430 --> 01:08:14,160 но овој внатрешен команда замена одекнува имињата на сите датотеки почетокот со, 922 01:08:14,160 --> 01:08:18,229 тогаш оваа тече ls-l на овие фајлови, 923 01:08:18,229 --> 01:08:20,500 а потоа и оваа само одекнува излез. 924 01:08:21,729 --> 01:08:24,479 Вие веројатно нема да го направите ова, вие само ќе го направи ехо или ls, 925 01:08:24,479 --> 01:08:29,450 но ова илустрира како вгнездување на команди работи. 926 01:08:29,450 --> 01:08:34,380 Па само уште една карактеристика тука. 927 01:08:34,380 --> 01:08:37,450  Јас спомнав ова порано, дека кога ќе имаат каде во Ц-школка, 928 01:08:37,450 --> 01:08:42,770 тип работи во Борн тип школки за лоцирање на команди. 929 01:08:48,939 --> 01:08:52,270 Вграден во командите, само она што јас го кажувам таму. 930 01:08:52,270 --> 01:08:54,640 Команди се дел од школка, како, каде. 931 01:08:54,640 --> 01:08:59,880 Кога граната ја извршува командата како ls, таа ја лоцира преку патот, 932 01:08:59,880 --> 01:09:03,029 смета дека во некои директориум некаде, 933 01:09:03,029 --> 01:09:05,800 се вели дека во меморијата, создава нова школка, 934 01:09:05,800 --> 01:09:08,960 чита на командата ls или што во школка 935 01:09:08,960 --> 01:09:11,450 каде на животната средина променливи се веќе лоцирани, 936 01:09:11,450 --> 01:09:14,000 а потоа ја пренесува извршување на него. 937 01:09:14,000 --> 01:09:18,319 Вграден во командата, на код за таа команда е во внатрешноста на школката, 938 01:09:18,319 --> 01:09:21,460 па школка само почнува извршување на дел од сопствената код. 939 01:09:21,460 --> 01:09:24,569 каде што е толку команда. Тоа всушност добива побрзо. 940 01:09:24,569 --> 01:09:28,380 Тоа не мора да се прочита нешто во меморијата, тоа е веќе во меморијата. 941 01:09:28,380 --> 01:09:32,460 Вграден во командите секогаш имаат предност пред команди со истото име. 942 01:09:32,460 --> 01:09:36,050 Команди, кои се во директориуми во патеката може да имаат исто име, 943 01:09:36,050 --> 01:09:39,090 команди во различни директориуми, датотеки во различни директориуми. 944 01:09:39,090 --> 01:09:41,740 Оној кој се јавува во почетокот на патот е оној што ќе добие. 945 01:09:41,740 --> 01:09:43,770 Ако има вграден во командата, може секогаш да го добие. 946 01:09:43,770 --> 01:09:47,890 Не постои начин да го даде пониска предност од командата на патот. 947 01:09:47,890 --> 01:09:54,140 Ако сакате да се добие тој пат команда, можете да напишете целосна патеката. 948 01:09:54,140 --> 01:09:55,850 Ако имало команда, каде што на патот некаде, 949 01:09:55,850 --> 01:09:58,440 можете да пишувате / bin / каде и што би го добие. 950 01:09:58,440 --> 01:10:01,800 Ако не сакате да напишете целата патека, би можеле да се дефинираат алијас. 951 01:10:01,800 --> 01:10:06,310 Всушност, ако даде алијас истото име како вграден во команда, таа ќе работи 952 01:10:06,310 --> 01:10:08,790 затоа што дефиницијата алијас се оценува 953 01:10:08,790 --> 01:10:13,220 пред школка утврди дека тоа е вграден во команда која треба да се изврши. 954 01:10:18,810 --> 01:10:23,440 Тогаш ова добива малку повеќе комплицирано со некои команди тука. 955 01:10:23,440 --> 01:10:29,880 Случај на некои команди се всушност вграден во командите и во патот. 956 01:10:29,880 --> 01:10:34,140 Еден од нив е ехо, командата јас само се користи пред малку во оние примери. 957 01:10:34,140 --> 01:10:37,410 Ехото е команда во патека и тоа е во секој школка. 958 01:10:37,410 --> 01:10:40,580 Тие не мора да сите се однесуваат на ист начин. 959 01:10:40,580 --> 01:10:42,970 Тоа беше првично команда само во патеката. 960 01:10:42,970 --> 01:10:45,280 Таа била изградена во со школки подоцна. 961 01:10:45,280 --> 01:10:48,080 Бидејќи постојат опции кои зависат врз животната средина 962 01:10:48,080 --> 01:10:52,970 и опции на командната линија, вграден во командите 963 01:10:52,970 --> 01:10:57,030 беа напишани за да функционираат исто како команда, кои биле во патот, 964 01:10:57,030 --> 01:10:59,670 тоа е малку веројатно тие би биле напишани на тој начин 965 01:10:59,670 --> 01:11:01,720 ако командата не се веќе напишани за патот. 966 01:11:01,720 --> 01:11:06,180 Па ова има несакани ефекти. Нејзината историја има ефекти тука. 967 01:11:06,180 --> 01:11:08,380 Постојат опции таму. 968 01:11:14,280 --> 01:11:23,060 Исто така постои и опција дефинира со променлива во tcsh наречен echo_style. 969 01:11:23,060 --> 01:11:27,700 Тоа е една од овие променливи кои може да го промени начинот на кој ехо дела. 970 01:11:27,700 --> 01:11:30,910 Постојат и други случаи во кои можете да го доделите променлива 971 01:11:30,910 --> 01:11:36,290 која го менува начинот на кој школка операција, вклучувајќи вграден во командата, работи. 972 01:11:36,290 --> 01:11:38,130 Тоа нема да влијае на нешто друго 973 01:11:38,130 --> 01:11:40,640 бидејќи другите команди немаат пристап до школка променливи, 974 01:11:40,640 --> 01:11:42,090 само на животната средина променливи. 975 01:11:42,090 --> 01:11:45,360 Но школка операции може да се прочита на школка променливи. 976 01:11:45,360 --> 01:11:50,710 Дека нема да работат за csh. Тоа е само tcsh. Тоа е една од додатоци. 977 01:11:58,540 --> 01:12:04,620 Парсирање има секвенци кога го евалуира metacharacters, 978 01:12:04,620 --> 01:12:08,140 кога го евалуира променливи, адреси, историјата референци. 979 01:12:08,140 --> 01:12:11,830 Постои одредена секвенца за овие работи. 980 01:12:11,830 --> 01:12:13,730 Ако тоа не работи во одредена секвенца 981 01:12:13,730 --> 01:12:16,080 и добива нешто што е израз на еден вид 982 01:12:16,080 --> 01:12:20,650 кој е веќе оценува, не ќе ја разгледаат повторно. 983 01:12:20,650 --> 01:12:24,520 Ако тоа го добива, тогаш само ќе го поминат на карактери. 984 01:12:24,520 --> 01:12:29,920 Значи, ако евалуација на некои изрази како команда замена 985 01:12:29,920 --> 01:12:36,850 или променлива или што доведува до израз 986 01:12:36,850 --> 01:12:39,240 кои вие би сакале да се оценува, 987 01:12:39,240 --> 01:12:42,510 дека ќе работи само ако таа процена се јавува подоцна во низа. 988 01:12:42,510 --> 01:12:45,010 Се надевам дека јас сум се јасни таму. 989 01:12:45,010 --> 01:12:50,460 Дека парсирање низа, операцијата во Ц-школка, 990 01:12:50,460 --> 01:12:56,490 не е иста за вградување во команди како што е за не-вграден во командите. 991 01:12:56,490 --> 01:12:58,890 Јас не сум сигурен за баш таму. 992 01:12:58,890 --> 01:13:02,450 На пример, ако школка променлива произведе упатување историја, 993 01:13:02,450 --> 01:13:04,230 тоа најверојатно нема да се вратиме во историјата. 994 01:13:04,230 --> 01:13:06,010 Тоа само ќе добиете фантастичен точка. 995 01:13:06,010 --> 01:13:08,840 Всушност, ние само може да се обидете дека од сега. 996 01:13:09,720 --> 01:13:18,240 постави = и ние ќе треба да се стави ова во таму. 997 01:13:30,690 --> 01:13:34,580 О, чекај. Жал. Го направив ова во баш. Сакав да го направите тука. 998 01:13:53,470 --> 01:13:56,080 Види, па тоа не се оцени дека референтноста историја 999 01:13:56,080 --> 01:14:00,520 затоа што тоа е веќе минато за точка на оценување историја изрази 1000 01:14:00,520 --> 01:14:02,720 кога го оценува променлива. 1001 01:14:02,720 --> 01:14:05,550 Па тоа е 1 ефектот на парсирање. 1002 01:14:05,550 --> 01:14:08,760 И повторно, вграден во командите не се прави на истиот начин. 1003 01:14:08,760 --> 01:14:11,230 Во ред е. Ајде да одиме на следниот тука. 1004 01:14:11,230 --> 01:14:16,060 Ова е со намера да биде 1 линија, но тоа е што го прави полесно за читање. 1005 01:14:19,130 --> 01:14:21,530 Што значи дека направам? 1006 01:14:21,530 --> 01:14:28,640 Може да се потсетиме дека ние може да се оцени звезди како името на датотеката знаци, 1007 01:14:28,640 --> 01:14:33,890 а постојат и други фајлот џокери како прашалник и заградата изрази. 1008 01:14:33,890 --> 01:14:39,000 Овој вид на евалуација се нарекува globbing. 1009 01:14:39,000 --> 01:14:46,290 постави noglob на почетокот на оваа команда вели дека не го направите тоа. 1010 01:14:46,290 --> 01:14:53,370 размести noglob вели вратиш да го прават тоа. 1011 01:14:53,370 --> 01:14:56,440 Имајте на ум дека сет Глобално не би имале таков ефект. 1012 01:14:56,440 --> 01:15:00,800 Во обичниот јазик, во собата Глобално или размести noglob би се чини дека се еднакви, 1013 01:15:00,800 --> 01:15:03,290 но тука тоа не е. Тоа е размести noglob. 1014 01:15:05,120 --> 01:15:07,910 Сега tset. tset застана за терминал во собата. 1015 01:15:07,910 --> 01:15:11,840 Тоа не се користи, кои често сега, но пред windowing системи станаа достапни 1016 01:15:11,840 --> 01:15:15,760 и сте имале еден терминал, можеби ќе треба да се утврди видот. 1017 01:15:15,760 --> 01:15:18,700 И ако нешто доаѓа преку Ethernet или од мрежата, 1018 01:15:18,700 --> 01:15:21,120 можеби ќе сакате да се каже дека тоа е VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 е вид на стандарден во терминал бизнис. Таа доаѓа од декември терминал. 1020 01:15:26,630 --> 01:15:35,270 Ако само го прават dialup - забележите дека? Ова оди назад начини, нели? 1021 01:15:35,270 --> 01:15:39,520 Значи, ако ние само се tset овде, 1022 01:15:39,520 --> 01:15:45,250 ако јас само го направи tset, тоа е ресетирам мојот терминал, но ти не гледам ништо. 1023 01:15:45,250 --> 01:15:47,340 Тоа навистина не менува ништо. 1024 01:15:47,340 --> 01:15:48,620 -ОК 1025 01:15:49,900 --> 01:15:51,480 Во ред. 1026 01:15:51,480 --> 01:15:53,350 setenv РОК xterm боја. 1027 01:15:53,350 --> 01:15:57,080 Ние веќе знаеме дека терминот беше поставен на тој начин, така што не се промени. 1028 01:15:57,080 --> 01:15:58,860 Тоа е начинот на кој ние би сакале да го направи тоа. 1029 01:15:58,860 --> 01:16:07,080 Но да се забележи дека оваа команда, tset-а, само излез овие команди. Тоа не ги извршувате. 1030 01:16:07,080 --> 01:16:09,770 Тоа не се кандидира на овие команди, тоа излез нив. 1031 01:16:09,770 --> 01:16:13,650 Значи ова е наменето за производство на команди кои потоа ќе биде извршена. 1032 01:16:13,650 --> 01:16:16,360 Се сеќавате на командата во таа датотека јас само покажа сте имале П во неа. 1033 01:16:16,360 --> 01:16:18,910 Па ајде направите тоа. 1034 01:16:18,910 --> 01:16:23,750 На П потиснува некои излез, но тоа не е важно тука, како што може да се види. 1035 01:16:23,750 --> 01:16:27,980 Јас сум само тоа го прават за да ви покаже дека тоа не е важно. 1036 01:16:27,980 --> 01:16:31,870 Ова е во backquote синтакса. 1037 01:16:31,870 --> 01:16:35,340 Обрнете внимание на backquote тука, backquote тука. 1038 01:16:35,340 --> 01:16:37,680 Јас сум изоставување овие работи тука. 1039 01:16:37,680 --> 01:16:39,570 Овие случаи на раскажување тоа што да прави 1040 01:16:39,570 --> 01:16:42,050 во случај на одредени типови на терминали - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, мрежа, дајл-ап, она што го имате. 1042 01:16:45,400 --> 01:16:48,050 Тоа не е важно тука, бидејќи ние не сме всушност прави ниту една од овие работи. 1043 01:16:48,050 --> 01:16:49,720 Јас сум само илустрација на команда. 1044 01:16:49,720 --> 01:16:55,170 Ако го направам ова со backquote, што сум јас ќе добијам? 1045 01:16:55,170 --> 01:17:00,210 Исто така забележуваме дека тука ова вклучува сет noglob и размести noglob, 1046 01:17:00,210 --> 01:17:02,630 па тие се сега излишни во дефиницијата. 1047 01:17:02,630 --> 01:17:05,380 Тоа не беше секогаш точно, но сега тие се вклучени во оваа команда. 1048 01:17:05,380 --> 01:17:08,890 Но, ајде да видиме што се случува ако го направам тоа 1049 01:17:08,890 --> 01:17:12,570 и да одат во почетокот на линијата со контрола на А и јас го правам тоа. 1050 01:17:14,380 --> 01:17:18,040 Океј, во собата: Командата не е пронајдена. Тоа е вид на чудно, не е тоа? 1051 01:17:18,040 --> 01:17:20,570 собата е добро позната команда. Тоа е дел од школка. 1052 01:17:20,570 --> 01:17:24,040 во собата: Командата не е пронајдена? Зошто е тоа така? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Добро, ајде да размислиме за ова. 1054 01:17:26,790 --> 01:17:31,100 Тоа е водење на команда замена backquote, 1055 01:17:31,100 --> 01:17:37,430 и што се случува во одреден дел од редоследот на парсирање на командата. 1056 01:17:37,430 --> 01:17:40,360 собата е вграден во команда. 1057 01:17:40,360 --> 01:17:43,900 Па од време го прави тоа командата замена, 1058 01:17:43,900 --> 01:17:48,280 тоа е веќе добиле минатото точка на идентификација вграден во командите. 1059 01:17:48,280 --> 01:17:51,900 Па тоа го третира постави како да е команда во патот. 1060 01:17:51,900 --> 01:17:55,440 Непотребно е да се каже, тоа не го најде и ќе добиете грешка. 1061 01:17:55,440 --> 01:17:59,300 Добро. Има еден пример за парсирање низа. 1062 01:17:59,300 --> 01:18:01,460 И што ќе правиме со тоа? 1063 01:18:01,460 --> 01:18:04,800 Забележите ова многу интересни команда тука, eval. 1064 01:18:04,800 --> 01:18:06,530 Се прашувам што тоа го прави. 1065 01:18:06,530 --> 01:18:08,760 Ако се погледне на прирачникот - и ајде да го направите тоа 1066 01:18:08,760 --> 01:18:12,000 да се покаже колку е збунувачки овие прирачници се - 1067 01:18:12,000 --> 01:18:19,400 човек tcsh, збунети прирачник, наоѓање на работите тука не е лесно или. 1068 01:18:19,400 --> 01:18:31,850 Еве ќе одиме, eval ARG, па можеме да имаат 1 или повеќе аргументи 1069 01:18:31,850 --> 01:18:34,090 и таму е листа на работи таму. 1070 01:18:34,090 --> 01:18:37,730 Третира аргументи како влезови на школка 1071 01:18:37,730 --> 01:18:43,600 и извршува како резултат на команди во контекст на тековната школка. 1072 01:18:43,600 --> 01:18:46,900 Ова обично се користи за извршување на команди генерирани како резултат на командата 1073 01:18:46,900 --> 01:18:51,310 или променлива замена бидејќи анализирањето случува пред овие измени. 1074 01:18:51,310 --> 01:18:52,580 Многу добар. 1075 01:18:52,580 --> 01:18:54,740 И тука тие дури и се однесуваат на tset команда за употреба примерок 1076 01:18:54,740 --> 01:18:57,700 како оној јас само ти го покажав. 1077 01:18:57,700 --> 01:19:00,440 Сега морам да го добиете прозорец назад кон корисна место. 1078 01:19:03,150 --> 01:19:07,800 Ајде да се овде и ќе видиме дека eval се користи само пред тоа. 1079 01:19:07,800 --> 01:19:14,010 Да видиме што ќе се случи ако се стави - тука ќе одиме со стрелките за таа команда 1080 01:19:14,010 --> 01:19:20,940 и контрола А до почетокот, eval. 1081 01:19:20,940 --> 01:19:22,850 Океј, па тоа функционира. 1082 01:19:22,850 --> 01:19:26,440 Кога ќе го направите eval, потребно она што доаѓа по неа и го прави команда. 1083 01:19:26,440 --> 01:19:29,460 Ова ви овозможува да суштина го анализирам двапати. 1084 01:19:29,460 --> 01:19:33,710 Делот тука тече оваа команда во внатрешноста на backquotes, 1085 01:19:33,710 --> 01:19:36,210 добива на излез. 1086 01:19:36,210 --> 01:19:42,850 Излез би требало да се кандидира како тие заповеди тука како овие 1087 01:19:42,850 --> 01:19:45,890 во овој еден и оваа. 1088 01:19:45,890 --> 01:19:50,100 Па оние команди се сега тука, во овој редослед, 1089 01:19:50,100 --> 01:19:58,950 но тие се вградени во команди и тоа не може да ги добие веднаш. 1090 01:19:58,950 --> 01:20:06,440 Значи одиме на eval, eval зема дека до почнува целата работа сите одново, и тоа функционира. 1091 01:20:06,440 --> 01:20:18,460 Пример двете backquoting, eval, парсирањето, последиците од парсирањето, 1092 01:20:18,460 --> 01:20:21,910 и команда што е веројатно на многу малку се користи за вас денес. 1093 01:20:21,910 --> 01:20:25,540 Во ред. Добро, umask. 1094 01:20:25,540 --> 01:20:32,160 Да ги погледнеме на оваа команда тука, umask 022. Се прашувам што тоа го прави. 1095 01:20:32,160 --> 01:20:38,420 Ајде само напишете umask со ништо по него. 22. Во ред. 1096 01:20:38,420 --> 01:20:44,350 022 и го направи тоа повторно. 1097 01:20:44,350 --> 01:20:48,580 Како што може да претпоставам, umask без аргументи ви кажува тековната маска; 1098 01:20:48,580 --> 01:20:51,760 umask со аргументи го прави тоа, но тоа беше една јас веќе. 1099 01:20:51,760 --> 01:20:53,800 Што значи 022 значи? 1100 01:21:01,650 --> 01:21:07,080 Овие се тука заштита за датотека. 1101 01:21:07,080 --> 01:21:11,440 Тие се утврди кој е дозволено да прочита или запише или извршување на датотеката. 1102 01:21:11,440 --> 01:21:16,560 Заштита се викаат исто така дозволи. 1103 01:21:16,560 --> 01:21:21,390 На R се залага за читање, на w за запишување, 1104 01:21:21,390 --> 01:21:25,500 и x, кој не е присутен таму, стои за да се изврши. 1105 01:21:25,500 --> 01:21:27,260 Постојат 3 категории таму. 1106 01:21:27,260 --> 01:21:33,540 Последните 3 елементи се во категоријата на корисникот. Оние се однесуваат на мене, корисникот. 1107 01:21:33,540 --> 01:21:36,870 Овие 3 тука се применуваат за групата. 1108 01:21:36,870 --> 01:21:41,590 Датотеката спаѓа во групата 1, корисникот може да припаѓа на повеќе групи, 1109 01:21:41,590 --> 01:21:47,150 но ако корисникот не е во групата на која припаѓа оваа датотека, 1110 01:21:47,150 --> 01:21:51,090 тогаш овие заштита ќе се применуваат за него ако тој не е на корисникот. 1111 01:21:51,090 --> 01:21:54,230 И овој е и секој друг. 1112 01:21:55,540 --> 01:21:57,690 Овие категории се взаемно исклучиви. 1113 01:21:57,690 --> 01:21:59,750 Заштита на корисникот однесуваат на него, 1114 01:21:59,750 --> 01:22:03,780 заштита на групата се однесува на членовите на групата, освен на корисникот, 1115 01:22:03,780 --> 01:22:08,110 и други заштита се применуваат само на луѓето, освен на корисникот и на членовите на групата. 1116 01:22:08,110 --> 01:22:12,320 Ако има r или AW или X, тоа значи дека се дава заштита. 1117 01:22:12,320 --> 01:22:13,950 Ако има цртичка, тоа значи дека не е. 1118 01:22:13,950 --> 01:22:16,690 Таму всушност се други работи кои може да се стави тука покрај овие, 1119 01:22:16,690 --> 01:22:18,350 која јас нема да навлегувам во моментов. 1120 01:22:18,350 --> 01:22:24,450 На umask дефинира стандардно за датотеки што ќе се создаде. 1121 01:22:24,450 --> 01:22:28,580 И како маска, во основа се вели на битови кои не сте поставиле. 1122 01:22:28,580 --> 01:22:30,450 Како го овој стане битови? 1123 01:22:30,450 --> 01:22:33,240 Ако мислите дека на секоја од овие како Octal број, 1124 01:22:33,240 --> 01:22:42,120 ова е 1s малку, ова е 2s, ова е 4S. 1125 01:22:42,120 --> 01:22:45,840 Па од 0 до 7 1126 01:22:45,840 --> 01:22:51,770 ќе се опише она комбинација на на r, w, и на x имате за овие 3 1127 01:22:51,770 --> 01:22:53,710 а потоа слични број за овие, а потоа за нив. 1128 01:22:53,710 --> 01:23:12,030 Па 022 значи 0 за други, 2 за групата, 2 за корисникот. 1129 01:23:12,030 --> 01:23:15,870 Но, ова е маска. Маската е она што го немаат. 1130 01:23:19,380 --> 01:23:20,610 Жал ми е. Јас само ви даде работи во погрешна цел. 1131 01:23:20,610 --> 01:23:25,620 Тоа е првиот 3. Овие 3 се корисник, овие 3 се група на овие 3 се другите. 1132 01:23:25,620 --> 01:23:27,970 Жал ми е што ти дал овие во погрешна цел. 1133 01:23:27,970 --> 01:23:31,910 0, кој е прв од оние, не се покажува вредноста, 1134 01:23:31,910 --> 01:23:35,430 но ако бројот не е таму, тоа е 0. 1135 01:23:35,430 --> 01:23:38,370 Тоа значи дека сите 3 на овие ќе им биде дозволено. 1136 01:23:38,370 --> 01:23:41,550 Забележи дека во овој конкретен еден х не е дозволено. 1137 01:23:41,550 --> 01:23:44,090 Причината е во тоа што на школката е способен за одредување 1138 01:23:44,090 --> 01:23:46,260 дали датотеката треба да се изврши или не. 1139 01:23:46,260 --> 01:23:49,800 Бидејќи ова не е извршна датотека, тоа не се постави на x. 1140 01:23:49,800 --> 01:23:54,000 2 значи дека дозвола за запишување, втората категорија тука, 1141 01:23:54,000 --> 01:23:56,500 една во средината, е одбиен. 1142 01:23:56,500 --> 01:23:58,500 Па уште еднаш, ова се работи кои го негираше тоа. 1143 01:23:58,500 --> 01:24:02,080 Па, x е дозволено, но не е тука, бидејќи тоа не е извршна 1144 01:24:02,080 --> 01:24:04,260 и слично за другите. 1145 01:24:04,260 --> 01:24:08,880 Па тоа е заеднички umask. 1146 01:24:08,880 --> 01:24:14,630 Уште една честа една е 700 - си даде сè и никој друг ништо. 1147 01:24:14,630 --> 01:24:17,040 А постојат и други можности. 1148 01:24:21,340 --> 01:24:27,110 Јас ќе се вратам на тоа. Користење на историјата јас може да се бара назад за тоа, LWH до таму. 1149 01:24:27,110 --> 01:24:30,210 Во ред. Па еве, овие се школки. 1150 01:24:30,210 --> 01:24:36,020 Баш, сопственикот, кој е систем сметка, може да се направи сè. 1151 01:24:36,020 --> 01:24:41,210 Група и секој друг може да го направи чита или извршување, но не пишува. 1152 01:24:41,210 --> 01:24:44,570 Оваа една дури и не им овозможи на сопственикот да пишува на него. 1153 01:24:44,570 --> 01:24:46,460 Ако сопственикот сака да пишува на него, системот сметка, 1154 01:24:46,460 --> 01:24:48,020 тој ќе мора да се промени на заштита во прв план. 1155 01:24:48,020 --> 01:24:53,940 Но, повторно, umask одредува default со маскирање неа, 1156 01:24:53,940 --> 01:24:57,160 со наведување на битови кои нема да бидат поставени. 1157 01:24:57,160 --> 01:25:04,380 Ова е обично во една од вашите иницијализација додадени фајлови, што е. Cshrc за C-школка 1158 01:25:04,380 --> 01:25:07,500 или профил на. за Bourne-тип школки. 1159 01:25:07,500 --> 01:25:12,520 Тоа може да биде на друго место, исто така, ако постојат други иницијализација датотеки на системот. 1160 01:25:12,520 --> 01:25:14,610 Впрочем, тоа е umask. 1161 01:25:14,610 --> 01:25:18,180 Има нешто вид на чудно тука, 1162 01:25:18,180 --> 01:25:22,800 а тоа е, зошто е таму една единствена команда за ова? 1163 01:25:22,800 --> 01:25:28,690 Ако јас пишувам ова, јас би го променлива, umask = некои вредност направи. 1164 01:25:28,690 --> 01:25:31,100 Зошто има целата команда само за оваа намена? 1165 01:25:31,100 --> 01:25:34,560 Причината е тоа само оди назад во однос на потеклото на Unix. 1166 01:25:34,560 --> 01:25:41,050 UNIX е само некои програмски проект во Bell Labs во почетокот на 1970-тите. 1167 01:25:41,050 --> 01:25:42,610 Луѓето едноставно се собраа заедно да програма. 1168 01:25:42,610 --> 01:25:45,290 Тие никогаш не се наменети да стане светски оперативен систем. 1169 01:25:45,290 --> 01:25:47,250 Различни луѓе, пишува различни делови, без размислување многу 1170 01:25:47,250 --> 01:25:49,790 за тоа како тие се случува да се користи - наместо површни. 1171 01:25:49,790 --> 01:25:53,290 И дојде заедно како што и тоа е уште како што во некои аспекти. 1172 01:25:53,290 --> 01:25:57,930 Така што се одразува на историјата, и се уште има овие недоследности и чудни елементи на неа. 1173 01:25:57,930 --> 01:26:00,750 Во ред. Следниот тука. 1174 01:26:08,170 --> 01:26:11,000 Како што напишав порано, C-школка не е навистина користи многу за програмирање, 1175 01:26:11,000 --> 01:26:12,420 иако тоа може да биде. 1176 01:26:12,420 --> 01:26:15,080 Се извршува побавно, повторно трампа помеѓу интерактивна употреба, 1177 01:26:15,080 --> 01:26:17,820 која има повеќе процесорска вклучени од брзината, 1178 01:26:17,820 --> 01:26:20,710 кои можат да сторат без обработка. 1179 01:26:20,710 --> 01:26:28,320 Екстра функции додадени на Bourne школката од Korn и Bourne-повторно школки 1180 01:26:28,320 --> 01:26:32,120 не чини да ги успори, и не знам зошто тоа е. 1181 01:26:32,120 --> 01:26:36,310 Тоа само може да биде подобро за програмирање, но јас не сум во позиција да знаеш. 1182 01:26:36,310 --> 01:26:40,420 Забрза тука, всушност, не е толку голема работа, иако тоа се споменува. 1183 01:26:40,420 --> 01:26:43,690 Причината е во тоа скрипти всушност прилично брзо. 1184 01:26:43,690 --> 01:26:46,450 Ако има многу команди како во calculational програма, 1185 01:26:46,450 --> 01:26:49,110 најверојатно не би го сторил во школка скрипта. 1186 01:26:49,110 --> 01:26:51,450 На нивните операции таму се прилично едноставна и јасна. 1187 01:26:51,450 --> 01:26:53,960 Оние кои сум искусен кои се премногу бавно 1188 01:26:53,960 --> 01:26:57,110 вклучат повтори апликации на бавен команди. 1189 01:26:57,110 --> 01:27:00,480 Претходно споменав поток уредник сед. Таа команда е бавен. 1190 01:27:00,480 --> 01:27:03,760 Ако ја извршите сед многу пати, ќе добиете бавно скрипта, но тоа не е школка тоа е бавен. 1191 01:27:03,760 --> 01:27:07,920 Вклучување на тоа во Борн школка не ќе биде многу побрзо отколку трчање во Ц-школка, 1192 01:27:07,920 --> 01:27:10,070 иако има можеби некои предности таму. 1193 01:27:10,070 --> 01:27:12,760 Дополнителни програмирање можности, од друга страна, 1194 01:27:12,760 --> 01:27:17,920 се значајни причини зошто би го користите на Bourne-тип школки. 1195 01:27:17,920 --> 01:27:21,390 Ц-школка има чудно опции за неа - 1196 01:27:21,390 --> 01:27:25,250 фактот дека не се знае дали некоја променлива е школка променлива или променлива на околината. 1197 01:27:25,250 --> 01:27:27,440 Тоа може да биде многу збунувачки. 1198 01:27:27,440 --> 01:27:32,170 Тоа не е толку лесно да се напише 1199 01:27:32,170 --> 01:27:35,930 само врз основа на вашето искуство на програмирање на други јазици. 1200 01:27:35,930 --> 01:27:41,350 Мислам дека може да се најдат на Bourne-тип школки повеќе во согласност со вашето искуство. 1201 01:27:43,730 --> 01:27:49,270 Некои скрипти, сепак, може да има илјадници линии во должина. 1202 01:27:49,270 --> 01:27:52,450 Оние што сум ги видел се користат за амандман оперативни системи. 1203 01:27:52,450 --> 01:27:55,450 Оние може да се изврши многу бавно, но вие не се кандидира оние многу често. 1204 01:27:55,450 --> 01:27:57,180 Тоа е само кога правиш амандман, 1205 01:27:57,180 --> 01:27:59,450 и тоа е само систем менаџер, кој прави тие работи, 1206 01:27:59,450 --> 01:28:01,840 па тоа не е навистина многу на ова прашање. 1207 01:28:01,840 --> 01:28:06,980 Оние кои се стотици линии долги всушност се изврши релативно брзо. 1208 01:28:06,980 --> 01:28:10,540 Се спомне овој тука, она што се оние подобрувања? 1209 01:28:10,540 --> 01:28:13,170 Јас веќе спомнав неколку од нив - низи, пресметки, 1210 01:28:13,170 --> 01:28:20,540 на $ () изразот за пресметките во баш школка, 1211 01:28:20,540 --> 01:28:23,050 друг вид на командата супституција. 1212 01:28:23,050 --> 01:28:25,360 Постојат различни видови на тестирање команди 1213 01:28:25,360 --> 01:28:29,350 со кој можете да направите со условен тестови за постоење на датотека или други работи. 1214 01:28:29,350 --> 01:28:34,790 Трае тука, оваа команда тука. 1215 01:28:34,790 --> 01:28:38,480 Што значи тоа го прават, и зошто некој би го користам? 1216 01:28:51,170 --> 01:28:52,990 printenv variablename. 1217 01:28:52,990 --> 01:28:56,130 Ние знаеме што printenv прави. Таа ни кажува вредноста на променливата. 1218 01:28:56,130 --> 01:29:00,850 И printenv variablename нема да ни кажете многу многу, бидејќи не постои такво променлива. 1219 01:29:03,550 --> 01:29:05,120 Празно. 1220 01:29:05,120 --> 01:29:08,440 Но, ајде да го даде нешто значајно. 1221 01:29:13,420 --> 01:29:16,800 Тоа не е таму. Во ред. Претпоставувам дека никогаш дефинирано тоа. 1222 01:29:16,800 --> 01:29:18,020 Ајде да се провери мојата околина. 1223 01:29:18,020 --> 01:29:20,900 Ова е уште една команда со која можете да прегледате вашиот животната средина. 1224 01:29:20,900 --> 01:29:24,470 Постои старите добри уредник, една видовме досега. 1225 01:29:42,360 --> 01:29:44,120 Што значи дека направам? 1226 01:29:44,120 --> 01:29:48,050 Тука имаме backquote изразување. 1227 01:29:48,050 --> 01:29:50,370 Се сеќавам ова е C-школка. 1228 01:29:50,370 --> 01:29:54,850 Па printenv УРЕДНИК ќе ни даде вредност на уредник. Тоа е VI. 1229 01:29:54,850 --> 01:29:59,790 И тогаш тоа ќе ја постави таа вредност на променливата а, во собата команда. 1230 01:29:59,790 --> 01:30:02,860 Па сега, ако го направам ехо долари, да се добие VI. 1231 01:30:02,860 --> 01:30:05,850 Тоа не изгледа страшно корисни. 1232 01:30:05,850 --> 01:30:08,080 Сепак, тоа всушност не имаат цел. 1233 01:30:08,080 --> 01:30:12,260 Бидејќи ние не знаеме дали променлива е школка променлива или променлива на околината 1234 01:30:12,260 --> 01:30:16,280 со користење на знакот за долар евалуација синтакса, можеме да го користиме printenv 1235 01:30:16,280 --> 01:30:19,460 да бидете сигурни дека тоа е променлива на околината. 1236 01:30:19,460 --> 01:30:22,550 Значи, ако имаше школка променлива уредник, ова не би го добиле. 1237 01:30:22,550 --> 01:30:25,640 Ова работи само со променливата на околина. 1238 01:30:25,640 --> 01:30:28,370 Дали имало школка променлива и сакав неговата вредност, 1239 01:30:28,370 --> 01:30:29,980 Би мора да се најде друг начин да го направи тоа. 1240 01:30:29,980 --> 01:30:33,530 Еден начин да се направи тоа ќе биде со правење собата и цевки. 1241 01:30:33,530 --> 01:30:36,130 Ова е еден од metacharacters, специјални знаци. 1242 01:30:36,130 --> 01:30:38,370 Тоа праќа излезот на сет на нешто друго. 1243 01:30:38,370 --> 01:30:40,650 Ајде да видиме што ние може да се најдат таму. 1244 01:30:40,650 --> 01:30:49,340 Ништо. Во ред. Ајде да видиме што е таму сите заедно. 1245 01:30:49,340 --> 01:30:53,580 Тоа беше echo_style, оној што споменав порано. Океј, ајде да го направите тоа. 1246 01:31:02,460 --> 01:31:06,230 Се сеќавам веќе напоменав претходно, echo_style 1247 01:31:06,230 --> 01:31:08,410 определува начинот на ехо команда ќе се кандидира. 1248 01:31:08,410 --> 01:31:10,940 BSD се залага за Беркли Стандардна Дистрибуција. 1249 01:31:10,940 --> 01:31:13,200 Ова е Беркли Unix од 1970-тите. 1250 01:31:13,200 --> 01:31:16,630 Тоа е еден од начините на кои ехо може да работи. 1251 01:31:16,630 --> 01:31:22,310 Поставување echo_style на таа вредност во ТЦ-школка ќе предизвика ехо да се однесуваат на тој начин. 1252 01:31:22,310 --> 01:31:27,670 Па постави прави тоа, но во собата само добива школка променливи. 1253 01:31:27,670 --> 01:31:35,430 Тоа нема да најдеш уредник, кој не е школка променлива. 1254 01:31:36,870 --> 01:31:38,050 Ништо. 1255 01:31:38,050 --> 01:31:39,660 Значи тоа е еден начин на правење разлика нив. 1256 01:31:39,660 --> 01:31:42,000 Но, фактот дека треба да се оди преку некои чудни команда, како што 1257 01:31:42,000 --> 01:31:45,500 да се направи разлика помеѓу школка променливи или животната средина променливи 1258 01:31:45,500 --> 01:31:49,970 покажува оној вид на практично природа на C-школка за некои цели. 1259 01:31:52,290 --> 01:31:57,960 И сега, последната и можеби најмалку важно, ова е човекот страници. 1260 01:31:57,960 --> 01:32:03,190 Оние на кои што можеби знаете, човекот е команда краток за прирачник. 1261 01:32:03,190 --> 01:32:08,610 Човекот страници за школки се тешко да се прочита. Тие се многу долго. 1262 01:32:08,610 --> 01:32:14,060 Тие се организирани на начин кој може да е тешко да се најде она што го барате. 1263 01:32:14,060 --> 01:32:15,980 Значи, ако сте во потрага за нешто со цел, 1264 01:32:15,980 --> 01:32:20,050 Вие не може да знае дали таа намена е школка променлива или нешто друго, 1265 01:32:20,050 --> 01:32:21,630 така да не може да знае каде да се погледне за неа. 1266 01:32:21,630 --> 01:32:25,030 Можете да барате различни жици, но конците често се повторуваат. 1267 01:32:25,030 --> 01:32:27,640 Така што е генерално е тешко да се прочита. 1268 01:32:27,640 --> 01:32:33,810 Ние само погледна на ТЦ-школка човек страница малку пред да се најде на eval команда. 1269 01:32:33,810 --> 01:32:36,610 Некои работи оди побрзо. 1270 01:32:36,610 --> 01:32:38,860 Еден начин е да пребарувате за низа. 1271 01:32:38,860 --> 01:32:40,360 Можете да го користите пејџер. 1272 01:32:40,360 --> 01:32:49,080 Пејџер има коса црта да се погледне за команда или стринг во внатрешноста на пејџер операција. 1273 01:32:49,080 --> 01:32:52,830 Човек стандардно ќе го користи скокачот на работни површини, или да биде повеќе или помалку. 1274 01:32:52,830 --> 01:32:56,560 Јас не знам дали сте запознаени со нив, но тие можат да покажат датотеки малку од малку. 1275 01:32:56,560 --> 01:33:00,550 Сум бил со користење на помалку за да се прикаже овие посебни датотеки имаме тука. 1276 01:33:00,550 --> 01:33:03,300 Можете да пребарувате внатре таму. 1277 01:33:03,300 --> 01:33:04,880 Може да се обидете со користење на различни пребарување жици. 1278 01:33:04,880 --> 01:33:08,420 Исто така човек страници во различни оперативни системи не може да биде ист. 1279 01:33:08,420 --> 01:33:11,130 Тие можат да бидат одделни страници за csh и tcsh. 1280 01:33:11,130 --> 01:33:14,500 Тие не се на Mac, но тие би можеле да бидат ако тие се посебни команди. 1281 01:33:14,500 --> 01:33:19,000 Ако sh навистина не се јавите баш, веројатно ќе биде посебен човек страница. 1282 01:33:19,000 --> 01:33:25,820 Некои системи имаат посебен човек страници само за C-школка вграден во командите. 1283 01:33:25,820 --> 01:33:30,250 Понекогаш, ако сакате да го прочитате описот на вграден во команда 1284 01:33:30,250 --> 01:33:35,350 тоа е, исто така, во патот, како ехо, треба да го прочитате човек страница на таа команда на ехо 1285 01:33:35,350 --> 01:33:37,610 за да се утврди како ќе функционира како вграден во команда 1286 01:33:37,610 --> 01:33:39,760 дури и ако не се повикуваат на вградениот команда. 1287 01:33:41,630 --> 01:33:46,090 Тоа е недостаток на оперативни систем во целина, не само за школки, 1288 01:33:46,090 --> 01:33:50,710 иако за школки особено човекот страници се прилично долга, 1289 01:33:50,710 --> 01:33:56,180 делумно затоа што тие додадов корисни функции за нив, што може да биде позитивен. 1290 01:33:56,180 --> 01:34:00,290 Во ред. Дали постојат било какви прашања? Секое теми сакате да се донесе до? 1291 01:34:00,290 --> 01:34:03,390 Ништо релевантни тука? 1292 01:34:04,540 --> 01:34:07,100 Па, тоа е многу убаво да разговараат со сите вас. 1293 01:34:07,100 --> 01:34:09,690 Се надевам дека ќе имам нешто од овој семинар 1294 01:34:09,690 --> 01:34:13,080 кои ќе бидат корисни за вас во својата иднина потфати. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]