Skip to main content

Tuhka - Linux Command

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox (Kesäkuu 2026)

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox (Kesäkuu 2026)
Anonim

NIMI

sh - komentotulkki (shell)

SYNOPSIS

sh -/ + ACefnuvxIimqsVEbc -O longname -sanat kohde …

KUVAUS

Sh on järjestelmän vakiokomentotulkki. Nykyinen versiosh on parhaillaan muuttumassa vaatimusten mukaiseksiPOSIX 1003.2 ja 1003.2a. Tässä versiossa on monia ominaisuuksia, jotka tekevät siitä samanlaisen näkökulman Korn-kuoriin, mutta se ei ole Korn-kuori-klooni (ks. Ksh (1)). Vain nePOSIX plus muutaman Berkeley-laajennuksen, sisällytetään tähän kuoriin. Me odotammePOSIX 4.4 BSD vapautetaan. Tätä man sivua ei ole tarkoitettu opetusohjelmaksi tai kuoren täydelliseksi määrittelyksi.

Yleiskatsaus

Kuori on komento, joka lukee rivit joko tiedostosta tai päätteestä, tulkitsee ne ja yleensä suorittaa muita komentoja. Ohjelma on käynnissä, kun käyttäjä kirjautuu järjestelmään (vaikka käyttäjä voi valita toisen shellin chsh (1) -komennolla). Kuori toteuttaa kielen, jolla on virtauksen ohjausrakenteet, makroasema, joka tarjoaa erilaisia ​​ominaisuuksia tiedon tallennuksen lisäksi yhdessä sisäänrakennetun historian ja rivinmuokkaustoimintojen kanssa. Se sisältää monia ominaisuuksia interaktiivisen käytön tukemiseksi ja sillä on se etu, että tulkitseva kieli on yhteinen sekä vuorovaikutteiseen että ei-interaktiiviseen käyttöön (shell-komentosarjat). Eli komennot voidaan kirjoittaa suoraan käynnissä olevaan kuoriin tai voidaan laittaa tiedostoon ja tiedosto voidaan suorittaa suoraan kuorella.

rukous

Jos mitään argumentteja ei ole ja jos kuoren vakiotulo kytketään päätelaitteeseen (tai jos -minälippu on asetettu), ja -C vaihtoehtoa ei ole, kuori katsotaan vuorovaikutteiseksi kuoreksi. Interaktiivinen kuori opastaa yleensä ennen jokaista komentoa ja käsittelee ohjelmointi- ja komento-virheet eri tavalla (kuten jäljempänä kuvataan). Kun ensin käynnistetään, kuori tarkastelee argumenttia 0, ja jos se alkaa dashilla `- ', kuori katsotaan myös kirjautumiskuvaksi. Järjestelmä tekee sen automaattisesti automaattisesti, kun käyttäjä kirjautuu sisään sisään. Sisäänkirjautumiskuori lukee ensin tiedostot / etc / profile ja .profile, jos ne ovat olemassa. Jos ympäristömuuttujaENV on asetettu kuoren sisääntuloon tai asetettu sisäänkirjautumiskuoren .profile-tiedostoon, kuori lukee seuraavaksi komentokehotteessa mainitut tiedostot.ENVSiksi käyttäjän on annettava komentoja, jotka on suoritettava vain sisäänkirjautumisaikana .profile-tiedostossa ja komennot, jotka suoritetaan jokaisen kuoren sisällä.ENV tiedosto. AsetaENV muuttuja johonkin tiedostoon, aseta seuraava rivi kotihakemiston .profile-tiedostoon

ENV = $ HOME / .shinit; vienti ENV

korvaamalla `` .shinit '' haluamallasi tiedostonimellä. KoskaENV tiedosto luetaan jokaiselle kuoren kutsulle, mukaan lukien komentosarjat ja ei-interaktiiviset komentotulkit, seuraava paradigma on hyödyllinen komentojen rajoittamiseksiENV tiedostoa interaktiivisiin kutsuihin. Paikka komentojen alla `` case '' ja `` esac '' alla (nämä komennot on kuvattu myöhemmin):

case $ - in * i *)

# komennot vain vuorovaikutteiseen käyttöön

ESAC

Jos vaihtoehtojen lisäksi on määritetty komentorivin argumentteja, kuori käsittelee ensimmäisen argumentin tiedoston nimenä, josta komentojen lukeminen (shell-komentosarja) ja jäljelle jäävät argumentit asetetaan kuoren sijaintiparametreiksi ($ 1 , $ 2 jne.). Muussa tapauksessa kuori lukee komennot sen vakiotulosta.

Argumenttilistan käsittely

Kaikilla yksittäisillä kirjaimilla on vastaava nimi, jota voidaan käyttää argumenttina -O vaihtoehto. Setti -O nimi on annettu alla olevan kuvan yhden kirjaimen vieressä. Viivan määrittäminen `` - '' kytkee vaihtoehdon päälle, kun käytät plus `` + '' pois käytöstä. Seuraavat vaihtoehdot voidaan asettaa komentoriviltä tai integroidulla asetuksella (1) (kuvattu myöhemmin).

-a allexport

Vie kaikki määritetyt muuttujat. (POISTETTU 4,4 alfa)

-C

Lue käskyjä komentoriviltä. Vakiotulosta ei näy komentoja.

-C noclobber

Älä korvaa olemassa olevia tiedostoja ``> '' (UNIMPLEMENTED 4.4alpha)

-e errexit

Jos et ole vuorovaikutteinen, poistu välittömästi, jos jokin testattu komento epäonnistuu. Komennon poistumistilasta katsotaan nimenomaan testattu, jos komentoa käytetään hallitsemaanjos elifwhile taisiihen asti kun tai jos komento on operaattorin `` && '' tai `` || '' vasemmanpuoleinen operandi.

-f noglob

Poista polkuympäristön laajennus.

-n noexec

Jos et ole vuorovaikutteinen, lue komentoja, mutta älä suorita niitä. Tämä on hyödyllinen komentosarjoja koskevan syntaksin tarkistamiseksi.

-u nounset

Kirjoita viestin vakiovirheeseen yritettäessä laajentaa muuttujaa, jota ei ole määritetty, ja jos kuori ei ole vuorovaikutteinen, poistu välittömästi. (POISTETTU 4,4 alfa)

-v jaaritteleva

Kuori kirjoittaa panoksensa vakiovirheeseen, kun se luetaan. Hyödyllisiä virheenkorjaukseen.

-x xtrace

Kirjoita jokainen komento normaaliin virheeseen (jota edeltää `+ 'ennen sen suorittamista. Hyödyllinen virheenkorjausta varten.

-q quietprofile

Jos -v tai -x asetuksia on asetettu, älä käytä niitä alustustiedostojen lukemisessa, koska ne ovat / etc / profile .profile ja tiedosto, jonkaENV ympäristömuuttuja.

-I IGNOREEOF

Ohita EOF: t tulosta interaktiivisesti.

-i interaktiivinen

Pakota kuori käyttäytymään interaktiivisesti.

-m monitori

Ota työn hallinta käyttöön (aseta automaattisesti vuorovaikutteisesti).

-S stdin

