Popol - Linux Command - Unix Command

NÁZOV

sh - tlmočník príkazov ( shell )

SYNOPSA

sh [- / + aCefnuvxIimqsVEbc ] [- o dlhé meno ] -words [ cieľ ... ]

POPIS

Sh je štandardný príkazový interpret pre systém. Aktuálna verzia sh sa práve mení, aby zodpovedala špecifikáciám POSIX 1003.2 a 1003.2a pre shell. Táto verzia má mnoho funkcií, ktoré v niektorých ohľadoch vyzerajú podobne ako Korn shell, ale nie sú klonom Korn shell (pozri ksh (1)). V tomto pláne sú začlenené iba funkcie určené POSIXom a niekoľkými rozšíreniami Berkeley. Očakávame, že POSIX je v súlade s časom 4.4 BSD. Táto manuálová stránka nie je určená ako návod alebo úplná špecifikácia shellu.

Prehľad

Shell je príkaz, ktorý číta riadky buď zo súboru, alebo z terminálu, interpretuje ich a všeobecne spúšťa iné príkazy. Je to program, ktorý sa spúšťa, keď sa používateľ prihlási do systému (hoci používateľ môže vybrať iný shell pomocou príkazu chsh (1)). Obal implementuje jazyk, ktorý obsahuje konštrukty riadenia toku, makro zariadenia, ktoré okrem ukladania dát ponúkajú rôzne funkcie spolu so schopnosťami spracovania histórie a riadkov. Zahŕňa mnoho funkcií na podporu interaktívneho používania a má tú výhodu, že interpretačný jazyk je spoločný pre interaktívne aj neinteraktívne použitie (shell skripty). To znamená, že príkazy môžu byť napísané priamo do bežiaceho shellu alebo môžu byť vložené do súboru a súbor môže byť spustený priamo cez shell.

invokácie

Ak nie sú prítomné žiadne argy a ak je štandardný vstup shell pripojený k terminálu (alebo ak je nastavený príznak - i ) a voľba - c nie je prítomná, shell sa považuje za interaktívny shell . Interaktívny shell vo všeobecnosti vyzve pred každým príkazom a spracúva chyby programovania a príkazov inak (ako je popísané nižšie). Pri prvom spustení shell kontroluje argument 0 a ak začína pomlčkou `- ', shell sa tiež považuje za prihlasovací shell. Za normálnych okolností to systém robí automaticky, keď sa používateľ prvýkrát prihlási. Prihlasovací shell najprv prečíta príkazy zo súborov / etc / profile a .profile, ak existujú. Ak je premenná prostredia ENV nastavená pri vstupe do shellu alebo je nastavená v .profile prihlasovacieho shellu, shell potom číta príkazy zo súboru s názvom ENV Preto by používateľ mal umiestniť príkazy, ktoré sa majú vykonať iba na čas prihlásenia v súbore .profile a príkazy, ktoré sa vykonávajú pre každý shell vo vnútri súboru ENV . Ak chcete nastaviť premennú ENV na určitý súbor, umiestnite nasledujúci riadok do vášho .profile vášho domovského adresára

ENV = $ HOME / .shinit; export ENV

nahradiť `` .shinit '' ľubovoľný názov súboru, ktorý chcete. Keďže súbor ENV je čítaný pre každé vyvolanie shell vrátane skriptov shell a neinterakčných škrupín, nasledujúca paradigma je užitočná na obmedzenie príkazov v súbore ENV na interaktívne vyvolávania. Položte príkazy do `` case '' a ` esac '' nižšie (tieto príkazy sú opísané neskôr):

prípad $ - v * i *)

# príkazy pre interaktívne použitie

...

esac

Ak boli zadané argumenty príkazového riadku okrem možností, potom shell spracuje prvý argument ako názov súboru, z ktorého sa majú čítať príkazy (shellový skript) a zostávajúce argumenty sú nastavené ako polohové parametre shell ($ 1 , $ 2, atď.). Inak shell prečíta príkazy z jeho štandardného vstupu.

Spracovanie zoznamu argumentov

Všetky voľby s jednotlivými písmenami majú zodpovedajúce meno, ktoré možno použiť ako argument pre voľbu - o . Názov nastavenia je vedený vedľa možnosti jedného písmena v nižšie uvedenom popise. Zadaním pomlčky `` - '' sa táto voľba zapne, zatiaľ čo používanie plus `` + '' túto možnosť zakáže. Nasledujúce voľby je možné nastaviť z príkazového riadku alebo so súpravou (1) vstavanou (popísanou neskôr).

- allexport

Exportovať všetky priradené premenné. (NEIMPLEMENTED pre 4,4 a)

-c

Čítať príkazy z príkazového riadku. Z štandardného vstupu nebudú čítať žiadne príkazy.

-Cloblobber

Neprepíšte existujúce súbory s ``> '' (NEIMPLEMENTED pre 4.4alpha)

-e errexit

Ak nie je interaktívny, ihneď opustite, ak neúspešný príkaz zlyhá. Stav ukončenia príkazu sa považuje za explicitne overený, ak sa príkaz používa na ovládanie príkazu if elif, alebo kým príkaz je ľavým operandom operátora `` & '' alebo `` || '.

-f noglob

Zakázať rozšírenie názvu cesty .

-n noexec

Ak nie sú interaktívne, čítajú príkazy, ale nevykonávajú ich. To je užitočné pri kontrole syntaxe skriptov pre shell.

-u nounset

Napíšte správu štandardnej chybe pri pokuse o rozbalenie premennej, ktorá nie je nastavená a ak nie je interaktívny shell, okamžite opustite. (NEIMPLEMENTED pre 4,4 a)

-v verbose

Shell zapisuje svoj vstup do štandardnej chyby pri čítaní. Užitočné pre ladenie.

-x xtrace

Napíšte každý príkaz na štandardnú chybu (pred ním je pred znakom "+") Užitočné pri ladení.

-q sileprofile

Ak boli nastavené voľby - v alebo - x , neuplatňujte ich pri čítaní inicializačných súborov, ktoré sú / etc / profile .profile a súbor špecifikovaný premennou prostredia ENV .

- Neviem

Ignorovať EOF od vstupu, keď je interaktívny.

-i interaktívny

Vynúťte shell interaktívne.

-m monitor

Zapnite funkciu kontroly úloh (nastavte automaticky pri interaktívnom nastavení).

-s stdin

Čítanie príkazov zo štandardného vstupu (nastavenie automaticky, ak nie sú k dispozícii žiadne argumenty). Táto možnosť nemá žiadny účinok, keď je nastavená po spustení shellu (tj so súborom (1)).

-V vi

Aktivujte vstavaný editor víťazov (vi) (1), ak je nastavený.

-E emaky

Povoliť vstavaný emacs (1) editor príkazového riadku (vypne - V, ak bol nastavený).

