[Seminārs - Unix čaumalas, vide] [Douglas Kline - Harvard University] [Tas ir CS50. - CS50.TV] Šodienas tēma ir Unix shell. Es esmu Douglas Kline, eksperts, vai vismaz pietiekami kompetenta lietotājs, korpusa. Apvalks ir saskarne lietotāju uz datora operētājsistēmu. Nosaukums ir maldinošs, jo, atšķirībā no dzīvnieka čaumalu, kas ir grūti un aizsardzības, datoru apvalks ļauj komunikācijas. Tāpēc porains membrānu, iespējams, būtu labāks metafora. Oriģināls apvalks Unix ir Bourne čaula. Bourne ir plēkšņu B-O-U-R-N-E. Bourne bija viens no sākotnējiem autoriem Unix, un tā apvalks ir nosaukta viņa vārdā. Minētā čaulas kā komandas nosaukums ir vienkārši sh. Tas ir komanda, jūs varat izpildīt. Shell sākas pieteikšanās. Kad jūs piesakāties datorā, apvalks tikai sāk darboties, lai jūs, un tas, ko aizņem jūsu komandas. To var sākt citā laikā arī. Ja jūs audzināt logu nav citas norādes, tas sāks čaulas jums. Tas, kā tas ir, ka jūs varat doties uz loga un sākt rakstīt komandas un tā tālāk, tur, pat ja jums nav pieteiktos uz šo logu. Turklāt, ja jūs tālvadības login, tad tas sāks apvalks uz attālā datora. Un tas ir iespējams palaist komandas bez interaktīvu čaulu. Tas var nozīmēt jūsu pašreizējo darbību, un tas var nozīmēt arī tālvadību. Jūs varētu nosūtīt komandu uz citu datoru, kas ietver uzsākšanu apvalks tur. Faktiski, tas ir jāiekļauj uzsākšanai apvalks tur pat tad, ja tas nav jūsu gala mērķis. Kad kaut kas sāk augšu, piemēram, tas, tas ne vienmēr sāktu jaunu apvalks. Ja jūs audzināt jaunu logu, tas ir iespējams pateikt to audzināt redaktors vai kādu citu komandu. Tādā gadījumā, redaktors sāksies no nulles. Kad redaktoru beidzas, logu beidzas. Tas ir mazliet neparasti, bet tas var izdarīt. Šajos gadījumos tas nebūs apvalks. Tāpēc tas ne vienmēr tā ir, ka logs vai kādu šāda piemērošana būs audzināt apvalks. Shell parses komandas. Analizējot nozīmē nosakot dažādus elementus un tos klasificētu. Tās komandas, pilnīga string, ka jūs tipa, tur būs 1 vai vairākas atsevišķas komandas, lai tiktu izpildīts. Citi elementi var būt argumenti. Var būt arī speciālās rakstzīmes, kas ietekmē izpildi komandu. Viņi var sūtīt produkciju kaut kas nav ekrāna ja komanda būtu parasti nosūta to uz ekrāna. Tas var novirzīt ievadi, to var darīt citas lietas arī. Ir dažādi citi simboli, zīmes, un tā tālāk. Analizējot ietver atklātu un interpretējot tās lietas. Tagad, ja ir ne vairāk jautājumi, kas ir diezgan iespējams, jo nav vairāk cilvēku, mēs dosimies uz manu nākamo lapu šeit. Es teicu iepriekš, ka Bourne apvalks ir sākotnējais apvalks. Tur ir citi. Viens ir C-shell. Komanda ir CSH. Nosaukums C-apvalks ir tikai vārdu spēle. Šis apvalks tika ieviests ar Berkeley Unix vidū 1970. Berkeley Unix bija radošs notikums attīstībā Unix. Tā bija milzīga revolūcija un ietvēra šīs čaulas ieviešanu. Iemesls šo vārdu spēli, C-shell, ir tas, ka C-čaulas ir dažas tajā īpašības, kas līdzinās C valodu, kas Bourne shell nav - vai arī tas nebija tajā laikā. Tur ir arī TC bruņas. Tas ir superset C-shell. Tas ir papildu funkcijas, no kuriem daudzi ir noderīgi interaktīvai lietošanai, piemēram, atgādinot komandas vēstures mehānismā, ko es ņemšu aprakstīt nedaudz vēlāk - vienkāršā veidā, kas veidota pēc redaktoru. Tas arī ir stiprinājumi, kas ļauj jums saistīt īsu galveno virkni ilgāku komandu. Mēs nebrauksim, lai nokļūst, ka šodien. Tas ir dažas funkcijas, kas ir noderīgi programmēšanu. Tomēr, C-apvalks nav bieži izmanto shell programmēšanu. Shell programmas, ja jums nav jau zināt, ir programmas, kas sastāv no čaulas īpašības. Jūs varētu palaist tos kā programmas. Rakstot ķekars shell komandas failā un izpildīt failu. Jums nav nepieciešams, lai apkopotu to. Tas ir interpretācijas valoda. Tagad frāze C-apvalks ir neskaidrs, jo tas varētu attiekties tikai uz sākotnējo C-čaulas, CSH, vai visu C-apvalkiem, ieskaitot elm. Tas ir nedaudz neskaidrs. Vēlāk apvalks ir Korn apvalks, ksh, nosaukts pēc programmētājs, Korn. Šis apvalks mēģināts iekļaut 1 čaulā priekšrocības C-apvalks interaktīvai lietošanai un Bourne Shell plānošanas. Tas ir ticis izmantots kā interaktīvu čaulu ar dažiem cilvēkiem - minoritātes. Vēlāk gan, tur bija vēl viens ievads, Bash apvalks, BASH, atkal vārdu spēli, Bourne-atkal apvalks. Tas ir par Bourne Shell paplašinājums. Korn apvalks ir arī. Abas no tām ir. Tam ir tādas pašas mērķus Korn čaumalu, kas apvieno C-apvalks ir un Bourne Shell ir priekšrocības 1 čaumalu. Daudzi no uzlabojumiem Korn čaumalu ir iekļauti arī Bash. Bash, tomēr ir vairāk, un tādējādi ir vēlams. Bourne-atkal apvalks un Korn apvalks sauc Bourne tipa apvalkiem jo tie ietver Bourne Shell īpašības, kas nav savienojama dažos aspektos ar C-korpusiem. Ir arī citas čaumalas turklāt tiem, daži paredzēti ierobežotai izmantošanai, varbūt tikai dažas komandas, varbūt specializētās mērķiem, netiek bieži lietots. Labi. Nākamais punkts šeit. Bash shell ir kļuvis saistīta ar dažāda veida Linux. Es neesmu pārliecināts, vai tā ir taisnība, par katru formu. Ir daudzi veidi, kas tur, un man ir neizmanto tos visus, bet tiem, kas man ir izmantoti tas ir kļuvis kas saistīti ar to. Ciktāl es zinu, nekas par Bash kas padara to vairāk ir saderīga ar Linux nekā jebkura cita kombinācija čaulas un operētājsistēmas. Es domāju, ka tas droši vien tikai atspoguļo tieksmes par programmētāju. Ka tas ir kļuvis saistīts ar Linux, ir vēl viens iemesls, lai priekšroku Bash uz KSH jo lietas, iespējams, ir rakstīts, un tas ir iespējams izplatīties. Es došu jums ir citi riska faktori, kas vēlāk. Bourne Shell skripti vajadzētu braukt ar Korn čaumalu vai Bash. Ja jums rakstīt kaut ko Bourne Shell, Jūs varat droši izpildīt saskaņā KSH vai bash. Korn shell skripti, iespējams, darbosies saskaņā ar Bash, bet es nevaru garantēt, ka. Vēlāk šeit, C-čaulas skriptus būtu braukt ar TC-čaumalu. C-shell faktiski nekad nav plaši izmanto skriptu jo Bourne Shell un vēlāk Bourne tipa čaulas bija vēlams šim nolūkam. Tātad tas tiešām nav viss, kas svarīgi. Ir diezgan daudz Bourne Shell skriptus, kas rakstīts sen, pirms Korn čaumalu vai Bourne-atkal apvalks tika ieviestas. Tie ir joprojām izmantošanu, kas ir daļa no operētājsistēmām, un tā jūs atradīsiet to, ja paskatās uz operētājsistēmu vai dažas vecās programmu paketes. Bash ir zināmā mērā kļūst par sava veida lingua franca par operētājsistēmām. Tas jau tika pagarināts uz Windows un VMS. VMS, ja jūs nezināt, ir patentēta operētājsistēmas Digital Equipment Corporation, kas joprojām lieto, galvenokārt aizkulisēs. Un, ja tas būs darbojas dažādās operētājsistēmās, iespējams, ka cilvēki mēdz pāriet uz to. Bet šī attīstība ir salīdzinoši nesen. Tas ir tikai sākums, tāpēc es nevaru prognozēt, ja tas izrādīsies patiesi, ka sava veida lingua franca. Arī tāpēc, ka failu pathnames un bibliotēkās atšķiras starp šīm dažādajām operētājsistēmām, Jūs, iespējams, nevar uzrakstīt bash skriptu vienu operētājsistēmu un tad palaist to uz citu. Jums vajadzētu būt iespējai, lai pārvietotu to starp dažādām UNIX, Linux Mac OS operētājsistēmas, bet ne vienmēr to Windows vai VMS. Jums var būt nepieciešams mainīt failu ceļavārdiem aprakstus, un dažas bibliotēkas var būt atšķirīgs, kas var ietekmēt tā, ka dažas komandas darbu vai to, kā tās apstrādā argumentus un tamlīdzīgi. Papildus tam, ka, cita piesardzība šeit ir tā, ka nav nekādas garantijas, ka visas dažādās čaumalas es esmu minēts - Bourne Shell, C-čaulas, TC-shell, Korn shell, Bourne-atkal apvalks - būs pieejami saskaņā ar jebkuru Unix vai Linux vai Mac OS datoru. Viņi vienkārši var nebūt tur. Tas ir viens no brīdinājumus šeit. Tas ir žēl ierobežojums šeit, jo jūs vēlaties lietas, kas strādā visur, bet, diemžēl, jūs nevarat paļauties uz to. Labi. Nākamais šeit. Pieņemsim, ka jūs vēlaties rakstīt shell skriptu, programma, kas sastāv no čaulas komandas. Jūs rakstāt savu komandas, nodot tos failu, un izpildīt failu. Ko darīt, ja jūs vēlaties iekļaut argumentus? Gadījumā, ja apvalks darbībām argumenti sauc parametrus vai pozicionālās parametri un tie būs saukt ar dolāra zīmi, un cipara, $ 1, $ 2. Tātad, ja skripts ir šo vārdu, mans pirmais arguments varētu būt arguments 1 un mans otrais varētu būt arguments 2, un manā rakstībā, ja es vēlos atsaukties uz šīm lietām - pieņemsim dzēst šo, jo es neesmu īsti gatavojas palaist to - iekšā manu skriptu es varētu būt $ 1 līdz atsaukties uz ARG1, $ 2, kas būs, ka veidā, arg2. Tātad šie simboli ir pieejami, lai atsauktos uz argumentiem, un tie attiecas uz visiem čaulām. Bez tam, ir arī citas rakstzīmes. $ * Attiecas uz visu argumentu sarakstā, visi no tiem. $ # Atsaucas uz vairākiem argumentiem. Atkal, tas attiecas uz visiem korpusiem. Šie simboli, * un #, var izmantot ar šīm nozīmēm citās vietās arī. Mēs nebūsim nokļūst to. Shell apzīmētājs līnija. Kas ir, ka? Pieņemsim, ka jūs esat uzrakstījis scenāriju, un tas ir par konkrētu čaumalu, un jūs vēlaties, lai tā varētu darboties. Kā jūs zināt, ko apvalks jūsu operētājsistēma izmanto, lai palaistu savu skriptu? Vienā brīdī jūs varētu pieņemt, ka tas varētu darboties to Bourne Shell ja jums nav teikt savādāk, bet cilvēki nav rakstīt skriptus ar Bourne Shell, ka daudz vairs un jūs pat nevarat paļauties uz to vairs. Tātad, šeit mums ir apvalks apzīmētājs līnija tieši šeit. , Kas norāda Bash. Ņemiet vērā, ka tas nosaka to ceļavārdiem, / bin / bash. Ja datoram ir bash shell, bet ne bin direktorijā, / bin, tas nedarbosies. Tas ir vēl viens apzīmētājs, vēl piesardzīgi šeit. Restīte ir komentārs līnija raksturs. Tas attiecas uz visiem korpusiem. It īpaši šajā gadījumā, #! sākumā skriptu, ir īpašs gadījums. , Kas norāda, ka apvalks, kurā, lai palaistu skriptu. Kā jau es teicu, tas varētu būt tajā pašā vietā / bin. Bez tam, tur ir cita lieta šeit. Ja jūs tikai izmantot restīte bez izsaukuma zīmi un ceļavārdiem, kas jānorāda C-apvalks. Tomēr es nedomāju, iesakām to izdarīt, jo es neesmu spējīgs garantēt ka tas vienmēr strādā. Ja jūs vēlaties C-apvalks, tas būtu labāk, tā teikt. Tad tur ir kaut kas diezgan mulsinoši šeit. Ja jūs izmantojat apvalks apzīmētājs līniju, piemēram, / bin / bash un ka apvalks nav pieejams tur, tur nav tādas lietas kā / bin / bash par šo konkrēto datoru, vai nu tāpēc, ka tas nav Bash vai tāpēc, ka tas ir citā vietā, jūs saņemsiet kļūdas teikts, ka skripts jūs ilga neeksistē. Un, protams, jūsu skriptu pastāv, lai kļūdas ziņojums ir mulsinoši. Iemesls, ka operētājsistēma sniedz jums, ka kļūda vai, precīzāk, ka jūsu interaktīvā apvalks, kurā jūs izmantojat tas dod, ka kļūda, ir, ka tas sniedz komandu, kuru izmantojāt, kas ir nosaukums skriptu. Ka komanda faktiski sauc apvalks ar nosaukumu skriptu. Tas ir, ja jums, ka mulsinoši kļūdas ziņojumu. Vēl viens veids, kā zvanīt shell skriptu ir norādot apvalks uz komandrindas, kā šeit. Šī ir komanda. Šis saka palaist bash un pēc tam palaist manu skriptu Bash. Kas būs prioritāte pār apzīmētājs līniju, un tas ir, kas ļauj jums, lai nodrošinātu dažādu pathnames funkciju. Ja jūs vienkārši dot komandu, operētājsistēma meklēs šo komandu dažādās vietās. Ja tas ir iespējams, būtu atrast. Dators atradīs Bash, kur tas atrodas, un palaist to, tāpēc jums nav nepieciešams, tad ir bažas par to, kur tas atrod to. Ir iespējams, citas problēmas šeit, kā tad, ja tur ir vairāk nekā 1 versija Bash, kas ir iespējams, lai gan maz ticams. Tātad, tas ir vēl viens veids, kā tikt galā ar šīm lietām. Apzīmētājs līnijas var zvanīt uz jebkuru čaumalu. Tās var arī zvanīt lietas, kas nav korpusiem. Piemēri Man šeit ir sed, kas ir plūsma editor; AWK, kas ir modelis apstrādes valodas; un Perl, ļoti augsti attīstīta skriptu valoda. Ja jūs likts apzīmētājs līnija, norādot vienu no šīm programmām, sākumā, tā iet tieši uz šo programmu, nevis sākot apvalks. Šīs programmas ir robežas savām spējām. Perl ir ļoti spējīgs. Sed ir redaktors. To var darīt lietas tālāk vienkārši rediģējot. Bet tas var būt grūti, lai programma, kas. Turklāt, iet argumentus un stuff skripts ir vai nu neiespējama, vai mulsinoši. Tātad šajos gadījumos ar AWK un sed, tas ir, vismaz manā pieredzē, vēlams rakstīt shell skriptu un zvanu awk vai sed no shell skriptu nevis zvanot awk vai sed kā skriptu Specifikāciju līnijas. Perl ir ļoti daudzveidīga valodu, kā es teicu. Jūs nevarat palaist interaktīvu komandas perl, kas nozīmē, ka jūs nevarat pārbaudīt daļas skriptus, ka jūs esat jaunattīstības palaižot tos interaktīvi. Tomēr tas ir ļoti spējīgs valoda un ir izveidojušies ļoti plaši izmantots līdzeklis. Tas ir tikai nedaudz par Parenthetical piezīme par Specifikāciju līnijām. Ar visu vai lielāko daļu Linux formu - atkal, es nevaru būt drošs, ka viss - un Mac OS, ja jūs tipa CSH jums tcsh, un, ja jūs tipa sh jums bash. Viņi centās tur, lai dotu jums vairāk uzlabotas versijas šīm čaumalas, bet tas var būt mulsinoši. Ja jūs uzrakstīt skriptu izmantojot tcsh vai Bash funkcijas vienlaikus aicinot CSH vai sh un tad mēģināt palaist to datorā, kurā nav tcsh vai Bash, jūs varētu saņemt kādu kļūdu, ja ir komandas, kas tur kuriem šīs čaulas neatzīst. Bez tam, jums var būt sauc savu apvalks tavā datorā nosaucot to par sh un CSH, un tad kļūst vairāk uzlabotas čaumalas. Jums var pat domāt par to, ka jūs esat, izmantojot vairāk progresīvas čaumalu. Tātad tas ir potenciāls pitfall. Kā tas ir konstatēts, ka, ja jūs tipa sh jums Bash, ja jūs tipa CSH jums tsch? Ir lietas, kas šiem datoriem sauc saites kas var savienot failu nosaukumus, lai apzīmētu vienu un to pašu. Tas var būt vai nu 2 vārdi apzīmē vienu failu vai failu, kura mērķis ir atsaukties uz citu failu. Viņi aicināja grūti un simboliskās saites. Mēs nebūsim nonākšana ka vairs šodien. Var būt arī atsevišķi faili - 1 failu sh, 1 failu Bash - bet tie abi darbojas Bash. Tad tur ir cita kvalifikācijas šeit. Ja jūs aicināt kādu no šiem korpusiem ar vienu vārdu, Jūs, iespējams, domāju, ka jūs saņemsiet to pašu funkcionalitāti kā aicinot to ar citu nosaukumu. Nu, tas patiesībā ne vienmēr ir taisnība. Šīs komandas var pārbaudīt vārdu, ar kuru viņi sauc , un tās var, pamatojoties uz minēto nosaukumu, izturas atšķirīgi. Var būt jautājumi, mēģinot atbilst standartam. Daži no jums var būt dzirdējuši par POSIX standartam vai citu, varbūt citas funkcijas. Tas var tikt izvēlēts reizēm ar komandrindas argumentus vai nosakot čaulas mainīgos. Nosaucot to par sh vai bash faktiski var novest pie dažādām izpildi pat ja tas ir pats fails, ka jūs esat izpildes. Vēl viena lieta apsvērt, ir, ka, pat ja cits dators ir tcsh vai Bash, ja tie nav saistīti, jo tie ir tavā datorā ja jums ir Linux vai Mac OS lokālā datora, tad atkal jūs saņemsiet apvalks, ka jums zvanīt sh un CSH, nevis viens, ka jūs varētu labāk. Pašreizējais Bourne čaulas ir uzlabojumi mazāk nekā Bash bet agrāk tie sākotnējā Bourne čaumalu. Kā rezultātā, ka pat pašreizējo Bourne shell, sh, pat ja tas nav Bash, līdzinās C valoda vairāk nekā C-shell dara. Tas nebija taisnība, kad C-shell pirmo reizi tika izveidota, bet tā ir izstrādājusi, ka veidā. Jūs ievērosiet, šeit, ka visi šie čaulas nosaukumi izņemot Bourne čaulas ir kaut kas, lai norādītu, kurām apvalks tie - CSH, bash - bet Bourne čaulas ir tikai sh. Kāpēc? Tas bija oriģināls apvalks. Tas bija apvalks, tad, nevis apvalks, un tā kā tas bija apvalks, nebija nekāda iemesla, lai atšķirtu to no citas čaumalu. Tātad, tas ir iemesls, kāpēc tā ir, ka vārds un joprojām dara. Tas top šeit ir līnija no paroli datubāzes kontu man ir tur citā datorā. Es esmu gatavojas izmēģināt, lai iegūtu šo nosaukumu, lai jūs varētu redzēt, ka daļa beigās, čaumalu. Parole datubāze tur pieteikšanās īpašības visiem lietotājiem. Sākumā ir lietotājvārds, kuru jūs varat redzēt pēdējos 2 burtus raktuves tagad. Laukus šeit ir atdalīti ar kolonnas. Pēdējais lauks, kā jūs varat redzēt, ir bin / tcsh, apvalks. Tas ir apvalks apzīmētājs. Tur ir kaut kas interesants šeit. Kad Unix pirmo reizi tika izstrādāta, tur bija tikai 1 apvalks, tāpēc nebija izvēles tur. Tad kāpēc viņi ļauj lauks paroli datu bāzē, lai norādītu apvalks? Es nezinu, bet tas ir paveicies, ka viņi darīja. Tas ir diezgan grūti veikt izmaiņas paroli datubāzes formātā jo daudzas programmas attiecas uz tā formāta un tas ir jāpārraksta. Tas ir labi izvēlēts, vai nejauša attīstību, kas tie ir ietverti šajā jomā. Šāda veida paroles failu līnija tiek izmantota visām Unix un Linux datoriem, lai cik es zinu. Mac ir sava sistēma. Tas faktiski ir parole failu ar līnijām šajā formātā, bet tas nav, ja tiek definēti lietotājs īpašības. Vēl viens Iekavās piezīme tur. Ja jūs aicināt apvalks, jūs varat zvanīt tas, kā sub-čaulas jūsu esošajiem korpusiem. Tātad, ja es eju šeit, pieņemsim atbrīvoties no šīm lietām. Šeit es C-shell. Tas mainīgais, kas precīzi nosaka manu apvalks, patiesībā ne vienmēr ir uzticams veids, kā noteikt to, kas apvalks, jūs strādājat, tomēr šajā gadījumā tā ir. Ko darīt, ja es vienkārši ierakstiet - Tagad es esmu Bash. Dažas lietas, būs tas pats. ls man saka manas komandas. Ja man apturēt atpakaļ uz manu C-korpusa, ls, pats. Tiesības? FG, jaunas zināšanas, atpakaļ uz manu Bash čaumalu. parole, pašreizējā direktorijā, atpakaļ uz C-čaumalu. parole, dažādi katalogs - faktiski nav atšķirīgs direktorija šajā lietā. Tas pats direktorijā. Pieņemsim, ka es vēlos, lai izsauktu komandu šeit: kur ls. Ko tas dara? Tas man saka, ja ls komandu, viens, kas dod man direktoriju sarakstu, atrodas ls. Iesim atpakaļ uz Bash čaumalu. Mēģināsim to pašu. Hmm, interesanti tur, kur komanda nav atrasts. Kāpēc tā? Kur komanda ir veidota ar C-shell. Tas nav komanda, kas ir jālasa atmiņā no kaut kur citur, un to izpilda. C-apvalks darbojas to nododot izpildei, lai daļu no tās pašas kodu un tas nav ar Bash apvalks. Tātad Bash, kam nav šādu iebūvēto komandu, meklē to, nav atrast to, un mēs kļūda. Tātad mums ir Bash apvalks darbojas saskaņā ar C-čaulas, un mēs to saucam, ka sub-čaulas. Un tikai gadījumā, ja jūs esat ziņkārīgs, Bash shell ir savs veids, kā atrast komandas. sajauktā norāda uz to, ka tā var tikt izpildīts ātrāk, tiek atrasts ātrāk. Tas ir viens no uzlabojumiem, uzcelta uz kādu no šiem korpusiem. Bourne tipa čaumalas tiek dota par programmēšanu. Viņi ir kontroles struktūras, piemēram, cilpas, nosacījumu paziņojumiem, veida komandas, kas jūs varētu izmantot programmēšanas valodas, piemēram, C un neatkarīgi no valodas. Varbūt jūs esat plānošanas Java vai neatkarīgi. Čaulas ir tiem pārāk. The Bourne tipa čaumalas, jo Bash, ir vairāk un tie ir izstrādāti ar lielāku elastību. Bash apvalks ir masīvi. Oriģināls Bourne čaulas nav. Tā, ka var būt ievērojami izdevīga programmēšanu. C-shell tiešām ir masīvi, bet nav daudz šīm citām funkcijām. The Bourne tipa apvalkiem veiks ātrāk ja tie nav pazīmes, kas paredzēti interaktīvai lietošanai. Jūs slodze lietas leju vienam mērķim, tas ielādē tos citam mērķim. Tur ir, ka kompromiss nav. Šie elementi, kas paredzēti interaktīvai lietošanai tiešām ir maz vai nav izmantojami skriptu. Tas ir iespējams izmantot interaktīvu sub-čaulas tāpat kā viens es sāku tur izmēģināt komandas, kas jūs plānojat izmantot skriptu. Tas ir tas, ko jūs nevarat darīt ar Perl. Jūs varat darīt to ar korpusiem. Pat, piemēram, attiecībā uz cilpas un tā tālāk struktūras var darboties interaktīvi. Tie ir reizēm noderīga, lai palaistu interaktīvi, bet drīzāk jūs izmantojat tos, lai attīstītu skriptu. Pseidonīmi. Tas būs par C-shell. Vēsture mehānisms, kur jūs saņemsiet atpakaļ uz iepriekšējām komandām vai daļu no tiem, ka jūs esat jau darbojas. Atkal par C-čaumalu, Bourne čaulas un Korn apvalks ir šīs lietas, bet es neesmu gatavojas saņemt uz tiem. Tātad, šeit ir daži noderīgi pseidonīmi, kas man ir. Vietā ierakstot ls - tas ir kopīgs komandu - vienkārši ierakstiet l un saglabāt sev 1 raksturu. ls ar dažādām iespējām, visi tie strādā. Ņemiet vērā, ka šīs definīcijas ir pēdiņas ap tiem. Šādos gadījumos pēdiņas nav nepieciešamas. Ja jūs varat noteikt tos pseidonīmi bez pēdiņām, tas joprojām strādā. Tie ir ieteicama. Ir situācijas, kurās jūs nevarat izmantot citātu tāpēc, ka jūs vēlaties, lai kaut ko, kas quote varētu novērst. Dažreiz jūs varat citēt daļu no definīcijas, bet ne visi no tā. Tas ir arī parasti ieteicams lietot vienu pēdiņām nevis pēdiņas. Pēdiņas ir ietekme uz mainīgo lielumu definīcijām, īpaši izraisot to jāvērtē nevis pārtraucot to. Kāpēc mēs gribam, lai apturētu novērtējumu? Un kā citātus darīt, ka mums? Te ir komanda, kas jūs varētu atrast interesants. "Ls g *" g *, kā jūs droši vien zināt, ir aizstājējzīme izteiksme visu failu nosaukumus, kas sākas ar g. Ja es tikai rakstīt komandu ls g *, es saņemsiet sarakstu ar visiem šiem vārdiem manā pašreizējā direktorijā. Ja es noteikt, ka alias, kā tas ir šeit, ar pēdiņām, tas darbosies šo komandu savā pašreizējā direktorijā, kur jūs lietojat to. Bet, ja jūs palaist alias definīciju bez pēdiņām, tā izvērtēs wildcard g *, ja tā vada šo nosakot komandu. Tā definīcija alias tiks ls seko sarakstā failus direktorijā kurā alias komanda ir izpildīta, neatkarīgi no tā, kur jūs faktiski plānojat palaist komandu. Tas nav daudz izmantot, un vienu pēdiņām novērstu novērtējumu zvaigznīti. Tātad, jūs vienkārši iegūt izšķirtspējas būtne ls g *. Tad, kad jūs darbināt alias, LGS, tad tas liek šo out. Tagad ir bez pēdiņām, un tas izvērtēs zvaigznīti palaižot alias komandu. Tāpēc, ka ir viena lieta. Pēdiņas būtu, ka tāds pats efekts šeit bet ir arī citi gadījumi, kad pēdiņas nedarbosies tik labi. Te ir vēl viens. Jūs varētu zināt grep komandu. Grep komandu var izmantot, lai skenētu failu līnijas, kuras ir noteiktas virknes. Tāpēc iesim nekā šeit, un es izietu no mana Bourne čaumalu. Labi. Šeit ir fails. Pieņemsim, ka tas ir grep abc stīgas. Tur tas ir. Ja man grep zddd, man neko. Labi. Tāpēc tā konstatē virkni, tas sniedz, tas neatrod, tas nav par to ziņot. Tā izejas jebkuru līniju, kas ir šo virkni par to. Ir visu veidu iespējas, šeit, ko jūs varat atrast dokumentācijā. Lūk, viens veids, kā to darīt. Ko par šo vienu, alias grabc "grep abc"? Kas notiek, lai tajā iekļautu 1 arguments, kad alias ir definēts. Tātad, ja es daru to šeit, tagad, ja man grabc, Tagad alias ietver vairāk nekā vienkāršu komandu. Tas arī ir arguments. Tik tālu, ka darbojas. Man ir citu komandu šeit, šo vienu, tāpēc tie ir dažādi stīgas tur un norāda, ka tas nav atrast kaut ko tur, jo tas nesakrīt. Ko darīt, ja es gribu ar alias definīcijā ietver failu, ka es esmu gatavojas meklēt un es vēlos, lai dotu kā arguments, lai alias stīgu, ka es meklēju? Es varētu vēlēties pateikt abc kā arguments, lai mana alias, bet alias jau noteica failu. Un tas ir, ja šis izteiciens nāk collas Ievērojiet, šeit mums ir grep, tāpat kā agrāk. Mums ir failu šeit, stīgas. \! ^, Sava veida nepāra izteiksme, es domāju, ka, ja neesat redzējuši šo pirms. Izsaukuma zīme ir daļa no C-shell vēstures mehānismu. Tā var atcerēties iepriekšējās komandas, tas var atgādināt argumentus šiem komandas un tā tālāk. History mehānisms tiek lietots kā daļa no aliasing. Ja norādāt līniju pēc izsaukuma zīmi, tas attieksies uz šo līniju vēstures sarakstā, kas mums nebūs nokļūst tagad, jo tas ir visu citu tēmu. Tas ir iespējams precizēt daļu no līnijas. Tāpēc 03:02! Būs otrais arguments komandu skaita 3. Caret šeit, šajā vārda nozīmē pirmo argumentu. Ja jums nav arī tā norādi, kuru komandu jūs, kas attiecas uz, tas attiecas uz nekavējoties iepriekšējo komandu, un caret ir simbols pirmo arguments. Jo tas ir caret, nevis numuru, jums nav nepieciešams izmantot kolu, tā! ^ ir pirmais arguments uz iepriekšējo komandu. Mazliet sajaukti šeit. Šajā gadījumā, ja jūs izmantojat to kā alias definīciju, vēsture ir atsauce atpakaļ uz komandām, kurās tiek lietots alias. Tātad šis ir došanās atpakaļ 1 komandu kā vēstures darbību, bet gan kā alias operāciju tas attiecas uz komandu, kurā jūs tipa, saka, grstrings_file. Mums ir pēdiņām šeit tajā. Kas ir slīpsvītra uz? Šajā gadījumā, tāpat kā citur, mēs nevēlamies izpildīt vēstures mehānismu vienlaikus nosakot alias. Ja mums nebūtu slīpsvītru tur, apvalks varētu ieraut pirmo argumentu Šīs komandas tiesības pirms tā ilga šo alias komandu, ko mēs nevēlamies. Mēs vēlamies, lai tas tiktu būvēts uz alias komandu zvanīt argumentu vēlāk. Vienu pēdiņām neizvairītos izsaukuma zīmi, vēstures atsauces. Varbūt jūs zināt, izteiksmes evakuācijas līdzekļi, lai mainītu jēgu kaut ko. Šajā gadījumā tas nozīmē, pārtraukt kaut ko no tā, īpaša nozīme. Izsaukuma zīme ir īpaša nozīme ir vēsture. Aizbēgt, un tas nav šo nozīmi. Citāti nav darīt, ka, slīpsvītra dara. Tāpēc mēs esam faktiski izmantojot 2 līmeņu bēgšanu šeit. Es esmu gatavojas pārcelties šo komandu uz citu logu, bez ierakstot to , izmantojot šos rediģēšanas darbības, kas jums var atrast noderīgu. Kaut kas cits šeit es tev parādīšu. Ja jūs vienkārši ierakstiet aizstājvārdu bez argumentiem, tā stāsta jums visiem jūsu argumentus. Tas ir ķekars pseidonīmi man jau bija šeit turklāt tiem, kas man ir bijis, šodien, izmantojot šeit. Bet, ja es tikai rakstīt ar vārdu alias, tas stāsta man, ko tas nozīmē. Ievērojiet, ka pēdiņas ir aizgājuši, un slīpsvītru ir pagājis. Šī virkne šeit ir rezultāts šo alias definīcijas, un tagad tas ir vienkārši! ^ tajā. Tas ir gatavojas meklēt failu virknes par neko. Tātad, ja man grstrings_file stīgas, man nav arī tā neko, lai meklētu tur, bet tas meklē stīgas. Tā nav atrast vārdu virknes failā stīgas, bet tas atrast abc. Un tas nav atrast to. Tāpēc šeit mēs dodam argumentu, ka hits vērā definīciju alias, , kas ir ievietots tajā. Tas ir, ja šis izteiciens nāk no. Jūs varat izmantot vairāk nekā 1. Caret ir simbols pirmo argumentu. Ja vēlaties izmantot otru argumentu, jūs pēc tam teikt: 2. Nav īpašs simbols uz otro argumentu. Un tāpēc, ka jūs izmantojat skaitli, jums nāksies izmantot kolu. Tomēr ir, cita izvēle šeit. Dolāra zīmi apzīmē pēdējo argumentu. Un tāpēc, ka tas ir simbols, jūs varat izlaist kolu. Lai tas būtu pēdējais arguments sarakstā. Un tur ir arī tas, ka viens. Zvaigznīte nozīmē visu, tāpēc tas ir pilnīgs argumentu saraksts, un atkal, jūs varat izlaist kolu, jo tas nav cipars. Es ceru, ka jūs visi, vērojot visu. Vēsture mehānisms var atgriezties pie iepriekšējām līnijām vēstures sarakstu. Jūs varētu darīt to alias definīcijā. Es nekad neesmu redzējis šo darīts. Tas būtu sekas izvelkot iepriekšējās komandas no vēstures saraksta kad jūs izpildīt alias, kas varētu būt dažādas komandas atkarībā no tā, kad un kur jūs izpildīt to. Atvest jūs varētu vēlēties, lai izraut šādu atsauci tikai zināt, ko agrāk komanda bija. Es nekad neesmu redzējis šo notikt. Es domāju, ka kāds varētu vēlēties, taču tas ir maz ticams. Ir vēl viena lieta šeit. Ja jūs izmantojat, ka vēsture tipa atsauce tad tikai argumenti, kuriem ir šāda norāde tiek izmantoti. Ja jums ir alias definīcija, kas nav izmantota vēsture tipa atsauce ja tas vienkārši kļūst sākums komandu un jums ir papildu argumenti, tad kaut ko rakstīt pēc tam tiks pievienota komandu. Šajā gadījumā, piemēram, es tikai deva tur, mēs izmantojām pirmo argumentu; mēs neizmantoja nekādus citus. Ja citi argumenti tika dota uz komandrindas, tie nedrīkst lietot. Tātad, ja jūs izmantojat vēstures atsauci vispār, tad jums ir to izmantot, lai saņemtu jebkuru argumentu. Ir vēl viena lieta, ko šeit es tikai gribu pieminēt, daļēji, iekavās, proti, ka šī vēsture mehānisms ar izsaukuma zīmi iet atpakaļ uz sākotnējo C-čaumalu. Tcsh ieviesa vēstures darbību kas izmanto veidu komandām un stīgas no redaktoriem, nu Emacs vai vi. Mans personīgais viedoklis ir Emacs ir daudz vieglāk izmantot šim nolūkam pat ja jūs izmantojat vi jūsu regulāri rediģēšanai. Ir dažādi Emacs komandas, kas tagad ir pielāgoti vēsturē. Control P saņem iepriekšējo līniju vēstures sarakstā. Vēl viens Control P kļūs jums vienu pirms tam. Up arrow tas pats. Control N saņem nākamo komandu, ja jūs esat jau ritināt atpakaļ dažus veidus. Down arrow tas, ka pārāk. Jūs varat pārvietoties no kreisās uz labo ar bultām un dažādas citas lietas. To var izmantot no vēstures mehānisma ir daudz vieglāk, nekā izmantojot izsaukuma zīmi sintaksi, bet jūs nevarētu lietot, ka alias definīcijā. Mēs iet pār kādu citu reizi. Mainīgie. Jūs zināt, kādi mainīgie ir programmēšanas valodām. Čaumalas ir viņiem arī. C-čaulas izmanto komandu, kas, lai piešķirtu mainīgos, tā, ka nosaka variable ar vērtību B - kā jau teicu, ir bezjēdzīgi definīcija, bet piemērs tam, kā tas tiek izmantots. Komplekts komanda radīs mainīgo, ja tas jau nav. Pozicionālās parametri čaulas skriptus var uzskatīt mainīgie, bet no tām izmantot un noteikumi par tiem ir nedaudz atšķirīgi. Jūs nevarat piešķirt vērtību līdz $ 1 gaitā skriptu. Jums būtu definēt jaunu mainīgo šim nolūkam, ja daži no jums gribēja. Tipam, kura bez argumentiem, un jūs saņemsiet sarakstu ar visiem šobrīd definētajiem mainīgajiem. Un pieņemsim nokļūt pār manu citu čaumalu šeit un redzēt, ko mēs saņemam, ja mēs to darām. Diezgan garš saraksts tur, labi? Ritinātu uz augšu mazliet. Apskatīt visu. Dažas no šīm lietām ir definēti automātiski čaumalu. Apvalks rada mainīgo un piešķir tai vērtību. Dažas no tām ir noteikts korpusam, bet pēc tam no jauna lietotājs saskaņā ar viņa vēlmēm. Un daži no tiem ir izveidojis lietotājs atkarībā no tā, ko viņš dara, ka dienā. Tas ir tikai noteikts bez argumentiem. Tur ir nepāra iezīme šeit ir šī lieta. Tur jābūt vai nu nav atstarpes starp vienlīdzības zīmi un mainīgā nosaukums un vērtība vai telpas abās pusēs vienāds parakstīt kā šī. Tas nav darbs, un tas patiesībā ir derīgs komanda bet tas nav darīt to, ko jūs domājat. Ka komanda būs darbs, jo, ja jūs vienkārši teikt iestatīt un mainīgā nosaukums ar nav vienādības zīmes vai noteikt un mainīgā vārds ar vienādības zīme un nav vērtības, tas noteikti mainīgo Null vērtību. Tātad, kas A = ir derīgs komanda. Komplekts komandu var noteikt vairāk nekā 1 mainīgais uz vienas līnijas. Tāpēc šī komanda šeit ir sekas definēt gan A un B vērtības Null. Droši vien nav tas, ko jūs vēlaties. Te viens, minēts iepriekš, novedīs pie kļūdas jo b = nav derīgs izpausmes. Mainīgā nosaukums nedrīkst sākties ar vienlīdzības zīme. Un tur ir šie papildu lietas šeit. The kolonnas tika izmantoti, lai izvēlētos argumentus no vēstures līnijas, , un tos var izmantot - un man nebija iedziļināties agrāk - mainīt tās lietas. Tos var arī izmantot, lai mainītu apvalks mainīgos. Te viens, $, ir vērtība. : R pacelšanās pagarinājumu. Pagarinājums būs kaut kas pēc dot, dot un kaut kas pēc to beigās failu, tikai beigās sarakstu pēc tam, kad pēdējā slash. Tāpēc esmu šeit. ir tā, ka. Tā kritīsies. O. Ja nav pagarinājums, tikai pathnames pēc pēdējās slīpsvītra, tas nav spēkā. : h, ka mainīgā izteiksme, pacelšanās pēdējo elementu direktoriju sarakstu, atkal, tikai pēc tam, kad pēdējā slash. Tātad / / b / c kļūst / a / b, bet tas viens ir mainījusies, jo elements pēc saraksta ir nulle. Te ir kaut kas, ko es arī gribu uzsvērt. Šīs kvalifikācijas nav meklēt esamību šiem failiem. Viņi vienkārši meklē stīgas. Tie ir paredzēti, lai manipulētu failu nosaukumus, pathnames, bet tās var izmantot jebkurā stīgu, pat tad, ja tas nav faila nosaukumu. Un tie nav meklēt esamību, tāpēc, ja nav šādu failu, / / ​​b / c, tas joprojām strādā. Vai tas ir jebkādu izmantošanu, ir cits jautājums, bet tas joprojām strādā. Mainīgie ir atšķirīgi Bourne čaulas. Mēs nokļūt, ka vēlāk. Dolāra zīmi var izbēguši tāpat kā izsaukuma zīme un zvaigznīti. Dolāra zīmi var izbēguši ar slīpsvītru vai vienu pēdiņām. Pēdiņas ir nepāra spēkā visās čaumalām piespiežot novērtēšanu dolāra zīmi mainīgo izteiksmi. Tātad, ja tas tiek izbēguši viens veids, kā pēdiņas var būt sekas izraisīt to jāizvērtē anyway. Tas ir nedaudz mulsinoši. Ja ir vairāki līmeņi izvairīties, piemēram, pēdiņas iekšā pēdiņās vai pēdiņas iekšpusē pēdiņas, jums vajadzētu pārbaudīt, lai redzētu, kas notiks mainīgā, ja jūs izmantojat vienu. Šie 2 gadījumi - dubultā iekšpusē viena, vienota iekšpusē dubultā - ne vienmēr dod jums to pašu rezultātu. Vides mainīgos, kas sasieti C-čaulas mainīgie. Vides mainīgos ir arī mainīgie C-čaulas, un tie arī mainīgie citās čaulas too. C-čaulas, tie ir atšķirīgi kopas. Lietas, es jau teicu, pirms ir par korpusa mainīgie. Vides mainīgos ir atšķirīgas mainīgo lielumu kopums izņemot vairākiem mainīgajiem, kuru mēs saucam saistošs mainīgie, kas ir ļoti svarīgi, un mēs nokļūt tiem vēlāk. Vides mainīgie tiek automātiski nodoti ar apvalku vai komandas, kas darbojas no savas čaulas. Citas lietas nav. Shell mainīgie, pseidonīmi nav. Vides mainīgos ir. Tieši tāpēc mēs tos saucam vides mainīgos, Ideja ir tāda, ka vide paplašina pagātnes tikai jūsu pašreizējo čaumalu. Tos var izmantot, lai noteiktu lietas komandas. Lūk, piemērs. PRINTER, LPDEST. Abi no šiem mainīgajiem var noteikt printeri, komanda izmantos, lai drukāt lietas. Ja jums ir vairāki printeri apkārt, jūs varētu vēlēties, lai vienu jums patīk. Iemesls mums ir 2 mainīgie ir tas, ka tika rakstīti dažādi komplekti komandu Izmantojot šos dažādos mainīgos lielumus. Jūs varētu dot viņiem dažādas vērtības. Visticamāk, jums dot viņiem gan pašu vērtību. Šīs lietas strādā, jo komandas, kas darīt drukāšanu tika ieprogrammēts, lai pārbaudītu šo mainīgo vērtības. Ja programma nav rakstīts, ka veidā, ja tas ir rakstīts, lai darīt kaut ko citu, mainīgais nebūtu nozīmes. Tā operētājsistēma nav meklē šo mainīgo lielumu katru reizi, kad jūs atsaukties uz printeri. Komanda, kas nav iespiešana meklē šo mainīgo lielumu, ja tas ir ieprogrammēts, ka veidā. Šie mainīgie bieži tiek definēti jūsu inicializācijas failus bet ne vienmēr. Jūs varat definēt tos komandrindu. Tie var būt noteikts komandu. Komanda, kas darbojas kaut varētu būt sava izvēle mainīgie - mainīgie lielumi, kas ir unikāli īpašu programmatūru, piemēram,. Tās tiks definētas palaižot šo paketi. Kā šie mainīgie nodoti sub-shell? Kad sub-čaulas ir rakstīts, tas nav rakstīt uz šajā jomā. Apakšpasākuma apvalks, kas veltīta vides mainīgajiem area nav rakstīts ar sub-čaulas, tas ir rakstīts ar kopēšanu. Palaižot parastu komandu, piemēram, šīs komandas, lai drukātu vai kāds, viņi sāk off, izveidojot jaunu apvalks. Apvalks rada čaulas un tad pārraksta daļu no tā ar komandu, ka jūs lietojat, kas ir nedaudz mulsinoši, bet tas, kā šīs komandas iegūt vides mainīgos ka viņi tad uz vēlāk. Komanda šeit, lai definētu mainīgo setenv. Tas ir, kā jūs to definēt. Tas ir 3 elementi: setenv, mainīgās, vērtības. Ja jūs vienkārši setenv bez argumentiem, ko jūs saņemsiet? Saraksts ar visiem šiem mainīgajiem. Atkal, tas ir jauki, garš saraksts, un šajā gadījumā, tāpat kā citiem, Šie mainīgie ir definēti lielākoties mana pieteikšanās operācijai čaumalu pati nevis kaut ko es darīju. Tur ir cita komanda šeit, printenv. , Kas arī izdrukā vidi. Pamanīt šo pēdējo lieta šeit, redaktors = vi. Kas saka, ka, ja es esmu, izmantojot kaut ko, kas prasa redaktors un es nedomāju, norādiet redaktoru, un tas ļauj man izvēlēties, tas var dot man vi. Ko darīt, ja es daru printenv Editor? Tas stāsta man, kas tas ir. Tieši pirms tam, ir bijis mainīgs, mazāk. Tie ir jūsu nepildīšanu iespējas, kad es palaist jo mazāk komandu, kas parāda failus. Tātad, ja es daru to, printenv var veikt 1 argumentu vai 0 argumentus, ne vairāk kā 1. Ir arī citas komandas arī, bet mēs nebrauksim iekļūt visu, kas šodien. Bāri bija modifikatori korpusam mainīgajiem, piemēram: h, kas būs piliens pēdējo elementu, ceļavārdiem, vai: r, kas būs piliens pagarinājumu. Tie, tagad attiecas uz vides mainīgos too. Viņi nav pieraduši. To izmanto, lai būt tie nevar mainīt. Tagad viņi var būt. Tas ir viens no avansa ar attīstību čaumalas gadu gaitā. Es jau teicu, ka čaumalas kā daļa no vides un korpusa mainīgie C-čaulas ir, ar dažiem izņēmumiem, atšķirīgas komplekti. Jūs varat izveidot vides mainīgo un apvalks mainīgo ar tādu pašu nosaukumu. Tie būs dažādi mainīgie, tās var būt dažādas vērtības. Vērtību one mainot nemaina vērtību otru. Šie mainīgie ir visi novērtēti ar dolāra zīmi - $, $ neatkarīgi. Tātad, ko tad, ja jums ir šis? Vai jūs zināt, kurš no jums? Manā testus Man korpusa mainīgo, bet tas nav dokumentēta, un jūs nevarat paļauties uz to. Tāpēc es aicinu jūs, rada čaumalas un vides mainīgos ar vienādiem nosaukumiem laba ideja? Nē Labi. Kas ir tie galvenie izņēmumi, kas videi un korpusa mainīgie ir saistīti viens ar otru? Tur ir tie 4. Lielais burts TERM vides mainīgo, apvalks mainīgo terminu mazajiem burtiem, termināļa emulāciju veidam. Es esmu tikai gatavojas iet vairāk nekā šeit, un es esmu gatavojas darīt, atbalss, noderīgu komandu šeit $ TERM $ termiņš. Un tur. xterm ir termināls tipa logiem parādīto x Window System. xterm krāsu ir variācija, kas, kas ļauj dažādas krāsas. Kāpēc mēs definējam šiem? Kas ir tas labs? Komandas, kas pārkārtot piemēram redaktoru ekrānu sūtīt īpašas secības, ko sauc par evakuācijas sekvences, uz terminālu, vai loga pārkārtot, un tā tālāk. Šie sekvences ir atšķirīgi dažādiem termināliem. Šī stāsta to, kādi izmantot. Dažreiz ir problēmas tur. Jūs varētu vēlēties, lai mainītu to. Ja lietas nav darba, dažreiz termināls veids ir noteikts nepareizi, Jūs, iespējams, var noteikt to, no jauna definējot terminu mainīgo. Šādos gadījumos, mainot vienu mainīgo, vides mainīgo vai korpusa mainīgo, jānomaina otru. Esmu atklājis, izmantojot pieredzi, kas mainās termins lielajiem burtiem ne vienmēr mainīt čaulas mainīgo terminu mazajiem burtiem. Tas ir kļūda. Es nezinu, vai tas vienmēr ir taisnība. Lielāko daļu laika tas nav taisnība, bet tas var būt. Tātad, ja jūs veikt izmaiņas, vienkārši pārbaudīt, ka out. Tas nav bieži, ka jums ir nepieciešams, lai mainītu šo vērtību, bet vienu reizi, bet jūs darāt. Vides mainīgais USER. Atkal, vides mainīgais ar lielajiem burtiem, apvalks mainīgais mazajiem burtiem. Šis ir jūsu lietotājvārds. Tas ir tikai īpašos izņēmuma gadījumos ka jūs vēlaties to mainīt. Ja jūsu lietotājvārds ir kāds cits, tas var mest visu veidu lietas off. Mājas direktoriju, lietotāja mājas direktorija. Atkal, jūs negribētu to mainīt. Paziņojuma visos šajos gadījumos, un viens, ka mēs esam par to, lai segtu ceļa mainīgo, vides mainīgais ir ar lielajiem burtiem un robežu apvalks mainīgais ir mazajiem burtiem. Ja maināt vienu, jums vajadzētu mainīt otru. Šo saistošo veida nevar noteikt, jo jūs nevarat saistīt 2 mainīgie, izņemot tos 4, un saistošais šajās mainīgajiem nevar atsaukt, Jūs nevarat tos atdala. Tātad šie 4 pāri mainīgajiem ir saistoši. Viņi vienmēr būs. Neviens citi būs. Turklāt tas būtu iespējams izveidot mainīgie ar tiem pašiem nosaukumiem no pretējām veidiem. Jūs varētu veikt shell mainīgo terminu maziem burtiem vai vides mainīgais termins lielajiem burtiem. Šie mainīgie lielumi būtu neatkarīga no šiem pārī mainīgajiem un tie būtu neatkarīgi viens no otra. Es nevaru iedomāties, kāpēc jūs varētu darīt, ja jūs vēlaties, lai maldinātu cilvēkus. Šis ceļš mainīgais vienu šeit, tas ir ļoti svarīgs. Vēl viena lieta šeit ir tas, ka var būt gadījumi Mainīgo ar līdzīgu Pārī savienotās nosaukumiem, kas nav saistītas ar otru. Tur var būt mainīgie, SHELL un apvalks, ar lielajiem un mazajiem burtiem. Pamatojoties uz šo vārdu, jūs nezināt, ja tas mainīgais ir apvalks mainīgs vai vides mainīgais, un tie nav saistīts ar otru. Tātad šāda veida pārī nosaukumi nenozīmē saistošs mainīgie. Ceļš mainīgais, kas man rādīja iepriekš, ir saraksts pathnames, kurā apvalks meklē komandas. Iesim pa šo logu šeit, un mēs darīsim echo $ PATH, lielos burtus - vides mainīgais - echo $ ceļu, mazie burti - apvalks mainīgs. Paziņojums, ka saraksts abonentu ir tāda pati. Tie ir saistoši. Mainīt vienu, maināt otru. In vides mainīgo elementi ir atdalīti ar kolonnas. Paziņojums, ka. Shell mainīgie ir atdalīti ar atstarpēm. Šis vides mainīgais ir viena virkne. Apvalks mainīgais ir masīvs. Bourne shell nebija bloki. Bash dara, bet tas jau ir noteikta daļa no korpusa. Šī ir viena virkne, nevis masīvs. C-shell vienmēr ir bijusi masīvi. Masīvi ir daudz vieglāk strādāt. Jūs varat atsaukties uz tā daļām. Tāpēc echo $ ceļš [1], un man / usr / bin, pirmais elements. Atkal, atcerieties, dolāra zīmi apzīmē pēdējo elementu vēstures sarakstu. Kas notiek tur? Tā centās atrast dolāra zīmi kā mainīgo simbolu. Es izvairīties no tā. Hmm. Tas nav ņemts, ka vai nu. Dažas no šīm lietām nedarbojas tik labi. Varbūt mēs vienkārši atstāt, ka out. Zvaigznīte attiecas uz visa lieta, bet tas, ko jūs saņemsiet, ja jums nav jānorāda elements. Vēl viens veids, ka masīvs mainīgie var manipulēt, elementu skaits tur, 7 elementi. Šeit mēs uzdodam restīte pirms mainīgā nosaukums. Lūk, vēl viens. Likt jautājuma zīmi tur. Tas ir loģiskā vērtība. Tas norāda, ka mainīgais eksistē. Tas ir vēl viens veids, kā strādāt ar mainīgajiem. , Kas, starp citu, nav jābūt masīvs mainīgs. Tas varētu būt jebkurš mainīgs. Un, ja man, tur nav tādas mainīgo un man 0. Vēl viena maza lieta, tur par mainīgo novērtējumu. Atpakaļ uz šo vienu šeit, ja kāda iemesla dēļ jūs vēlētos strādāt ar šo nevis strādāt ar masīva, apvalks mainīgs, ir komandas, kuras var atdalīt lietas, pamatojoties uz resnās zarnas. Patiesībā, ja jūs gatavojas darīt to bash čaumalu, iespējams, sava veida skriptu, kas būtu iespējams, kā jūs varētu darīt to. Bet C-čaumalu tas ir daudz vieglāk izmantot masīvu. Jo Bourne Shell, mainīgie piešķir vienu izteiksmi, piemēram, tas, tāpat kā jūs, iespējams, piešķir mainīgo programmēšanas valodā, un šeit nedrīkst būt atstarpes. Tas ir nepieciešams, ka tas ir tikai 1 virkne. In Bourne tipa korpusiem, visi mainīgie ir čaulas mainīgie. Vides mainīgos ir apakškopa no korpusa mainīgie. Tie atšķiras no ne-vides mainīgos, eksportējot. Komandu, lai to izdarītu, ir eksports, piemēram, eksporta printeri. Ja mums būtu jādefinē šādu mainīgo, ja mēs vēlējāmies drukas komandu, lai atrastu to, būtu jābūt vides mainīgo, un tas, kā mēs to vienu. Lūk, tur ir kaut kas, sava veida mulsinoši. Šī izteiksme, eksports uz vidi, izriet no šīs Bourne Shell koncepciju, un tomēr, ka ekspresijas lieto aprakstos C-apvalks, ja ir tāda komanda nav par eksportu. Ja jūs vienkārši pateikt eksporta ar sevi, jūs saņemsiet sarakstu ar eksportēti - Tātad, ja es vienkārši eksportēt šeit, nav tādas lietas. Labi, ka mēs ejam. Šīs lietas, starp citu, arī nosaka čaumalu. Man nav noteikt kādu no šiem ar sevi. Apvalks dara visādas lietas par sevi. Tā vajadzētu darīt lietas automātiski. Bash vai Korn čaumalu, jūs varat palaist komandu, piemēram, tas, kas gan dot dažādu vērtību un eksportēt 1 komandu. Jo Bourne Shell tiem jābūt atsevišķas komandas, piemēram, eksportēt. Šeit ir vēl viens aspekts, kas ir mulsinoši. Komplekts komandu C-shell definē mainīgos un bez argumentiem stāsta jums to, ko mainīgie lielumi "vērtības. Jo Bash čaumalu, komplekts komanda bez argumentiem nav tas pats, bet ar argumentiem, ko tā dara kaut ko pavisam citu. Tātad šie ir dažādi argumenti šeit. Daži no tiem ir vides mainīgos, daži no viņiem ir čaulas mainīgie. Visi no tiem ir shell mainīgie tiešām. Daži no tiem ir vides mainīgos. Komplekts komanda ar argumentus var izmantot, lai darbotos par pozicionālo parametriem skriptu, kas ir veids, kā iegūt tos visus uzreiz. Mēs nevaram īsti iedziļināties, ka šodien. To var arī izmantot, lai mainītu shell uzvedību. Īpaši Bash ir mainīgie, kas nosaka, cik apvalks uzvedas. Tad arī tikai vienu komandu, ka jūs varētu redzēt, šī komanda. Typeset seko mainīgajiem un mainīgo veidi tiek izmantoti Korn un Bash korpusiem. Tas nav obligāti, bet tas var tikt izmantots, lai ierobežotu mainīgo lielumu vērtības, kas var būt noderīga, lai novērstu kļūdas, un tas ir diezgan bieži. Tāpēc es esmu tikai pieminēt, ka gadījumā, ja jūs redzat to kaut kur. Ja komanda. Atcerieties, es iepriekš minēju, ja komanda C-čaulas, kas var pateikt atrašanās vietu komandu ceļavārdiem. Šeit ir komanda aizvietošana. Jums vajadzētu atrast uz klaviatūras kaut kur raksturs, kas izskatās šādi. Atrašanās vietu uz klaviatūras gatavojas mainīties. Mēs esam sauc to backquote. Tas ir par lielumu citātu. Tā iet no augšējā kreisajā stūrī, lai samazinātu pa labi. Šeit uz mana Mac klaviatūras tā augšējā kreisajā stūrī. Ka raksturs var izmantot, lai izpildītu komandu robežās komandu. Ja jums ir izteiksmes iekšpusē backquotes, šis jēdziens ir komanda, tas ir darboties. Minētās komandas izvade pēc tam tiek aizvietota visai backquote izteiksmes iekšā ilgāku komandu, kas pēc tam iet ar šo produkciju kā daļu no tās virkne argumentu un tā tālāk. Šeit ir komanda, kas izmanto to. Pieņemsim pierādīt darbību šeit. Iesim šeit, izņemt backquotes. Kontrole izpaužas mani uz rindas sākumā ar Emacs rediģēšanas sintaksi. Līdz šim pathnames ir tas, ja nav, bet, kad es to darīt, kā šis, tad tas sveces minētajā sarakstā pathnames vietā visā šajā backquote vārda un trašu ls-l uz tiem. Veida ērti, vai ne? Tātad, tas ir viens veikls lieta. Tas ir kā backquotes darbu. Tagad iet uz leju mazliet tālāk. Tie ir pseidonīmi. Es faktiski izmantot šo. Es mēģināšu, lai iegūtu šo ar 1 rediģēšanas darbību. Labi. Tagad pieņemsim redzēt, kā šīs definīcijas iznāca. alias LWH stāsta man, kā tas ir noteikts. Pamanāt, ka tas ir tikai tas, bet ārējais pēdiņām ir pacēlies un izsaukuma zīme ir pacēlies. ! *, Pilns saraksts ar visiem argumentus. Jo alias definīcijas tas attieksies atpakaļ, kur es varu izmantot šo. LWH KSH bash. Labi. Redzēt, kā tas darbojas? Tas ietaupa man rakstīt. Iesim uz augšu mazliet tikai minēt kaut ko citu šeit. Paziņojums šeit šos dažādos korpusiem. Es minēju pirms tam. CSH ir 2 vairāk nekā šeit, un tā nav / bin / elm. Mēs varētu izveidot ar citiem līdzekļiem, ka tie ir faktiski pats fails. Atcerieties, es teicu, ja jūs tipa sh jums bash. Ierakstiet šo un jūs saņemsiet to. Bet tie nav saistīti. Tie ir vienu tiem tur. Un tas nav sava veida failu, kas var izsaukt vēl vienu. Tātad tie ir atsevišķi faili, ka C-čaulas tiem ir pats fails. Atpakaļ uz leju šeit, otrs šeit, tas alias, ņemiet vērā, ka ir darbojas šī komanda, failu. Ka alias iet to. Fails stāsta jums faila tipu. Tāpēc FWH KSH bash. Labi. Tas ir izejas faila komandu. Es nezinu, ja jūs zināt, ko tas nozīmē šeit Mach-O universālā binārā ar 2 arhitektūrām. Ir 2 iespējamie procesors veidi Mac, un dažas programmas bija rakstīts, lai varētu darboties gan ar, un failu komandu var noteikt, ka, lai tas, ko tas nozīmē. Abi no šiem failiem bija rakstīts, ka veidā. Tātad, mēs redzam, cik alias darbojas, mēs redzam, cik backquote darbi, mēs redzam, cik faktiskie failu ls vai fails darbojas. Tas varētu nedarboties. Izmēģiniet ", kur kur" un "LWH kur". Labi, pieņemsim, mēģiniet to. kur kur. kur ir apvalks iebūvēts. Atceros agrāk mums parādīja, ka Bash nebija kur. Ja jūs tipa, kur bash čaumalu, jūs saņemsiet kļūdas paziņojumu. Tā ir tikai daļa no korpusa nevis atsevišķu komandu. Kas notiek, ja es tipa LWH meklē, kur? Redzēt, kas notiek tur. Skrēja kur kur, dabūju šo produkciju, un pēc tam mēģināja palaist ls kā l no tā, kur apvalks iebūvēts. kur ir tur, bet citi tiem nav. Neviens no šiem pastāv, patiesībā. Tā, ka tas ne vienmēr strādā, un tas arī parāda, kā dažas lietas nedarām gluži tas, ko jūs varētu būt doma. Iesim uz leju mazliet tālāk šeit. Tas šeit ir Bash. Tas ir arī komanda aizvietošana piemēram backquote. Bet atšķirībā backquote, tā izmanto šo mainīgo stilu. Ir vairāki izpausmes, kas sākas ar dolāra zīmi, un, lai gan tie nav mainīgie, viņi aizņēmās izmantošanu dolāra zīmi norādīt izteiksmi kādu. Kas var ieskauj iekavās vai skavu vai dubulto iekavās, , kas ir cits mērķis. Single iekavas šeit ir komanda aizstāšana tāpat kā backquotes. Dubultā iekavas faktiski aritmētiskā operācija. Ir sintakses, citas operācijas. Backquote sintakse ir pieejama Bash. Tomēr šī ir vēlams. Tas ir daudz vieglāk lasīt, un tas ļauj ligzdošanas. Jums var būt iekšā $ (komanda) citu komandu, kaut ko līdzīgu - Man sarakstu tur. Kas varētu strādāt, ja man bija backquote arī. Ko darīt, ja es gribu darīt kaut ko līdzīgu - Jūs, iespējams, nebūtu reāli izmantot šo komandu, bet šī iekšējā komanda aizstāšana atbalsis nosaukumus visus failus, kas sākas ar, tad tas viens iet ls-l uz šiem failiem, un tad tas viens tikai atbalsis produkciju. Jūs, iespējams, varētu to darīt, jūs vienkārši darīt to atbalsi vai ls, bet tas parāda, cik ligzdošanas komandu darbu. Tik vienkārši vēl viena iezīme šeit.  Es ieminējos iepriekš, ka, ja jums ir, kur C-čaulas, tipa strādā Bourne tipa korpusiem atrašanai komandas. Built-in komandas, tikai to, ko es saku, ka. Komandas ir daļa no korpusa, piemēram, kur. Ja apvalks izpilda komandu, piemēram, ls, tas atrod to ar ceļu, uzskata, ka tās kādā direktorijā kaut kur, teikts, ka atmiņā, izveido jaunu apvalks, skan komandu ls vai kāds uz korpusa kur vides mainīgos jau atrodas, un pēc tam tā pārskaita izpildi, lai to. Built-in komandu, kods šai komandai ir iekšā čaulas, lai apvalks tikko sāk izpildot daļu no savas kodu. ja ir šāds komandu. Tas faktiski kļūst ātrāka. Tas nav lasīt kaut ko atmiņā, tas jau atmiņā. Built-in komandas vienmēr prevalē pār komandu ar tādu pašu nosaukumu. Komandas, kas ir abonentu ceļā var būt tāds pats nosaukums, komandas dažādās katalogi, failus dažādās katalogi. Viens, kas notiek agrāk ceļš ir viens jūs saņemsiet. Ja ir iebūvēts komanda, jūs vienmēr saņemsiet to. Nav veids, lai dotu tai zemāku prioritāte nekā komandu ceļā. Ja jūs vēlaties, lai saņemtu šo ceļu komandu, jūs varat ierakstīt pilnu ceļavārdiem. Ja ir bijuši komandu, kur ceļā kaut kur, Jūs varētu rakstīt / bin / kur un jūs saņemsiet to. Ja jūs nevēlaties rakstīt visu ceļavārdiem, jūs varētu noteikt alias. Patiesībā, ja jūs sniedza alias tāds pats nosaukums kā iebūvēto komandu, tas strādā jo alias definīcija tiek vērtēts pirms apvalks nosaka, ka tas ir iebūvēts komandu, kas būtu jāizpilda. Tad tas kļūst nedaudz sarežģītāka ar dažiem komandas šeit. Gadījumā dažas komandas ir faktiski iebūvēts komandas un ceļā. Viens no tiem ir atbalss, komandu es tikai izmantot atpakaļ nedaudz, bet šajos piemēros. Echo ir komanda ceļā, un tas ir katrā čaumalu. Tie nav obligāti visiem izturēties vienādi. Tas bija sākotnēji komandu tikai ceļā. Tā tika uzcelta uz čaumalas vēlāk. Jo tur ir iespējas, kas ir atkarīgas no vides un komandrindas opcijas, iebūvētie komandas Tika rakstīts, lai darbotos tāds pats kā komandu, kas bija ceļā, tas ir maz ticams, viņi ir rakstīts, ka veidā ja komanda vēl nebija rakstīts ceļu. Tāpēc šī ir blakusparādības. Tās vēsture ir ietekme šeit. Ir iespējas tur. Pastāv arī iespēja, nosaka mainīgo ir tcsh sauc echo_style. Tas ir viens no šiem mainīgajiem, kas var mainīt tā, ka ECHO sadarbojas. Ir arī citi gadījumi, kad var piešķirt mainīgā kas maina veidu, apvalks darbība, ieskaitot iebūvētu komandu, darbojas. Tas neietekmē kaut kas cits jo citas komandas nav pieejami uz korpusa mainīgie, tikai vides mainīgos. Bet apvalks operācijas var lasīt korpusa mainīgie. Tas nestrādās CSH. Tas ir tikai tcsh. Tas ir viens no uzlabojumiem. Analizējot ir sekvences, kad tā novērtē metacharacters, kad tā novērtē mainīgos, pseidonīmi, vēstures atsauces. Tur ir īpaši secība par šīm lietām. Ja tas lietas noteiktā secībā un izpaužas kaut ko, kas ir izpausme veida kas jau ir novērtētas, tas nav novērtēt to vēlreiz. Ja tā izpaužas tā, tad tas būs tikai iet uz rakstzīmes. Tātad, ja novērtējums dažas izpausmes, piemēram, komandu aizstāšanu vai mainīgu vai kāds rada izteiksme ko jūs vēlaties, lai tiktu novērtēti, kas darbosies tikai tad, ja, ka novērtēšana notiek vēlāk secībā. Es ceru, ka es esmu to skaidri tur. Ka analizējot secība, operācija C-čaulas, nav tas pats iebūvētām komandām, jo ​​tas ir ne-iebūvētiem komandas. Es neesmu pārliecināts par Bash tur. Piemēram, ja apvalks mainīgais ražo vēstures atsauce tas, iespējams, nav iet atpakaļ vēsturē. Tas tikai iegūt izsaukuma zīme. Patiesībā, mēs varam tikai mēģināt, ka tiesības tagad. Set = un mums nāksies likt to tur. Ak, pagaidiet. Piedodiet. I did to bash. Es gribēju to darīt šeit. Redzēt, tāpēc tā nav izvērtēt šo vēstures atsauce jo tas bija jau iepriekšējo punktu vērtēšanas vēstures izteiksmes kad tā izvērtēja mainīgo. Tātad tas ir 1 efekts analizējot. Un atkal, iebūvēti komandas netiek veikta tādā pašā veidā. Labi. Iesim uz nākamo šeit. Tas ir paredzēts 1 līnija, bet tas ir padarot to vieglāk lasīt. Ko tas dara? Jūs varat atgādināt, ka mēs varam novērtēt zvaigznītes kā filename aizstājējzīmes, un ir citi filename aizstājējzīmes, piemēram, jautājuma zīmes un kronšteinu izteiksmes. Šāda veida vērtēšanas sauc globbing. noteikts noglob sākumā šī komanda saka nedari tā. atstatīt noglob saka iet atpakaļ, lai dara to. Ņemiet vērā, ka komplektā glob nebūtu šādas sekas. , Parastā valodā, kas glob vai atiestatīta noglob, šķiet, ir līdzvērtīgi, bet šeit tā nav. Tas ir atstatīt noglob. Tagad Tset. Tset stāvēja termināļa komplektu. Tas nav izmantots, kas bieži vien tagad, bet pirms Windowing sistēmas kļuva pieejami un jums bija vienu termināli, jūs varētu būt, lai noteiktu veidu. Un, ja kaut kas nāk pār Ethernet vai no tīkla, jūs varētu vēlēties, lai teikt, tas ir VT100. VT100 ir sava veida standarta termināļa biznesā. Tas nāk no decembris termināla. Ja jūs vienkārši darīt iezvanpieeju - pamanīt, ka? Tas iet atpakaļ veidos, vai ne? Tātad, ja mēs vienkārši Tset nekā šeit, ja es vienkārši darīt Tset, tas atgriešanai savu terminālu, bet neredzēju neko. Tas nav īsti mainīt neko. -S Labi. setenv TERM xterm krāsu. Mēs jau zinām, ka termiņš tika noteikts, ka veids, lai nemainījās. Tas ir veids, kā mēs gribētu vēlaties to darīt. Bet paziņo, ka šo komandu, Tset-s, tikai izejas šīs komandas. Tā nav palaist tos. Tas nav palaist šīs komandas, tas izejas viņiem. Tātad tas ir paredzēts, lai ražotu komandas, kas pēc tam tiks palaist. Atceraties komandu šajā failā es tikko parādīja jums bija Q tajā. Tāpēc pieņemsim darīt. Q nomāc kāda izeja, bet tas nav svarīgi šeit, kā jūs varat redzēt. Es esmu tikai darot, ka, lai pierādītu, ka tas nav svarīgi. Tas ir backquote sintaksi. Atzīmēt backquote šeit, backquote šeit. Es esmu izlaižot šīs lietas šeit. Tie ir gadījumi, kad stāsta to, ko darīt gadījumā, īpaša veida termināli - Ethernet, tīkls, iezvanpieejas, ko jūs esat. Tas nav svarīgi šeit, jo mēs faktiski darīt kādu no šīm lietām. Es esmu tikai ilustrē komandu. Ja es to izdarītu ar backquote, ko es esmu gatavojas saņemt? Arī paziņojums, ka šis ietvēra noteikto noglob un atiestatīta noglob, tāpēc tie ir kļuvuši lieki definīcijā. Tas bija ne vienmēr ir taisnība, bet tagad viņi ir iekļauti šo komandu. Bet pieņemsim redzēt, kas notiek, ja es daru to, un doties uz sākumu atbilstoši kontrolēt, un es darīt. Labi, noteikti: Komanda nav atrasts. Tas ir sava veida dīvaini, vai ne? komplekts ir labi zināms komandu. Tā ir daļa no korpusa. noteikts: Komanda nav atrasts? Kāpēc tā? Hmm. Nu, pieņemsim domāt par to. Tas darbojas backquote komandas maiņu, un kas rodas ar noteiktu daļu no secības analizējot komandu. komplekts ir iebūvēts komandu. Tātad, līdz brīdim, kad tā dara šo komandu aizstāšanu, tas jau gotten iepriekšējo punktu identificētu iebūvētās komandas. Tāpēc tā izturas noteikt, it kā tas būtu komanda ceļā. Lieki teikt, tas nav atrast to, un jūs saņemsiet kļūdas. Labi. Tur ir piemērs parsēšana secību. Un ko mēs darām par to? Ievērosiet šo ļoti interesantu komandu šeit, eval. Nez, ko tas dara. Ja paskatās rokasgrāmatu - un pieņemsim tikai darīt lai parādītu, cik mulsinoši šīs rokasgrāmatas - Vīrietis tcsh, sajaukt mehāniskā, atrast lietas šeit nav viegli, vai nu. Šeit mēs iet, EVAL ARG, lai mēs varētu būt 1 vai vairāk argumentu un tur ir saraksts ar lietām tur. Izturas pret argumentus kā izejvielas korpusam un izpilda iegūtos komandas saistībā ar pašreizējo čaumalu. To parasti izmanto, lai izpildītu komandas radītās kā rezultātā komandu vai mainīga aizstāšana, jo analizējot notiek pirms šo aizstāšanas. Ļoti labi. Un šeit viņi pat atsaucas uz Tset komandu paraugu izmantošanai piemēram, man tikko parādīja jums. Tagad man ir, lai saņemtu logu atpakaļ noderīgu vietā. Iesim vairāk nekā šeit, un mēs redzēsim, ka eval lieto tieši pirms tam. Tātad, pieņemsim redzēt, kas notiek, ja mēs - šeit mēs iet uz augšu ar bultiņām, lai šo komandu un kontroles sākumā, eval. Labi, tāpēc tā darbojas. Kad jūs to eval, tas notiek, kas nāk pēc tam, un padara to komandu. Tas ļauj būtiski izanalizēt to divreiz. Sadaļā šeit vada šo komandu iekšpusē backquotes, saņem produkciju. Izeja ir paredzēts darboties kā tām komandām šeit, piemēram, šo šajā vienā, un šo vienu. Tāpēc šīs komandas tagad šeit šajā secībā, bet tie ir iebūvēts komandas, un tas nevar saņemt viņiem uzreiz. Tāpēc mēs ejam uz EVAL, eval paceļ ka uz augšu, viss atkal sākas viss, un tas darbojas. Piemērs abi backquoting, EVAL, analizējot, sekas analizējot, un komanda, kas, iespējams, ir ļoti maz izmantot, lai jums mūsdienās. Labi. Labi, umask. Apskatīsim šo komandu šeit, umask 022. Nez, ko tas dara. Let 's vienkārši ierakstiet umask ar neko pēc tā. 22. Labi. 022, un darīt to vēlreiz. Kā jūs varētu būt guessed, umask bez argumentiem stāsta jums pašreizējo masku; umask ar argumentiem, padara to, ka, bet tas bija viens man jau bija. Kāda 022 nozīmē? Tās ir šeit, ka aizsardzība attiecībā uz failu. Tie nosaka, kam ir atļauts lasīt, ne rakstīt vai izpildīt failu. Aizsardzības sauc arī atļaujas. R apzīmē lasīt, ka W rakstīt, un x, kas nav sastopams, apzīmē izpildīt. Ir 3 kategorijas tur. Pēdējie 3 elementi ir kategoriju lietotājam. Tie attiecas uz mani, lietotāju. Šie 3 šeit attiecas uz grupu. Fails pieder 1 grupai, lietotājs var piederēt vairākām grupām, , bet, ja lietotājs ir grupas, kurā fails pieder, tad šie aizsardzības attieksies uz viņu, ja viņš nav lietotājs. Un tas viens ir visiem pārējiem. Šīs kategorijas ir savstarpēji izslēdzoši. Lietotājs aizsardzība attiecas uz viņu, kā grupa aizsardzības attiecas uz locekļiem no grupas, kas nav lietotājam, un citi aizsardzības tikai uz cilvēkiem, kas nav lietotāja un grupas biedriem. Ja tur ir r vai aw, vai x, tas nozīmē, ka aizsardzība ir piešķirta. Ja tur ir defise, tas nozīmē, ka tā nav. Tur tiešām ir citas lietas, ko var likt šeit bez tiem, ko es ne iekļuvuši tagad. Umask definē noklusējuma failiem, ka jūs izveidojat. Un kā masku, būtībā tā saka biti, kas jums nav noteikti. Kā tas ir kļuvis biti? Ja jūs domājat par katru no tiem kā astotnieku numuru, tas ir 1s bit, tas ir 2s, tas ir 4s. Tātad no 0 līdz 7 aprakstīt to kombinācija r s, w s, un x ir jums par šīm 3 un pēc tam līdzīgs numurs šie un pēc tam šo. Tātad 022 ir 0 uz otru, 2 grupas, 2 lietotājam. Bet tas ir maska. Maska ir tas, kas jums nav. Piedod. Es tikai tev lietas nepareizā secībā. Tas ir pirmais 3. Šie 3 ir lietotājs, šie 3 ir grupa, šie 3 ir otra. Sorry es tev tos nepareizā secībā. 0, kas ir pirmais no tiem, nerāda vērtības, bet, ja numurs nav tur, tas ir 0. Tas nozīmē, ka būtu jāatļauj visi 3 no tiem. Paziņojums, ka šajā konkrētajā one x netiek atļauta. Tas tādēļ, ka apvalks ir spējīgs noteikšanai vai fails ir izpildīts vai nav. Tā kā tas nav izpildāmo failu, tas nav noteikti x. Gada 2 nozīmē, ka rakstīt atļauja, otro kategoriju šeit, viens vidū, tiek liegta. Tātad vēlreiz, tās ir lietas, kas ir liegta. Nu, x ir atļauts, bet tas nav šeit, jo tas nav izpildāms un tāpat attiecībā uz citiem. Tātad, tas ir kopīgs umask. Vēl viens izplatīts ir 700 - dot sev visu, un neviens cits neko. Un ir arī citas iespējas. Es iešu atpakaļ uz to. Izmantojot vēsturi varu meklēt atpakaļ par to, LWH lai tur. Labi. Tātad, šeit tie ir čaumalas. Bash, īpašnieks, kas ir sistēmas kontu, var darīt visu. Grupa un visi pārējie var darīt izlasīt vai izpildīt, bet ne rakstīt. Tas viens nav pat ļauj īpašniekam rakstīt to. Ja īpašnieks vēlējās rakstīt to, sistēmas kontu, viņš būtu jāmaina aizsardzību pirmās. Bet atkal, umask nosaka noklusējuma maskējot to, , norādot biti, kas netiks noteiktos. Tas parasti ir vienā no saviem inicializācijas failu, kas ir. Cshrc C-čaulas vai. profils uz Bourne tipa korpusiem. Tas var būt citur arī, ja ir citi inicializācijas failus sistēma. Anyway, tas ir umask. Tur ir kaut veida dīvaini šeit un tas ir, kāpēc ir vienota komanda par šo? Ja es rakstot šo, es būtu to mainīgais, umask = dažas vērtības. Kāpēc ir vesela komanda, tikai šim nolūkam? Iemesls ir tas tikai iet atpakaļ uz izcelsmi Unix. Unix bija tikai daži programmu projekts Bell Labs jau 1970. Cilvēki vienkārši sanāca kopā, lai programmu. Viņi nekad nav paredzēts, lai tā kļūtu par pasaules operētājsistēmu. Dažādi cilvēki rakstīja dažādas daļas nedomājot ļoti par to, kā viņi gatavojas izmantot - diezgan paviršs. Un tas nāca kopā, piemēram, ka, un tas joprojām ir, piemēram, ka dažos aspektos. Tātad, kas atspoguļo vēsturi, un joprojām ir šīs neatbilstības un nepāra elementi tā. Labi. Nākamais šeit. Kā es rakstīja iepriekš, C-apvalks nav īsti izmantots ļoti daudz plānošanu, lai gan tas var būt. Tā izpilda lēnāk, atkal kompromisu starp interaktīvo lietojumu, kas ir vairāk apstrāde iesaistīto nekā ātrums, kas var iztikt bez apstrādes. Papildu funkcijas, kas pievienotas Bourne Shell ar Korn un Bourne-atkal korpusiem neliekas palēnināt tos, un es nezinu, kāpēc tas ir. Tā var tikai būt labāk programmēšana, bet es neesmu spējīgs zināt. Paātrinās šeit patiesībā nav tik liels galā, lai gan tas ir minēts. Iemesls ir tas, ka čaulas skripti faktiski iegūt diezgan ātri. Ja ir daudz komandas, piemēram, ar calculational programmā, jūs, iespējams, nevar darīt to shell skriptu. Operācijas ir diezgan vienkāršs un tiešs. Tiem, kas es esmu pieredzējis, ka ir pārāk lēns ietver atkārtotus pieteikumus lēni komandas. Agrāk es teicu plūsmas redaktoru sed. Ka komanda ir lēna. Ja jūs izpildīt sed daudzas reizes, jūs saņemsiet lēns skriptu, bet tas nav apvalks, kas ir lēns. Darbojas to Bourne čaulas nebūs daudz ātrāk nekā darbojas to C-apvalks, lai gan tur ir varbūt dažas priekšrocības tur. Papildu programmēšanas spējas, no otras puses, ir nozīmīgi iemesli, kāpēc jūs varētu izmantot Bourne tipa korpusiem. C-shell ir nepāra funkcijas, to - Tas, ka jūs nezināt, ja mainīgais ir apvalks mainīgā vai vides mainīgais. Tas var būt ļoti mulsinoši. Tas nav tik viegli rakstīt tikai, pamatojoties uz savu pieredzi plānošanas citās valodās. Es domāju, ka jūs varat atrast Bourne tipa korpusiem vairāk atbilst jūsu pieredzi. Daži skripti, lai gan, var būt tūkstošiem līniju garumu. Tie, kas es esmu redzējis tiek izmantoti lāpīšanu operētājsistēmas. Tie var izpildīt ļoti lēni, bet jums nav palaist tos ļoti bieži. Tas ir tikai tad, kad jūs darāt lāpīšanu, un tas ir tikai sistēmas pārzinis, kas dara šīs lietas, tāpēc tas nav īsti daudz jautājumu. Tiem, kas ir simtiem līniju ilgi reāli izpildīt diezgan ātri. Pieminēt to šeit, kādi ir šie uzlabojumi? Es jau esmu minēts dažas no tām - masīvi, aprēķini, par $ () ekspresijas aprēķiniem, kas Bash čaumalas cita veida komandu aizstāšanu. Ir dažāda veida testēšanas komandu ar kuru jūs varat darīt nosacījuma testus esamību failu vai citām lietām. Ilgs šeit, šī komanda šeit. Ko tas dara, un kāpēc būtu kāds izmantot to? printenv variablename. Mēs zinām, kas printenv dara. Tā stāsta mums mainīgā vērtību. Un printenv variablename nebūs pastāstiet mums ļoti daudz, jo tur nav tādas mainīgs. Tukšu. Bet pieņemsim to kaut ko jēgpilnu. Tas nav tur, vai nu. Labi. Es domāju, es nekad nav definēts, ka. Pieņemsim tikai pārbaudīt savu vidi. Šī ir vēl viena komanda, ar kuru jūs varat pārbaudīt savu vidi. Ir vecs labs redaktors, mēs redzējām pirms vienu. Ko tas dara? Šeit mums ir backquote izteiksmi. Atcerieties, tas ir C-shell. Tāpēc printenv redaktors dos mums vērtību redaktoru. Tas ir vi. Un tad tas noteikti šo vērtību mainīgajam a, noteiktajā komandu. Tāpēc tagad, ja man echo $ a, man vi. Tas nešķiet briesmīgi noderīgs. Tomēr tas tiešām ir mērķis. Jo mēs nezinām, vai mainīgais ir apvalks mainīgā vai vides mainīgais izmantojot dolāra zīmi novērtēšanas sintaksi, mēs varam izmantot printenv lai pārliecinātos, ka tas ir vides mainīgais. Tātad, ja tur bija apvalks mainīga redaktors, tas nebūtu gotten to. Tas strādā tikai ar vides mainīgo. Ja tur bija čaulas mainīga, un es gribēju to vērtību, Man ir atrast kādu citu veidu, kā to izdarīt. Viens veids, kā to darīt, būtu darot komplektu un cauruļvadi. Tas ir viens no metacharacters, īpašas zīmes. Tā sūta produkciju, kas, lai kaut kas cits. Paskatīsimies, ko mēs varētu atrast tur. Nekas. Labi. Pieņemsim tikai redzētu, kas tur viss kopā. Tas bija echo_style, viens es minēju iepriekš. Labi, pieņemsim darīt. Atcerieties, es minēju iepriekš, echo_style nosaka, kā atbalss komanda darbosies. BSD stendi Berkeley Standard Distribution. Tas ir Berkeley Unix no 1970. Tas ir viens no veidiem, ka ECHO vienlaikus var darboties. Nosakot echo_style šai vērtību TC-čaulas liks echo rīkoties šādā veidā. Tātad, kas tas, ka, bet noteikti tikai izpaužas korpusa mainīgie. Tas nevar atrast redaktors, kas nav apvalks mainīgs. Nekas. Tātad tas ir viens veids, kā atšķirt tos. Bet fakts, ka jums ir iet caur kādu dīvainu komandu, piemēram, ka atšķirt korpusa mainīgie un vides mainīgajiem parāda veida nepraktiski rakstura C-shell dažiem mērķiem. Un tagad, pēdējā un varbūt mazāk, tas ir cilvēks lapas. Tie, kas jūs zināt, man ir komanda īss rokasgrāmatu. Cilvēks lapas čaumalas ir grūti lasīt. Viņi ir ļoti garš. Viņi organizēta tādā veidā, kas var padarīt to grūti, lai atrastu to, ko jūs meklējat. Tātad, ja jūs meklējat kaut ko, ar mērķi, Jūs varat nezināt, ka mērķis ir apvalks mainīga vai kaut kas cits, lai jūs varētu nezināt, kur to meklēt. Jūs varat meklēt dažādus stīgas, bet stīgas bieži atkārtojas. Tātad, tas ir vispār grūti lasīt. Mēs vienkārši paskatījās TC-čaulas man lapu nedaudz agrāk, lai atrastu EVAL komandu. Dažas lietas iet ātrāk. Viena pieeja ir meklēt virkni. Jūs varat izmantot peidžeri. Peidžeri ir slīpsvītra meklēt komandu vai virknes iekšpusē peidžeri darbību. Man pēc noklusējuma izmantos peidžeri, nu vairāk vai mazāk. Es nezinu, ja jūs esat pazīstami ar tiem, bet tie var parādīt failus pamazām. Esmu bijis, izmantojot mazāk, lai parādītu šo konkrēto failu, mēs esam ieguvuši šeit. Jūs varat meklēt iekšā tur. Jūs varat mēģināt izmantojot dažādus meklēšanas virknes. Arī man lapas dažādas operētājsistēmas nevar būt vienādi. Tie var būt atsevišķas lapas CSH un tcsh. Viņi nav uz Mac, bet tie varētu būt, ja tās ir atsevišķas komandas. Ja sh nav īsti zvanīt Bash, ka, iespējams, varētu būt atsevišķs cilvēks lapā. Dažas sistēmas ir atsevišķas cilvēks lapas tikai par C-shell iebūvētās komandas. Dažreiz, ja jūs vēlaties, lai lasītu aprakstu iebūvētu komandu tas ir arī ceļā, piemēram, atbalss, jums ir nepieciešams, lai izlasītu man lapu par šo komandu par echo lai noteiktu, kā tā darbosies kā iebūvētu komandu pat ja jūs neesat zvanot iebūvēto komandu. Tas ir trūkums operētājsistēmas kopumā, ne tikai attiecībā uz čaumalas, lai gan čaumalas, jo īpaši cilvēks, lapas ir diezgan garš, daļēji tāpēc, ka tie esam pievienojuši noderīgas funkcijas, lai tiem, kas var būt pozitīva. Labi. Vai ir kādi jautājumi? Jebkuri jautājumi vēlaties audzināt? Kaut kas attiecas uz šo lietu? Nu, tas ir bijis ļoti patīkami runāt ar jums visiem. Es ceru, ka jums kaut kas no šī semināra , kas būs noderīga, lai jūs, jūsu nākotnes centienos. [CS50.TV]