Lue komentoja vakiotulosta (asetetaan automaattisesti, jos tiedostojen argumentteja ei ole). Tällä asetuksella ei ole vaikutusta, kun se asetetaan sen jälkeen, kun kuori on jo käynnistynyt (eli sarjalla (1)).

V vi

Ota sisäänrakennettu vi (1) komentorivin editori käyttöön (poistaa käytöstä -E jos se on asetettu).

-E emacs

Ota käyttöön sisäänrakennettu emacs (1) komentorivin editori (poistaa käytöstä -V jos se on asetettu).

-b ilmoittaa

Ota asynkroninen ilmoitus taustatyön päättymisestä. (POISTETTU 4,4 alfa)

Leksikaalinen rakenne

Kuori lukee syötteen riveittäin tiedostosta ja jakaa sen sanoiksi välilyönnillä (aihiot ja välilehdet) ja tietyissä merkkijonoissa, jotka ovat erikoisia kuorelle, jota kutsutaan "operaattoreiksi". Kahdentyyppisiä operaattoreita ovat: valvontaoperaattorit ja uudelleenohjausoperaattorit (niiden merkitys käsitellään myöhemmin). Seuraavassa on luettelo toimijoista:

"Ohjausoperaattorit:"

& && ( ) ; ;; | ||

"Uudelleenohjausoperaattori:"

< > >| << >> <& >& <<- <>

Lainaaminen

Lainanottoa käytetään poistamaan tiettyjen merkkien tai sanojen erityinen merkitys kuoreen, kuten operaattoreihin, välilyöntiin tai avainsanoihin. Lainauksissa on kolme tyyppiä: sovitut yksittäiset lainausmerkit, sovitut kaksinkertaiset lainausmerkit ja vastakkainasettelu.

Kenoviiva

Vastakkaisella kielellä säilyy seuraavan merkin kirjaimellinen merkitys, lukuun ottamatta Aq newlinea. Aq-uudisviivaa edeltävä vastakkainasku käsitellään rivin jatkona.

Yksittäiset lainaukset

Yksittäisten lainausmerkkien sisältämät hahmot säilyttävät kaikkien merkkien kirjaimellisen merkityksen (paitsi yksittäisiä lainauksia, minkä vuoksi on mahdotonta laatia yksittäisiä lainauksia yhdellä lainattuun merkkijonoon).

Double Quotes