-b oznámiť

Povoliť asynchrónne oznamovanie dokončenia pozadia. (NEIMPLEMENTED pre 4,4 a)

Lexikálna štruktúra

Shell číta vstup z hľadiska riadkov zo súboru a rozdelí ho do slov na prázdnych miestach (medzery a karty) a na určité sekvencie znakov, ktoré sú špeciálne pre shell nazývané "operátori". Existujú dva typy operátorov: kontrolných operátorov a operátorov presmerovania (ich význam je uvedený neskôr). Nasleduje zoznam operátorov:

"Ovládaní operátori:"

& && (); ;; | ||

"Operátor presmerovania:"

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

citovať

Citácia sa používa na odstránenie špeciálneho významu určitých znakov alebo slov do shell, ako sú operátory, medzery alebo kľúčové slová. Existujú tri typy citácií: zodpovedajúce jednotlivé úvodzovky, zodpovedajúce dvojité úvodzovky a spätné lomítko.

obrátenej lomítko

Spätné lomítko zachováva doslovný význam nasledujúceho znaku, s výnimkou Aq newline. Spätné lomítko, ktoré predchádza Aq newline, sa považuje za pokračovanie v riadku.

Jednoduché ponuky

Uzatvorenie znakov v jednoduchých úvodzovkách zachováva doslovný význam všetkých znakov (okrem jednoduchých úvodzoviek, čo znemožňuje uvádzať jednotlivé úvodzovky v jednoznačnom reťazci).

Dvojité kotácie

Zapísanie znakov v rámci dvojitých úvodzoviek zachováva doslovný význam všetkých znakov s výnimkou znakov dolary ($) a spätného lomka (\) Spätné lomítko vo vnútri dvojitých úvodzoviek je historicky podivné a slúži na citovanie iba nasledujúcich znakov:

