>> [Szeminárium - Unix Kagyló, környezet]
[Douglas Kline - Harvard University]
[Ez CS50. - CS50.TV]
>> A mai téma a Unix shell.
Én Douglas Kline, szakértő, vagy legalábbis ésszerűen illetékes felhasználó, a héj.
A héj a felület a felhasználó számára, hogy a számítógép operációs rendszerét.
A név félrevezető, mivel, ellentétben egy állat héj,
amely kemény és védő, a számítógép shell lehetővé teszi a kommunikációt.
Tehát porózus membrán valószínűleg jobb metafora.
>> Az eredeti shell Unix a Bourne shell.
Bourne tönkölybúza B-O-U-R-N-E.
Bourne volt az eredeti szerzők Unix,
így a shell róla nevezték el.
A neve, hogy a héj, mint a parancs egyszerűen sh.
Ezt a parancsot végre tud hajtani.
A héj indul bejelentkezéskor.
Ha bejelentkezik a számítógépre, a shell csak elindul az Ön számára,
és ez az, mi történik a parancsokat.
Meg lehet kezdeni máskor is.
Ha feljön egy ablak nincs más jelzés, akkor elindítható egy héj az Ön számára.
Így az, hogy lehet menni az ablakhoz, és kezdje el beírni a parancsokat
és így tovább, még akkor is, ha nem jelentkeztünk be az, hogy az ablakot.
Ezen kívül, ha egy távoli bejelentkezés,
akkor indul a shell a távoli számítógépen.
És lehetséges, hogy a parancsokat nem interaktív shell.
Ez azt is jelentheti, a jelenlegi működés,
és azt is jelenti, a távvezérlés.
Lehet küldeni a parancsot egy másik számítógépre,
amely induló héjat.
Sőt, azt kell tartalmaznia induló héjat
akkor is, ha ez nem a végső cél.
Ha valami elindul, mint ez, nem feltétlenül egy új shell.
Ha feljön egy új ablak, akkor lehet mondani, hogy felnevel egy szerkesztő
vagy más parancsot.
Ebben az esetben, a szerkesztő indul a semmiből.
Amikor a szerkesztő véget ér, az ablak véget ér.
Ez egy kicsit szokatlan, de meg lehet csinálni.
Azokban az esetekben, nem lesz egy héj.
Tehát ez nem feltétlenül igaz, hogy egy ablak, vagy valami hasonló alkalmazás hozza létre a shell.
>> Shell elemzi parancsokat.
Elemzés azt azonosítja a különböző elemek és osztályozza őket.
Belül a parancsot, a teljes szöveg, hogy a beírt,
nem lesz 1 vagy több, egységes parancsok végrehajtását.
Egyéb elemek is lehet érveket.
Ott is különleges karakterek, amelyek hatással vannak az a parancs végrehajtása.
Tudnak küldeni a kimenetet valahol más, mint a képernyő
Ha a parancs általában küldje el a képernyőn.
Meg lehet átirányítani bemenet, akkor mással is.
Vannak egyéb szimbólumok, karakterek, és így tovább.
Elemzés magában észlelése és értelmezése ezeket a dolgokat.
>> Nos, ha nincs több kérdés, ami elég valószínű, mert nincs több ember,
megyünk tovább a következő oldalon itt.
>> Azt mondta korábban, hogy a Bourne shell a kezdeti shell.
Vannak mások.
Az egyik a C-shell. A parancs csh.
A név a C-shell csak egy játék a szavakkal.
Ez a shell került bevezetésre Berkeley Unix, a 1970-es évek.
Berkeley Unix volt hatású esemény a fejlesztés a Unix.
Ez egy hatalmas forradalom és benne a bevezetése ez a héj.
Ennek oka, hogy a játék a szavakkal, a C-shell,
az, hogy a C-shell van néhány jellemzőjét is, amely hasonlít a C nyelv,
amely a Bourne shell nincs -
vagy nem volt abban az időben.
Van még a TC-shell.
Ez felülbírálja a C-shell.
Ez további funkciók, amelyek közül sok a hasznos interaktív használatra,
mint például emlékeztetve parancsok történetében mechanizmus
amely fogom leírni valamivel később -
egy egyszerű módon, mintájára egy szerkesztő.
Azt is kötések, amelyek lehetővé teszik, hogy kötelező a rövid kulcs karakterlánc hosszabb parancsot.
Mi nem fog bekerülni, hogy a mai.
Van néhány szolgáltatás, amely hasznos a programozás.
Azonban a C-shell nem gyakran használják héj programozás.
Shell program, ha nem már tudja,
olyan programok, áll a shell jellemzőit.
Lehet futtatni ezeket a programok.
Írsz egy csomó shell parancsok egy fájlt, és végrehajtja a fájlt.
Nem kell, hogy fordítsuk le. Ez egy értelmező nyelv.
A kifejezés a C-shell most kétséges, mivel ez lehet, hogy csak azokra az eredeti C-shell, csh,
vagy mind a C-kagyló, beleértve a tcsh. Ez egy kicsit félreérthető.
>> Egy későbbi héj a Korn shell, ksh, névadója a programozó, Korn.
Ez a shell megpróbálta beépíteni 1. shell
előnye a C-shell interaktív használata
és a Bourne shell programozás.
Azt használják, mint egy interaktív shell néhány ember - a kisebbség.
Később azonban volt egy másik bevezetése, a Bash shell, bash,
Ismét egy játék a szavakkal, Bourne-again shell.
Ez egy kiterjesztése a Bourne shell. Korn shell is. Mindkettő.
Ugyanaz a célkitűzései Korn héj egyesíti a C-shell
és a Bourne shell előnyeit az 1. shell.
Sok a fejlesztések a Korn shell is szerepel Bash.
Bash, azonban több, és ezért előnyös.
A Bourne-Again Shell és a Korn shell nevezzük Bourne-típusú kagyló
mert ezek között a Bourne shell jellemzői,
amelyek összeegyeztethetetlenek bizonyos tekintetben a C-kagyló.
Vannak más héjak kívül azokat, némi szánt korlátozott felhasználás,
Lehet, hogy csak a néhány parancs, esetleg speciális célú, nem túl gyakran használják.
>> Oké. Következő termék itt.
A Bash shell vált összefüggő különböző formái a Linux.
Nem vagyok benne biztos, hogy ez igaz, minden formában.
Számos formája van odakint, és én nem használtam őket,
de az, hogy én használtam vált társul hozzá.
Amennyire én tudom, nincs semmi a Bash
ami többé kompatibilis a Linux
mint bármely más kombinációja a héj és az operációs rendszert.
Azt hiszem, ez valószínűleg csak tükrözi hajlamait a programozók.
Hogy ez lett jár a Linux a másik oka, hogy inkább Bash KSH
mivel a dolgok valószínűleg írt, és ez valószínű, hogy terjed.
Adok más oka, hogy később.
Bourne shell script kell futtatni a Korn shell vagy.
Ha írsz valamit a Bourne shell,
akkor talán végre alatt ksh vagy bash.
Korn shell scriptek valószínűleg futni a Bash, de nem tudom garantálni, hogy.
Később itt, a C-shell script kell futtatni a TC-shell.
A C-shell valójában soha nem széles körben használt scripting
mivel a Bourne shell, majd a Bourne-féle kagylók voltak jobb erre a célra.
Szóval ez tényleg nem olyan fontos.
Elég sok a Bourne shell szkripteket, amelyek írták régen,
mielőtt a Korn vagy a Bourne-again shell vezettek be.
Ezek mindig használatban van, része az operációs rendszer,
és így megtalálja őket, ha megnézi az operációs rendszer
vagy valami régi programozási csomagokat.
>> Bash bizonyos mértékig válik egyfajta lingua franca az operációs rendszerek.
Ez már kiterjesztették a Windows és a VMS.
VMS, abban az esetben, ha nem tudja, van egy saját operációs rendszer
A Digital Equipment Corporation, amely még mindig használatban van, nagyrészt a színfalak mögött.
És ha ez fog futni több különböző operációs rendszerek,
valószínűleg az emberek hajlamosak váltani rá.
De ez a fejlődés viszonylag új keletű.
Ez csak a kezdet, így nem tudom megjósolni, hogy ez ki fog derülni, hogy valóban ez a fajta lingua franca.
Továbbá, mivel a fájl elérési útvonalat és a könyvtárak különböznek
ezek között a különböző operációs rendszerek,
lehet, hogy nem tud írni a Bash script egy operációs rendszer
majd futtassa azt egy másikra.
Meg kell tudni, hogy mozgassa a különböző Unix, Linux
Mac OS operációs rendszerekkel, de nem feltétlenül a Windows vagy a VMS.
Lehet, hogy meg kell változtatni a fájl elérési leírással,
és egyes könyvtárak eltérő lehet,
amely hatással lehet az is, hogy bizonyos parancsok
vagy hogyan dolgozzák fel érveket és hasonlók.
Ezen felül, a másik az, hogy itt óvatosság nincs garancia
hogy a különböző kagyló már említettem - Bourne shell, C-shell,
TC-shell, Korn shell, Bourne-again shell - elérhető lesz semmilyen Unix
vagy a Linux vagy Mac OS számítógépen.
Egyszerűen nem lesz ott.
Ez az egyik a figyelmeztetések itt.
Ez egy szerencsétlen korlátozás van, mivel szeretne a dolgok dolgozni mindenhol,
de sajnos, akkor nem hivatkozhat e.
>> Oké. Tovább itt senki.
Tegyük fel, hogy szeretne írni egy shell script,
a program, amely a shell parancsokat.
Írsz a parancsokat, tedd a fájlt és végrehajtja a fájlt.
Mi van, ha a felvenni kívánt érvek?
Abban az esetben, héj műveletek érvek nevezzük paraméterek vagy pozicionális paraméterek
és akkor nevezhető egy dollár jel és szám, $ 1, $ 2.
Tehát, ha a script ezt a nevet, az első érv lehet érv 1
és a második lehet érv 2,
és belül a script, ha azt akarom, hogy olvassa el ezeket a dolgokat -
hadd töröljék el ezt, mert én nem igazán fog futtatni -
belül a szkript, amit lehet, hogy 1 $ hivatkozni Arg1,
$ 2, ami ki fog jönni, hogy így, arg2.
Tehát ezek a szimbólumok állnak hivatkozni érveket,
és az vonatkozik minden, a kagyló.
Ezen kívül vannak más karakterek.
$ * Utal az egész érv listáját, mindet.
$ # Utal, hogy az argumentumok számát.
Ismét, ez vonatkozik a kagyló.
Azok a szimbólumok, * és #, lehet használni az említett jelentéssel más helyeken is.
Mi nem kapok bele.
>> Shell specifier sor. Mi az, hogy?
Tegyük fel, hogy már írt egy forgatókönyvet, és ez egy adott shell, és szeretné futtatni.
Honnan tudod, hogy mi shell az operációs rendszert fogja használni, hogy fut a script?
Egy ponton lehetett feltételezni, hogy ez futtassa a Bourne shell
ha nem mást mond,
de az emberek nem írásban szkriptek a Bourne shell, hogy sokkal többet
és akkor nem is támaszkodhat többé.
Tehát itt van egy shell megadó sort itt.
Ez meghatározza Bash.
Ne feledje, hogy meghatározza azt az elérési út, / bin / bash.
Ha egy számítógépen a Bash shell, de nem a bin könyvtárba, / bin, ez nem fog működni.
Ez a másik selejtezőn, egy másik óvatosság itt.
A kettőskereszt a megjegyzés sor karaktert.
Ez az összes kagyló.
A konkrét esetben is, #! elején egy script, egy speciális esete.
Ez határozza meg a shell, ahol futtatni a szkriptet.
Mint mondtam, ez lehet, hogy nem ugyanazon a helyen / bin.
Ezen kívül van még egy dolog van.
Ha csak használja a kettőskereszt nincs felkiáltójel és elérési út,
hogy fel kell tüntetni a C-shell.
Én azonban nem ajánlom csinálja, mert nem vagyok képes garantálni
, hogy mindig működik.
Ha azt szeretné, hogy a C-shell, jobb lenne, hogy ezt mondja.
Aztán ott van valami, elég zavaros itt.
Ha a shell megadó sort, mint a / bin / bash
és hogy a héj nem áll ott,
nincs olyan dolog, mint a / bin / bash az adott számítógépen,
vagy azért, mert nincs Bash, vagy azért, mert ez egy másik helyre,
kapsz egy hiba mondom, hogy a script futott nem létezik.
És persze a forgatókönyv létezik, így a hibaüzenet zavaró.
Ennek az az oka, hogy az operációs rendszer adja, hogy a hiba
vagy, pontosabban, hogy az interaktív shell, ahol fut ez adja ezt a hibát,
az, hogy a jelentések a parancsot használt, amely a nevét a forgatókönyvet.
Ez a parancs hatékonyan hívják a shell a neve a forgatókönyvet.
Ott van az a zavaró hibaüzenetet.
Egy másik módja annak, hogy hívja shell script
az megadásával a shell a parancssorban, mint itt.
Ez a parancs. Ez azt mondja, fuss Bash, majd futtatni a scriptet Bash.
Az elsőbbséget élveznek a megadó sor,
és ez a funkció lehetővé teszi, hogy a különböző elérési útvonalat.
Ha csak ad egy parancsot, az operációs rendszer fog keresni, hogy a parancs
különböző helyeken.
Ha ez rendelkezésre áll, akkor meg kell találni azt.
A számítógép megtalálja Bash, ahol ez található, és fuss ez,
így nem kell majd, hogy aggódik, ha azt állapítja meg.
Vannak esetleg más aggályok itt
mintha van több, mint 1 verzióját Bash, ami azért lehetséges, bár nem valószínű.
Szóval ez egy másik módja annak, hogy kezelni ezeket a dolgokat.
Specifikációkészítő vonalak hívása shell.
Ők is hívják dolgokat más, mint kagyló.
Példák Van itt sed, amely a stream editor;
awk, amely a mintát feldolgozó nyelv;
és a Perl, a nagyon fejlett programozási nyelv.
Ha tesz egy tervező vonal jelzi egyike azoknak a programoknak az elején,
akkor megy egyenesen, hogy a program helyett kezdve a héj.
Azok a programok korlátokat képességeiket.
Perl rendkívül alkalmas. Sed egy szerkesztő. Meg lehet csinálni a dolgokat, túl egyszerű szerkesztés.
De nehéz lehet programozni, hogy az.
Ezen kívül, átadva érveket és a cucc a script vagy lehetetlen, vagy zavaró.
Így ezekben az esetekben, és awk vagy sed, ez, legalábbis az én tapasztalatom szerint,
jobb, hogy írjon egy shell script és hívás awk vagy sed a shell script
inkább, mint amelyben awk vagy sed a script megadó sor.
Perl rendkívül változatos nyelvet, ahogy mondtam.
Nem lehet futtatni az interaktív parancsokat perl,
ami azt jelenti, hogy nem lehet tesztelni részeit scriptek, hogy te fejlődő
futtatásával interaktívan.
Azonban ez egy nagyon alkalmas nyelvet
és kifejlesztett egy nagyon széles körben használt eszköz.
Ez csak egy kicsit egy zárójeles megjegyzést a tervező vonalak.
>> Az összes vagy a legtöbb fajta Linux - megint, nem biztos, hogy ez minden -
és a Mac OS, ha a típus csh kapsz tcsh,
és ha beírja sh kapsz bash.
Megpróbáltak ott, hogy megadja a fejlettebb változatai ezek a kagyló,
de ez zavaró lehet.
Ha írsz egy script segítségével tcsh vagy Bash funkciók hívás közben csh vagy sh
majd próbálja meg futtatni a számítógép, amely nem rendelkezik a tcsh vagy Bash,
lehet, hogy egy kis hiba, ha vannak parancsok vannak
melyek azok a kagylók nem ismeri.
Ezen felül, akkor lehet, hogy hívják fel a shell a helyi számítógépen
amelyben ez az sh vagy a csh, majd egyre fejlettebb kagyló.
Lehet, hogy nem is hiszem, hogy te vagy a fejlettebb shell.
Tehát ez egy lehetséges buktató.
Hogyan állapítható meg, hogy ha beírja sh kapsz Bash,
ha beírja csh kapsz tsch?
Vannak dolgok, ezek a számítógépek úgynevezett linkek
amely képes kapcsolódni fájlneveket olvassa el ugyanezt.
Ez lehet akár 2 nevek ugyanazt a fájlt vagy egy fájl, amelynek célja, hogy nézze meg másik fájlt.
Ők az úgynevezett kemény és szimbolikus linkek. Mi nem megy bele, hogy már ma.
Ott is külön fájlban - 1 file sh, 1 file Bash -
de mindketten futni Bash.
Aztán ott van még egy minősítő itt.
Ha hív egy ilyen kagyló egy nevet,
azt gondolhatja azt, hogy ugyanazt a funkciót, mint hogyha azt egy másik nevet.
Nos, valójában ez nem feltétlenül igaz.
Ezek a parancsok megvizsgálja a név, amellyel ők hívták
és ők is, az alapján, hogy a név, másként viselkednek.
Lehet, hogy kérdéseket próbál megfelelnek a szabványnak.
Néhányan talán hallott a POSIX szabvány vagy más,
Talán más funkciókat.
Ez lehet kiválasztani néha parancssori argumentumok
vagy beállításával shell változókat.
Calling azt sh vagy bash ténylegesen vezet más végrehajtás
akkor is, ha ez ugyanaz a fájl, amit a végrehajtó.
A másik dolog, hogy fontolja meg, hogy akkor is, ha egy másik számítógép tcsh vagy Bash,
, ha azok nem kapcsolódnak, mivel azok a helyi számítógépen
ha van egy Linux vagy Mac OS helyi számítógépen,
majd ismét megkapja a shell, hogy hívja sh vagy a csh, nem az, hogy lehet, hogy jobban.
A jelenlegi Bourne héj fejlesztések kisebb, mint az Bash
de már azok az eredeti Bourne shell.
Ennek eredményeként, hogy még a jelenlegi Bourne héj, sh,
akkor is, ha ez nem Bash, hasonlít a C nyelv több, mint a C-shell nem.
Ez nem volt igaz, amikor a C-shell először létre, de fejlődött így.
Lehet, hogy észre, hogy itt ezek a shell neveket, kivéve a Bourne shell
van valami, hogy jelzi, hogy melyik shell vannak - csh, bash -
de a Bourne shell csak sh.
Miért? Ez volt az eredeti shell.
Ez volt a héj, akkor nem egy shell,
és mivel ez volt a héj, nem volt ok arra, hogy megkülönböztessék a másik shell.
Szóval ezért van ez a név, és még mindig nem.
>> Ez az első itt egy vonalat a jelszó adatbázis egy fiókot már ott
egy másik számítógépen.
Meg fogom próbálni, hogy ezt a nevet, így láthatja azt a részét, a végén, a héj.
A jelszó az adatbázis tartja a bejelentkezési tulajdonságokkal minden felhasználó számára.
Kezdetben a felhasználónév, ami látható az utolsó 2 betű az enyém most.
A mezők itt választja el.
Az utolsó mező, mint látható, a bin / tcsh, a héj.
Ez a héj adja meg.
Van valami érdekes itt.
Amikor a Unix először alakult, már csak 1-héj,
így nem volt választás van.
Akkor miért lehetővé teszik egy olyan területen, a jelszó adatbázis adja meg a shell?
Nem tudom, de szerencse, hogy igen.
Ez elég nehéz, hogy a változások a jelszó adatbázis formátum
azért, mert sok program utal a formátumot
és kellene írni.
Ez egy szerencsés vagy véletlen fejlemény, hogy a bennük foglalt ezen a területen.
Ez a fajta a jelszó fájl vonalat használ minden Unix és Linux számítógépek amennyire én tudom.
A Mac saját rendszere.
Ez valójában egy jelszót fájlt a sorokat ebben a formátumban,
de ez nem, ahol a felhasználó jellemzőket.
Egy másik zárójeles megjegyzés is.
>> Ha hív a héj, akkor hívja, mint egy al-shell a meglévő kagyló.
Tehát, ha elmegyek innen, menjünk megszabadulni ezeket a dolgokat.
Itt vagyok, a C-shell.
Ez változó, amely pontosan meghatározza a shell,
valójában nem mindig megbízható módja annak meghatározására, hogy mi shellt használsz,
de ebben az esetben is van.
Mi lenne, ha csak a típus -
Most vagyok Bash.
Vannak dolgok mennek, hogy ugyanaz. ls azt mondja a parancsokat.
Ha én egy felfüggeszteni vissza a C-shell, ls, ugyanaz. Nem igaz?
fg, előtér, vissza a Bash shell.
pwd, jelenlegi könyvtár, vissza a C-shell.
pwd, másik könyvtárba - valójában nem más könyvtár ebben az esetben.
Ez ugyanaz a könyvtárba.
Tegyük fel, hogy szeretnék hívni a parancs van: ahol ls.
Mit akar ez csinálni?
Azt mondja meg, hol van az ls parancs,
az egyik, hogy ad nekem egy könyvtárból található ls.
Menjünk vissza a Bash shell. Próbáljuk meg ugyanezt.
Hmm, érdekes, ott, ahol: parancs nem található.
Miért van ez?
Az, ahol a parancs épült, hogy a C-shell.
Ez nem egy parancsot, hogy meg kell olvasni a memóriába valahol máshol, és kivégezték.
A C-shell fut, azt át végrehajtását, hogy egy részét a saját kódját
és ez nem a Bash shell.
Tehát Bash, hogy nem egy ilyen beépített parancs, úgy néz rá, nem találja,
és kap egy hiba.
Tehát ott van egy bash shell fut a C-shell, és felhívjuk, hogy egy al-shell.
És csak abban az esetben, ha kíváncsi vagy, a Bash shell saját eszköz elhelyezésének parancsokat.
kivonatos arra a tényre utal, hogy lehet végre gyorsabban,
ha kiderül gyorsabban.
Ez az egyik a fejlesztések beépített néhány ilyen kagyló.
>> Bourne-típusú kagyló részesítik előnyben a programozás.
Ők ellenőrzési struktúrák, mint a hurkok, feltételes állítások,
az a fajta parancsok, hogy lehet használni a programozási nyelvek, mint a C-
vagy bármi más nyelvet. Talán Programozás Java, vagy bármi.
Kagyló azokat is.
A Bourne-típusú kagyló, különösen a Bash, több
és úgy tervezték, nagyobb rugalmasságot biztosít.
A Bash shell van tömbök. Az eredeti Bourne shell nem.
Hogy lehet jelentősen előnyös programozás.
A C-shell valójában mégis van a tömbök, de nem sok ilyen egyéb jellemzőit.
A Bourne-típusú kagyló végrehajtja gyorsabb
ha nem rendelkeznek a tervezett funkciók interaktív használatot.
Ön betölteni különféle dolgokat le egyetlen célja, ez tölti le őket más célra.
Van, hogy a trade-off van.
Azok a funkciók, amelyek célja az interaktív használata
valójában kevés vagy egyáltalán nem használja a script.
Ez lehetséges, hogy egy interaktív al-shell, mint az, akit ott kezdődött
kipróbálni parancsokat, amelyeket szeretne használni a script.
Ez az, amit nem tud a perl. Meg tudod csinálni a kagyló.
Még a struktúrák, mint a hurok, és így tovább lehet futtatni interaktívan.
Ezek néha hasznos interaktív módban fut,
de annál valószínűbb, használja őket, hogy dolgozzon ki egy script.
>> Álnevek.
Ez lesz a C-shell.
Előzmények mechanizmus, ahol kapsz vissza a korábbi parancsok
vagy azok egy részének, hogy már futni.
Ismét, a C-shell, a Bourne és a Korn shell ezeket a dolgokat,
de nem fogok bejutni őket.
Tehát itt van néhány hasznos alias, hogy van.
Beírása helyett ls - ez egy közös parancs -
csak írd l, és mentse magát 1 karakter.
ls különböző lehetőségeket, mindazok munkáját.
Ne feledje, hogy az említett meghatározások idézeteket körülöttük.
Ezekben az esetekben az idézetek nem szükségesek.
Ha tudod határozni azokat a álneveket idézőjelek nélkül, akkor is működik.
Ezek ajánlott.
Vannak olyan helyzetek, amikor nem tudod használni az idézet
mert azt szeretnénk, hogy történjen valami, ami az idézet megakadályozná.
Néha lehet idézni részét a meghatározás, de nem az egészet.
Ez általában szintén ajánlott a használata aposztrófot helyett idézőjelek.
Idézőjelek hatással változó definíciókat,
Különösen így azok szerint kell értékelni, nem pedig leállítás.
Miért akarnánk, hogy hagyja abba az értékelést?
És hogyan idézetek csinálni, hogy nekünk?
>> Itt van egy parancs, amely lehet, hogy talál érdekes.
"Ls g *"
g *, ahogy azt valószínűleg tudod, egy helyettesítő kifejezés
az összes fájlt kezdődő nevek g.
Ha csak írj egy ls g *, hozok egy listát az összes ezeket a neveket az én aktuális könyvtárban.
Ha én határozzák meg, hogy álnév, mint itt az idézeteket,
fog futni, hogy a parancs az aktuális könyvtárban, ahol éppen fut.
De ha fut az alias definíció idézőjelek nélkül,
fogja értékelni a wildcard g * ha fut ez a meghatározó a parancsot.
Tehát a meghatározása alias lesz ls követi a fájlok listája a könyvtárban
amelyben az alias parancs végrehajtása,
függetlenül attól, hogy tényleg kívánja a parancsot.
Ez nem sok haszna van, és az aposztróf jelet megakadályozza az értékelés a csillag.
Szóval csak kap a definícója ls g *.
Akkor, amikor fut az alias, LGS, akkor majd hozza, hogy ki.
Most már nincsenek idézetek, és értékelni fogja a csillagot, amikor futtatja az alias parancsot.
Tehát ez az egyik dolog.
Idézőjelek lenne, hogy ugyanazt a hatást itt
de vannak más esetek, amikor idézőjelek között nem működik olyan jól.
>> Itt egy másik.
Lehet, hogy tudja, a grep parancsot.
A grep parancs használható, hogy átvizsgálja a fájlt a vonalak, amelyek bizonyos szálakat.
Szóval menjünk ide, és én kilép a Bourne shell.
Oké. Itt egy fájlt.
Mondjuk, hogy ez grep abc szálakat. Ott van.
Ha én grep zddd, nem kapok semmit. Oké.
Így talál egy sor, a jelentés készül, nem találja, nem jelenti azt.
A kimenet minden olyan vonalon, amely ez a karaktersorozat rajta.
Vannak mindenféle opciókat, amely megtalálható a dokumentációban.
Itt van egy módja annak, hogy csináld.
Mit szól ehhez, alias grabc "grep abc"?
Ez lesz az 1 érv, amikor az alias-ban meghatározott.
Tehát, ha én, hogy itt, most, ha én grabc,
most alias több, mint az egyszerű paranccsal. Azt is az érvelés.
Eddig, ami működik.
Van egy másik parancs van, ez az egyik, így ezek a különböző húrok vannak
, és azt mutatják, hogy ez nem találnak ott semmit, mert nem egyezik.
>> Mi van, ha azt akarom, hogy tartalmazza az alias definíció fájl fogok keresni
és azt akarom, hogy érvként, hogy az alias a húr, amit keresek?
Lehet, hogy azt akarom mondani, abc, mint az az érv, hogy az alias,
de az alias már megállapított a fájlt.
És ez az, ahol ez a kifejezés jön be
Figyeljük meg, itt van a grep, mint azelőtt.
Megvan a fájlt itt, vonósok.
\! ^, Milyen furcsa kifejezés, azt hiszem, ha még nem láttam ilyet.
Felkiáltójel része a C-shell történelem mechanizmus.
Meg lehet felidézni a korábbi parancsokat, akkor emlékszem érvek a parancsokat, és így tovább.
A történelem mechanizmus részeként használják aliasing.
Ha olyan sort, miután a felkiáltójel, akkor nézze meg ezt a vonalat az Előzmények listában,
amely nem fogunk bekerülni most, mivel ez egy teljesen más téma.
Lehetőség van arra, hogy meghatározza egy sor egy részét.
Tehát! 3:02 lenne a második érv parancs 3-as.
A kurzor itt ez a kifejezés áll az első érv.
Ha nem adja meg annak megjelölése, mely parancs utalsz,
arra utal, hogy a közvetlenül előző parancs,
és a kurzor egy szimbólum az első érv.
Mert ez a kalap, és nem a szám, akkor nem kell használni a vastagbél,
így van! ^ jelenti az első érv, hogy az előző parancs.
Egy kis vegyes itt.
Ebben az esetben, ha ezt, mint egy alias definíció,
A történelem hivatkozás utal vissza a parancsokat, amelyben az álnév használata.
Tehát ez megy vissza 1 parancsot a történelem működés,
hanem egy alias műveletet arra utal, hogy a parancsot, amelyben azt írja,
azt mondják, grstrings_file.
Megvan az idézeteket itt is. Mi a backslash az?
Ebben az esetben, mint máshol, nem akarjuk, hogy végre a történelem mechanizmus
miközben meghatározó alias.
Ha nem volt meg a backslash ott a shell is húzza az első argumentum
A parancs közvetlenül előtte futott ez alias parancs, amit nem akarunk.
Azt akarom, hogy ez beépül a alias parancsot, hogy hívja az érvet később.
Single idézetek nem menekülés egy felkiáltójel, a történelem referencia.
Talán tudod, hogy a kifejezést menekülési azt változtatni a jelentését valamit.
Ebben az esetben ez azt jelenti, hogy ne valami attól, hogy egy speciális jelentése van.
Felkiáltójel különleges jelentése történelem.
Menekülés és nem is, hogy értelme.
Idézetek ne csináld ezt, backslash nem.
Szóval tulajdonképpen a 2 szintű ide menekültek.
Fogom mozgatni ezt a parancsot a másik ablakban gépelés nélkül is
ezekkel szerkesztési műveleteket, ami lehet hasznos.
Valami más itt megmutatom.
Ha csak típus alias paraméterek nélkül, azt mondja, az összes érvet.
Ez egy csomó álnevek már volt itt
mellett az, hogy én már a ma itt.
De ha én csak írja be a nevét egy álnév, azt mondja nekem, hogy mit jelent.
Figyeljük meg, hogy az idézőjelek elment, és a backslash elment.
Ez a karakterlánc itt annak az eredménye, hogy az alias definíció,
és most már csak! ^ benne.
Ez lesz, hogy vizsgálja meg a fájl húrok semmit.
Tehát, ha én grstrings_file húrok, nem adtam meg semmit keresni ott,
de keresi a szálakat.
Nem találja a szót húrok a fájlban húrok, de ez nem írható abc.
És nem találja, hogy.
Tehát itt adunk egy érv, hogy eltalálja a meghatározása alias,
van behelyezve, hogy a bele.
Ez az, ahol ez a kifejezés származik.
Használhatja több mint 1.
A kurzor egy szimbólum, az első érv.
Ha akarta, hogy egy másik érv, akkor majd mondja: 2..
Nincs speciális szimbólum a második érv.
És mert te egy szám, akkor kell használni a vastagbélben.
Van azonban egy másik választás itt.
A dollár jel áll az utolsó érv.
És mivel ez egy szimbólum, akkor kihagyja a vastagbélben.
Tehát ez lenne az utolsó érv a listában.
És ott van az is, hogy egy.
Asterisk az összes olyan, így ez a teljes paraméterek listája,
és újra, akkor kihagyja a vastagbélben, mert ez nem egy szám.
Remélem, mind megfigyelése mindezt.
>> A történelem mechanizmusa mehet vissza a korábbi vonalakat az Előzmények listában.
Lehet ezt egy alias meghatározás.
Még soha nem láttam ezt megtenni.
Ez lenne a hatása, hogy húzza ki a korábbi parancsok az Előzmények listából
ha végre az alias, ami eltérő lehet parancsokat
attól függően, hogy mikor és hol végrehajtani.
Elképzelhető érdemes kihúzni ilyen hivatkozást
csak azért, hogy tudja, mi egy korábbi parancs.
Még soha nem láttam ezt megtörténni.
Azt hiszem, valaki érdemes, de ez nagyon valószínűtlen.
Van egy másik dolog itt.
Ha a történelem-típusú referencia,
akkor csak az érveket, amelyhez van egy ilyen referencia használnak.
Ha van egy alias meghatározást, amely nem használ egy történelmi típusú referencia,
Ha ez csak a kezdete lesz a parancs
és még további érveket, akkor bármi beírt után
hozzá kell adni a parancsot.
Ebben az esetben, a példa, amit most adtam oda, használtuk az első érv,
mi nem használ semmilyen más.
Ha más érvet kaptak a parancssorban, akkor nem lehet használni.
Tehát, ha használja a történelmet hivatkozást is, akkor kell használni, hogy minden érvet.
>> Van még egy dolog, amit itt én csak azt szeretném megemlíteni, részben zárójelben,
nevezetesen, hogy ez a történelem mechanizmus a felkiáltójel
nyúlik vissza, az eredeti C-shell.
A tcsh vezetett történelem műveletek
használó a különféle parancsok és húrok a szerkesztők,
vagy Emacs vagy vi.
Az én személyes véleményem az Emacs sokkal könnyebben használható erre a célra
akkor is, ha használja a VI rendszeres szerkesztésre.
Vannak különböző Emacs parancsok, amelyek most alkalmas a történelem.
Vezérlő P megkapja az előző sor az Előzmények listában.
Egy másik vezérlő P fogja kapni az egyik előtt.
A felfelé nyíl nem ugyanaz a dolog.
Vezérlő N megkapja a következő parancsot, ha már görgethető vissza valamilyen módon.
Le nyíl csinálja is.
Tudod mozgatni balról jobbra a nyilakat és egyéb dolgokat.
Ez lehet, hogy használja a történelem mechanizmus
sokkal könnyebb, mint a felkiáltójel szintaxis,
de nem használja, hogy egy álnév meghatározás.
Majd megy át, hogy egy másik alkalommal.
>> Változók.
Tudod, mi változó programozási nyelvek.
A kagyló azokat is.
A C-shell használja a paranccsal beállított rendelni változók
úgy, hogy beállítja a változó egy értékének b -
mint mondtam, a haszontalan meghatározás, de annak bemutatása, hogy ezt használják.
A set parancs létrehoz egy változót, ha az még nem létezik.
A pozicionális paramétereket shell scriptek tekinthető változókat,
de a használata, és a hozzájuk tartozó szabályokat némileg eltérő.
Nem lehet értéket rendelni a $ 1 során a script.
Meg kellett volna meg egy új változót erre a célra, ha néhány akarsz.
Írja be argumentumok nélkül, és kapsz egy listát az összes jelenleg definiált változókat.
És térjünk át a másik shell itt, és mit kapunk, ha így teszünk.
Elég egy hosszú lista, ugye?
Lépjünk egy kicsit. Nézd meg minden.
Néhány ezek a dolgok határozzák meg automatikusan a shell.
A héj létrehozza a változót, és ad neki egy értéket.
Néhány ezek közül a héj által meghatározott, de aztán újra a felhasználó által
az ő preferenciái.
És néhány közülük a felhasználó által létrehozott attól függően, hogy mit csinál ezen a napon.
Ez csak beállított paraméterek nélkül.
Van egy furcsa tulajdonsága van ez a dolog.
Nem kell, hogy vagy nincs szóköz között egyenlőségjel és a változó neve
és az értéket vagy terek mindkét oldalán az egyenlőségjel,
mint ebben az egy.
Ez nem fog működni, és ez valójában egy érvényes parancs
de nem fog tenni, amit kíván.
Ez a parancs működik, mert ha csak mondjuk meg, és a változó neve
nincs egyenlőségjel vagy állítsa, és a változó nevét egy egyenlőségjel, és nincs értéke,
akkor állítsa a változót a null értéket.
Tehát a = érvényes parancs.
A set parancs meghatározhatja több mint 1 változót ugyanabban a sorban.
Tehát ez a parancs itt az a hatása meghatározó mind a és b null.
Valószínűleg nem az, amit akarsz.
Ez itt már korábban említettük, vezet hiba
mert a = b nem érvényes kifejezés.
A változó neve nem kezdődhet az egyenlőségjel.
És ezek a további dolgokat.
A kettőspont használták kiválasztásához érveket a történelemből vonalak,
és fel lehet használni -, és nem mentem bele, mielőtt - módosítani ezeket a dolgokat.
Azt is fel lehet használni, hogy módosítsa shell változókat.
Ez itt, $ a, amelynek értéke van.
: R fog felszállni kiterjesztése.
A meghosszabbítás bármi követően egy pont,
egy pont, és valami azt követő végén egy fájlt,
csak a végén a lista utolsó perjel után.
Szóval van itt.
a az a. Eldobja az. O.
Ha nincs kiterjesztése, csak az elérési útvonalat az utolsó perjel, akkor nincs hatása.
a: h, hogy a változó kifejezés, majd vegye le az utolsó eleme a könyvtár lista,
megint csak az utolsó perjel.
Tehát / a / b / c válik / a / b,
de ez megváltozik, mert az elem után a lista null.
Itt van valami, ami azt is szeretnék hangsúlyozni.
Ezek a minősítők nem keres akkor az ilyen fájlokat.
Ők csak nézd a szálakat.
Ezek célja, hogy manipulálni fájlneveket, elérési útvonalakkal,
de lehet használni minden húr is, ha ez nem a fájl nevét.
És nem keres a létezését,
Tehát, ha nincs ilyen fájl, / a / b / c, ez továbbra is működni fognak.
Legyen szó bármilyen használata, az más kérdés, de ez még mindig működik.
Változók különböznek a Bourne héj. Mi lesz később.
Dollar sign is elkerülte, mint a felkiáltójel és a csillag.
Dollar sign is megszökött egy backslash vagy az aposztrófot.
Idézőjelek, hogy a furcsa hatást az összes kagyló
arra kényszerítve az értékelés a dollár jel változó kifejezés.
Tehát ha ez is megszökött egy út, az idézőjelek lehet a hatása
Az okozza, hogy értékelni egyébként.
Ez egy kicsit zavaros.
Ha több szintje menekülés, mint például egy idézőjelek idézőjelek
vagy dupla idézőjelek belül az aposztróf jelet, meg kell vizsgálni, hogy mi fog történni
a változó, ha használ egy.
Azok a 2. esetben - két belsejében egy, egy belső kettős -
nem feltétlenül adja meg ugyanazt az eredményt.
Környezeti változók, kötött C-shell változókat.
Környezeti változók is változó, a C-shell,
és ők is változók más kagyló is.
A C-shell, ezek különböző készletek.
Azok a dolgok, mondtam, mielőtt mintegy shell változókat.
Környezeti változók egy jól elkülönülő változók
kivéve a több változó vagy ahogy mi hívjuk kötött változók,
ami nagyon fontos, és mi lesz azokba később.
Környezeti változók automatikusan adják tovább
a kagyló és parancsok futnak a shell.
A többi dolog nem. A shell változókat, az álnevek nem. Környezeti változók.
Ezért nevezzük őket környezeti változók,
az ötlet is, hogy a környezet túlnyúlik csak az aktuális shell.
Ezeket fel lehet használni, hogy meghatározza a dolgokat parancsokat.
Íme egy példa. PRINTER, LPDEST.
E két változó határozza meg a nyomtatót, hogy a parancsot fogja használni a nyomtatáshoz a dolgokat.
Ha több nyomtató körül, akkor érdemes tenni, hogy melyik tetszik.
Az ok van 2 változó, hogy a különböző készletek parancsok írták
ezekkel a különböző változók.
Lehet, hogy nekik különböző értékeket.
Legvalószínűbb, akkor nekik mind ugyanazt az értéket.
Azok a dolgok, mert a parancsokat, amelyek a nyomtatás
volt programozva, hogy vizsgálja meg az értékeket ezen változók.
Ha egy program nem írta, hogy így, ha le van írva, hogy valami mást,
változó lenne jelentősége.
Tehát az operációs rendszer nem keres ilyen változó
minden alkalommal, amikor olvassa el a nyomtatóhoz.
A parancs nem nyomtatás keres ezeket a változókat ha be van programozva, hogy az utat.
Ezek a változók gyakran határozza meg az inicializáló fájlok
de nem feltétlenül.
Megadhatja azokat a parancssorban.
Ezek határozzák meg a parancsot.
A parancs, amely futtatja valami lehet, hogy saját kiválasztási változók -
változók, amelyek egyediek egy adott szoftver csomag, például.
Ők fogják meghatározni futtatásakor a csomagot.
Hogy ezeket a változókat át egy al-shell?
Amikor egy al-shell van írva, akkor nem írja be a területen.
A terület az al-héj, amely elkötelezett a környezeti változók
Nem írta az al-shell, ez által írt másolás.
Amikor fut egy közönséges parancsot, például ezeket a parancsokat nyomtatni, vagy bármi,
kezdik ki egy új shell.
A héj létrehoz egy shell, majd felülírja része
azzal a paranccsal, hogy futsz, ami egy kicsit zavaró,
de ez, hogy ezeket a parancsokat, hogy a környezeti változók
hogy aztán lásd később.
A parancs itt meghatározó változó setenv.
Ez hogyan határozza meg azt. Ez a 3 elem: setenv, változó, értékét.
Ha csak nem SetEnv argumentumok nélkül, mit kap?
A lista az összes ilyen változó.
Ismét, ez egy szép hosszú listát, és ebben az esetben, mint a többiek,
ezek a változók határozzák meg nagyrészt a bejelentkezési műveletet a shell maga
nem pedig amit én tettem.
Van még egy parancs van, printenv.
Ez azt is kiírja a környezetet.
Figyeljük meg az utolsó dolog itt, EDITOR = vi.
Ez azt mondja, hogy ha én vagyok a dolog, hogy hívja szerkesztő
és nem adja meg a szerkesztő, és ez lehetővé teszi számomra a választás, akkor adj vi.
Mi van, ha én printenv szerkesztő? Azt mondja nekem, mi az.
Jobb előtt, volt egy változót, kevesebb.
Ezek az alapértelmezett beállításokat, amikor elindul a less paranccsal,
amely megjeleníti a fájlokat.
Tehát, ha megteszem, printenv vehet 1. érv vagy 0 érveket,
nem több, mint 1.
Vannak más parancsokat is, de mi nem fogunk bejutni minden ma.
Ne feledje, ott voltak a módosítókat a shell változók, mint a: h,
amely csökkenni fog az utolsó eleme egy elérési utat,
vagy: r, ami csökken kiterjesztése.
Azok most már alkalmazni kell a környezeti változók is. Nem használt.
Régen nem lehetett módosítani. Most már lehet.
Ez az egyik, a fejlődés és a fejlesztések, a kagyló az évek során.
Azt mondtam, hogy a kagyló részeként a környezet
és a shell változók a C-shell van, néhány kivételtől eltekintve, külön csoportja.
Meg tudjuk állapítani egy környezeti változó, és a shell változót ugyanazzal a névvel.
Lesznek különböző változók, ők is más és más értékeket.
Megváltoztatása értéke egy nem változik az értéke a többi.
Ezek a változók mind értékeljük a dollárjel - $ a, $ mindegy.
Mi van, ha van ez? Tudja, melyik kap?
Az én vizsgálatokat kaptam a shell változót,
de ez nem dokumentálták, és akkor nem hivatkozhat e.
Ezért kérem, teremt héj és környezeti változók
azonos nevű jó ötlet? Oké.
Melyek azok a fő kivételek, ahol a környezet és a shell változókat
kapcsolódnak egymáshoz?
Jelenleg a 4.
Capital levélben TERM környezeti változót,
shell változó távon kis betűkkel, írja a terminál emuláció.
Én csak megyek át ide, és fogok csinálni echo, hasznos parancs van,
$ TERM $ távon. És ott.
xterm egy terminál típusú ablak jelenik meg az X Window System.
xterm-szín egy változata, amely lehetővé teszi, hogy a különböző színekben.
Miért mi határozza meg ezeket? Mi ez a jó?
Parancsok, hogy rendezze át a képernyőn, mint a szerkesztő
küldje különösen sorozatok, az úgynevezett escape szekvenciák,
hogy egy terminál vagy egy ablak átrendezni, és így tovább.
Azok a szekvenciák eltérőek a különböző típusú terminálok.
Ez azt mondja, hogy melyiket használja.
Néha vannak olyan kérdések is.
Lehet, hogy ezen változtassak.
Ha a dolgok nem működnek, néha a terminál típusának beállítása rossz,
akkor lehet, kijavítani a újradefiniálása a változót.
Ezekben az esetekben, a változó egy változó, vagy a környezeti változót a shell változót,
meg kell változtatni a másikat.
Jöttem rá, a tapasztalat, hogy a változó TERM nagybetűvel
nem mindig változik shell változót távon kis betűkkel.
Ez egy hiba.
Én nem tudom, hogy ez mindig igaz. A legtöbb esetben ez nem igaz, de lehet.
Tehát, ha egy változtatás, csak nézzétek meg.
Nem gyakori, hogy meg kell változtatni, hogy érték, de egyszer-egyszer te.
Környezeti változó USER.
Ismét környezeti változó nagybetűvel, shell változó kis betűkkel.
Ez a felhasználónevét.
Ez csak nagyon kivételes körülmények között
, hogy szeretne változtatni.
Ha a felhasználónév valaki más, akkor dobni mindenféle dolgokat.
Home könyvtár, a felhasználó home könyvtárában.
Még egyszer, nem akar változtatni.
Figyeljük meg az összes ilyen esetben, és az egyik, hogy vagyunk, hogy fedezze a PATH változó,
környezeti változó nagybetűvel, és a kötött shell változó kis betűkkel.
Ha megváltoztatja az egyik, meg kell változtatni a másikat.
Ez a fajta kötődés nem jön létre, akkor nem kötelező 2 változó,
kivéve a 4, és a kötelező ezeket a változókat nem lehet visszavonni,
nem lehet őket szétválasztani.
Tehát ezek a 4 pár változó köti.
Mindig lesznek. Nincs más lesz.
Ezen kívül, lehetséges lenne, hogy hozzon létre változókat az azonos nevű
az ellenkező típusok.
Lehet, hogy egy shell változót kifejezés kis betűkkel
vagy környezeti változó TERM nagybetűkkel.
Azok a változók független ezek párosítva változó
és lennének függetlenek egymástól.
El sem tudom képzelni, miért tenne ilyet, ha nem akarja összezavarni az embereket.
Ez itt, útvonal változó, ez egy nagyon fontos.
A másik dolog az, hogy nem lehet esetek
változók hasonló páros nevek, amelyek nem kötődnek egymáshoz.
Nem lehet változókat, SHELL és a héj, a kis-és nagybetű.
Alapján ezt a nevet, akkor nem tudom, hogy a változó egy shell változó
vagy környezeti változó, és ők nem kötődnek egymáshoz.
Tehát ez a fajta párosított neveket nem jelenti azt, kötött változók.
Az út változót, amit megmutattam korábban,
van egy lista a pathnames amelyben a shell úgy néz ki, a parancsok.
Térjünk át az ablak itt, és mi nem echo $ PATH, nagybetűvel -
környezeti változó - echo $ path, kis betűkkel - shell változó.
Figyeljük meg, hogy a lista könyvtárak ugyanaz. Ezek kötve.
Változás az egyik, meg nem változtatja a másik.
A környezeti változó elemek választja el. Figyeljük meg, hogy.
A shell változókat szóközzel elválasztva.
Ez a környezeti változó egy sztring.
A héj változó egy tömb.
A Bourne shell nem volt tömbök.
Bash csinál, de ez már egy állandó része a héj.
Ez egy szöveg, és nem egy tömbben.
A C-shell mindig tömbök.
A tömbök sokkal könnyebb dolgozni.
Akkor nézze meg részeit.
Tehát echo $ PATH [1], és kapok a / usr / bin, az első elemet.
Újra, ne feledje dollárjel áll az utolsó eleme az előzmények listáját.
Mi történik ott? Azt próbálta megtalálni dollárjel, mint egy változó szimbólum.
Én menekülni. Bocs. Ez nem veszi, hogy vagy.
Néhány ezek a dolgok nem működnek olyan jól.
Lehet, hogy akkor csak hagyjuk, hogy ki.
Asterisk utal az egészet, de ez az, amit kapsz, ha nem adja meg az elem.
Egy másik módja, hogy a tömb változó lehet manipulálni,
elemek száma is, 7 elem.
Itt tesszük a font jel előtt a változó neve.
Itt van még egy. Tegyen egy kérdőjel van.
Ez egy logikai érték. Ez azt jelzi, hogy a változó létezik.
Ez egy másik módja a munka változó.
Ez, mellesleg, nem kell, hogy egy tömb változót.
Ez lehet bármilyen változó.
És ha igen, nincs olyan változó, és kapok egy 0-ra.
A másik kis dolog, ott a változó értékeléseket.
Vissza ez itt, ha valamilyen okból akarsz dolgozni ezzel a
inkább, mint a munka, a tömb a shell változót,
parancsok vannak, hogy lehet elkülöníteni ezeket a dolgokat alapján a vastagbélben.
Sőt, ha lesz, hogy ezt a Bash shell esetleg
valamilyen script, az lenne talán, hogy hogyan fog csinálni.
De a C-shell sokkal könnyebb használni a tömb.
A Bourne shell változókat rendelt egyetlen kifejezés, mint ez,
mint ahogy lehet rendelni egy változó egy programozási nyelv,
és itt nem lehet szóköz.
Ez kell, hogy legyen, csak 1 szöveget.
A Bourne-féle kagyló, valamennyi változót shell változókat.
Környezeti változók egy részét a shell változókat.
Ők megkülönböztetni a nem-környezeti változókat exportálja.
A parancs, hogy az, az export, mint az export PRINTER.
Ha volt, hogy határozzák meg az ilyen változó,
ha volna egy nyomtatási parancsot, hogy megtalálja, akkor kell egy környezeti változó,
és ez hogyan hogy ez az egyik.
Itt van valami fajta zavaró.
Ez a kifejezés, az export a környezetre, ered ez a Bourne shell koncepció,
és mégis ezt a kifejezést használják a leírások a C-héj,
ahol nincs ilyen parancs export.
Ha csak annyit export önmagában, kapsz egy listát exportált -
Tehát, ha én csak exportálni itt nincs ilyen dolog.
Oké, itt vagyunk.
Ezek a dolgok, mellesleg, szintén meghatározott, a héj.
Én nem határozza meg bármelyik magam.
A héj nem mindenféle dolgokat is.
Meg kell csinálni a dolgokat automatikusan.
A Bash vagy Korn shell, akkor lehet futtatni egy parancsot, mint ez,
amely egyszerre ad egy változó értéke és az export, az 1. parancsot.
A Bourne shell kell őket külön parancsokat, mint a kivitel.
Itt van egy másik szempont, hogy ez zavaró.
A set parancs a C-shell változókat határoz
és argumentumok nélkül megmondja, hogy mi a változók értékei.
A Bash shell, a set parancs argumentumok nélkül nem ugyanaz a dolog,
de érvekkel ez valami egészen más.
Tehát ezek a különböző érveket itt.
Néhány ezek közül a környezeti változókat, néhány közülük shell változókat.
Mindegyik shell változókat igazán. Néhányan azok közül, amelyek környezeti változókat.
A set parancs érvekkel is képes vezérelni
A pozicionális paramétereket a script,
ami egy módja annak, hogy őket egyszerre.
Nem igazán megy bele, hogy a mai.
Azt is fel lehet használni, hogy változtatni héj viselkedését.
Különösen a Bash vannak változók, amelyek meghatározzák, hogy a shell viselkedik.
Ezután is csak ez az egy parancsot, hogy lehet látni, ez a parancs.
Typeset majd változók és a változó típusokat használják a Korn és a Bash kagyló.
Ez nem kötelező, de lehet használni, hogy korlátozza a változók értékei,
ami hasznos lehet a hibák megelőzésére, és ez meglehetősen gyakori.
Szóval, csak megemlíteni, hogy abban az esetben látod valahol.
A hol a parancsot.
Emlékezz korábban említettem az, amikor parancsot a C-shell,
amely megmondja a helyét parancs elérési út.
Itt a parancs helyettesítés.
Meg kell találni a billentyűzeten valahol egy karaktert, ami így néz ki.
A helyszín a billentyűzeten fog változik.
Már nevezte backquote. Ez körülbelül akkora, mint egy idézet.
Ez megy a bal felső a jobb alsó sarokban.
Itt az én Mac billentyűzeten, hogy ez a bal felső sarokban.
Ezt a karaktert lehet használni, hogy végre a parancsot egy parancs.
Ha van egy kifejezés belső backquotes,
ez a kifejezés a parancs, ez fut.
A kimenet a parancs
Ezután az egész szubsztituált backquote expressziós
belül egy hosszabb parancsot, amely aztán fut, hogy a kibocsátás
részeként sor érveit, és így tovább.
Itt van egy parancs, amely használja ezt.
Nézzük működés közbeni bemutatása itt.
Menjünk fel itt, vegye ki a backquotes.
A vezérlés lesz nekem a sor elejére az Emacs szerkesztő szintaxis.
Eddig az elérési útvonalat, ami hol van,
de ha én csinálom, mint ez, akkor dugók abban lista pathnames
helyett az egész backquote kifejezés és fut ls-l rájuk.
Valami kényelmes, mi?
Tehát ez egy szép dolog. Így backquotes működik.
Most menjünk le egy kicsit tovább.
Ezek az álnevek. Igazából használni ezeket.
Megpróbálom, hogy ezt az 1 szerkesztési művelet.
Oké.
Most lássuk, hogy e meghatározások jött ki.
alias HSM mondta nekem, hogy ez határozza meg.
Figyeljük meg, hogy csak ezt, de a külső idézetek kivontak
és a felkiáltójel is lekerült.
! *, A teljes listát az összes érvet.
Egy alias meghatározást alkalmazni fogja vissza, ahol ezt használja.
HSM ksh bash. Oké.
Nézze meg, hogyan, hogy működik? Úgy ment nekem a gépelést.
Menjünk egy kicsit, csak hogy említsek itt még valami.
Figyeljük meg, itt a különböző kagyló. Kellett volna említette ezt korábban.
A csh egy 2 ide, és így nem / bin / tcsh.
Tudtuk megállapítani más módon, hogy azok valójában ugyanabban a fájlban.
Emlékszel azt mondtam, ha beírja sh kapsz bash.
Írja be ezt, és megkapod ezt.
De ezek nem kapcsolódnak. Azok a szimpla is ott.
És ez nem az a fajta fájlt, amely lehet hívni egy másikat.
Tehát ezek külön fájlokat, a C-shell is ugyanaz a fájl.
Vissza ide, a másik itt, ez alias,
vegye figyelembe, hogy fut a parancsot, a fájl.
Az alias fut, hogy. File megmondja, hogy milyen típusú a fájl.
Tehát FWH ksh bash. Oké.
Ez a termelés a fájl parancsot.
Nem tudom, ha tudod, hogy ez mit jelent itt,
Mach-O univerzális bináris, 2 architektúrák.
Van 2 lehetőség processzor típusok Mac,
és néhány programot írtak, hogy képes legyen futtatni mindkét,
és a fájl paranccsal tudja határozni, hogy, hogy az, hogy ez mit jelent.
Mindkét fájlok írták így.
Tehát azt látjuk, hogy az alias működik, látjuk, hogy a backquote működik,
látjuk, hogy az aktuális fájl ls vagy fájl működik.
Ez lehet, hogy nem működik. Próbálja meg ", ahol, ahol a" és a "lwh ahol". Oké, próbáljuk meg.
ahol hol.
hol van a shell beépített.
Ne feledje, korábban azt mutatták, hogy a Bash nem volt hol.
Ha beírjuk, ahol a Bash shell, akkor kap egy hibaüzenetet.
Ez csak egy része a héj, ahelyett, hogy egy külön parancsot.
Mi történik, ha azt írja lwh keresi hol? Meglátjuk, mi történik ott.
Ran, ahol, ahol van ez a teljesítmény, majd megpróbálta futtatni ls
mint l, hogy hol van a shell beépített.
hol van, de a többit nem léteznek.
Ezek egyike sem létezik, valóban.
Tehát ez nem mindig működik, és ez is mutatja, hogy néhány dolgot
nem nem elég, amit lehet, hogy gondolta.
Menjünk le egy kicsit tovább itt.
Ez itt a Bash. Ez is parancs helyettesítés, mint a backquote.
De ellentétben backquote, használja ezt a változót a stílus.
Számos olyan kifejezések, melyek neve a dollár jelet,
és bár ezek nem változó, de kölcsönzött a használata a dollárjel
jelzi kifejezése valamilyen.
Ezt is körül zárójelek vagy zárójelek vagy kettős zárójel,
amely egy más célt szolgál.
Single zárójelben itt van egy parancs helyettesítési mint a backquotes.
Kettős zárójel valójában egy számtani művelet.
Vannak más szintaxist, egyéb műveletek.
Backquote szintaxis kapható Bash.
Azonban ez az egyik előnyösebb. Sokkal könnyebb olvasni, és ez lehetővé teszi fészkelő.
Lehet van benne $ (parancs) másik parancs,
valami hasonló -
Kapok egy listát is.
Ez akkor működhet, ha az volt a backquote is.
Mit tegyek, ha akarok valamit, mint -
Valószínűleg valójában nem használja ezt a parancsot,
de ez a belső parancs helyettesítés visszhangozza a nevét minden kezdődő fájlokat,
akkor ez fut ls-l azokat a fájlokat,
és akkor ez csak visszhangozza a kimenetet.
Valószínűleg nem ezt, azt csak nem a visszhang vagy ls,
de ez azt mutatja, hogy a fészkelő parancsok működését.
Tehát csak egy funkció itt.
Említettem ezt korábban, hogy ha van, ahol a C-shell,
írja munkák a Bourne-féle kagyló a helyüket parancsokat.
Beépített parancsok, csak amit mondtam ott.
Parancsok része a héj, mint például hol.
Amikor a shell végrehajtja a parancsot, mint ls, megkeresi azt az utat,
találja, hogy valamilyen könyvtárban valahol,
olvassa, hogy a memóriába, létrehoz egy új shell,
beolvassa az ls vagy bármi a shell
ahol a környezeti változók már találhatók,
majd átadja végrehajtás hozzá.
Beépített parancs, a kód a parancs belül van a shell,
így a shell csak elkezdi végrehajtani egy részét saját kódját.
hol van ez a parancs. Valójában egyre gyorsabb.
Nem kell olvasni semmit a memóriában, ez már a memóriában.
Beépített parancsok mindig elsőbbséget élveznek parancsokat az azonos nevet.
Parancsok, amelyek a könyvtárak az úton lehet ugyanaz a neve,
parancsok a különböző könyvtárak, fájlok különböző könyvtárakban.
Az egyik, hogy korábban bekövetkezik, az út az, amit kapsz.
Ha van egy beépített parancs, mindig értem.
Kizárt, hogy ez alacsonyabb elsőbbséget, mint a parancs az elérési utat.
Ha azt szeretnénk, hogy ezt az utat a parancs, akkor írja be a teljes elérési út.
Ha lenne egy parancsot, ahol az út valahol,
Ez lehet / bin / hol és azt értem.
Ha nem akarja, hogy adja meg a teljes elérési utat, akkor meg egy fedőnevet.
Sőt, ha adott az alias ugyanazt a nevet, mint a beépített parancs, akkor a munka
mert az alias definíció értékelése
mielőtt a shell megállapítja, hogy ez egy beépített parancs, amely kell végrehajtani.
Akkor ez lesz egy kicsit bonyolultabb Néhány parancs van.
Az ügy néhány parancs ténylegesen beépített parancsok és az utat.
Az egyik a visszhang, a parancs csak használni egy kicsit ezelőtt ezek a példák.
Echo a parancs az utat, és ez minden shell.
Nem feltétlenül mindegyik viselkedik ugyanúgy.
Ez eredetileg egy parancs csak az utat.
Ben épült a kagyló később.
Mert vannak olyan lehetőségek, amelyek függnek a környezetre
és a parancssori opciók, a beépített parancsok
írták, hogy működik ugyanaz, mint a parancs, hogy már az úton,
nem valószínű, ők írtak, hogy az út
ha a parancs nem már írt az utat.
Tehát ez a mellékhatások jelentkeznek. Története hatásai itt.
Vannak lehetőségek vannak.
Van még egy lehetőség által meghatározott változó a tcsh nevű echo_style.
Ez az egyik ilyen változó, amely megváltoztathatja az is, hogy ECHO.
Vannak más esetek, amikor hozzá lehet rendelni egy változót
amely megváltoztatja az utat, hogy a héj működés, beleértve a beépített parancs, működik.
Ez nem befolyásol semmit mást
mivel más parancsok nem férnek hozzá a shell változókat,
csak a környezeti változókat.
De shell műveleteket tudja olvasni a shell változókat.
Ez nem fog működni a csh. Ez csak tcsh. Ez az egyik a fejlesztések.
Értelmezésének sorozatok értékelése során metakaraktereket,
értékelése során változó, alias, történelmi referenciák.
Van egy bizonyos sorrendben ezeket a dolgokat.
Ha igen, akkor a dolgok egy bizonyos sorrendben
és kap valamit, ami egy kifejezés egyfajta
amely már értékelték, hogy nem értékeli újra.
Ha ez nem, akkor csak át a karaktereket.
Tehát, ha az értékelés egyes kifejezések, mint a parancs helyettesítés
vagy változó vagy bármi ad okot, hogy egy kifejezés
amit szeretne értékelni,
hogy csak akkor működik, ha az értékelést később kerül sor a sorrendben.
Remélem, hogy világos van.
Ez az elemzés szekvenciát, egy műveletet a C-héj,
nem ugyanaz a beépített parancsok, mint azt a nem beépített parancsokat.
Nem vagyok biztos benne, hogy Bash ott.
Például, ha egy shell változó termelt kórtörténetében referencia,
valószínűleg nem megy vissza a történelemben.
Ez csak kap a felkiáltójel.
Sőt, mi csak megpróbál, hogy ki most.
a =, és mi lesz, hogy ezt oda.
Ó, várj. Bocsánat. Én ezt a Bash. Akartam csinálni itt.
Lásd, így nem értékelik, hogy a történelem hivatkozás
mert már elmúlt az a pont az értékelése történelem kifejezések
amikor értékelte a változót.
Szóval ez 1 hatását elemző.
És ismét, a beépített parancsok nem ugyanúgy történik.
Rendben van. Menjünk a következőre itt.
Ennek célja, hogy 1 sor, de ez így könnyebb olvasni.
Mit akar ez csinálni?
Talán emlékeznek, hogy tudjuk értékelni a csillag, mint helyettesítő fájlnév,
és vannak más fájlnév helyettesítő karaktereket, mint a kérdőjel és a konzol kifejezéseket.
Ez a fajta értékelés hívják kifejtésre.
állítsa noglob elején ez a parancs azt mondja, nem tehetem.
unset noglob mondja menj vissza csinálja.
Ne feledje, hogy meg glob nem lenne ebben az értelemben.
A köznyelv, állítsa glob vagy unset noglob tűnik egyenértékűnek,
de itt nem. Ez unset noglob.
Most Tset. Tset állt csatlakozó készlet.
Ez nem használt, hogy gyakran már, de mielőtt ablakkezelő rendszerek elérhetővé vált
és volt egy terminál, akkor lehet, hogy az milyen típusú.
És ha valami jön az Ethernet vagy a hálózat,
érdemes mondani, hogy ez egy VT100.
VT100 egyfajta szabvány a terminál üzlet. Ebből származik a december terminál.
Ha csak ezt a betárcsázós - észre, hogy? Ez megy vissza a szempontból, mi?
Tehát, ha csak nem Tset ide,
ha csak nem Tset, ez helyreállít a terminál, de nem látott semmit.
Ez nem igazán változtat semmin.
-S
Oké.
setenv TERM xterm-color.
Azt már tudjuk, hogy a kifejezés jött létre, hogy az út, hogy nem változott.
Ez az, ahogy mi azt szeretnénk csinálni.
De észre, hogy ezt a parancsot, Tset-s, csak a kimeneten ezeket a parancsokat. Nem futtatni őket.
Nem futtatni ezeket a parancsokat, hanem output őket.
Tehát ez az a célja, hogy készítsen parancs, amely majd futni.
Emlékszel a parancsot, hogy a fájl csak megmutatta, hogy van egy Q benne.
Így csináljuk.
A Q elnyomja valamilyen kimenetet, de ez nem számít itt, mint látod.
Én csak ezzel, hogy, hogy mutassa meg, hogy ez nem számít.
Ez backquote szintaxis.
Megjegyzés: a backquote itt backquote itt.
Én elhagyása ezeket a dolgokat itt.
Ezek az esetek azt mondta, hogy mit kell csinálni
abban az esetben, bizonyos típusú terminálok -
Ethernet, hálózati, betárcsázós, mit.
Nem számít itt, mert mi valójában nem tesz semmilyen ezeket a dolgokat.
Én csak bemutató a parancsot.
Ha én ezt a backquote, mit fogok kapni?
Azt is vegyük észre, hogy itt ez a szereplő a beállított noglob és unset noglob,
így azok feleslegessé váltak a meghatározás.
Ez nem mindig igaz, de már tartalmazza ezt a parancsot.
De lássuk, mi történik, ha megteszem
és megy a sor elejére a vezérlés és I csinálni.
Oké, be: Command not found. Ez elég furcsa, nem?
halmaz egy jól ismert paranccsal. Ez a része a héj.
be: Command not found? Miért van ez?
Hmm. Nos, szerintem erről.
Ez fut backquote parancs helyettesítés,
és fordul elő, hogy egy bizonyos részét a sorozat elemzés a parancs.
készülék egy beépített parancs.
Tehát az idő, ez a parancsot helyettesítés,
ez már ütött már az a pont azonosítására beépített parancsokat.
Így kezeli beállítani, mintha a parancsot az utat.
Mondanom sem kell, hogy nem találják, és akkor kap egy hiba.
Jól. Van egy példa elemzés sorozatot.
És mit tehetünk ezzel kapcsolatban?
Figyeljük meg, ez nagyon érdekes parancsol itt, eval.
Kíváncsi vagyok, hogy mit csinál.
Ha megnézzük a kézi - és most csak erre
hogy megmutassa, milyen zavaró ezek a kézikönyvek -
férfi tcsh, zavaros kézi, a megállapítás a dolgok itt nem könnyű sem.
Itt vagyunk, eval arg, így lehet 1 vagy több érvet
és van egy lista azokról a dolgokról is.
Kezeli az érvek bemenetek a shell
és végrehajtja a kapott parancsokat a keretében a jelenlegi héj.
Ez általában használt futtatni parancsokat eredményeként keletkező parancs
vagy változó helyettesítés miatt elemzés következik be, mielőtt ezek a helyettesítések.
Nagyon jó.
És itt is utal, hogy a Tset parancs minta használata
mint az, én csak mutattam.
Most már, hogy az ablakot, hogy a hasznos helyre.
Menjünk ide, és látni fogjuk, hogy eval használata előtt ezt.
Lássuk, mi történik, ha teszünk - itt megyünk fel a nyilakat, hogy a parancsot
és vezérlés A elejére, eval.
Oké, így működik.
Ha nem eval, tart, mi jön utána, és teszi a parancsot.
Ez lehetővé teszi, hogy lényegében értelmezni kétszer.
Ez a rész itt fut ez a parancs belsejében backquotes,
lesz a kimenet.
Kimenet kellene futtatni a parancsokat itt, mint ezek a
ebben az egyetlen, és ez egy.
Tehát azok a parancsok most itt ebben a sorrendben,
de ezek a beépített parancsokat, és nem tud velük azonnal.
Szóval, elmegyünk eval eval felveszi, hogy akár, elindítja az egészet újra, és működik.
Egy példa mindkét backquoting, eval, elemzés, következményei elemzés,
és a parancs, ami valószínűleg nagyon kevés haszna az Ön számára manapság.
Oké. Rendben, umask.
Nézzük meg ezt a parancsot itt umask 022. Kíváncsi vagyok, hogy mit csinál.
Nézzük csak írja umask semmit utána. 22.. Oké.
022, és újra meg újra.
Ahogy sejteni lehetett, umask argumentumok nélkül megmondja, hogy az aktuális maszkot;
umask érvekkel teszi, hogy az, de ez volt az általam már.
Mit jelent a 022 jelent?
Ezek itt a védelem a fájlt.
Ezek határozzák meg, aki lehetővé tette, hogy olvasni vagy írni, vagy végre a fájlt.
Korlátok is nevezik engedélyeket.
Az r áll az olvasási, a w az írási,
és az x, ami nincs jelen van, jelentése végrehajtani.
Jelenleg 3 kategóriában vannak.
Az utolsó 3 elem a felhasználói kategória. Azok vonatkozik rám, a felhasználó számára.
Ez a 3 itt vonatkoznak a csoporthoz.
A fájl tartozik 1 csoport, a felhasználó több csoport,
de ha a felhasználó az a csoport, amelyhez tartozik, ezt a fájlt,
akkor ezek a védelem vonatkozik rá, ha nem a felhasználó.
És ez egy mindenki más.
Ezek a kategóriák kölcsönösen kizárják egymást.
A felhasználó védelem vonatkoznak rá,
A csoport védelem vonatkozik a csoport tagjai más, mint a felhasználó,
és a más védelem csak az embereket más, mint a felhasználó és a csoport tagjai.
Ha van egy R vagy aw vagy x, azt jelenti, hogy védelmet nyújtanak.
Ha van egy kötőjelet, ez azt jelenti, hogy nem az.
Ott valóban más dolog, hogy tudunk itt ezek mellett,
amit nem fog bele most.
Az umask határozza meg alapértelmezett fájlokat hoz létre.
És mint egy maszk, lényegében azt mondja, a bitek, hogy nem adja meg.
Hogyan alakult ki ez lett bit?
Ha úgy gondolja, minden ilyen oktális számként,
ez az 1s kicsit, ez a 2s, ez a 4s.
Így 0-tól 7
leírja, milyen kombinációja r, W és X még ezeket a 3.
, majd egy hasonló számot, majd ezeket ezekre.
Tehát 022 azt jelenti, 0 más, 2. a csoport, 2. a felhasználó számára.
De ez egy maszkot. A maszk, amit nem kell.
Sajnálom. Most adtam a dolgokat a megfelelő sorrendben.
Ez az első 3. Ezek azok a 3 felhasználó, ezek a 3-csoport, ezek 3 van a többi.
Sajnálom, hogy adtam neked ezeket a megfelelő sorrendben.
A 0, amely az első ilyen, nem jeleníti meg az értéket,
de ha egy szám nem létezik, ez a 0-ra.
Ez azt jelenti, mind a 3 ilyen lenne megengedett.
Figyeljük meg, hogy ebben a konkrét egyik x nem megengedett.
Ennek oka, hogy a héj képes meghatározó
hogy egy fájlt kell végrehajtani, vagy sem.
Mivel ez nem egy futtatható fájl, akkor nem határozta meg az x.
A 2 azt jelenti, hogy írási joga, a második kategória van,
az egy a közepén, megtagadva.
Tehát még egyszer, ezek azok a dolgok, hogy megtagadva.
Nos, x megengedett, de ez nincs itt, mert ez nem futtatható
és hasonlóan a többiek.
Szóval ez egy közös umask.
Egy másik gyakori az egyik 700 - adj magadnak mindent, és senki más semmit.
És vannak más lehetőségek is.
Megyek vissza, hogy a. A történelem azt kereshet vissza, hogy a HSM oda.
Oké. Tehát itt, ezek a kagyló.
Bash, a tulajdonos, aki a rendszer figyelembe, mindent tud.
Csoport és mindenki más tehet olvasni, vagy végre, de írni nem.
Ez az ember nem is teszi lehetővé a tulajdonos, hogy írjon rá.
Ha a tulajdonos akart írni, a rendszer figyelembe,
ő meg kell változtatni a védelem első.
De ismétlem, az umask beállítja az alapértelmezett azáltal, hogy elnyomja azt,
jelezve a bitek nem lesz beállítva.
Ez tipikusan az egyik a inicializáló fájlok, amely a. Cshrc a C-shell
vagy. profilt a Bourne-típusú kagyló.
Ez lehet máshol is, ha vannak más inicializáló fájlokat a rendszer.
Különben is, ez umask.
Van valami olyan furcsa itt,
és ez az, hogy miért van egy parancs ez?
Ha én írom ezt, azt, hogy ez egy változó, umask = bizonyos értéket.
Miért van egy egész parancsot csak erre a célra?
Ennek oka az, ez csak megy vissza az eredetét Unix.
Unix volt, csak néhány programozási projekt a Bell Labs-ben a 1970-es években.
Az emberek csak most össze, hogy a program.
Ők soha nem akarta, hogy lesz egy világméretű operációs rendszer.
Különböző emberek azt írta különböző részein, gondolkodás nélkül nagyon sok
, hogyan is fog használni - inkább vázlatos.
És jött össze így, és ez még mindig tetszik, hogy bizonyos tekintetben.
Ahhoz, hogy tükrözi a történelem, és még mindig ezeket a következetlenségeket és furcsa elemei is.
Oké. Tovább itt senki.
Mint írtam korábban, a C-shell nem igazán használják nagyon programozáshoz,
bár lehet.
Végzi lassabban, ismét kompromisszumot interaktív használata,
amely több a feldolgozás, mint a sebesség,
amely tehet anélkül, hogy a feldolgozás.
Az extra funkciók hozzá a Bourne shell a Korn és a Bourne-again kagyló
Nem úgy tűnik, hogy lassan le őket, és nem tudom, miért van ez.
Azt, hogy csak jobb programozás, de nem vagyok abban a helyzetben, hogy tudja.
Sebesség itt valójában nem olyan nagy dolog, de ez nem szükséges.
Ennek oka, hogy a szkriptek valójában kap elég gyors.
Ha van egy csomó a parancsokat, mint egy calculational programban
akkor valószínűleg nem csinálni egy shell script.
A műveletek vannak viszonylag egyszerű és egyértelmű.
Az is, hogy én már tapasztaltam, hogy túl lassú
magában ismételt alkalmazásai lassan parancsokat.
Korábban már említettem a stream editor sed. Ez a parancs lassú.
Ha végre sed sokszor, kapsz egy lassú script, de ez nem a héj, ami lassú.
Futtatása azt a Bourne shell nem lesz sokkal gyorsabb, mint a futás, hogy a C-shell,
bár van talán némi előnye is.
A további programozási képességek, másrészt,
jelentős ok, hogy miért is használja a Bourne-féle kagyló.
C-shell páratlan funkciókat is -
A tény, hogy nem tudom, hogy a változó egy shell változó vagy egy környezeti változó.
Ez nagyon zavaró.
Ez nem olyan könnyű írni
csak az Ön tapasztalatai a programok más nyelveken.
Azt hiszem, akkor megtalálja a Bourne-féle kagyló jobban megfelel az élményt.
Egyes szkriptek, bár lehet több ezer sor hosszú.
Azok, láttam használt folt operációs rendszerek.
Azok is végre nagyon lassan, de ne fuss azokat a nagyon gyakran.
Ez csak akkor csinálsz foltozás,
és ez még csak a rendszergazda, aki nem azokat a dolgokat,
így ez nem igazán nagy probléma.
Azok, akik több száz sor hosszú ténylegesen végre elég gyorsan.
Idéző itt, mik azok a fejlesztések?
Már említettem néhány közülük - tömbök, számítások,
A $ () kifejezés számítások a Bash shell,
a másik fajta parancs helyettesítés.
Vannak különböző féle vizsgálati parancsok
amellyel meg tudod csinálni feltételes vizsgálatokat, hogy létezik egy fájl vagy más dolog.
Utoljára itt, ez a parancs itt.
Mit tesz ez, és miért lenne bárki használni?
printenv változóNév.
Tudjuk, mi printenv csinál. Azt mondja, a változó értékét.
És printenv változóNév titkolják, nagyon, mert nincs olyan változó.
Blank.
De nézzük, hogy ez valami értelmes.
Ez nem ott sem. Oké. Azt hiszem, soha nem határozta meg, hogy az.
Nézzük csak nézd meg a környezetet.
Ez egy másik parancs, amelynek segítségével ellenőrizni a környezetet.
Van jó öreg EDITOR, az, amit korábban láttunk.
Mit akar ez csinálni?
Itt van egy backquote kifejezést.
Ne feledje, ez a C-shell.
Így printenv EDITOR ad nekünk értéke szerkesztő. Ez vi.
És akkor azt állítja, hogy az értéket a változó egy, a set parancs.
Tehát most, ha én echo $ a, kapok vi.
Ez nem tűnik rettenetesen hasznos.
Ez azonban valójában nem egy cél.
Mivel nem tudjuk, hogy a változó egy shell változó vagy környezeti változó
használja a dollárjel értékelés szintaxis, tudjuk használni printenv
, hogy megbizonyosodjon arról, hogy ez egy környezeti változó.
Tehát, ha lenne egy shell változó szerkesztő, ez nem ütött meg.
Ez csak akkor működik, a környezeti változót.
Ha lenne egy shell változó, és szerettem volna az értékét,
Azt kell, hogy talál valami más módon kell csinálni.
Ennek egyik módja az lenne ezzel készlet és a csöveket.
Ez az egyik a metakarakterek, speciális karaktereket.
Küld a kimenet bekapcsolt valami mást.
Lássuk, mit lehet találni ott.
Semmi. Oké. Nézzük meg, mi van ott együtt.
Ez volt echo_style, az egyik már említettem korábban. Oké, csináljuk.
Ne feledje, már említettem, echo_style
határozza meg, ahogy a visszhang parancs fog futni.
bsd áll a Berkeley normál eloszlás.
Ez a Berkeley Unix az 1970-es években.
Ez az egyik módja, hogy a visszajelzés futtatható.
Beállítás echo_style arra az értékre, a TC-shell okoz echo viselkedjen így.
Állítson csinálja, de meg csak kap shell változókat.
Ez nem találja EDITOR, ami nem a shell változót.
Semmi.
Tehát ez az egyik módja megkülönböztetni őket.
De az a tény, hogy van, hogy menjen át valami furcsa parancsot, így
különbséget tenni a shell változók vagy környezeti változók
mutatja az a fajta praktikus jellege a C-shell bizonyos célokra.
És most, az utolsó és talán legkevésbé, ez a man oldalakat.
Azok, akik Ön is tudja, az ember a parancs rövid kézi.
A férfi oldalakat a héj nehezen olvasható. Ők nagyon hosszú.
Ők szerveztek úgy, hogy megnehezítheti, hogy megtalálja, amit keres.
Tehát, ha keres valamit a céllal,
lehet, hogy nem tudom, hogy célja a shell változó, vagy valami más,
így lehet, hogy nem tudja, hol keresse azt.
Lehet keresni a különböző szálakat, de a húrok gyakran ismételni.
Így ez általában nehezen olvasható.
Csak nézte a TC-shell man oldalt egy kicsit, mielőtt, hogy megtalálják a eval parancs.
Vannak dolgok gyorsabban.
Az egyik megközelítés, hogy keressen egy húr.
Használhatja a pager.
Pager megvan a perjel, hogy keressen egy parancs vagy egy karakterlánc belsejében a pager működését.
Az ember alapból használ személyhívó, vagy többé-kevésbé.
Nem tudom, ha ismeri ezeket, de azok mutatni a fájlokat apránként.
Már kevesebb megjeleníteni ezeket bizonyos fájlok megvan itt.
Kereshet odabent.
Meg lehet próbálni a különböző keresési karakterláncokat.
Szintén man oldalakat a különböző operációs rendszerek lehet, hogy nem ugyanaz.
Lehetnek külön oldalakon csh és tcsh.
Ők nem a Mac, de lehet, ha azok külön parancsokat.
Ha sh nem igazán hívja Bash, akkor valószínűleg lesz egy külön man oldalt.
Egyes rendszerek külön man oldalakat csak a C-shell beépített parancsa.
Néha, ha azt szeretné, hogy olvassa el a leírást egy beépített parancs
ez is az utat, mint a visszhang, el kell olvasni a man oldalt ezen a paranccsal echo
hogy meghatározzák, hogyan fog működni, mint egy beépített parancs
akkor is, ha nem hívja a beépített parancs.
Ez egy hátránya az operációs rendszer általában nem csak a kagyló,
bár a kagyló, különösen az ember oldalak elég hosszú,
részben azért, mert már hozzá hasznos funkciók számukra, amely lehet pozitív.
Oké. Van kérdése? Minden téma szeretne felnevelni?
Bármi releváns?
Nos, ez már nagyon kedves hozzád beszél minden.
Remélem van valami ebből a szeminárium
, amely hasznos lesz az Ön számára a jövőbeni törekvéseit.
[CS50.TV]