Kaksinkertaisten lainausmerkkien sisältämien hahmojen sulkeminen säilyttää kaikkien merkkien kirjaimellisen merkityksen, paitsi dollarin ($) backquote (`) ja backslash () Kaksinkertaisen lainausmerkin sisäpuolella olevan rivinvaihdon on historiallisesti kummallinen ja siinä käytetään vain seuraavia merkkejä:

$ `

Muuten se pysyy kirjaimellisesti.

Varatut sanat

Varatut sanat ovat sanoja, joilla on erityinen merkitys shellille ja jotka tunnistetaan rivin alussa ja valvontatoiminnan jälkeen. Seuraavat ovat varatut sanat:

! taelif Ta fi Ta kun Ta-tapaus

muuten TaTa: n puolesta Ta {Ta}

do Tatehnyt Ta, kunnes Ta taakse

Niiden merkitystä käsitellään myöhemmin.

aliakset

Alias ​​on nimi ja vastaava arvo, joka on määritetty alias (1) builtin komennolla. Aina kun varattua sanaa voi esiintyä (ks. Edellä) ja varatun sanan tarkistuksen jälkeen kuori tarkistaa sanan, jos se vastaa aliaksia. Jos se on, se korvaa sen syötevirralla sen arvolla. Esimerkiksi jos on olemassa alias nimeltä `` lf '', jonka arvo on `` ls -F '', niin panos:

Jos foobar

olisi tullut

ls -F foobar

Aliases antaa kätevä tapa naiiviille käyttäjille luoda komentojonotarkkuuksia ilman, että tarvitsee oppia luomaan funktioita argumenteilla. Niitä voidaan myös käyttää luomaan loivasti epäselvää koodia. Tätä käyttöä ei suositella.

komennot

Kuori tulkitsee sanat, jotka se lukee kielen mukaan, jonka määrittely ei kuulu tämän man sivun piiriin (katso BNFPOSIX 1003.2 asiakirja). Pohjimmiltaan kuitenkin linja luetaan ja jos rivin ensimmäinen sana (tai valvontatoiminnon jälkeen) ei ole varattu sana, niin shell on tunnistanut yksinkertaisen komennon. Muussa tapauksessa monimutkainen komento tai jokin muu erikoisrakenne on ehkä tunnustettu.

Yksinkertaiset komennot

Jos yksinkertainen komento on tunnistettu, kuori suorittaa seuraavat toimenpiteet:

  1. Johtavat sanat lomakkeesta `` name = arvo '' poistetaan käytöstä ja asetetaan yksinkertaisen komennon ympäristöön. Uudelleenohjausoperaattorit ja niiden argumentit (kuten jäljempänä kuvataan) poistetaan käytöstä ja tallennetaan käsittelyä varten.

  2. Jäljellä olevat sanat laajennetaan kappaleessa `` Laajennukset '' kuvatulla tavalla ja ensimmäinen jäljellä oleva sana katsotaan käskynimeksi ja komento sijaitsee. Jäljellä olevat sanat ovat komennon argumentteja. Jos komentojen nimeä ei saatu, niin kohdassa 1 tunnistetut `` name = value '' -muuttujakohdat vaikuttavat nykyiseen kuoriin.

  3. Uudelleenohjaukset suoritetaan seuraavassa osassa kuvatulla tavalla.

uudelleenohjaus

Uudelleenohjauksia käytetään muuttamaan, jos komento lukee tulonsa tai lähettää sen tuloksen. Yleensä uudelleenohjaukset avaavat, sulkevat tai kopioivat olemassa olevan viittauksen tiedostoon. Uudelleenohjaukseen käytetty yleinen muoto on:

n redir-op -tiedosto

missä redir-op on yksi aikaisemmin mainituista uudelleenohjausoperaattoreista. Seuraavassa on luettelo mahdollisista uudelleenohjauksista. Bq n on valinnainen numero, kuten `3 '(ei` Bq 3', joka viittaa tiedostojen kuvaajiin.

n> -tiedosto

Suorita normaalin lähdön (tai n) tiedostoon.

n> | tiedosto

Sama, mutta ohita -C vaihtoehto.

n >> -tiedosto

Lisää standardilähtö (tai n) tiedostoon.

n <tiedosto

Redirect standardin syöttö (tai n) tiedostosta.

n1 <& n2

Kopioi vakiotulo (tai n1) tiedostojen kuvaajasta n2.

n <&

Sulje vakio tulo (tai n).

n1> & n2

Kopioi standardituotos (tai n1) n2: sta.

n> &

Sulje vakio lähtö (tai n).

n <> -tiedosto

Avaa tiedoston lukemiseen ja kirjoittamiseen vakiotuloon (tai n).

Seuraava uudelleenohjaus kutsutaan usein nimellä `here-document ''

n << erotin

täällä-doc-tekstiä …

erotinmerkki

Kaikki teksti peräkkäisillä linjoilla rajojen poikki asti tallennetaan pois ja annetaan komennon käyttöön vakiotuloon tai tiedoston kuvaajaan n, jos se on määritetty.Jos aloitusviivalla määritelty erotin on mainittu, tässä-doc-tekstissä käsitellään kirjaimellisesti, muuten tekstiä kohdistetaan parametrien laajentamiseen, komennon korvaamiseen ja aritmeettiseen laajentamiseen (kuten on kuvattu luvussa "Laajennukset"). 'Jos operaattori on `` << -' 'sijasta `` <<' ', niin etusivulla olevat välilehdet täällä-doc-tekstissä poistetaan.

Haku ja toteutus

Komentoja on kolme: komentotulkin toiminnot, sisäänrakennetut komennot ja tavalliset ohjelmat - ja komentoa haetaan (nimen mukaan) tässä järjestyksessä. Ne toteutetaan eri tavoin.

Kun shell-toiminto suoritetaan, kaikki shell-sijainnin parametrit (paitsi $ 0, joka pysyy ennallaan) asetetaan shell-toiminnon argumentteille. Muuttujat, jotka on nimenomaisesti sijoitettu komennon ympäristöön (asettamalla tehtävät niille ennen funktion nimeä), tehdään paikallisesti funktioon ja asetetaan annettuihin arvoihin. Tällöin funktiomäärityksessä annettu komento suoritetaan. Asemointiparametrit palautetaan alkuperäisiin arvoihinsa komennon päätyttyä. Kaikki tämä tapahtuu nykyisessä kuoressa.

Shellin sisäänrakennukset suoritetaan sisäisesti kuoreen, eikä uutta prosessia kutu.

Muuten, jos komennon nimi ei vastaa funktiota tai sisäänrakennettua, komentoa haetaan tavallisena ohjelmana tiedostojärjestelmässä (kuten seuraavassa osassa kuvataan). Kun normaali ohjelma suoritetaan, kuori ajaa ohjelmaa ja ohjataan argumentit ja ympäristö ohjelmaan. Jos ohjelma ei ole normaali suoritettava tiedosto (ts. Jos se ei ala "taika-numerolla", jonkaASCII edustus on "#!", joten execve (2) palauttaa Er ENEEXECin sitten) kuori tulkitsee ohjelman alaotsakkeessa. Lapsikuori käynnistyy uudelleen tässä tapauksessa niin, että vaikutus on aivan kuin uusi kuori olisi kutsuttu käsittelemään ad-hoc-komentojonoa, paitsi että emolevyssä sijaitsevien hajautettujen komentojen sijainti muistetaan lapsi.

Huomaa, että tämän asiakirjan aikaisemmat versiot ja lähdekoodi itsessään harhaanjohtavat ja satunnaisesti viittaavat kuorikirjoitukseen ilman taika-numeroa "kuoriproseduurina".

Polkuhaku

Kun komento on löydetty, kuori näyttää ensin, onko sillä kyseinen nimi kuoriominaisuus. Sitten se etsii sisäänrakennettua komentoa kyseisellä nimellä. Jos sisäänrakennettua komentoa ei löydy, toinen kahdesta asiasta tapahtuu:

  1. Komentoja, jotka sisältävät rei'ityksen, suoritetaan yksinkertaisesti suorittamatta hakuja.

  2. Kuori hakee jokaisen merkinnän sisäänPATH puolestaan ​​komennon puolesta. ArvoPATHmuuttuja olisi sarja merkinnät erotettu kaksoispisteillä. Jokainen merkintä koostuu hakemiston nimestä. Nykyinen hakemisto voidaan merkitä epäsuorasti tyhjällä hakemiston nimellä tai nimenomaisesti yhdellä jaksolla.

Komento Lopeta tila

Jokaisella komennolla on poistumistila, joka voi vaikuttaa muiden komentojen komentojonojen toimintaan. Paradigma on se, että komento poistuu nollalla normaalia tai menestyksellistä, ja ei-nollaa vian, virheen tai väärän osoitteen vuoksi. Jokaisen komennon man-sivun tulee näyttää eri poistumiskoodit ja mitä he tarkoittavat. Lisäksi sisäänrakennetut komennot palauttavat poistokoodit, samoin kuin suoritettu kuori.

Monimutkaiset komennot

Monimutkaiset komennot ovat yksinkertaisia ​​komentoja, joissa on ohjaustoimintoja tai varattuja sanoja, yhdessä muodostaen suuremman monimutkaisen komennon. Yleisemmin komento on jokin seuraavista:

  • yksinkertainen komento
  • putki
  • lista tai yhdistelmäluettelo
  • yhdistekomento
  • toimintojen määrittely

Ellei toisin mainita, komennon poistumistila on komennon suorittama viimeinen yksinkertainen komento.

putkistojen

Kaasuputki on yhden tai useamman komento- jen sekvenssi, jonka ohjaaja on eronnut. Kaikkien viimeisen komennon vakio-lähtö on kytketty seuraavan komennon vakiotuloon. Viimeisen komennon vakiotulos peritään kuoresta, kuten tavallista.

Putkilinjan muoto on:

! komento1 | komento2 …

Komennon1 vakiotulo kytketään komennon vakiotuloon2. Putkilinjan oletetaan antavan vakiotulon, vakiotuloksen tai molempien komennon ennen komentojonon uudelleenohjausoperaattoreiden määrittelemää uudelleenohjausta.

Jos putki ei ole taustalla (käsitellään myöhemmin), kuori odottaa kaikkien komentoiden suorittamista.

Jos varattu sana! ei ole ennen putkijohtoa, poistumistila on viimeisen putkilinjan komennon poistumistila. Muussa tapauksessa poistumistilanne on looginen EI viimeisen komennon poistumistilasta. Eli jos viimeinen komento palauttaa nollan, poistumistila on 1; jos viimeinen komento palauttaa suuremman kuin nollan, poistumistila on nolla.

Koska standardipäätteen tai vakiotuloksen tai molempien putkijohdotus tapahtuu ennen uudelleenohjausta, sitä voidaan muuttaa uudelleenohjauksella. Esimerkiksi:

$ command1 2> & 1 | command2

lähettää sekä komennon vakiotuloksen että vakiorajin komennon vakiotuloon2.

A; tai terminaattori aiheuttaa sen, että edellinen AND-OR-lista (kuvattu seuraavaksi) suoritetaan peräkkäin; a & aiheuttaa edellisen AND-OR-luettelon asynkronisen suorituksen.

Huomaa, että toisin kuin jotkut muut kuoret, jokainen prosessointiprosessi on kutsuttu kuori lapsi (ellei se ole sisäänrakennettu kuori, jolloin se suoritetaan nykyisessä kuoressa - mutta sen vaikutukset ympäristöön pyyhitään).

Taustakomennot -

Jos komennon lopettaa ohjaimen operaattori ampersand (&), kuori suorittaa komennon asynkronisesti - eli kuori ei odota komennon päättymistä ennen seuraavan komennon suorittamista.

Taustan muotoisen komennon muoto on:

komento1 & komento2 & …

Jos kuori ei ole vuorovaikutteinen, asynkronisen komennon vakiotulo asetetaan / dev / nulliksi

Luettelot - Yleisesti ottaen

Luettelo on järjestys, jossa on nolla tai useampia komentoja, jotka on erotettu uusilla rivillä, puolipisteillä tai amperanssilla ja jotka mahdollisesti lopetetaan yhdellä kolmesta merkistä. Luettelossa olevat komennot toteutetaan siinä järjestyksessä kuin ne on kirjoitettu. Jos komennon seuraa ampersand, shell aloittaa komennon ja siirtyy välittömästi seuraavaan komentoon; muuten se odottaa komennon lopettamista, ennen kuin jatkat seuraavaan.

Lyhyen piirin luettelooperaattorit

`` && '' ja `` || 'ovat AND-OR-listaoperaattoreita. `&& '' suorittaa ensimmäisen komennon ja suorittaa toisen komennon iff ensimmäisen komennon poistumistilaan nolla. `` || '' on samanlainen, mutta suorittaa toisen komennon, koska ensimmäisen komennon poistumistilaan ei ole mitään. `` && '' ja `` || '' molemmilla on sama prioriteetti.

Flow-Control rakennukset - jos, vaikka, tapauksessa

If-komennon syntaksi on

jos luettelo

sitten luettelo

elif-luettelo

sitten luettelo …

muuten lista

fi

Sellaisen komennon syntaksi on

kun taas luettelo

tee luettelo

tehty

Nämä kaksi luetteloa suoritetaan toistuvasti, kun ensimmäisen luettelon poistumistila on nolla. Kunnes komento on samankaltainen, mutta siinä on sana vasta sen sijaan, että se toistuu, kunnes ensimmäisen listan poistumistilaan on nolla.

For -komennon syntaksi on

muuttuja sana …

tee luettelo

tehty

Sanat laajennetaan, ja luettelo suoritetaan toistuvasti muuttujan mukaan jokaiselle sanalle vuorotellen. do ja done voidaan korvata nimellä `` {'' ja ``} ''

Tauko- ja jatkokomennuksen syntaksi on

tauko num

jatka num

Tauko päättää numeron sisimmästä tai silmukoiden ajan. Jatka jatkaa seuraavalla iteraatiolla sisimmän silmukan. Nämä toteutetaan sisäänrakennettuina komennoina.

Käsikäskyn syntaksi on

tapaus sana

kuvio) luettelo ;;