$ `\

Inak zostane doslovný.

Vyhradené slová

Vyhradené slová sú slová, ktoré majú špeciálny význam pre shell a sú rozpoznané na začiatku čiary a po operátorovi kontroly. Nasledujúce sú rezervované slová:

! Ta elif Ta Ta Ta, zatiaľ čo Ta prípad

inak Ta za Ta potom Ta {Ta}

do Ta done Ta až do Ta if Ta esac

Ich význam sa neskôr diskutuje.

prezývky

Alias ​​je názov a zodpovedajúca hodnota nastavená pomocou príkazu alias (1) vstavaný. Kedykoľvek môže dôjsť k vyhradenému slovu (pozri vyššie) a po kontrole rezervovaných slov shell skontroluje, či sa zhoduje s aliasom. Ak tak urobí, nahradí ho vo vstupnom toku jeho hodnotou. Napríklad, ak existuje alias s názvom `` lf '' s hodnotou `` ls-F '', potom vstup:

Ak foobar

by sa stal

ls -F foobar

Aliasy poskytujú pohodlný spôsob, ako naivní užívatelia môžu vytvárať skratky pre príkazy bez nutnosti naučiť sa vytvárať funkcie s argumentmi. Môžu byť tiež použité na vytvorenie lexikálne temného kódu. Toto použitie sa odrádza.

príkazy

Shell interpretuje slová, ktoré číta podľa jazyka, ktorého špecifikácia je mimo rozsahu tejto manuálovej stránky (pozri dokument BNF v dokumente POSIX 1003.2). V podstate je čítaný riadok a ak prvé slovo riadku (alebo po riadiacej jednotke) nie je vyhradené slovo, potom shell rozpoznal jednoduchý príkaz. V opačnom prípade mohol byť rozpoznaný zložitý príkaz alebo iný špeciálny konštrukt.

Jednoduché príkazy

Ak bol rozpoznaný jednoduchý príkaz, shell vykoná nasledujúce akcie:

  1. Prvé slová formulára `` name = value '' sa zbavia a priradia sa do prostredia jednoduchého príkazu. Operátor presmerovania a jeho argumenty (ako je popísané nižšie) sú oddelené a uložené na spracovanie.
  2. Zvyšné slová sa rozširujú tak, ako je to popísané v časti nazvanej "Rozšírenia" a prvé zostávajúce slovo sa považuje za príkaz a príkaz sa nachádza. Zvyšné slová sú považované za argumenty príkazu. Ak nebol výsledný názov príkazu, potom priradenie premennej `` name = value '' rozpoznané v položke 1 ovplyvní aktuálny shell.
  3. Presmerovania sa vykonávajú podľa popisu v ďalšej časti.

presmerovanie

Presmerovania sa používajú na zmenu miesta, kde príkaz číta vstup alebo odošle svoj výstup. Vo všeobecnosti presmerovania otvárajú, zatvárajú alebo duplikujú existujúci odkaz na súbor. Celkový formát použitý na presmerovanie je:

[n] redir-op súbor

kde redir-op je jedným z vyššie uvedených operátorov presmerovania. Nasleduje zoznam možných presmerovaní. Bq n je voliteľné číslo, ako v "3" (nie "Bq 3", ktoré odkazuje na deskriptor súborov.

[n]> súbor

Presmerovanie štandardného výstupu (alebo n) do súboru.

[n]> súbor

Rovnako, ale prepíšete voľbu - C.

[n] >> súbor

Pridajte štandardný výstup (alebo n) do súboru.

[n]

Presmerovanie štandardného vstupu (alebo n) zo súboru.

[n1] <& n2

Duplicitný štandardný vstup (alebo n1) z deskriptora súboru n2.

[n] <& -

Zatvorte štandardný vstup (alebo n).

[n1]> & n2

Duplicitný štandardný výstup (alebo n1) z n2.

[n]> & -

Zatvorte štandardný výstup (alebo n).

[n] <> súbor

Otvoriť súbor na čítanie a zápis na štandardný vstup (alebo n).

Nasledujúce presmerovanie sa často nazýva "tu-dokument"

[n] << oddeľovač

Tu-doc-textu ...

oddeľovač

Celý text na postupných riadkoch až po oddeľovač sa uloží a sprístupní príkazu na štandardnom vstupe alebo deskriptoru súborov n, ak je zadaný. Ak sa uvádza oddeľovač špecifikovaný na úvodnom riadku, text here-doc sa spracováva doslovne, inak sa text podrobí expanzii parametrov, substitúcii príkazov a aritmetickej expanzii (ako je popísané v časti o rozšíreniach) "Ak je operátor` `<< - '' namiesto` `<< '', potom sú prúžky vedúce do here-doc-text odstránené.

Vyhľadávanie a vykonávanie

Existujú tri typy príkazov: shell funkcie, vstavané príkazy a normálne programy - a príkaz sa hľadá (podľa mena) v tomto poradí. Každý z nich je vykonaný iným spôsobom.

Keď sa vykoná funkcia shellu, všetky pozície parametrov shell (okrem $ 0, ktoré zostávajú nezmenené) sú nastavené na argumenty funkcie shell. Premenné, ktoré sú explicitne umiestnené v prostredí príkazu (umiestnením priradení k nim pred názvom funkcie), sú vykonané lokálne pre danú funkciu a sú nastavené na zadané hodnoty. Potom sa vykoná príkaz uvedený v definícii funkcie. Po zadaní príkazu sa polohové parametre obnovia na pôvodné hodnoty. Toto všetko sa vyskytuje v rámci súčasného prostredia.

Vstavané Shell sú vykonávané vnútorne do shell, bez toho, aby sa vytvoril nový proces.

V opačnom prípade, ak sa názov príkazu nezhoduje s funkciou alebo vstavanou, príkaz sa vyhľadá ako bežný program v súborovom systéme (ako je popísané v ďalšej časti). Keď sa bežný program spustí, shell spustí program, ktorý prenesie argumenty a prostredie do programu. Ak program nie je bežný spustiteľný súbor (tj ak nezačína s "magickým číslom", ktorého reprezentácia ASCII je "#!", Tak execve (2) vráti Er ENOEXEC potom) shell bude interpretovať program v subshell. Detský shell sa v tomto prípade bude znovu inicializovať, takže efekt bude podobný tomu, ako keby bol spustený nový shell pre manipuláciu s ad-hoc shellovým skriptom s tým rozdielom, že miesto hashových príkazov nachádzajúcich sa v nadradenom shell bude pamätať dieťa.

Treba poznamenať, že predchádzajúce verzie tohto dokumentu a samotný zdrojový kód zavádzajúci a sporadicky odkazujú na shellový skript bez magického čísla ako "procedúra shell".

Hľadanie ciest

Pri vyhľadaní príkazu najprv sa shell pokúsi zistiť, či má funkciu shell týmto názvom. Potom hľadá vstavaný príkaz podľa tohto mena. Ak nie je nájdený vstavaný príkaz, stane sa jedna z dvoch vecí:

  1. Názvy príkazov obsahujúce lomítko sa jednoducho spúšťajú bez vykonania akýchkoľvek vyhľadávaní.
  2. Služba shell vyhľadá každý príkaz v riadku PATH . Hodnota premennej PATH by mala byť séria záznamov oddelených dvojbodkami. Každá položka sa skladá z názvu adresára. Aktuálny adresár môže byť implicitne označený prázdnym názvom adresára alebo explicitne jedným obdobím.

Stav ukončenia príkazu

Každý príkaz má stav ukončenia, ktorý môže ovplyvniť správanie ostatných príkazov shell. Paradigmom je, že príkaz vystupuje nulou pre normálne alebo úspešné a nenulové pre chybu, chybu alebo falošnú indikáciu. Na manuálovej stránke pre každý príkaz by mali byť uvedené rôzne výstupné kódy a to, čo znamenajú. Navyše vstavané príkazy vrátia kódy výstupu, rovnako ako vykonaná funkcia shell.

Komplexné príkazy

Komplexné príkazy sú kombinácie jednoduchých príkazov s riadiacimi operátormi alebo rezervovanými slovami, ktoré spoločne vytvárajú väčší komplexný príkaz. Vo všeobecnosti je príkaz jedným z nasledujúcich:

  • jednoduchý príkaz
  • potrubie
  • zoznamu alebo zloženého zoznamu
  • zložený príkaz
  • definícia funkcie

Pokiaľ nie je uvedené inak, stav výstupu príkazu je stav posledného jednoduchého príkazu vykonaného príkazom.

plynovody

Potrubie je sekvencia jedného alebo viacerých príkazov oddelených kontrolným operátorom |. Štandardný výstup všetkých príkazov okrem posledného príkazu je pripojený k štandardnému vstupu ďalšieho príkazu. Štandardný výstup posledného príkazu sa zvyčajne dedí z shellu.

Formát potrubia je:

[!] príkaz1 [ command2 ...]

Štandardný výstup príkazu1 je pripojený k štandardnému vstupu príkazu2. Štandardný vstup, štandardný výstup alebo obidva príkazy sa považujú za priradené potrubím pred akýmkoľvek presmerovaním špecifikovaným operátormi presmerovania, ktoré sú súčasťou príkazu.

Ak sa potrubie nenachádza na pozadí (diskutované neskôr), shell čaká na dokončenie všetkých príkazov.

Ak rezervované slovo! nepredchádza potrubie, výstupný stav je stav výstupu posledného príkazu špecifikovaného v potrubí. V opačnom prípade je stav výstupu logickým NOT stavu ukončenia posledného príkazu. To znamená, že ak posledný príkaz vráti nulu, stav výstupu je 1; ak posledný príkaz vráti hodnotu väčšiu ako nula, stav výstupu je nulový.

Vzhľadom na to, že priradenie potrubia štandardného vstupu alebo štandardného výstupu alebo obidvoch sa uskutočňuje pred presmerovaním, môže byť zmenené presmerovaním. Napríklad:

$ command1 2> & 1 | príkaz2

posiela štandardný výstup aj štandardnú chybu príkazu1 na štandardný vstup príkazu2.

A; alebo spôsobí, že predchádzajúci AND-OR-list (popísaný ďalej) bude vykonaný postupne; a & spôsobí asynchrónne vykonanie predchádzajúceho zoznamu AND-OR.

Všimnite si, že na rozdiel od niektorých ďalších shellov je každý proces v potrubí dieťaťom vyvolávacieho shellu (ak nie je shell vstavaný, v takom prípade sa spustí v aktuálnom shell - ale každý účinok, ktorý má na životné prostredie, je vymazaný).

Pozadie príkazov -

Ak príkaz ukončí operátor riadenia ampersand (&), shell vykoná príkaz asynchrónne - to znamená, že shell nečaká na dokončenie príkazu pred vykonaním ďalšieho príkazu.

Formát pre spustenie príkazu na pozadí je:

príkaz1 a [príkaz2 & ...]

Ak shell nie je interaktívny, štandardný vstup asynchrónneho príkazu je nastavený na / dev / null

Zoznamy - Vo všeobecnosti

Zoznam je sekvencia nula alebo viacerých príkazov oddelených novými čiarkami, bodkočiarkami alebo ampersandmi a voliteľne ukončená jedným z týchto troch znakov. Príkazy v zozname sa vykonajú v poradí, v akom sú napísané. Ak príkaz nasleduje ampersand, shell začne príkaz a okamžite prejde na ďalší príkaz; inak čaká na ukončenie príkazu predtým, než prejdete na ďalší príkaz.

Zoznam operátorov s krátkym okruhom

`` && '' a `` || '' sú AND-OR zoznam operátorov. `` && '' vykoná prvý príkaz a potom vykoná druhý príkaz iff stav výstupu prvého príkazu je nulový. `` || '' je podobný, ale vykoná druhý príkaz iff stav výstupu prvého príkazu je nenulový. `` && '' a `` || 'obidve majú rovnakú prioritu.

Konštrukcie riadenia prietoku - ak, kým pre prípad

Syntax príkazu if je

ak je zoznam
potom zozname
[zoznam elifov
potom zoznam] ...
[zoznam iných]
fi

Syntax príkazu while je

v zozname
do zoznamu
hotový

Tieto dva zoznamy sa opakujú, zatiaľ čo stav výstupu prvého zoznamu je nulový. Príkaz "do" je podobný, ale má slovo až dovtedy, kým sa nezmení, čo spôsobí, že sa opakuje, až kým stav výstupu prvého zoznamu nebude nulový.

Syntax príkazu for je

pre premennú v slove ...
do zoznamu
hotový

Slová sa rozširujú a potom sa zoznam opakuje s premennou nastavenou na každé slovo postupne. urobiť a urobiť môže byť nahradený s "` {'a ``}' '

Syntax príkazu prerušiť a pokračovať je

zlomiť [num]
pokračovať [num]

Prerušenie ukončí počet najvnútornejších pre alebo za okamihy. Pokračujte ďalej s ďalšou iteráciou vnútornej smyčky. Tieto sú implementované ako zabudované príkazy.

Syntax príkazu case je

slovo v prípade
vzor) zoznam;
...
esac

