>> [Seminar - Unix operacijskim sustavom, okruženja]
[Douglas Kline - Harvard University]
[To je CS50. - CS50.TV]
>> Današnja tema je Unix shell.
Ja sam Douglas Kline, stručnjak, ili barem razumno nadležno korisnik, ljuske.
Ljuska je sučelje za korisnika operativnog sustava računala.
Naziv je zabludu, kao, za razliku od ljuske za životinje,
što je teško i zaštitna, računalo ljuska omogućuje komunikaciju.
Dakle porozna membrana će vjerojatno biti bolje metafore.
>> Original ljuska za Unix je Bourne shell.
Bourne je pir B-O-U-R-N-E.
Bourne je bio jedan od izvornih autora Unix,
i tako ljuska je dobio ime po njemu.
Ime tog školjku kao naredba je jednostavno sh.
To je naredba možete izvršiti.
Ljuska počinje na prijavu.
Kada se prijavite na računalo, ljuska upravo počinje prikazivati ​​za vas,
i to je ono što se vaše naredbe.
Može početi u drugim vremenima također.
Ako bi se prozor bez ikakvih drugih naznaka, to će početi školjku za vas.
To je kako je to što mogu ići na prozor i početi tipkati naredbe
i tako dalje postoje, iako se niste prijavili na tom prozoru.
Osim toga, ako to učinite daljinska prijava,
onda će početi ljuske na udaljenom računalu.
I to je moguće pokrenuti naredbe bez interaktivnog ljusku.
To može značiti unutar svog trenutnog rada,
i to također može značiti i daljinskog upravljanja.
Ti bi mogao poslati naredbe na drugo računalo,
koji uključuje pokretanje ljuske postoji.
U stvari, to je da su pokretanje ljuske postoji
čak i ako to nije konačni cilj.
Kad se nešto počne ovako, to ne mora nužno započeti novu ljusku.
Ako bi se novi prozor, to je moguće reći da bi se urednik
ili neka druga naredba.
U tom slučaju, urednik će početi od nule.
Kad urednik završava, prozor završava.
To je malo neobično, ali to može biti učinjeno.
U tim slučajevima, to neće biti ljuske.
Dakle, to nije nužno slučaj da prozor ili neki takav program će dovesti do ljuske.
>> Shell analizira naredbe.
Raščlanjivanja znači identificiranja različitih elemenata, te ih klasificira.
Unutar naredbe, potpuni niz koji ste tip,
Tu će biti jedna ili više pojedinačna naredbe koje treba izvršiti.
Ostali elementi mogu biti argumenti.
Tu može biti i posebni znakovi koji utječu na izvršenje naredbe.
Oni mogu slati izlaz negdje drugo osim zaslona
Ako naredba inače bi ga poslati na zaslonu.
To može preusmjeriti ulaz, to može raditi druge stvari također.
Tu su i razne druge simbole, likovi, i tako dalje.
Raščlanjivanja uključuje otkrivanje i tumačenje tih stvari.
>> Sada, ako nema više pitanja, što je vrlo vjerojatno, jer nema više ljudi,
mi ćemo ići na moj sljedeći stranice ovdje.
>> Rekao sam ranije da Bourne shell je početna ljuske.
Tu su i drugi.
Jedan je C-shell. Naredba je CSH.
Naziv C-shell je samo igra riječi.
To ljuska je uvedena s Berkeley Unix u sredinom 1970-ih.
Berkeley Unix je prvobitni događaj u razvoju Unix.
To je ogromna revolucija i uključeni njegovo uvođenje ljuske.
Razlog toj igri riječi, C-shell,
je da je C-shell ima neke osobine u njemu koji nalikuju jezik C,
što Bourne shell nema -
ili ga nisu imali u to vrijeme.
Tu je i TC-ljuske.
To je nadskup C-ljuske.
Ona ima dodatne mogućnosti, od kojih su mnoge korisne za interaktivnu uporabu,
kao što podsjećajući naredbe u mehanizmu povijesti,
koje ću opisati nešto kasnije -
na jednostavan način, po uzoru urednik.
Također ima vezove koji vam omogućuju da se vežu kratki ključnu string duže naredbe.
Nećemo biti uzimajući u koje danas.
To ima neke značajke koje su korisne za programiranju.
Međutim, C-ljuska nije se često koristi za programiranje ljusci.
Shell programi, ako ne već znate,
su programi koji se sastoje od karakteristika ljuske.
Ti bi mogao pokrenuti ih kao programe.
Pišeš hrpu ljuske naredbi u datoteku i izvršiti datoteku.
Vi ne morate ga sastaviti. To je interpretativni jezik.
Izraz C-shell sada je dvosmislen, jer bi to moglo odnositi samo na izvorni C-shell, csh,
ili za sve C-školjke, uključujući tcsh. To je pomalo nedorečena.
>> Kasnije granata je Korn shell, ksh, nazvana po programer, Korn.
To ljuska pokušao ugraditi u 1. ljusci
prednosti C-shell za interaktivnu uporabu
i Bourne shell za programiranju.
To je bio korišten kao interaktivni ljuske od strane nekih ljudi - manjina.
Kasnije ipak, postoji još jedan uvod, bash ljuska, BASH,
ponovno igra riječima, Bourne-shell opet.
To je nastavak Bourne ljuske. Korn ljuska je također. Obojica su.
Ona ima iste ciljeve Korn ljusku sjedinila C-shell-a
i Bourne Shell je prednosti u 1 ljuske.
Mnogi od poboljšanja u Korn ljuske su također uključeni u Bash.
Bash, međutim, ima još i stoga je poželjno.
Bourne-shell opet i Korn shell nazivaju Bourne tipa školjke
zato što su The Bourne Shell je karakteristike,
koje su nespojive u nekim aspektima sa C-školjke.
Postoje i druge školjke, osim onih, neki namijenjen za ograničenu uporabu,
možda ograničen na neke naredbe, možda i specijalizirane namjene, često ne koriste.
>> Redu. Sljedeća točka ovdje.
Bash ljuska je postao povezan s različitim oblicima Linux.
Nisam siguran je li to istina za svakog oblika.
Postoje mnogi oblici vani i nisam ih sve koristi,
ali one koje sam koristio je postao povezan s njim.
Dakle, koliko ja znam, ne postoji ništa o Bash
što ga čini više kompatibilan s Linuxom
od bilo koje druge kombinacije školjke i operativni sustav.
Mislim da je to vjerojatno samo odraz sklonosti programera.
To što je postao povezan s Linuxom je još jedan razlog da se vole bash na KSH
jer stvari su vjerojatno da će se u njoj napisano i to je vjerojatno da će širiti.
Ja ću vam dati i druge razloge za to kasnije.
Bourne Shell skripte treba izvoditi pod Korn ljuske ili Bash.
Ako pišete za Bourne ljuske nešto,
vjerojatno možete izvršiti ga pod ksh i bash.
Korn shell skripte će vjerojatno pokrenuti pod Bash, ali ja ne mogu jamčiti da.
Kasnije ovdje, C-shell skripte treba izvoditi pod TC-školjke.
C-shell je zapravo nikada intenzivno koristi za skriptiranje
budući Bourne shell, a kasnije su Bourne tipa granate bile bolje za tu svrhu.
Tako da stvarno nije sve što je važno.
Ima dosta Bourne Shell skripte koje su napisane davno,
prije Korn ljuske ili Bourne-shell ponovno su uvedeni.
Oni koji su još uvijek u upotrebi, dio operativnih sustava,
i tako ćete ih naći ako pogledate u operativni sustav
ili neki stari programski paketi.
>> Bash je u određenoj mjeri postaje svojevrsna lingua franca za operativne sustave.
Već je proširena na Windowsima i na VMS.
VMS, u slučaju da ne znate, je vlasnički operativni sustav
Digital Equipment Corporation, koja je još uvijek u upotrebi, uglavnom iza scene.
A ako će se prikazivati ​​na nekoliko različitih operativnih sustava,
vjerojatno ljudi imaju tendenciju da se pomak za njega.
No, taj razvoj je relativno nedavno.
To je samo početak, pa ne mogu predvidjeti, ako će to ispasti da je stvarno moguće da vrsta lingua franca.
Također, budući datoteka pathnames i knjižnice razlikuju
između tih različitih operativnih sustava,
možda neće biti u stanju napisati Bash skripte na jednom operativnom sustavu
, a zatim ga pokrenuti na još jedan.
Trebali biste biti u mogućnosti da ga se kretati između različitih Unix, Linux
Mac OS operativnog sustava, ali ne nužno i za Windows ili VMS.
Možda ćete morati promijeniti opise datoteka ime putanje,
i neke knjižnice mogu biti različiti,
koji mogu utjecati na način na koji neke naredbe raditi
ili kako ih obraditi argumente i slično.
Osim toga, još jedan oprez ovdje je da ne postoji jamstvo
da su svi različiti školjke sam spomenuti - Bourne shell, C-shell,
TC-shell, Korn shell, Bourne-shell opet - biti će dostupan i bilo Unix
ili Linux ili Mac OS računala.
Oni jednostavno ne može biti tamo.
To je jedan od upozorava ovdje.
To je nesretni ograničenje ovdje jer želite stvari raditi posvuda,
ali na žalost, ne možete se osloniti na to.
>> Redu. Sljedeća ovdje.
Recimo da želite napisati skriptu,
Program se sastoji od ljuske naredbi.
Vi napišite svoje naredbe, stavite ih u datoteku, i izvršiti datoteku.
Što ako se želite uključiti argumente?
U slučaju ljuske operacija, argumenti su pozvani parametara ili pozicijski parametri
i oni će se zvati po znak dolara i brojka, $ 1, 2 $.
Dakle, ako Skripta ima ovo ime, moj prvi argument može biti argument 1
i moj drugi može biti argument 2,
i unutar mog pisma, ako želim da se odnosi na te stvari -
neka se izbriše to jer nisam stvarno ide to raditi -
u mom scenariju sam mogla imati $ 1 do odnose na arg1,
$ 2, koji će izaći na taj način, ARG2.
Dakle, ti simboli su dostupni da se odnosi na argumente,
i one vrijede za sve školjke.
Osim toga, tu su i ostali likovi.
$ * Odnosi se na cijelom popisu argumenata, sve njih.
$ # Odnosi se na broj argumente.
Opet, to se odnosi na sve školjke.
Ti simboli, * i #, može se koristiti s tim značenjem u drugim mjestima također.
Nećemo biti uzimajući u to.
>> Shell specifikator linija. Što je to?
Recimo da sam napisao scenarij, a to je za određeni školjke i želite ga pokrenuti.
Kako ćete znati što shell vaš operativni sustav će se koristiti za pokretanje svoje skripte?
U jednom trenutku ste mogli pretpostaviti da će ga pokrenuti u Bourne ljuske
ako ne kažu drugačije,
ali ljudi nisu pisanje skripti u Bourne Shell da je mnogo više
a ne mogu ni osloniti na to više.
Dakle, ovdje imamo ljuske specifikator liniju ovdje.
To određuje Bash.
Imajte na umu da se to navodi u ime putanje, / bin / bash.
Ako računalo ima bash ljuska, ali ne u bin / bin, to neće raditi.
To je još jedna kvalifikacijska, još jedan oprez ovdje.
Funta je znak komentar line character.
To se odnosi na sve školjke.
Posebno ovdje slučaj, #! na početku pisma, poseban je slučaj.
To određuje školjke u kojoj pokrenuti skriptu.
Kao što sam rekao, to ne bi mogli biti isto mjesto / bin.
Osim toga, tu je još jedna stvar ovdje.
Ako ste samo koristiti funta znak bez uskličnika i ime putanje,
koja bi trebala ukazivati ​​na C-školjku.
Međutim, ja ne preporučujem da radi, jer ja nisam u mogućnosti jamčiti
da da će uvijek raditi.
Ako želite C-shell, bilo bi bolje da se tako reći.
Zatim tu je nešto vrlo zbunjujuće ovdje.
Ako koristite ljusku specifikator linije, kao što su / bin / bash
i da ljuska nije dostupan tamo,
ne postoji takva stvar kao što je / bin / bash na tom računalu,
zato jer nema Bash ili zato što je u drugom položaju,
ćete dobiti greška vam govore da je skripta koju je vodio ne postoji.
I naravno vaša skripta postoji, tako da se poruka o pogrešci je zbunjujuće.
Razlog da se operativni sustav daje vam tu pogrešku
ili, točnije, da je vaš interaktivni ljuska u kojoj radite to daje tu pogrešku,
da izvješća naredbu koju ste koristili, što je naziv pisma.
To naredba učinkovito zove ljuske po imenu skripte.
To je mjesto gdje možete dobiti tu zbunjujuću poruku o pogrešci.
Još jedan način da se poziv skriptu
je određivanjem ljuske na naredbenog retka, kao i ovdje.
To je naredba. Ovaj kaže da trčanje Bash a zatim pokrenuti svoju skriptu u Bash.
To će imati prednost u odnosu na specifikator linije,
a to je značajka omogućuje vam da osigurati različite pathnames.
Ako ste samo dati naredbu, operativni sustav će se tražiti da se naredba
na raznim mjestima.
Ako je dostupna, treba ga naći.
Računalo će se naći Bash bez obzira gdje je smješten i pokrenuti ga,
, tako da ne morate onda biti zabrinuti gdje ga nađe.
Postoje potencijalno druga pitanja ovdje,
Kao da postoji više od 1 verzija Bash, što je moguće, iako je malo vjerojatno.
Dakle, to je još jedan način da se bave tim stvarima.
Specifikator linije mogu nazvati bilo školjku.
Oni također mogu nazvati osim školjke stvari.
Primjeri mi imamo ovdje su sed, što je potok urednik;
awk, što je jezik za obradbu obrazac;
i Perl, vrlo visoko razvijena skriptnog jezika.
Ako stavite specifikator koji ukazuje da je jedan od tih programa na početku,
to će ići izravno u tom programu, a ne pokretanje ljuske.
Ti programi imaju granice svojih sposobnosti.
Perl je vrlo sposoban. SED je urednik. To možete učiniti stvari izvan jednostavno uređivanje.
No, to može biti teško programirati da.
Osim toga, prolazi argumente i stvari za skriptu je bilo nemoguće ili zbunjujuće.
Dakle, u tim slučajevima, s awk ili sed, to je, barem u mom iskustvu,
poželjno napisati skriptu i poziva Awk ili dodijeljene iz skripte
umjesto pozivanja Awk ili sed kao original specifikator linije.
Perl je vrlo raznolika jezik, kao što sam rekao.
Vi ne možete izvoditi interaktivne naredbe u Perl,
što znači da se ne može testirati dijelove pisma koje ste u razvoju
tako da ih izvodi interaktivno.
Međutim, to je iznimno sposoban jezik
i razvio se u vrlo široko koristi alat.
To je samo malo usputna opaska o specifikator linije.
>> U sve ili većinu oblika Linux - opet, ne mogu biti sigurni da je sve -
i Mac OS, ako upišete CSH dobivate tcsh,
a ako se upiše SH ste dobili tekmu.
Pokušavali su tu da vam dati više napredne verzije tih školjaka,
ali to može biti zbunjujuće.
Ako ste napisati scenarij pomoću tcsh ili Bash ima dok zovete csh ili sh
a zatim pokušati da ga pokrenuti na računalu koje nema tcsh ili Bash,
možda ćete dobiti neke pogreške, ako postoje naredbe unutra
koji su ti školjke ne prepoznaju.
Osim toga, možda su pozvani svoj oklop na vašem lokalnom računalu
nazivajući ga kao sh ili csh, a zatim uzimajući više naprednih školjke.
Vi svibanj čak i ne misliti na činjenicu da ste korištenjem naprednije školjku.
Dakle, to je potencijalna zamka.
Kako je utvrđeno da ako se upiše SH dobivate Bash,
ako upišete CSH dobivate tsch?
Postoje stvari u tim računalima nazivaju linkovi
što se može povezati u datoteku imena koje se odnose na istu stvar.
To mogu biti bilo dva imena za istu datoteku ili datoteku čija je svrha da se odnosi na drugu datoteku.
Zovu se tvrdi i simboličke veze. Nećemo se ide u Danas više toga nema.
Postoji svibanj također biti odvojene slike - 1 file SH, 1 datoteka Bash -
ali obojica pokrenuti Bash.
Zatim, tu je još jedna kvalifikacijska ovdje.
Ako zovete jedan od tih granata po jedno ime,
možda mislite da bih dobiti istu funkcionalnost kao nazvavši ga drugim imenom.
Pa, to zapravo nije nužno istina.
Te naredbe može ispitati ime kojim su se zvali
i oni mogu, na temelju tog imena, ponašaju se drugačije.
Tu može biti pitanja pokušavajući u skladu s normom.
Neki od vas svibanj su čuli za POSIX standarda ili neki drugi,
možda druge značajke.
To može biti izabran ponekad argumente naredbenog retka
ili postavljanjem shell varijabli.
, Nazivajući ga sh ili bash zapravo može dovesti do različitog izvršenje
čak i ako je isti file koji ste izvršenja.
Još jedna stvar koju treba uzeti u obzir je da, čak i ako je drugo računalo ima tcsh ili Bash,
ako nisu povezani, kao da su na lokalnom računalu
ako imate Linux i Mac OS lokalno računalo,
onda opet ćete dobiti oklop koji vas nazvati sh ili csh, a ne onaj koji bi radije.
Trenutna Bourne shell ima poboljšanja manje od onih u Bash
ali pored one u izvornom Bourne ljuske.
Kao rezultat toga, čak i struja Bourne Shell, SH
čak i kad to nije bash, podsjeća C jezik više od C-shell radi.
To nije bilo točno kada C-shell je prvi put stvorio, ali je razvila taj način.
Možda ćete primijetiti da su sva ta imena ljuska osim Bourne ljuske
imati nešto za upozorenja koja ljuske su - CSH, bash -
ali Bourne shell je samo sh.
Zašto? To je bio izvorni ljuske.
To je ljuska tada, ne ljuska,
i budući da je ljuska, nije bilo razloga da ga razlikuje od druge ljuske.
Dakle, to je razlog zašto je to ime i još uvijek radi.
>> Ovaj vrhunski ovdje je linija iz lozinke baze podataka za račun imam tamo
na drugom računalu.
Ja ću pokušati dobiti taj naziv, tako da možete vidjeti da je dio na kraju, ljuske.
Baze podataka lozinkom drži karakteristike prijavu za sve korisnike.
Na početku se korisničkim imenom, koje možete vidjeti u zadnje 2 slova moje sada.
Polja ovdje su odvojeni kolona.
Zadnje polje, kao što možete vidjeti, je bin / tcsh, ljuske.
To je ljuska specifikator.
Ima nešto zanimljivo.
Kad Unix je prvi razvio, bilo je samo 1 granata,
pa nije bilo izbora postoji.
Pa zašto oni dopuštaju polje u lozinke baze podataka da odredite školjku?
Ne znam, ali to je sreća da su to učinili.
To je prilično teško napraviti promjene u formatu lozinku baze podataka
jer mnogi programi odnose se na svom formatu
i da će morati biti revidirana.
To je zgodan ili slučajno razvoj koji su uključene to polje.
Takva lozinku retku datoteke se koriste na svim Unix i Linux računala tako koliko ja znam.
Mac ima svoj vlastiti sustav.
To zapravo ima datoteku lozinke s linije u tom formatu,
, ali to nije u kojima su definirane značajke korisnika.
Još jedna usputna opaska postoji.
>> Ako pozivom na školjku, možete ga nazvati kao pod-ljuske od postojećih školjke.
Dakle, ako idem ovdje, idemo dobiti osloboditi od tih stvari.
Ovdje sam u C-školjke.
To varijabilni, koji točno identificira svoju školjku,
zapravo nije uvijek pouzdan način određivanja što shell radite,
no u tom slučaju to je.
Što ako sam samo tip -
Sada sam u Bash.
Neke stvari će biti isti. Jel mi govori moje zapovijedi.
Ako mi ne obustavi natrag u moj C-shell, LS-a, isto. Zar ne?
FG, u prvom planu, natrag u moje Bash ljuska.
zap, aktivni imenik, natrag u C-školjke.
zap, drugačije imenik - zapravo se ne razlikuju imenik u ovom slučaju.
To je isto imenik.
Recimo da želim pozvati naredbu ovdje: gdje li.
Što da radim?
To mi govori gdje ls naredbu,
onaj koji mi daje imeniku, nalazi se u LS.
Vratimo se bash ljuska. Pokušajmo istu stvar.
Hmm, zanimljivo tamo, gdje je: Naredba nije pronađena.
Zašto je to tako?
Gdje naredba je sagrađena na C-školjke.
To nije naredba koja se mora čitati u pamćenju od negdje drugdje i pogubljen.
C-shell ga pokreće prebacivanjem izvršenje se dio vlastitog koda
i to ne u Bash ljuska.
Dakle Bash, nemaju takav ugrađeni u naredbu, traži se, ne ga pronaći,
a mi smo dobili na pogrešku.
Dakle, tu imamo bash ljuska izvodi pod C-shell, i to zovemo sub-shell.
I samo u slučaju da ste znatiželjni, bash ljuska ima svoj način lociranja naredbe.
raspršenom odnosi se na činjenicu da se može izvršiti brže,
Pronalazi se brže.
To je jedno od poboljšanja ugrađena u neki od tih granata.
>> Bourne-tipa školjke su prednost za programiranju.
Imaju kontrolne strukture poput petlje, uvjetne naredbe,
vrsta naredbe koje možete koristiti u programskim jezicima kao što su C
ili što god jezik. Možda ste u programiranje u Javi ili bilo što.
Školjke su one previše.
The Bourne tipa školjke, osobito Bash, imaju više
i oni su dizajnirani veću fleksibilnost.
Bash ljuska ima polja. Izvorna Bourne shell ne.
Tako da se može značajno povoljno za programiranje.
C-shell zapravo imaju polja, ali nema puno tih drugih značajki.
The Bourne tipa školjke će izvršiti brže
ako oni nemaju mogućnosti namijenjene za interaktivnu uporabu.
Možete učitati stvari dolje za jednu svrhu, a to ih učitava niz za drugu svrhu.
Tu je da je trade-off postoji.
Te značajke koje su namijenjene za interaktivnu uporabu
Stvarno su od male ili nikakve koristi za skriptiranje.
To je moguće koristiti interaktivni pod-školjku baš kao onaj počela sam tu
testirati naredbi koje namjeravaju koristiti u pismu.
To je ono što se ne može učiniti s Perl. Možete to učiniti sa školjkama.
Čak su i strukture kao i za petlje i slično mogu se izvoditi interaktivno.
Oni su povremeno koristi za pokretanje interaktivno,
, ali je vjerojatnije da ste ih koristite razviti scenarij.
>> Aliasi.
To će biti o C-shell.
Povijest mehanizam gdje ćete dobiti sve do ranijih naredbi
ili njihovi dijelovi koji ste već pokrenuti.
Opet, o C-shell, Bourne ljuske i Korn shell imati te stvari,
ali ja ne idem ući u njih.
Dakle, evo nekoliko korisnih nadimci koje imam.
Umjesto tipkanja ls - to je uobičajena naredba -
samo upišite l i uštedjeti 1 znak.
Je li s različitim opcijama, svi oni rade.
Imajte na umu da su ti pojmovi imaju citati oko njih.
U tim slučajevima, citati nisu potrebni.
Ako možete definirati one pseudonime bez navodnika, on će i dalje raditi.
Oni preporučuju.
Postoje situacije u kojima ne možete koristiti citat
zato što želim da se nešto dogodi što bi spriječilo citat.
Ponekad možete citirati dio definicije, ali ne sve.
To je također uglavnom preporuča se koristiti jednostruke navodnike umjesto dvostrukih navodnika.
Navodnicima imati učinke na promjenjive definicije,
Posebno nanoseći im da se ocjenjuju nego ga zaustaviti.
Zašto bi htjeli zaustaviti ocjenu?
I drago mi je citati to učiniti za nas?
>> Ovdje je naredba koja vam mogla biti zanimljiva.
'Je li g *'
g *, kao što vjerojatno znate, je zamjenski izraz
za sve imena datoteka s početka g.
Ako sam samo napisati u naredbe ls g *, ja ću dobiti popis svih tih imena u mojoj trenutnoj imenik.
Ako sam definirati taj nadimak jer je ovdje s navodnicima,
to će pokrenuti taj naredbu u trenutnoj imenik gdje ste ga izvodi.
Ali, ako naiđete na definiciju alias bez navodnika,
to će procijeniti zamjenski g * kada se radi ovaj definiranje naredbu.
Dakle definicija pseudonimom će ls slijedi popis datoteka u imeniku
u kojoj alias naredba se izvršava,
bez obzira na to gdje se zapravo namjeravaju pokrenuti naredbu.
To nije od velike koristi, i jednostruke navodnike spriječiti ocjenu zvjezdicom.
Tako da samo dobiti razlučivosti biće ls g *.
Onda kada pokrenete pseudonim, LGS, to onda stavlja to.
Sada ne postoje citati, a to će procijeniti zvjezdicu kada pokrenete alias naredbe.
Dakle, to je jedna stvar.
Navodnicima bi taj isti efekt,
ali postoje i drugi slučajevi u kojima dvostruke navodnike neće raditi tako dobro.
>> Ovdje je još jedan.
Možda ćete znati grep naredbu.
Grep naredba se može koristiti za skeniranje datoteka za linije koje imaju određene konce.
Dakle, idemo ovamo i ja ću izlaz iz mog Bourne ljuske.
Ok. Evo sliku.
Recimo da je grep ABC žice. Tamo je.
Ako mi je činiti grep zddd, ja dobiti ništa. Ok.
Tako da pronađe niz, to izvješća, ako ne pronađe, to ne prijavljuju.
Ona izlazi bilo koju liniju koja ima taj niz na njega.
Tu su sve vrste opcija ovdje koje možete pronaći u dokumentaciji.
Evo jedan od načina kako to učiniti.
Što je s tom jednom, alias grabc 'grep abc'?
To će uključivati ​​jedan argument kada se definira alias.
Dakle, ako sam to ovdje, sada, ako mi je činiti grabc,
Sada alias uključuje više od jednostavnog naredbe. Ona također ima argument.
Do sada se to radi.
Imam još jednu naredbu ovdje, ovaj jedan, tako da oni koji su različiti nizovi tamo
i pokazati da se to ne nalazi ništa tamo jer to ne odgovara.
>> Što ako želim uključiti u definiciju alias datoteku da ću tražiti
i ja želim dati kao argument pseudonimom gudački da tražim?
Možda želite reći abc kao argument za moje alias,
ali alias već određuje datoteku.
A to je gdje ovaj izraz dolazi u.
Obavijest ovdje imamo grep baš kao i prije.
Imamo sliku ovdje, konce.
\! ^, Nekako čudno izraz, pretpostavljam, ako niste vidjeli ovo prije.
Uskličnik je dio povijesti mehanizma C-shell.
To može sjetiti ranije naredbe, to može podsjetiti na one argumente naredbi i tako dalje.
Mehanizam povijest se koristi kao dio prekrivanje.
Ako ste odredili liniju nakon uskličnika, to će se odnositi na toj liniji na popisu povijesti,
koje mi neće biti uzimajući u sada, budući da je cijeli drugi topic.
Moguće je odrediti dio linije.
Dakle! 03:02 će biti drugi argument zapovjedne broj 3.
Znak za umetanje ovdje u ovom izrazu stoji prvi argument.
Ako ne daju naznaku kojih zapovijedati govoriš,
to se odnosi na neposredno prethodni zapovjedništvom,
i znak za umetanje je simbol za prvi argument.
Zato jer je to znak za umetanje, a ne broj, ne trebate koristiti debelo crijevo,
tako! ^ znači prvi argument na prethodnu naredbu.
Malo mješoviti ovdje.
U ovom slučaju, kada se to koristiti kao definiciji alias,
Referentna povijest upućuje na zapovijedi u kojima se koristi pseudonim.
Tako to ide natrag 1 naredbu kao rad povijesti,
ali kao pseudonim rada to se odnosi na naredbu u kojoj bi upisali,
kažu, grstrings_file.
Imamo citati ovdje u njemu. Što je za backslash?
U ovom slučaju, kao i drugdje, ne želimo da se izvrši mehanizam povijesti
pri definiranju pseudonim.
Da nismo imali tu kosu crtu, ljuska će se povući u prvom argumentu
naredbe pravo prije nego što ga je vodio ovu alias naredbe, što ne želimo.
Želimo to će biti izgrađen u do alias naredbe za poziv u argumentu kasnije.
Pojedinačni citati ne pobjegne uskličnik, pozivanje povijest.
Možda znate izraz bijeg znači promijeniti značenje nečega.
U ovom slučaju, to znači da se zaustavi nešto od toga da ima posebno značenje.
Uskličnik je posebno značenje je povijest.
Escape i to nema taj značaj.
Izreke to ne rade, backslash radi.
Tako smo zapravo koriste dvije razine bijega ovdje.
Ja ću preseliti ovu naredbu u drugom prozoru, bez tipkanja
pomoću ove editirati, koji vam svibanj pronaći korisne.
Nešto drugo ovdje ću vam pokazati.
Ako ste samo upišite pseudonim bez argumenata, to vam govori sve svoje argumente.
To je hrpa lažnih imena već sam ovdje
osim onih koje sam bio koristeći danas ovdje.
Ali ako sam samo tip s imenom pseudonimom, to mi govori što to znači.
Uočite da su citati otišli i kosih crta je nestala.
Ovaj niz ovdje je rezultat toj definiciji alias,
i sada je samo! ^ u njoj.
To će izgledati u žice datoteka za bilo što.
Dakle, ako mi je činiti grstrings_file konce, nisam mu dati ništa tražiti tamo,
, ali to je izgleda u nizovima.
To nije našao Riječ konce u žice datoteka, ali to ne pronađete abc.
I to ne da se.
Dakle ovdje dajemo argument da udari u definiciju pseudonimom,
koji je umetnut u nju.
To je mjesto gdje se ovaj izraz dolazi.
Možete koristiti više od 1.
Znak za umetanje je simbol za prvi argument.
Ako ste htjeli koristiti drugi argument, što bi onda rekli: 2.
Nema poseban simbol za drugi argument.
I zato što ste koristeći brojčane oznake, te će morati koristiti debelo crijevo.
Postoji, međutim, još jedan izbor ovdje.
Dolar znak stoji za posljednji argument.
I zato što je to simbol, možete izostaviti debelo crijevo.
Tako da će to biti posljednji argument u popisu.
A tu je i da je jedan.
Zvjezdica znači sve, tako da je ovo potpuni popis argumenata,
i opet, možete izostaviti debelo crijevo, jer to nije cifra.
Nadam se da ste svi promatraju sve ovo.
>> Mehanizam povijesti može vratiti na ranije linije u popisu povijesti.
Možete to učiniti u definiciji alias.
Nikada nisam vidio to učinio.
To će za posljedicu imati čupanje ranije naredbe s popisa povijesti
kada izvršiti alias, što bi moglo biti različitih naredbi
ovisno o tome kada i gdje ćete ga izvršiti.
Ubjedljivo možda želite izvući takvu referencu
samo da znate što ranije zapovijed bila.
Nikad nisam vidio ovo dogoditi.
Pretpostavljam da je netko možda želite, ali to je vrlo malo vjerojatno.
Postoji još jedna stvar ovdje.
Ako koristite tu povijest tipa referencu,
onda se koriste samo argumenti na koje postoji takva referenca.
Ako imate definiciju pseudonim koji ne upotrebljava povijest tipa referencu,
ako je to samo postaje početak zapovjedništvom
a vi imate dodatnih argumenata, onda sve što tipkate nakon toga
će biti dodana na naredbu.
U ovom slučaju, samo sam dao primjer postoji, koristili smo prvi argument;
nismo koristiti bilo koji drugi.
Ako drugi argumenti su dati na naredbenog retka, ne bi se koristiti.
Dakle, ako koristite referencu povijesti uopće, onda morate ga koristiti da biste dobili bilo koji argument.
>> Tu je još jedna stvar ovdje samo želim napomenuti, djelomično tek usput,
a to je da ta povijest mehanizam s uskličnikom
seže u izvornom C-školjke.
Tcsh predstavio povijest operacije
koji koriste vrste naredbi i gudače iz redakcije,
bilo Emacs ili vi.
Moje osobno mišljenje je Emacs je puno lakše koristiti za tu namjenu
čak i ako ste VI koristiti za redovite uređivanje.
Postoje razne Emacs naredbe koje su sada prilagođene za povijest.
Kontrola P dobiva prethodni redak u popisu povijesti.
Još jedna kontrola P će dobiti onaj prije toga.
Strelica prema gore radi istu stvar.
Kontrola N dobiva sljedeću naredbu ako ste već pomicana vratiti neke načine.
Strelica čini da je previše.
Možete premjestiti s lijeva na desno sa strelicama i razne druge stvari.
To se može koristiti od mehanizma povijesti
puno lakše nego koristeći točku sintakse uzvika,
ali vi ne bi koristili da u definiciji alias.
Mi ćemo ići preko toga neki drugi put.
>> Varijable.
Znate li što su varijable u programskim jezicima.
Školjke su ih također.
C-shell koristi naredbu set dodijeliti varijabli,
tako da se postavlja varijablu a na vrijednost b -
kao što sam rekao, beskorisnu definiciju, ali ilustraciju kako se to koristi.
Skup naredba će stvoriti varijablu, ako već ne postoji.
Položajnu parametri za shell skripti može se smatrati varijabli,
ali upotreba njih i pravila za njih su nešto drugačiji.
Vi ne možete dodijeliti vrijednosti do $ 1 u tijeku skripte.
Ti bi trebala definirati novu varijablu za tu svrhu, ako neki od vas htjeli.
Upišite set bez argumenata, a vi dobiti popis svih trenutno definiranih varijabli na.
I neka je doći do moje druge ljuske ovdje i vidjeti što smo dobili ako to učinimo.
Vrlo dug popis postoji, zar ne?
Pomaknite se malo. Pogledajte sve to.
Neke od tih stvari su automatski definiran ljuske.
Ljuska stvara varijablu i daje mu vrijednost.
Neki od njih su definirani od strane ljuske, ali onda redefiniran od strane korisnika
prema njegovim željama.
A neki od njih su stvorene od strane korisnika, ovisno o tome što on radi taj dan.
To je samo set bez argumenata.
Tu je čudno obilježje ovdje ovu stvar.
Tu moraju biti ili bez razmaka između znaka jednakosti i ime varijable
a vrijednost ili mjesta s obje strane znaka jednakosti,
kao u ovoj.
To neće raditi, a to je zapravo vrijedi naredba
, ali to ne može učiniti ono što namjeravate.
To naredba će raditi, jer ako ste samo reći postaviti i imena varijabli
s nema znaka jednakosti ili postaviti i ime varijable sa znakom jednakosti i bez vrijednosti,
to će postaviti varijablu na null vrijednost.
Dakle postaviti A = je važeća naredba.
Skup naredba može definirati više od jednog varijablu na istoj liniji.
Dakle, ova naredba ovdje ima učinak definiranja A i B na nulu vrijednosti.
Vjerojatno nije ono što želite.
Ova ovdje, što je ranije spomenuto, će dovesti do pogreške
zato = b nije valjana izraza.
Ime varijable ne može početi s znaka jednakosti.
A tu su i ovi dalje stvari ovdje.
Koloni su korišteni za odabir argumente iz povijesti linije,
i oni se mogu koristiti - i nisam išla u prije - to mijenjati one stvari.
Oni se također mogu koristiti za modificiranje ljuske varijabli.
Ova ovdje, $, ima vrijednost.
: R će poletjeti proširenje.
Će proširenje biti ništa nakon točke,
točku i ništa ga slijedi na kraju datoteke,
samo na kraju liste nakon posljednjeg udarac.
Tako sam ga ovdje.
je to. To će pasti. O.
Ako nema proširenja, samo pathnames nakon posljednjeg crtom, to neće imati nikakvog učinka.
: h, da varijabla izraz, će poletjeti posljednji element popisu directory
opet, tek nakon posljednjeg udarac.
Dakle / / b / c postaje / / b,
ali ovaj je promijenjena, jer je element nakon popisa je nula.
Ovdje postoji nešto što također želim naglasiti.
Ove kvalifikacijski ne traži za postojanje tih datoteka.
Oni samo traže žice.
Oni su namijenjeni za manipulaciju imena datoteka, pathnames,
, ali ih se može koristiti na bilo kojem nizu, čak i ako to nije naziv datoteke.
A oni ne traže postojanja,
pa ako ne postoji takva datoteka, / / ​​b / c, to će i dalje raditi.
Bilo je to od ikakve koristi je drugo pitanje, ali to će i dalje raditi.
Varijable su različiti u The Bourne školjke. Mi ćemo govoriti kasnije.
Dolar znak može pobjegao baš kao i uskličnika i zvjezdicu.
Dolar znak može pobjegao s crticom ili jednostrukim navodnicima.
Navodnicima imaju čudan učinak u svim školjkama
prisiljavanja ocjenu dolar potpisati varijablu izraz.
Dakle, ako je se spasio jedan način, a dvostruke navodnike može imati učinak
uzrokuje da se ocjenjuju svejedno.
To je malo zbunjujuće.
Ako postoji više razina bijega, kao što jednostrukim navodnicima unutar dvostrukih navodnika
ili dvostruke navodnike unutar jednog citata, trebali testirati da se vidi što će se dogoditi
varijabli ako koristite jedan.
Ta 2 situacije - dvaput unutar jedinstvenog, jednog unutrašnjost double -
ne mora nužno dati isti rezultat.
Varijable okruženja, dužan C-shell varijabli.
Okoliš varijable su varijable u C-shell,
i oni su također varijabli u drugim školjkama previše.
U C-ljuske, koje su različita načina.
U stvari je to govorim pred oko shell varijabli.
Okoliš varijable su različita skup varijabli
s izuzetkom nekoliko varijabli koje nazivamo vezane varijable,
koji su vrlo važni, a mi ćemo se na one kasnije.
Okoliš varijable automatski se prenose
do školjke ili naredbe koje se pokreću iz ljuske.
Druge stvari nisu. Ljuska varijabli, nadimci nisu. Okoliš varijable.
Zato smo ih nazvati varijable okruženja,
Ideja je da okolina viri samo svoj trenutni ljuske.
Oni se mogu koristiti za definiranje stvari za naredbe.
Evo primjera. PRINTER, LPDEST.
Obje od tih varijabli može definirati pisač koji će naredba koristite za ispis stvari.
Ako imate više pisača okolo, možda želite staviti onaj koji vam se sviđa.
Razlog imamo 2 varijable je da različite skupine naredbi su pisani
Korištenjem tih različitih varijabli.
Možda im dati različite vrijednosti.
Najvjerojatnije ćete im dati i istu vrijednost.
Te stvari rade, jer su naredbe koje ne ispis
su programirani ispitati vrijednosti tih varijabli.
Ako program ne napisani su na taj način, ako su napisani na nešto drugo,
varijabla će biti nevažno.
Dakle, operativni sustav nije u potrazi za tim varijablama
svaki put kada se odnose na pisač.
Naredba da se tisak je u potrazi za tim varijablama, ako je programiran na taj način.
Ove varijable često se definira u svojim inicijalizacije datoteke
ali ne nužno.
Možete ih definirati na naredbenog retka.
Oni mogu biti definirani u naredbi.
Naredba da se radi nešto može imati svoj vlastiti izbor varijabli -
varijabli koje su jedinstvene za određeni programski paket, za primjer.
Oni će se definirati kada pokrenete taj paket.
Kako su ove varijable prošao na podstranici školjke?
Kad sub-ljuska je napisano, to ne piše na tom području.
Područje pod-školjku koja je posvećena varijabli okoline
nije napisao pod-shell, to je napisao kopiranje.
Kada pokrenete običnu naredbu, kao što su ove naredbe za ispis ili što god,
Oni krenuti stvaranjem novog školjku.
Shell stvara ljusku i onda prepisuje dio nje
s naredbom da ste trčanje, što je malo zbunjujuće,
ali to je kako ove naredbe dobiti varijable okruženja
da onda se odnose na kasnije.
Naredba ovdje za definiranje varijable setenv.
To je, kako se to definirati. To je tri elementa: setenv, varijabilni, vrijednost.
Ako ste upravo ne setenv bez argumenata, što ste dobili?
Popis svih tih varijabli.
Opet, to je lijepa duga lista, u ovom slučaju, kao iu ostalima,
ove varijable definirane su u velikoj mjeri od moje operacije prijava od strane same ljuske
a ne bilo što sam učinio.
Tu je još jedna naredba ovdje, printenv.
To je također ispisuje na okoliš.
Obavijest ovu posljednju stvar ovdje, urednik = vi.
To govori da ako koristim nešto što poziva urednik
i ja se ne navodi urednik i to mi omogućuje izbor, možda mi vi.
Što ako mi je činiti printenv urednik? To mi govori što je to.
Neposredno prije, da, bilo je promjenjiva, MANJE.
To su vaši zadane opcije kad sam pokrenuti manje naredbu,
koji prikazuje datoteke.
Dakle, ako sam to učiniti, printenv može uzeti jedan argument ili 0 argumente,
Ne više od 1.
Postoje i druge naredbe također, ali nećemo ulaziti u sve to danas.
Zapamtite da su modifikatori za shell varijable kao što su: h,
koji će pasti zadnji element u ime putanje,
ili: r, koji će pasti proširenje.
Oni sada se primjenjuju na varijable okoliša previše. Oni nisu navikli.
Nekada je to bilo da se ne može mijenjati. Sada oni mogu biti.
To je jedan od napredaka s razvojem školjke tijekom godina.
Ja sam rekao da su granate, kao dio okruženja
i ljuska varijable u C-shell su, uz neke iznimke, različite skupove.
Možete uspostaviti varijablu okruženja i varijablu ljuske s istim imenom.
Oni će biti različitih varijabli, oni mogu imati različite vrijednosti.
Promjena vrijednost one neće promijeniti vrijednost drugoga.
Te varijable su svi ocijenili s znak za dolar - $, $ god.
Pa što ako su to? Znate li koje ste dobili?
Prilikom testiranja sam dobio varijablu ljuske,
ali to nije dokumentirano i ne možete se osloniti na to.
Pa ja vas pitam, je stvaranje ljuske i varijable okruženja
s istim imenima dobra ideja? No redu.
Ono što su oni glavni iznimke koje varijable okoliša i školjaka
su povezani jedni s drugima?
Postoje oni 4.
Slovo varijabla TERM okoliš,
shell varijablu pojam u malim slovima, tipa emulaciju terminala.
Samo ću ići ovdje, a ja ću učiniti odjek, korisnu naredbu ovdje,
$ $ ROK pojam. I tu.
xterm je tip terminala za Windows prikazuje u X Window System.
xterm-boja je varijacija koja omogućuje da različite boje.
Zašto smo definirali to? Što je to dobro za?
Naredbe da se preuredi se prozor kao urednik
poslati određene sekvence, zove bijeg sekvence,
na terminal ili prozor da ga preurediti i tako dalje.
Ti nizovi su različiti za različite vrste terminala.
To je one koji koriste govori.
Ponekad postoje problemi tamo.
Možda želite da se to promijeni.
Ako se stvari ne rade, ponekad tipa terminala postavljena u krivu,
možda ćete biti u mogućnosti to popraviti redefiniranje pojma varijablu.
U tim slučajevima, mijenjanje jedne varijable, varijablu okruženja ili varijablu ljuske,
treba mijenjati onaj drugi.
Otkrio sam kroz iskustvo koje mijenja termin u slovima
ne uvijek promijeniti ljuske varijablu pojam u malim slovima.
To je bug.
Ne znam je li to uvijek istina. Većinu vremena to nije istina, ali to može biti.
Dakle, ako ste napraviti promjenu, samo to provjeriti.
Ne događa se često da trebate promijeniti tu vrijednost, ali s vremena na vrijeme što činite.
Okoliš promjenjiva KORISNIKA.
Opet, varijabla okruženja u velikim slovima, shell varijable u malim slovima.
To je vaše korisničko ime.
To je samo pod iznimnim okolnostima
da bi željeli da se to promijeni.
Ako vaše korisničko ime je netko drugi, to može baciti sve i svašta off.
Početna imenik, korisnik home direktorij.
Opet, ne bi htio da se to promijeni.
Obavijest je u svim tim slučajevima i one koji Spremamo se pokriti, varijablu put,
okoliš varijabla je velikim slovima, a vezani ljuska varijabla u malim slovima.
Ako promijenite jedan, što bi trebalo promijeniti druge.
Ovakav vezanje ne može se utvrditi, kao što se ne može vezati dvije varijable,
osim njih 4, i obvezujuće u tim varijablama ne može poništiti,
što ih se ne može odvojiti.
Tako su ti 4 para varijabli su dužni.
Oni će uvijek biti. Nijedan drugi će biti.
Osim toga, to će biti moguće izraditi varijable s istim imenima
od suprotne vrste.
Ti bi mogao napraviti shell varijablu pojam u malim slovima
ili okoliš varijabla TERM velikim slovima.
One varijable će biti neovisan od tih uparenih varijabli
i oni će biti neovisne jedna o drugoj.
Ja ne mogu zamisliti zašto bi to učiniti ako ne želite da se zbuniti ljude.
Ova ovdje, promjenjiva put, to je jako važno.
Druga stvar je da ne može biti slučajeva
varijabli u paru sa sličnim nazivima koji se ne vežu jedni za druge.
Tu može biti varijable, školjke i školjaka, u malih i velikih slova.
Na temelju tog imena, ne znam je li ta varijabla promjenjiva školjka
ili varijabla okruženja, a oni nisu dužni da jedni druge.
Dakle, ta vrsta uparenih imena ne znače vezane varijable.
Varijabla put, koji sam pokazivao prije,
je popis pathnames u kojima ljuska traži naredbi.
Idemo u ovaj prozor ovdje, a mi ćemo učiniti echo $ PATH, slova -
okoliš varijabla - echo $ putu, mala slova - shell varijablu.
Uočite da popis direktorije je ista. To su dužni.
Promijenite jednu, promijenite druge.
U varijablu okruženja elementi su odvojeni dvotočke. Uočite da.
Ljuska varijable su odvojeni razmacima.
Ova varijabla okruženja je jedan niz.
Promjenjiva školjka je niz.
Bourne shell nisu imali polja.
Bash radi, ali to je već fiksni dio ljuske.
To je jedan string, a ne polje.
C-shell uvijek imao polja.
Nizovi su puno lakše raditi.
Možete se odnose na dijelove.
Dakle echo $ put [1] i ja bi / usr / bin, prvi element.
Opet, ne zaboravite dolar znak označava zadnji element na popisu povijesti.
Što se događa tamo? On je pokušao pronaći znak dolara kao varijabilni simbol.
Ja od toga pobjeći. Ups. To ne bi bilo da je.
Neke od tih stvari ne rade tako dobro.
Možda ćemo samo ostaviti da se.
Zvjezdica se odnosi na cijelu stvar, ali to je ono što ste dobili, ako ne odredite element.
Drugi način na koji varijable niz se može manipulirati,
broj elemenata koji postoje, od 7 elemenata.
Ovdje smo stavili funta znak prije imena varijabli.
Evo još jednog. Stavite upitnik postoji.
To je logička vrijednost. To pokazuje da je varijabla postoji.
To je još jedan od načina rada s varijablama.
To je, usput, ne mora biti varijabla.
To bi mogla biti bilo koja varijanta.
A ako mi je činiti, ne postoji takva promjenjiva i ja dobiti 0..
Još jedna mala stvar tamo o promjenjivom ocjenama.
Povratak na ovom jednom ovdje, ako iz nekog razloga želio raditi s ovim
umjesto da rade s nizom, promjenjiva školjka,
postoje naredbe koje možete odvojiti te stvari temelji na debelo crijevo.
U stvari, ako idete da se to u Bash ljuska eventualno,
nekakva pisma, to bi bilo vjerojatno kako će to učiniti.
No, u C-shell to je puno lakše koristiti niz.
U Bourne ljuske, varijable se dodjeljuje od strane jednog izraza kao što je ovaj,
kao i način na koji bi mogli dodijeliti varijablu u programskom jeziku,
i tu ne smije biti mjesta.
To je potrebno da to bude samo jedan niz.
U Bourne tipa školjke, sve varijable su ljuska varijable.
Varijable su podskup ljuske varijabli.
Oni se razlikuju od varijable ne okoliša izvozom.
Naredba za to je izvoz, kao i izvozne pisač.
Ako bismo definirati takvu varijablu,
ako smo htjeli tisak naredbu da ga pronaći, to bi trebala biti varijabla okruženja,
a to je kako smo se jedan napraviti.
Ovdje ima nešto malo zbunjujuće.
Ovaj izraz, izvoz u okoliš, a proizlazi iz ovoga Bourne Shell konceptu,
i još da se izraz koristi u opisu C-ljuske,
gdje ne postoji takva naredba kao izvoz.
Ako ste upravo rekli izvoz po sebi, dobivate popis izvoze -
Dakle, ako sam samo to izvesti ovdje, ne postoji takva stvar.
U redu, tu smo.
Te stvari, usput, također definirani ljuske.
Nisam definirati bilo koji od njih po sebi.
Ljuska radi sve i svašta po sebi.
To bi trebalo napraviti stvari automatski.
U Bash ili Korn ljuske, možete pokrenuti naredbu kao što je ovaj,
koji će i dati varijabla vrijednost i izvoziti ga u 1 zapovjedništvom.
U Bourne ljuske moraju biti odvojene naredbe poput izvoz.
Ovdje je još jedan aspekt koji je zbunjujuće.
Skup naredba u C-shell definira varijable
i bez argumenata govori što vrijednosti varijablama 'su.
Na bash ljuska, set naredba bez argumenata radi istu stvar,
ali s argumentima da radi nešto sasvim drugo.
Dakle, to su razni argumenti ovdje.
Neki od njih su varijable okruženja, neke od njih su ljuska varijable.
Svi oni su ljuska varijable stvarno. Neki od onih koji su varijable okruženja.
Set naredbe s argumentima može se koristiti za rad
na pozicijske parametara za skriptu,
koji je način dobivanja ih sve odjednom.
Mi zapravo ne može ići u tu danas.
Također se može upotrijebiti za promjenu ponašanja ljuske.
Osobito u Bash postoje varijable koje će odrediti koliko je granata ponaša.
Tada je također upravo to jedna naredba da ste mogli vidjeti, ova naredba.
Slovima slijedi varijabli i promjenjive vrste se koriste u Korn i bash školjke.
Nije obavezno, ali se može koristiti za ograničavanje vrijednosti varijabli,
što može biti korisno za sprečavanje pogrešaka, a to je prilično česta.
Dakle, ja sam samo spomenuti da se u slučaju da ga vidim negdje.
U kojoj zapovijed.
Sjećam se da sam spomenuo ranije, gdje naredbu u C-shell,
što vam mogu reći lokaciju zapovjedne ime putanje.
Ovdje je naredba za zamjenu.
Trebali biste pronaći na tipkovnici negdje znakova koji izgleda ovako.
Mjesto na tipkovnici će se mijenjati.
Mi smo ga zvali backquote. Riječ je o veličini citat.
To ide od gornjeg lijevog u donji desni.
Evo na mom Mac tipkovnica je u gornjem lijevom kutu.
Taj lik se može koristiti za izvršavanje naredbe unutar naredbe.
Ako imate izraz unutar backquotes,
taj izraz je naredba, to je trčanje.
Izlaz iz tog naloga
zatim zamijeniti za cijelu backquote izražavanja
unutra duže naredbe koje onda trči s tog izlaza
kao dio svog niz argumenata i tako dalje.
Ovdje je naredba koja koristi to.
Idemo pokazati rad ovdje.
Idemo gore, izvadite backquotes.
Kontrola me dobiva na početku skladu s Emacs uređivanje sintakse.
Do sada pathnames je ono gdje se radi,
ali kad sam to učiniti kao što je ovaj, to onda čepovi na tom popisu pathnames
umjesto cijelog ovog izraza backquote i radi ls-l na njima.
Vrsta zgodan, ha?
Dakle, to je jedan uredan stvar. To je kako backquotes raditi.
Sada idemo dolje malo dalje.
To su nadimci. Ja sam zapravo koristiti.
Ja ću pokušati dobiti ovo u s 1 editiran.
Ok.
Sada ćemo vidjeti kako su ti pojmovi izašao.
Pseudonim LWH mi reći kako se to definira.
Obavijest da je samo to, nego su vanjski citati skinuta
i uskličnik se skida.
! *, Potpun popis svih argumenata.
U definiciji alias će se primjenjivati ​​tamo gdje sam koristiti.
LWH KSH bash. Ok.
Pogledajte kako se to radi? To mi sprema neko tipkanje.
Idemo se malo samo spomenuti nešto drugo ovdje.
Obavijest ovdje tih različitih školjki. Trebao sam to spomenuo prije.
Csh ima dva ovamo i tako se / bin / tcsh.
Mogli bismo uspostaviti i na druge načine da su to zapravo ista datoteka.
Sjetite se to govorim, ako upišete št ste dobili tekmu.
Upišite to i dobijete ovo.
No, one nisu povezane. Oni imaju jednu one tamo.
I to nije vrsta datoteku koja se može nazvati još jedan.
Dakle, one su odvojene datoteke, one C-shell su isti file.
Ovdje natrag dolje, drugi ovdje, to pseudonim
umu da vodi ovu naredbu, datoteku.
To alias radi toga. Podaci govori vrstu datoteke.
Dakle fwh KSH bash. Ok.
To Izlaz naredbe datoteke.
Ja ne znam da li znate što to znači ovdje,
Mach-O univerzalna binarna s 2 arhitekture.
Postoje dva moguća načina procesor na Mac,
i neki programi su pisani da bi mogli izvoditi s obje,
i naredba datoteka može odrediti da, pa to je ono što to znači.
Oba ova datoteka napisani su na taj način.
Tako ćemo vidjeti kako alias radi, vidimo kako backquote radi,
vidimo kako se u tom formatu li ili datoteka radi.
To ne bi mogli raditi. Pokušajte "gdje gdje" i "LWH gdje". Dobro, idemo pokušati.
gdje gdje.
gdje je ljuska ugrađeni.
Sjeti se ranije pokazali smo da bash nisu imali gdje.
Ako ste tip kojem u Bash ljuska, te dobiti poruku o pogrešci.
To je samo dio ljuske umjesto da bude zasebna naredba.
Što će se dogoditi ako sam tip LWH potrazi za gdje? Pogledajte što se događa tamo.
Ran gdje, gdje je dobio ovaj izlaz, a zatim pokušao pobjeći ls
kao l na kojem je ljuska ugrađeni.
gdje je tu, ali one druge ne postoje.
Nitko od njih ne postoji, zapravo.
Tako da ne uvijek rade, a također pokazuje kako neke stvari
ne učiniti baš ono što ste možda mislili.
Idemo dolje malo dalje ovdje.
Ovo ovdje je u Bash. To je i naredba zamjena poput backquote.
No, za razliku od backquote, koristi ovu varijablu stil.
Postoji niz izraza koji počinju s znak za dolar,
i dok to nisu varijable, oni posudili korištenje znak dolara
naznačiti izraz neke vrste.
To može biti okružen zagradama ili dvostrukih zagrada,
koji ima drugu namjenu.
Pojedinačni zagrade ovdje su naredbe zamjena baš kao i backquotes.
Bračni zagrade je zapravo aritmetička operacija.
Postoje i drugi syntaxes, druge operacije.
Backquote sintaksa je dostupan u Bash.
Međutim, ovo je bolje. To je puno lakše za čitanje i omogućuje gnijezde.
Možete imati unutar $ (naredba) još jednu naredbu,
nešto slično -
Ja dobiti popis postoji.
To će raditi, ako sam imao backquote također.
Što ako želim napraviti nešto slično -
Vi vjerojatno ne bi zapravo koristiti ovu naredbu,
ali to interna naredba zamjena odjekuje imena svih datoteka s početka,
onda je ovo jedan radi ls-l o tim dokumentima,
i onda je ovo jedan upravo odjekuje izlaz.
Vi vjerojatno ne bi učinio, što bi samo napraviti odjek ili LS,
ali ovo pokazuje kako gnijezde naredbi radi.
Dakle, samo još jedna značajka ovdje.
Spomenuo sam to i ranije, da kada imate gdje u C-shell,
upisati radove u Bourne-tipa školjke za lociranje naredbe.
Ugrađenih naredbi, upravo ono što sam rekao postoje.
Naredbe su dio ljuske, kao i gdje.
Kad ljuska izvršava naredbe poput ls, što ga smješta kroz stazu,
ga nađe u nekom imeniku negdje,
navodi se da je u memoriji, stvara novu ljusku,
čita naredbe ls ili što god u ljusci
gdje se već nalaze varijable okruženja,
i zatim se prenosi na njega izvršenje.
Ugrađeni zapovjedništvom, kod za tu naredbu je unutar ljuske,
pa ljuska upravo počinje izvršavanju dio vlastitog koda.
gdje je takva naredba. To je zapravo dobiva brže.
To ne mora ništa pročitao u memoriji, to je već u memoriji.
Ugrađene naredbe uvijek imati prednost nad naredbi s istim imenom.
Naredbe koje su u imenicima na putu mogu imati isto ime,
naredbe u različitim direktorijima, datoteke u različitim direktorijima.
Onaj koji se javlja ranije na putu je jedan ćete dobiti.
Ako ima ugrađene naredbe, uvijek ga dobiti.
Nema načina da ga dati manju prednost od naredbe na putu.
Ako želite dobiti tu stazu, možete upisati puni naziv putanje.
Ako su naredbe gdje na putu negdje,
možete upisati / bin / gdje i da ćeš ga dobiti.
Ako ne želite upisati cijelu ime putanje, mogli definirati pseudonim.
U stvari, ako je dao pseudonim isti naziv kao i izgrađen-in naredba, to će raditi
jer definicija alias ocjenjuje
prije ljuske utvrdi da je ugrađena u naredbe koje treba izvršiti.
Onda to dobiva malo složenije s nekim naredbama ovdje.
Slučaj nekih naredbi zapravo su ugrađeni u naredbama i na putu.
Jedan od njih je jeka, naredba sam koristio samo malo prije u tim primjerima.
Echo je naredba na putu i to je u svakom ljuske.
Oni ne moraju nužno svi se ponašaju na isti način.
To je bio izvorno naredbe samo na putu.
Sagrađena je na školjke kasnije.
Budući da postoje mogućnosti koje ovise o okolišu
i opcije naredbenog retka, ugrađena u naredbe
su pisani funkcionirati isto kao naredba koja je bila na putu,
to je malo vjerojatno da bi bila napisana na taj način
Ako naredba već nije napisano za put.
Dakle, ovaj je nuspojave. Njegova povijest ima učinke ovdje.
Postoji opcija postoji.
Tu je i opcija definira varijablu u tcsh zove echo_style.
To je jedna od tih varijabli koje mogu promijeniti način na koji odjekuju djela.
Postoje i drugi slučajevi u kojima možete dodijeliti varijablu
koja mijenja način na koji shell operacije, uključujući i izgrađen-in naredbi, radi.
To neće utjecati na bilo što drugo
od druge naredbe nemaju pristup ljuske varijabli,
samo varijable okruženja.
No, ljuska operacije mogu čitati ljuska varijable.
To neće raditi za csh. To je samo tcsh. To je jedno od poboljšanja.
Raščlanjivanja ima sekvence kad ocjenjuje metacharacters,
kada je ta vrijednost varijable, pseudonime, povijest reference.
Postoji određeni slijed za takve stvari.
Ako se stvari u određenom slijedu
i dobiva se nešto što je izraz svojevrsne
koji je već ocijenjen, neće ga ponovno ocijeniti.
Ako ga dobije, onda će samo proći na likove.
Dakle, ako je procjena nekih izraza poput zapovjedne zamjenu
ili promjenjiva ili što god se rađa izraz
koji bi željeli da se ocjenjuju,
koji će raditi samo ako dođe to ocjenjivanje kasnije u nizu.
Nadam se da sam bio jasan postoji.
Taj slijed raščlanjivanja, operacija u C-shell,
nije isto za ugrađenih naredbi, jer je za one koji nisu ugrađenih naredbi.
Nisam siguran o Bash postoji.
Na primjer, ako je varijabla ljuska proizveli referencu povijesti,
to vjerojatno neće vratiti u povijest.
To bi samo dobiti uskličnik.
U stvari, mi samo možemo pokušati da se upravo sada.
postaviti A = i morat ćemo staviti ovo unutra.
Oh, čekaj. Oprostite. Ja sam to u Bash. Želio sam to učiniti ovdje.
Vidiš, tako da on nije ocjenjuje da je povijest referenca
zato što je već prošlost točke ocjenjivanja povijesti izraze
kada je ocijenjena varijablu.
Dakle, to je jedan učinak parsiranje.
I opet, ugrađene naredbe nisu učinili na isti način.
U redu. Idemo na sljedeću ovdje.
To je trebala biti 1. linija, ali to što ga čini lakšim za čitanje.
Što da radim?
Sjetite se da možemo ocijeniti zvjezdicama na filename zamjenskih znakova,
a tu su i drugi filename zamjenske znakove kao što su upitnik i nosača izraza.
Takva vrednovanja zove globbing.
postavljen noglob na početku ove naredbe, kaže, nemojte to raditi.
vratiti na nul noglob kaže vratiti na taj događaj.
Imajte na umu da je set Glob ne bi imao takav učinak.
U običnim jezikom, postavili Glob ili resetiranje noglob čini da bi bilo jednako,
ali ovdje to nije. To je resetiranje noglob.
Sada tNamjesti. tNamjesti stajao za terminal set.
To nije navikla da često sada, ali prije nego što Windowing sustavima postao dostupan
i vama je jedan terminal, možda ćete morati odrediti vrstu.
A ako nešto dolazi preko Ethernet ili s mreže,
možda želite reći da je VT100.
VT100 je vrsta standarda u poslovanju terminala. Ona dolazi iz prosinca terminala.
Ako ste upravo to Dialup - primijetiti da? To seže načine, ha?
Dakle, ako mi samo ne tNamjesti ovamo,
ako sam samo učiniti tNamjesti, to je moj resetiranja terminal, ali nisu vidjeli ništa.
To stvarno nije ništa promijeniti.
-E
Ok.
setenv ROK xterm-boja.
Već znamo da je termin bio postavljen na taj način, tako da se nije promijenio.
To je način na koji smo željeli da to učinite.
Ali primijetite da je ova naredba, tNamjesti-e, samo izlaz ove naredbe. To im nije u pogonu.
To nije u pogonu ove naredbe, to ih izlaz.
Dakle, ovo je namijenjen za proizvodnju naredbe koje će potom biti pokrenuti.
Sjećaš naredbu u toj datoteci sam samo pokazali ste imali Q u njega.
Tako ćemo učiniti.
Q potiskuje neki izlaz, ali to nije bitno ovdje, kao što možete vidjeti.
Ja samo radim da bi vam pokazati kako to nije bilo važno.
To je u backquote sintaksi.
Uočite backquote ovdje, backquote ovdje.
Ja sam izostavljajući te stvari ovdje.
To su slučajevi to reći što učiniti
u slučaju pojedine vrste terminala -
Ethernet, mreža, dial-up, ono što imate.
Nije bitno ovdje jer nismo zapravo radiš bilo koji od tih stvari.
Ja sam samo ilustrira naredbu.
Ako sam to učiniti s backquote, što ću dobiti?
Također primijetite da se ovdje to je uključena set noglob i UNSET noglob,
pa one sada su suvišne u definiciji.
To nije uvijek istina, ali sada su uključeni u ove naredbe.
No, da vidimo što će se dogoditi ako sam to učiniti
i otići na početak linije uz nadzor i ja učiniti.
Ok, postavili: Naredba nije pronađena. To je vrsta čudno, zar ne?
Skup je poznato naredbe. To je dio ljuske.
set: Command not found? Zašto je to tako?
Hmm. Pa, neka je razmišljati o tome.
To je trčanje backquote naredbu zamjenu,
i to se događa u određenom dijelu slijed raščlanjivanja naredbu.
Skup je izgrađen-in naredba.
Dakle, u vrijeme kada se čini da je zapovjedno zamjenu,
to je već stečen prošlosti točke identifikacije ugrađene naredbe.
Dakle, to tretira postaviti kao da je naredba na putu.
Nepotrebno je reći, to ne ga pronaći i dobijete pogrešku.
Pa. Tu je primjer raščlanjivanjem slijed.
A što ćemo s tim?
Obavijest ovu vrlo zanimljivu naredbu ovdje vrednuje.
Pitam se što da radi.
Ako pogledate u priručniku - i neka je samo to da je
pokazati kako konfuzno ovi priručnici -
Čovjek tcsh, zbunjen upotrebu, pronalaženje stvari ovdje nije lako bilo.
Evo nas, vrednuje ARG, tako da možemo imati jedan ili više argumenata
i tamo je popis stvari koje postoje.
Tretira kao argumente ulaza u ljusku
i izvršava naredbe dobivene u kontekstu sadašnjeg ljuske.
To se obično koristi za izvršavanje naredbi generirane kao rezultat naredbe
ili promjenjiva zamjena jer raščlanjivanja događa pred tim zamjenama.
Vrlo dobro.
I evo ih, čak se odnose na tNamjesti naredbe za korištenje uzorka
poput one sam ti samo pokazao.
Sada moram prozor natrag na korisnom mjestu.
Idemo ovamo, pa ćemo vidjeti da vrednuje se koristiti samo prije toga.
Tako ćemo vidjeti što će se dogoditi ako stavimo - ovdje mi ići ukorak sa strelicama za tu naredbu
i kontrola na početak, vrednuje.
U redu, tako se to radi.
Kada to vrednuje, što je potrebno ono što dolazi nakon njega i čini je naredbu.
To vam omogućuje suštini analizirati ga dva puta.
Poglavlje ovdje radi ove naredbe unutar backquotes,
dobiva izlaz.
Izlaz je trebalo da se izvoditi kao one naredbe ovdje poput ovih
na ovom jednom i ovaj jedan.
Te naredbe tako da se danas u ovoj sekvenci,
ali ovi su ugrađeni u naredbama i to ne mogu ih dobiti odmah.
Dakle, idemo na eval, vrednuje pokupi da se pokrene cijelu stvar sve iznova, i to radi.
Primjer oba backquoting, vrednuje, raščlanjivanja, posljedice parsiranje,
i naredba koja je vjerojatno vrlo malo koristi za vas danas.
Ok. U redu, umask.
Pogledajmo ove naredbe ovdje, umask 022. Pitam se što da radi.
Idemo samo upišite umask ništa nakon toga. 22. Ok.
022 i to učiniti opet.
Kao što ste možda pogađate, umask bez argumenata govori vam trenutni masku;
umask s argumentima čini da, ali to je bio jedan Već sam imao.
Što znači 022?
To su ovdje su zaštita za datoteku.
Oni bi se utvrdilo tko je dopušteno čitati ni pisati ili izvršiti datoteku.
Zaštite se također nazivaju dozvole.
R stoji za čitanje, W za pisanje,
i x, koja nije prisutna tamo, stoji za izvršavanje.
Postoje 3 kategorije tamo.
Posljednje tri elementa su u kategoriji korisnika. Oni vrijede za mene, korisniku.
To 3. ovdje odnosi se na grupu.
Datoteka pripada 1. skupini, korisnik može pripadati različitim skupinama,
ali ako je korisnik u skupini u kojoj ovu sliku pripada,
onda ti zaštite primjenjivat će se na njega ako on nije korisnik.
I ovo je svi drugi.
Ove kategorije se međusobno isključuju.
Korisnik zaštite primjenjuju se na njega,
Grupa zaštite primjenjuju se na članove grupe, osim korisnika,
i ostalim zaštitama odnose se samo na osobe koje nisu korisnika i članova skupine.
Ako postoji r ili aw ili x, što znači da je odobrena zaštita.
Ako postoji crticu, to znači da nije.
Tu zapravo i druge stvari koje se mogu staviti u ovdje, osim ovih,
što neću dobiti u sada.
Umask definira zadani za datoteke koje stvarate.
I kao maska, u osnovi to kaže bitove koji ne postavljaju.
Kako je to postalo bita?
Ako mislite da je svaki od njih kao oktalni broj,
to je malo 1S, to je 2S, to je 4S.
Do 0 do 7
će opisati ono kombinacija r-a, w-a, i x-a imate za te tri
a onda slična broj za njih, a zatim za njih.
Dakle, 022 znači 0 za drugo, dva za grupe, 2 za korisnika.
No, to je maska. Maska je ono što nemate.
Žao mi je. Samo sam ti dao stvari u pogrešnom redoslijedu.
To je prva 3. Ovo su 3 korisnika, njih 3 su skupine, njih 3 su drugi.
Žao nam je dao sam vam to u pogrešnom redoslijedu.
0, što je prvi put od onih, koji ne pokazuju vrijednost,
ali ako se broj ne postoji, to je 0.
To znači da sve 3 od tih će biti dopušteno.
Uočite da se u ovom konkretnom jednom x nije dopušteno.
Razlog je u tome što ljuska je sposoban za utvrđivanje
je li datoteka trebala biti izvršen ili ne.
Budući da to nije izvršna datoteka, to baš nije uspio x..
U 2 znači da pišu dozvolu, druga kategorija ovdje,
jedan u sredini, je odbijen.
Pa opet, to su stvari koje je odbijen.
Pa, x je dopušteno, ali to nije ovdje jer to nije izvršna
ai za ostale.
Dakle, to je uobičajena umask.
Još jedna česta je 700 - dati sebi sve i nitko drugi ništa.
A tu su i druge mogućnosti.
Ja ću se vratiti na to. Pomoću povijesti mogu pretraživati ​​vratiti za to, LWH da postoji.
Ok. Dakle, ovdje, to su školjke.
Bash, vlasnik koji je račun sustav, može učiniti sve.
Grupa i svi drugi mogu napraviti čitati ili ne izvršavaju, ali ne i pisati.
To se ne čak i dopustiti vlasnik pisati na njega.
Ako vlasnik želi pisati na njega, na račun sustava,
on će morati promijeniti zaštitu prvi.
Ali opet, umask postavlja zadani tako da je maskiranje,
naznačujući bitove koji neće biti postavljene.
To je obično u jednoj od svojih inicijalizacije datoteka, što je. Cshrc za C-školjke
ili. profil za Bourne tipa školjke.
To može biti na drugom mjestu i, ako postoje i drugi inicijalizacije datoteke na sustav.
U svakom slučaju, to je umask.
Ima nešto malo čudno ovdje,
a to je, zašto je tu jedna naredba za to?
Kada bih pisao ovo, ja bi to promjenjiva, umask = neke vrijednosti.
Zašto postoji cijela naredba samo za ovu namjenu?
Razlog je to samo seže do početaka Unix.
Unix je samo neki programski projekt u Bell Labs u ranim 1970-ih.
Ljudi jednostavno dobio zajedno s programom.
Oni nikada nije namjeravao da postane svjetski operativni sustav.
Različiti ljudi napisali različite dijelove bez razmišljanja jako puno
o tome kako su bili će se koristiti - a nedorečena.
A kako su zajedno kao da, i to je još uvijek kao da je u nekim aspektima.
Tako da odražava povijest, a tu su još ove nedosljednosti i ak elementi njega.
Ok. Sljedeća ovdje.
Kao što sam napisao ranije, C-shell nije stvarno koristi jako puno za programiranju,
Iako to može biti.
On izvršava sporije, opet kompromis između interaktivnu uporabu,
koja ima više obradu uključeni od brzine,
što može učiniti bez obrade.
Dodatni značajke dodan u Bourne ljuske od Korna i Bourne-opet školjke
ne čini se da ih usporiti, a ja ne znam zašto je to tako.
To samo može biti bolje za programiranje, ali nisam u poziciji da znaju.
Ubrzajte ovdje zapravo nije tako velika stvar, iako se spominje.
Razlog je u tome što shell skripte zapravo dobiti prilično brzo.
Ako postoji mnogo naredbi kao u calculational programa,
vjerojatno ne bih to učiniti u shell skripti.
Operacije su prilično jednostavan i jasan.
One koje sam doživio da su prespore
uključuje ponavljane primjene sporim naredbi.
Ranije sam spomenuo potok editor ovnu. To naredba je spor.
Ako izvodite SED mnogo puta, da ćete dobiti spor skriptu, ali to nije ljuska koja je sporo.
Ga prikazuju u Bourne ljuske neće biti puno brže nego što je trčanje u C-shell,
Iako postoji možda i neke prednosti postoje.
Dodatne mogućnosti programiranja, s druge strane,
značajni razlozi zašto bi koristiti Bourne tipa školjke.
C-shell ima čudne značajke na njega -
Činjenica da ne znam da li je varijabla promjenjiva školjka ili varijabla okruženja.
To može biti vrlo zbunjujuće.
To nije tako lako napisati
samo na temelju svog iskustva programiranja u drugim jezicima.
Mislim da se može naći Bourne tipa školjke konzistentniji sa svojim iskustvom.
Neki skripte, međutim, može biti tisuće linija u duljini.
Oni koje sam vidio se koriste za krpanje operativne sustave.
Oni mogu izvoditi vrlo sporo, ali ne izvoditi one vrlo često.
To je samo kad radite krpanje,
i to je jedini menadžer sustav koji radi one stvari,
tako da to nije stvarno puno problema.
Oni koji su stotine linija duga zapravo izvršavati prilično brzo.
Spominjući ovo ovdje, ono što su oni poboljšanja?
Već sam spomenuo neke od njih - polja, izračuni,
su $ () izraz za izračune u Bash ljuska,
druga vrsta zapovjednoj zamjenu.
Postoje različite vrste testiranja naredbi
kojim možete napraviti uvjetne ispitivanja o postojanju datoteke ili drugim stvarima.
Trajati ovdje, ova naredba ovdje.
Što to učiniti, i zašto bi bilo tko ga koristi?
printenv variablename.
Znamo što printenv radi. To nam govori o vrijednosti varijable.
I printenv variablename nećemo doznati jako puno, jer ne postoji takva varijabla.
Blank.
No, dajmo mu nešto smisleno.
To nije ni tamo. Ok. Mislim da nikada definirano da.
Idemo samo provjeriti svoju okolinu.
Ovo je još jedna naredba kojom možete pregledati svoj okoliš.
Postoji dobra stara UREDNIK, jedan smo vidjeli prije.
Što da radim?
Ovdje imamo backquote izraz.
Zapamtite ovo je C-shell.
Dakle printenv UREDNIK će nam dati vrijednost urednik. To je vi.
I onda će se postaviti tu vrijednost varijabli a, skup naredbi.
Pa sad, ako mi je činiti echo dolara, sam se vi.
To se ne čini strašno korisna.
Međutim, to zapravo imaju svoju svrhu.
Budući da ne znamo je li varijabla je varijabla ljuska ili varijabla okruženja
pomoću znak dolara procjene sintakse, možemo koristiti printenv
kako bi bili sigurni da je varijabla okruženja.
Dakle, ako je bilo ljuska varijabla urednik, to ne bi ga dobio.
To radi samo s promjenjivom okruženju.
Ako je bilo promjenjiva školjka i ja sam htjela svoju vrijednost,
Ja bih se naći neki drugi način da to učinite.
Jedan od načina za to bi se na taj skup i cijevi.
To je jedan od metacharacters, specijalnih znakova.
Ona šalje izlaz skupa na nešto drugo.
Da vidimo što možemo tamo naći.
Ništa. Ok. Ajmo vidjeti što je tamo sve zajedno.
Bilo je echo_style, jedan sam spomenuo prije. Ok, neka je učiniti.
Sjeti se što sam spomenuo prije, echo_style
određuje način na echo naredba će pokrenuti.
BSD zalaže za Berkeley standardne distribucije.
To je Berkeley Unix iz 1970.
To je jedan od načina na koje odjekuju može pokrenuti.
Postavljanje echo_style na tu vrijednost u TC-ljuske će izazvati odjek da se ponaša na taj način.
Dakle, postaviti se da je, ali postavili samo dobiva ljuska varijable.
To ne bi pronašli urednik, koji nije promjenjiva školjka.
Ništa.
Dakle, to je jedan od načina kako ih razlikovati.
No, činjenica da morate proći kroz neke čudne naredbe kao što je to
razlikovati shell varijabli ili varijabli okoline
prikazuje vrstu nepraktičan prirode C-ljuske za neke svrhe.
I sada, posljednji i možda manje važno, ovo je čovjek stranice.
Oni o tome tko što možda znate, čovjek je naredba za kratko priručniku.
Man stranice za školjke su teško pročitati. Oni su jako dugo.
Oni su organizirani na način da može biti teško pronaći ono što tražite.
Dakle, ako ste u potrazi za nešto sa svrhom,
što možda ne znate je li to svrha je promjenjiva školjka ili nešto drugo,
tako da možda ne znate gdje se mogu pogledati za to.
Možete tražiti razne žice, ali žice se često ponavlja.
Dakle, to je općenito teško pročitati.
Mi smo samo gledali na čovjeka stranici TC-školjku malo prije pronaći eval naredbu.
Neke stvari ići brže.
Jedan od pristupa je da se potraga za niz.
Možete koristiti pager.
Pager ima crtu tražiti naredbe ili niza unutar operacije pager.
Čovjek po defaultu će koristiti dojavljivače, bilo bi manje ili više.
Ja ne znam da li ste upoznati s tim, ali oni mogu pokazati datoteke malo po malo.
Ja sam bio koristeći MANJE prikazati te određene datoteke Imamo ovdje.
Možete tražiti unutra.
Možete pokušati koristiti različite nizove pretraživanja.
Također man stranice u različitim operativnim sustavima ne može biti ista.
Oni mogu biti odvojene stranice za csh i tcsh.
Oni nisu na Mac, ali bi mogli biti ako su to odvojene naredbe.
Ako sh zapravo ne zovu Bash, tu će vjerojatno biti zasebna čovjek stranica.
Neki sustavi imaju zasebne man stranice samo za C-shell ugrađenih naredbi.
Ponekad, ako želite pročitati opis ugrađenom zapovjedništvom
to je također na putu, poput jeke, morate pročitati čovjeka stranicu na toj naredbi na odjek
kako bi se utvrdilo kako će raditi kao ugrađeni u zapovjedništvo
čak i ako ne zovete ugrađeni naredbu.
To je nedostatak operacijskog sustava u cjelini, a ne samo za školjke,
Iako za školjke osobito man stranice su prilično dugo,
dijelom zato što su dodali korisne mogućnosti za njih, što može biti pozitivno.
Ok. Ima li pitanja? Bilo teme želite odgajati?
Sve relevantne ovdje?
Pa, to je bilo jako lijepo razgovarati s vama svima.
Nadam se da je dobio nešto iz ovog seminara
koji će biti koristan za vas u svojim budućim nastojanjima.
[CS50.TV]