ESAC

Kuvio voi itse asiassa olla yksi tai useampi kuvio (katso Shell-kuvioita myöhemmin kuvatulla tavalla) erotettuna `` `merkillä.

Ryhmittelykomennot yhdessä

Komennot voidaan ryhmitellä kirjoittamalla joko

(lista)

tai

{luettelo;

Ensimmäinen niistä suorittaa komennot alaotsakkeessa. Sisäänrakennetut komennot ryhmiteltyinä (luettelo) eivät vaikuta nykyiseen kuoriin. Toinen muoto ei haaraa toista kuorta, joten se on hieman tehokkaampi. Ryhmittelykomennot tällä tavoin voit ohjata tuotos aivan kuin yksi ohjelma:

{printf hello; printf-maailma n ";}> tervehdys

tehtävät

Funktion määritelmän syntaksi on

nimi () -komento

Toimintojen määritelmä on suoritettava lauseke; kun se on suoritettu, se asentaa nimetyn toiminnon ja palauttaa poistumistilan nollaksi. Komento on tavallisesti luettelo `` {'' ja ``} ''

Muuttujat voidaan ilmoittaa paikalliseksi funktioon käyttämällä paikallista komentoa. Tämä tulee näkyä toiminnon ensimmäiseksi lausunnoksi ja syntaksi on

paikallinen muuttuja | - …

Paikallinen toteutetaan sisäisenä komennuksena.

Kun muuttuja tehdään paikallisiksi, se perii aloitusarvon ja viedään sekä readonly-lippuja samassa nimessä olevasta muuttujasta ympäröivässä laajuudessa, jos sellainen on. Muussa tapauksessa muuttuja on aluksi poistettu käytöstä. Kuori käyttää dynaamista päämäärää, joten jos tekit muuttujan x paikallisen funktioon f, joka sitten kutsuu funktion g, viittaukset muuttujan x sisälle sisälle g viittaavat muuttujan x ilmoitettuun f: hen, ei globaaliin muuttujaan nimeltä x .

Ainoa erityisparametri, joka voidaan tehdä paikallisesti, on `` - '' `` - '' paikallisten kuoriasetusten muuttaminen, jotka muutetaan toiminnon sisäisen komennon kautta, palautetaan alkuperäisiin arvoihin, kun funktio palaa.

Palautuskomennon syntaksi on

palaa exitstatus

Se lopettaa suoritettavan toiminnon. Paluu toteutetaan sisäänrakennettuna komennona.

Muuttujat ja parametrit

Kuori säilyttää joukon parametreja. Nimeämää parametria kutsutaan muuttujaksi. Käynnistettäessä kuori kääntää kaikki ympäristömuuttujat kuorimuutoksiin. Uusia muuttujia voidaan asettaa lomakkeella

name = arvo

Käyttäjän asettamilla muuttujilla on oltava nimi, joka koostuu pelkästään aakkosista, numeerisista numeroista ja alaviivoista - joista ensimmäinen ei saa olla numeerinen. Parametri voidaan myös merkitä numerolla tai erikoismerkillä alla kuvatulla tavalla.

Sijoitusparametrit

Paikannusparametri on parametri, jota merkitään numerolla (n> 0). Kuori asettaa nämä aluksi sen komentorivin argumentteihin, jotka seuraavat komentosarjan nimiä. Sisäänrakennettua (1) voidaan myös asettaa tai nollata ne.

Erikoisparametrit

Erityinen parametri on parametri, jota merkitään jollakin seuraavista erikoismerkistä. Parametrin arvo on sen merkin vieressä.

*

Laajenee paikkatietoihin, alkaen yhdestä. Kun laajennus tapahtuu kaksinkertaisen lainatun jonoon, se laajenee yhteen kenttään kunkin parametrin arvolla, joka on erotettuIFS muuttuja, tai a josIFS on poistettu käytöstä.

@

Laajenee paikkatietoihin, alkaen yhdestä.Kun laajennus tapahtuu kaksinkertaisissa lainauksissa, jokainen asemointiparametri laajenee erillisenä argumenttina. Jos paikoitusparametreja ei ole, laajentaminen @ tuottaa nolla argumenttia, vaikka @ on kaksinkertainen. Tämä tarkoittaa periaatteessa sitä, että jos $ 1 on `` abc '' ja $ 2 on `` def ghi '', niin Qq $ @ laajenee kahteen argumenttiin:

abc def ghi

#

Laajenee paikkatietoparametrien lukumäärään.

?

Laajenee viimeisimmän putkijohdon poistumistilaan.

- (Hyphen.)

Laajennetaan nykyisiin vaihtoehtoisiin lipuihin (yhden kirjaimen vaihtoehtoiset nimet yhdistyneinä merkkijonoksi), kuten on määritetty kutsumalla setin sisäänrakennetulla komennolla tai epäsuorasti kuorella.

$

Laajennetaan kutsuttuun kuoriin. Alaotsakkeessa säilyy sama arvo $ kuin sen emo.

!

Laajennetaan nykyisen kuoren viimeisimmän taustekomennon prosessin tunnukselle. Putkilinjan osalta prosessin tunnus on viimeisen putkijohdon komento.

0 (nolla.)

Laajentaa kuoren tai komentotiedoston nimen.

Word laajennukset

Tämä lauseke kuvaa erilaisia ​​laajennuksia, jotka suoritetaan sanoilla. Kaikki laajennukset eivät suoriteta jokaisella sanalla, kuten myöhemmin selitetään.

Tilde-laajennukset, parametrien laajennukset, komennon korvaamiset, aritmeettiset laajennukset ja lainausmuutokset, jotka esiintyvät yhdellä sanalla, laajentuvat yhteen kenttään. Se on vain kentän jakamista tai polunimiä, joka voi luoda useita kenttiä yhdestä sanasta. Yksittäinen poikkeus tähän sääntöön on erikoisparametrin @ laajennus kaksinkertaisissa lainauksissa, kuten yllä on kuvattu.

Sana laajennuksen järjestys on:

  1. Tilde-laajennus, parametrien laajennus, komentojen korvaaminen, aritmeettinen laajennus (nämä kaikki esiintyvät samanaikaisesti).

  2. Kentän jakaminen suoritetaan vaiheilla (1) generoiduilla kentillä, elleiIFS muuttuja on nolla.

  3. Polunimen laajennus (ellei asetettu -f on voimassa).

  4. Laina Removal.

$-Merkkiä käytetään parametrien laajennuksen, komentojen korvaamisen tai aritmeettisen arvioinnin esittämiseen.

Tilde-laajennus (korvaamalla käyttäjän kotihakemisto)

Sanalla, joka alkaa epäsovennetulla tilde-merkillä (~), kohdistuu tilde-laajennus. Kaikki merkkijonoja (/) tai sanan loppua olevat merkit käsitellään käyttäjänimenä ja ne korvataan käyttäjän kotihakemistolla. Jos käyttäjänimi puuttuu (kuten ~ / foobar), tilde korvataan arvolla KOTI muuttuja (nykyisen käyttäjän kotihakemisto).

Parametrien laajennus

Parametrien laajennuksen muoto on seuraava:

$ {Ilmaisu}

jossa lauseke koostuu kaikista merkkeistä, kunnes vastaava ``} '' Any ``} 'välttyvät käänteiseltä tai lainatun merkkijonon sisällä, eikä upotettuja aritmeettisia laajennuksia, komennon korvauksia ja muuttuvia laajennuksia ole merkitty määritettäessä vastaava ``} ''

Yksinkertaisin muoto parametrien laajennukselle on:

$ {Parametri}

Korvataan parametrin arvo, jos sellainen on.

Parametrin nimi tai symboli voidaan sulkea rintasyötteihin, jotka ovat valinnaisia ​​lukuun ottamatta paikkatietoparametreja, joissa on enemmän kuin yksi numero tai kun parametria seuraa merkki, joka voidaan tulkita osaksi nimeä. Jos parametrin laajennus tapahtuu kaksinkertaisen lainausmerkin sisällä:

  1. Laajennuksen tuloksiin ei suoriteta polunimityyppistä laajennusta.

  2. Laajennuksen tuloksia ei suoriteta kentällä, lukuun ottamatta @.

Lisäksi parametrin laajennusta voidaan muokata käyttämällä yhtä seuraavista muodoista.

$ {Parametri: hi sanoja}

Käytä oletusarvoja. Jos parametri on poistettu tai nolla, sanan laajentaminen korvataan; muuten parametrin arvo korvataan.

$ {Parametri: = sana}

Määritä oletusarvot. Jos parametri on pois käytöstä tai nolla, sana laajentuu parametrille. Kaikissa tapauksissa parametrin lopullinen arvo korvataan. Tällä tavoin voidaan määrittää vain muuttujia, ei paikkatietoja tai erityisiä parametreja.

$ {Parametri:? Sana}

Ilmoita virhe, jos Null tai Unset. Jos parametri on poistettu tai nolla, sanan laajentaminen (tai sanoma, joka ilmaisee sen olevan epätarkka, jos sana jätetään pois) on kirjoitettu vakioversioksi ja kuori poistuu ei-nolla-poistumistilasta. Muussa tapauksessa parametrin arvo korvataan. Interaktiivinen kuori ei tarvitse poistua.

$ {Parametri: + sana}

Käytä vaihtoehtoista arvoa. Jos parametri on poistettu tai nolla, nolla on korvattu; muuten sanan laajentaminen korvataan.

Aikaisemmin esitetyissä parametriratkaisuissa kaksoispisteiden käyttäminen muodossa muodostaa testin parametrille, joka ei ole käytössä tai nolla; paksusuolen poisjättäminen johtaa testin parametriin, joka ei ole enää käytössä.

$ {# Parametri}

Merkkijono pituus. Parametrin arvon pituus merkissä.

Seuraavat neljä parametrien laajennuksen lajia koskevat aliverkkokäsittely. Kussakin tapauksessa mallin arvioinnissa käytetään kuvion sovitusmerkkiä (katso Shell-kuvioita), eikä säännöllistä ilmentymän merkintää. Jos parametri on * tai @, laajennuksen tulos ei täsmennetä. Täydellisen parametrin laajennusjonon sulkeminen kaksinkertaisiin lainausmerkkeihin ei aiheuta seuraavia neljää kuvionmerkin lajiketta, kun taas hattujen sisältämien merkkien merkitys vaikuttaa tähän.

$ {Parametri% sana}

Poista pienin suffiksin malli. Sanaa laajennetaan mallin tuottamiseksi. Parametrien laajentaminen johtaa sitten parametriin, jolloin pienin osa jälkipisteestä vastaa kuvion poistettu.

$ {Parametri %% sana}

Poista suurin suffix-malli.Sanaa laajennetaan mallin tuottamiseksi. Parametrien laajentaminen tuottaa sitten parametrin, jonka suurimman osan jäljessä on poistettu kuvio.

$ {Parametri # sana}

Poista pienin etuliite. Sanaa laajennetaan mallin tuottamiseksi. Parametrien laajentaminen johtaa sitten parametriin, jolloin pienin osa etuliitteestä vastaa kuvion poistettu.

$ {Parametri ## sanaa}

Poista suurin etuliite. Sanaa laajennetaan mallin tuottamiseksi. Parametrien laajentaminen johtaa sitten parametriin, jossa suurin osa etuliitteestä vastaa kuvio poistettu.

Komennon korvaaminen

Komennon korvaaminen mahdollistaa komennon tuoton korvata itse komennon nimen sijasta. Komennon korvaaminen tapahtuu, kun komento on suljettu seuraavasti:

$ (Komento)

tai Po `` backquoted '' versio Pc:

`command`

Kuori laajentaa komennon korvaamista suorittamalla komennon alitustilassa ja korvaamalla komennon korvauksen komennolla vakiotulosteella, poistamalla yhden tai useamman s korvikkeen lopussa. (Embedded s ennen tuotoksen loppua ei poisteta; Kenttähajautuksen aikana niitä voidaan kuitenkin kääntää s arvosta riippuenIFS ja lainaus, joka on voimassa.)

Aritmeettinen laajennus

Aritmeettinen laajennus tarjoaa mekanismin aritmeettisen ilmentymisen arvioimiseksi ja sen arvon korvaamiseksi. Aritmeettisen laajennuksen muoto on seuraava:

$ ((Ilmaus))

Ilmaisua pidetään ikään kuin kaksinkertaisena lainauksena, paitsi että lausekkeen sisällä olevaa kaksoislehteä ei käsitellä erityisesti. Kuori laajentaa kaikki rahakkeet lausekkeeseen parametrien laajennukseen, komennon korvaamiseen ja lainauksen poistoon.

Seuraavaksi kuori käsittelee tämän aritmeettisena ilmauksena ja korvaa lausekkeen arvon.

Valkoisen alueen halkaisu (kentän jakaminen)

Parametrien laajentamisen, komennon korvaamisen ja aritmeettisen laajennuksen jälkeen kuori skannaa tulokset laajennuksista ja korvauksista, joita ei esiintynyt kaksinkertaisissa lainauksissa kentän jakaumaa varten ja useita kenttiä voi johtaa.

Kuori käsittelee jokaisen merkinIFS kuin rajoitus ja käytä erotinta jakamaan parametrien laajennuksen ja komentojen korvaamisen tulokset kenttiin.

Polunimen laajennus (Tiedoston nimen luominen)

Ellei -f lippu on asetettu, tiedostonimen generointi suoritetaan sen jälkeen kun sanojen jako on valmis. Jokainen sana katsotaan kuvioiden sarjaksi, joka erotetaan viivoilla. Laajennusprosessi korvaa sanan kaikkien olemassa olevien tiedostojen nimet, joiden nimet voidaan muodostaa korvaamalla jokainen kuvio tietyllä kuvioidulla merkkijonolla. Tässä on kaksi rajoitusta: ensinnäkin kuvio ei voi olla merkkijono, joka sisältää viisteen, ja toiseksi kuvio ei voi olla merkkijono, joka alkaa jaksosta, ellei kuvion ensimmäinen merkki ole ajanjakso. Seuraavassa osassa kuvataan sekä Patternname Expansion että tapaus (1) -komennon käyttämät mallit.

Shell kuvioita

Kuviossa on tavallisia merkkejä, jotka vastaavat itseään ja meta-merkkejä. Metakarvat ovat ``! '' `` * '' ``? '' Ja `` '' Nämä merkit menettävät erityiset merkityksensä, jos ne on mainittu. Kun komento tai muuttuvan substituutio suoritetaan ja dollarin merkki- tai taaksehuutokauppoja ei double quoted, muuttujan tai komentotuloksen arvo skannataan näille merkille ja ne muuttuvat meta-merkiksi.

Tähti (`` * '') vastaa mitä tahansa merkkijonoa. Kysymysmerkki vastaa yhtä yksittäistä merkkiä. Vasen haarukka (`` '') esittää merkkiluokan. Merkkiluokan loppu on osoitettu a (`` ''), jos `` '' puuttuu, ja `` '' vastaa `` '' eikä merkkiluokkaa. Merkkiluokka vastaa mitä tahansa merkkiä hakasulkeiden välissä. Merkkijoukko voidaan määrittää miinusmerkillä. Hahmoluokkaa voidaan täydentää tekemällä huutomerkki merkkiluokan ensimmäisen merkin kanssa.

Jos haluat sisällyttää `` '' merkkijonoon, kirjoita se ensimmäiseksi merkiksi (``!! 'Jälkeen, jos sellainen on). Jos haluat lisätä miinusmerkki, aseta se ensimmäiseksi tai viimeiseksi merkiksi

komennoista

Tässä osassa luetellaan sisäänrakennetut komennot, jotka on rakennettu, koska ne tarvitsevat jonkin toiminnan, jota ei voi suorittaa erillisellä prosessilla. Näiden lisäksi on olemassa useita muita komentoja, jotka voidaan rakentaa tehokkuuteen (esim. Kaiku 1).

:

Null-komento, joka palauttaa 0 (true) exit-arvon.

. tiedosto

Shell kuulee ja suorittaa määrätyn tiedoston komennot.

alias nimi = merkkijono …

Jos name = merkkijono on määritetty, kuori määrittää aliaksen nimi arvoa jono Jos vain nimi on määritetty, aliaksen arvo nimi on tulostettu. Ilman argumentteja,alias builtin tulostaa kaikkien määritettyjen aliaksen nimet ja arvot (ksunalias)

bg työ …

Jatka määritettyjä töitä (tai nykyistä työtä, jos mitään töitä ei anneta) taustalla.

komento komento arg …

Suorita määritetty sisäänrakennettu komento. (Tämä on hyödyllinen, kun käytössä on shell-toiminto, jolla on sama nimi kuin sisäänrakennettu komento.)

CD hakemisto

Vaihda määritettyyn hakemistoon (oletus$ HOME) Jos merkintäCDPATH esiintyy ympäristön ympäristössäCD komento tai kuori muuttujaCDPATH on asetettu ja hakemiston nimi ei aloita viisteellä, sitten luettelossa olevat hakemistotCDPATH etsitään määritetty hakemisto. FormaattiCDPATH on sama kuinPATH Interaktiivisessa kuoressa,CD komento tulostaa hakemiston nimen, jota se todella vaihtoi, jos se eroaa käyttäjän antamasta nimestä. Nämä voivat olla erilaisia ​​joko koskaCDPATH käytettiin tai koska symbolinen linkki ylittyi.

eval merkkijono …

Yhdistä kaikki argumentit välilyönnillä. Sitten tarkista ja suorita komento uudelleen.

Exec komento arg …

Ellei komentoa jätetä pois, shell-prosessi korvataan määritetyllä ohjelmalla (joka on todellinen ohjelma, ei rakennettu kuori tai toiminto). Kaikki uudelleenohjauksetExeckomento on merkitty pysyväksi, jotta ne eivät kumoa milloinExec komento päättyy.

poistuminen exitstatus

Lopeta kuori prosessi. Jos exitstatus annetaan sille, että sitä käytetään kuoren poistumistilanteena; muuten edellisen komennon poistumistilasta käytetään.

viedä nimi…

export -p

Määritetyt nimet viedään niin, että ne tulevat näkyviin ympäristössä myöhemmissä komennoissa. Ainoa tapa vaihtaa muuttuja on poistaa se. Kuori mahdollistaa muuttujan arvon asettamisen samalla, kun sitä viedään kirjoittamalla

vienti nimi = arvo

Ilman argumentteja vienti-komennolla on kaikkien vietyjen muuttujien nimet. Kanssa -p-asetus määrittelee, että ulostulo muotoillaan sopivasti ei-interaktiiviseen käyttöön.

fc-e toimittaja ensimmäinen kestää

fc -l -nr ensimmäinen kestää

fc -s vanha = uusi ensimmäinen

fc sisäänrakennetut luettelot tai muokkaukset ja uudelleen suoritukset, aiemmin vuorovaikutteiseen kuoriin syötetyt komennot.

-editori

Muokkaa komentoja editorin nimeämän editorin avulla. Editorin merkkijono on komennon nimi, johon haetaan hakuaPATH muuttuja. ArvoFCEDIT muuttujaa käytetään oletuksena, kun -e ei ole määritelty. JosFCEDIT on nolla tai unset, arvonEDITOR muuttujaa käytetään. JosEDITOR on null tai unset, ed (editor) käytetään ed (1).

-l (ell)

Luettelo komennoista sen sijaan, että niitä kutsutaan editoriksi. Komennot kirjoitetaan ensimmäisen ja viimeisen operandin osoittamassa järjestyksessä, sillä ne vaikuttavat -R jossa jokainen komento edeltää komennon numero.

-n

Suppress komennonumerot listalle -l.

-r

Käänteisesti lueteltujen komentojen järjestys (käyttäen -l tai muokattu (ei kumpikaan -l ei myöskään -s)

-S

Tee komento uudestaan ​​suorittamatta käyttämättä editoriä.

ensimmäinen

kestää

Valitse luetteloitavat tai muokatut komennot. Aiempien käskyjen lukumäärät, jotka ovat käytettävissä, määräytyvät arvollaHISTSIZE muuttuja. Ensimmäisen tai viimeisen tai molempien arvot ovat jokin seuraavista:

+ Numero

Positiivinen luku, joka edustaa komentonumeroa; komennonumerot voidaan näyttää -l vaihtoehto.

-määrä

Negatiivinen desimaaliluku, joka edustaa komentoa, joka suoritettiin aiemmin komentoja. Esimerkiksi -1 on välittömästi edellinen käsky.

jono

Merkki, joka ilmaisee viimeksi syötetyn komennon, joka alkaa kyseisellä merkkijonolla. Jos vanhaa = uutta operandia ei ole myöskään määritetty -s ensimmäisen operandin merkkijonomuoto ei voi sisältää sulautettua tasa-arvoa.

Seuraavat ympäristömuuttujat vaikuttavat fc: n suorittamiseen:

FCEDIT

Käytettävän editorin nimi.

HISTSIZE

Aiempien komentojen määrä, jotka ovat käytettävissä.

FG Job

Siirrä määritettyä työtä tai nykyistä työtä etualalle.

getopts optstring var

POSIX getopts komento, ei saa sekoittaa Bell Labs - saatu getopt (1).

Ensimmäisen argumentin pitäisi olla sarja kirjaimia, joista kukin voi mahdollisesti olla kaksoispiste, joka ilmaisee, että vaihtoehto vaatii argumentin. Määritetty muuttuja asetetaan jäsennettyyn vaihtoehtoon.

getopts komento hylkää vanhemman getopt (1) -apuohjelman, koska se käsittelee välilyöntejä sisältäviä argumentteja.

getopts sisäänrakennettua voidaan käyttää optioiden ja niiden argumenttien saamiseksi parametrien luettelosta. Kun vedotaan,getopts sijoittaa seuraavan vaihtoehdon arvon vaihtoehdon merkkijonoon määritetyn kuori-muuttujan luettelossa var ja sen indeksi kuori-muuttujassaOPTIND Kun kuori vedetään,OPTIND on alustettu arvoon 1. Jokaista vaihtoehtoa, joka vaatii argumentin, ongetopts builtin sijoittaa sen shell-muuttujaanOPTARG Jos vaihtoehtoa ei sallita OPTSTRINGIN sittenOPTARG poistetaan.

OPTSTRINGIN on merkkijono tunnetuista vaihtoehtoisista kirjaimista. Jos kirjainta seuraa kaksoispiste, vaihtoehdolla odotetaan olevan argumentti, joka voi olla tai ei ole erillään siitä valkoisella tilalla. Jos vaihtoehtoa ei löydy odotetusta,getopts asettaa muuttujan var "`? ''getopts poistetaan sittenOPTARG ja kirjoittaa tulostus vakiovirheeseen. Määrittämällä kaksoispiste ensimmäisenä OPTSTRINGIN kaikki virheet jätetään huomiotta.