Vzor môže byť v skutočnosti jeden alebo viac vzorov (pozri opisy Shell, ktoré sú popísané neskôr), oddelené znakmi `` ''.

Skupinové príkazy spoločne

Príkazy môžu byť zoskupené aj písaním

(Zoznam)

alebo

{list;

Prvý z nich vykoná príkazy v podsúbore. Zabudované príkazy zoskupené do (zoznamu) neovplyvnia súčasný shell. Druhá forma nemá iný plášť, takže je o niečo efektívnejšia. Zoskupovanie príkazov spolu týmto spôsobom umožňuje presmerovať ich výstupy, akoby boli jedným programom:

{printf ahoj; printf world \ n ";}> pozdrav

funkcie

Syntax definície funkcie je

príkaz name ()

Definícia funkcie je spustiteľný príkaz; pri spustení nainštaluje funkciu s názvom name a vráti stav výstupu nulu. Príkaz je zvyčajne zoznam priložený medzi `` {'a ``}' '

Premenné môžu byť vyhlásené za lokálne pre funkciu pomocou lokálneho príkazu. Toto by sa malo objaviť ako prvé vyhlásenie o funkcii a syntax je

miestne [premenná -] ...

Local je implementovaný ako vstavaný príkaz.

Keď sa premenná urobí lokálne, zdedí pôvodnú hodnotu a exportované a čítané príznaky z premennej s rovnakým názvom v okolitom rozsahu, ak existuje. V opačnom prípade je premenná pôvodne zrušená. Shell používa dynamické zoradenie, takže ak vytvoríte premennú x local na funkciu f, ktorá potom volá funkciu g, odkazy na premennú x vytvorenú vo vnútri g sa budú vzťahovať na premennú x deklarovanú vo vnútri f, nie na globálnu premennú s názvom x ,

Jediným špeciálnym parametrom, ktorý sa dá urobiť lokálne, je `` - '' Vytváranie lokálnych akýchkoľvek možností pre shell, ktoré sa zmenia cez nastavený príkaz vo funkcii, ktorá sa má obnoviť na pôvodné hodnoty, keď sa funkcia vráti.

Syntax príkazu návratu je

vrátiť [exitstatus

Ukončí aktuálne vykonávajúcu funkciu. Návrat sa implementuje ako vstavaný príkaz.

Premenné a parametre

Obal udržiava súbor parametrov. Parameter označený menom sa nazýva premenná. Pri spustení sa shell prepne všetky premenné prostredia na premenné shell. Pomocou formulára môžete nastaviť nové premenné

name = hodnota

Premenné nastavené používateľom musia mať názov pozostávajúci výlučne z abecedy, číslic a podčiarkov - prvý z nich nesmie byť číselný. Parameter môže byť tiež označený číslom alebo špeciálnym znakom, ako je vysvetlené nižšie.

Polohové parametre

Polohový parameter je parameter označený číslom (n> 0). Skopec ich spočiatku nastaví na hodnoty argumentov príkazového riadku, ktoré sledujú názov shellového skriptu. Súprava (1) môže byť tiež použitá na ich nastavenie alebo resetovanie.

Špeciálne parametre

Špeciálny parameter je parameter označený jedným z nasledujúcich špeciálnych znakov. Hodnota parametra je uvedená vedľa znaku.

*

Rozbalí sa na pozíciu parametrov, počnúc od jedného. Keď sa expanzia vyskytne v rámci dvojitého reťazca , rozšíri sa na jedno pole s hodnotou každého parametra oddeleného prvým znakom premennej IFS alebo pomocou , ak je IFS nenastavený.

@

Rozbalí sa na pozíciu parametrov, počnúc od jedného. Keď sa expanzia vyskytne v rámci dvojitých úvodzoviek, každý pozitívny parameter sa rozširuje ako samostatný argument. Ak nie sú žiadne polohové parametre, rozšírenie @ generuje nulové argumenty, aj keď @ je dvojitá. Čo v podstate znamená napríklad, že $ 1 je `` abc '' a $ 2 je `` def ghi '', potom Qq $ @ sa rozširuje na dva argumenty:

abc def ghi

#

Rozbalí sa na počet pozicových parametrov.

?

Rozbalí sa na stav výstupu posledného potrubia.

- (Hyphen.)

Rozbalí sa na príznaky aktuálnej voľby (mená jednotiek, ktoré sú navzájom zoskupené do reťazca), ako je to uvedené pri vyvolaní, nastaveným vstavaným príkazom alebo implicitne pomocou shell.

$

Rozbalí sa do ID procesu vyvolaného shell. Podsúbor zachová rovnakú hodnotu $ ako jeho rodič.

!

Rozbalí sa na ID procesu najnovšieho pozadia príkazu vykonaného z aktuálneho shell. Pre potrubie je ID procesu posledný príkaz v potrubí.

0 (Nula.)

Rozbalí sa na názov shellového alebo shellového skriptu.

Rozšírenia o slovo

Toto ustanovenie popisuje rôzne rozšírenia, ktoré sa vykonávajú na slovách. Nie všetky rozšírenia sa vykonávajú pri každom slove, ako je vysvetlené neskôr.

Rozšírenia Tilde, rozšírenia parametrov, výmeny príkazov, aritmetické rozšírenia a odstraňovania citátov, ktoré sa vyskytujú v rámci jedného slova rozbaliť do jedného poľa. Je to len rozdelenie poľa alebo rozšírenie cesty, ktoré môže vytvoriť viac polí z jedného slova. Jedinou výnimkou z tohto pravidla je rozšírenie špeciálneho parametra @ v rámci dvojitých úvodzoviek, ako bolo opísané vyššie.

Poradie rozšírenia slova je:

  1. Rozšírenie Tilde, rozšírenie parametrov, výmena príkazov, aritmetická expanzia (všetky sa vyskytujú súčasne).
  2. Rozdelenie poľa sa vykonáva na poliach vygenerovaných v kroku (1), pokiaľ nie je premenná IFS null.
  3. Rozšírenie názvu cesty (ak nie je nastavené nastavenie - f ).
  4. Odstránenie citácie.

$ Znak sa používa na zavedenie rozšírenia parametrov, výmeny príkazov alebo aritmetického hodnotenia.

Tilde Expansion (nahrádzanie domovského adresára používateľa)

Slovo začínajúce neznačeným tildovým znakom (~) je vystavené expanzii tilde. Všetky znaky až po lomku (/) alebo koniec slova sa považujú za používateľské meno a nahrádzajú sa domovským adresárom používateľa. Ak používateľské meno chýba (ako v ~ / foobar), tilde sa nahradí hodnotou premennej HOME (aktuálny domovský adresár používateľa).

Rozšírenie parametrov

Formát rozšírenia parametrov je nasledovný:

kde vyjadrenie pozostáva zo všetkých znakov, až kým nezhodí ``} '' Akákoľvek ``} '' unikla spätným lomítkom alebo v rámci citovaného reťazca a znaky v embedded aritmetickej expanzii, náhrady príkazov a variabilné rozšírenia sa nepreskúmajú pri určovaní zodpovedajúce ``} ''

Najjednoduchšia forma rozšírenia parametrov je:

Hodnota parametra, ak existuje, je nahradená.

Názov parametra alebo symbol môže byť priložený do zátvoriek, ktoré sú voliteľné s výnimkou polohových parametrov s viac ako jednou číslicou alebo po parametri nasleduje znak, ktorý by sa mohol interpretovať ako súčasť názvu. Ak sa vo vnútri dvojitých ukážok vyskytne rozšírenie parametrov:

  1. Rozšírenie názvu cesty sa nevykonáva na základe výsledkov rozšírenia.
  2. Rozdelenie poľa nie je vykonané na základe výsledkov rozšírenia, s výnimkou @.

Okrem toho môže byť rozšírenie parametra upravené pomocou jedného z nasledujúcich formátov.

Použiť predvolené hodnoty. Ak je parameter nenastavený alebo nulový, rozšírenie slova sa nahradí; v opačnom prípade sa hodnota parametra nahrádza.

Priradiť predvolené hodnoty. Ak je parameter nenastavený alebo nulový, rozšírenie slova je priradené parametru. Vo všetkých prípadoch sa konečná hodnota parametra nahrádza. Preto môžu byť priradené iba premenné, nie pozičné parametre alebo špeciálne parametre.

Označte chybu, ak je Null alebo Unset. Ak je parameter nenastavený alebo nulový, rozšírenie slova (alebo hlásenie, že je vypnuté, ak sa slovo vynechalo) sa zapíše do štandardnej chyby a shell sa ukončí s nenulovým stavom ukončenia. V opačnom prípade sa hodnota parametra nahrádza. Interaktívny shell nemusí skončiť.

Použite alternatívnu hodnotu. Ak je parameter nenastavený alebo null, null sa nahradí; v opačnom prípade sa rozšírenie slova nahrádza.

V predtým zobrazených rozšíreniach parametrov používanie dvojbodky vo formáte vedie k testu pre parameter, ktorý je nenastavený alebo nulový; Vynechanie hrubého čreva vedie k testu pre parameter, ktorý je iba nenastavený.

Dĺžka reťazca. Dĺžka znakov v hodnote parametra.

Nasledujúce štyri odrody rozšírenia parametrov zabezpečujú spracovanie podreťaze. V každom prípade sa na vyhodnotenie vzorov použije vzorová zhoda notácie (pozri Shell Patterns), namiesto regulárnej výrazovej notácie. Ak je parameter * alebo @, výsledok rozšírenia nie je špecifikovaný. Uzavretie plného rozšírenia parametrov v dvojitých úvodzovkách nespôsobuje citovanie nasledujúcich štyroch odrôd znakových šablón, zatiaľ čo citovanie znakov vo vzorkách má tento účinok.

Odstrániť najmenší vzor. Slovo sa rozbalí tak, aby vytvorilo vzor. Rozšírenie parametrov potom vyúsťuje do parametra, pričom najmenšia časť prípony sa zhoduje s vymazaným vzorom.

Odstráňte najväčší vzor príp. Slovo sa rozbalí tak, aby vytvorilo vzor. Rozšírenie parametrov potom vyúsťuje do parametra, pričom najväčšia časť prípony sa zhoduje s vymazaným vzorom.

Odstrániť najmenší vzor predpony. Slovo sa rozbalí tak, aby vytvorilo vzor. Rozširovanie parametrov potom vyúsťuje do parametra, pričom najmenšia časť predpony zodpovedá vymazanému vzoru.

Odstráňte najväčší vzor predpony. Slovo sa rozbalí tak, aby vytvorilo vzor. Rozšírenie parametrov potom vyúsťuje do parametra, pričom najväčšia časť predpony zodpovedá vymazanému vzoru.

Command Substitution

Nahradenie príkazu umožňuje nahradiť výstup príkazu namiesto samotného mena príkazu. Nahradenie príkazov nastane, keď príkaz je uzavretý nasledovne:

$ (Command)

alebo Po `` backquoted '' verzia Pc:

`command`

Obal rozširuje výmenu príkazu vykonaním príkazu v prostredí subshell a nahrádzaním príkazu nahradiť štandardným výstupom príkazu, pričom odstráni sekvencie jedného alebo viacerých s na konci náhrady. (Embedded s pred koncom výstupu sa neodstránia, avšak počas rozdelenia poľa môžu byť preložené do s v závislosti od hodnoty IFS a uvedie sa, že je v platnosti.)

Aritmetická expanzia

Aritmetická expanzia poskytuje mechanizmus hodnotenia aritmetického vyjadrenia a náhrady jeho hodnoty. Formát pre aritmetické rozšírenie je nasledovný:

$ ((Expression))

Výraz sa považuje za dvojciferný, s výnimkou toho, že dvojitá citácia vo vnútri výrazu sa nezaobchádza špeciálne. Tento shell rozširuje všetky znaky výrazu na rozšírenie parametrov, nahradenie príkazu a odstránenie citácie.

Ďalej shell pokladá za aritmetický výraz a nahrádza hodnotu výrazu.

Rozdelenie bielych priestorov (rozdelenie poľa)

Po rozšírení parametrov, výmeny príkazov a aritmetickej expanzie prehliadač prehladá výsledky rozšírení a substitúcií, ktoré sa nevyskytli v dvojitých úvodzovkách pre rozdelenie poľa a môže dôjsť k viacerým polia.

Obal pokrýva každý znak IFS ako oddeľovač a používa oddeľovače na rozdelenie výsledkov rozšírenia parametrov a nahradenia príkazov do polí.

Rozšírenie názvu cesty (generovanie názvu súboru)

Pokiaľ nie je nastavený príznak - f , generovanie názvu súboru sa vykoná po dokončení rozdelenia slov. Každé slovo je zobrazené ako séria vzorov oddelených lomkami. Proces rozšírenia nahradí slovo názvami všetkých existujúcich súborov, ktorých názvy môžu byť vytvorené nahradením každého vzoru reťazcom, ktorý zodpovedá zadanému vzoru. Existujú dve obmedzenia: po prvé, vzorec sa nemôže zhodovať s reťazcom obsahujúcim lomku a za druhé, vzor nemôže zodpovedať reťazcu začínajúcemu obdobím, pokiaľ prvý znak vzorky nie je periódou. Nasledujúca časť popisuje vzory, ktoré sa používajú pri príprave rozšírenia cesty aj príkazu (1).

Shell vzory

Vzor pozostáva z bežných znakov, ktoré sa zhodujú sami a meta-znaky. Meta-znaky sú `` `` `* ''` ``? '' A `` ['' Tieto postavy strácajú svoje špeciálne významy, ak sú citované. Keď sa vykoná príkazová alebo variabilná výmena a znaky dolára alebo zadnej ponuky nie sú dvojité, hodnota premennej alebo výstupu príkazu sa pre tieto znaky skenuje a premenia sa na meta-znaky.

Hviezdička (`` * '') sa zhoduje s akýmkoľvek reťazcom znakov. Otazník zodpovedá ľubovoľnému jednotlivému znaku. Ľavý držiak (`` ['') predstavuje triedu znakov. Koniec znakovej triedy je označený znakom (``] ''), ak ``] '' chýba, potom `` ['' sa zhoduje s `` ['' namiesto zavedenia triedy znakov. Trieda znakov sa zhoduje s ľubovoľnými znakmi medzi hranatými zátvorkami. Rozsah znakov môže byť zadaný pomocou znamienka mínus. Trieda znakov môže byť doplnená tým, že sa výkričník stane prvým znakom triedy znakov.

Ak chcete zahrnúť znak "`] '' do triedy znakov, urobte z neho prvú uvedenú znakovú značku (za `` if ''). Ak chcete zahrnúť znamienko mínus, urobte z nej prvý alebo posledný znak

vstavaných príkazov

Táto časť uvádza vstavané príkazy, pretože je potrebné vykonať nejakú operáciu, ktorú nemožno vykonať samostatným procesom. Okrem toho existuje niekoľko ďalších príkazov, ktoré môžu byť použité pre efektívnosť (napr. Echo 1).

:

Príkaz null, ktorý vráti hodnotu 0 (true).

, súbor

Príkazy v zadanom súbore sa čítajú a spúšťajú shell.

alias [ name [ = string ... ]]

Ak je zadaný reťazec name = string , shell definuje názov aliasu s hodnotovým reťazcom Ak je zadaný len názov , vytlačí sa hodnota aliasu. Bez argumentov alias vstavaný vytlačí mená a hodnoty všetkých definovaných aliasov (pozri unalias)

bg [ práca] ...

Pokračujte v zadanom úlohách (alebo aktuálnej úlohe, ak nie sú zadané žiadne úlohy) na pozadí.

command command arg ...

Vykonajte zadaný vstavaný príkaz. (Toto je užitočné, ak máte funkciu shell s rovnakým názvom ako vstavaný príkaz.)

cd [ adresár ]

Prepnúť na zadaný adresár (predvolené $ HOME) Ak sa položka pre CDPATH objaví v prostredí príkazu cd alebo je nastavená premenná shell CDPATH a názov adresára sa nezačne lomítkom, vyhľadajú sa adresáre uvedené v CDPATH pre zadaný adresár. Formát CDPATH je rovnaký ako formát PATH V interaktívnom shell príkaz cd vytlačí názov adresára, na ktorý sa skutočne prepne, ak sa toto líši od názvu, ktorý používateľ dal. Tieto sa môžu líšiť buď preto, že sa použil mechanizmus CDPATH, alebo sa prekročil symbolický odkaz.

eval string ...

Spojte všetky argumenty s medzerami. Potom príkaz opätovne analyzujte a vykonajte.

exec [ command arg ... ]

Pokiaľ nie je vynechaný príkaz, proces shell sa nahradí špecifikovaným programom (ktorý musí byť skutočný program, nie funkcia shell). Všetky presmerovania príkazu exec sú označené ako trvalé, takže nie sú vrátené, keď príkaz exec skončí.

výstup [ exitstatus ]

Ukončite shell proces. Ak je exitstatus daný, používa sa ako výstupný stav shellu; inak sa použije stav výstupu predchádzajúceho príkazu.

exportovať názov ...

export -p

Zadané mená sa exportujú tak, že sa objavia v prostredí nasledujúcich príkazov. Jediný spôsob, ako exportovať premennú, je zrušiť ju. Obal umožňuje nastaviť hodnotu premennej v tom istom čase, keď sa exportuje písaním

export name = hodnota

Bez argumentov príkaz exportu obsahuje zoznam všetkých exportovaných premenných. Pomocou možnosti - p je výstup vhodne formátovaný pre neinteraktické použitie.

fc [- e editor ] [ prvý [ posledný ]]

fc-l [- nr ] [ prvý [ posledný ]]

fc -s [ staré = nové ] [ prvé ]

Fc vstavaný zoznam, alebo upravuje a re-spustí, príkazy predtým zadané do interaktívne shell.

-e editor

Pomocou editora pomenovaného editorom upravte príkazy. Reťazec editora je názov príkazu, ktorý je predmetom vyhľadávania prostredníctvom premennej PATH . Hodnota v premennej FCEDIT sa použije ako predvolená, keď e - nie je zadané. Ak je hodnota FCEDIT nulová alebo nenastavená, použije sa hodnota premennej EDITOR . Ak je EDITOR null alebo unset, ed (1) sa používa ako editor.

-l (ell)

Zoznam príkazov skôr ako vyvolanie editora na nich. Príkazy sú napísané v poradí označenom prvým a posledným operandom ako ovplyvnené príkazom - r s každým príkazom, ktorému predchádza príkazové číslo.

-n

Potlačte čísla príkazov pri výbere s -l.

-r

Zmeniť poradie uvedených príkazov (s - l alebo upravených (s ani - l ani - s)

-s

Opätovne spustite príkaz bez vyvolania editora.

najprv

posledná

Vyberte príkazy na zoznam alebo úpravu. Počet predchádzajúcich príkazov, ku ktorým je možné pristupovať, je určený hodnotou premennej HISTSIZE . Hodnota prvej alebo poslednej alebo obidvoch je jedna z nasledujúcich:

[+] Číslo

Pozitívne číslo reprezentujúce číslo príkazu; príkazové čísla sa môžu zobraziť s voľbou - l .

clonové číslo

Záporné desatinné číslo predstavujúce príkaz, ktorý bol vykonaný predtým počet príkazov. Napríklad -1 je bezprostredne predchádzajúci príkaz.

povrázok

Reťazec označujúci naposledy zadaný príkaz, ktorý začína reťazcom. Ak starý = nový operand nie je tiež špecifikovaný - s reťazec prvej operandy nemôže obsahovať vložený rovný znak.

Nasledujúce premenné prostredia ovplyvňujú vykonanie fc:

FCEDIT

Názov editora, ktorý chcete použiť.

HISTSIZE

Počet predchádzajúcich príkazov, ktoré sú prístupné.

fg [ job ]

Presuňte zadanú úlohu alebo aktuálnu úlohu do popredia.

getopts optstring var

Príkaz POSIX getopts nesmie byť zamenený s getopt oddeleným Bell Labs (1).

Prvým argumentom by mala byť séria písmen, z ktorých každá môže byť prípadne nasledovaná dvojbodkou, ktorá naznačuje, že táto voľba vyžaduje argument. Zadaná premenná je nastavená na možnosť analyzovať.

Príkaz getopts odmieta starší nástroj getopt (1) kvôli manipulácii s argumentmi obsahujúcimi medzery.

Getopts vstavaný môže byť použitý na získanie možností a ich argumentov zo zoznamu parametrov. Po vyvolaní získa getopts hodnotu z nasledujúcej voľby z reťazca možností v zozname v premennej shell špecifikovanej varom a je jej indexom v premennej shell OPTIND Keď je shell vyvolaný, OPTIND je inicializovaný na 1. Pre každú voľbu, ktorá vyžaduje argument, getopts builtin ho umiestni do premennej shell OPTARG Ak nie je v optstringe povolená voľba, OPTARG bude deaktivovaný.

optstring je reťazec rozpoznaných písmen. Ak je za písmenom nasledované dvojbodka, očakáva sa, že daná možnosť bude mať argument, ktorý môže alebo nemusí byť oddelený od neho prázdnym priestorom. Ak nie je nájdený znak voľby, kde sa očakáva, getopts nastaví premennú var na ``? '' Getopts potom zruší OPTARG a zapíše výstup na štandardnú chybu. Zadaním dvojbodky ako prvého znaku optstring budú všetky chyby ignorované.

Keď sa dosiahne posledná možnosť, vráti sa nenulová hodnota. Ak nie sú žiadne zostávajúce argumenty, getopts nastaví var na špeciálnu voľbu, `` - '' inak, nastaví var na ``? ''

Nasledujúci fragment kódu ukazuje, ako by sa mohli spracovávať argumenty pre príkaz, ktorý môže mať voľby [a] a [b] a možnosť [c], ktorá vyžaduje argument.

zatiaľ čo getopts abc: f
robiť
prípade $ f in
a | b) flag = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; východ 1;
esac
hotový
posun 'expr $ OPTIND - 1`

Tento kód bude akceptovať akékoľvek z nasledujúcich:

cmd súbor súboru
súbor súboru cmd -a -c arg
cmd -carg - súbor súboru
cmd -a -carg - súbor

hash -rv príkaz ...

Shell udržiava hash tabuľku, ktorá si pamätá umiestnenie príkazov. Bez akýchkoľvek argumentov príkaz hash vytlačí obsah tejto tabuľky. Položky, ktoré sa nehľadali od posledného príkazu cd, sú označené hviezdičkou; tieto položky môžu byť neplatné.

Pomocou argumentov príkaz hash odstráni zadané príkazy z tabuľky hashov (pokiaľ nie sú funkcie) a potom ich vyhľadá. S voľbou - v , hash vytlačí umiestnenie príkazov tak, ako ich nájde. Možnosť - r spôsobí, že príkaz hash odstráni všetky položky v tabuľke hash s výnimkou funkcií.

jobid [ job ]

Vytlačte procesné ID procesov v úlohe. Ak sa vynechá argument úlohy , použije sa aktuálna úloha.

pracovných miest

Tento príkaz uvádza všetky procesy na pozadí, ktoré sú deťmi súčasného procesu shell.

pwd

Vytlačte aktuálny adresár. Vstavaný príkaz sa môže líšiť od programu s rovnakým názvom, pretože vstavaný príkaz si pamäta, čo je aktuálny adresár skôr než rekomprimovať ho vždy. To robí to rýchlejšie. Ak je však súčasný adresár premenovaný, zabudovaná verzia pwd bude pokračovať v tlačení starého názvu adresára.

čítať premennú [- p prompt ] [- r ] ...

Príkaz sa vytlačí, ak je zadaná voľba - p a štandardný vstup je terminál. Potom sa zo štandardného vstupu prečíta čiarka. Nový riadok v riadku sa vymaže z riadku a riadok sa rozdelí podľa popisu v časti o rozdelení slov vyššie a kusy sa priradia k premenným v poradí. Musí byť špecifikovaná aspoň jedna premenná. Ak je viac častí ako premenné, zostávajúce kúsky (spolu s znakmi v IFS, ktoré ich oddelili) sú priradené poslednej premennej. Ak existuje viac premenných ako kusov, zvyšné premenné sú priradené nulovému reťazcu. Čítaná vstavaná verzia bude znamenať úspech, pokiaľ sa na vstup nezobrazí EOF, v takomto prípade sa vráti chyba.

V predvolenom nastavení, ak nie je zadaná voľba - r , spätné lomítko `` \ '' sa správa ako znak úteku, čo spôsobí doslovný prístup k nasledujúcemu znaku. Ak po spätnom lomítku nasleduje nový riadok, spätné lomítko a nový riadok sa vymažú.

readonly meno ...

readonly -p

Zadané mená sú označené ako iba na čítanie, takže ich nemožno následne upraviť alebo zrušiť. Schránka umožňuje nastaviť hodnotu premennej v tom istom čase, keď je označená ako čítaná iba písaním

readonly name = hodnota

Bez argumentov príkaz readonly uvádza mená všetkých premenných len na čítanie. Pomocou možnosti - p je výstup vhodne formátovaný pre neinteraktické použitie.

nastaviť [{- možnosti | + možnosti - arg ... ]

Príkaz set vykoná tri rôzne funkcie.

Bez argumentov uvádza zoznam hodnôt všetkých premenných shell.

Ak sú uvedené voľby, nastavia zadané príznaky alebo ich vymažú podľa popisu v časti s názvom Spracovanie zoznamu argumentov Sx.

Tretím použitím príkazu set je nastavenie hodnôt polohových parametrov shellu na zadané argumenty. Ak chcete zmeniť polohové parametre bez toho, aby ste menili nejaké možnosti, použite `` - '' ako prvý argument, ktorý chcete nastaviť. Ak nie sú prítomné žiadne argumenty, príkaz set vymaže všetky polohové parametre (ekvivalentné vykonaniu posunu $ #.

variabilná hodnota

Priradí hodnotu k premennej. (Vo všeobecnosti je lepšie zapisovať premennú = hodnotu a nie použiť setvar setvar je určená na použitie vo funkciách, ktoré priradia hodnoty premenným, ktorých mená sú odovzdávané ako parametre.)

posun [ n ]

Posuňte polohové parametre n krát. Posun nastaví hodnotu $ 1 na hodnotu $ 2 hodnotu $ 2 na hodnotu $ 3 atď., Čím sa zníži hodnota $ # o jednu. Ak je n väčší ako počet polohových parametrov, posun vydá chybové hlásenie a ukončí stav s návratom 2.

doba

Vytlačte nahromadené používateľské a systémové časy pre shell a pre procesy spustené z shell. Stav vrátenia je 0.

trap akčný signál ...

Pretože shell analyzuje a vykoná akciu pri prijatí niektorého zo špecifikovaných signálov. Signály sú špecifikované číslom signálu. Ak je signál 0, akcia sa vykoná, keď sa ukončí shell. akcia môže byť nulová alebo `` - '' prvý spôsobí, že zadaný signál bude ignorovaný a ten spôsobí, že sa má vykonať predvolená činnosť. Keď shell vyrazí z podsúboru , resetuje signály zachytené (ale nie ignorované) na predvolenú akciu. Príkaz trap nemá žiadny vplyv na signály, ktoré boli ignorované pri vstupe do shell.

zadajte [ name ... ]

Interpretujte každý názov ako príkaz a vytlačte rozlíšenie vyhľadávania príkazu. Možné rozlíšenia sú: kľúčové slovo shell, alias, shell inštalovaný , príkaz, sledovaný alias a nenájdený. Pre aliasy sa vytlačí rozšírenie aliasu; pre príkazy a sledované aliasy sa vytlačí úplný názov príkazu.

ulimit [ -H-S ] [ -a - tfdscmlpn [ hodnota ]]

Zistite alebo nastavte tvrdé alebo jemné limity procesov alebo nastavte nové limity. Výber medzi tvrdým limitom (ktorý nesmie byť porušený a ktorý sa nesmie zvýšiť po jeho znížení) a mäkké obmedzenie (ktoré spôsobuje, že procesy sa signalizujú, ale nie nevyhnutne zabíjajú, a ktoré môžu byť zvýšené) sa robí s tieto vlajky:

-H

nastaviť alebo informovať o tvrdých limitoch

-S

nastaviť alebo informovať o mäkkých limitoch. Ak nie je zadané žiadne - H ani - S , zobrazí sa mäkká hranica alebo sú nastavené obidve limity. Ak sú obidve uvedené, vyhrá posledný.

Limit, ktorý sa má vypočúvať alebo nastaviť, sa potom vyberie špecifikovaním ktorejkoľvek z týchto príznakov:

-a

zobraziť všetky aktuálne limity

-t

zobraziť alebo nastaviť limit na čas CPU (v sekundách)

-f

zobraziť alebo nastaviť limit najväčšieho súboru, ktorý sa dá vytvoriť (v 512-bytových blokoch)

-d

zobraziť alebo nastaviť limit na veľkosť segmentu dát procesu (v kilobajtoch)

-s

zobraziť alebo nastaviť limit na veľkosť zásobníka procesu (v kilobajtoch)

-c

zobraziť alebo nastaviť limit na najväčšiu veľkosť jadra, ktorú je možné vyrobiť (v 512-bytových blokoch)

-m

zobraziť alebo nastaviť limit na celkovú fyzickú pamäť, ktorú môže proces používať (v kilobajtoch)

-l

zobraziť alebo nastaviť limit o tom, koľko pamäte môže zablokovať proces s mlock (2) (v kilobajtoch )

-p

zobraziť alebo nastaviť limit počtu procesov, ktoré môže mať tento používateľ naraz

-n

zobraziť alebo nastaviť limit počtu súborov, ktoré môže proces naraz otvoriť

Ak nie je zadaná žiadna z nich, je zobrazený alebo nastavený limit pre veľkosť súboru. Ak je zadaná hodnota, limit je nastavený na toto číslo; inak sa zobrazí aktuálny limit.

Limity ľubovoľného procesu je možné zobraziť alebo nastaviť pomocou utility sysctl (8).

Umask [ maska ]

Nastavte hodnotu umask (pozri umask (2)) na zadanú osmičkovú hodnotu. Ak je argument vynechaný, vytlačí sa hodnota umask.

unalias [- a ] [ názov ]

Ak je zadaný názov , shell odstráni tento alias. Ak je zadané - a , odstránia sa všetky aliasy.

zrušiť názov ...

Zadané premenné a funkcie sú deaktivované a nevyexponované. Ak daný názov zodpovedá premennej aj funkcii, premenná aj funkcia sú deaktivované.

počkať [ práca ]

Počkajte, kým zadaná úloha dokončí a vráti stav ukončenia posledného procesu v úlohe. Ak sa argument vynechá, počkajte, kým sa dokončia všetky úlohy, a vrátite stav nuly.

Úprava príkazového riadka

Keď sa sh používa interaktívne z terminálu, aktuálny príkaz a história príkazov (viď. Fc v Sx Builtins) je možné editovať pomocou editácie príkazového riadku vi-mode. Tento režim používa príkazy popísané nižšie, ktoré sú podobné podmnožine opísanej na stránke vi man. Príkaz `set '-o vi umožňuje úpravu vi-módu a umiestni sa do režimu vkladania vi. V režime vi-mode je možné prepínať medzi režimom vloženia a príkazovým režimom. Editor nie je popísaný v plnom znení, ale bude v neskoršom dokumente. Je to podobné ako vi: typing Aq ESC vás hodí do príkazového režimu príkazu VI. Stlačenie Aq návratu v režime príkazu prejde linku do shell.

Dôležité: Pomocou príkazu man ( % man ) môžete zistiť, ako sa príkaz používa vo vašom konkrétnom počítači.