>> [Seminaari - Unix kuoret, ympäristöt]
[Douglas Kline - Harvardin yliopisto]
[Tämä on CS50. - CS50.TV]
>> Päivän aihe on Unix shell.
Olen Douglas Kline, asiantuntija, tai ainakin kohtuudella toimivaltaisten käyttäjä, kuoren.
Kuori on käyttöliittymä käyttäjän tietokoneen käyttöjärjestelmä.
Nimi on harhaanjohtava, koska päinvastoin kuin eläimen kuori,
joka on kova ja suojaava, tietokoneen kuori mahdollistaa viestinnän.
Niin huokoinen kalvo olisi luultavasti parempi metafora.
>> Alkuperäinen kuori Unix on Bourne-tulkin.
Bourne on kirjoitettu B-O-U-R-N-E.
Bourne oli yksi alkuperäisistä kirjoittajista Unix,
ja niin kuori on nimetty hänen mukaansa.
Nimi että ammus komento on vain yksinkertaisesti sh.
Se komennolla voit suorittaa.
Kuori alkaa login.
Kun kirjaudut sisään tietokoneeseen, kuori vain käynnistyy sinulle,
ja sitähän vie komentoja.
Se voi alkaa muina aikoina myös.
Jos tuo esiin ikkunan kanssa ole mitään muuta merkintää, se alkaa kuori sinulle.
Niin se on, että voit mennä ikkunan ja kirjoittamalla komentoja
ja niin edelleen siellä, vaikka et ole kirjautunut sisään tuosta ikkunasta.
Lisäksi, jos et etäkirjautumisen
sitten se alkaa kuori etätietokoneessa.
Ja se on mahdollista suorittaa komentoja ilman interaktiivisessa.
Tämä voi tarkoittaa omassa nykyinen toiminta,
ja se voi tarkoittaa myös kauko-ohjauksella.
Voisit lähettää komennon toiseen tietokoneeseen,
joka sisältää käynnistymässä komentotulkki.
Itse asiassa se on sisällytettävä käynnistymässä komentotulkki
vaikka se ei ole lopullinen tarkoitus.
Kun jotain käynnistyy näin, se ei välttämättä aloita uusi kuori.
Jos tuo uuden ikkunan, on mahdollista kertoa sen esiin editori
tai jokin muu käsky.
Tällöin editori aloittaa tyhjästä.
Kun editori päättyy, ikkuna päättyy.
Tämä on hieman epätavallista, mutta se voidaan tehdä.
Näissä tapauksissa se ei ole kuori.
Joten se ei ole välttämättä niin, että ikkuna tai jokin sellainen sovellus tuo esiin kuori.
>> Shell jäsentää komentoja.
Jäsentämiseen tarkoittaa myös eri elementtejä ja luokittelemalla ne.
Sisällä komento, täydellinen merkkijono, joka kirjoitat,
siellä on 1 tai enemmän yhden komennon.
Muita tekijöitä voivat olla argumentteja.
Ei voi olla myös erikoismerkkejä, jotka vaikuttavat täytäntöönpanon komennon.
He voivat lähettää tuotoksen muualla kuin näytön
jos komento olisi tavanomaisesti lähettää sen näytön.
Se voi ohjata input, se voi tehdä muita asioita myös.
On olemassa monia muita symboleja, merkkejä, ja niin edelleen.
Jäsentämiseen liittyy havaita ja tulkita niitä asioita.
>> Nyt jos ei ole enempää kysymyksiä, mikä on melko todennäköistä, sillä ei ole olemassa enemmän ihmisiä,
jatkamme minun seuraava sivu täällä.
>> Sanoin aiemmin, että Bourne kuori on alkuperäisen kuori.
On toisia.
Yksi on C-kuori. Komento on csh.
Nimi C-kuori on vain sanaleikki.
Tämä kuori otettiin käyttöön Berkeley Unix 1970-luvun puolivälissä.
Berkeley Unix oli uraauurtava tapahtuma kehittämiseen Unix.
Se oli valtava vallankumous ja sisältyi käyttöön tämän kuori.
Syynä tähän sanaleikki, C-kuori,
on, että C-kuori on joitakin ominaisuuksia se, joka muistuttaa C-kieltä,
joka Bourne shell ei ole -
tai sillä ei ollut tuolloin.
Mukana on myös TC-kuori.
Tämä on pääjoukko C-kuori.
Se on lisäominaisuuksia, joista monet ovat hyödyllisiä interaktiiviseen käyttöön,
kuten muistuttaa komentojen historiatoiminnon
joissa pääsen kuvailla hieman myöhemmin -
yksinkertaisella tavalla, mallinnettu editori.
Se on myös siteet, joiden avulla voit sitoa lyhyt avain merkkijono enää komentoa.
Emme aio olla joutumassa että tänään.
Se on joitakin ominaisuuksia, jotka ovat hyödyllisiä ohjelmointia.
Kuitenkin C-runko ei ole usein käytetty shell ohjelmointia.
Kuori ohjelmia, jos et jo tiedä,
ovat ohjelmia, jotka koostuvat kuori ominaisuuksia.
Voisit ajaa näitä ohjelmia.
Kirjoitat joukko kuorikomentoja tiedostoon ja suorittaa tiedoston.
Sinun ei tarvitse kääntää sen. Tämä on tulkitseva kieli.
Lause C-kuori on nyt epäselvä, koska se saattaa viitata vain alkuperäistä C-kuori, csh,
tai kaikille C-kuoret, mukaan lukien tcsh. Se on vähän epäselvä.
>> Myöhemmin kuori on Korn shell, ksh, nimetty ohjelmoija, Korn.
Tämä kuori yrittänyt sisällyttää 1 kuori
edut C-kuori interaktiiviseen käyttöön
ja Bourne shell ohjelmointia.
Sitä on käytetty interaktiivisessa joidenkin ihmisten - vähemmistön.
Myöhemmin kuitenkin oli toinen käyttöönotto, Bash kuori, BASH,
jälleen sanaleikki, Bourne-Again Shell.
Se on laajennus Bourne shell. Korn Shell on myös. Molemmat ovat.
Se on sama tavoitteiden Korn shell yhdistämismahdollisuutta C-komentotulkin
ja Bourne Shellin etuja 1. kuori.
Monet parannukset Korn shell sisältyvät myös Bash.
Bash on kuitenkin enemmän, ja on sen vuoksi edullinen.
Bourne-Again Shell ja Korn Shell kutsutaan Bourne-tyyppinen kuoret
koska ne sisältävät Bourne shell ominaisuuksien,
jotka ovat ristiriidassa joissakin suhteissa C-kuoret.
On muitakin kuoret lisäksi niitä, jotkut on tarkoitettu rajoitettuun käyttöön,
ehkä vain joitakin komentoja, ehkä erikoistunut tarkoituksiin, ei käytetä usein.
>> Okei. Esityslistalla täällä.
Bash shell on tullut liittyy erilaisia ​​Linux.
En ole varma, jos se on totta jokaisen lomakkeen.
On olemassa monia muotoja siellä ja en ole käyttänyt niitä kaikkia,
mutta ne, jotka olen käyttänyt sitä on tullut liittyy siihen.
Sikäli kuin tiedän, ei ole mitään Bash
mikä tekee siitä enää yhteensopiva Linux
kuin mikään muu yhdistelmä kuori ja käyttöjärjestelmä.
Mielestäni tämä luultavasti vain kuvastaa taipumuksia ohjelmoijia.
Että se on tullut liittyy Linux on toinen syy mieluummin Bash ja ksh
koska asiat ovat todennäköisesti kirjoitettu siitä ja se on todennäköisesti levinnyt.
Annan sinulle muita syitä, jotka myöhemmin.
Bourne shell-skriptit pitäisi kulkea Korn shell tai Bash.
Jos kirjoitat jotain Bourne shell,
voit todennäköisesti suorittaa sille ksh tai bash.
Korn komentoriviskriptejä todennäköisesti kulkea Bash, mutta en voi taata sitä.
Myöhemmin täällä, C-shell-skriptit pitäisi kulkea TC-kuori.
C-kuori on oikeastaan ​​koskaan laajasti käytetty scripting
koska Bourne kuori ja myöhemmin Bourne-tyyppinen kuoret olivat parempi tähän tarkoitukseen.
Niin, että ei todellakaan ole niin tärkeää.
Täällä on melko paljon Bourne shell skriptejä, jotka oli kirjoitettu jo kauan sitten,
ennen Korn kuori tai Bourne-Again Shell otettiin käyttöön.
Ne ovat edelleen käytössä, osa käyttöjärjestelmien,
ja niin löydät ne, jos tarkastellaan käyttöjärjestelmään
tai vanhoja ohjelma-paketteja.
>> Bash on jossain määrin tulossa eräänlainen lingua franca käyttöjärjestelmille.
Se on jo laajennettu Windows ja VMS.
VMS, jos et tiedä, on oma käyttöjärjestelmä
Digital Equipment Corporation, joka on edelleen käytössä, pitkälti kulissien takana.
Ja jos se tulee olla käytössä useita eri käyttöjärjestelmiä,
todennäköisesti ihmiset yleensä siirtää sitä.
Mutta tämä kehitys on suhteellisen uutta.
Se on vasta alussa, joten en voi ennustaa, jos tämä osoittautuu todella olla sellainen lingua franca.
Lisäksi, koska tiedosto polkunimissä ja kirjastot eroavat
näiden eri käyttöjärjestelmiä,
et ehkä voi kirjoittaa Bash script yksi käyttöjärjestelmä
ja suorita se sitten toinen.
Sinun pitäisi pystyä siirtää sen eri Unix, Linux
Mac OS käyttöjärjestelmissä, mutta ei välttämättä Windowsin tai VMS.
Saatat joutua muuttamaan tiedostopolku kuvaus,
ja jotkut kirjastot voivat olla erilaisia,
jotka voivat vaikuttaa siten, että jotkut komennot toimivat
tai miten ne käsittelevät väitteet ja vastaavat.
Sen lisäksi, että toinen varovaisuus tässä on, että ei ole mitään takeita
että kaikki eri kuoret olen maininnut - Bourne shell, C-kuori,
TC-kuori, Korn shell, Bourne-Again Shell - on saatavilla missään Unix
tai Linux-tai Mac OS-tietokoneen.
He eivät yksinkertaisesti voi olla siellä.
Se on yksi varoituksia täällä.
Se on valitettava rajoitus tässä, koska haluat asiat toimimaan kaikkialla,
mutta valitettavasti et voi vedota tähän.
>> Okei. Seuraava kukaan täällä.
Oletetaan, että haluat kirjoittaa shell script,
ohjelma koostuu shell-komentoja.
Kirjoitat komentoja, laita ne tiedostoon ja suorittaa tiedoston.
Mitä jos haluat sisällyttää argumentteja?
Kun kyseessä on kuoren toiminnan argumentteja kutsutaan parametrit tai positioparametrit
ja he koolle dollarin merkki ja numero, $ 1, 2 dollaria.
Joten jos käsikirjoitus on tämä nimi, minun ensimmäinen argumentti saattaisi olla argumentti 1
ja toinen voisi olla argumentti 2,
ja sisällä minun käsikirjoituksen jos haluan viitata näitä asioita -
Katsotaanpa poistaa tätä, koska en todellakaan aio käyttää sitä -
sisällä minun kirjoitus olisin voinut 1dollari viitata arg1,
2 dollaria, joka tulee ulos tällä tavalla, arg2.
Joten ne symbolit ovat käytettävissä viitata väitteiden
ja niitä koskevat kaikkia kuoret.
Lisäksi on olemassa muita merkkejä.
$ * Viittaa koko parametrilistaus, ne kaikki.
$ # Viittaa argumenttien määrä.
Jälleen tämä koskee kaikkia kuoret.
Symbolien, * ja #, voidaan käyttää näissä merkityksissä muissa paikoissa myös.
Me ei saada tuohon.
>> Shell specifier linja. Mitä varten?
Sanotaan olet kirjoittanut käsikirjoituksen ja se on tietyn kuori ja haluat käyttää sitä.
Mistä tiedät mitä kuori käyttöjärjestelmä käyttää ajaa kirjoitus?
Jossain vaiheessa voisi olettaa, että se kulkisi sitä Bourne shell
jos ei sanonut toisin,
mutta ihmiset eivät kirjallisesti skriptit Bourne shell että paljon enää
ja et voi edes vedota tähän enää.
Joten tässä meillä on kuori specifier rivi tästä.
Joka määrittää Bash.
Huomaa, että se määrittelee sen polun, / bin / bash.
Jos tietokoneessa on Bash shell mutta ei bin hakemistoon, / bin, tämä ei toimi.
Se on toinen karsinta, toinen varovaisuutta täällä.
Ruutumerkillä on kommenttirivi luonnetta.
Tämä koskee kaikkia kuoret.
Erityisesti tässä tapauksessa, #! alussa käsikirjoituksen, on erikoistapaus.
Joka määrittää kuori, jossa komentosarjan.
Kuten sanoin, se ei ehkä ole samassa paikassa / bin.
Lisäksi on olemassa toinen juttu täällä.
Jos käytät vain ruutumerkillä ilman huutomerkki ja polun,
että olisi ilmoitettava C-kuori.
Kuitenkin, en suosittele tee sitä, koska en pysty takaamaan
että toimii aina.
Jos haluat C-shell, olisi parempi sanoa niin.
Sitten on jotain melko sekava täällä.
Jos käytät kuori specifier linja, kuten / bin / bash
ja että Shell ei ole käytettävissä siellä,
Ei ole sellaista asiaa kuin / bin / bash tiettyyn tietokoneeseen,
koska se ei ole Bash tai koska se on eri paikassa,
saat virhe kertoo, että skripti juoksi ei ole olemassa.
Ja tietenkin oman käsikirjoituksen on olemassa, niin että virheilmoitus on sekava.
Syystä, että käyttöjärjestelmä antaa sinulle, että virhe
tai tarkemmin, että interaktiivisessa jossa käytät tämä antaa, että virhe,
on, että se antaa komennon käytit, mikä on nimi käsikirjoituksen.
Komennon tehokkaasti nimeltään kuori nimellä käsikirjoituksen.
Siellä saat että sekava virheilmoituksen.
Toinen tapa soittaa shell script
on määrittämällä kuori komentoriviltä, ​​kuin täällä.
Tämä on komento. Tämä kertoo ajaa Bash ja suorita minun script Bash.
Se on etusija tarkenne linja,
ja tämä on ominaisuus, jonka avulla voit saada aikaan vaihtelevia polkunimissä.
Jos vain antaa käskyn, käyttöjärjestelmä etsii komennon
eri paikoissa.
Jos se on käytettävissä, se on löytää se.
Tietokone löytää Bash missä se sijaitsee ja käyttää sitä,
joten sinun ei tarvitse sitten olla huolissaan, jos se löytää sen.
On mahdollisesti muita huolenaiheita täällä,
sillä jos niitä on enemmän kuin 1 versio Bash, mikä on mahdollista, vaikka epätodennäköistä.
Niin se on toinen tapa käsitellä näitä asioita.
Materiaalia linjat voivat soittaa kaikki kuoren.
He voivat myös soittaa asioita kuin kuoret.
Esimerkkejä Minulla on täällä sed, joka on stream editor;
awk, joka on malli käsittelyä kieli;
ja Perl, erittäin hyvin kehittynyt skriptikieli.
Jos laitat specifier viiva, joka osoittaa yksi niistä ohjelmien alussa,
se menee suoraan tuohon ohjelmaan eikä lähteä kuori.
Kyseiset ohjelmat ovat rajat kykyjään.
Perl on erittäin pätevä. Sed on editori. Se voi tehdä asioita kuin vain muokkaamalla.
Mutta se voi olla vaikea ohjelmoida että.
Lisäksi kulkee argumentteja ja juttuja käsikirjoitus on joko mahdotonta tai sekava.
Joten niissä tapauksissa, joissa awk tai sed, se on ainakin minun kokemukseni,
parempi kirjoittaa shell script ja puhelun awk tai sed päässä komentotulkkiskripti
sijaan soittamalla awk tai sed kuin käsikirjoituksen määrittelyksi linja.
Perl on erittäin monipuolinen kieli, kuten sanoin.
Et voi ajaa vuorovaikutteisia komentoja perl,
mikä tarkoittaa, että et voi testata osia skriptejä, olet kehittämässä
ajamalla niitä vuorovaikutteisesti.
Kuitenkin se on erittäin kykenevä kieli
ja on kehittynyt hyvin laajalti käytetty työkalu.
Se on vain hieman sulkeissa huomautuksen määrittelyksi linjat.
>> Kaikissa tai lähes kaiken Linux - taas, en voi olla varma, että kaikki -
ja Mac OS Jos kirjoitat csh saat tcsh,
ja jos kirjoitat sh saat bash.
He yrittivät siellä antaa sinulle kehittyneempiä versioita näistä kuoret,
mutta tämä voi olla hämmentävää.
Jos kirjoitat käsikirjoituksen avulla tcsh tai Bash tarjolla, mutta peräänkuuluttivat csh tai sh
ja yritä sitten suorittaa sen tietokoneeseen, jossa ei ole tcsh tai Bash,
saatat saada joitakin virheitä, jos on komennot siellä
joihin nämä kuoret eivät tunnista.
Lisäksi, olet ehkä kutsuttu shellin paikalliselle tietokoneelle
jossa se sh tai csh ja sitten saada kehittyneempiä kuoret.
Et voi edes ajatella, että käytät kehittyneempiä kuori.
Joten tämä on potentiaalinen sudenkuoppa.
Miten on osoitettu, että jos kirjoitat sh saat Bash,
Jos kirjoitat csh saat tsch?
On asioita näissä tietokoneissa nimellä linkit
joka voidaan liittää tiedostoon nimet viittaavat sama asia.
Se voi olla joko 2 nimiä samalle tai tiedoston, jonka tarkoituksena on viitata toiseen tiedostoon.
Niitä kutsutaan kovaa ja symbolisia linkkejä. Emme menossa tuohon enää tänään.
Saattaa olla myös erillisiä tiedostoja - 1 tiedosto sh, 1 tiedosto Bash -
mutta molemmat ajaa Bash.
Sitten on toinen karsinta täällä.
Jos soitat johonkin näistä kuoret yhdellä nimellä,
luulisi saat luultavasti samat toiminnot kuin kutsuen sitä toisella nimellä.
No, se ei itse asiassa ole välttämättä totta.
Nämä komennot voi tutkia nimi, jolla heidät kutsuttiin
ja ne voivat sen perusteella, että nimi, käyttäytyvät eri tavalla.
Ei voi olla kysymyksiä yrittää noudattaa standardia.
Jotkut teistä ovat ehkä kuulleet POSIX-standardin tai toisella,
ehkä muita ominaisuuksia.
Tämä voidaan valita joskus komentoriviargumentteja
tai asettamalla Kuoren muuttujia.
Soittaminen se sh tai bash voi todella johtaa eri toteutus
vaikka se on sama tiedosto, jonka olet täytäntöönpanosta.
Toinen asia harkita, että vaikka toiseen tietokoneeseen on tcsh tai Bash,
jos ne eivät liity, koska ne ovat paikalliselle tietokoneelle
jos sinulla on Linux-tai Mac OS-koneelle,
sitten taas saat kuori, joka soitat sh tai csh, ei yksi että saatat mieluummin.
Nykyisen Bourne shell on parannuksia vähemmän kuin Bash
mutta ohi kuin alkuperäisessä Bourne shell.
Tämän seurauksena on, että vaikka nykyinen Bourne kuori, sh,
vaikka se ei ole Bash, muistuttaa C-kieltä enemmän kuin C-kuori tekee.
Se ei ollut totta, kun C-kuori oli ensin luotu, mutta se on kehittynyt niin.
Saatat huomata tässä, että kaikki nämä kuori nimet paitsi Bourne shell
on jotain mitkä kuori ne ovat - csh, bash -
mutta Bourne kuori on vain sh.
Miksi? Se oli alkuperäinen kuori.
Se oli kuori sitten, ei kuori,
ja koska se oli kuori, ei ollut mitään syytä erottaa sen toisesta kuori.
Joten siksi se on, että nimi ja tekee edelleen.
>> Tämä top tässä linjan salasanan tietokannasta tili Minulla on siellä
toisessa tietokoneessa.
Aion yrittää saada, että nimen, jotta voit nähdä, että osa lopussa, kuori.
Tunnussanatietokantaa pitää login ominaisuudet kaikille käyttäjille.
Alussa on käyttäjätunnus, jossa voit nähdä viimeisen 2 kirjainta minun nyt.
Pellot erotetaan kaksoispisteellä.
Viimeinen kenttä, kuten näette, on bin / tcsh, kuori.
Se kuori määrittelyksi.
Siellä on jotain mielenkiintoista täällä.
Kun Unix oli ensimmäinen kehitetty, oli vain 1 kuori,
joten ei ollut valinnanvaraa siellä.
Joten miksi he sallivat kentän salasanan tietokantaan määrittää kuori?
En tiedä, mutta se on onni, että he tekivät.
Se on melko vaikea tehdä muutoksia salasana tietokannan muodossa
koska monet ohjelmat viitata sen muoto
ja se täytyy kirjoittaa uudelleen.
Se on osuva tai satunnaiset kehitystä, että ne sisältyvät tällä alalla.
Tällainen salasana tiedosto linja on käytössä kaikilla Unix-ja Linux-tietokoneet sikäli kuin tiedän.
Mac on oma järjestelmänsä.
Se on itse asiassa salasanan tiedoston rivit tässä muodossa,
mutta se ei ole, jos käyttäjä ominaisuudet on määritelty.
Toinen sulkulausekkeesta huomautuksen siellä.
>> Jos soitat kuori, voit kutsua sitä osa-kuori nykyisen kuoret.
Joten jos menen tänne, nyt päästä eroon näistä asioista.
Täällä olen C-kuori.
Muuttuja, joka tarkasti tunnistaa minun kuori,
oikeastaan ​​ei ole aina luotettava tapa määritellä, mitä kuori käytät,
mutta tässä tapauksessa se on.
Mitä jos en kirjoita -
Nyt olen Bash.
Jotkut asiat tulevat olemaan sama. ls kertoo minulle minun komentoja.
Jos en keskeyttää takaisin minun C-kuori, ls, sama. Oikea?
FG, etualalla, takaisin minun Bash shell.
pwd, nykyisen hakemiston, takaisin C-kuori.
pwd, eri hakemistoon - oikeastaan ​​ole eri hakemiston tässä tapauksessa.
Se on samassa hakemistossa.
Sanotaan Haluan soittaa komento tässä: missä ls.
Mitä se tekee?
Se kertoo minulle, missä ls komento,
joka antaa minulle hakemistolistauksessa, sijaitsee ls.
Mennään takaisin Bash shell. Kokeillaan sama asia.
Hmm, mielenkiintoista siellä, missä: komento ei löytynyt.
Miksi näin?
Jossa komento on rakennettu sisään C-kuori.
Tämä ei ole komento, joka on luettava muistiin jostain muualta ja teloitettiin.
C-shell ajetaan se siirtämällä suorituksen osaksi omaa koodia
ja se ei ole Bash shell.
Joten Bash, joilla ei ole tällaista sisäänrakennettu komento, näyttää se ei löydä sitä,
ja saamme virhe.
Joten ei meillä Bash shell running C-kuori, ja kutsumme että sub-kuori.
Ja mikäli olet kiinnostunut, Bash shell on oma tapa sijoittaa komentoja.
hajakoodatun viittaa siihen, että se voidaan toteuttaa nopeammin,
löydetään nopeammin.
Se on yksi parannuksia rakennettu joihinkin näistä kuoret.
>> Bourne-tyyppinen kuoret ovat edullisia ohjelmointiin.
He ovat valvonnan rakenteita kuten silmukoita, ehtolauseet,
eräänlainen komennot, joita voisi käyttää ohjelmointikieliä kuten C
tai mitä tahansa kieltä. Ehkä olet Java-ohjelmointi tai mitä tahansa.
Kuoret ovat nekin.
Bourne-tyyppinen kuoret, erityisesti Bash, on enemmän
ja ne on suunniteltu enemmän joustavuutta.
Bash shell on taulukot. Alkuperäinen Bourne shell ei.
Niin, että voi olla huomattavasti edullista ohjelmointia.
C-shell itse ei ole taulukoita, mutta ei ole paljon näitä muita ominaisuuksia.
Bourne-tyyppinen kuoret tulee suorittaa nopeammin
jos heillä ei ole ominaisuuksia, jotka on tarkoitettu interaktiiviseen käyttöön.
Lataat asioita alas yksi tarkoitus, tämä lataa ne alas toiseen tarkoitukseen.
Siinä on se kompromissi siellä.
Ne ominaisuudet, jotka on tarkoitettu interaktiiviseen käyttöön
todella vähän tai ei lainkaan käyttöä scripting.
On mahdollista käyttää interaktiivista ala-kuori aivan kuten yksi aloitin siellä
kokeilla komentoja, jotka aiot käyttää script.
Se mitä et voi tehdä Perl. Voit tehdä sen kuoret.
Jopa rakenteita kuten silmukoita ja niin edelleen voidaan suorittaa vuorovaikutteisesti.
Ne ovat joskus hyödyllisiä ajaa vuorovaikutteisesti,
mutta todennäköisemmin käytät niitä kehittämään script.
>> Aliakset.
Tämä tulee olemaan noin C-kuori.
Historia mekanismi, jossa saat takaisin aikaisemmin komentoja
tai niiden osia, jotka olet jo suorittanut.
Jälleen noin C-kuori, Bourne Shell ja Korn Shell on näitä asioita,
mutta en aio päästä niihin.
Joten tässä on muutamia hyödyllisiä aliaksia, että minulla on.
Kirjoittamisen sijaan ls - se on yleinen komento -
kirjoita l ja säästää 1 merkki.
ls eri vaihtoehtoja, kaikki nämä työt.
Huomaa, että nämä määritelmät ovat lainauksia heidän ympärillään.
Näissä tapauksissa lainaukset eivät ole tarpeen.
Jos voit määritellä niitä aliaksia ilman lainausmerkkejä, se olisi silti toimia.
Niitä suositellaan.
On tilanteita, joissa et voi käyttää lainaus
koska haluat jotain tapahtuu joka lainaus estäisi.
Joskus voit lainata osa määritelmää, mutta kaikki eivät sitä.
On myös yleisesti suositeltavaa käyttää puolilainausmerkkejä sijaan lainausmerkkeihin.
Lainausmerkit olla vaikutuksia variable,
erityisesti jolloin ne arvioidaan sen sijaan pysäyttää se.
Miksi haluamme lopettaa arviointiin?
Ja miten lainauksia tehdä meille?
>> Tässä on komento, joka saatat löytää mielenkiintoisia.
"Ls g * '
g *, kuten varmasti tiedätte, on asteriskia ilme
kaikkien tiedostojen nimet alkavat g.
Jos minä vain kirjoitan komennon ls g *, saan luettelo kaikista niistä nimistä minun hakemistossa.
Jos minä määritellä, että alias koska se on täällä lainauksia,
se ajaa komennon nykyisessä hakemistossa, jossa käytät sitä.
Mutta jos suoritat alias määritelmä ilman lainausmerkkejä,
se arvioi asteriskia g *, kun se suoritetaan tänä merkittävänä komentoa.
Joten määritelmä alias tulee ls seuraa luettelo tiedostot hakemistoon
jossa alias komento suoritetaan,
riippumatta siitä, missä olet itse aikoo suorittaa komennon.
Tämä ei ole paljon käyttöä, ja puolilainausmerkkejä estää arvioinnin tähdellä.
Joten juuri saada määriteltävää ls g *.
Sitten kun suoritat alias, LGS, se sitten tuo, että ulos.
Nyt ei ole lainausmerkkejä, ja se arvioi tähti kun suoritat alias komento.
Joten se on yksi asia.
Lainausmerkkeihin olisi, että sama vaikutus täällä,
mutta muitakin tapauksia, joissa lainausmerkit eivät toimi niin hyvin.
>> Tässä on toinen.
Saatat tietää grep-komentoa.
Grep-komentoa voidaan käyttää skannata tiedoston radat, joilla on tiettyjä merkkijonoja.
Joten mennään tänne ja minä poistua minun Bourne shell.
Okei. Tässä tiedosto.
Sanotaan se grep abc jousille. Siinä se on.
Jos teen grep zddd, en saa mitään. Okei.
Joten se toteaa merkkijono, se ilmoittaa, se ei löydä, se ei ilmoita siitä.
Se tuottaa mitään linjaa, joka on, että merkkijono sitä.
On kaikenlaisia ​​vaihtoehtoja täällä joka löytyy asiakirjoissa.
Tässä yksi tapa tehdä se.
Entä tämä, alias grabc "grep abc '?
Se menee sisällyttää 1 argumentti alias on määritelty.
Joten jos teen sen täällä, nyt jos teen grabc,
nyt alias sisältää yli yksinkertaisen komennon. Se on myös argumentti.
Niin pitkälle, että toimii.
Minulla on toinen komento täällä, tämä, joten ne ovat erilaisia ​​jousille siellä
ja osoittavat, että tämä ei löydä sieltä mitään, koska se ei vastaa.
>> Mitä jos haluan sisällyttää alias määritelmä tiedosto, aion etsiä
ja haluan antaa argumenttina alias merkkijonon Etsin?
Voisin sanoa abc argumenttina minun alias,
mutta alias jo määritetty tiedosto.
Ja se jos tämä ilmaus tulee sisään
Ilmoitus tästä on grep aivan kuten ennenkin.
Meillä on tiedosto täällä, jousille.
\! ^, Eräänlainen outo ilmaus, oletan, jos et ole nähnyt tämän ennenkin.
Huutomerkki on osa C-shell historiaa mekanismi.
Se voi muistaa aiemmin komentoja, se voi muistaa perusteluihin kuin komentoja ja niin edelleen.
Historia mekanismia käytetään osana aliasing.
Jos määrität rivin jälkeen huutomerkki, se viittaa, että linja historialuettelo
jota ei päästä nyt, koska se on aivan toinen aihe.
On mahdollista määritellä osa linja.
Niin! 03:02 olisi toinen argumentti komennon numero 3.
Caret täällä tämä ilmaus tarkoittaa ensimmäinen argumentti.
Jos et anna sille viitteitä mikä komento olet viittaavat,
se viittaa välittömästi edellisen komennon,
ja caret on symboli ensimmäinen argumentti.
Koska se on sirkumfleksin eikä numeron, sinun ei tarvitse käyttää paksusuoli,
niin! ^ tarkoittaa ensimmäistä argumentti edellisen komennon.
Hieman sekaisin täällä.
Tässä tapauksessa, kun käytät tätä alias määritelmä,
historia viittaus viitataan komentoja jossa alias käytetään.
Joten tämä on menossa takaisin 1 komennon historia toimintaa,
mutta alias toimintaa se viittaa komennon, jossa kirjoitetaan,
sanovat, grstrings_file.
Meillä on lainauksia täällä sitä. Mikä on kenoviiva varten?
Tässä tapauksessa, kuten muuallakin, emme halua suorittaa historiatoiminto
samalla kun määritellään alias.
Jos meillä ei ole kenoviiva siellä, kuori vetäisi ensimmäisen argumentin
komennon juuri ennen kuin se juoksi tämän alias komento, jota me emme halua.
Haluamme, että tämä rakennetaan alias komento soittaa väitteen myöhemmin.
Puolilainausmerkkejä eivät välty huutomerkki, historia viite.
Ehkä tiedät ilmaisun paeta tarkoittaa muuttaisi jotain.
Tässä tapauksessa se tarkoittaa lopettaa jotain, joilla on erityinen merkitys.
Huutomerkki n erityinen merkitys on historiaa.
Paeta ja se ei ole, että merkitystä.
Lainaukset eivät tee niin, kenoviiva tekee.
Joten me todellisuudessa käyttävät 2 tasoa paeta täältä.
Aion siirtää tämän käskyn toisessa ikkunassa kirjoittamatta sitä
käyttämällä näitä editointitoimintoja, joka saattaa olla hyödyllinen.
Jotain muuta tässä minä näytän sinulle.
Jos et kirjoita alias ilman argumentteja, se kertoo kaikki argumentit.
Tämä on nippu muunnokset minulla oli jo täällä
paitsi ne, jotka olen käyttänyt täällä tänään.
Mutta jos minä kirjoita nimen kanssa alias, se kertoo minulle, mitä se tarkoittaa.
Huomaa, että lainausmerkit ovat poissa ja kenoviiva on mennyt.
Tämä merkkijono tässä on tulos, joka alias määritelmä,
ja nyt se on vain! ^ siinä.
Tämä on menossa katsomaan tiedoston jousille mitään.
Joten jos en grstrings_file jouset, en anna sitä mitään etsiä siellä,
mutta se etsii jousille.
Se ei löytänyt sanajonoista tiedoston jouset, mutta se ei löydä abc.
Ja se ei löydä sitä.
Joten tässä me annamme argumentti, joka osuu osaksi määritelmää alias,
, joka työnnetään siihen.
Siellä tämä ilmaus on peräisin.
Voit käyttää yli 1.
Caret on symboli ensimmäinen argumentti.
Jos halusi käyttää toisen väitteen, voisitte sitten sanoa: 2.
Ei ole erityistä symboli toinen argumentti.
Ja koska käytät numero, sinun pitäisi käyttää paksusuolen.
On kuitenkin toinen vaihtoehto tässä.
Dollarin merkki tarkoittaa viimeinen argumentti.
Ja koska tämä on symboli, voit jättää paksusuolen.
Joten se olisi viimeinen argumentti luettelossa.
Ja siellä on myös, että yksi.
Tähdellä tarkoittaa kaikkia, joten tämä on täydellinen argumenttiluettelon,
ja uudelleen, voit jättää paksusuolen koska se ei ole numero.
Toivottavasti olet kaiken tarkkailemalla kaiken tämän.
>> Historia mekanismi voi palata aiemmin rivit historialuettelon.
Voisit tehdä tämän alias määritelmä.
En ole koskaan nähnyt tätä tehnyt.
Se johtaisi siihen, vetämällä ulos aiemmin komentoja muistiluettelosta
Kun suoritat alias, joka voi olla eri komentoja
riippuen siitä, milloin ja missä suorittaa sen.
Ymmärrettävästi kannattaa vetäytyä tällainen viittaus
vain tietää, mitä aikaisemmin komento oli.
En ole koskaan nähnyt tämän tapahtua.
Oletan joku saattaa haluta, mutta tämä on hyvin epätodennäköistä.
On toinenkin asia täällä.
Jos käytät, että historia-tyyppinen viittaus,
sitten vain väitteitä, joihin on olemassa sellainen viittaus on käytetty.
Jos sinulla on alias määritelmä, joka ei käytä historia-tyyppinen viittaus,
jos se tulee vain alussa komennon
ja sinulla on lisäperusteluja, niin mitä kirjoitat jälkeen
lisätään komennon.
Tällöin esimerkiksi Annoin juuri siellä, käytimme ensimmäinen argumentti;
emme käytä mitään muita.
Jos muut väitteet oli annettu komentorivillä, niitä ei käytettäisi.
Joten jos käytät historian viittaus ollenkaan, sinun täytyy käyttää sitä saada mitään väitettä.
>> On toinen asia täällä Haluan vain mainita, osittain parenthetically,
nimittäin, että tämä historia mekanismi huutomerkki
menee takaisin alkuperäiseen C-kuori.
Tcsh käyttöön historia toiminta
jotka käyttävät monenlaisia ​​komentoja ja jousille päässä toimitukselle
joko Emacs tai vi.
Oma henkilökohtainen mielipiteeni on, Emacs on paljon helpompi käyttää tähän tarkoitukseen
vaikka käytät vi oman säännöllisen muokkausta.
On olemassa erilaisia ​​Emacs komennot ovat nyt sovitettu historiaa.
Ohjaus P saa edelliselle riville historialuettelon.
Toinen tarkistus P sinut yksi ennen sitä.
Nuoli ylös ei sama asia.
Ohjaus N saa seuraavan komennon, jos olet jo pyörähtää takaisin jollain tapaa.
Nuoli alaspäin tekee sekin.
Voit liikkua vasemmalta oikealle nuolilla ja monia muita asioita.
Tämä voi hyödyntää historian mekanismin
paljon helpompaa kuin käyttämällä huutomerkki syntaksin,
mutta et käytä, että alias määritelmä.
Me menemme joskus toiste.
>> Muuttujat.
Tiedätkö mitä muuttujat ovat ohjelmointikieliä.
Kuoret ovat myös ne.
C-shell käyttää komentoa asettaa määrittää muuttujia,
siten, että asettaa muuttujan arvoa b -
kuten sanoin, turha määritelmää, mutta esimerkki siitä, miten sitä käytetään.
Set komento luo muuttuvan, jos se ei vielä ole.
Paikkasidonnainen parametrit komentoriviskriptejä voidaan pitää muuttujia,
mutta käyttää niitä ja säännöt niistä ovat hieman erilaiset.
Et voi antaa arvoa $ 1 aikana käsikirjoituksen.
Sinun olisi pitänyt määritellä uusi muuttuja saatavilla, jos jotkut teistä halusivat.
Kirjoita SET ilman argumentteja ja saat listan kaikista tällä hetkellä määritelty muuttujia.
Ja käykäämme yli minun muita kuori täällä ja nähdä, mitä saamme, jos teemme niin.
Melko pitkä lista siellä, eikö?
Selaamalla ylös hieman. Katsokaa kaikki.
Jotkut näistä asioista on määritelty automaattisesti kuori.
Kuori luo muuttujan ja antaa sille arvoa.
Jotkut heistä ovat määritelty kuori, mutta sitten uudelleen käyttäjä
mukaan hänen mieltymyksensä.
Ja jotkut heistä ovat käyttäjän luomia riippuen siitä, mitä hän tekee, että päivä.
Se on vain asetettu ilman argumentteja.
On outoa piirre tässä tämä asia.
Siihen täytyy olla joko välejä yhtäläisyysmerkki ja muuttujan nimi
ja arvo tai tilat molemmin puolin yhtäläisyysmerkin,
kuten tämä.
Tämä ei toimi, ja tämä todella on oikean komennon
mutta se ei tee mitä aiotte.
Että komento toimii, koska jos vain sanoa asettaa ja muuttujan nimi
ilman yhtäsuuruusmerkkiä tai asettaa ja muuttujan nimen yhtäläisyysmerkin ja mitään arvoa,
se asettaa muuttujan nolla.
Joten asettaa = on oikean komennon.
Set-komennon voi määrittää yli 1 muuttuvan samalla linjalla.
Joten tämä komento täällä on vaikutusta määrittelemällä sekä a ja b null arvoja.
Todennäköisesti ei, mitä haluat.
Tämä yksi täällä, aiemmin mainittiin, johtaa virhe
koska = b ei ole kelvollinen lauseke.
Muuttujan nimi ei voi alkaa yhtäläisyysmerkki.
Ja on näitä muita asioita täällä.
Kaksoispistettä käytettiin valita perusteluja Sivuhistoriarivien,
ja niitä voidaan käyttää - ja en mene ennen - muuttaa niitä asioita.
Niitä voidaan käyttää myös muuttaa kuori muuttujia.
Tämä yksi täällä, $, on arvo.
: R vie pois laajennus.
Laajennus tulee kaikkea muuta seuraavat piste,
dot ja mitään seuraavista se lopussa tiedoston,
vasta listan loppuun, kun viimeinen slash.
Joten minulla on se täällä.
on, että. Se pudottaa. O.
Jos ei ole laajennus, vain polkunimiä kun viimeinen slash, sillä ei ole vaikutusta.
: h, että muuttujalauseke, vie pois viimeinen osa-listalla
uudelleen, vasta viime slash.
So / a / b / c tulee / a / b,
mutta tämä on muuttunut, koska elementin jälkeen lista on tyhjä.
Tässä on jotain joka myös haluan korostaa.
Nämä karsinnat eivät etsi olemassaolon näitä tiedostoja.
Ne vain näyttävät jousille.
Tätä on tarkoitus käsitellä tiedostojen nimet, polkunimissä,
mutta niitä voidaan käyttää missä tahansa merkkijono, vaikka se ei ole tiedoston nimi.
Ja he eivät etsi olemassaolon,
joten jos ei ole sellaista tiedostoa, / / ​​b / c, tämä toimii edelleen.
Olipa mitään hyötyä, on toinen kysymys, mutta se toimii silti.
Muuttujat ovat erilaisia ​​Bourne kuoret. Pääsemme siihen myöhemmin.
Dollari merkki voidaan karannut aivan kuten huutomerkki ja tähdellä.
Dollari merkki voidaan kenoviiva tai puolilainausmerkkejä.
Lainausmerkit on outoa vaikutus kaikissa kuoret
pakottaa arvioinnin dollarin merkki muuttujalauseke.
Joten jos se on karannut yksi tapa, lainausmerkit voi olla vaikutusta
aiheuttaa sen, voidaan arvioida tapauksessa.
Tämä on hieman sekava.
Jos on useita tasoja pakenevat, kuten puolilainausmerkkejä sisällä lainausmerkkeihin
tai lainausmerkkeihin sisällä lainausmerkkejä, sinun kannattaa testata, mitä tapahtuu
muuttujaan jos käytät jotakin.
Ne, 2 tilanteissa - kaksinkertainen sisällä yhden, yksi sisällä kaksinkertaisen -
eivät välttämättä anna sinulle saman tuloksen.
Ympäristömuuttujat, sidottu C-shell muuttujia.
Ympäristömuuttujat ovat myös muuttujia C-kuori,
ja ne ovat myös muuttujat muita kuoria liikaa.
C-kuori, ne ovat eri sarjaa.
Asioita sanoin ennen noin Kuoren muuttujia.
Ympäristömuuttujat ovat selkeitä muuttujia
lukuun ottamatta useita muuttujia, jota kutsumme sidottu muuttujia,
jotka ovat erittäin tärkeitä ja me päästä niistä myöhemmin.
Ympäristömuuttujat automaattisesti eteenpäin
to kuoret tai komentoja, jotka ajetaan teidän kuori.
Muut asiat eivät ole. Kuoren muuttujia, alias eivät ole. Ympäristömuuttujat ovat.
Siksi kutsumme heitä ympäristömuuttujat,
Ajatuksena on, että ympäristö ulottuu ohi vain nykyisen kuori.
Niitä voidaan käyttää määrittelemään asioita komentoja.
Tässä on esimerkki. PRINTER, LPDEST.
Molemmat näistä muuttujista voi määritellä tulostin, joka komento käyttää tulostaa asioita.
Jos sinulla on useita tulostimia ympärillä, sinun kannattaa laittaa pidät.
Siksi meidän on 2 muuttujia on, että eri sarjaa komennot kirjoitettu
Käyttämällä näitä erilaisia ​​muuttujia.
Saatat antaa heille erilaisia ​​arvoja.
Todennäköisesti annat heille molemmille sama arvo.
Nuo asiat toimivat, koska komennot, jotka tekevät tulostus
oli ohjelmoitu tutkimaan arvoja näistä muuttujista.
Jos ohjelma ei ole kirjoitettu niin, jos se olisi kirjoitettu tehdä jotain muuta,
muuttuja ei olisi merkitystä.
Joten käyttöjärjestelmä ei ole etsivät näitä muuttujia
aina viitata tulostin.
Komento, joka tekee tulostus etsii näistä muuttujista, jos se on ohjelmoitu niin.
Nämä muuttujat määritellään usein oman alustustiedostoja
mutta ei välttämättä.
Voit määritellä ne komentorivillä.
Ne voidaan määritellä komennon.
Komento, joka kulkee jotain voisi olla oma valinta muuttujia -
muuttujat, jotka ovat ainutlaatuisia tietylle ohjelmistopaketti, esimerkiksi.
Ne määritellään, kun suoritat paketin.
Miten nämä muuttujat välitetään sub-shell?
Kun sub-kuori on kirjoitettu, se ei kirjoita kyseiselle alueelle.
Alueen osa-kuori, joka on omistettu ympäristömuuttujat
ei kirjoittanut sub-kuori, se on kirjoitettu kopioimalla.
Kun suoritat tavallista komennon, kuten nämä komennot tulostaa tai mitä tahansa,
he aloittavat luomalla uusi kuori.
Kuori luo kuori ja sitten korvaa osan siitä
komennolla, että käytät, mikä on hieman sekava,
mutta se miten nämä komennot saat ympäristömuuttujat
että he sitten viitataan myöhemmin.
Komento tässä määrittelyssä muuttujan setenv.
Se miten määritellä se. Se on 3 elementtiä: setenv, muuttuja, arvo.
Jos vain setenv ilman argumentteja, mitä saat?
Luettelo kaikista käytetyistä muuttujista.
Taaskin se on mukavan pitkä lista ja tässä tapauksessa, kuten muut,
nämä muuttujat määritellään pitkälti kirjautuminen toimintaa, itse säiliön
eikä mitään tein.
On toinenkin komennon täällä, printenv.
Että tulostaa myös ympäristöä.
Huomata tämän viimeinen asia täällä, toimittaja = vi.
Joka sanoo, että jos käytän jotain, joka vaatii editori
enkä määritä toimittaja ja se antaa minulle valinta, se voi antaa minulle vi.
Mitä jos en tee printenv editor? Se kertoo minulle, mitä se on.
Juuri ennen että oli vaihteleva, vähemmän.
Nämä ovat oletusarvot vaihtoehtoja, kun olen suorittanut vähemmän komento,
joka näyttää tiedostot.
Joten jos teen sen, printenv voi kestää 1 argumentti tai 0 argumentteja,
enintään 1.
On muitakin komentoja myös, mutta emme aio päästä kaikki, että tänään.
Muista oli määritteet Kuoren muuttujia, kuten: h,
joka laskee, viimeinen osa polun,
tai r, joka laskee, laajennus.
Ne, jotka nyt koskevat ympäristömuuttujat liikaa. He eivät tottunut.
Sitä käytetään olla niitä ei voida muuttaa. Nyt ne voivat olla.
Se on yksi edistysaskeleita kehitystä kuoret vuosien varrella.
Olin sanomassa, että kuoret osana ympäristöissä
ja kuori muuttujia C-Shell ovat joitakin poikkeuksia lukuun ottamatta, erillinen joukko.
Voit luoda ympäristömuuttujan ja komentotulkkimuuttujaan samanniminen.
Ne ovat eri muuttujista, ne voivat olla eri hintaisia.
Muuttaminen arvo yksi ei muuta arvoa muille.
Nämä muuttujat ovat kaikki arvioitiin dollarin merkki - $, $ riippumatta.
Joten mitä jos sinulla on tämä? Tiedätkö kumpi saat?
Minun testeissä sain komentotulkkimuuttujaan,
mutta tällaista ei ole dokumentoitu ja et voi vedota tähän.
Joten pyydän teitä, luo kuori ja ympäristömuuttujat
samannimisiä hyvä idea? No okei.
Mitkä ovat ne tärkeimmät poikkeukset, joissa ympäristö ja Kuoren muuttujia
ovat yhteydessä toisiinsa?
On nämä 4.
Kirjain TERM-muuttujan avulla
komentotulkkimuuttujaan aikavälin pienillä kirjaimilla, tyyppi pääte-emulointi.
Olen juuri menossa mennä tänne ja aion tehdä kaiku, hyödyllinen komento täällä,
$ TERM $ aikavälillä. Ja siellä.
xterm on päätetyypin ikkunat näkyvät X Window System.
xterm-väri on muunnelma, joka, joka mahdollistaa eri värejä.
Miksi me määrittelemme nämä? Mikä on tämä hyvä?
Komentoja, jotka järjestää ruutu kuin editori
Lähetä erityisesti sekvenssit, nimeltään ohjausmerkkijonoja,
liittimeen tai ikkunan järjestää sitä ja niin edelleen.
Nämä sekvenssit ovat erilaisia ​​eri päätelaitteita.
Tämä kertoo sen mitkä käyttää.
Joskus on asioita siellä.
Saatat haluta muuttaa.
Jos asiat eivät toimi, joskus terminaalin tyyppi on asetettu väärin,
saatat pystyä korjaamaan se määritellään uudelleen termi muuttuja.
Näissä tapauksissa muuttamalla yhden muuttujan muuttujan tai komentotulkkimuuttujaan,
pitäisi muuttaa toinen.
Olen havainnut, kokemuksen kautta, että muuttuvat TERM isoilla kirjaimilla
ei aina muutu komentotulkkimuuttujaan aikavälillä pienin kirjaimin.
Tämä on virhe.
En tiedä, onko se aina totta. Suurimman osan ajasta se ei ole totta, mutta se voi olla.
Joten jos teet muutoksen, vain tarkistaa, että ulos.
Se ei ole usein, että sinun täytyy muuttaa tätä arvoa, mutta kerran kun teet.
Ympäristö Muuttuva käyttäjän.
Jälleen ympäristömuuttujien isoilla kirjaimilla, komentotulkkimuuttujaan pienin kirjaimin.
Tämä on käyttäjätunnuksesi.
Se on vain hyvin poikkeuksellisissa olosuhteissa
että haluaisi muuttaa.
Jos käyttäjätunnuksesi on joku muu, se voi heittää kaikenlaisia ​​asioita pois.
Kotihakemiston käyttäjän kotihakemiston.
Jälleen, et halua muuttaa.
Huomaa kaikissa näissä tapauksissa ja joka aiomme kattaa, PATH,
ympäristö muuttuja on isoin kirjaimin ja sidotun komentotulkkimuuttujaan on pienin kirjaimin.
Jos muutat yhden, sinun pitäisi muuttaa muita.
Tällainen sitova ei voida vahvistaa, koska et voi sitoa 2 muuttujia,
Muut kuin nämä 4, ja sitovat näiden muuttujien ei voi kumota,
et voi erottaa niitä.
Joten nämä 4 paria muuttujia ovat sitoutuneet.
Ne tulee aina olemaan. None toiset ovat.
Lisäksi olisi mahdollista luoda muuttujia samannimisiä
vastakkaista tyyppiä.
Voisit tehdä komentotulkkimuuttujaan termi pienin kirjaimin
tai ympäristölle TERM isoilla kirjaimilla.
Nämä muuttujat olisi riippumaton näiden pariksi muuttujien
ja ne olisivat toisistaan ​​riippumattomia.
En voi kuvitella, miksi sinun pitäisi tehdä, että ellet halua hämmentää ihmisiä.
Tämä yksi täällä, polku muuttuja, tämä on todella tärkeä.
Toinen asia on se, että voi olla tilanteita
muuttujia, joilla on samankaltaisia ​​pariksi nimiä, jotka eivät ole sidoksissa toisiinsa.
Ei voi olla muuttujia, Shellin ja kuori, vuonna isot ja pienet kirjaimet.
Perustuu että nimeä, et tiedä, jos tämä muuttuja on komentotulkkimuuttujaan
tai ympäristön muuttuja, ja he eivät sitoutuneet toisiinsa.
Niin tuollainen pariksi nimiä ei tarkoita sidottuja muuttujia.
PATH, jonka minä näytti ennen,
on luettelo polkunimissä jossa kuori etsii komentoja.
Mennään yli tähän ikkunaan täällä ja teemme echo $ PATH, isoilla kirjaimilla -
ympäristömuuttujien - echo $ PATH, pienet kirjaimet - komentotulkkimuuttujaan.
Huomaa, että lista hakemistoista on sama. Nämä ovat sitoutuneet.
Vaihda yksi, muutat muita.
Vuonna muuttujan elementit on erotettu kaksoispisteellä. Huomaa, että.
Kuoren muuttujia ovat toisistaan ​​välilyönnillä.
Tämä ympäristö muuttuja on yksi merkkijono.
Komentotulkkimuuttujaan on jono.
Bourne shell ei ollut taulukot.
Bash tekee, mutta tämä on jo kiinteä osa kuori.
Tämä on yhden merkkijonon eikä jono.
C-shell aina ollut taulukot.
Paneelit ovat paljon helpompi työskennellä.
Voit viitata osia siitä.
Joten echo $ PATH [1] ja saan / usr / bin, ensimmäinen elementti.
Jälleen muistaa dollarin merkki tarkoittaa viimeinen osa historiaa luettelosta.
Mitä siellä tapahtuu? Se yritti löytää dollarin merkki muuttujana symboli.
Olen paeta sitä. Oho. Se ei ota sitäkään.
Jotkut näistä asioista eivät toimi niin hyvin.
Ehkä me vain jättää se pois.
Asterisk viittaa koko juttu, mutta se mitä saat, jos et määritä elementti.
Toinen tapa, että taulukon muuttujiin voidaan manipuloida,
alkioiden lukumäärä siellä, 7 elementtiä.
Täällä laitamme ruutumerkillä ennen muuttujan nimi.
Tässä on toinen. Laittaa kysymysmerkki siellä.
Tämä on looginen arvo. , Joka ilmaisee, että muuttuja on olemassa.
Se on toinen tapa työskennellä muuttujia.
Että muuten, ei tarvitse olla taulukkomuuttujaa.
Se voisi olla mikä tahansa muuttuja.
Ja jos en tee, ettei ole sellaista muuttujaa ja saan 0.
Toinen pikku juttu siellä noin muuttuja arviointeja.
Takaisin tämä yksi täällä, jos jostain syystä et halunnut työskennellä tämän
pikemminkin kuin työskentelystä array, komentotulkkimuuttujaan,
on komentoja, jotka voi erottaa nämä asiat perustuvat paksusuolen.
Itse asiassa, jos aiot olla tekemässä tätä Bash shell mahdollisesti
jonkinlainen käsikirjoitus, joka olisi luultavasti miten tekisit sen.
Mutta C-shell se on paljon helpompi käyttää array.
Vuonna Bourne shell, muuttujat ovat antama yksi ilme näin,
kuten miten voit määritellä muuttuja ohjelmointikieli,
Ja tässä ei saa olla välilyöntejä.
Se on tarpeen, että se on vain 1 merkkijono.
Vuonna Bourne-tyyppinen kuoret, kaikki muuttujat Kuoren muuttujia.
Ympäristömuuttujat ovat osajoukko Kuoren muuttujia.
Ne erottaa ei-ympäristömuuttujat viemällä.
Käskyä, joka on vienti, kuten vienti PRINTER.
Jos olisimme määritellä tällaisia ​​muuttuja,
jos halusimme tulostuskomentoa löytää, se olisi oltava ympäristön muuttuja,
ja niin me teemme sen yhdessä.
Tässä on jotain sellaista hämmentävää.
Tämä ilmaus, vienti ympäristöön, juontuu tästä Bourne shell konsepti,
ja vielä tätä ilmaisua käytetään kuvaukset C-kuori,
jos ei ole sellaista komentoa kuin vienti.
Jos vain sanoa viedä itse, saat listan viedään -
Joten jos en vain viedä täällä, mitään sellaista.
Okei, sinne siis.
Nämä asiat, muuten, myös määritelty kuori.
En määritellä mitään näistä itse.
Shell tekee kaikenlaisia ​​asioita itsestään.
Se pitäisi tehdä asioita automaattisesti.
Vuonna Bash tai Korn shell, voit suorittaa komennon näin,
Tästä koituu sekä antaa muuttujan arvo ja viedä sen 1 komento.
Vuonna Bourne shell niiden on oltava erilliset komennot kuten vientiin.
Tässä on toinen näkökohta, joka on sekava.
Asetettu komento C-shell määrittelee muuttujat
ja ilman argumentteja kertoo, mitä muuttujien arvot ovat.
Vuonna Bash kuori, set-komento ilman argumentteja ei sama asia,
mutta väitteet, jotka se tekee jotain aivan muuta.
Joten nämä ovat eri argumentteja.
Jotkut näistä ovat ympäristön muuttujia, jotkut heistä ovat Kuoren muuttujia.
Kaikki ne ovat Kuoren muuttujia todella. Jotkut näistä ovat ympäristömuuttujat.
Set-komennon argumentteja voidaan käyttää
on paikkasidonnainen parametrien kirjoitus,
joka on tapa saada ne kaikki kerralla.
Emme voi todellakaan mennä, että tänään.
Sitä voidaan myös käyttää muuttamaan kuori käyttäytymistä.
Erityisesti Bash on muuttujia, jotka määrittävät, miten kuori käyttäytyy.
Sitten myös vain tämä yksi komento, saatat nähdä, tämä komento.
Latoa seuraa muuttujien ja muuttujatyypeille käytetään Korn ja Bash kuoret.
Se ei ole pakollista, mutta sitä voidaan käyttää rajoittamaan muuttujien arvot,
mikä voi olla hyödyllistä virheiden estämiseksi, ja se on melko yleistä.
Joten olen vain mainita, että jos näet sen jonnekin.
Missä komento.
Muista Mainitsin aiemmin, jos komento C-kuori,
joka voi kertoa sijainnin komennon polun.
Tässä on kirjoitusta.
Sinun pitäisi löytää näppäimistön jonnekin hahmo, joka näyttää tältä.
Sijainti näppäimistö on menossa vaihtelevat.
Annoimme sille nimeksi backquote. Se on noin kokoa lainaus.
Se menee ylhäältä vasemmalta oikeaan alakulmaan.
Täällä minun Mac-näppäimistöllä se on ylhäällä vasemmalla yläkulmassa.
Että merkki voidaan suorittaa komennon sisällä komennon.
Jos sinulla on lauseke sisällä lainausmerkkeihin,
että ilme on komento, se ajaa.
Tuotos, että komento
korvataan tämän jälkeen koko backquote ilmaisun
sisällä enää komento joka sitten juoksee tuon tuotoksen
osana merkkijono väitteitä ja niin edelleen.
Tässä on komento, joka käyttää tätä.
Katsotaanpa osoittamaan toiminnan täällä.
Mennään tänne, ottaa lainausmerkkeihin.
Ohjaus saa minut rivin alkuun kanssa Emacs editointi syntaksin.
Toistaiseksi polkunimissä on mitä jos tekee,
mutta kun teen sen näin, se sitten tulpat, että luettelo polkunimissä
Tämän sijasta koko backquote ilmaisun ja kulkee ls-l niitä.
Kind of kätevä, vai?
Niin, että yksi siisti juttu. Niin lainausmerkkeihin toimi.
Nyt mennään alaspäin vielä hieman.
Nämä ovat aliaksia. Olen itse käyttää näitä.
Yritän saada tätä 1 muokkaustoiminnosta.
Okei.
Katsotaanpa nyt, miten nämä määritelmät tuli ulos.
alias LWH kertoi minulle, kuinka se on määritelty.
Huomaa sitä juuri tämä, mutta ulompi lainauksia on otettu pois käytöstä
ja huutomerkki otetaan pois.
! *, Täydellinen luettelo kaikista väitteistä.
Vuonna alias määritelmä sitä sovelletaan takaisin, jos käytän tätä.
LWH ksh bash. Okei.
Nähdä miten se toimii? Se säästää minulle kirjoittamalla.
Mennään jopa hieman vain mainita jotain muuta täällä.
Huomaa täällä nämä eri kuoret. Minun piti mainita tämän ennenkin.
Csh on 2 tänne ja niin tekee / bin / tcsh.
Voisimme luoda muilla keinoin, että nämä ovat oikeastaan ​​sama tiedosto.
Muista Olin sanomassa, jos kirjoitat sh saat bash.
Kirjoita tämä ja saat tämän.
Mutta ne eivät liity toisiinsa. Nämä ovat yksi niistä siellä.
Ja tämä ei ole sellainen tiedosto, joka voidaan soittaa toinen.
Joten ne ovat erillisinä tiedostoina, C-kuori niistä ovat samaa tiedostoa.
Takaisin tänne, toinen täällä, tämä alias,
Huomaa, että on käynnissä tämän komennon, tiedoston.
Että alias toimii niin. Tiedosto kertoo tyypin tiedoston.
Joten FWH ksh bash. Okei.
Se on lähtö tiedoston komennon.
En tiedä, jos tiedät mitä tämä tarkoittaa tässä,
Mach-O Universal Binary 2 arkkitehtuurit.
On 2 mahdollista prosessori tyyppejä Mac,
ja jotkin ohjelmat kirjoitettiin pystyä suorittamaan sekä,
ja tiedosto komento voi todeta, niin sitähän tämä tarkoittaa.
Molemmat tiedostot kirjoitettu näin.
Joten näemme, miten alias toimii, näemme, miten backquote toimii,
näemme, miten varsinainen tiedosto ls tai tiedoston toimii.
Tämä ei ehkä toimi. Kokeile "jossa jossa" ja "LWH missä". Okei, kokeile sitä.
jossa jossa.
joissa on kuori sisäänrakennettu.
Muista aikaisemmin osoitimme, että Bash ei ollut silloin.
Jos kirjoitat missä Bash shell, saat virheilmoituksen.
Se on vain osa kuoren sijaan, että erillinen komento.
Mitä tapahtuu, jos kirjoitan LWH etsimässä missä? Katso, mitä siellä tapahtuu.
Ran jossa jossa sai tämän lähdön, ja sitten yritti juosta ls
kuin l missä on kuori sisäänrakennettu.
jos on olemassa, mutta toisilla ei ole.
Mikään näistä olemassa, itse asiassa.
Niin että ei aina toimi, ja se myös osoittaa, kuinka jotkut asiat
älä tee aivan mitä saattaisi kuvitella.
Mennään hieman pidemmälle täällä.
Tämä tässä on Bash. Tämä on myös kirjoitusta kuin backquote.
Mutta toisin backquote, se käyttää tätä muuttujaa tyyliin.
On olemassa lukuisia ilmaisuja, jotka alkavat dollarin merkki,
ja vaikka nämä eivät ole muuttujia, he lainasivat käyttöä dollarin merkki
osoittaa lausekkeen jonkinlaista.
Joka voidaan ympäröivät sulkeissa tai suluissa tai kahden suluissa,
joka on eri tarkoitukseen.
Yhden suluissa tässä on kirjoitusta kuten lainausmerkkeihin.
Double Suluissa on todella laskutoimitus.
On muitakin syntaxes, muut toiminnot.
Backquote syntaksi on saatavilla Bash.
Kuitenkin, tämä on edullista. On paljon helpompi lukea ja se mahdollistaa pesiviä.
Voit olla sisällä $ (komento) toinen komento,
jotain -
Saan luettelon siellä.
Se toimisi, jos minulla olisi backquote myös.
Entä jos haluan tehdä jotain -
Luultavasti ei oikeastaan ​​käytä tätä komentoa,
mutta tämä sisäinen kirjoitusta kaikuja nimet, alkavat tiedostot,
niin tämä kulkee ls-l ne tiedostot,
ja sitten tämä yksi vain kaikuu tuotos.
Luultavasti ei tee tätä, olisit vain tehdä kaiku tai ls,
mutta tämä osoittaa, miten pesintää komennot toimii.
Joten vain toinen ominaisuus täällä.
Mainitsin tämän aikaisemmin, että kun sinulla on missä C-kuori,
kirjoita toimii Bourne-tyyppinen kuoret paikallistamiseen komentoja.
Sisäisiä komentoja, vain mitä sanoin siellä.
Komennot ovat osa kuori, kuten missä.
Kun kuori suorittaa komennon kuten ls, se etsii sitä kautta polku,
pitää joissakin hakemistoon jonnekin,
lukee, että muistiin, luo uusi kuori,
lukee komento ls tai mitä kuoreen
jos ympäristömuuttujat ovat jo paikalla,
ja sitten se siirtää suorituksen siihen.
Sisäänrakennettu komento, koodi, että komento on säiliön,
joten kuori vain alkaa täytäntöönpanosta osana omaa koodiaan.
jos on sellainen komento. Se todella saa nopeammin.
Sen ei tarvitse lukea mitään muistiin, se on jo muistissa.
Sisäisiä komentoja aina etusijalla komentoja samanniminen.
Komennoilla hakemistojen polku voi olla sama nimi,
komennot eri hakemistoja, tiedostoja eri hakemistoista.
Joka tapahtuu aikaisemmin tiellä on yksi saat.
Jos on sisäänrakennettu komento, saat aina sitä.
Ei ole mitään keinoa antaa sille heikommassa etuoikeus komento polku.
Jos haluat saada, että polku komennon, voit kirjoittaa koko polku.
Jos oli komento missä polku jonnekin,
voit kirjoittaa / bin / missä ja haluat saada sen.
Jos et halua kirjoittaa koko polun, voit määritellä alias.
Itse asiassa, jos annoit alias sama nimi kuin sisäänrakennettu komento, se toimisi
koska alias määritelmää arvioidaan
ennen kuoren määrittää, että se on sisäänrakennettu komento, joka olisi pantava täytäntöön.
Sitten tämä saa hieman monimutkaisempi joitakin komentoja täällä.
Joidenkin komentojen ovat todella valmiiden komentojen ja polku.
Yksi niistä on kaiku, komento Käytin vähän aikaa sitten näissä esimerkeissä.
Echo on komento polku ja se on jokaisessa kuori.
Ne eivät välttämättä kaikki toimivat samalla tavalla.
Se oli alun perin komento vain polku.
Se on rakennettu vuonna kuorien myöhemmin.
Koska on olemassa vaihtoehtoja, jotka riippuvat ympäristöstä
ja komentorivivalinnat, valmiiden komentojen
kirjoitettiin toimivat samoin kuin komento, joka oli ollut tiellä,
se on epätodennäköistä ne olisi kirjoitettu näin
jos komento ei ole jo kirjoitettu polku.
Joten tämä on sivuvaikutuksia. Sen historia on vaikutuksia täällä.
On olemassa vaihtoehtoja siellä.
Mukana on myös vaihtoehto määritelty muuttuja tcsh nimeltään echo_style.
Se on yksi näistä muuttujista, jotka voivat muuttaa siten, että kaiku toimii.
On muitakin tapauksia, joissa voit määrittää muuttujaa
joka muuttaa siten, että kuori, muun muassa sisäänrakennettu komento, toimii.
Se ei vaikuta mitään muuta
koska muut komennot eivät ole pääsyä Kuoren muuttujia,
vain ympäristömuuttujat.
Mutta kuori toiminta voi lukea Kuoren muuttujia.
Se ei toimi csh. Se on vain tcsh. Se on yksi parannuksia.
Jäsennys on sekvenssit, kun se arvioi metamerkit,
kun se arvioi muuttujien nimet, historia viittauksia.
On tietyssä järjestyksessä näitä asioita.
Jos se tekee asioita tietyssä järjestyksessä
ja saa jotain, joka on ilmaus lajitella
joka on jo arvioitu, se ei arvioi sen uudelleen.
Jos se saa sen, niin se vain siirtää merkkiä.
Joten jos arviointi joitakin ilmauksia, kuten kirjoitusta
tai vaihtuvana tai mitä tahansa aiheuttaa lauseke
joka haluaisi arvioida,
että toimii vain, jos tämä arviointi tapahtuu myöhemmin järjestyksessä.
Toivottavasti en ole selvää siellä.
Että jäsentämiseen järjestyksessä, operaation C-kuori,
ei ole sama sisäisiä komentoja, koska se on ei-valmiiden komentojen.
En ole varma Bash siellä.
Jos esimerkiksi komentotulkkimuuttujaan tuotettu historia viittaus,
se todennäköisesti ei mene takaisin historiassa.
Se olisi vain saada huutomerkki.
Itse asiassa, voimme vain yrittää, että juuri nyt.
set = ja meidän täytyy laittaa tämä sinne.
Hei, odota. Anteeksi. Tein tämän Bash. Halusin tehdä sen täältä.
Katso, joten se ei arvioinut, että historia viite
koska se oli jo ohi pisteen arvioida historian ilmauksia
kun se arvioidaan muuttuja.
Niin, että 1 vaikutus jäsentämiseen.
Ja vielä, sisäänrakennettu komentoja ei tehdä samalla tavalla.
Selvä. Mennään seuraavaan täällä.
Tämä on tarkoitus olla 1 linja, mutta se on helpompi lukea.
Mitä se tekee?
Muistatte ehkä, että voimme arvioida tähdellä kuten tiedostonimi jokerihakua
ja muitakin tiedostonimi korvausmerkkejä kuten kysymysmerkki ja kiinnike ilmaisuja.
Tällainen arviointi on nimeltään ohituslausekkeita.
asettaa noglob alussa tämä komento sanoo älä tee sitä.
unset noglob sanoo palata näin.
Huomaa, että joukko loraus ei olisi tällainen vaikutus.
Tavallisella kielellä, asettaa loraus tai katkaistu noglob näyttäisi olevan vastaavaa,
mutta täällä se ei ole. Se on unset noglob.
Nyt tset. tset seisoi terminaalin asetettu.
Sitä ei käytetä kovin usein nyt, mutta ennen ikkunointijärjestelmissä tuli saataville
ja teillä oli yhden päätteen, saatat joutua millainen.
Ja jos jotain on tulossa Ethernet tai verkosta,
kannattaa sanoa se VT100.
VT100 on eräänlainen standardi Terminal-liiketoiminnan. Se tulee DEC terminaaliin.
Jos vain kellotaulu - huomaa, että? Tämä juontaa juurensa tavalla, vai?
Joten jos emme vain tset tänne,
jos en vain tset, se nollaus minun terminaali, mutta et nähnyt mitään.
Se ei oikeastaan ​​muuta mitään.
-S
Okei.
setenv TERM xterm-color.
Tiedämme jo, että termi on asetettu niin, joten mikään ei muuttunut.
Sillä tavalla me haluaisi tehdä sitä.
Mutta huomaa, että tätä komentoa, tset-s, vain lähtö näitä komentoja. Se ei juossut niitä.
Se ei komennoilla, se tulostaa ne.
Joten tämä on tarkoitus tuottaa komentoja, joka sitten ajaa.
Muistatko komento tiedoston juuri näytin teille oli Q siinä.
Tehdäänpä että.
Q estää joitakin tuotos, mutta sillä ei ole merkitystä tässä, kuten näette.
Teen vain, että näyttää, että se ei ole väliä.
Tämä on backquote syntaksin.
Huomautus backquote täällä, backquote täällä.
Olen jättämällä nämä asiat täällä.
Nämä tapaukset kertoa se, mitä tehdä
kun on kyse tietyntyyppisten päätelaitteiden -
Ethernet, verkko, soittoyhteyttä, mitä olet.
Sillä ei ole väliä tänne, koska emme oikeastaan ​​tee mitään näistä asioista.
Olen vain havainnollistaa komento.
Jos teen tämän kanssa backquote, mitä aion saada?
Myös huomata tässä, että tämä sisälsi joukon noglob ja unset noglob,
joten ne ovat nyt tarpeettomia määritelmään.
Se ei ollut aina totta, mutta nyt he sisällytetty tähän komennon.
Mutta katsotaanpa mitä tapahtuu, jos teen sen
ja mene rivin alkuun Ctrl ja teen sen.
Okei, asettaa: Komento ei löydy. Se on tavallaan outoa, eikö olekin?
sarja on tunnettu komento. Se on osa kuori.
set: Komento ei löydy? Miksi näin?
Hmm. No, ajattele tätä.
Se on käynnissä backquote kirjoitusta,
ja että tapahtuu tietty osa sekvenssin jäsentämiseen komennon.
sarja on sisäänrakennettu komento.
Joten aikaa se, että kirjoitusta,
se on jo mennyt ohi pisteen tunnistaa sisäisiä komentoja.
Joten se kohtelee asettaa ikään kuin se olisi komento polku.
Tarpeetonta sanoa, se ei löydä sitä ja saat virheen.
Hyvin. On esimerkki jäsentämiseen järjestyksessä.
Ja mitä me teemme asialle?
Huomata tämän erittäin mielenkiintoinen komennon täällä, eval.
Mitähän se tekee.
Jos katsot käsikirja - ja haluan vain tehdä sitä
osoittaa, miten sekava nämä käsikirjat ovat -
mies tcsh, sekava oppaat, löytää asioita täällä ei ole helppoa myöskään.
Tässä sitä mennään, eval arg, jotta voimme olla 1 tai useampia argumentteja
ja siellä on lista asioista siellä.
Kohtelee väitteet tuloina kuori
ja suorittaa tuloksena komennot nykyisessä kuori.
Tämä on yleensä käytetään suorittaa komentoja syntyy seurauksena komennon
tai muuttuva korvaaminen koska jäsentämiseen tapahtuu ennen näitä vaihdot.
Erittäin hyvä.
Ja tässä ne jopa viitata tset komento näytteen käyttöön
jollainen juuri näytin teille.
Nyt minun täytyy saada ikkunan takaisin hyödyllinen paikka.
Mennään tänne ja näemme, että eval käytetään juuri ennen sitä.
Katsotaan mitä tapahtuu, jos laitamme - nyt mennään ylös nuolia komennon
and Control alkuun, eval.
Okei, niin se toimii.
Kun teet eval, se kestää mitä tulee sen jälkeen ja tekee siitä komennon.
Näin voit olennaisesti jäsentää sitä kahdesti.
Kohta täällä kulkee tämän komennon sisällä lainausmerkkeihin,
saa lähtö.
Tuotos on tarkoitus ajaa kuin komennot täällä, kuten nämä
tässä yksi ja tämä yksi.
Joten ne komennot ovat nyt täällä tässä järjestyksessä,
mutta nämä ovat sisäisiä komentoja ja se voi saada niitä heti.
Joten menemme eval, eval poimii että ylös, alkaa koko juttu uudestaan, ja se toimii.
Esimerkiksi molemmat backquoting, eval, jäsennys, seuraukset jäsentämiseen,
ja komento, joka on todennäköisesti hyvin vähän hyötyä sinulle nykyään.
Okei. Okei, umask.
Katsotaanpa tämän komennon täällä, umask 022. Mitähän se tekee.
Toivotaan vain kirjoita umask mitään sen jälkeen. 22. Okei.
022 ja tehdä se uudelleen.
Kuten arvata saattoi, umask ilman argumentteja kertoo nykyisen maskin;
umask argumenteilla tekee sitä, mutta se oli yksi olen jo ollut.
Mitä 022 tarkoittaa?
Nämä ovat täällä takaama tiedoston.
Ne määrittävät, kuka saa lukea tai kirjoittaa tai suorittaa tiedoston.
Suojaukset kutsutaan myös käyttöoikeudet.
R tarkoittaa lukea, w kirjoittaa,
ja x, joka ei ole siellä läsnä sanoista suorittaa.
On 3 kategoriaa siellä.
Viimeksi 3 elementit ovat käyttäjäryhmän. Näitä koske minua, käyttäjä.
Nämä 3 tässä pätevät ryhmään.
Tiedosto kuuluu 1 ryhmään, käyttäjä voi kuulua useaan ryhmään,
mutta jos käyttäjä on ryhmä, johon tämä tiedosto kuuluu,
sitten nämä suojaukset sovelletaan häneen, jos hän ei ole käyttäjä.
Ja tämä on kaikki muutkin.
Nämä luokat ovat toisensa poissulkevia.
Käyttäjä suojaa sovelletaan häneen,
Suojaukset jäseniin sovelletaan muu ryhmä kuin käyttäjä,
ja muut suojaukset koskevat vain muille kuin käyttäjän ja ryhmän jäsenet.
Jos on r tai aw tai x, se tarkoittaa, että suoja on myönnetty.
Jos on yhdysmerkki, se tarkoittaa, että se ei ole.
On todellakin olemassa muita asioita, jotka voidaan laittaa tänne Näiden lisäksi
joita en pääse nyt.
Umask määrittelee oletuksena tiedostoja, jotka luot.
Ja maski, pohjimmiltaan se sanoo bittiä, että et ole asetettu.
Miten tämä on tullut bittiä?
Jos luulet kaikkien näiden oktaalinumerona,
tämä on 1 s bitti, tämä on 2s, tämä on 4s.
Joten 0 kautta 7
kuvailla mitä yhdistelmä R: n, W: n ja x: n teillä on nämä 3
ja sitten saman verran näistä ja sitten näitä.
Joten 022 tarkoittaa 0 muille, 2 ryhmän 2 käyttäjälle.
Mutta tämä on maski. Maski on mitä sinulla ei ole.
Olen pahoillani. Annoin sinulle asioita väärässä järjestyksessä.
Se on ensimmäinen 3. Nämä 3 ovat käyttäjä, nämä 3 ovat ryhmä, nämä 3 ovat muita.
Anteeksi Annoin sinulle nämä väärässä järjestyksessä.
0, joka on ensimmäinen niistä, ei näy arvoa,
mutta jos numero ei ole olemassa, se on 0.
Tällä tarkoitetaan kaikkia 3 näistä olisi sallittua.
Huomaa, että tämä erityisesti yhden x ei ole sallittua.
Syynä on se, että kuori pystyy määrittämään
onko tiedosto tulisi suorittaa vai ei.
Koska tämä ei ole suoritettava tiedosto, se ei ole asettanut x.
2 tarkoittaa, että kirjoitusoikeudet, toinen luokka täällä,
yksi keskellä, evätään.
Joten jälleen, nämä ovat asioita, joita se kielsi.
No, x on sallittua, mutta se ei ole täällä, koska se ei ole suoritettavia
ja vastaavasti muille.
Niin, että yhteinen umask.
Toinen yleinen yksi on 700 - anna itsellesi kaiken ja kukaan muu mitään.
Ja on muitakin mahdollisuuksia.
Menen takaisin siihen. Käyttämällä historia voin hakea takaisin, että LWH siellä.
Okei. Joten tässä, nämä ovat kuoret.
Bash, omistaja, joka on järjestelmä huomioon, voi tehdä kaikkea.
Ryhmä ja kaikki muu voi tehdä lukea tai suorittaa mutta ei kirjoittaa.
Tämä yksi ei edes salli omistaja kirjoittaa sitä.
Jos omistaja halusi kirjoittaa sitä, järjestelmä tilin,
hänen täytyisi muuttaa suojaa ensin.
Mutta jälleen kerran, umask asettaa oletuksena peittämällä se,
ilmoittamalla bittiä, joka ei voi asettaa.
Tämä on tyypillisesti joku alustustiedostoja, joka on. Cshrc C-kuori
tai. profiilin Bourne-tyyppinen kuoret.
Se voi olla muuallakin, jos on olemassa muita alustustiedostoja järjestelmään.
Joka tapauksessa, se on umask.
Siinä on jotain sellaista outoa täällä,
ja että on, miksi on olemassa yhden komennon tähän?
Jos olisin kirjoitan tätä, haluan tehdä muuttuja, umask = jotain arvoa.
Miksi on olemassa Komentomiehistö juuri tähän tarkoitukseen?
Syy on tämä vain menee takaisin alkuperä Unix.
Unix oli vain joitakin ohjelmistoprojektina Bell Labs 1970-luvun alussa.
Ihmiset vain sai yhdessä ohjelmassa.
He eivät koskaan tarkoitus siitä tulee maailmanlaajuinen käyttöjärjestelmä.
Eri ihmiset kirjoittivat eri puolilla ajattelematta hyvin paljon
siitä, miten he aikovat käyttää - varsin ylimalkaisia.
Ja se tuli yhdessä kuin että, ja se on edelleen kuin että joiltakin osin.
Niin että heijastaa historiaa, ja vielä on nämä epäjohdonmukaisuudet ja parittomat sen osia.
Okei. Seuraava kukaan täällä.
Kuten kirjoitin aiemmin, C-kuori ei todellakaan käytetä kovin paljon ohjelmointia,
vaikka se voi olla.
Se suorittaa hitaammin, jälleen kompromissi interaktiivinen käyttö,
joka on enemmän jalostuspaikat kuin nopeus,
joka voi tehdä ilman käsittelyä.
Lisäominaisuuksia lisätty Bourne kuoreen Korn ja Bourne-uudelleen kuoret
eivät näytä hidastavat heitä, ja en tiedä miksi näin on.
Se voi vain olla parempi ohjelma, mutta en ole voinut tietää.
Speed ​​tässä todellisuudessa ei ole niin iso juttu, vaikka se on mainittu.
Syynä on, että komentoriviskriptejä todella saada melko nopeasti.
Jos on paljon komentoja kuten laskennallisin ohjelma,
luultavasti ei tee sitä shell script.
Toiminta on melko yksinkertainen ja suoraviivainen.
Ne, jotka olen kokenut, että ovat liian hitaita
liittyy toistuvia sovelluksia hidasta komentoja.
Mainitsin aikaisemmin stream editor sed. Tämä komento on hidasta.
Jos suoritat sed monta kertaa, saat hidas käsikirjoituksen, mutta se ei ole kuori, joka on hidas.
Suorittamalla se Bourne Shell ei ole paljon nopeammin kuin suorittamalla se C-kuori,
vaikka olemassa ehkä joitakin etuja siellä.
Lisäohjelmointia ominaisuuksia, toisaalta,
ovat merkittäviä syitä, miksi sinun pitäisi käyttää Bourne-tyyppinen kuoret.
C-shell on outoa ominaisuuksia sitä -
se, että et tiedä, jos muuttuja on komentotulkkimuuttujaan tai ympäristömuuttujien kautta.
Se voi olla hyvin hämmentävää.
Se ei ole niin helppo kirjoittaa
vain perustuu omaan kokemukseen ohjelmatyön muilla kielillä.
Luulen saatat löytää Bourne-tyyppinen kuoret enemmän sopusoinnussa oman kokemuksen.
Joitakin skriptejä, mutta voi olla tuhansia rivejä pitkä.
Ne, jotka olen nähnyt käytetään paikata käyttöjärjestelmissä.
Nämä voivat suorittaa hyvin hitaasti, mutta et suorita näitä kovin usein.
Vasta kun olet tekemässä kauneuspilkku,
ja se on vain järjestelmä johtaja, joka tekee niitä asioita,
joten se ei ole oikeastaan ​​paljon asiaa.
Ne, jotka ovat satoja rivejä pitkä tosiasiallisesti toteuttaa melko nopeasti.
Viittaavat tässä, mitä nämä parannukset?
Olen jo maininnut muutamia niistä - paneelit, laskelmat,
$ () lauseke laskelmien Bash kuori,
muu kirjoitusta.
On olemassa erilaisia ​​testaus-komentoja
jolla voit tehdä ehdollisia testejä olemassaolosta tiedoston tai muita asioita.
Kestää täällä, tämä komento täällä.
Mitä tämä tehdä, ja miksi kukaan käyttää sitä?
printenv variableName.
Tiedämme, mitä printenv tekee. Se kertoo muuttujan arvon.
Ja printenv variableName eivät kerro meille kovin paljon, koska ei ole sellaista muuttujaa.
Tyhjä.
Mutta katsotaanpa antaa sille jotain mielekästä.
Se ei ole sielläkään. Okei. Luulen koskaan määritellä sitä.
Toivotaan vain tsekkaa ympäristössä.
Tämä on toinen komento, jolla voit tarkastaa oman ympäristön.
On vanha kunnon EDITOR, näimme ennen.
Mitä se tekee?
Täällä meillä on backquote ilme.
Muista tämä on C-kuori.
Joten printenv Editor antaa meille arvon editori. Se on vi.
Ja sitten se asettaa tämän arvon muuttujaan, asetettu komento.
Joten nyt jos en echo $, saan vi.
Se ei näytä kovin hyödyllinen.
Kuitenkin, se todella ei ole tarkoitusta.
Koska emme tiedä, onko muuttuja on komentotulkkimuuttujaan tai ympäristömuuttujan
käyttämällä dollarin merkki arvioinnin syntaksin, voimme käyttää printenv
varmista, että se on ympäristömuuttujan.
Joten jos olisi komentotulkkimuuttujaan editori, tämä ei olisi saanut sitä.
Tämä toimii vain ympäristömuuttujan.
Jos oli komentotulkkimuuttujaan ja halusin sen arvo,
Minun pitäisi keksiä jokin muu tapa tehdä se.
Yksi tapa tehdä se olisi tekemällä joukko ja putkistot.
Tämä on yksi metamerkit, erikoismerkkejä.
Se lähettää tuotoksen asetettu jotain muuta.
Katsotaan, mitä voisimme löytää siellä.
Mitään. Okei. Katsotaan mitä siellä kaikki yhdessä.
Se oli echo_style, yksi aiemmin mainitsin. Okei, tehdään se.
Muista aiemmin mainitsin, echo_style
määrittää miten kaiku komento ajaa.
BSD sanoista Berkeley Standard Distribution.
Tämä on Berkeley Unix 1970.
Se on yksi niistä tavoista, että kaiku voi ajaa.
Asetus echo_style tätä arvoa TC-kuori aiheuttaa echo käyttäytyä tällä tavalla.
Joten aseta tekee sen, mutta asettaa vain saa Kuoren muuttujia.
Se ei löydä EDITOR, joka ei ole kuori muuttuja.
Mitään.
Niin, että yksi tapa erottaa ne.
Mutta se, että sinun täytyy mennä läpi joitakin outoja komennolla kuten että
erottamaan Kuoren muuttujia tai ympäristömuuttujat
esittää sellaista epäkäytännöllinen luonteesta C-kuori joihinkin tarkoituksiin.
Ja nyt, viimeinen ja ehkä vähiten, tämä on man-sivuilta.
Ne, jotka ehkä tiedätte, ihminen on komento lyhyt käsin.
Man-sivuilta löytyy kuoret on vaikea lukea. He ovat hyvin pitkiä.
He järjestetty tavalla, joka voi vaikeuttaa löytää mitä etsit.
Joten jos etsit jotain tarkoitusta varten
et voi tietää, jos tätä varten on komentotulkkimuuttujaan tai jotain muuta,
joten et voi tietää mistä etsiä sitä.
Voit etsiä eri jouset, mutta jouset ovat usein toistuvaa.
Niin se yleensä vaikea lukea.
Me vain katsoi TC-kuori man-sivulta hieman ennen löytää eval-komentoa.
Jotkut asiat menevät nopeammin.
Yksi lähestymistapa on etsiä merkkijonoa.
Voit käyttää hakulaite.
Hakulaite on slash etsiä komentoa tai merkkijono sisällä hakulaite toimintaa.
Mies oletusarvoisesti käyttää hakulaitteita, joko enemmän tai vähemmän.
En tiedä, jos olet perehtynyt näiden, mutta ne voivat osoittaa tiedostoja vähän kerrallaan.
Olen käyttänyt vähemmän näyttää nämä erityisesti tiedostoja meillä täällä.
Voit etsiä sisällä on.
Voit kokeilla erilaisia ​​hakusanoja.
Myös man-sivuja erilaisissa käyttöjärjestelmissä ei voi olla sama.
Ne voivat olla erillisiä sivuja csh ja tcsh.
He eivät ole Mac, mutta ne saattavat olla, jos ne ovat erillisiä komentoja.
Jos sh ei oikeastaan ​​soita Bash, ei luultavasti olisi erillinen man-sivulta.
Joissakin laitteissa on erillinen man-sivuja vain C-shell sisäisiä komentoja.
Joskus jos haluat lukea kuvauksen sisäänrakennettu komento
se on myös polku, kuten kaiku, sinun täytyy lukea man sivun että komento echo
selvittää, miten se toimii kuin sisäänrakennettu komento
vaikka et soittaa sisäänrakennettu komento.
Se haittapuoli, että käyttöjärjestelmä yleensä, ei vain kuoret,
vaikka kuoret erityisesti man-sivut ovat melko pitkiä,
Osasyynä lisännyt hyödyllisiä ominaisuuksia niille, jotka voivat olla positiivisia.
Okei. Onko kysyttävää? Mitään aiheita haluat tuoda esiin?
Mitään merkitystä tässä?
No, se on ollut erittäin mukava jutella kaikille.
Toivottavasti sait jotain tästä seminaarin
että on hyötyä sinua tulevissa haasteissa.
[CS50.TV]