Nollaero palautetaan, kun viimeinen vaihtoehto on saavutettu. Jos jäljellä olevia argumentteja ei ole,getopts asetetaan var erityiselle vaihtoehdolle `` - '' muuten asetetaan var ``? ''

Seuraava koodifragmentti osoittaa, kuinka komentoa voidaan käsitellä komennolla, joka voi ottaa vaihtoehtoja a ja b ja vaihtoehto c, joka vaatii argumentin.

kun taas getopts abc: ftehdätapaus $ f ina | b) lippu = $ f ;;c) carg = $ OPTARG ;;?) echo $ USAGE; exit 1 ;;ESACtehtysiirto `expr $ OPTIND - 1`

Tämä koodi hyväksyy jokin seuraavista vastaava:

cmd -acarg -tiedostocmd -a -c arg -tiedostocmd -carg -a -tiedostocmd -a -carg - tiedosto

hash -rv komento…

Kuori ylläpitää hash-taulukkoa, joka muistaa komennot. Ilman mitään väitteitä,hash komento tulostaa tämän taulukon sisällön. Merkinnät, joita ei ole tarkasteltu viimeisen jälkeenCD komento on merkitty tähdellä; nämä merkinnät ovat mahdollisia.

Argumenttien avullahash komento poistaa määritetyt komennot haja-taulukosta (elleivät ne ole toiminnot) ja etsii sitten ne. Kanssa -v vaihtoehto, hash tulostaa komentojen sijainnit, kun se löytää ne. The -R vaihtoehto poistaa hash-komennon poistaa kaikki hash-taulukon merkinnät lukuun ottamatta toimintoja.

