>> [Семинар - Unix школки, околини]
[Даглас Клајн - Универзитетот Харвард]
[Ова е CS50. - CS50.TV]
>> Денешните тема е Unix шел.
Јас сум Даглас Клајн, експерт, или барем разумно надлежните корисник, на школка.
Школката е интерфејс за корисникот на оперативниот систем на компјутерот.
Името е погрешно како, за разлика од школка на животните,
што е тешко и заштитни, компјутерот школка овозможува комуникација.
Па порозна мембрана, најверојатно, ќе биде подобро метафора.
>> Оригиналниот школка за Unix е Bourne школката.
Предел е наведено B-O-U-R-N-E.
Борн е еден од оригиналните автори на Unix,
и така школка е именуван по него.
Името на таа школка како команда е само едноставно Ш.
Тоа е команда може да се изврши.
Школка започнува во најава.
Кога ќе се најавите во компјутерот, на школка само почнува да трча за вас,
и тоа е она што се вашите команди.
Тоа може да почне во други времиња, исто така.
Ако ви донесе до прозорецот без други индикации, ќе почне школка за вас.
Тоа е како тоа е дека можете да отидете на прозорецот и почнете да пишувате команди
и така натаму постои, иако не сте влезете во прозорецот.
Покрај тоа, ако се направи далечинско логирање,
тогаш ќе почне школка на оддалечениот компјутер.
И тоа е можно да се кандидира команди без интерактивна школка.
Тоа може да значи во рамките на вашиот тековната операција,
и тоа исто така може да значи далечинско управување.
Вие би можеле да испрати команда на друг компјутер,
која вклучува стартување школка таму.
Всушност, тоа е да го вклучите стартување школка има
дури и ако тоа не е вашата крајна цел.
Кога нешто ќе почне со работа како овој, тоа не мора да започне нова школка.
Ако ви донесе нов прозорец, тоа е можно да се каже да се донесе до уредникот
или некои други команда.
Во тој случај, уредувачот ќе започне од нула.
Кога ќе заврши уредник, прозорецот завршува.
Ова е малку необично, но тоа може да се направи.
Во тие случаи, тоа нема да биде школка.
Па тоа не е секогаш случај дека некој прозорец или некои такви апликации ќе донесе до школка.
>> Шел парсира команди.
Парсирање значи идентификување на различните елементи и класифицирање на нив.
Во рамките на командата, комплетната стринг кој што пишувате,
ќе има 1 или повеќе единствена команди за да биде погубен.
Други елементи може да биде аргументи.
Постојат, исто така, може да биде специјални карактери кои влијаат на извршувањето на командата.
Тие можат да испрати излез некаде различна од екранот
ако командата вообичаено би го испрати на екранот.
Тоа може да се пренасочи влез; тоа може да прават други работи исто така.
Постојат разни други симболи, знаци, и така натаму.
Парсирање вклучува откривање и толкување тие работи.
>> Сега, ако не постојат повеќе прашања, што е прилично веројатно бидејќи не постојат повеќе луѓе,
ние ќе одат за да се мојата следна страница тука.
>> Реков претходно дека Борн школка е почетната школка.
Постојат и други.
Една од нив е на C-школка. Командата е csh.
Името C-школка е само игра на зборови.
Оваа школка беше воведен со Беркли Unix во средината на 1970-тите.
Беркли Unix беше плодотворен настан во развојот на Unix.
Беше тоа една огромна револуција и вклучени воведувањето на оваа школка.
Причината за тоа игра на зборови, Ц-школка,
е дека C-школка има некои карактеристики во него, која личи на јазикот Ц,
кој Bourne школката нема -
или тоа не се во тоа време.
Исто така на ТЦ-школка.
Ова е superset на Ц-школка.
Има дополнителни функции, од кои многу се корисни за интерактивна употреба,
како што се сеќавајќи се команди во механизмот историја,
која Јас ќе се опише нешто подоцна -
на едноставен начин, моделирани по уредник.
Исто така, има поврзувања кои ќе ви овозможи да се поврзе со кратки клучни низа на подолг команда.
Ние нема да се навлегува во кои денес.
Таа има некои карактеристики кои се корисни за програмирање.
Сепак, C-школка не често се користи за школка програмирање.
Програми школка, ако не веќе знаете,
се програми кои се состојат од школка карактеристики.
Вие би можеле да се кандидира на овие програми.
Ти пишувам еден куп на школка команди во датотека и извршување на датотеката.
Вие не треба да го компајлирате. Ова е извршителот јазик.
Фразата Ц-школка е сега двосмислена, бидејќи тоа може да се однесува само на оригиналниот Ц-школка, csh,
или сите C лушпи, вклучувајќи tcsh. Тоа е малку двосмислена.
>> А подоцна школка е Korn школката, ksh, именувана по програмер, Корн.
Оваа школка се обиде да се вклучат во 1 школка
предностите на C-школка за интерактивна употреба
и Bourne плаќа за програмирање.
Таа се користи како интерактивна школка од страна на некои луѓе - малцинство.
Подоцна, сепак, има уште еден вовед, баш школка, баш,
повторно игра на зборови, Bourne-школка повторно.
Тоа е продолжување на Bourne школката. Korn школката исто така. Двете од нив се.
Таа има истите цели на Korn школката на amalgamating C-школка е
и предности Bourne школката во 1 школка.
Многу од подобрувања на Korn школката исто така се вклучени во баш.
Баш, сепак, има се повеќе и затоа е подобро.
На Bourne-школка повторно и Korn школката се нарекуваат Bourne-тип школки
бидејќи тие вклучуваат карактеристики на Bourne школката е,
што се некомпатибилни со некои аспекти со C-школки.
Постојат и други школки покрај оние, некои се наменети за ограничена употреба,
можеби ограничени на некои команди, можеби специјализирани цели, а не често се користи.
>> Океј. Следната точка тука.
Баш школка стана поврзани со различни форми на Линукс.
Не сум сигурен дали тоа е вистина на секоја форма.
Постојат многу форми таму и не сум ги користи,
но во оние кои Го употребив тоа стана поврзани со неа.
Па колку што знам, не постои ништо за баш
што го прави повеќе компатибилен со Линукс
од која било друга комбинација на школка и оперативниот систем.
Мислам дека ова веројатно само го одразува наклони на програмери.
Дека тоа стана поврзани со Линукс е уште една причина да е насочен баш да ksh
бидејќи нештата е веројатно да бидат напишани во него и тоа е веројатно да се шири.
Јас ќе ти дадам други причини за тоа подоцна.
Bourne школката скрипти треба да работи под Korn школката или баш.
Ако напишете нешто за Bourne школката,
што веројатно може да го изврши под ksh или баш.
Korn школката скрипти, веројатно ќе се одвива под баш, но не можам да гарантирам тоа.
Подоцна тука, Ц-школка скрипти треба да работи под TC-школка.
C-школка, всушност, никогаш не широко се користат за скриптирање
бидејќи Bourne плаќа, а подоцна и на Bourne-тип школки се препорачува за таа намена.
Така што навистина не е сето тоа важно.
Постојат доста Bourne школката скрипти кои биле напишани многу одамна,
пред Korn школката или на Bourne-школка повторно беа воведени.
Оние кои се уште се во употреба, дел од оперативните системи,
и така ќе ги најдете ако се погледне во оперативниот систем
или некои стари програмски пакети.
>> Баш до одреден степен да стане еден вид на лингва франка за оперативни системи.
Тоа е веќе проширена на Windows и да VMS.
VMS, во случај да не знаете, е неслободен оперативен систем
на Digital Equipment Corporation, која е сеуште во употреба, во голема мера зад сцената.
И ако тоа се случува да се работи на неколку различни оперативни системи,
веројатно луѓето имаат тенденција да се префрлат за тоа.
Но овој развој е релативно нова.
Тоа е само почетокот, па јас не може да се предвиди дали ова ќе испаднат да навистина биде оној вид на лингва франка.
Исто така, бидејќи на датотека pathnames и библиотеки се разликуваат
помеѓу овие различни оперативни системи,
Вие не може да биде во можност да се напише баш скрипта на еден оперативен систем
а потоа се пушта и на уште еден.
Треба да бидете во можност да го движите помеѓу различни Unix, Linux
Mac OS оперативни системи, но не нужно на Windows или VMS.
Можеби ќе треба да се промени датотека патеката описи,
и некои библиотеки може да биде различна,
кои можат да влијаат на начинот на кој некои команди работат
или како тие процес аргументи и слично.
Во прилог на тоа, уште претпазливи тука е дека не постои гаранција
дека сите различни школки што сум споменат - Bourne школката, Ц-школка,
TC-школка, Korn школката, Bourne-школка повторно - ќе бидат достапни под никакви Unix
или Linux или Mac OS компјутер.
Тие едноставно не може да биде таму.
Тоа е една од предупредува тука.
Тоа е несреќна ограничување тука, бидејќи сакате работите да работат насекаде,
но за жал, не можете да се потпираат на тоа.
>> Океј. Следниот тука.
Да речеме дека сакате да напишете школка скрипта,
програма се состои од школка команди.
Вие напишете ја вашата команди, ги стави во една датотека, и извршување на датотеката.
Што ако сакате да се вклучат аргументи?
Во случај на школка операции, аргументи се нарекуваат параметри или позиционен параметри
и тие ќе бидат повикани од страна на знакот за долар и бројки, $ 1, $ 2.
Значи, ако сценариото има ова име, мојот прв аргумент може да биде аргумент 1
и моето второ може да биде аргумент 2,
и во внатрешноста на мојата скрипта ако сакам да се однесуваат на овие работи -
ајде да избрише тоа, бидејќи јас не сум навистина се случува да се кандидира -
внатрешноста на мојата скрипта би можеле да имаат $ 1 да се однесуваат на arg1,
$ 2, кој ќе излезе на тој начин, arg2.
Па оние симболи се на располагање да се однесуваат на аргументи,
и оние важат за сите школки.
Покрај тоа, постојат и други ликови.
$ * Се однесува на целата аргумент листа, сите од нив.
$ # Однесува на бројот на аргументи.
Повторно, ова се однесува на сите школки.
Оние симболи, * и #, може да се користи со оние значења во други места, исто така.
Ние не ќе се добива во тоа.
>> Шел назначувач линија. Што е тоа?
Да речеме дека сум напишал сценариото и тоа е за одредена школка и дека сакате да го работи.
Како да знаете што се плаќа вашиот оперативен систем ќе го користи за да се кандидира на вашиот скрипта?
Во еден момент можете да се претпостави дека тоа ќе се кандидира во Борн школка
ако не се каже поинаку,
но луѓето не се пишува сценарија во Борн плаќа дека многу повеќе
и вие нема ни да се потпираат на тоа повеќе.
Значи тука имаме школка назначувач линија, токму тука.
Што го одредува баш.
Имајте на ум дека тоа го одредува во патеката, / bin / bash.
Ако компјутерот има баш школка, но не и во bin директориумот, / bin, ова нема да работи.
Тоа е друга одредница, уште претпазливи тука.
Знакот фунта е коментарот линија карактер.
Тоа се однесува на сите школки.
Конкретниот случај тука, #! на почетокот на сценариото, е посебен случај.
Карактеристиките на таа школка во која за да се кандидира на сценариото.
Како што реков, тоа не може да биде на истото место / bin.
Покрај тоа, има уште нешто овде.
Ако само користење на фунтата знак без извичник и патеката,
што треба да се укаже на Ц-школка.
Сепак, јас не препорачувам прави тоа, бидејќи јас не сум во состојба да се гарантира
дека секогаш ќе работи.
Ако сакате Ц-школка, тоа ќе биде подобро да се каже така.
Потоа, тука е нешто прилично збунувачки тука.
Ако користите школка назначувач линија, како што / bin / bash
и дека школка не е на располагање таму,
не постои такво нешто како / bin / bash на тој одреден компјутер,
или поради тоа што не мора баш или затоа што тоа е во различна локација,
ќе добиете грешка ти го кажувам дека сценариото ќе истрча не постои.
И, се разбира вашата скрипта постои, така што порака за грешка е збунувачки.
Причината дека оперативниот систем ти дава дека грешка
или, попрецизно, дека вашиот интерактивна школка во која се извршува ова му дава оваа грешка,
дека извештаите на командата ќе се користат, што е името на сценариото.
Таа команда ефикасно наречена школка со името на сценариото.
Тоа е каде што ќе го добиете тоа збунувачки порака за грешка.
Друг начин да се јавите школка скрипта
е со впишување на школка на командната линија, како што е тука.
Ова е команда. Ова се вели кандидира баш и потоа изврши мојата скрипта во баш.
Кои ќе имаат предност над назначувач линија,
и ова има функција на што ќе ви овозможи да се грижат за различни pathnames.
Ако само даде команда, оперативниот систем ќе изгледа за таа команда
во различни места.
Ако е на располагање, треба да го најдат.
Компјутерот ќе најдете баш секаде каде што е лоциран и да ја стартувате,
така да не треба тогаш да бидат загрижени за тоа каде се наоѓа.
Постојат потенцијално други проблеми тука,
како да има повеќе од 1 верзија на баш, што е можно, иако малку веројатно.
Па тоа е уште еден начин да се справи со овие работи.
Назначувач линии може да се јавите било школка.
Тие, исто така може да се јавите нешта различни од школки.
Примери имам тука се сед, што е поток уредник;
awk, што е шемата на обработката на јазикот;
и Perl, многу високо развиени скриптен јазик.
Ако се стави назначувач линија укажува еден од оние програми на почетокот,
тоа ќе оди директно во таа програма наместо да стартуваат школка.
Овие програми имаат ограничувања на нивните способности.
Perl е многу способен. Сед е уредник. Тоа може да се прават работите подалеку од едноставно уредување.
Но, тоа може да биде тешко да се програмира тоа.
Покрај тоа, поминува аргументи и работи на сценариото е невозможно или збунувачки.
Така и во оние случаи, со awk или сед, тоа е, барем во моето искуство,
подобро да се напише на школка скрипта и повик awk или сед од школка скрипта
наместо нарекувајќи awk или сед како скрипта назначувач линија.
Perl е многу разновиден јазик, како што реков.
Вие не може да работи интерактивни команди во Perl,
што значи дека не може да го тестира делови на скрипти дека сте развој
со извршување на нив интерактивно.
Сепак, тоа е исклучително способен јазик
и се разви во многу широко се користи алатка.
Тоа е само малку на parenthetical забелешка за назначувач линии.
>> Во сите или повеќето форми на Линукс - повторно, не можам да бидете сигурни дека е сè -
и во Mac OS, ако го напишете csh ќе добиете tcsh,
и ако го напишете sh ќе добиете баш.
Тие се обидуваат таму да ви даде повеќе напредни верзии на овие школки,
но ова може да биде збунувачки.
Ако ти напишам скрипта користејќи tcsh или баш карактеристики при повикувањето csh или sh
и потоа обидете се да се пушта и на компјутер кој нема tcsh или баш,
може да се добијат некои грешки, ако постојат команди таму
кои тие школки не се признаваат.
Покрај тоа, може да се нарече вашиот школка на вашиот компјутер
нарекувајќи го како sh или csh а потоа добивање на повеќе напредни школки.
Вие не може дури и да мислат на фактот дека сте со користење на повеќе напредни школка.
Значи ова е потенцијален замка.
Како се утврди дека ако го напишете sh ќе добиете баш,
ако го напишете csh ќе добиете tsch?
Постојат нешта во овие компјутери наречен линкови
кои можат да се поврзете со датотека имиња да се однесуваат на иста работа.
Тоа можат да бидат 2 имиња за истата датотека или датотека, чија цел е да се однесуваат на друга датотека.
Тие се нарекуваат тешко и симболички врски. Ние не ќе се случува во таа веќе денес.
Исто така, може да биде посебен фајлови - 1 датотека sh, 1 датотека баш -
но тие двете работи баш.
Потоа, тука е друг квалификациите тука.
Ако сте повикувајќи еден од овие школки од едно име,
што можеле да помислат дека ќе добиете истата функционалност како нарекувајќи го со друго име.
Па, тоа всушност не е секогаш точно.
Овие команди можат да ги испита името со кое тие биле повикани
и тие можат да, врз основа на тоа име, се однесуваат поинаку.
Може да има проблеми да се обидува да се во согласност со стандард.
Некои од вас може да се чуе на POSIX стандардот или некој друг,
можеби други карактеристики.
Ова може да биде избран понекогаш со командната линија аргументи
или со поставување школка променливи.
Нарекувајќи го како sh или баш всушност може да доведе до различни извршување
дури и ако тоа е на иста датотека што сте извршување.
Друга работа е да се разгледа е дека дури и ако друг компјутер има tcsh или баш,
ако тие не се поврзани како што се на вашиот локален компјутер
ако имате Linux или Mac OS локалниот компјутер,
тогаш повторно ќе добиете школка која ќе се јавите sh или csh, а не оној што можеби ќе сакате.
Тековната Bourne школката има подобрувања помала од оние во баш
но минатото оние во оригиналната Bourne школката.
Како резултат на тоа, дури и тековниот Bourne школката, sh,
дури и кога тоа не е баш личи на јазикот Ц повеќе од C-школка прави.
Тоа не беше точно кога на C-школка прв пат беше замислен, но таа се разви на тој начин.
Може да се забележи дека сите овие школка имиња освен за Bourne школката
има нешто да се покаже кој школка тие се - csh, баш -
но на Bourne школката е само sh.
Зошто? Тоа беше оригиналниот школка.
Тоа беше школка тогаш, не е школка,
и бидејќи беше школка, нема причина да се разликува од друга обвивка.
Па затоа тој има тоа име и се уште го прави тоа.
>> Оваа топ тука е линија од лозинка база на податоци за сметка имам таму
на друг компјутер.
Одам да се обиде да добие што име, така што можете да видите дека дел на крајот, на школка.
Лозинка база на податоци има карактеристики најава за сите корисници.
На почетокот е корисничко име, кое може да се види на последните 2 букви од рудникот сега.
Полиња тука се одделени со запирки.
Последните поле, како што можете да видите, е bin / tcsh, на школка.
Тоа е школка назначувач.
Има нешто интересно овде.
Кога Unix беше првиот развиена, имаше само 1 школка,
па немаше избор таму.
Па зошто тие овозможуваат едно поле во лозинка база на податоци за да се одреди школка?
Не знам, но тоа е среќа што го направија.
Тоа е прилично тешко да се прават промени во лозинка база на податоци формат
затоа што многу програми се однесуваат на нејзината формат
и ќе треба да се препишува и повторно.
Тоа е на место или случајно развој дека тие се вклучени тоа поле.
Оној вид на лозинка датотека линија се користи на сите Unix и Linux компјутери, па колку што знам.
На Mac има свој систем.
Тоа всушност има лозинка датотека со линии во овој формат,
но тоа не е местото каде што се дефинирани на корисникот карактеристики.
Друга parenthetical забелешка таму.
>> Ако сте повикувајќи школка, можете да го наречеме како под-школка на вашиот постоечки школки.
Значи, ако јас одам тука, ајде да се ослободи од овие работи.
Јас сум тука во Ц-школка.
Таа променлива, која точно ги идентификува мојата школка,
всушност, не е секогаш сигурен начин на одредување на она што се плаќа сте водење,
но во овој случај тоа е.
Што ако јас само напишете -
Сега сум во баш.
Некои работи се случува да бидат исти. ls ми кажува моите заповеди.
Ако јас не суспендирање вратам на мојот Ц-школка, ls, исти. Нели?
fg, преден план, се враќам на баш школка.
pwd, тековниот директориум, назад кон C-школка.
pwd, различен директориум - всушност не е различен директориум во овој случај.
Тоа е истиот директориум.
Да речеме сакам да се јавите на команда тука: каде ls.
Што значи дека направам?
Тоа ми кажува каде Командата ls
оној кој ми дава директориумот, се наоѓа во ЛС.
Ајде да се вратиме на баш школка. Ајде да се обидеме истото.
Хм, интересно таму, каде што: команда не е пронајден.
Зошто е тоа така?
КАДЕ команда е изграден во C-школка.
Ова не е команда која мора да се прочита во меморијата од некаде на друго место и егзекутирани.
C-школка бега од страна на трансфер извршување на дел од свој код
и тоа не е во баш школка.
Па баш, не поминуваат толку вграден во командата, изгледа за тоа, не го најдете,
и ние добиеш грешка.
Па ние имаме еден баш школка работи под Ц-школка, и ние го нарекуваме дека под-школка.
И само во случај да сте љубопитни, баш школка има свој начин на наоѓање на команди.
хеширана се однесува на фактот дека тоа може да се изврши побрзо,
се најде побрзо.
Тоа е една од подобрувања изградена во некои од овие школки.
>> Bourne-тип школки се најпосакувана за програмирање.
Тие имаат контрола структури како петелки, условно извештаи,
вид на команди кои можете да го користите во програмски јазици како C
или кој било јазик. Можеби сте програмирање во Јава или whatever.
Школки мораме оние премногу.
Школки Bourne-тип, особено баш, имаат повеќе
и тие се дизајнирани со поголема флексибилност.
Баш школка има низи. Оригиналниот Bourne школката не.
Така што може да биде значително поволна за програмирање.
C-школка, всушност, има низи, но не се многу од овие други карактеристики.
Bourne-тип школки на ќе се изврши побрзо
ако тие не имаат карактеристики наменета за интерактивна употреба.
Ќе се вчита работи надолу за една цел, тоа ги вчитува долу за друга намена.
Тука е дека трампа таму.
Оние карактеристики кои се наменети за интерактивна употреба
навистина се од мала или никаква употреба за скриптирање.
Тоа е можно да се користи интерактивна под-школка исто како и оној почнав таму
да пробате команди кои имате намера да се користи во сценариото.
Тоа е она што не можете да направите со Perl. Можете да го направите со школки.
Дури и структури како за јамки и така натаму може да се работи интерактивно.
Тие се понекогаш е корисно да се кандидира интерактивно,
но поверојатно сте да ги користите за да се развие сценариото.
>> Алијаси.
Ова се случува да биде за C-школка.
Историја механизам каде што можете да се вратам на почетокот команди
или делови од нив кои веќе сте се кандидира.
Повторно, за C-школка, на Bourne школката и Korn школката имаат овие работи,
но јас не одам да се влезе во нив.
Значи тука се и некои корисни адреси дека имам.
Наместо внесување на ls - тоа е заедничка команда -
само напишете l и се спаси себе си 1 карактер.
ЛС со различни опции, сите тие работат.
Имајте на ум дека овие дефиниции мора наводници околу нив.
Во овие случаи, цитати не се потребни.
Ако може да се дефинираат оние адреси без наводниците, тоа сепак би сакал да работиш.
Тие се препорачува.
Има ситуации во кои не можете да ги користите цитат
затоа што сакате нешто да се случи што понуда ќе се спречи.
Понекогаш можете да цитирате дел од дефиницијата, но не сите од неа.
Тоа е, исто така, генерално се препорачува да се користи единечен наводник наместо двојни наводници.
Двојни наводници имаат ефекти врз променлива дефиниции,
особено предизвикувајќи ги да се оценува наместо запирање на тоа.
Зошто ние би сакале да се запре оценка?
И како цитати направи тоа за нас?
>> Тука е команда која може да најдете интересни.
'Ls g *
g *, како што веројатно знаете, е маска израз
за сите имиња на датотеки почнувајќи со г.
Ако јас само пишувам во командата ls g *, јас ќе добиете листа на сите оние имиња во мојот тековниот директориум.
Ако јас се дефинира дека алијас, како што е тука со цитати,
тоа ќе се кандидира таа команда во тековниот директориум каде што сте го работи.
Но, ако извршувате дефиниција алијас без наводниците,
тоа ќе се оцени маска g * кога се работи овој дефинирање команда.
Значи дефиницијата на алијас ќе биде ли проследено со листа на датотеки во директориумот
во кои алијас командата е извршена,
без оглед на тоа каде сте, всушност, имаат намера да ја извршите командата.
Ова не е од многу употреба и единечен наводник спречи евалуација на ѕвездичка.
Така да само го добиете дефиниција суштество ls g *.
Тогаш кога ќе ја извршите алијас, гаранции, тогаш го става тоа.
Сега постојат без наводници, и тоа ќе се оцени ѕвездичка кога ќе ја извршите алијас команда.
Па тоа е една работа.
Двојни наводници ќе имаат истиот ефект тука,
но постојат и други случаи во кои двојни наводници не би сакал да работиш толку добро.
>> Еве уште еден.
Може да знаете на grep команда.
На grep команда може да се користи за скенирање на датотека за линии кои имаат одредени низи.
Па ајде да одиме над тука и јас ќе излезете од мојот Bourne школката.
Во ред. Еве датотека.
Да речеме дека е grep ABC жици. Ете го.
Ако го направам grep zddd, да се добие ништо. Во ред.
Па таа се наоѓа на стринг, таа извештаи, таа не се најде, тоа не го пријави.
Тоа излези било која линија која има стрингот на неа.
Постојат сите видови на опции тука што може да се најдат во документацијата.
Еве еден начин да го направи тоа.
Што е овој, алијас grabc "grep ABC '?
Што се случува да се вклучат 1 аргумент кога алијас е дефинирано.
Значи, ако го направам тоа тука, сега, ако го направам grabc,
сега алијас вклучува повеќе од едноставна команда. Исто така, има аргумент.
Досега, која работи.
Имам друга команда тука, и оваа, па оние кои се различни жици таму
и да покаже дека ова не се најде нешто таму, бидејќи тоа не се совпаѓаат.
>> Што ако сакам да се вклучат во дефиницијата алијас датотека што јас ќе одам да се бараат
и сакам да се даде како аргумент за алијас стрингот дека јас сум во потрага по?
Јас можеби ќе сакате да се каже ABC како аргумент на мојот алијас,
но алијас веќе утврдени датотеката.
И тоа е каде што овој израз влегува внатре
Забележете тука имаме grep како порано.
Имаме датотека тука, стрингови.
\! ^, Вид на чудно изразување, претпоставувам, ако не сте го виделе ова досега.
Извичник е дел од C-школка историја механизам.
Тоа може да се сети порано команди, тоа може да се сети аргументи на оние команди и така натаму.
Механизам историјата се користи како дел од aliasing.
Ако наведете линија по фантастичен точка, таа ќе се однесуваат на таа линија во листата на историјата,
кои ние нема да се навлегува во сега, бидејќи тоа е сосема друга тема.
Можно е да се одреди дел од линијата.
Така! 03:02 ќе биде вториот аргумент на командата број 3.
На коректорски знак тука во овој израз се залага за првиот аргумент.
Ако не го даде индикација за која команда сте се однесуваат,
тоа се однесува на веднаш претходната команда,
и коректорски знак е симбол за прв аргументот.
Затоа што тоа е коректорски знак, а не број, вие не треба да се користи на дебелото црево,
така! ^ значи првиот аргумент на претходната команда.
А малку измешани тука.
Во овој случај, кога ќе го користи ова како дефиниција алијас,
референца историјата се однесува назад кон команди во кои се користи псевдоним.
Значи ова се случува назад 1 команда како историја операција,
но како алијас операција се однесува на командата во која ќе напишеш,
велат, grstrings_file.
Имаме цитати тука во неа. Што е обратна коса црта за?
Во овој случај, како и секаде, не сакаме да се изврши механизам историја
при дефинирање на алијас.
Ако ние не имаат обратна коса црта таму, школка ќе се повлече во првиот аргумент
на командната право пред тој да истрча оваа алијас команда, која ние не сакаме.
Ние сакаме тоа да биде изградена во алијас команда да се јавам во аргумент подоцна.
Единечен наводник не избега фантастичен точка, повикување на историјата.
Можеби знаете изразот бегство значи да го промени значењето на нешто.
Во овој случај, тоа значи да престанат со нешто од тоа да имаат посебно значење.
Посебно значење фантастичен точка е историја.
Избега и тоа не дека имаат значење.
Цитати не го сторат тоа, обратна коса црта прави.
Па ние сме всушност користење на 2 нивоа на бегство тука.
Одам да се движат оваа команда во другиот прозорец без внесување
со користење на овие уредување операции, кои може да најдете корисни.
Нешто друго еве јас ќе ви покажам.
Ако само напишете алијас без аргументи, тоа ви кажува сите ваши аргументи.
Ова е еден куп на адреси јас веќе имал тука
покрај оние кои Јас сум бил користење тука и денес.
Но, ако јас само напишете со името на алијас, тоа ми кажува што значи тоа.
Забележите дека цитати се качил и коса црта е нема.
Оваа низа тука е резултат на тоа алијас дефиниција,
и сега има само! ^ во неа.
Ова се случува да се погледне во датотеката жици за ништо.
Значи, ако го направам grstrings_file жици, јас не го даде ништо да се погледне за таму,
но тоа е во потрага во жици.
Тоа не го најдете зборот стрингови во датотека жици, но тоа не се најде ABC.
И тоа не најдете тоа.
Па еве ние се даваат аргумент дека удира во дефиницијата на алијас,
кој се вметнува во тоа.
Тоа е каде што овој израз доаѓа.
Можете да го користите повеќе од 1.
На коректорски знак е симбол за прв аргумент.
Ако сакаше да го користат вториот аргумент, тогаш би рекол: 2.
Нема посебен симбол за вториот аргумент.
И затоа што сте со користење на бројки, вие ќе треба да се користи на дебелото црево.
Постои, меѓутоа, друг избор тука.
На знакот за долар се залага за последен аргумент.
И бидејќи ова е симбол, можете да ја изостави на дебелото црево.
Па тоа ќе биде последен аргумент во листата.
И таму е исто така, дека една.
Ѕвездичка значи дека сите, така што ова е комплетната аргумент листа,
и повторно, можете да ја изостави на дебелото црево, бидејќи тоа не е броен.
Се надевам дека вие ќе бидете сите набљудување сето тоа.
>> Механизам историја може да се врати на претходните линии во листата на историјата.
Можете да го направите ова во дефиницијата алијас.
Никогаш не сум видел оваа направено.
Тоа ќе има ефект на повлекување порано команди од листата на историјата
кога ќе се изврши алијас, кои би можеле да бидат различни команди
во зависност од тоа кога и каде ќе ја изврши.
Разбирливо можеби ќе сакате да се повлече од такво упатување
само да знаете што претходно команда беше.
Никогаш не сум видел се случи ова.
Претпоставувам дека некој можеби ќе сакате да, но ова е малку веројатно.
Постои уште една работа овде.
Ако користите дека историјата тип референца,
тогаш само аргументите за кои постои такво упатување се користат.
Ако имате дефиниција алијас кој не користи историја тип референца,
ако тоа само станува почетокот на команда
и имате дополнителни аргументи, тогаш ништо што пишувате после тоа
ќе биде додадена на командата.
Во овој случај, на примерот, јас само го даде таму, ние се користи првиот аргумент;
ние не се користи било кој други.
Ако се користат други аргументи биле дадени на командната линија, тие нема да се користи.
Значи, ако користите референца историјата на сите, тогаш ќе мора да го користат за да се добие било аргумент.
>> Има уште една работа тука сакам само да напоменам, делумно parenthetically,
имено дека оваа историја механизам со извичник
оди назад кон оригиналната C-школка.
На tcsh воведе историја операции
кои користат видови на команди и жици од уредници,
или Emacs или VI.
Моето лично мислење е Emacs е многу полесно да се користи за оваа намена
дури и ако VI користите за вашите редовни уредување.
Постојат различни Emacs команди кои сега се прилагодени за историја.
Контрола P добива претходната линија во листата на историјата.
Друга контрола P ќе добиете оној пред тоа.
Стрелка нагоре прави истото.
Контрола N добива следната команда ако веќе сте дошле назад некои начини.
Стрелката надолу го прави тоа.
Можете да се движите лево кон десно со стрелките и разни други работи.
Ова може да се направи употреба на механизмот историја
многу полесно отколку со користење на фантастичен точка синтакса,
но вие не би го користите дека во дефиницијата алијас.
Ќе одиме во текот на овој некое друго време.
>> Променливи.
Знаеш што променливи се во програмски јазици.
Школки нив имаат, исто така.
C-школка користи команда во собата да доделите варијабли,
така што се поставува на променливата а на вредноста на Б -
како што реков, бескорисни дефиниција, но илустрација на тоа како ова се користи.
Множество команда ќе креира променлива ако тоа веќе не постои.
Позиционен параметри за скрипти може да се смета променливи,
но употребата на нив и правила за нив се малку различни.
Вие не може да се додели вредност до $ 1 во текот на скрипта.
Вие ќе треба да се дефинира нова променлива за таа намена дали некои од вас сака.
Вид на Поставување без аргументи и ќе добиете листа на сите тековно дефинирани променливи.
И ајде да се добие во текот на моите други школка тука и да видиме што можеме да добијам ако тоа го правиме.
Доста долга листа таму, нели?
Дојдете до малку. Погледне во сето тоа.
Некои од овие работи се дефинирани автоматски од страна на школка.
Школка создава променлива и тоа му дава вредност.
Некои од нив се дефинирани од страна на школка, но потоа редефинира од страна на корисникот
според неговите желби.
А некои од нив се создадени од страна на корисникот во зависност од она што тој го прави тој ден.
Тоа е само во собата без аргументи.
Има непарен функција овде на оваа работа.
Таму треба да биде или без празни места помеѓу еднаквите знаци и името на променливата
и вредноста или простори на двете страни на еднаквите знаци,
па и во овој.
Ова не ќе работат, и ова всушност е валидна команда
но тоа нема да го направи она што имате намера.
Таа команда ќе работат, бидејќи ако само велат во собата и името на променливата
без еднаквите знаци или во собата и име на променлива со еднаквите знаци и нема вредност,
тоа ќе се постави променлива null вредност.
Па постави = е валидна команда.
Множество команда може да се дефинира повеќе од 1 променливата на иста линија.
Па оваа команда тука има ефект на дефинирање и и b за да null вредности.
Веројатно не она што го сакате.
Овој овде, што споменавме порано, ќе доведе до грешка
бидејќи = b не е валидна израз.
А името на променливата не можат да почнат со знакот еднакви.
И таму се овие дополнителни работи тука.
Колонките беа користени за да изберете аргументи од историјата линии,
и тие може да се користи - и јас не одат во пред - да ги промени тие работи.
Тие, исто така може да се користи за да модифицирате школка променливи.
Овој овде, $ a, има вредност.
: R ќе ги тргнеме продолжување.
Продолжување ќе биде нешто по точка,
точка и ништо следниве тоа на крајот на датотеката,
само на крајот на листата по последниот расцеп.
Па јас го имам тука.
а е тоа. Тоа ќе се намали на. O.
Ако нема продолжување, само pathnames по последната коса црта, тоа нема да имаат ефект.
A: h, таа променлива израз, ќе ги тргнеме на последниот елемент од директориумот листа,
повторно, само по последната коса црта.
Значи / a / b / в станува / А / Б,
но овој е изменета, бидејќи елементот откако на листата е нула.
Тука постои нешто што, исто така, сакам да го истакнам.
Овие квалификациите не го бара за постоењето на овие датотеки.
Тие само се погледне за жици.
Овие се наменети да се манипулира имиња на датотеки, pathnames,
но тие може да се користи на било низа, дури и ако тоа не е името на датотеката.
И тие не изгледаат за постоењето,
па ако нема таква датотека, / a / b / в, ова сè уште ќе работи.
Дали тоа е од било каква употреба е друго прашање, но тоа сè уште ќе работи.
Променливи се различни во Борн школки. Ние ќе дојдеме до тоа подоцна.
Знакот за долар може да се избега исто како извичник и ѕвездичка.
Знакот за долар може да се избега со обратна коса црта или единечен наводник.
Двојни наводници имаат чудни ефект во сите школки
за принудување на евалуација на знакот за долар променлива израз.
Значи, ако тоа е се избегна еден начин, двојни наводници може да има ефект
на предизвикува таа да се оценува во секој случај.
Ова е малку збунувачки.
Ако постојат повеќе нивоа на бегство, како што единечен наводник става во двојни наводници
или двојни наводници внатре единечен наводник, треба да се тестира за да видите што ќе се случи
на променлива, ако сте со користење на еден.
Тие 2 ситуации - двојно внатрешноста на еден, еден во внатрешноста на двојно -
не мора да ви даде истиот резултат.
Животната средина променливи, врзани Ц-школка променливи.
Животната средина променливи се исто така променливи во Ц-школка,
и тие се, исто така, променливи во други школки премногу.
Во Ц-школка, тие се различни комплети.
Она што сум бил велејќи дека пред се за школка променливи.
Животната средина променливи се посебен сет на променливи
со исклучок на неколку променливи што ние го нарекуваме врзани променливи,
кои се многу важни и ние ќе се влезе во оние подоцна.
Животната средина променливи автоматски се пренесат на
да школки или команди кои се извршуваат од вашиот школка.
Други работи не се. Школка променливи, адреси не се. Животната средина променливи се.
Тоа е причината зошто ние ги викаме животната средина променливи,
Идејата е дека животната средина се протега минатото само вашата актуелна школка.
Тие може да се користи да се дефинира работи за команди.
Еве еден пример. Печатач, LPDEST.
И двете од овие променливи може да се дефинира печатач кој командата ќе се користи за печатење работи.
Ако имате повеќе печатари околу, можеби ќе сакате да се стави на еден ви се допаѓа.
Причината имаме 2 променливи е дека различни групи на команди биле напишани
користење на овие различни варијабли.
Можеби ќе им даде различни вредности.
Најверојатно ќе им даде на двете со иста вредност.
Тие работи работат бидејќи команди кои го прават печатење
биле програмирани да ги испита вредности на овие променливи.
Ако програмата не биле напишани на тој начин, ако тоа беа напишани да се направи нешто друго,
променливата ќе биде ирелевантно.
Па на оперативниот систем не е во потрага по овие променливи
секој пат кога ќе се однесува на еден печатач.
А команда која го прави печатењето е во потрага по овие променливи ако тоа е програмиран на тој начин.
Овие променливи често се дефинирани во вашиот иницијализација датотеки
но не е задолжително.
Можете да ги дефинираат на командната линија.
Тие можат да бидат дефинирани во команда.
А команда што тече нешто може да има свој избор на променливи -
променливи кои се уникатни за одредена софтверски пакет, на пример.
Тие ќе бидат дефинирани кога ќе ја стартувате таа пакет.
Како се овие променливи донесен за да под-школка?
Кога под-школка е напишана, таа не пишува во таа област.
Областа на под-школка кој е посветен на животната средина променливи
не е напишана од страна на под-школка, тоа е напишано од страна на копирање.
Кога ќе ја стартувате обична команда, како што се овие команди да се печати или што,
Тие започнете со креирање на нова школка.
Школка создава обвивка и потоа да ги презапишува дел од неа
со командата дека сте водење, што е малку збунувачки,
но тоа е како овие команди се на животната средина променливи
дека тие потоа да се однесува подоцна.
Команда тука за дефинирање на променливи setenv.
Тоа е како да го дефинираат. Тоа е 3 елементи: setenv, променлива, вредноста.
Ако само се setenv без аргументи, она што го добивате?
Листа на сите овие променливи.
Повторно, тоа е убаво, долга листа и во овој случај, како и во другите,
овие променливи се дефинирани во голема мера од моето корисничко име операција од страна на школка самата
а не од ништо што јас направив.
Има уште една команда тука, printenv.
Кој исто така отпечатоци од животната средина.
Забележите ова последното нешто тука, уредник = VI.
Во која се вели дека ако јас сум со користење нешто што го нарекува уредник
и јас не го наведете уредник и ми овозможува избор, тоа може да ми даде VI.
Што ако го направам printenv уредник? Тоа ми кажува што е тоа.
Непосредно пред тоа, имаше променлива, помалку.
Овие се твоите стандардните опции при Трчам помалку команда,
кој прикажува датотеки.
Значи, ако го направи тоа, printenv може да потрае 1 аргумент или 0 аргументи,
не повеќе од 1.
Постојат и други команди, исто така, но ние нема да навлегувам во сето тоа денес.
Се сеќавам имаше изменувачи за школка променливи како што се: H,
кои ќе се откажат од последниот елемент на патеката,
или: R, која ќе се намали продолжување.
Оние кои сега се однесуваат на животната средина променливи премногу. Тие не се користат за.
Се користи за да биде дека не може да биде изменета. Сега тие може да биде.
Тоа е една од напредокот со развојот на настаните на школки во текот на годините.
Бев велејќи дека гранатите, како дел од средини
и школка променливи во Ц-школка се, со некои исклучоци, различни комплети.
Можете да воспостави променлива на околината и школка променлива со исто име.
Тие ќе бидат различни варијабли, тие можат да имаат различни вредности.
Менување на вредноста на еден нема да се промени вредноста на другиот.
Овие променливи се сите оценети со знакот за долар - $ a, $ сеедно.
Па што ако имаш ова? Дали знаете кој ви се добие?
Во мојот тестови добив школка променлива,
но тоа не е документирана и не можете да се потпираат на тоа.
Па јас да ве прашам, е создавање школка и животната средина променливи
со истите имиња е добра идеја? Не Океј.
Кои се тие големи исклучоци во кои животната средина и школка променливи
се поврзани еден со друг?
Постојат овие 4.
Буква РОК променлива на околината,
плаќа променлива мандат во мали букви, тип на терминал емулација.
Јас сум само ќе поминат тука и јас ќе одам да направите ехо, корисна команда тука,
$ $ РОК рок. И таму.
xterm е терминал тип за прозорци прикажани во X Window System.
xterm боја е варијација на тоа што им овозможува на различни бои.
Зошто ни се дефинираат овие? Што е ова добро за?
Команди кои ги преуредите на екранот како уредник
испрати особено секвенци, наречени бегство секвенци,
до терминалот или прозорец да го преуредите и така натаму.
Тие секвенци се различни за различни видови на терминали.
Ова го кои од нив да се користи кажува.
Понекогаш постојат прашања таму.
Можеби ќе сакате да се промени тоа.
Ако работите не се работи, понекогаш терминал тип е поставена погрешно,
може да биде во можност да го исправиме со редефинирање на поимот променлива.
Во овие случаи, менување на една променлива, променливата на околина или школка променлива,
треба да се менува на другиот.
Јас открив преку искуство дека менувањето на терминот во големи букви
не секогаш се менува школка променлива мандат во мали букви.
Ова е грешка во Maxima.
Јас не знам дали тоа е секогаш точно. Поголемиот дел од времето тоа не е точно, но тоа може да биде.
Значи, ако се направи промена, само провери тоа.
Тоа не е често дека треба да се промени таа вредност, но еднаш во некое време ќе се направи.
Променлива на околината КОРИСНИКОТ.
Повторно, променлива на околината со големи букви, школка променлива во мали букви.
Ова е вашето корисничко име.
Тоа е само под многу исклучителни околности
дека вие би сакале да го промени тоа.
Ако вашето корисничко име е некој друг, може да фрли сите видови на работи надвор.
Домашен директориум, домашниот директориум на корисникот.
Повторно, вие не би сакале да го промени тоа.
Известување во сите овие случаи и оној што ние сме за да се покријат, патот променлива,
променлива на околината е со големи букви и врзани школка променлива е со мали букви.
Ако го промените еден, треба да се промени од друга страна.
Овој вид на обврзувачки не може да се утврди како да не може да се врзе 2 променливи,
освен овие 4 и обврзувачки во овие променливи не може да се врати назад,
не можете да ги разделат.
Па овие 4 пара променливи се врзани.
Тие секогаш ќе биде. Никој другите ќе биде.
Покрај тоа, тоа ќе биде можно да се создаде променливи со истите имиња
од спротивниот типови.
Можете да направите школка променлива мандат во мали букви
или променлива на околината мандат во големи букви.
Оние варијабли ќе биде независна од овие поврзан променливи
и тие ќе бидат независни една од друга.
Не можам да замислам зошто вие би го сториле тоа, освен ако не сакате да ги збунуваат луѓето.
Овој овде, патот променлива, ова е навистина важно.
Друга работа тука е дека не може да има случаи
на променливи со слични Спарените имиња кои не се врзани едни на други.
Не може да има променливи, школка и на школка, во главниот град и мали букви.
Врз основа на тоа име, не знам дали таа променлива е школка променлива
или променлива на околината, и тие не се врзани едни со други.
Така што вид на парни имиња не значи врзани променливи.
На патот променлива, што бев покажува пред,
Ова е листа на pathnames во која школка изгледа за команди.
Ајде да се добие во текот на овој прозорец тука и ние ќе се echo $ PATH, големи букви -
променлива на околината - echo $ пат, мали букви - Школка променлива.
Забележите дека листата на директориуми е иста. Овие се врзани.
Промена на еден, да го промените други.
Во променлива на околината елементи се одделени со запирки. Забележите дека.
Школка променливи се одделени со празен простор.
Оваа променлива на околината е еден стринг.
Школка променливата е низа.
Кажи на пријател школка немаа низи.
Баш не, но ова е веќе фиксна дел од школка.
Ова е еден стринг и не низа.
C-школка секогаш има низи.
Низи се многу полесно да се работи со.
Може да се однесува делови од неа.
Па echo $ патот [1] и јас се / usr / bin, првиот елемент.
Повторно, се сеќавам знакот за долар се залага за последниот елемент од листата на историјата.
Што се случува таму? Се обиде да се најде знакот за долар како променлива симбол.
Јас го избегаат. Упс. Тоа не би се ни тоа.
Некои од овие работи не работат толку добро.
Можеби ние само ќе го оставиме тоа надвор.
Ѕвездичка се однесува на целата работа, но тоа е она што ќе добиете ако не се определи елемент.
Друг начин на кој низа варијабли може да се манипулира,
број на елементи таму, 7 елементи.
Еве ние се стави на фунтата знак пред името на променливата.
Еве уште еден. Стави знак прашалник таму.
Тоа е логичен вредност. Тоа укажува дека променливата постои.
Тоа е уште еден начин на работа со променливи.
Дека, патем, не мора да биде низа променлива.
Тоа би можело да биде било променлива.
И ако го направам, не постои такво променлива и да се добие 0.
Уште малку нешто таму за променлива оценки.
Назад кон овој овде, ако поради некоја причина сакав да работам со ова
Наместо да работат со низа, школка променлива,
постојат команди кои можат да се издвојат овие работи врз основа на дебелото црево.
Всушност, ако си оди за да се прави ова во баш школка можеби,
некој вид на скрипта, тоа ќе биде веројатно како ќе го направи тоа.
Но, во Ц-школка тоа е многу полесно да се користи низа.
Во Борн школка, променливи се доделуваат од страна на еден израз вака,
како начин може да се додели на променлива во програмскиот јазик,
и тука мора да има празни места.
Тоа е потребно тоа да биде само 1 стринг.
Во Борн тип школки, сите променливи се школка променливи.
Животната средина променливи се подмножество на школка променливи.
Тие се разликуваат од не-животната средина променливи, со извоз.
Команда за да го направите тоа е извозот, како извозот печатач.
Ако ние требаше да се дефинира како променлива,
ако сакаме печатење команда за да го најдете, тоа ќе мора да биде променлива на околината,
а тоа е како ние го еден.
Тука има нешто вид на збунувачки.
Овој израз, извоз на животната средина, произлегува од овој Bourne школката концепт,
а сепак тој израз се користи во описот на C-школка,
каде што не постои таква команда како извоз.
Ако речеме извоз по себе, ќе добиете листа на извезените -
Значи, ако јас само не извезува тука, нема такво нешто.
Добро, да одиме.
Овие работи, патем, исто така, се дефинирани од страна на школка.
Јас не се дефинира некоја од овие од мене.
Школка прави сите видови на работи од себе.
Тоа треба да се прават работите автоматски.
Во баш или Korn школката, можете да го извршите командата вака,
кој и двете ќе им даде променлива вредност и извоз во 1 команда.
Во Борн школка тие мора да бидат посебни команди како извозно.
Тука е уште еден аспект што е збунувачки.
Множество команда во Ц-школка дефинира променливи
и без аргументи ти го кажува она вредности на променливи "се.
Во баш школка, множество командата без аргументи го прави истото,
но со аргументи тоа го прави нешто сосема друго.
Значи овие се различни аргументи тука.
Некои од овие се животната средина променливи, некои од нив се школка променливи.
Сите од нив се школка променливи навистина. Некои од оние кои се на животната средина променливи.
Множество команда со аргументи може да се користи за да работат
на позиционен параметри на сценариото,
што е начин на добивање на сите нив одеднаш.
Ние навистина не може да оди во таа денес.
Таа, исто така може да се користи за промена на школка однесување.
Особено во баш постојат променливи кои ќе се утврди како школка се однесува.
Потоа, исто така, само оваа команда која може да видите, оваа команда.
Typeset проследено со променливи и променлива видови се користи во Korn и баш лушпи.
Тоа не е задолжително, но тоа може да се користи за да се ограничи вредности на променливи,
кој може да биде корисно за да се спречи грешки, и тоа е прилично честа појава.
Па јас сум само се спомене дека во случај да го видите некаде.
Команда каде.
Запомни што споменав порано, каде што командата во Ц-школка,
кои можат да ви ја каже локацијата на командата патеката.
Тука е команда замена.
Треба да се најде на вашата тастатура некаде лик што личи ова.
Локацијата на тастатурата се случува да се разликуваат.
Ние го нарекуваме backquote. Тоа е со големина на понуда.
Тоа оди од горниот лев да долниот десен.
Тука на мојот Mac тастатура тоа е во горниот лев агол.
Дека карактерот може да се користи за да се изврши командата во команда.
Ако имате израз внатре backquotes,
тој израз е команда, тоа е се кандидира.
На излез од таа команда
потоа се замена за целата backquote израз
внатре подолг команда која потоа бега со тоа излез
како дел од својата низа на аргументи и така натаму.
Тука е команда која користи тоа.
Ајде да се демонстрира работата овде.
Ајде да одиме до тука, извадете ја backquotes.
Контрола на мене добива на почетокот на линијата со Emacs уредување синтакса.
Досега pathnames е она од каде доаѓа,
но кога ќе го направите вака, тогаш приклучоци во таа листа на pathnames
во местото на целата оваа backquote изразување и работи ls-l на нив.
Вид на удобен, нели?
Па тоа е една уредни нешто. Тоа е како backquotes работа.
Сега, ајде да одиме надолу малку понатаму.
Овие се адреси. Јас всушност ги користат овие.
Ќе се обидам да го добивате ова во со 1 уредување операција.
Во ред.
Сега да видиме како тие дефиниции излезе.
алијас LWH ми кажуваше како се дефинирани.
Забележите тоа е само ова, но надворешниот цитати се земени од
и извичник е симната.
! *, Комплетната листа на сите аргументи.
Во дефиницијата алијас тој ќе се однесува назад кон каде јас го користам ова.
LWH ksh баш. Во ред.
Види како тоа функционира? Тоа ме спасува некои пишување.
Ајде да одиме до малку само да споменам нешто друго овде.
Забележи овие различни школки. Јас треба да ги спомнав ова и порано.
На csh има 2 ваму и така / bin / tcsh.
Ние може да се утврди со други средства дека тие се всушност една иста датотека.
Се сеќавам што реков, ако сте тип sh ќе добиете баш.
Тип тоа и ќе го добиете ова.
Но тие не се поврзани. Оние кои имаат една од нив таму.
И ова не е вид на датотека која може да се јавите друг.
Па оние се одвоени датотеки; C-школка од нив се иста датотека.
Врати долу тука, другиот тука, овој алијас,
се напомене дека е трчање оваа команда, датотека.
Дека алијас работи тоа. Датотека ви кажува типот на датотека.
Па fwh ksh баш. Во ред.
Тоа е излез на датотека команда.
Јас не знам дали знаеш што тоа значи тука,
Мах-О универзална бинарни со 2 архитектури.
Постојат 2 можни видови процесор во Mac,
и некои програми се напишани за да може да работи со двете,
и датотеката команда може да се утврди тоа, па тоа е она што ова значи.
И двете од овие датотеки се напишани на тој начин.
Значи можеме да видиме колку алијас работи, можеме да видиме колку backquote работи,
можеме да видиме колку вистински датотека ЛС или датотека работи.
Ова не би можеле да работат. Се обиде ", каде што" и "LWH каде". Океј, ајде да се обидеме тоа.
каде каде.
каде е школка вграден.
Се сеќавам порано покажавме дека баш немаа каде.
Ако го напишете каде во баш школка, ќе добиете порака за грешка.
Тоа е само дел од школка наместо да биде посебен команда.
Што се случува ако сум тип LWH во потрага за каде? Погледнете што се случува таму.
Трчаше каде каде, добив оваа излез, а потоа се обиде да се кандидира ls
како l за тоа каде е школка вграден.
каде е таму, но останатите не постојат.
Ниту еден од овие постојат, всушност.
Така што не е секогаш работа, а исто така покажува како некои работи
не прават доста она што може да си помисли.
Ајде да одиме надолу малку понатаму тука.
Ова овде е во баш. Тоа е, исто така, команда замена како backquote.
Но, за разлика backquote, го користи оваа променлива стил.
Постојат голем број на изрази кои почнуваат со знакот за долар,
и додека тие не се променливи, тие позајмени употребата на знакот за долар
за да се покаже израз на некој вид.
Кои можат да бидат опкружени со загради или загради или двојно загради,
која има различна намена.
Една голема заграда еве команда замена исто како backquotes.
Двојно загради е всушност аритметичка операција.
Постојат и други syntaxes, други операции.
Backquote синтакса е достапен во баш.
Сепак, ова е подобро. Тоа е многу полесно да се чита и тоа им овозможува на вгнездување.
Ќе може да има внатре $ (команда) друга команда,
нешто како -
Јас добиете листа таму.
Кои ќе работат ако имав backquote, исто така.
Што ако сакам да направам нешто како -
Вие веројатно нема да всушност ќе ја користите оваа команда,
но овој внатрешен команда замена одекнува имињата на сите датотеки почетокот со,
тогаш оваа тече ls-l на овие фајлови,
а потоа и оваа само одекнува излез.
Вие веројатно нема да го направите ова, вие само ќе го направи ехо или ls,
но ова илустрира како вгнездување на команди работи.
Па само уште една карактеристика тука.
Јас спомнав ова порано, дека кога ќе имаат каде во Ц-школка,
тип работи во Борн тип школки за лоцирање на команди.
Вграден во командите, само она што јас го кажувам таму.
Команди се дел од школка, како, каде.
Кога граната ја извршува командата како ls, таа ја лоцира преку патот,
смета дека во некои директориум некаде,
се вели дека во меморијата, создава нова школка,
чита на командата ls или што во школка
каде на животната средина променливи се веќе лоцирани,
а потоа ја пренесува извршување на него.
Вграден во командата, на код за таа команда е во внатрешноста на школката,
па школка само почнува извршување на дел од сопствената код.
каде што е толку команда. Тоа всушност добива побрзо.
Тоа не мора да се прочита нешто во меморијата, тоа е веќе во меморијата.
Вграден во командите секогаш имаат предност пред команди со истото име.
Команди, кои се во директориуми во патеката може да имаат исто име,
команди во различни директориуми, датотеки во различни директориуми.
Оној кој се јавува во почетокот на патот е оној што ќе добие.
Ако има вграден во командата, може секогаш да го добие.
Не постои начин да го даде пониска предност од командата на патот.
Ако сакате да се добие тој пат команда, можете да напишете целосна патеката.
Ако имало команда, каде што на патот некаде,
можете да пишувате / bin / каде и што би го добие.
Ако не сакате да напишете целата патека, би можеле да се дефинираат алијас.
Всушност, ако даде алијас истото име како вграден во команда, таа ќе работи
затоа што дефиницијата алијас се оценува
пред школка утврди дека тоа е вграден во команда која треба да се изврши.
Тогаш ова добива малку повеќе комплицирано со некои команди тука.
Случај на некои команди се всушност вграден во командите и во патот.
Еден од нив е ехо, командата јас само се користи пред малку во оние примери.
Ехото е команда во патека и тоа е во секој школка.
Тие не мора да сите се однесуваат на ист начин.
Тоа беше првично команда само во патеката.
Таа била изградена во со школки подоцна.
Бидејќи постојат опции кои зависат врз животната средина
и опции на командната линија, вграден во командите
беа напишани за да функционираат исто како команда, кои биле во патот,
тоа е малку веројатно тие би биле напишани на тој начин
ако командата не се веќе напишани за патот.
Па ова има несакани ефекти. Нејзината историја има ефекти тука.
Постојат опции таму.
Исто така постои и опција дефинира со променлива во tcsh наречен echo_style.
Тоа е една од овие променливи кои може да го промени начинот на кој ехо дела.
Постојат и други случаи во кои можете да го доделите променлива
која го менува начинот на кој школка операција, вклучувајќи вграден во командата, работи.
Тоа нема да влијае на нешто друго
бидејќи другите команди немаат пристап до школка променливи,
само на животната средина променливи.
Но школка операции може да се прочита на школка променливи.
Дека нема да работат за csh. Тоа е само tcsh. Тоа е една од додатоци.
Парсирање има секвенци кога го евалуира metacharacters,
кога го евалуира променливи, адреси, историјата референци.
Постои одредена секвенца за овие работи.
Ако тоа не работи во одредена секвенца
и добива нешто што е израз на еден вид
кој е веќе оценува, не ќе ја разгледаат повторно.
Ако тоа го добива, тогаш само ќе го поминат на карактери.
Значи, ако евалуација на некои изрази како команда замена
или променлива или што доведува до израз
кои вие би сакале да се оценува,
дека ќе работи само ако таа процена се јавува подоцна во низа.
Се надевам дека јас сум се јасни таму.
Дека парсирање низа, операцијата во Ц-школка,
не е иста за вградување во команди како што е за не-вграден во командите.
Јас не сум сигурен за баш таму.
На пример, ако школка променлива произведе упатување историја,
тоа најверојатно нема да се вратиме во историјата.
Тоа само ќе добиете фантастичен точка.
Всушност, ние само може да се обидете дека од сега.
постави = и ние ќе треба да се стави ова во таму.
О, чекај. Жал. Го направив ова во баш. Сакав да го направите тука.
Види, па тоа не се оцени дека референтноста историја
затоа што тоа е веќе минато за точка на оценување историја изрази
кога го оценува променлива.
Па тоа е 1 ефектот на парсирање.
И повторно, вграден во командите не се прави на истиот начин.
Во ред е. Ајде да одиме на следниот тука.
Ова е со намера да биде 1 линија, но тоа е што го прави полесно за читање.
Што значи дека направам?
Може да се потсетиме дека ние може да се оцени звезди како името на датотеката знаци,
а постојат и други фајлот џокери како прашалник и заградата изрази.
Овој вид на евалуација се нарекува globbing.
постави noglob на почетокот на оваа команда вели дека не го направите тоа.
размести noglob вели вратиш да го прават тоа.
Имајте на ум дека сет Глобално не би имале таков ефект.
Во обичниот јазик, во собата Глобално или размести noglob би се чини дека се еднакви,
но тука тоа не е. Тоа е размести noglob.
Сега tset. tset застана за терминал во собата.
Тоа не се користи, кои често сега, но пред windowing системи станаа достапни
и сте имале еден терминал, можеби ќе треба да се утврди видот.
И ако нешто доаѓа преку Ethernet или од мрежата,
можеби ќе сакате да се каже дека тоа е VT100.
VT100 е вид на стандарден во терминал бизнис. Таа доаѓа од декември терминал.
Ако само го прават dialup - забележите дека? Ова оди назад начини, нели?
Значи, ако ние само се tset овде,
ако јас само го направи tset, тоа е ресетирам мојот терминал, но ти не гледам ништо.
Тоа навистина не менува ништо.
-ОК
Во ред.
setenv РОК xterm боја.
Ние веќе знаеме дека терминот беше поставен на тој начин, така што не се промени.
Тоа е начинот на кој ние би сакале да го направи тоа.
Но да се забележи дека оваа команда, tset-а, само излез овие команди. Тоа не ги извршувате.
Тоа не се кандидира на овие команди, тоа излез нив.
Значи ова е наменето за производство на команди кои потоа ќе биде извршена.
Се сеќавате на командата во таа датотека јас само покажа сте имале П во неа.
Па ајде направите тоа.
На П потиснува некои излез, но тоа не е важно тука, како што може да се види.
Јас сум само тоа го прават за да ви покаже дека тоа не е важно.
Ова е во backquote синтакса.
Обрнете внимание на backquote тука, backquote тука.
Јас сум изоставување овие работи тука.
Овие случаи на раскажување тоа што да прави
во случај на одредени типови на терминали -
Ethernet, мрежа, дајл-ап, она што го имате.
Тоа не е важно тука, бидејќи ние не сме всушност прави ниту една од овие работи.
Јас сум само илустрација на команда.
Ако го направам ова со backquote, што сум јас ќе добијам?
Исто така забележуваме дека тука ова вклучува сет noglob и размести noglob,
па тие се сега излишни во дефиницијата.
Тоа не беше секогаш точно, но сега тие се вклучени во оваа команда.
Но, ајде да видиме што се случува ако го направам тоа
и да одат во почетокот на линијата со контрола на А и јас го правам тоа.
Океј, во собата: Командата не е пронајдена. Тоа е вид на чудно, не е тоа?
собата е добро позната команда. Тоа е дел од школка.
во собата: Командата не е пронајдена? Зошто е тоа така?
Hmm. Добро, ајде да размислиме за ова.
Тоа е водење на команда замена backquote,
и што се случува во одреден дел од редоследот на парсирање на командата.
собата е вграден во команда.
Па од време го прави тоа командата замена,
тоа е веќе добиле минатото точка на идентификација вграден во командите.
Па тоа го третира постави како да е команда во патот.
Непотребно е да се каже, тоа не го најде и ќе добиете грешка.
Добро. Има еден пример за парсирање низа.
И што ќе правиме со тоа?
Забележите ова многу интересни команда тука, eval.
Се прашувам што тоа го прави.
Ако се погледне на прирачникот - и ајде да го направите тоа
да се покаже колку е збунувачки овие прирачници се -
човек tcsh, збунети прирачник, наоѓање на работите тука не е лесно или.
Еве ќе одиме, eval ARG, па можеме да имаат 1 или повеќе аргументи
и таму е листа на работи таму.
Третира аргументи како влезови на школка
и извршува како резултат на команди во контекст на тековната школка.
Ова обично се користи за извршување на команди генерирани како резултат на командата
или променлива замена бидејќи анализирањето случува пред овие измени.
Многу добар.
И тука тие дури и се однесуваат на tset команда за употреба примерок
како оној јас само ти го покажав.
Сега морам да го добиете прозорец назад кон корисна место.
Ајде да се овде и ќе видиме дека eval се користи само пред тоа.
Да видиме што ќе се случи ако се стави - тука ќе одиме со стрелките за таа команда
и контрола А до почетокот, eval.
Океј, па тоа функционира.
Кога ќе го направите eval, потребно она што доаѓа по неа и го прави команда.
Ова ви овозможува да суштина го анализирам двапати.
Делот тука тече оваа команда во внатрешноста на backquotes,
добива на излез.
Излез би требало да се кандидира како тие заповеди тука како овие
во овој еден и оваа.
Па оние команди се сега тука, во овој редослед,
но тие се вградени во команди и тоа не може да ги добие веднаш.
Значи одиме на eval, eval зема дека до почнува целата работа сите одново, и тоа функционира.
Пример двете backquoting, eval, парсирањето, последиците од парсирањето,
и команда што е веројатно на многу малку се користи за вас денес.
Во ред. Добро, umask.
Да ги погледнеме на оваа команда тука, umask 022. Се прашувам што тоа го прави.
Ајде само напишете umask со ништо по него. 22. Во ред.
022 и го направи тоа повторно.
Како што може да претпоставам, umask без аргументи ви кажува тековната маска;
umask со аргументи го прави тоа, но тоа беше една јас веќе.
Што значи 022 значи?
Овие се тука заштита за датотека.
Тие се утврди кој е дозволено да прочита или запише или извршување на датотеката.
Заштита се викаат исто така дозволи.
На R се залага за читање, на w за запишување,
и x, кој не е присутен таму, стои за да се изврши.
Постојат 3 категории таму.
Последните 3 елементи се во категоријата на корисникот. Оние се однесуваат на мене, корисникот.
Овие 3 тука се применуваат за групата.
Датотеката спаѓа во групата 1, корисникот може да припаѓа на повеќе групи,
но ако корисникот не е во групата на која припаѓа оваа датотека,
тогаш овие заштита ќе се применуваат за него ако тој не е на корисникот.
И овој е и секој друг.
Овие категории се взаемно исклучиви.
Заштита на корисникот однесуваат на него,
заштита на групата се однесува на членовите на групата, освен на корисникот,
и други заштита се применуваат само на луѓето, освен на корисникот и на членовите на групата.
Ако има r или AW или X, тоа значи дека се дава заштита.
Ако има цртичка, тоа значи дека не е.
Таму всушност се други работи кои може да се стави тука покрај овие,
која јас нема да навлегувам во моментов.
На umask дефинира стандардно за датотеки што ќе се создаде.
И како маска, во основа се вели на битови кои не сте поставиле.
Како го овој стане битови?
Ако мислите дека на секоја од овие како Octal број,
ова е 1s малку, ова е 2s, ова е 4S.
Па од 0 до 7
ќе се опише она комбинација на на r, w, и на x имате за овие 3
а потоа слични број за овие, а потоа за нив.
Па 022 значи 0 за други, 2 за групата, 2 за корисникот.
Но, ова е маска. Маската е она што го немаат.
Жал ми е. Јас само ви даде работи во погрешна цел.
Тоа е првиот 3. Овие 3 се корисник, овие 3 се група на овие 3 се другите.
Жал ми е што ти дал овие во погрешна цел.
0, кој е прв од оние, не се покажува вредноста,
но ако бројот не е таму, тоа е 0.
Тоа значи дека сите 3 на овие ќе им биде дозволено.
Забележи дека во овој конкретен еден х не е дозволено.
Причината е во тоа што на школката е способен за одредување
дали датотеката треба да се изврши или не.
Бидејќи ова не е извршна датотека, тоа не се постави на x.
2 значи дека дозвола за запишување, втората категорија тука,
една во средината, е одбиен.
Па уште еднаш, ова се работи кои го негираше тоа.
Па, x е дозволено, но не е тука, бидејќи тоа не е извршна
и слично за другите.
Па тоа е заеднички umask.
Уште една честа една е 700 - си даде сè и никој друг ништо.
А постојат и други можности.
Јас ќе се вратам на тоа. Користење на историјата јас може да се бара назад за тоа, LWH до таму.
Во ред. Па еве, овие се школки.
Баш, сопственикот, кој е систем сметка, може да се направи сè.
Група и секој друг може да го направи чита или извршување, но не пишува.
Оваа една дури и не им овозможи на сопственикот да пишува на него.
Ако сопственикот сака да пишува на него, системот сметка,
тој ќе мора да се промени на заштита во прв план.
Но, повторно, umask одредува default со маскирање неа,
со наведување на битови кои нема да бидат поставени.
Ова е обично во една од вашите иницијализација додадени фајлови, што е. Cshrc за C-школка
или профил на. за Bourne-тип школки.
Тоа може да биде на друго место, исто така, ако постојат други иницијализација датотеки на системот.
Впрочем, тоа е umask.
Има нешто вид на чудно тука,
а тоа е, зошто е таму една единствена команда за ова?
Ако јас пишувам ова, јас би го променлива, umask = некои вредност направи.
Зошто има целата команда само за оваа намена?
Причината е тоа само оди назад во однос на потеклото на Unix.
UNIX е само некои програмски проект во Bell Labs во почетокот на 1970-тите.
Луѓето едноставно се собраа заедно да програма.
Тие никогаш не се наменети да стане светски оперативен систем.
Различни луѓе, пишува различни делови, без размислување многу
за тоа како тие се случува да се користи - наместо површни.
И дојде заедно како што и тоа е уште како што во некои аспекти.
Така што се одразува на историјата, и се уште има овие недоследности и чудни елементи на неа.
Во ред. Следниот тука.
Како што напишав порано, C-школка не е навистина користи многу за програмирање,
иако тоа може да биде.
Се извршува побавно, повторно трампа помеѓу интерактивна употреба,
која има повеќе процесорска вклучени од брзината,
кои можат да сторат без обработка.
Екстра функции додадени на Bourne школката од Korn и Bourne-повторно школки
не чини да ги успори, и не знам зошто тоа е.
Тоа само може да биде подобро за програмирање, но јас не сум во позиција да знаеш.
Забрза тука, всушност, не е толку голема работа, иако тоа се споменува.
Причината е во тоа скрипти всушност прилично брзо.
Ако има многу команди како во calculational програма,
најверојатно не би го сторил во школка скрипта.
На нивните операции таму се прилично едноставна и јасна.
Оние кои сум искусен кои се премногу бавно
вклучат повтори апликации на бавен команди.
Претходно споменав поток уредник сед. Таа команда е бавен.
Ако ја извршите сед многу пати, ќе добиете бавно скрипта, но тоа не е школка тоа е бавен.
Вклучување на тоа во Борн школка не ќе биде многу побрзо отколку трчање во Ц-школка,
иако има можеби некои предности таму.
Дополнителни програмирање можности, од друга страна,
се значајни причини зошто би го користите на Bourne-тип школки.
Ц-школка има чудно опции за неа -
фактот дека не се знае дали некоја променлива е школка променлива или променлива на околината.
Тоа може да биде многу збунувачки.
Тоа не е толку лесно да се напише
само врз основа на вашето искуство на програмирање на други јазици.
Мислам дека може да се најдат на Bourne-тип школки повеќе во согласност со вашето искуство.
Некои скрипти, сепак, може да има илјадници линии во должина.
Оние што сум ги видел се користат за амандман оперативни системи.
Оние може да се изврши многу бавно, но вие не се кандидира оние многу често.
Тоа е само кога правиш амандман,
и тоа е само систем менаџер, кој прави тие работи,
па тоа не е навистина многу на ова прашање.
Оние кои се стотици линии долги всушност се изврши релативно брзо.
Се спомне овој тука, она што се оние подобрувања?
Јас веќе спомнав неколку од нив - низи, пресметки,
на $ () изразот за пресметките во баш школка,
друг вид на командата супституција.
Постојат различни видови на тестирање команди
со кој можете да направите со условен тестови за постоење на датотека или други работи.
Трае тука, оваа команда тука.
Што значи тоа го прават, и зошто некој би го користам?
printenv variablename.
Ние знаеме што printenv прави. Таа ни кажува вредноста на променливата.
И printenv variablename нема да ни кажете многу многу, бидејќи не постои такво променлива.
Празно.
Но, ајде да го даде нешто значајно.
Тоа не е таму. Во ред. Претпоставувам дека никогаш дефинирано тоа.
Ајде да се провери мојата околина.
Ова е уште една команда со која можете да прегледате вашиот животната средина.
Постои старите добри уредник, една видовме досега.
Што значи дека направам?
Тука имаме backquote изразување.
Се сеќавам ова е C-школка.
Па printenv УРЕДНИК ќе ни даде вредност на уредник. Тоа е VI.
И тогаш тоа ќе ја постави таа вредност на променливата а, во собата команда.
Па сега, ако го направам ехо долари, да се добие VI.
Тоа не изгледа страшно корисни.
Сепак, тоа всушност не имаат цел.
Бидејќи ние не знаеме дали променлива е школка променлива или променлива на околината
со користење на знакот за долар евалуација синтакса, можеме да го користиме printenv
да бидете сигурни дека тоа е променлива на околината.
Значи, ако имаше школка променлива уредник, ова не би го добиле.
Ова работи само со променливата на околина.
Дали имало школка променлива и сакав неговата вредност,
Би мора да се најде друг начин да го направи тоа.
Еден начин да се направи тоа ќе биде со правење собата и цевки.
Ова е еден од metacharacters, специјални знаци.
Тоа праќа излезот на сет на нешто друго.
Ајде да видиме што ние може да се најдат таму.
Ништо. Во ред. Ајде да видиме што е таму сите заедно.
Тоа беше echo_style, оној што споменав порано. Океј, ајде да го направите тоа.
Се сеќавам веќе напоменав претходно, echo_style
определува начинот на ехо команда ќе се кандидира.
BSD се залага за Беркли Стандардна Дистрибуција.
Ова е Беркли Unix од 1970-тите.
Тоа е еден од начините на кои ехо може да работи.
Поставување echo_style на таа вредност во ТЦ-школка ќе предизвика ехо да се однесуваат на тој начин.
Па постави прави тоа, но во собата само добива школка променливи.
Тоа нема да најдеш уредник, кој не е школка променлива.
Ништо.
Значи тоа е еден начин на правење разлика нив.
Но, фактот дека треба да се оди преку некои чудни команда, како што
да се направи разлика помеѓу школка променливи или животната средина променливи
покажува оној вид на практично природа на C-школка за некои цели.
И сега, последната и можеби најмалку важно, ова е човекот страници.
Оние на кои што можеби знаете, човекот е команда краток за прирачник.
Човекот страници за школки се тешко да се прочита. Тие се многу долго.
Тие се организирани на начин кој може да е тешко да се најде она што го барате.
Значи, ако сте во потрага за нешто со цел,
Вие не може да знае дали таа намена е школка променлива или нешто друго,
така да не може да знае каде да се погледне за неа.
Можете да барате различни жици, но конците често се повторуваат.
Така што е генерално е тешко да се прочита.
Ние само погледна на ТЦ-школка човек страница малку пред да се најде на eval команда.
Некои работи оди побрзо.
Еден начин е да пребарувате за низа.
Можете да го користите пејџер.
Пејџер има коса црта да се погледне за команда или стринг во внатрешноста на пејџер операција.
Човек стандардно ќе го користи скокачот на работни површини, или да биде повеќе или помалку.
Јас не знам дали сте запознаени со нив, но тие можат да покажат датотеки малку од малку.
Сум бил со користење на помалку за да се прикаже овие посебни датотеки имаме тука.
Можете да пребарувате внатре таму.
Може да се обидете со користење на различни пребарување жици.
Исто така човек страници во различни оперативни системи не може да биде ист.
Тие можат да бидат одделни страници за csh и tcsh.
Тие не се на Mac, но тие би можеле да бидат ако тие се посебни команди.
Ако sh навистина не се јавите баш, веројатно ќе биде посебен човек страница.
Некои системи имаат посебен човек страници само за C-школка вграден во командите.
Понекогаш, ако сакате да го прочитате описот на вграден во команда
тоа е, исто така, во патот, како ехо, треба да го прочитате човек страница на таа команда на ехо
за да се утврди како ќе функционира како вграден во команда
дури и ако не се повикуваат на вградениот команда.
Тоа е недостаток на оперативни систем во целина, не само за школки,
иако за школки особено човекот страници се прилично долга,
делумно затоа што тие додадов корисни функции за нив, што може да биде позитивен.
Во ред. Дали постојат било какви прашања? Секое теми сакате да се донесе до?
Ништо релевантни тука?
Па, тоа е многу убаво да разговараат со сите вас.
Се надевам дека ќе имам нешто од овој семинар
кои ќе бидат корисни за вас во својата иднина потфати.
[CS50.TV]