1 00:00:00,000 --> 00:00:02,320 >> [Семинар - Уник Гранате, окружења] 2 00:00:02,320 --> 00:00:04,180 [Даглас Клајн - Универзитет Харвард] 3 00:00:04,180 --> 00:00:07,160 [Ово је ЦС50. - ЦС50.ТВ] 4 00:00:07,160 --> 00:00:12,770 >> Данашња тема је Уник љуска. 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 >> Оригинални шкољка за Уник је Боурне схелл. 11 00:00:44,500 --> 00:00:46,450 Боурне је написана Б-О-У-Р-Н-Е. 12 00:00:46,450 --> 00:00:49,770 Боурне је био један од оригиналних аутора Уник, 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 Један је Ц-схелл. Команда је цсх. 56 00:03:34,520 --> 00:03:36,830 Назив Ц-шкољка је само игра речи. 57 00:03:36,830 --> 00:03:41,260 Ова шкољка је уведен са Беркелеи Уник у средином 1970-их. 58 00:03:41,260 --> 00:03:44,830 Беркли Уникс је била догадјај у развоју Уник. 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 је да Ц-љуска има неке карактеристике у њему који личе на језик Ц, 62 00:03:56,490 --> 00:03:59,740 који Боурне схелл нема - 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 Ово је надскуп Ц-схелл. 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 Међутим, Ц-љуска се не користе често за схелл програмирање. 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 Фраза Ц-љуска је сада двосмислен, јер то може односити само на оригиналном Ц-Схелл, цсх, 80 00:04:57,320 --> 00:05:01,200 или да све Ц-граната, укључујући тцсх. То је мало двосмислено. 81 00:05:01,200 --> 00:05:08,250 >> Касније граната је Корн схелл, КСХ, назван по програмера, Корн. 82 00:05:08,250 --> 00:05:14,160 Ова шкољка је покушао да уграде у 1 љуске 83 00:05:14,160 --> 00:05:16,960 предности Ц-схелл за интерактивну употребу 84 00:05:16,960 --> 00:05:19,230 и Боурне схелл за програмирање. 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 поново игра речи, Боурне-Агаин Схелл. 88 00:05:35,290 --> 00:05:43,830 То је продужетак Боурне схелл. Корн схелл је такође. Обојица су. 89 00:05:43,830 --> 00:05:48,100 Она има исте циљеве Корн љуске од амалгаматинг Ц-љуска је 90 00:05:48,100 --> 00:05:50,980 и предности у љусци 1 Боурне Схелл. 91 00:05:50,980 --> 00:05:56,810 Многи од побољшања на Корн омотача су такође укључени у Басх. 92 00:05:56,810 --> 00:06:00,710 Басх, међутим, има више и због тога је пожељно. 93 00:06:00,710 --> 00:06:05,180 Боурне-Агаин Схелл и Корн схелл називају Борнов типа гранате 94 00:06:05,180 --> 00:06:07,730 јер они укључују Тхе Боурне схелл-а карактеристике, 95 00:06:07,730 --> 00:06:11,180 који су неспојиви у неким аспектима са Ц-граната. 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 Да је постала повезана са Линуком је још један разлог да се воле басх да КСХ 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 Боурне схелл скрипте треба да раде под Корн љуске или Басх. 111 00:07:21,330 --> 00:07:22,650 Ако пишете нешто за Боурне схелл, 112 00:07:22,650 --> 00:07:26,180 вероватно да га изврши под КСХ или басх. 113 00:07:26,180 --> 00:07:30,610 Корн схелл скрипте ће вероватно покренути под Басх, али ја не могу да гарантујем. 114 00:07:30,610 --> 00:07:36,040 Касније овде, Ц-схелл скрипте треба да раде под ТЦ-шкољке. 115 00:07:38,850 --> 00:07:41,690 Ц-љуска је заправо никада није интензивно користи за скриптовање 116 00:07:41,690 --> 00:07:48,110 пошто Боурне схелл и касније Борнов типа гранате су биле боље за ту сврху. 117 00:07:48,110 --> 00:07:50,620 Тако да заиста није толико важно. 118 00:07:50,620 --> 00:07:53,480 Постоји доста Боурне схелл скрипти које су написане давно, 119 00:07:53,480 --> 00:07:56,860 пре Корн схелл или Боурне-Агаин Схелл уведене су. 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 То је већ проширен на Виндовс и на ВМС. 125 00:08:17,580 --> 00:08:20,440 ВМС, у случају да не знате, је власнички оперативни систем 126 00:08:20,440 --> 00:08:25,480 од Дигитал Екуипмент Цорпоратион која је још увек у употреби, углавном иза сцене. 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 Такође, зато што датотека Путање и библиотеке разликују 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 Требало би да будете у стању да га преместите између различитих Уник, Линук 136 00:08:54,440 --> 00:08:59,020 Мац ОС оперативни системи, али не нужно на Виндовс или ВМС. 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 да све различите гранате сам поменуо - Боурне схелл, Ц-схелл, 143 00:09:23,570 --> 00:09:29,880 ТЦ-љуска, Корн схелл, Боурне-Агаин Схелл - биће доступан у оквиру једног Уник 144 00:09:29,880 --> 00:09:33,750 или Линук или Мац ОС рачунар. 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 да се односи на Арг1, 161 00:10:42,160 --> 00:10:45,890 $ 2, који ће доћи на тај начин, Арг2. 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 Имајте на уму да је то прецизира у путање, / бин / басх. 180 00:11:56,750 --> 00:12:02,870 Ако рачунар има басх схелл, али не у бин директоријум, / бин, то неће радити. 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 Као што сам рекао, то не може бити исто место / бин. 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 Ако користите граната Спецификатор линију као што је / бин / басх 195 00:13:03,940 --> 00:13:07,070 и та граната није доступан тамо, 196 00:13:07,070 --> 00:13:10,680 не постоји таква ствар као / бин / басх на том рачунару, 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 и овај има функцију која вам омогућава да обезбеди различите путањама. 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 авк, који је језик обрада образац; 222 00:14:39,900 --> 00:14:43,680 и перл, врло високо развијена скриптинг језик. 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 Перл је веома способан. Сед је уредник. То могу да раде ствари изван једноставно уређивање. 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 Дакле, у тим случајевима, са авк или сед, то је, барем у мом искуству, 230 00:15:15,030 --> 00:15:18,910 боље да напише схелл сцрипт и позива авк или сед из схелл скрипта 231 00:15:18,910 --> 00:15:24,660 уместо позивања авк или сед као скрипта спецификатором линије. 232 00:15:24,660 --> 00:15:26,980 Перл је веома разноврсна језик, као што сам рекао. 233 00:15:26,980 --> 00:15:30,050 Ви не можете да покренете интерактивне команде у Перл, 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 То је само мало од загради напомену о пројектанта линије. 239 00:15:45,720 --> 00:15:50,610 >> У свим или већини облика Линук - опет, ја не могу да будем сигуран да је све - 240 00:15:50,610 --> 00:15:57,900 и у Мац ОС, ако откуцате цсх добијате тцсх, 241 00:15:57,900 --> 00:16:00,570 и ако откуцате сх ти басх. 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 Ако пишете сценарио користећи тцсх или басх собе док називајући цсх или сх 245 00:16:16,720 --> 00:16:22,230 а затим покушајте да га покренете на рачунару који нема тцсх или басх, 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 називајући га као сх или цсх а затим добијање напредније гранате. 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 Како је утврђено да ако откуцате сх ти басх, 253 00:16:50,290 --> 00:16:55,580 ако откуцате цсх ти Тсцх? 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 фајл сх, 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 Неки од вас су можда чули за ПОСИКС стандард или други, 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 Позивање га као сх или басх може заправо довести до другачијег извршење 272 00:18:22,170 --> 00:18:25,300 чак и ако је то исти фајл који сте извршење. 273 00:18:25,300 --> 00:18:31,800 Још једна ствар коју треба узети у обзир је да чак и ако други рачунар има тцсх или басх, 274 00:18:31,800 --> 00:18:35,310 ако нису повезани, јер су на локалном рачунару 275 00:18:35,310 --> 00:18:37,990 ако имате Линук или Мац ОС локални рачунар, 276 00:18:37,990 --> 00:18:45,630 онда опет ћете добити гранату коју зову СХ или цсх, а не онај који можда више волите. 277 00:18:50,430 --> 00:19:01,130 Садашњи Боурне схелл има побољшања мањи од оних у Басх 278 00:19:01,130 --> 00:19:06,100 али поред оних у оригиналном Боурне схелл. 279 00:19:06,100 --> 00:19:09,690 Као резултат тога, чак и струја Боурне схелл, сх, 280 00:19:09,690 --> 00:19:14,560 чак и када то није басх, подсећа Ц језик више него Ц-схелл ради. 281 00:19:14,560 --> 00:19:20,460 То није била истина, када је први пут створио Ц-љуска, али она се развила на тај начин. 282 00:19:20,460 --> 00:19:26,560 Ви ћете приметити овде да сви ови називи љуске осим за Боурне схелл 283 00:19:26,560 --> 00:19:30,640 Имам нешто да укаже који су љуска - цсх, басх - 284 00:19:30,640 --> 00:19:32,550 али Боурне схелл је само ш. 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 Последње поље, као што можете да видите, је Бин / тцсх, граната. 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 Када Уникс је прво развијен, било је само 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 Та врста лозинка фајла линија је колико ја знам користи на свим Уник и Линук рачунарима. 307 00:21:12,780 --> 00:21:14,650 Мац има свој систем. 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 Још једна напомена у загради тамо. 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 Неке ствари ће бити исти. Да ли ми говори моје команде. 320 00:22:19,540 --> 00:22:24,500 Ако ја не суспендује вратим у Ц-љуске, лс, исто. Зар не? 321 00:22:24,500 --> 00:22:28,890 ФГ, првом плану, назад на моју Басх схелл. 322 00:22:28,890 --> 00:22:38,290 пвд, текући директоријум, назад у Ц-схелл. 323 00:22:38,290 --> 00:22:43,180 пвд, различит именик - заправо не разликује директоријум у овом случају. 324 00:22:43,180 --> 00:22:45,110 То је исти директоријум. 325 00:22:45,110 --> 00:22:50,000 Рецимо ја желим да овде позове команду: где ли. 326 00:22:50,000 --> 00:22:52,140 Шта да радим? 327 00:22:52,140 --> 00:22:53,670 То ми говори где командују ЛС, 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 Где команда је уграђена у Ц-схелл. 333 00:23:11,570 --> 00:23:15,630 Ово није команда која треба да се чита у меморију од негде другде и погубљен. 334 00:23:15,630 --> 00:23:20,310 Ц-љуска га води преносом извршење на делу своје кода 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 >> Боурне типа шкољке су пожељни за програмирање. 344 00:23:54,200 --> 00:23:57,300 Они имају контролне структуре као што су петље, условне исказе, 345 00:23:57,300 --> 00:24:00,240 врста команди које можете да користите у програмским језицима као што су Ц 346 00:24:00,240 --> 00:24:04,190 или било ком језику. Можда сте програмирање у Јави или шта год. 347 00:24:04,190 --> 00:24:06,460 Гранате имају они превише. 348 00:24:06,460 --> 00:24:11,790 Борнов типа гранате су, нарочито басх, има више 349 00:24:11,790 --> 00:24:15,730 и они су дизајнирани са већу флексибилност. 350 00:24:15,730 --> 00:24:20,700 Басх схелл има низове. Оригинални Боурне схелл не. 351 00:24:20,700 --> 00:24:26,130 Тако да може бити знатно повољније за програмирање. 352 00:24:26,130 --> 00:24:29,810 Ц-љуска заправо има низове, али нема много ових других функција. 353 00:24:29,810 --> 00:24:33,450 Борнов типа гранате Тхе извршава брже 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 То је оно што ви не можете да урадите са Перл. Можете то урадити са љускама. 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 Ово ће бити о Ц-схелл. 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 Опет, о Ц-схелл, Боурне Схелл и Корн схелл имати ове ствари, 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 Уместо да куцате лс - то је заједничка команда - 373 00:25:44,880 --> 00:25:47,620 само укуцајте л и уштедећете 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 'Да ли је г *' 389 00:26:35,470 --> 00:26:37,640 г *, као што вероватно знате, је џокер израз 390 00:26:37,640 --> 00:26:40,290 за све називе датотека почињу са г. 391 00:26:40,290 --> 00:26:46,410 Ако ја пишем само у командној ли г *, ја ћу добити листу свих тих имена у мом тренутном директоријуму. 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 она ће оценити џокер г * када се покреће ову команду дефинише. 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 Тако да само се дефинисање биће лс г *. 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 Можда знате команду греп. 408 00:27:54,270 --> 00:28:02,110 Команда греп може да се користи за скенирање фајл за линије које имају одређене жице. 409 00:28:02,110 --> 00:28:10,350 Дакле, идемо овамо, а ја ћу изаћи из мог Боурне схелл. 410 00:28:23,570 --> 00:28:25,450 Ок. Ево фајл. 411 00:28:25,450 --> 00:28:31,490 Рецимо да је то греп АБЦ жице. Ту је. 412 00:28:31,490 --> 00:28:37,930 Ако урадим греп зддд, ја добити ништа. Ок. 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 Шта је са овом једном, алиас Грабц 'греп АБЦ'? 418 00:29:03,290 --> 00:29:09,000 То ће укључити 1. аргумент када је дефинисан псеудоним. 419 00:29:09,000 --> 00:29:26,300 Дакле, ако сам то да урадим овде, сад ако ја радим Грабц, 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 Можда желим да кажем абц као аргумент за мој псеудоним, 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 Приметимо овде имамо греп баш као и пре. 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 Знак узвика је део историје Ц-схелл механизма. 433 00:30:39,920 --> 00:30:45,220 То могу да се сетим раније команде, она могу да се сетим да те аргументе команди и тако даље. 434 00:30:46,760 --> 00:31:01,570 Историја механизам се користи као део алиасинг. 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 Дакле, 3:2! Би други аргумент командне број 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 кажу, грстрингс_филе. 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 Дакле, ако ја урадим грстрингс_филе жице, нисам му дати ништа да траже тамо, 476 00:34:34,900 --> 00:34:37,429 али изгледа у жице. 477 00:34:37,429 --> 00:34:42,330 Није пронађе реч конце у жице фајл, али то не наћи АБЦ. 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 >> Има још једна ствар овде само желим да поменем, делимично узгред, 517 00:37:11,310 --> 00:37:15,250 наиме да је ова историја механизам са знаком узвика 518 00:37:15,250 --> 00:37:18,010 враћа на првобитни Ц-схелл. 519 00:37:18,010 --> 00:37:27,060 Тцсх увео историја операције 520 00:37:27,060 --> 00:37:30,910 који користе врсте команди и низова из уредника, 521 00:37:30,910 --> 00:37:33,650 или Емацс или ВИ. 522 00:37:33,650 --> 00:37:36,430 Моје лично мишљење је Емацс је много лакше користити у ту сврху 523 00:37:36,430 --> 00:37:39,390 чак и ако сте ви користите за редовне уређивање. 524 00:37:39,390 --> 00:37:43,900 Постоје разне Емацс команде које су сада прилагођене за историју. 525 00:37:43,900 --> 00:37:46,410 Контрола П добија претходну линију у листи историје. 526 00:37:46,410 --> 00:37:48,840 Још једна контрола П ће ти онај пре тога. 527 00:37:48,840 --> 00:37:50,540 Стрелица нагоре ради исту ствар. 528 00:37:50,540 --> 00:37:54,190 Контрола Н добија следећу команду ако сте већ скролујете вратио неке начине. 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 Ц-љуска користи команду сет за додељивање променљиве, 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 она ће поставити променљиву на нулл вредност. 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 Дакле, ова команда овде има ефекат дефинисања и а и б на нулте вредности. 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 јер = Б није важећи израз. 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 Овај овде, $, има вредност. 577 00:41:49,050 --> 00:41:55,040 : Р ће скинути екстензију. 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 је то. То ће пасти О.. 583 00:42:10,730 --> 00:42:16,510 Ако нема екстензију, само Путање после задње косе црте, то неће имати ефекта. 584 00:42:16,510 --> 00:42:27,480 : ч, то променљива израз, ће скинути последњи елемент листе директоријума, 585 00:42:27,480 --> 00:42:29,660 опет, тек после задње косе црте. 586 00:42:29,660 --> 00:42:33,160 Дакле, / / ​​Б / Ц постаје / / Б, 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 Они имају за циљ да манипулишу имена датотека, путањама, 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 па ако постоји таква датотека, / / ​​Б / Ц, то ће и даље радити. 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 Ево примера. ПРИНТЕР, ЛПДЕСТ. 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 Команда овде за дефинисање променљиву сетенв. 655 00:47:28,010 --> 00:47:36,470 Тако се то дефинисати. То је 3 елемента: сетенв, променљиве, вредност. 656 00:47:36,470 --> 00:47:44,710 Ако само не сетенв без аргумената, шта добијате? 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 Постоји још једна команда овде, принтенв. 662 00:48:07,520 --> 00:48:10,340 То такође исписује животне средине. 663 00:48:10,340 --> 00:48:15,240 Обратите пажњу на ову последњу ствар овде, ЕДИТОР = ви. 664 00:48:15,240 --> 00:48:21,120 То каже да ако ја користим нешто што назива уредника 665 00:48:21,120 --> 00:48:25,530 и ја не прецизира уредника и то ми омогућава избор, може ми дати ви. 666 00:48:25,530 --> 00:48:37,280 Шта ако ја урадим принтенв ЕДИТОР? То ми говори шта је то. 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 Дакле, ако то урадим, могу да принтенв 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 Запамтите било модификатора за љусци варијабли као што су: х, 674 00:49:11,010 --> 00:49:14,350 која ће пасти последњи елемент путање, 675 00:49:14,350 --> 00:49:17,950 или: р, који ће пасти продужетак. 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 Ове променљиве се све оцењује са знаком долара - $, $ год. 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 ктерм је тип терминала за прозоре приказане у Кс Виндов система. 698 00:51:00,570 --> 00:51:04,330 ктерм-боја је варијација која омогућава да различите боје. 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 То је грешка. 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 је списак путањама у којима граната изгледа за команде. 749 00:54:01,880 --> 00:54:12,320 Идемо у овом прозору овде, а ми ћемо урадити ецхо $ ПАТХ, великих слова - 750 00:54:12,320 --> 00:54:20,230 променљиву окружења - ехо $ путу, мала слова - схелл променљиве. 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 Ц-љуска увек имали низове. 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 Дакле ецхо $ путања [1] и ја добити / уср / бин, први елемент. 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 Овај израз, извоз на животну средину, произилази из овог Боурне схелл концепта, 799 00:57:50,430 --> 00:57:54,520 и ипак да израз се користи у описима Ц-љуске, 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 У Басх или Корн љуске, можете да покренете команду овако, 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 Прелом затим променљивих и променљивих типова се користи у Корн и БАСХ граната. 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 Ми смо га звали бацккуоте. То је отприлике величине цитат. 837 01:00:47,050 --> 01:00:48,720 Она иде од горњег левог до доњег десног. 838 01:00:48,720 --> 01:00:52,690 Ево на мом Мац тастатури то је у горњем левом углу. 839 01:00:52,690 --> 01:00:58,150 Тај лик може да се користи да изврши команду у оквиру команде. 840 01:00:58,150 --> 01:01:03,400 Ако имате израз унутар бацккуотес, 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 је затим замењен за цео бацккуоте израза 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 Идемо горе, извади бацккуотес. 849 01:01:49,090 --> 01:01:54,410 Контрола ме добија на почетак линије са Емацс уређивање синтаксе. 850 01:01:54,410 --> 01:02:00,380 До сада Путање је оно где ради, 851 01:02:00,380 --> 01:02:05,040 али кад то радим овако, онда се лако тој листи путањама 852 01:02:05,040 --> 01:02:08,750 уместо целог овог бацккуоте изражавања и истрчавања лс-л о њима. 853 01:02:08,750 --> 01:02:11,120 Врста згодно, зар не? 854 01:02:11,120 --> 01:02:14,860 Дакле, то је једна ствар уредан. Тако бацккуотес раде. 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 псеудоним ДШВ говорећи ми како је дефинисано. 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 ДШВ КСХ басх. Ок. 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 Цсх има 2 овамо и тако се / бин / тцсх. 870 01:03:36,060 --> 01:03:39,870 Могли би успоставити на други начин да они који су заправо исти фајл. 871 01:03:39,870 --> 01:03:43,150 Запамтите сам рекао ако откуцате сх ти басх. 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 Дакле, они су одвојени фајлови, они су Ц-љуске су исти фајл. 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 Дакле ФВХ КСХ басх. Ок. 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 могућа типа процесора у Мац, 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 Дакле, видимо како функционише псеудоним, видимо како функционише бацккуоте, 888 01:04:43,760 --> 01:04:48,640 видимо како су стварни ли фајл или фајл ради. 889 01:04:52,050 --> 01:04:57,000 То можда неће радити. Пробајте "где где" и "ДШВ где". Ок, хајде да покушамо да. 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 Шта се дешава ако ДШВ тип потрази за где? Погледајте шта се дешава тамо. 896 01:05:20,000 --> 01:05:22,850 Ран где где, добио овај излаз, а затим покушао да покрене лс 897 01:05:22,850 --> 01:05:25,600 као л о где је граната уграђени. 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 Ово овде је у Басх. То је такође команда замена као бацккуоте. 904 01:05:54,760 --> 01:06:05,280 Али за разлику од бацккуоте, она користи ову променљиву стил. 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 Појединачне заграде овде су команда замена баш као и бацккуотес. 911 01:06:29,500 --> 01:06:32,720 Дупли заграде је заправо аритметичка операција. 912 01:06:32,720 --> 01:06:35,380 Постоје и други синтакси, остале операције. 913 01:06:35,380 --> 01:06:41,520 Бацккуоте синтакса је доступан у Басх. 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 То би радити ако сам имао такође бацккуоте. 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 онда овај један ради лс-л на тим фајловима, 923 01:08:18,229 --> 01:08:20,500 а онда овај само понавља излаз. 924 01:08:21,729 --> 01:08:24,479 Ви вероватно не би то урадили, само бих одјек или лс, 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 Када шкољка извршава команду као лс, она га лоцира кроз пут, 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 чита лс команда или шта год у љусци 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 можете да откуцате / бин / и где ћеш га добити. 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 Ту је опција дефинише променљиве у тцсх зове ецхо_стиле. 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 То неће радити за цсх. То је само тцсх. То је један од побољшања. 977 01:11:58,540 --> 01:12:04,620 Парсирање има секвенце када оцијени метацхарацтерс, 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 Та врста евалуације се зове задавању. 1009 01:14:39,000 --> 01:14:46,290 сет ноглоб на почетку ове команде, каже, не ради то. 1010 01:14:46,290 --> 01:14:53,370 невезаног ноглоб каже се вратимо на то ради. 1011 01:14:53,370 --> 01:14:56,440 Имајте на уму да скуп Глоб неће имати такав ефекат. 1012 01:14:56,440 --> 01:15:00,800 У обичном језику, постављен Глоб или ресетовање ноглоб је изгледа еквивалент, 1013 01:15:00,800 --> 01:15:03,290 али овде то није. То је унсет ноглоб. 1014 01:15:05,120 --> 01:15:07,910 Сада Тсет. тсет стајао на терминалу сет. 1015 01:15:07,910 --> 01:15:11,840 То се не користи тако често сада, али пре него што је постао доступан прозора системи 1016 01:15:11,840 --> 01:15:15,760 и ви имали једну терминал, можда ћете морати да се одреди тип. 1017 01:15:15,760 --> 01:15:18,700 А ако нешто долази преко Етхернет или из мреже, 1018 01:15:18,700 --> 01:15:21,120 можда ћете желети да кажем да је вт100. 1019 01:15:21,120 --> 01:15:26,630 ВТ100 је врста стандарда у пословању терминала. Она долази из ДЕЦ терминала. 1020 01:15:26,630 --> 01:15:35,270 Ако само урадите диал-уп - то приметили? Ово иде уназад начине, а? 1021 01:15:35,270 --> 01:15:39,520 Дакле, ако ми само немој Тсет овамо, 1022 01:15:39,520 --> 01:15:45,250 ако ја само радим Тсет, то је мој ресетовање терминала, али ви нисте видели ништа. 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 сетенв ТЕРМ ктерм-боја. 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 Али приметите да ова команда, тсет-а, само излаз ове команде. Није их покрене. 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 Ово је у бацккуоте синтаксе. 1037 01:16:31,870 --> 01:16:35,340 Обратите пажњу на бацккуоте овде, бацккуоте овде. 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 Етхернет, мреже, диал-уп, оно што имате. 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 Ако то урадим са бацккуоте, шта ћу ја добити? 1045 01:16:55,170 --> 01:17:00,210 Такође приметите да ово укључује подешену ноглоб и унсет ноглоб, 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 Хм. Па, хајде да размислимо о овоме. 1054 01:17:26,790 --> 01:17:31,100 То је ради Измена бацккуоте командни, 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 Приметимо овде ову веома занимљиву команду, евал. 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 човек тцсх, збуњен мануелни, проналажење ствари овде није лако било. 1068 01:18:19,400 --> 01:18:31,850 Идемо, евал АРГ, тако да можемо имати 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 И овде су чак односе на команду Тсет за коришћење узорка 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 Идемо овамо, па ћемо видети да се користи само евал пре тога. 1079 01:19:07,800 --> 01:19:14,010 Дакле, хајде да видимо шта се дешава ако ставимо - идемо у корак са стрелицама у том командом 1080 01:19:14,010 --> 01:19:20,940 и контрола на почетак, евал. 1081 01:19:20,940 --> 01:19:22,850 Ок, тако то ради. 1082 01:19:22,850 --> 01:19:26,440 Када то урадите евал, потребно је оно што долази после њега и чини му команду. 1083 01:19:26,440 --> 01:19:29,460 То вам омогућава да у суштини то рашчланити два пута. 1084 01:19:29,460 --> 01:19:33,710 Секција овде води ову команду унутар бацккуотес, 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 Дакле, идемо на евал, евал узима да се, почиње целу ствар изнова, и то ради. 1091 01:20:06,440 --> 01:20:18,460 Пример оба бацккуотинг, евал, парсирање, последице анализи, 1092 01:20:18,460 --> 01:20:21,910 и команда која је вероватно веома мале користи за вас данас. 1093 01:20:21,910 --> 01:20:25,540 Ок. У реду, умаск. 1094 01:20:25,540 --> 01:20:32,160 Погледајмо ове команде овде, умаск 022. Питам се шта то ради. 1095 01:20:32,160 --> 01:20:38,420 Хајде само укуцајте умаск са ништа после тога. 22.. Ок. 1096 01:20:38,420 --> 01:20:44,350 022 и то поново. 1097 01:20:44,350 --> 01:20:48,580 Као што сте можда погодили, умаск без аргумената ти говори тренутну маску; 1098 01:20:48,580 --> 01:20:51,760 умаск са аргументима чини да, али то је био један сам већ имао. 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 Р стоји за читање, на В за пишу, 1104 01:21:21,390 --> 01:21:25,500 и к, који није присутан, значи извршити. 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 Ако постоји р или в, или к, то значи да је заштита одобрена. 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 Умаск дефинише подразумевани за датотеке које креирате. 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 Ако мислите да сваки од њих као октални, 1124 01:22:33,240 --> 01:22:42,120 ово је 1с бит, ово је 2с, ово је 4с. 1125 01:22:42,120 --> 01:22:45,840 Дакле 0 до 7 1126 01:22:45,840 --> 01:22:51,770 ће описати шта је комбинација Р, В је, а к је имате за ове 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 Пошто ово није извршна датотека, то није подесите к. 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 Па, к је дозвољено, али то није овде јер није извршна 1144 01:24:02,080 --> 01:24:04,260 и слично за друге. 1145 01:24:04,260 --> 01:24:08,880 Дакле, то је уобичајена умаск. 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 Ја ћу се вратити на то. Коришћење историје могу тражимо назад за то, ДШВ тамо. 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 Али опет, умаск поставља подразумевану тако да је маскирање, 1156 01:24:53,940 --> 01:24:57,160 указујући битове који неће бити постављени. 1157 01:24:57,160 --> 01:25:04,380 То је типично у једној од ваших фајлова иницијалне, који је Цсхрц за Ц-схелл. 1158 01:25:04,380 --> 01:25:07,500 или профил за Борнов типа граната у.. 1159 01:25:07,500 --> 01:25:12,520 То може бити на другом месту и ако постоје друге иницијализацију датотеке у систему. 1160 01:25:12,520 --> 01:25:14,610 У сваком случају, то је умаск. 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 Ако сам се ово писање, ја би то променљива, умаск = нека вредност. 1164 01:25:28,690 --> 01:25:31,100 Зашто постоји читава команда само за ту сврху? 1165 01:25:31,100 --> 01:25:34,560 Разлог је то само иде назад на порекло Уник. 1166 01:25:34,560 --> 01:25:41,050 Уникс је био само неки програмски пројекат у Белл Лабс у раним 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 Као што сам раније писао, Ц-љуска се не користи баш много за програмирање, 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 Додатни особине додају Боурне схелл по Корн и Борнов-опет граната 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 Ако постоји много команди као у цалцулатионал програму, 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 су значајни разлози зашто би користили Борнов типа гранате су. 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 Мислим да можете наћи Борнов типа гранате су више у складу са вашим искуством. 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 принтенв вариабленаме. 1217 01:28:52,990 --> 01:28:56,130 Ми знамо шта принтенв ради. То нам говори вредност променљиве. 1218 01:28:56,130 --> 01:29:00,850 И принтенв вариабленаме неће нам веома много, јер не постоји таква променљива. 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 Овде имамо бацккуоте израз. 1227 01:29:48,050 --> 01:29:50,370 Запамтите ово је Ц-схелл. 1228 01:29:50,370 --> 01:29:54,850 Дакле принтенв УРЕДНИК ће нам дати вредност ЕДИТОР. То је ви. 1229 01:29:54,850 --> 01:29:59,790 И онда ће поставити ту вредност у променљиве А, постављеном командом. 1230 01:29:59,790 --> 01:30:02,860 Тако да сада, ако ја урадим ехо $ а, ја ви добити. 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 помоћу синтаксе долар знак евалуације, можемо користити принтенв 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 Ово је један од метацхарацтерс, специјалне карактере. 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 То је био ецхо_стиле, један сам раније поменуо. Ок, хајде да урадимо то. 1246 01:31:02,460 --> 01:31:06,230 Запамти сам раније поменуо, ецхо_стиле 1247 01:31:06,230 --> 01:31:08,410 одређује начин одјек команда ће покренути. 1248 01:31:08,410 --> 01:31:10,940 БСД стоји за Беркли Стандард дистрибуцију. 1249 01:31:10,940 --> 01:31:13,200 Ово је Беркли Уникс из 1970. 1250 01:31:13,200 --> 01:31:16,630 То је један од начина који може да ради ехо. 1251 01:31:16,630 --> 01:31:22,310 Постављање ецхо_стиле да те вредности у ТЦ-схелл ће изазвати ехо да се понашају на тај начин. 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 показује врсту непрактично природе Ц-шкољке за неке сврхе. 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 Управо смо гледали ТЦ-схелл ман странице мало пре да пронађе команду евал. 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 Они могу бити одвојене странице за цсх и тцсх. 1280 01:33:11,130 --> 01:33:14,500 Они нису на Мац, али они могу бити ако су то одвојене команде. 1281 01:33:14,500 --> 01:33:19,000 Ако СХ заправо не зовем басх, вероватно ће бити посебан човек страна. 1282 01:33:19,000 --> 01:33:25,820 Неки системи имају засебне ман странице само за уграђене команде Ц-схелл. 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 [ЦС50.ТВ]