jobid Job

Tulosta prosessien prosessin tunnukset töissä. Jos Job argumentti jätetään pois, nykyistä työtä käytetään.

työpaikkaa

Tässä komennossa luetellaan kaikki taustaprosessit, jotka ovat nykyisen Shell-prosessin lapsia.

pwd

Tulosta nykyinen hakemisto. Sisäänrakennettu komento voi poiketa saman nimen ohjelmasta, koska sisäänrakennettu komento muistaa nykyisen hakemiston sen sijaan, että se keräisi sen uudelleen joka kerta. Tämä tekee siitä nopeamman. Jos nykyinen hakemisto kuitenkin nimetään uudelleen, on sisäänrakennettu versiopwd jatkaa vanhan nimen hakemista hakemistoon.

lukea-p nopea -R muuttuja …

Kysely tulostetaan, jos -p vaihtoehto on määritetty ja vakiotulo on terminaali. Sitten riviltä luetaan standardi syöte. Poistettava uusi rivi poistetaan riviltä ja rivi jakautuu edellä kuvatulla tavalla sanojen jakoa koskevassa osassa kuvatulla tavalla ja kappaleet määritetään muuttujille järjestyksessä. Ainakin yksi muuttuja on määriteltävä. Jos muuttujia on enemmän kuin paloja, jäljellä olevat kappaleet (yhdessä merkkien kanssa)IFS jotka erottivat ne) määritetään viimeiselle muuttujalle. Jos muuttujia on enemmän kuin kappaletta, jäljellä oleville muuttujille annetaan null merkkijono.lukea builtin tarkoittaa menestystä, ellei syötössä ole EOF, jolloin vika palautetaan.

