>> [Seminaras - Unix Korpusai, aplinka]
[Douglas Kline - Harvardo universiteto]
[Tai CS50. - CS50.TV]
>> Šiandienos tema yra UNIX apvalkalo.
Aš Douglas Kline, ekspertas, ar bent jau pakankamai kompetentinga vartotojas, lukšto.
Apvalkalas yra už prie kompiuterio operacinės sistemos naudotojo sąsaja.
Pavadinimas yra klaidinantis, nes, skirtingai nuo gyvūno lukštais,
kuris yra sunku ir apsaugos, kompiuteris apvalkalas leidžia komunikacijos.
Taigi akyto membrana tikriausiai bus geriau metafora.
>> Originalas apvalkalas Unix yra Bourne.
Bornas rašomas B-O-U-R-N-E.
Bornas buvo viena pirmųjų autorių Unix,
ir tt karkasas pavadinta jo vardu.
Tos lukštais kaip įsakymo pavadinimas yra tiesiog sh.
Štai komandą galite atlikti.
Apvalkalas prasideda prisijungęs.
Kai prisijungiate prie kompiuterio, karkasas dar tik pradeda rodyti jums,
ir tai, kas trunka jūsų komandas.
Jis gali pradėti kitu laiku, taip pat.
Jei auklėti langą su jokia kita nuoroda, jis pradės jums lukštais.
Štai kaip ji yra, kad jūs galite pereiti prie lango ir pradėkite rašyti komandas
ir taip toliau ten nors tu negali prisijungti prie to lango.
Be to, jei jūs nuotolinio prisijungimo,
tada jis pradeda apvalkalo nuotolinio kompiuterio.
Ir tai galima vykdyti komandas be interaktyvios lukštais.
Tai gali reikšti jūsų dabartinę operaciją,
ir tai taip pat gali reikšti valdyti nuotoliniu būdu.
Galite siųsti komandą į kitą kompiuterį,
kuri apima pradedant lukštais ten.
Tiesą sakant, ji turi apimti pradedant apvalkalas yra
net jei tai ne jūsų galutinis tikslas.
Kai kas nors pradeda veikti, kaip šis, tai nebūtinai pradėti naują kriauklę.
Jei jums atnešti naują langą, tai galima pasakyti, kad auklėti redaktorius
arba kokia nors kita komanda.
Tokiu atveju, redaktorius pradėti nuo nulio.
Kai redaktorius baigiasi, langas baigiasi.
Tai šiek tiek neįprasta, tačiau tai gali būti padaryta.
Tais atvejais, tai nebus apvalkalas.
Taigi tai nebūtinai atsitinka, kad langas ar kai toks taikymas leis iki lukštais.
>> Shell "analizuoja komandas.
Analizuojant tai nustatant įvairius elementus ir juos suklasifikuoti.
Per komandą, pilnas eilutė, įvesite,
ten bus 1 arba daugiau atskirų komandos turi būti įvykdytas.
Kiti elementai gali būti argumentai.
Taip pat gali būti specialūs simboliai, kurie turi įtakos paliepimo vykdymas.
Jie gali siųsti išėjimo kažkur, išskyrus ekraną
jei komanda būtų paprastai siųsti jį į ekraną.
Jis gali nukreipti įvestį, jis gali daryti kitus dalykus, taip pat.
Yra įvairių kiti simboliai, ženklai ir pan.
Analizuojant apima aptikti ir interpretuoti tuos dalykus.
>> Dabar, jei nėra daugiau klausimų, o tai yra gana tikėtina, nes nėra daugiau žmonių,
mes galėsime eiti į mano kitame puslapyje čia.
>> Sakiau anksčiau, kad Bourne yra pradinis apvalkalas.
Yra ir kitų.
Vienas iš jų yra C-shell. Komanda Csh.
Pavadinimas C-apvalkalas yra tik žodžių žaismas.
Šis apvalkalas buvo supažindinti su Berkeley Unix viduryje 1970.
Berkeley Unix buvo sėklinių įvykis Unix plėtrai.
Tai buvo didžiulė revoliucija ir įtraukti šio apvalkalo įvedimą.
Tuo žaisti žodžiais priežastis, C korpusas,
yra tai, kad C-apvalkalas turi tam tikrų savybių, kurios jį panašus į C kalbą,
kuri neturi Bourne -
arba ji neturi tuo metu.
Yra taip pat TC-shell.
Tai iš C-lukštais Superset.
Ji turi papildomų funkcijų, iš kurių daugelis yra naudinga interaktyviam naudojimui,
pavyzdžiui, primindamas komandas istorijos mechanizmą,
kurį aš aprašyti šiek tiek vėliau -
paprastu būdu, modeliuojama po redaktorius.
Ji taip pat turi apkaustais, kurie leidžia susieti trumpą svarbiausią eilutę ilgesnį komandą.
Mes neketiname būti gauti į, kad ir šiandien.
Jis turi keletą funkcijų, kurios yra naudinga programavimą.
Tačiau, C-gaubtas nėra dažnai naudojami shell programavimo.
Shell programos, jei ne jau žinote,
Yra programų, kurios sudaro korpuso savybių.
Jūs galite paleisti juos kaip programas.
Jūs rašote Shell komandų krūva į failą ir vykdyti failą.
Jums nereikia rinkti jį. Tai interpretacinis kalba.
Frazė C apvalkalas yra dabar dviprasmiškas, kadangi jis gali kreiptis tik į pradinį C shell, csh,
ar visiems C-kriauklių, įskaitant tcsh. Tai šiek tiek dviprasmiškas.
>> Vėliau apvalkalas yra Korn shell, ksh, pavadintas po to, kai programuotojas Korn.
Šis apvalkalas bandė įtraukti į 1 lukštais
kuriame C-apvalkalas interaktyviam naudojimui privalumai
ir Bourne Shell programavimas.
Jis buvo naudojamas kaip interaktyvus lukštais kai kurių žmonių - mažuma.
Vėliau, nors ten buvo dar vienas įvadas, bash, bash,
vėl žodžių žaismas, Bourne-vėl lukštais.
Tai iš Bourne apvalkalo plėtinį. Korn shell taip pat. Abu jie yra.
Ji turi tas pačias tikslus Korn apvalkalo sujungiant C Shell
ir Bourne Shell privalumai 1 lukštais.
Daugelis iš Korn lukštais patobulinimai taip pat įtraukti į Bash.
Bash, tačiau turi daugiau, todėl yra geriau.
Bornas-vėl "Shell" ir "Korn shell vadinami Bornas tipo kriauklės
nes jie yra The Bourne Shell charakteristikas,
, kuri yra nesuderinama kai su C korpusų atžvilgiais.
Yra kitus kevalus be tų, kai nustatyto riboto naudojimo paskirtį,
gal tik kai kurių komandų, gal specializuotos tikslais, o ne dažnai naudojama.
>> Gerai. Sekanti prekė čia.
Bash tapo susijęs su įvairių formų Linux.
Aš nesu įsitikinęs, jei tai tiesa kiekvienam forma.
Yra daug formų ten ir aš ne naudoti juos visus,
bet tie, kad aš naudoju ji tapo su juo susijusios.
Taigi, kiek aš žinau, nėra nieko apie Bash
todėl daugiau suderinamas su Linux
nei bet kuris kitas derinys lukštais ir operacinę sistemą.
Manau, kad tai tikriausiai tik atspindi programuotojų polinkius.
Kad jis tapo susijęs su Linux yra dar viena priežastis, teikia pirmenybę Bash į ksh
nes viskas yra tikėtina, kad bus parašyta tai ir tai gali plisti.
Aš duosiu jums kitų priežasčių, kad vėliau.
Bourne apvalkalo scenarijus turėtų būti vykdoma pagal Korn korpuso arba Bash.
Jeigu jums reikia parašyti kažką Bourne lukštais,
tikriausiai jį vykdyti pagal ksh arba bash.
Korn shell skriptus tikriausiai paleisti pagal Bash, bet aš negaliu garantuoti, kad.
Vėliau čia C shell scenarijus turėtų būti vykdoma pagal TC-apvalkalo.
C-apvalkalas iš tikrųjų niekada plačiai naudojamas scenarijus
nes Bornas Mokėti vėliau Bourne tipo lukštai buvo geriau šiam tikslui.
Taigi, kad tikrai ne visi, kad svarbu.
Yra gana daug Bourne apvalkalo scenarijus, kurie buvo raštu seniai daug,
prieš Korn korpuso arba Bornas-vėl apvalkalas buvo įvesta.
Tie, kurie vis dar naudojami, dalis operacinių sistemų,
ir taip jūs juos rasti, jei jūs žiūrite į operacinę sistemą
arba kai kurių senų programų paketai.
>> Bash kažkiek tampa lingua franca operacinių sistemų natūra.
Tai jau buvo pratęstas Windows ir LSS.
LSS, jei jūs nežinote, yra patentuota operacinės sistemos
Digital Equipment Corporation, kuri yra vis dar naudojami, daugiausia užkulisiuose.
Ir jei ji ketina veikti, ant kelių skirtingų operacinių sistemų,
tikėtina, kad žmonės yra linkę perkelti jį.
Tačiau ši plėtra yra palyginti neseniai.
Tai tik pradžia, todėl aš negaliu numatyti, ar tai pavyks tikrai, kad lingua franca natūra.
Be to, kadangi failų pathnames ir bibliotekos skiriasi
tarp šių skirtingų operacinių sistemų,
jūs negalėsite rašyti bash scenarijų į vieną operacinę sistemą
ir tada paleisti jį į kitą.
Turėtumėte galėti perkelti jį tarp skirtingų UNIX, Linux
"Mac OS" operacinėse sistemose, bet nebūtinai į Windows arba LSS.
Jums gali tekti pakeisti failą takus aprašymus,
ir kai kuriose bibliotekose gali būti skirtingi,
kurie gali turėti įtakos, kad kai komandos dirbti
arba kaip jie tvarko argumentus ir pan.
Be to, dar atsargiai čia yra tai, kad nėra jokių garantijų,
kad visi skirtingi lukštai minėjau - Bourne shell, C shell,
TC-apvalkalas Korn shell, Bourne-vėl lukštais - bus galima pasinaudoti bet Unix
ar Linux ar Mac OS kompiuteris.
Jie tiesiog gali būti ten.
Tai vienas iš čia įspėjimus.
Tai gaila apribojimas čia, nes jūs norite ką visur dirbti,
bet, deja, jūs negalite pasikliauti, kad.
>> Gerai. Kitas vienas čia.
Tarkime, kad norite rašyti apvalkalo scenarijus,
Programa sudaryta iš apvalkalo komandas.
Jūs rašote savo komandas, įdėti juos į failą, ir vykdyti failą.
Ką daryti, jei norite įtraukti argumentus?
Be priedangos operacijos, argumentai vadinami parametrais arba pozicinį parametrai
ir jie bus vadinami dolerio ženklas ir skaitmuo, $ 1, $ 2.
Taigi, jei scenarijus turi šį vardą, mano pirmasis argumentas gali būti argumentas 1
ir mano antrasis gali būti argumentas, 2,
ir viduje mano scenarijų, jei aš noriu kreiptis į šių dalykų -
tegul ištrina tai, nes aš ne iš tikrųjų vyksta jį paleisti -
viduje mano scenarijų aš gali turėti 1 $ kreiptis į ARG1,
2 $, kuris ateis, kad taip, ARG2.
Taigi šie simboliai yra nurodyti argumentus,
ir jos taikomos visiems iš kriauklių.
Be to, yra ir kitų simbolių.
$ * Nurodo visą argumentų sąrašo, juos visus.
$ # Reiškia argumentų.
Vėlgi, tai galioja visiems kriauklių.
Šie simboliai * ir #, gali būti naudojamas su šių reikšmių kitose vietose taip pat.
Mes ne gauti į tą.
>> Shell patikslintojas linija. Kas, kad?
Tarkime, jūs parašiau scenarijų ir tai tam tikram karkaso ir norite jį paleisti.
Kaip jūs žinote, ką Mokėti jūsų operacinė sistema naudoja paleisti scenarijų?
Vienu metu galima manyti, kad jis būtų paleisti jį į Bourne lukštais
jei tu negali pasakyti kitaip,
tačiau žmonės ne rašyti scenarijus ir Bourne, kad daug daugiau
ir jūs net negalite pasikliauti, kad nebėra.
Taigi čia mes turime apvalkalo patikslintojas liniją čia.
, Kuri nurodo Bash.
Atkreipkite dėmesį, kad tai nurodo jį takus, / bin / bash.
Jei kompiuteris turi bash bet ne bin, / bin, tai neveiks.
Tai dar kriterijaus, kitas atsargiai čia.
Svaras ženklas yra eilutė komentaro simbolių.
Tai taikoma visiems kriauklių.
Ypač šiuo atveju, #! prie skripto pradžioje, yra ypatingas atvejis.
, Kurioje nurodyta, lukštais, kurioje paleisti scenarijų.
Kaip jau sakiau, tai gali būti ne pati vieta / bin.
Be to, yra dar vienas dalykas čia.
Jei naudojate tik ženklas grotelės be šauktuko ir takus,
kad turėtų nurodyti C-shell.
Tačiau, aš nerekomenduojame to daryti, kad, nes aš nesu pajėgi užtikrinti
kad visada dirbti.
Jei norite C-shell, tai geriau būtų pasakyti.
Tada kažkas gana paini čia.
Jei naudojate lukštais patikslintojas liniją, pavyzdžiui, / bin / bash
ir kad apvalkalas nėra ten,
nėra tokio dalyko kaip / bin / bash tą konkretaus kompiuterio,
arba todėl, kad ji neturi Bash arba todėl, kad tai į kitą vietą,
gausite sakau, kad scenarijų jūs paleidote neegzistuoja klaidą.
Ir, žinoma, jūsų scenarijus egzistuoja, kad klaidos pranešimas yra paini.
Priežasties, kad operacinė sistema suteikia jums šią klaidą
arba, tiksliau, kad jūsų interaktyvių apvalkalas, kurioje dirbate, tai suteikia šią klaidą,
kad ji pranešė apie komandą, kurį naudojote, kuris yra scenarijaus pavadinimas.
Kad komanda efektyviai vadinamas apvalkalas pagal scenarijų pavadinimą.
Štai kur jūs gaunate tą keblią klaidos pranešimą.
Kitas būdas skambinti apvalkalo scenarijus
yra nurodę lukštais komandinėje eilutėje, kaip čia.
Tai komanda. Tai sako paleisti Bash ir tada paleisti savo scenarijų Bash.
Tai bus viršesnės yra patikslintojas linija,
ir tai, kad leidžia jums nustatyti įvairaus pathnames funkciją.
Jei tiesiog duoti komandą, operacinė sistema ieškos tos komandos
įvairiose vietose.
Jei tai įmanoma, ji turėtų rasti.
Kompiuteris, bus surasta Bash kur ji yra įsikūrusi, ir paleisti jį,
todėl jums nereikia tada būti susirūpinęs, jeigu ji nustato, kad.
Yra galbūt kitų problemų čia
kaip jei yra daugiau nei 1 versija Bash, kas yra įmanoma, nors mažai tikėtina.
Štai dar vienas būdas kovoti su šių dalykų.
Patikslintojas linijos gali skambinti bet lukštais.
Jie taip pat gali skambinti kitų nei kriauklių dalykų.
Pavyzdžiai turiu čia yra sed, kuri yra upelis redaktorius;
awk, kuri yra modelio apdorojimas kalba;
ir perl, labai gerai išvystyta skriptų kalba.
Jeigu jūs įtraukėte patikslintojas eilutę nurodant vieną iš šių pradžioje programomis,
jis bus eiti tiesiai į tą programą, o ne pradedant lukštais.
Šios programos turi ribas savo sugebėjimus.
Perl yra labai pajėgi. Sed yra redaktorius. Jis gali daryti dalykus, nei tiesiog redaguoti.
Tačiau ji gali būti sunku programuoti, kad.
Be to, einančios argumentus ir stuff scenarijus yra neįmanomas arba paini.
Taigi tais atvejais, su awk ar sed, tai, bent jau mano patirtis rodo,
Pageidautina rašyti apvalkalo scenarijus ir skambučių awk arba sed iš apvalkalo scenarijus
o ne telefonu awk arba sed kaip scenarijų patikslintojas linija.
Perl yra labai įvairus kalba, kaip sakiau.
Jūs negalite paleisti interaktyvias komandas perl
tai reiškia, kad jūs negalite išbandyti dalys scenarijus, kad jūs besivystančioms
veikia juos interaktyviai.
Tačiau tai labai pajėgi kalba
ir tapo labai plačiai naudojama priemonė.
Tai tik šiek tiek iš skliausteliuose pastabą apie patikslintojas linijas.
>> Visose arba daugelyje formų Linux - vėl aš negaliu būti tikras, kad viskas -
ir Mac OS, jei įvesite csh gausite tcsh,
ir jei įvesite sh gausite bash.
Jie bando ten suteikti jums daugiau pažangių versijas šių kriauklių,
bet tai gali būti painu.
Jeigu jums reikia parašyti scenarijų naudojant tcsh arba bash yra tuo pat metu ragino Csh ar sh
ir tada pabandykite paleisti jį į kompiuterį, kuris neturi tcsh arba Bash,
jūs galite gauti kai kurias klaidas, jei yra komandos ten
kurie tie lukštai nepripažįsta.
Be to, jums gali būti vadinamas savo kiautą į Jūsų vietinį kompiuterį
vadindami jį kaip sh arba Csh ir tada gauti daugiau pažangių kriauklių.
Jūs negalite net galvoti apie tai, kad jūs naudojate, kad labiau pažengusios lukštais.
Taigi tai yra potencialus spąstai.
Kaip buvo nustatyta, kad jei įvesite sh gausite Bash,
jei įvesite csh gausite tsch?
Yra dalykų, šių kompiuterių vadinamas nuorodos
kuris gali prisijungti prie failų vardai kreiptis į tą patį.
Tai gali būti arba 2 vardai tame pačiame faile, arba failą, kurio tikslas yra perduoti į kitą failą.
Jie vadinami kietos ir simbolinėmis nuorodomis. Mes ne eiti į, kad nebėra šiandien.
Taip pat gali būti atskiri failai - 1 byla sh, 1 failas bash -
bet jie abu paleisti Bash.
Tada ten dar kvalifikatorius čia.
Jeigu skambinate vieną iš šių kriauklių po vienu vardu,
jūs manote, kad norite gauti tą patį funkcionalumą kaip pavadino jį kitu vardu.
Na, tai iš tikrųjų yra nebūtinai tiesa.
Šios komandos gali patikrinti pavadinimą, pagal kurią jie buvo vadinami
ir jie gali dėl to pavadinimo pagrindu, elgtis kitaip.
Čia gali būti klausimai bando atitikti standartą.
Kai kurie iš jūsų galbūt girdėjote apie kitą POSIX standartą arba,
gal kitų funkcijų.
Tai gali būti pasirinktas kartais komandų eilutės argumentai
arba nustatant lukštais kintamuosius.
Kreipiamės į jį kaip sh ar bash iš tikrųjų gali sukelti skirtingos vykdymo
net jei tai pats failas, kad jūs vykdyti.
Kitas dalykas, apsvarstyti, yra, kad net jei kitas kompiuteris turi tcsh arba Bash,
jei jie nėra susiję, nes jie yra jūsų vietiniame kompiuteryje
jei turite Linux arba Mac OS vietinį kompiuterį,
tada vėl gausite lukštais, kad jums skambinti sh arba Csh, o ne vienas, kad jūs galite norėti.
Dabartinė Bourne Shell patobulinimų mažiau nei Bash
tačiau praeityje už pradinio Bourne apvalkalo.
Kaip to rezultatas, net dabartinis Bourne, sh,
net jei tai ne bash, primena C kalbos daugiau nei C-apvalkalas veikia.
Tai buvo netiesa, kai C-apvalkalas pirmą kartą buvo sukurta, bet jis sukūrė, kad taip.
Galbūt pastebėjote, kad visi šie pavadinimai lukštais, išskyrus Bourne lukštais
turi kažką nurodyti, kuri apvalkalas jie - csh, bash -
bet Bourne yra tik sh.
Kodėl? Tai buvo originalus lukštais.
Tai buvo lukštais tada, o ne su lukštais,
ir kadangi ji buvo apvalkalas, nėra jokios priežasties atskirti jį nuo kito korpuso.
Štai kodėl ji turi tokį pavadinimą ir vis dar veikia.
>> Tai aukščiausios čia yra iš slaptažodžių duomenų bazės linija sąskaitos ten turi
kitame kompiuteryje.
Aš einu bandyti gauti šį vardą, todėl jūs galite pamatyti, kad dalis pabaigoje lukštais.
Slaptažodis bazė turi prisijungimo charakteristikas visiems vartotojams.
Pradžioje yra vardas, kurį galite pamatyti paskutinius 2 raides mano dabar.
Laukai čia yra atskirti dvitaškius.
Paskutinis laukas, kaip matote, yra bin / tcsh, apvalkalas.
Štai apvalkalas patikslintojas.
Yra kažkas įdomaus čia.
Kai UNIX pirmą kartą buvo sukurta, ten buvo tik 1 korpusas,
todėl nebuvo jokio pasirinkimo ten.
Tad kodėl jie leidžia slaptažodžio duomenų bazės laukas nurodyti lukštais?
Aš nežinau, bet tai pasisekė, kad jie tai padarė.
Tai gana sunku keisti slaptažodžio formato duomenų bazės
nes daug programų nuorodą į savo formatu
ir turėtų būti perrašyta.
Tai taiklus arba atsitiktinė plėtra, kad jie įtraukti šioje srityje.
Ši slaptažodžiu eilutę failo natūra yra naudojamas ant visų Unix ir Linux kompiuteryje, kiek aš žinau.
Mac turi savo sistemą.
Jis tikrai turi slaptažodžių failą su tokio formato eilučių,
bet tai ne ten, kur yra apibrėžiamos vartotojų savybės.
Kitas skliausteliuose pastaba ten.
>> Jei jūs skambinate lukštais, galite jį vadiname kaip sub-sluoksnis pasiūtas iš savo esamų korpusų.
Taigi, jei aš einu čia, galime atsikratyti šių dalykų.
Čia aš esu C korpuso.
Tai kintamasis, kuris tiksliai nustato savo lukštais,
iš tikrųjų yra ne visada patikimas būdas nustatyti, ką Mokėti dirbate,
bet šiuo atveju tai yra.
Ką daryti, jei aš tiesiog įveskite -
Dabar aš Bash.
Kai viskas vyksta tas pats. ls man sako mano įsakymų.
Jeigu aš sustabdyti atgal į savo C-lukštais, ls, tas pats. Teisė?
fg, įgytos žinios, atgal į mano bash.
pwd, einamojo katalogo, į C-apvalkalo.
pwd, skiriasi katalogas - tikrai ne kitoks katalogas šioje byloje.
Tai tą pačią direktoriją.
Tarkime, aš noriu paskambinti komandą čia: kur ls.
Ką tai padaryti?
Ji man sako, kur ls komandą,
vienas, kad suteikia man Directory Listing, yra ls.
Grįžkime į bash. Pabandykime tą patį.
Hmm, įdomu, ten, kur: komandų nerastas.
Kodėl taip yra?
Jei komanda yra pastatytas į C-apvalkalo.
Tai nėra komanda, kuri turi būti skaitoma į atmintį iš kažkur kitur ir įvykdytas.
C-apvalkalas veikia jį perduoti vykdyti daliai savo kodą
ir tai ne bash.
Taigi, bash, o ne turintis tokį integruotą komandą, atrodo, kad jis, ne jį rasti,
ir mes klaidą.
Taigi mes turime bash veikia pagal C-lukštais, ir mes vadiname tai sub-shell.
Ir tik tuo atveju, jei įdomu, bash turi savo kelią rasti komandas.
maišiojo remiasi tuo, kad ji gali būti greičiau įvykdytas,
išore greičiau.
Tai vienas iš patobulinimų, pastatytų į kai kuriuos iš šių kriauklių.
>> Bornas tipo lukštai yra pageidaujama programavimo.
Jie turi kontrolės struktūras, pavyzdžiui, kilpos, priklauso pareiškimus,
komandų rūšiuoti, kad galite naudoti programavimo kalbų kaip C
ar kokia kalba. Gal jūs programavimo Java ar whatever.
Korpusai turime tokių yra.
The Bourne tipo lukštai, ypač bash, turi daugiau
ir jie yra suprojektuoti su didesniu lankstumu.
Bash turi masyvų. Originalus Bourne nėra.
Taigi, kad gali būti žymiai naudingiau programavimą.
C-apvalkalas iš tiesų yra masyvus, tačiau neturi šių kitų funkcijų daug.
The Bourne tipo kriauklės atliks greičiau
, jeigu jie neturi savybių, kuriomis interaktyvaus naudojimo.
Jūs įkelti dalykų žemyn vieną tikslą, tai įkelia juos kitam tikslui.
Yra, kad kompromisas yra.
Šios savybės, kurios yra skirtos interaktyviam naudojimui
tikrai yra mažai arba jokių naudojimo scenarijus.
Tai galima naudoti interaktyvų sub-shell kaip viena aš ten pradėjo
išbandyti komandas, kurios jūs ketinate naudoti scenarijų.
Štai ką jūs negalite daryti su Perl. Jūs galite tai padaryti su kriauklių.
Net kaip už kilpos ir pan struktūros gali būti paleisti interaktyviai.
Jie kartais naudinga paleisti interaktyviai,
tačiau labiau tikėtina, jūs naudojate juos kurti scenarijų.
>> Slapyvardžius.
Tai bus apie C-apvalkalo.
Istorija mechanizmas, kai tu grįžti į ankstesnes komandas
ar jų dalių, kad jūs jau paleisti.
Vėlgi, apie C-lukštais, Bourne Shell "ir" Korn shell turi šiuos dalykus,
bet aš nesiruošia gauti į juos.
Taigi, čia yra keletas naudingų slapyvardžiai, kad turiu.
Užuot įvedę ls - tai bendra komanda -
tik L tipo ir sutaupyti 1 charakterį.
ls su įvairių variantų, visi tie darbai.
Atkreipkite dėmesį, kad šios sąvokos turi kabutes.
Tokiais atvejais kabučių yra nebūtinas.
Jei galite nustatyti šiuos slapyvardžius be kabučių, tai vis dar dirba.
Jie yra rekomenduotini.
Yra situacijų, kai jūs negalite naudoti citata
nes jūs norite ką nors, kad taip atsitiktų, kuri citata neleistų.
Kartais jūs galite pacituoti dalį apibrėžimą, bet ne visa tai.
Tai taip pat paprastai rekomenduojama naudoti kabutes, o ne kabutes.
Kabutes turėti įtakos kintamojo apibrėžimai,
ypač todėl jiems turi būti įvertintos, o ne jį sustabdyti.
Kodėl mes norime sustabdyti vertinimą?
Ir kaip citatos daryti mums?
>> Čia yra komanda, kuri galbūt įdomu.
"Ls g *"
g *, kaip tikriausiai žinote, yra pakaitos išraiška
visų failų pavadinimų, prasidedančių g.
Jei aš tiesiog parašyti komandų ls g *, aš gauti visų tų pavadinimų sąrašą mano kataloge.
Jei aš nustatyti, kad alias, nes ji yra čia kabučių,
jis bus rodomas, kad komandą į savo esamą katalogą, kur jūs paleisti jį.
Bet jei jums paleisti alias apibrėžimą be kabučių,
ji įvertins pakaitos g * kai jis paleidžia apibrėžiantį komandą.
Taigi slapyvardį apibrėžimas bus ls po failų sąrašas kataloge
kurioje alias komanda yra vykdoma,
nepriklausomai nuo to, kur jūs iš tikrųjų ketina paleisti komandą.
Tai nėra daug naudoti, ir vienas kabučių kelią žvaigždute vertinimą.
Taigi jūs tiesiog gaunate tai apibrėžti ls g *.
Tada, kai jūs paleisti alias, LGS, tai tada kelia, kad iš.
Dabar yra be kabučių ir jis įvertins žvaigždutę paleidus alias komandą.
Štai vienas dalykas.
Dvigubose kabutėse turėtų tą patį poveikį čia
tačiau yra ir kitų atvejų, kai kabutes neveikia taip gerai.
>> Štai dar vienas.
Žinote grep komanda.
Grep komanda gali būti naudojama nuskaityti linijoms, kurios turi tam tikrų eilutes failą.
Taigi eikime čia ir aš išeiti iš mano Bourne apvalkalo.
Gerai. Štai failas.
Tarkime, tai grep abc stygos. Yra tai yra.
Jeigu aš grep zddd, gaunu nieko. Gerai.
Taigi jis randa eilutę, jis pateikia; jis neranda, jis neturi apie tai pranešti.
Jis išveda bet liniją, kuri turi tą eilutę į jį.
Yra visos galimybes rūšių čia kurį galite rasti dokumentacijoje.
Štai vienas iš būdų tai padaryti.
Ką apie šį vieną, alias grabc "grep abc '?
Tai ketina būti 1 argumentą, kai alias apibrėžta.
Taigi, jei aš galiu padaryti, kad čia, dabar, jei aš grabc,
dabar alias apima daugiau nei paprastą komandą. Ji taip pat turi argumentu.
Iki šiol, kad veikia.
Turiu kitą komandą čia, tai vienas, todėl jie yra skirtingi stygos ten
ir parodyti, kad tai neranda nieko ten, nes ji nesutampa.
>> Ką daryti, jei aš noriu įtraukti į alias apibrėžimo failą, kad aš ruošiuosi ieškoti
ir aš noriu duoti kaip su alias styginių kad aš ieškau argumentų?
Aš noriu pasakyti, abc, kaip į mano pravardė argumentas,
bet pravardė jau nustatyta failą.
Ir tai, kai toks posakis Įgijusi
Atkreipkite dėmesį, čia mes turime grep kaip ir anksčiau.
Mes turime failą čia eilutes.
\! ^, Rūšies keista išraiška, manau, jei jūs dar nematėte anksčiau.
Šauktukas yra dalis C-shell istorijos mechanizmą.
Jis gali prisiminti ankstesnes komandas, jis gali priminti argumentus tiems komandas ir pan.
Istorija mechanizmas naudojamas kaip aliasing.
Jei nurodysite po šauktuko liniją, ji kreipsis į tos linijos Retrospektyvos sąrašas,
kurią mes nebus patekti į dabar, nes tai visai kita tema.
Tai galima nurodyti dalį linija.
Taigi! 03:02 būtų antrasis argumentas komandų skaičius 3.
Žymeklis čia šią išraišką reiškia pirmojo argumento.
Jei nenorite suteikti jai nuoroda, kurios komandą apie kurį Jūs kalbate,
tai reiškia, kad iš karto ankstesnės komandos,
ir Žymeklis yra pirmą argumentą simbolis.
Nes tai Žymeklis, o ne skaičius, jums nereikia naudoti dvitaškis,
taip! ^ tai pirmasis argumentas ankstesnės komandos.
Šiek tiek sumaišyti čia.
Tokiu atveju, kai jūs naudojate tai kaip alias apibrėžimą,
istorija nuoroda nukreipia į komandas, kuriose pseudonimas naudojamas.
Taigi tai grįžta 1 komandą kaip istorijos operaciją,
bet kaip alias operacijos ji nurodo komandą, kurioje jūs tipo,
pasakyti, grstrings_file.
Mes čia turime į jį kabučių. Kokia Backslash?
Šiuo atveju, kaip ir kitur, mes nenorime vykdyti istorija mechanizmą
apibrėžiant slapyvardį.
Jei mes neturėjome Backslash ten, išorinis sluoksnis būtų traukti į pirmojo argumento
iš komandos dešinę, kol ji bėgo šį alias komandą, o mes nenorime.
Mes norime, kad tai būtų integruotas į alias komandą skambinti argumentas vėliau.
Viengubomis kabutėmis ne pabėgti šauktuką, istorijos nuorodą.
Gal žinote išraiška pabėgti tai pakeisti kažką prasmę.
Šiuo atveju tai reiškia sustabdyti kažką turėti ypatingą reikšmę.
Šauktukas ypatinga reikšmė yra istorija.
Pabėgti ir jis neturi tokios reikšmės.
Citatos nedaryk to, Backslash nėra.
Taigi mes iš tikrųjų, naudojant 2 lygius išvengiant čia.
Aš ruošiuosi perkelti šią komandą į kitą langą be įrašyti ją
naudojant šiuos redagavimo operacijas, kurios jums gali praversti.
Kažkas čia aš jums parodysiu.
Jei tiesiog įveskite slapyvardį be argumentų, jis jums pasakys visus savo argumentus.
Tai Vardindami krūva aš jau čia
be tų, kad aš naudoju čia šiandien.
Bet jei aš tiesiog įveskite su pseudonimą, jis man sako, ką jis reiškia.
Atkreipkite dėmesį, kad citatos dingo ir Backslash dingo.
Ši eilutė čia yra tos alias apibrėžimo rezultatas,
ir dabar ji tiesiog! ^ į jį.
Tai ketiname ieškoti failų stygos nieko.
Taigi, jei aš grstrings_file eilutes, aš ne suteikti jai nieko ieškoti ten,
bet jis ieško stygos.
Jis nerado žodžių eilutes failo eilutes, bet ji rasti abc.
Ir tai nėra mano, kad.
Taigi čia mes suteikiame argumentą, hitai į alias apibrėžimą,
, kuris yra įdėtas į jį.
Tai kai toks posakis kilęs iš.
Jūs galite naudoti daugiau nei 1.
Žymeklis yra pirmą argumentą simbolis.
Jei nori naudotis antrąjį argumentą, jūs sakykite: 2.
Nėra jokių specialių simbolis antro argumento.
Ir todėl, kad jūs naudojate skaitmuo, jums reikės naudoti dvitaškis.
Vis dėlto, kitas pasirinkimas čia.
Dolerio ženklas reiškia paskutinį argumentą.
Ir todėl, kad tai yra simbolis, galite praleisti dvitaškis.
Taigi tai būtų paskutinis argumentas sąraše.
Ir ten taip pat, kad viena.
Žvaigždute tai visi, todėl tai yra visiškai argumentas sąrašas
ir vėl, galite praleisti dvitaškis, nes tai ne skaitmuo.
Tikiuosi, jūs visi stebi visa tai.
>> Istorija mechanizmas gali grįžti į ankstesnes eilutes istorijos sąrašą.
Jūs galite tai padaryti alias apibrėžimą.
Aš niekada nemačiau tai padaryti.
Jis turės galimybę pasitraukė anksčiau komandas iš istorijos sąrašo poveikį
kai vykdyti slapyvardį, kuris galėtų būti įvairių komandų
priklausomai nuo to, kada ir kur jį vykdyti.
Suprantama galite ištraukti tokią nuorodą
tik žinoti, ką anksčiau komanda buvo.
Aš niekada matė tai įvyktų.
Aš manau, kad kas nors gali norėti, tačiau tai labai mažai tikėtina.
Yra dar vienas dalykas čia.
Jei jūs naudojate, kad istorija tipo nuorodą,
tada tik argumentai, kurie ten yra toks prašymas yra naudojamas.
Jei turite alias apibrėžimą, kuris nenaudoja istorija tipo nuorodą,
jei jis tiesiog tampa komanda pradžia
ir jūs turite daugiau argumentų, tada kas nors įvesite po to
bus įtraukta į komandą.
Tokiu atveju, pavyzdžiui, aš tiesiog davė ten, mes naudojome apie pirmąjį argumentą;
mes ne naudoti jokių kitų.
Jei kiti argumentai buvo suteikta komandinėje eilutėje, jie negali būti naudojami.
Taigi, jei jūs naudojate istorija nuorodą ne visi, tada jums reikia naudoti jį gauti jokio argumento.
>> Yra dar vienas dalykas, čia aš tik noriu paminėti, iš dalies parenthetically,
būtent, kad ši istorija mechanizmas su šauktuku
grįžta į pradinį C korpuso.
Tcsh pristatė istorijos operacijas
kuris naudoja komandų ir styginiams iš redaktorių rūšių,
arba EmacsName arba vi.
Mano asmeninė nuomonė yra ta EmacsName yra daug lengviau naudoti šiam tikslui
net jei jūs naudojate vi jūsų reguliariai keisti.
Yra įvairių Emacs komandas, kurios dabar pritaikyti istoriją.
Valdymo P gauna ankstesnę eilutę istorijos sąrašą.
Kitas Valdymo P bus jums vieną prieš tai.
Rodyklę aukštyn daro tą patį.
Valdymo N gauna kitą komandą, jei jau išeis atgal keletą būdų.
Rodyklę žemyn ar kad per daug.
Jūs galite judėti į kairę į dešinę su rodyklėmis ir įvairių kitų dalykų.
Tai gali pasinaudoti iš istorijos mechanizmą
daug lengviau nei naudojant Šauktukas sintaksę,
bet jūs ne naudoti, kad Alias ​​apibrėžimą.
Mes eiti per, kad kai kitą kartą.
>> Kintamieji.
Jūs žinote, ką kintamieji yra programavimo kalbų.
Lukštai juos taip pat.
C-apvalkalas naudoja komandų rinkinys priskirti kintamuosius,
kad nustato kintamojo a į b vertei -
kaip sakiau, nenaudingas apibrėžimą, o tik kaip tai naudojama iliustraciją.
Rinkinys komanda sukurs kintamąjį, jei ji nėra jau egzistuoja.
Pareiginė parametrai apvalkalo scenarijus gali būti laikomas kintamųjų,
bet jų panaudojimas ir jiems taisyklės šiek tiek skiriasi.
Jūs negalite priskirti reikšmę $ 1 į scenarijų žinoma.
Jums reikės nustatyti naują kintamąjį tuo tikslu, jei kai kurie iš jūsų norėjo.
Įveskite nustatyti be argumentų ir gausite visus šiuo metu apibrėžtų kintamųjų sąrašą.
Ir persikelkime į mano kiti lukštais čia ir pamatyti, ką mes, jei mes padaryti.
Gana ilgas sąrašas yra, tiesa?
Slinkite aukštyn šiek tiek. Pažvelkite į visa tai.
Kai kurie iš šių dalykų yra apibrėžti automatiškai korpuso.
Apvalkalas sukuria kintamąjį ir suteikia jai reikšmę.
Kai kurie iš jų yra apibrėžta lukštais, bet tada iš naujo vartotojas
pagal savo pageidavimus.
Ir kai kurie iš jų yra sukurti vartotojui, priklausomai nuo to, ką jis daro tą dieną.
Tai tiesiog nustatyti be argumentų.
Yra keista savybė čia šio dalyko.
Yra turite būti arba nėra tarp lygių pasirašyti ir kintamojo pavadinimas erdves
ir vertė arba tarpai iš abiejų lygių pusių pasirašyti,
kaip šis.
Tai neveikia, ir tai iš tikrųjų yra galiojantis komanda
tačiau ji negali daryti tai, ką jūs ketinate.
Kad komanda dirbs, nes jei jūs tiesiog pasakyti nustatyti ir kintamojo vardas
su be lygybės ženklo arba nustatyti ir kintamojo vardas su lygių pasirašyti ir jokios vertės,
jis bus nustatyti kintamąjį neapibrėžta reikšmė.
Todėl reikia nustatyti A = yra galiojantis komanda.
Rinkinys komanda gali nustatyti daugiau nei 1 kintamąjį pačioje eilutėje.
Taigi ši komanda čia turi apibrėžti tiek A ir B neapibrėžtų reikšmių poveikį.
Tikriausiai ne tai, ką norite.
Tai vienas čia minėta anksčiau, bus sukelti klaidos
nes = b yra ne galios išraiška.
Kintamojo vardas negali prasidėti su lygybės ženklą.
Ir yra šių papildomų dalykų čia.
Į dvitaškiai buvo naudojamas pasirinkti argumentų iš istorijos linijas,
ir jie gali būti naudojami, - ir aš ne eiti į anksčiau - pakeisti tuos dalykus.
Jie taip pat gali būti naudojamas pakeisti apvalkalo kintamuosius.
Tai vienas čia $, kas turi vertę.
: R kilimo pratęsimo.
Pratęsimas bus kas nors po tašką,
taškas ir nieko po jį prie failo pabaigos
tik sąrašo gale po paskutinio velniop.
Taigi turiu jį čia.
yra tai, kad. Jis išmes. Rs.
Jei nėra pratęsimo, tik po paskutinio velniop pathnames, ji neturės poveikio.
: h, kad kintamasis išraiška, kilimo paskutinį elementą iš katalogų sąrašo
vėl, tik po paskutinio velniop.
Taigi / / B / C tampa / / b,
tačiau tai pasikeitė, nes po sąrašo elementas yra niekinis.
Čia yra kažkas, kuris taip pat noriu pabrėžti.
Šie kvalifikaciniai neieško šių bylų buvimo.
Jie tiesiog atrodo styginiams.
Jie skirti manipuliuoti failų pavadinimus, pathnames,
tačiau jie gali būti naudojami bet kuriame eilutę, net jei tai nėra failo pavadinimas.
Ir jie nežiūri į egzistavimą,
todėl, jei nėra tokio failo, / / ​​B / C, tai vis tiek veiks.
Nesvarbu, ar tai jokios naudos jau kitas klausimas, bet jis vis tiek veiks.
Kintamieji yra skirtingi The Bourne kriauklių. Mes gausite vėliau.
Doleris ženklas gali būti pabėgęs tiesiog kaip šauktukas ir žvaigždute.
Doleris ženklas gali būti pabėgo su kairiniu pasviruoju brūkšniu arba vieno kabučių.
Dvigubose kabutėse turi keistą poveikį visų kriauklių
verčia iš dolerio vertinimą pasirašyti kintamojo išraiška.
Taigi, jei jis yra pabėgęs vieną pusę, dvigubos kabutės gali turėti poveikį
sukelti, kad ji būtų įvertinta vistiek.
Tai šiek tiek klaidina.
Jei yra keli lygiai pabėgti, pavyzdžiui, vieno kabučių viduje kabutes
arba kabutes viduje apostrofais, jūs turėtumėte išbandyti, kad suprastum, kas atsitiks
kintamasis, jei jūs naudojate vieną.
Tos 2 situacijos - dvigubai viduje vieno vienintelio vidų dvigubai -
nebūtinai duoti jums tą patį rezultatą.
Aplinkos kintamieji, surišti C shell kintamieji.
Aplinkos kintamieji taip pat kintamieji C-lukštais,
ir jie taip pat kintamieji kitų kriauklių taip pat.
C-lukštais, jie yra skirtingi komplektai.
Tai, ką aš sakiau anksčiau yra apie korpuso kintamųjų.
Aplinkos kintamieji yra skirtingi kintamųjų rinkinį
su kelių kintamųjų, kuriuos vadiname jungiasi kintamieji, išskyrus
kurios yra labai svarbios, ir mes gauti į tuos vėliau.
Aplinkos kintamieji yra automatiškai perduota
į kriauklių ar komandų, kurioms vadovauja iš savo kiauto.
Kiti dalykai nėra. Shell kintamieji, kad slapyvardžiai nėra. Aplinkos kintamieji yra.
Štai kodėl mes vadiname juos aplinkos kintamieji,
idėja yra ta, kad aplinka nusitęstų tik savo dabartinės apvalkalo.
Jie gali būti naudojami siekiant nustatyti dalykus komandas.
Čia yra pavyzdys. SPAUSDINTUVŲ, LPDEST.
Abu šie kintamieji gali nustatyti spausdintuvą, kad komanda bus naudoti spausdinti dalykus.
Jei turite kelis spausdintuvus aplink, galite įdėti į vieną jums patinka.
Todėl mes turime 2 kintamuosius, kad buvo parašyta skirtingos komandos
naudojant šiuos skirtingus kintamuosius.
Jūs galite suteikti jiems skirtingas reikšmes.
Greičiausiai Jūs duosiu abu tą pačią vertę.
Tie dalykai, dirbti, nes komandos, kurios spausdinimą
buvo užprogramuotas išnagrinėti šių kintamųjų reikšmes.
Jei programa buvo parašyta, kad taip, jei ji buvo parašyta, kad daryti ką nors kita,
kintamasis būtų nereikšmingas.
Taigi operacinė sistema yra ne ieško šių kintamųjų
kaskart kreiptis į spausdintuvą.
Komandą, daro spauda ieško šių kintamųjų, jei jis yra užprogramuotas, kad taip.
Šie kintamieji yra dažnai apibrėžiami savo pirminių failų
bet nebūtinai.
Galite nustatyti juos į komandų eilutę.
Jie gali būti apibrėžti komandą.
Komanda, kad eina kažką gali turėti savo pasirinkimą kintamųjų -
kintamieji, kurie yra unikalus tam tikro programinės įrangos paketą, pvz.
Jie bus apibrėžti paleidus šį paketą.
Kaip šie kintamieji perduodami į sub-apvalkalo?
Kai sub-apvalkalas yra parašyta, tai ne rašyti į šioje srityje.
Iš anksto sub-apvalkalo, kad yra skirta aplinkos kintamieji plotas
nėra parašyta sub-apvalkalo; tai parašyta kopijuojant.
Paleidus paprastą komandą, pavyzdžiui, šios komandos spausdinti ar kas,
jie pradėti nuo sukurdami naują kriauklę.
Apvalkalas sukuria apvalkalo ir tada perrašo jo dalį
su komanda, kad jūs naudojate, kuris yra šiek tiek klaidina,
bet tai, kaip šios komandos gauti aplinkos kintamuosius
kad tada jie susiję su vėliau.
Komanda čia apibrėžti kintamąjį setenv.
Štai kaip jūs ją apibrėžti. Tai 3 elementai: setenv, kintamos, vertė.
Jei jūs tiesiog setenv be argumentų, ką jūs gaunate?
Visų tų kintamųjų sąrašas.
Vėlgi, tai gražus ilgas sąrašas, ir šiuo atveju, kaip ir kitiems,
Šie kintamieji yra apibrėžti iš esmės mano prisijungimo operaciją pati lukštais
, o ne ką aš padariau.
Yra kita komanda čia printenv.
Tai taip pat spausdina aplinką.
Atkreipkite dėmesį, tai paskutinis dalykas čia, redaktorius = Vi.
Tai sako, kad jei aš naudoju kažką, kad skambučiai redaktorius
ir nemanau, nurodyti redaktorius ir tai leidžia man pasirinkti, ji gali duoti man vi.
Ką daryti, jei aš printenv EDITOR? Ji man sako, kas tai yra.
Teisė prieš tai, kad nebuvo kintamasis, mažiau.
Tai yra jūsų numatytosios parinktys, kai aš paleisti mažiau komandą,
kuris rodo failus.
Taigi, jei aš tai padaryti, printenv gali imtis 1 argumentą arba 0 argumentus,
ne daugiau kaip 1.
Yra kitos komandos taip pat, bet mes neketiname patekti į visą tą šiandien.
Įsiminti buvo už korpuso kintamųjų kaip modifikatorius: h
kuris išmes paskutinį elementą iš takus,
arba r, kuris išmes pratęsimo.
Tie, dabar taikomi aplinkos kintamieji taip pat. Jie nebuvo naudojami.
Ji naudojama taip, jie negalėjo būti keičiami. Dabar jie gali būti.
Tai viena iš su per metus kriauklių pažangai.
Sakiau, kad lukštai kaip dalis aplinkoje
ir kriauklių kintamieji C-lukštais yra, su kai kuriomis išimtimis, skirtingų rinkinių.
Galite nustatyti aplinkos kintamąjį ir apvalkalo kintamasis tuo pačiu vardu.
Jie bus skirtingi kintamieji, jie gali turėti skirtingas reikšmes.
Pakeitus vieną reikšmę nebus pakeisti kitais vertę.
Šie kintamieji yra visi įvertinta dolerio ženklas - $, $ nesvarbu.
Taigi ką daryti, jei turite tai? Ar žinote, kuris iš jų jums?
Mano bandymus aš korpuso kintamąjį,
tačiau tai nėra dokumentuota, ir jūs negalite pasikliauti, kad.
Taigi prašau, kuria kevalus bei aplinkos kintamieji
su tais pačiais pavadinimais gera idėja? Ne Gerai.
Kokie tie pagrindiniai išimtys, kurios aplinka ir kriauklių kintamieji
yra susijusios viena su kita?
Yra tai 4.
Didžioji raidė TERM aplinkos kintamąjį,
Mokėti kintamą terminą mažųjų raidžių, tipo terminalo emuliacija.
Aš tik ketina eiti per čia, ir aš ruošiuosi daryti echo, naudingą komandą čia
$ TERM $ terminas. Ir ten.
xterm yra terminalo tipą langų rodomų X Window System.
xterm spalvų yra, kad variacija, kuri leidžia įvairių spalvų.
Kodėl mes apibrėžiame jų? Kas tai yra gerai?
Komandos, pertvarkyti, kaip redaktoriaus ekrano
siųsti konkrečius sekas, vadinamas evakuacijos sekas,
į terminalą ar lango pertvarkyti jį ir pan.
Šios sekos yra skirtingas įvairių tipų gnybtų.
Tai sako, kad kuris iš jų naudoti.
Kartais yra problemų ten.
Galbūt Jūs norite pakeisti.
Jei viskas yra ne darbo, o kartais terminalo tipą yra nustatytas neteisingai,
galite nustatyti jį iš naujo terminą kintamąjį.
Tokiais atvejais, pakeitus vieną kintamąjį, aplinkos kintamąjį arba korpuso kintamąjį,
turėtų pakeisti kitas.
Aš atrado per patirtį, kad keičiasi TERM didžiosiomis raidėmis
ne visada pakeisti apvalkalo kintama sąvoka mažosiomis raidėmis.
Tai klaida.
Aš nežinau, ar tai visada teisinga. Dauguma laiko, tai yra ne tiesa, bet jis gali būti.
Taigi, jei jums padaryti pakeitimą, tiesiog patikrinti, kad iš.
Tai ne dažnai, kad jums reikia keisti šią vertę, bet vieną kartą, o jūs darote.
Aplinkos kintamąjį vartotojui.
Vėlgi, aplinkos kintamąjį didžiosiomis raidėmis, shell kintamąjį mažosiomis raidėmis.
Tai tavo vardas.
Tai tik išimtinėmis aplinkybėmis
kad jūs norėtumėte pakeisti.
Jei jūsų vardas yra kažkas, kad gali mesti visus dalykus rūšių išjungtas.
Pradinis katalogo, vartotojo namų kataloge.
Vėlgi, jūs nenorite pakeisti.
Pranešimas Visais šiais atvejais, ir vienas, kad mes ruošiamės padengti kintamąjį PATH,
Aplinkos kintamasis yra didžiosiomis raidėmis ir jungiasi apvalkalo kintamasis yra mažosiomis raidėmis.
Jei pakeisite vieną, jums reikia pakeisti kitu.
Šis privalomas natūra negali būti nustatyta, kaip jūs galite neįpareigoja 2 kintamuosius,
išskyrus tuos 4, ir šių kintamųjų privalomas negali būti atšauktas,
Jūs negalite atskirti juos.
Taigi šie 4 poros kintamųjų privalomas.
Jie visada bus. Nieko kiti bus.
Be to, būtų galima sukurti kintamieji su tais pačiais pavadinimais
iš priešingų tipų.
Jūs galite padaryti apvalkalo kintama sąvoka mažosiomis raidėmis
arba aplinkos kintamąjį TERM didžiosiomis raidėmis.
Šie kintamieji būtų nepriklausoma nuo šių susietų kintamųjų
ir jie būtų nepriklausomi vienas nuo kito.
Aš negaliu įsivaizduoti, kodėl jūs darytumėte, kad jei norite klaidinti žmonių.
Tai vienas čia PATH kintamasis, tai yra tikrai svarbus.
Kitas dalykas, čia yra tai, kad gali būti atvejų,
kintamųjų, turinčių panašias suporuotas pavadinimų, kurios nėra susaistytos tarpusavyje.
Čia gali būti kintamieji, "Shell" ir apvalkalas, į didžiąsias ir mažąsias raides.
Remiantis tokiu pavadinimu, jūs nežinote, jei tai kintamasis apvalkalo kintamasis
arba aplinkos kintamąjį, ir jie neprivalo tarpusavyje.
Taip, kad susietų pavadinimų natūra nereiškia jungiasi kintamuosius.
PATH kintamasis, kuris man buvo parodyta anksčiau,
yra pathnames sąrašas, kurios apvalkalas ieško komandų.
Persikelkime į šį langą čia ir mes padarysime echo $ PATH, didžiųjų raidžių -
Aplinkos kintamasis - echo $ keliu, mažosios raidės - Mokėti kintamąjį.
Atkreipkite dėmesį, kad katalogų sąrašas yra tas pats. Tai yra privalomas.
Pakeisti vieną, galite pakeisti kitais.
Į aplinkos kintamąjį elementai atskiriami dvitaškius. Atkreipkite dėmesį, kad.
Shell kintamieji yra atskirti tarpais.
Ši aplinka kintamasis yra vienos eilutės.
Apvalkalas kintamasis yra masyvas.
Bourne neturėjo matricas.
Bash daro, bet tai jau fiksuota dalis lukštų.
Tai vienas eilutė, o ne masyvo.
C-apvalkalas visada turėjo masyvų.
Dėl matricos yra daug lengviau dirbti.
Jūs galite kreiptis į jo dalys.
Taigi echo $ path [1] ir man / usr / bin, pirmasis elementas.
Vėlgi, atminkite, dolerio ženklas reiškia pastarąjį elementą istorijos sąraše.
Kas atsitinka, yra? Jis bandė rasti dolerio ženklas kaip kintamojo simboliu.
Aš pabėgti jį. Oi. Tai ne imtis, kad arba.
Kai kurie iš šių dalykų neveikia taip gerai.
Gal mes tiesiog palikti, kad iš.
Žvaigždutė reiškia visa tai, bet tai, ką jūs gaunate, jei jūs neturite nurodyti elementas.
Kitas būdas, kad masyvo kintamieji gali būti manipuliuojama,
skaičius elementų ten, 7 elementai.
Čia mes įdėti svaras ženklas prieš kintamojo vardą.
Štai dar vienas. Įdėti klaustuką ten.
Tai yra loginė reikšmė. Tai rodo, kad kintamasis egzistuoja.
Tai dar vienas darbo su kintamųjų būdas.
Tai, beje, nebūtinai turi būti masyvas kintamasis.
Tai gali būti bet koks kintamasis.
Ir jei aš, nėra tokio kintamojo ir gaunu 0.
Dar mažai ką ten apie kintamųjų įvertinimų.
Atgal į šį vieną čia, jei dėl kažkokių priežasčių jūs norite dirbti su šia
, o ne dirbti su masyvo, karkasas kintamasis,
yra komandų, kurios gali atskirti šiuos dalykus remiantis dvitaškis.
Iš tiesų, jei jūs ketinate daryti tai per bash galbūt
kai scenarijų natūra, tai būtų tikriausiai kaip galėtumėte tai padaryti.
Tačiau C-lukštais tai daug lengviau naudoti masyvą.
Be Bourne lukštais, kintamieji priskiriami vieno žodžio, kaip tai,
patinka, kaip jūs galite priskirti kintamąjį programavimo kalba,
ir čia negali būti jokių tarpų.
Tai būtina, kad tai būtų tik 1 eilutę.
Per Bornas tipo korpusų, visi kintamieji yra shell kintamieji.
Aplinkos kintamieji yra lukštų kintamųjų poaibis.
Jie išsiskiria iš ne aplinkos kintamųjų eksportuoti.
Komanda tai padaryti yra eksportas, kaip ir eksporto spausdintuvą.
Jeigu mes buvo apibrėžti tokį kintamąjį,
jei mes norėjome spausdinimo komandą jį rasti, tai turi būti aplinkos kintamąjį,
ir tai, kaip mes jį vienas.
Čia kažkas rūšies painu.
Ši išraiška, eksportas į aplinką, kilęs iš šio Bourne Shell koncepcija,
ir dar, kad frazė vartojama aprašant C-lukštais,
ten, kur nėra tokios komandos kaip eksportui.
Jei tiesiog pasakyti eksporto pats, jūs gaunate eksportuojami sąrašą -
Taigi, jei aš tiesiog eksportuoti čia nėra tokio dalyko.
Gerai, kad mes einame.
Šie dalykai, beje, taip pat yra apibrėžta korpuso.
Aš ne nustatyti bet kurį iš šių pats.
Apvalkalas visų dalykų rūšių savaime.
Reikia daryti tai, ko automatiškai.
Į Bash arba Korn lukštais, galite paleisti komandą, kaip tai,
kurie abu duos kintamasis reikšmę ir eksportuoti ją į 1 komandą.
Be Bourne lukštais, jie turi būti atskiri komandas kaip eksportas.
Čia yra dar vienas aspektas, kuris klaidina.
Rinkinys komanda C-lukštais apibrėžia kintamuosius
ir be argumentų pasakys ką kintamųjų "reikšmės.
Į bash, rinkinys komandą be argumentų daro tą patį,
bet su argumentais, kad daro kažką labai skiriasi.
Taigi, tai yra įvairūs argumentai čia.
Kai kurie iš šių aplinkos kintamieji, kai kurie iš jų yra shell kintamieji.
Visi jie yra shell kintamieji tikrai. Kai kurie iš jų yra aplinkos kintamieji.
Rinkinys komanda su argumentais galima veikti
dėl pareiginių parametrus į scenarijų,
kuris yra gauti juos visus vienu metu būdas.
Mes tikrai negali eiti į tą šiandien.
Jis taip pat gali būti naudojamas pakeisti apvalkalo elgesį.
Ypač Bash yra kintamieji, kurie bus nustatyti, kaip apvalkalas elgiasi.
Tada taip pat tik šį vieną komandą, kad jūs galite pamatyti, ši komanda.
Tipografijos po kintamųjų ir kintamųjų tipai yra naudojami Korn ir bash kriauklių.
Tai nėra privaloma, tačiau ji gali būti naudojama siekiant apriboti kintamųjų vertes,
kuri gali būti naudinga siekiant išvengti klaidų, ir tai gana dažnas.
Taigi aš tiesiog paminėti, kad tuo atveju, jūs matote jį kažkur.
Kur komanda.
Prisiminti minėjau anksčiau, kai komanda C-lukštais,
kurie gali jums pasakyti, kad komandų takus vietą.
Čia yra komanda pakeitimas.
Turėtumėte rasti savo klaviatūroje kažkur simbolių, kurie atrodo taip.
Ant klaviatūros vietą ketina skirtis.
Mes pavadino jį backquote. Tai apie citata dydžio.
Ji eina nuo viršutinio kairiojo į apatiniame dešiniajame.
Čia mano Mac klaviatūra tai viršutiniame kairiajame kampe.
Tai simbolis gali būti naudojamas vykdyti komandą per komandą.
Jei turite viduje backquotes išraišką,
ši sąvoka yra komanda, tai paleisti.
Tos komandos išėjimas
tada vietoj visos backquote išraiškos
viduje ilgesnį komandą, kuri tada eina su ta produkcija
kaip dalį savo eilutę argumentus ir pan.
Čia yra komanda, kuri naudoja tai.
Leiskite parodyti šią operaciją čia.
Vykime čia, imti backquotes.
Valdymo gauna mane prie linijos su Emacs redagavimo sintaksę pradžioje.
Iki šiol pathnames ką kur daro,
bet kai aš tai padaryti, kaip šis, tai tada kištukai toje pathnames sąrašą
vietoj šio visam backquote saviraiškos ir veikia ls-l ant jų.
Rūšies patogu, ar ne?
Štai vienas tvarkingas dalykas. Štai kaip backquotes dirbti.
Dabar galime eiti šiek tiek toliau.
Tai yra slapyvardžiai. Aš iš tikrųjų naudoti juos.
Bandysiu gauti tai su 1 redagavimo operacijos.
Gerai.
Dabar pažiūrėkime, kaip šios sąvokos išėjo.
alias IPA pasakojo, kaip jis apibrėžtas.
Atkreipkite dėmesį, kad tai tik tai, bet išoriniai citatos buvo išbraukti
ir šauktukas yra nurašomas.
! * Pilnas sąrašas visų argumentų.
Be alias apibrėžimą taikys grįžti ten, kur aš naudoju tai.
IPA ksh bash. Gerai.
Pažiūrėkite, kaip tai veikia? Tai taupo man rašyti.
Pakilkime šiek tiek aukščiau, šiek tiek tik paminėti kažkas čia.
Atkreipkime dėmesį šiuos skirtingus apvalkalus. Aš jau minėjau anksčiau.
Csh yra čia 2 ir todėl nėra / bin / tcsh.
Mes galime nustatyti kitais būdais, kad jie yra iš tikrųjų pats failas.
Prisiminti sakiau jei įvesite sh gausite bash.
Tipo tai ir gausite tai.
Bet tie, kurie nėra susiję. Tie, turi atskirus tie ten.
Ir tai ne iš failo natūra, kuri gali paskambinti kitą.
Taigi tie, kurie atskirose bylose; C-shell jų yra pats failas.
Atgal čia, kitas čia, slapyvardžius,
dėmesį, kad manimi naudojant šią komandą, failą.
Kad alias veikia tai. Failo pasakys failo tipą.
Taigi FWH ksh bash. Gerai.
Štai iš komandų failo produkcija.
Aš nežinau, jei žinote, ką tai reiškia čia
Mach-O Universal Binary su 2 architektūros.
Yra 2 galimi procesorių tipai, Mac,
ir kai kurios programos buvo parašyta, kad būtų galima paleisti su tiek
ir komandų failas gali nustatyti, kad, taip, kad tai, ką tai reiškia.
Abu failai buvo parašyta, kad taip.
Taigi matome, kaip alias veikia, mes matome, kaip backquote veikia,
matome, kaip veikia faktinės bylos ls ar failą.
Tai gali neveikti. Išbandykite "kur, kur" ir "IPA kur". Gerai, pabandykime, kad.
kur kur.
kur apvalkalas built-in.
Prisiminti anksčiau mes parodėme, kad bash neturėjo kur.
Jei rašote, kur į bash, gausite klaidos pranešimą.
Tai tik dalis lukštų o ne atskira komanda.
Kas atsitiks, jei aš tipo IPA ieškote, kur? Žiūrėkite, kas atsitinka ten.
Ran kur kur gavo šią produkciją, ir tada bandė paleisti ls
kaip l apie tai, kur yra apvalkalas built-in.
kur ten, bet kiti jų nėra.
Nė vienas iš jų nėra, iš tikrųjų.
Taigi, kad ne visada veikia, ir ji taip pat parodo, kaip kai kuriuos dalykus
nedaryk visai tai, ką galėjo pagalvoti.
Nusileiskime tiek toliau čia.
Tai čia yra Bash. Tai taip pat yra komanda pakeitimas kaip backquote.
Tačiau, skirtingai nei backquote, ji naudoja šį kintamąjį stilių.
Yra išraiškų, kurios prasideda su dolerio ženklu skaičius,
ir nors tai nėra kintamieji, jie pasiskolino iš dolerio ženklas naudojimą
nurodyti kažkokia išraiška.
Tai gali būti apsuptas skliaustuose arba skliausteliuose arba dvigubus skliaustelius,
kuris turi skirtingą paskirtį.
Vienviečiai skliaustai čia yra komanda pakeitimas kaip ir backquotes.
Dvivietis skliaustelius yra iš tikrųjų aritmetinę operaciją.
Yra ir kitų sintaksių, kiti darbai.
Backquote sintaksė yra prieinama Bash.
Tačiau, tai vienas yra tinkamesnis. Tai daug lengviau skaityti, o tai leidžia lizdus.
Jūs galite turėti viduje $ (komanda) kitą komandą
kažkas panašaus į -
Gaunu sąrašą ten.
Tai pavyktų, jei aš turėjo backquote pat.
Ką daryti, jei aš noriu padaryti kažką panašaus -
Jūs tikriausiai ne iš tikrųjų naudoti šią komandą,
bet tai vidinė komanda pakeitimas atkartoja visus failus pradedant pavadinimus,
tai vienas eina ls-l su šiais failais,
ir tai tik vienas atkartoja rezultatus.
Jūs tikriausiai ne tai, jums reikia tiesiog padaryti echo ar ls,
bet tai parodo, kaip veikia komandų lizdus.
Taigi tik viena funkcija čia.
Minėjau tai anksčiau, kad jei turite kur C-lukštais,
įveskite kūrinių Bornas tipo korpusų ieškant komandas.
Built-in komandas, ką sakiau ten.
Komandos yra dalis korpuso, kaip kur.
Kai apvalkalas vykdo komandą kaip ls, jis suranda ją per kelią,
mano, jog tam tikru kataloge kažkur,
skaito, kad į atmintį, sukuria naują apvalkalą,
skaito komandą ls ar ką į lukštais
kur aplinkos kintamieji jau yra,
ir tada ji pervedimus į jį.
Built-in komanda, už tą komandą kodas yra korpuso viduje,
taip lukštais tiesiog pradeda vykdyti dalį savo kodą.
kur yra tokia komanda. Jis faktiškai gauna greičiau.
Ji nebūtinai turi skaityti nieko atminties, tai jau atmintyje.
Built-in komandas visada viršesnės komandų su tuo pačiu pavadinimu.
Komandos, kurie yra katalogų kelias gali turėti tą patį pavadinimą,
komandos, įvairių katalogų, failai įvairiuose kataloguose.
Vienas, kad įvyksta anksčiau, kelias yra vienas gausite.
Jei yra built-in komanda, visada jį gauti.
Nėra taip suteikti jai mažesnį pirmenybė nei komandą kelyje.
Jei nori, kad kelias komandą, galite įvesti visą takus.
Jei ten buvo komanda, kur kelias kažkur,
galite įvesti / bin / kur ir norite jį gauti.
Jei nenorite įvesti visą takus, galite nustatyti slapyvardį.
Iš tiesų, jei jums davė slapyvardį tą patį pavadinimą, kaip ir built-in komanda, jis galėtų dirbti
nes alias apibrėžimas yra vertinamas
prieš apvalkalo nustato, kad tai built-in komanda, kuri turėtų būti vykdomas.
Tada tai tampa šiek tiek sudėtingiau su kai kuriais komandos čia.
Kai kurių komandų byla yra iš tikrųjų built-in komandų ir į kelią.
Vienas iš jų yra aidas, komanda aš tik naudojamas truputį atgal į šių pavyzdžių.
ECHO komandą keliu ir tai kiekvieną korpuso.
Jie nebūtinai visi elgiasi vienodai.
Iš pradžių buvo komanda tik keliu.
Jis buvo pastatytas kiaukutų vėliau.
Kadangi yra variantų, kurie priklauso nuo aplinkos
ir komandinės eilutės parinktis, built-in komandas
buvo parašyta, kad veikia tas pats kaip komanda, kuri jau kelias,
tai vargu ar jie būtų buvę parašyta, kad taip
jei komanda dar nebuvo parašyta, kad keliu.
Taigi tai turi šalutinį poveikį. Jo istorija turi poveikį čia.
Yra galimybių ten.
Taip pat galimybė iš kintamojo apibrėžta tcsh vadinamas echo_style.
Štai vienas iš šių kintamųjų, kurie gali pakeisti taip, kad echo darbus.
Yra ir kitų atvejų, kai galite priskirti kintamąjį
kad keičiasi taip, kad kiautas operacija, įskaitant įmontuotą komandą, veikia.
Tai neturi įtakos nieko kito
nes kitos komandos neturi prieigos prie korpuso kintamųjų,
tik aplinkos kintamieji.
Bet kriauklių operacijos gali skaityti kevalus kintamuosius.
Tai neveiks csh. Tai tik tcsh. Tai vienas iš patobulinimų.
Analizuojant turi sekas, kai ji vertina metasimbolių,
kai vertina kintamuosius, slapyvardžius, istorija nuorodas.
Yra ypač seka šiuos dalykus.
Jei jis ką nors daro tam tikroje sekoje
ir gauna kažką, kad iš rūšiuoti išraiška
kuris jau buvo įvertinta, ji nebus įvertinti iš naujo.
Jeigu ji pasireiškia, tada jis bus tiesiog perduoti simbolių.
Taigi, jei, įvertinus kai, pavyzdžiui, komandų keitimą išraiškos
ar kintamoji, ar kokia sukelia išraiškos
kurį norėtų būti vertinamas,
kad dirbs tik tada, jei įvertinimas įvyksta vėliau seka.
Tikiuosi, kad aš vis aišku ten.
Kad analizuojant seka, C-lukštais operacija,
nėra už built-in komandų pati, nes ji yra ne built-in komandas.
Aš nesu įsitikinęs, apie Bash ten.
Pavyzdžiui, jei apvalkalas kintamasis parengė istorija nuorodą,
tai tikriausiai ne eiti atgal į istoriją.
Būtų tiesiog gauti šauktuką.
Iš tiesų, mes galime tik bandyti, kad iš dabar.
nustatyti A = ir mes turime įdėti šią nuorodą į ten.
Oi, palauk. Atsiprašau. Aš tai į Bash. Norėjau tai padaryti čia.
Žiūrėti, todėl neįvertino, kad istorija nuorodą
nes ji jau buvo praeityje istorijos išraiškos įvertinti taško
kai įvertinti kintamąjį.
Štai 1 poveikis apdorojant.
Ir vėl, built-in komandų nėra atliekama vienodai.
Gerai. Vykime į kitą čia.
Taip siekiama, kad būtų 1 linijos, bet tai, kad būtų lengviau skaityti.
Ką tai padaryti?
Jūs galite prisiminti, kad mes galime įvertinti žvaigždutes kaip filename ženklais,
Yra ir kitų filename pakaitos kaip klaustuko ir laikiklis posakių.
Kad vertinimo būdas yra vadinamas globbing.
nustatyti noglob šio komandą pradžioje sako nedaryk to.
Nenustačius noglob sako grįžti į tai, kad.
Atkreipkite dėmesį, kad rinkinys Glob neturės tokio poveikio.
Įprasta kalba, nustatyti Glob arba išjungimo noglob atrodytų lygiaverčiais,
bet čia tai ne. Tai išjungimo noglob.
Dabar TSET. tset stovėjo terminalo rinkinys.
Tai nėra naudojama dažnai, kad dabar, tačiau prieš tapo prieinama okienkowe sistemos
ir jums teko vieną terminalą, jums gali tekti nustatyti tipą.
Ir jei kažkas ateina Ethernet arba iš tinklo,
galite pasakyti, kad tai VT100.
VT100 yra natūra į terminalo verslo standartas. Jis kilęs iš DEC terminalą.
Jei jūs tiesiog padaryti dialup - pastebėjote, kad? Šis nueina šiek būdų, ar ne?
Taigi, jei mes tiesiog TSET čia,
jei aš tiesiog padaryti TSET, tai naujo savo terminalą, tačiau nieko nematė.
Tai tikrai ne ką nors keisti.
-Ai
Gerai.
setenv TERM xterm spalvų.
Mes jau žinome, kad terminas buvo nustatytas tokiu būdu, kad nepasikeitė.
Štai kaip mes norėtumėte tai padaryti.
Tačiau pastebime, kad ši komanda, tset-ai, tiesiog išvesties šias komandas. Jis nebuvo paleisti juos.
Jis nebėgo šias komandas, tai išėjimas jiems.
Taigi, šis yra skirtas gaminti komandas, kurios vėliau bus paleisti.
Jūs prisimenate, kad toje bylos komandą aš tiesiog parodė jums buvo į jį Q.
Taigi galime daryti.
Klausimas slopina kažkokią išvestį, tačiau tai nesvarbu čia, kaip matote.
Aš tiesiog darau, kad parodyti jums, kad tai nėra svarbu.
Tai backquote sintaksė.
Pastaba backquote čia backquote čia.
Aš pašalinant šiuos dalykus čia.
Tai atvejai, kai sakau tai, ką daryti,
į konkrečių tipų terminalų atveju -
Ethernet tinklas, telefoninio ryšio, ką jūs.
Nesvarbu, nes čia mes ne iš tikrųjų daro bet kurį iš šių dalykų.
Aš tiesiog iliustruojantis komandą.
Jei galiu tai padaryti su backquote, ką aš ketina gauti?
Taip pat pastebėsite, kad čia tai įtraukti nustatytą noglob ir išjungimo noglob,
Taigi tie, kurie dabar nereikalinga apibrėžimą.
Tai buvo ne visada tiesa, bet dabar jie įtraukti į šią komandą.
Bet pažiūrėkime, kas atsitiks, jei aš galiu tai padaryti
ir eiti į liniją su valdymo pradžia ir aš tai padaryti.
Gerai, nustatyti: Command not found. Tai tipo keista, ar ne?
rinkinys yra gerai žinoma komanda. Tai dalis lukštų.
nustatyti: Komandų nerastas? Kodėl taip yra?
Hmm. Na, pagalvokime apie tai.
Jis veikia backquote komandą pakeisti,
ir kad įvyksta tam tikrą dalį nuo sintaksės komandą seka.
rinkinys yra built-in komanda.
Taigi tuo metu, kai ji daro, kurie komandą pakeisti,
tai jau įsigijo praeityje nustatyti built-in komandas tašką.
Taigi ji elgiasi nustatyti, kaip jei ji buvo komanda kelio.
Nereikia nė sakyti, jis neranda jį ir gausite klaidą.
Na. Yra ir apdorojant sekos pavyzdys.
Ir ką mes galime padaryti apie tai?
Atkreipkite dėmesį, tai labai įdomi komanda čia ver.
Įdomu, kas tai daro.
Jei pažvelgti į vadovą - ir tegul tiesiog padaryti, kad
parodyti, kaip painu, šie vadovai yra -
vyras tcsh, supainioti vadovas, rasti dalykų čia nėra lengva arba.
Here we go, eval arg, todėl gali turėti 1 arba daugiau argumentų
ir ten yra sąrašas dalykų ten.
Traktuoja kaip žaliavos argumentus lukštais
ir vykdo su tuo susijusios komandas dabartinės lukštais kontekste.
Tai paprastai naudojama vykdyti komandas, kaip vadovavimo rezultatas
arba kintamųjų pakeitimas, nes analizuojant įvyksta iki šių pakeitimų.
Labai gerai.
Ir čia jie net kreiptis į TSET komandą už imties dalies panaudojimo
pavyzdžiui, vienas aš tiesiog jums parodė.
Dabar aš turiu gauti langą atgal į naudingą vietą.
Persikelkime čia ir matysime, kad eval naudojama tik prieš tai.
Taigi pažiūrėkime, kas atsitiks, jei mes įdėti - čia mes einame su į tą komandą rodyklėmis
ir kontrolės į pradžią, ver.
Gerai, kad ji veikia.
Kai jūs eval, ji užima, kas ateina po jo ir todėl komandą.
Tai leidžia iš esmės išanalizuoti jį du kartus.
Skyrius čia veikia šią komandą viduje backquotes,
gauna produkciją.
Produkcija turėtų būti paleisti kaip tų komandų čia kaip šie
šiuo vienu ir šį vieną.
Taigi šios komandos yra dabar čia tokia seka,
bet tai yra built-in komandų ir jis negali gauti juos iš karto.
Taigi mes einame į eval, eval susitvarko, kad iki pradeda visa tai vėl iš naujo, ir ji veikia.
Pavyzdys tiek backquoting, eval, apdorojant, pasekmes apdorojant,
ir komanda, kuri yra tikriausiai labai mažai naudoti jums šiandien.
Gerai. Viskas gerai, umask.
Pažvelkime į šią komandą čia Kaukė 022. Įdomu, kas tai daro.
Leiskite tiesiog įveskite umask nieko po juo. 22. Gerai.
022 ir padaryti jį dar kartą.
Kaip jūs galėjote atspėti, umask be argumentų pasakys esamą kaukę;
Kaukė su argumentais todėl, kad, bet tai buvo vienas aš jau turėjau.
Ką reiškia 022?
Tai čia už failo apsaugos.
Jie nustato, kas yra leidžiama skaityti, rašyti arba vykdyti failą.
Apsaugos, taip pat vadinamas teises.
R reiškia skaityti, dėl rašyti w,
ir x, kuris nedalyvauja ten, reiškia vykdyti.
Yra 3 kategorijos ten.
Pastaruosius 3 elementai iš kategorijos vartotojų. Tie, taikomos man, vartotojui.
Tai 3 čia taikoma grupės.
Failas priklauso 1 grupei, vartotojas gali priklausyti kelioms grupėms,
bet jei vartotojas yra grupės, kuriai šis failas priklauso,
tada šie apsaugos bus taikomi jam, jei jis nėra vartotojas.
Ir tai vienas ir visi kiti.
Šios kategorijos yra tarpusavyje nesuderinami.
Vartotojas protekcijos galioja jo,
grupiniai apsaugos taikomos grupės narių, išskyrus vartotoją,
ir kitos protekcijos galioja tik kitiems nei vartotojo ir grupės narių žmonių.
Jei yra R arba aw arba x, tai reiškia, kad teikiama apsauga.
Jei yra brūkšnelis, tai reiškia, kad taip nėra.
Yra iš tikrųjų yra ir kitų dalykų, kurie gali būti įtraukti į čia be jų,
kurį aš ne gauti į dabar.
Umask apibrėžia failų, kuriuos sukuriate nutylėjimą.
Ir kaip kaukė, iš esmės ji sako bitai, kad jums nereikia nustatyti.
Kaip tai tampa bitai?
Jei manote, kad kiekvienas iš jų, kaip aštuntainį skaičių,
tai 1s tiek, tai yra 2s, tai yra 4s.
Taigi 0 per 7
apibūdinti, kas derinys R ", w-aisiais, ir X, jūs turite šiems 3
ir tada panašus skaičius šių ir tada jie.
Taigi, 022 reiškia 0 Kitų, 2, frakcijos nuomone, 2 naudotojui.
Bet tai kaukė. Kaukė, ką jūs neturite.
Aš atsiprašau. Aš tiesiog davė jums dalykų, neteisinga tvarka.
Tai pirmas 3. Tai 3 yra vartotojas, tai 3 yra grupė, tai 3 yra kita.
Atsiprašome aš jums davė tai neteisinga tvarka.
0, kuris yra pirmas iš tų, nerodo vertę,
bet jei skaičius yra ne ten, tai 0.
Tai reiškia, kad būtų leista visas šias 3.
Atkreipkite dėmesį, kad šiuo konkrečiu vienu x neleidžiama.
Taip yra todėl, kad apvalkalas yra pajėgi nustatyti
ar byla turėtų būti vykdomas, ar ne.
Kadangi tai yra ne vykdomąjį failą, jis nenustatė x.
Į 2 reiškia, kad rašyti leidimą, antrą kategoriją čia,
viduryje vienas yra uždraustas.
Taigi dar kartą, tai yra tai, kad jis neigė.
Na, x yra leidžiama, bet tai ne čia, nes tai ne vykdomąjį
ir panašiai kitų.
Štai dažnas umask.
Kitas paplitęs yra 700 - suteikti sau viską, ir niekas kitas nieko.
Yra ir kitų galimybių.
Aš eisiu atgal, kad. Naudojant istoriją galiu ieškoti atgal, kad IPA ten.
Gerai. Taigi čia, tai yra kriauklės.
Bash, savininkas, kuris yra sistemos sąskaita, galite daryti viską.
Grupė ir visi kiti gali padaryti skaityti arba vykdyti bet ne rašyti.
Tai vienas net neleidžia savininkas į jį rašyti.
Jei savininkas norėjo į jį rašyti, sistemos sąskaitą,
jis būtų pirmiausia pakeisti apsaugą.
Bet vėl, umask nustato numatytąjį užgožia jį,
nurodant bitus, kad nebus nustatytas.
Tai paprastai vienoje iš savo pirminių failų, kurie yra. Cshrc C-lukštais
arba. profilis Bourne tipo korpusų.
Tai gali būti ir kitur, taip pat, jei yra kitų pirminių failų sistemos.
Bet kokiu atveju, tai umask.
Yra kažkas natūra keista čia
ir tai, kodėl yra vienos komandos už tai?
Jei aš rašau tai, aš norėčiau, kad ji kintama, umask = kai vertė.
Kodėl yra visa komanda tik šiam tikslui?
Priežastis yra tai tiesiog nueina į Unix kilmės.
Unix buvo tik keletas programavimo projektas Bell Labs "1970 metų pradžioje.
Žmonės tiesiog susirinko programą.
Jie niekada nebuvo skirtas, kad ji taptų visame pasaulyje operacinė sistema.
Skirtingi žmonės rašė skirtingų dalių negalvodami labai
kaip jie bus naudojami, - o paviršutiniškas.
Ir jis atėjo kartu, pavyzdžiui, kad ir ji vis dar patinka, kad kai kuriais atžvilgiais.
Taigi, kad atspindi istoriją, ir vis dar yra šių neatitikimų ir nelyginis elementai juo.
Gerai. Kitas vienas čia.
Kaip rašė anksčiau, C apvalkalas yra tikrai naudojama labai daug programų,
nors ji gali būti.
Ji atlieka lėčiau, vėl kompromisą tarp interaktyviam naudojimui,
kuris turi daugiau perdirbimo dalyvauja ne greitis,
kuri gali padaryti be apdorojimo.
Papildomų funkcijų pridėta į Bourne apvalkalo su Korn ir Bourne-vėl kriauklių
neatrodo, kad lėtai juos žemyn, ir aš nežinau, kodėl taip yra.
Tai gali būti tiesiog geriau programavimas, bet aš negalėjo žinoti.
Speed ​​čia tikrai nėra tokia baisi, nors ji paminėta.
Taip yra todėl, kad apvalkalo skriptų faktiškai gauti gana greitai.
Jei yra komandų, kaip daug į calculational programos
jūs tikriausiai ne padaryti jį į apvalkalo scenarijus.
Operacijos yra gana paprasta ir suprantama.
Tie, kad aš patyręs, kad yra per lėtas
įtraukti pakartotinių prašymų lėtai komandas.
Anksčiau minėjau srautas redaktorius sed. Kad komanda yra lėtas.
Jei atliksite sed daug kartų, jūs gausite lėtai scenarijų, bet tai nėra apvalkalas, kad lėtas.
Veikia jį Bourne lukštais nebus daug greičiau nei paleisti jį į C-lukštais,
nors ten gal keletas privalumų ten.
Papildomos programavimo galimybes, kita vertus,
yra svarbių priežasčių, kodėl jūs naudojate The Bourne tipo kriaukles.
C-apvalkalas turi keistų funkcijų į jį -
Tai, kad jūs nežinote, jei kintamasis yra apvalkalas kintamasis arba aplinkos kintamąjį.
Jis gali būti labai paini.
Tai nėra taip lengva rašyti
tik remiantis savo patirtimi programavimo kitomis kalbomis.
Manau, kad jums gali rasti, kad Bornas tipo kriauklės labiau atitiktų savo patirtimi.
Kai scenarijus, nors gali būti tūkstančiai eilučių ilgio.
Tie, kad aš mačiau, yra naudojamas užtaisymo operacines sistemas.
Tie, gali atlikti labai lėtai, bet jums nereikia paleisti tie labai dažnai.
Tai tik tada, kai jūs darote užtaisymo,
ir tai tik sistema vadybininkas, kuris daro tuos dalykus,
todėl tikrai nėra didelė problema.
Tie, kurie yra šimtus eilučių ilgio faktiškai vykdyti gana greitai.
Kuriuose paminėtas šis čia, kas yra tie patobulinimai?
Aš jau minėjau keletą iš jų - matricos, skaičiavimai,
į $ () išraiška skaičiavimams į bash,
kitos rūšies komandų keitimą.
Yra įvairių rūšių bandymų komandų
, kuriuo galite daryti sąlyginius bandymus ant failo ar kitų dalykų egzistavimą.
Paskutinis čia ši komanda čia.
Ką tai padaryti, ir kodėl gi kas nors jį naudoti?
printenv variablename.
Mes žinome, ką printenv nėra. Ji pasakoja kintamojo reikšmę.
Ir printenv variablename nebus papasakoti labai daug, nes nėra tokio kintamojo.
Tuščias.
Tačiau galime suteikti jai kažką prasmingo.
Kad ten nėra arba. Gerai. Manau, aš niekada Nustatyta, kad.
Tegul tik patikrinti savo aplinką.
Tai dar viena komanda, kuriuo galite patikrinti savo aplinką.
Yra senas geras redaktorius, vienas mes matėme anksčiau.
Ką tai padaryti?
Čia mes turime backquote išraiška.
Atminkite, kad tai C-apvalkalas.
Taigi printenv REDAKTORIUS duos mums naudos iš redaktoriaus. Tai vi.
Ir tada jis bus nustatyti šią vertę į kintamojo a, nustatytą komandą.
Taigi dabar, jei aš echo $ a, man vi.
Tai neatrodo siaubingai naudinga.
Tačiau ji iš tiesų turi tikslą.
Kadangi mes nežinome, ar kintamasis yra apvalkalo kintamasis arba aplinkos kintamąjį
naudojant dolerio ženklas vertinimo sintaksę, mes galime naudoti printenv
įsitikinti, kad tai aplinkos kintamąjį.
Taigi, jei ten buvo shell kintamasis redaktorius, tai nebūtų Dotarłeś.
Tai veikia tik su aplinkos kintamąjį.
Jei ten buvo shell kintamasis, ir aš norėjau jo vertę,
Aš turiu rasti kitu būdu tai padaryti.
Vienas iš būdų tai padaryti būtų atlikdami rinkinį ir vamzdynas.
Tai yra vienas iš metasimbolių, specialiais ženklais.
Jis siunčia rinkinio išėjimo į kažką kita.
Pažiūrėkime, ką mes galime rasti čia.
Nieko. Gerai. Tegul tik pamatyti, kas ten visi kartu.
Tai buvo echo_style, vienas jau minėjau anksčiau. Gerai, galime padaryti, kad.
Prisiminti minėjau anksčiau, echo_style
nustato, kaip aidas komanda veiks.
BSD reiškia Berkeley tipinio platinimo.
Tai Berkeley Unix nuo 1970 m.
Tai vienas iš būdų, kad echo gali paleisti.
Nustatymas echo_style tos vertės TC-lukštais sukels aido elgtis, kad taip.
Todėl reikia nustatyti ar tai, bet nustatyti tik gauna lukštais kintamuosius.
Būtų neranda redaktorius, kuris nėra apvalkalas kintamasis.
Nieko.
Štai vienas būdas atskirti juos.
Tačiau tai, kad jūs turite pereiti per kažkokio keisto komandą, pavyzdžiui, kad
atskirti lukštais kintamųjų ar aplinkos kintamieji
rodo nepraktiška pobūdžio C-apvalkalas tam tikrų tikslų pobūdžio.
Ir dabar, naujausia ir gal jau tai yra vyras puslapiai.
Tie, kas žinote, žmogus yra komanda trumpas vadovas.
Žmogus puslapių kriauklės yra sunku skaityti. Jie labai ilgai.
Jie organizuojami taip, kad gali būti sunku rasti tai, ko jūs ieškote.
Taigi, jei jūs ieškote ko nors, su tikslu
jūs negalite žinoti, jei šis tikslas yra apvalkalas kintamasis ar kažkas,
todėl jūs negalite žinoti, kur ieškoti.
Jūs galite ieškoti įvairių eilučių, bet stygos dažnai kartojamas.
Todėl paprastai sunku skaityti.
Mes tik pažvelgė TC-shell "žinyno puslapyje šiek tiek anksčiau, kad galėtų rasti eval komandą.
Kai viskas vyks greičiau.
Vienas būdas yra ieškoti eilutę.
Galite naudoti gaviklio.
Pranešimų gaviklis turi velniop ieškoti komandos ar eilutę viduje gaviklio veikimo.
Vyras pagal nutylėjimą bus naudojama greitųjų žinučių programą, arba būti daugiau ar mažiau.
Aš nežinau, jei esate susipažinę su, bet tas gali parodyti failus po truputį.
Aš naudoju MAŽIAU rodyti šiuos konkrečius failus čia mes turime.
Jūs galite ieškoti viduje ten.
Galite pabandyti naudoti kitą paieškos stygos.
Taip pat vyras puslapių įvairių operacinių sistemų gali būti ne tas pats.
Jie gali būti atskiri puslapiai csh ir tcsh.
Jie yra ne "Mac", bet jie gali būti, jei jie yra atskiri komandos.
Jei sh tikrai ne skambinti Bash, tikriausiai būtų atskiras žmogus puslapis.
Kai kurios sistemos turi atskirus žmogaus puslapius tik C-shell built-in komandas.
Kartais, jei norite skaityti įmontuotu komandą aprašymas
tai taip pat keliu, kaip aidas, jūs turite perskaityti puslapį man tą komandą echo
siekiant nustatyti, kaip ji dirbs kaip built-in komanda
net jei nesate paskambinus built-in komandą.
Tai operacinės sistemos trūkumas apskritai, ne tik kriauklės,
nors kriauklės ypač vyras puslapiai yra gana ilgas,
iš dalies, nes jie prideda naudingų funkcijų jiems, kuris gali būti teigiamas.
Gerai. Ar yra kokių nors klausimų? Bet temos norite auklėti?
Viskas aktualus?
Na, tai buvo labai malonu bendrauti su jumis visais.
Tikiuosi, kad jūs turite ką nors iš šio seminaro
kad bus naudinga jums savo ateities siekius.
[CS50.TV]