Oletusarvoisesti, ellei -R vaihtoehto on määritetty, vastakkainasetti `` '' toimii paikan merkkinä, jolloin seuraava merkki käsitellään kirjaimellisesti. Jos kenoviivaa seuraa rivinvaihto, kenoviiva ja uusi rivi poistetaan.

Lue ainoastaan nimi…

readonly -p

Määritetyt nimet on merkitty vain lukuiksi, joten niitä ei voi myöhemmin muuttaa tai poistaa käytöstä. Kuori sallii muuttujan arvon asettamisen samanaikaisesti, kun se merkitään lukemaan vain kirjoittamalla

readonly name = arvo

Ilman argumentteja readonly-komennolla luetellaan kaikkien luku-muuttujien nimet. Kanssa -p -asetus määrittelee, että ulostulo muotoillaan sopivasti ei-interaktiiviseen käyttöön.

sarja { -vaihtoehtoja. | + vaihtoehdot | - arg …

sarja komento suorittaa kolme eri toimintoa.

Ei argumentteja, siinä luetellaan kaikkien kuori muuttujien arvot.

Jos asetuksia annetaan, se asettaa määritetyt valintalistat tai tyhjentää ne kohdassa Sx-argumenttiluettelon käsittelyssä kuvatulla tavalla.

Set-komennon kolmas käyttö on asettaa shellin paikkatietoparametrien arvot määritettyihin argumentteihin. Jos haluat muuttaa paikkatietoparametrejä muuttamatta vaihtoehtoja, käytä ensimmäistä argumenttia asetukseksi `` - ''. Jos mitään argumentteja ei ole, asetettu komento tyhjentää kaikki sijaintiparametrit (vastaa suoritusta `` shift $ #. ''

muuttuva arvo

Määrittää arvon muuttujaan. (Yleensä on parempi kirjoittaa muuttuja = arvo kuin käyttääsetVar- setVar-on tarkoitettu käytettäväksi toiminnoissa, jotka antavat arvoja muuttujille, joiden nimet siirretään parametreiksi.)

siirtää n

Vaihda asemointiparametrit n kertaa.siirtää asettaa arvon $1 arvoon $2 arvo $2 arvoon $3 ja niin edelleen, vähentämällä arvoa $# yksi. Jos n on suurempi kuin paikkatietoparametrien lukumäärä,siirtää antaa virheilmoituksen ja poistuu palautusasemalla 2.

ajat

Tulosta kerätty käyttäjä- ja järjestelmäajankohta kuorelle ja prosessit, jotka suoritetaan shellista. Palautustila on 0.

ansa toiminta signaali…

Syy kuori jäsentää ja toteuttaa toimenpidettä, kun jokin määritetyistä signaaleista vastaanotetaan. Signaalit määritellään signaalinumerolla. Jos signaali- on0 toiminta suoritetaan, kun kuori poistuu. toiminta voi olla tyhjä tai `` - '' ensimmäinen aiheuttaa määrätyn signaalin ohittamisen ja jälkimmäinen aiheuttaa oletustoiminnan ottamisen. Kun kuori haarautuu alasekvenssistä, se nollaa kiinni jääneet (mutta ei huomiotta) signaalit oletustoimintoon.ansa komennolla ei ole vaikutusta signaaleihin, jotka jätettiin huomiotta kuoren sisääntuloon.

tyyppi nimi …

Tulkitse jokainen nimi komennona ja tulosta komentohakemuksen resoluutio. Mahdolliset ratkaisut ovat: kuori-avainsana, alias, shell builtin, komento, seurattu alias ja ei löydy. Aliaksen kohdalla alias laajennus tulostetaan; komentojen ja seurattavien aliaksien kohdalla komennon täydellinen polunimi tulostetaan.

ulimit-H-S -a -tfdscmlpn arvo

Kysy tai tee kova tai pehmeä raja prosessille tai aseta uudet rajat.Kovalevyn (joka ei missään prosessissa saa loukata ja jota ei saa nostaa, kun sitä on laskettu) välillä on valinnanvapaus ja pehmeä raja (joka aiheuttaa prosessien ilmoittamisen, mutta ei välttämättä tapettu ja jota voidaan nostaa) nämä liput:

H

asettaa tai tiedustella kovaa rajaa

-S

asettaa tai tiedustella pehmeitä rajoja. Jos ei -H ei myöskään -S on määritetty, pehmeä raja näytetään tai molemmat rajat asetetaan. Jos molemmat ovat määriteltyjä, viimeinen voittaa.

Kysyttävä tai asetettu raja valitaan siten, että jokin näistä lipuista määrätään:

-a

näytä kaikki nykyiset rajat

-t

näyttää tai asettaa CPU-ajan raja (sekunteina)

-f

näyttää tai asettaa suurimman luotavan tiedoston raja (512 tavun lohkossa)

-D

näyttää tai asettaa prosessin tietosegmentin koon raja (kilotavuina)

-S

näytä tai määritä prosessin pino-kokeen raja (kilotavuina)

-C

näyttää tai asettaa suurimman suoritetun hylsyn kokoon (512 tavun lohkoihin)

-m

näyttää tai asettaa raja fyysiseen muistiin, jota voidaan käyttää prosessissa (kilotavuina)

-l

näyttää tai asettaa raja, kuinka paljon muistia prosessi voi lukita mlock (2): lla (kilotavuina)

-p

näyttää tai asettaa rajan kyseiselle käyttäjälle kerättävien prosessien määrään

-n

näyttää tai asettaa raja numeroita tiedostoja prosessi voi olla auki kerralla

Jos mikään näistä ei ole määritetty, se on rajattu tiedostokoko, joka näkyy tai asetetaan. Jos arvo määritetään, raja asetetaan kyseiseen numeroon. muussa tapauksessa näytössä näkyy nykyinen raja.

Syyllisen prosessin rajat voidaan näyttää tai asettaa käyttämällä sysctl (8) -apuohjelmaa.

umask naamio

Aseta umaskin arvo (ks. Umask (2)) määritettyyn oktaaliarvoon. Jos argumentti jätetään pois, umask-arvo tulostetaan.

unalias- nimi

Jos nimi on määritetty, kuori poistaa kyseisen aliaksen. Jos - on määritetty, kaikki aliakset poistetaan.

unset nimi…

Määritetyt muuttujat ja toiminnot ovat asetettuja ja niitä ei ole viety. Jos jokin nimi vastaa sekä muuttujaa että funktiota, sekä muuttuja että funktio ovat poissa käytöstä.

odota Job

Odota, että määritetty työ on valmis ja palauttaa työn viimeisen prosessin poistumistilan. Jos argumentti jätetään pois, odota, että kaikki työt loppuvat ja palaa poistumistilaan nolla.

Komentorivin muokkaus

Kunsh käytetään vuorovaikutteisesti päätelaitteesta, nykyisestä komennosta ja komentohistoriasta (ksfc Sx Builtinsissa) voidaan muokata vi-mode-komentorivin muokkauksella. Tämä tila käyttää jäljempänä kuvattuja komentoja, jotka ovat samanlaisia ​​kuin vi man-sivulla kuvatut osajoukot. Komento `set '-o vi mahdollistaa vi-tilan muokkaamisen ja sijoittaa sh vi-insert-tilaan. Kun vi-mode on otettu käyttöön, sh voidaan vaihtaa insertti- ja komento-tilan välillä. Toimittajaa ei ole kuvattu kokonaisuudessaan täällä, mutta se on myöhemmässä asiakirjassa. Se on samanlainen kuin vi: kirjoittaminen Aq ESC heittää sinut komentoon VI komennon tilaan. Aq paluu palaessaan komentotilassa siirtää rivin kuoriin.

Käytä mies komento ( % mies ), miten komentoa käytetään tietyssä tietokoneessa.