Hamu - Linux Command - Unix parancs

NÉV

sh - parancsértelmező ( shell )

SZINOPSZIS

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -szavak [ cél ... ]

LEÍRÁS

Sh a rendszer standard parancsértelmezője. A sh jelenlegi verziója a változás folyamatában van, hogy megfeleljen a POSIX 1003.2 és 1003.2a specifikációknak. Ez a verzió számos olyan tulajdonsággal rendelkezik, amelyek bizonyos szempontból hasonlóak a Korn-héjhoz, de nem Korn-héj-klón (lásd ksh (1)). Csak a POSIX által kijelölt jellemzők és néhány Berkeley bővítmény beépül a héjba. A POSIX megfelelőségét a BSD 4.4-es megjelenésével várjuk. Ez a man oldal nem a bemutató bemutatója vagy teljes leírása.

Áttekintés

A shell egy parancs , amely egy sorból vagy a terminálból származó sorokat olvas, értelmezi őket, és általában más parancsokat hajt végre. Ez a program fut, amikor egy felhasználó bejelentkezik a rendszerbe (bár a felhasználó kiválaszthat egy másik parancsértelmezőt a chsh (1) paranccsal). A héj olyan nyelvet valósít meg, amely rendelkezik áramlásvezérlő konstrukciókkal, olyan makróegységgel, amely az adattárolás mellett számos funkciót is tartalmaz, valamint a beépített történelem és vonalszerkesztési képességek. Számos funkcióval rendelkezik az interaktív használat elősegítésére, és előnye, hogy az értelmező nyelv mind az interaktív, mind a nem interaktív használathoz (shell scriptekhez) közös. Ez azt jelenti, hogy a parancsok közvetlenül beírhatók a futó shellba, vagy behelyezhetők egy fájlba, és a fájl közvetlenül végrehajtható a shell segítségével.

könyörgés

Ha nincsenek argsek, és ha a shell szabványos bemenete csatlakozik egy terminálhoz (vagy ha a - i flag be van állítva), és a - c opció nincs jelen, a shell interaktív shell . Az interaktív héj általában minden egyes parancs előtt kérdezi és kezeli a programozás és a parancs hibáit különböző módon (az alábbiakban leírtak szerint). Amikor először elindul, a shell megvizsgálja az 0-as argumentumot, és ha egy kötőjel "-" -vel kezdődik, akkor a shell is egy login shell. Ezt a rendszer automatikusan végzi a rendszer, amikor a felhasználó először jelentkezik be. A login shell először az / etc / profile és a .profile parancsokból olvas parancsokat, ha léteznek. Ha az ENV környezeti változó hurokba való belépéskor be van állítva, vagy a bejelentkezési héj profiljában van beállítva, akkor a következő parancs olvassa el a parancsokat az ENV-ben megadott fájlból. Ezért a felhasználónak olyan parancsokat kell elhelyeznie, amelyeket csak a a bejelentkezési idő a .profile fájlban, valamint az ENV fájlban található összes shell számára végrehajtott parancsok. Az ENV- változó egyes fájlokhoz való beállításához adja meg a következő sort a saját könyvtárának .profile-jéhez

ENV = $ HOME / .shinit; export ENV

helyettesíti a `` .shinit '' fájlt. Mivel az ENV- fájlt a shell minden meghívására olvassák, beleértve a shell-parancsfájlokat és a nem interaktív kagylókat, az alábbi paradigma hasznos az ENV- fájl parancsainak az interaktív meghívásokhoz való korlátozására. Helyezzen parancsokat a `` case '' és `` esac '' alatt (ezeket a parancsokat később ismertetjük):

eset $ - in * i *)

# parancs csak interaktív használatra

...

esac

Ha az opciók mellett parancssori argumentumokat is megadtak, akkor a shell az első argumentumot kezeli, mint egy parancsfájl nevét (shell parancsfájlt), és a fennmaradó argumentumokat a héj pozícióparamétereként állítja be ($ 1 , $ 2, stb.). Ellenkező esetben a shell a parancsokat a szabványos bemenetről olvassa le.

Argumentumlista feldolgozása

Mindegyik egybetűs opciónak van egy megfelelő neve, amely argumentumként használható a - o opcióhoz. A set- o név az alábbi leírásban található egyetlen levél opció mellett található. A "` - '' kötőjel bejelöli az opciót, míg a `` + '' plusz használata letiltja az opciót. Az alábbi opciók állíthatók be a parancssorból vagy a készletből (1) beépített (később ismertetve).

-a allexport

Az összes hozzárendelt változó exportálása. (FELHASZNÁLT 4,4ALFA)

-c

Parancsok olvasása a parancssorból. A szabvány bemenetről nem olvasható ki parancs.

-C noclobber

Ne törölje felül a meglévő fájlokat a ``> '' (UNIMPLEMENTED 4.4alpha)

-és errexit

Ha nem interaktív, azonnal kilép, ha az ellenőrzött parancs sikertelen. Egy parancs kilépési állapotát explicit módon tesztelik, ha a parancsot arra használják, hogy ellenőrizzék az if elif-et, amíg vagy amíg a parancs a `` && '' vagy `` || '' balkezes operanduma.

-f noglob

Letiltja az elérési út kiterjesztését.

-n noexec

Ha nem interaktív, olvassa el a parancsokat, de ne hajtsa végre azokat. Ez hasznos a shell parancsfájlok szintaxisának ellenőrzéséhez.

-u főnév

Írjon egy üzenetet a standard hibához, ha megpróbálja bővíteni egy nem beállított változót, és ha a shell nem interaktív, akkor azonnal lépjen ki. (FELHASZNÁLT 4,4ALFA)

-v verbose

A shell írja a bemenetet a standard hibára, ahogy olvasható. Hasznos a hibakereséshez.

-x xtrace

Minden parancsot írjon standard hibára (előtte a `+ 'a végrehajtás előtt. Hasznos a hibakereséshez.

-q quietprofile

Ha a - v vagy - x beállítások be lettek állítva, ne alkalmazza őket az inicializálási fájlok olvasásakor, mivel ezek a / etc / profile .profile és az ENV környezeti változó által megadott fájl.

- Nem vettem észre

Figyelmen kívül hagyja az EOF-et az interaktív inputról.

-i interaktív

A héj kényszerítése interaktív viselkedésre.

monitor

Kapcsolja be a munka vezérlését (akkor állítsa be automatikusan az interaktív beállítást).

-s stdin

Parancsok beolvasása a szabványos bemenetről (automatikusan beállítva, ha nincsenek fájl argumentumok). Ez az opció nincs hatással a héj elindítása után (pl. A set (1)).

-V vi

Engedélyezze a beépített vi (1) parancssori szerkesztőt (letiltja - E, ha be van állítva).

-E emacs

Engedélyezze a beépített emacs (1) parancssori szerkesztőt (letiltja - V, ha be van állítva).

-b értesíteni

Engedélyezze az aszinkron értesítést a háttérben végzett munka befejezéséről. (FELHASZNÁLT 4,4ALFA)

Lexikai struktúra

A shell a beolvasást a fájlok soraiban értelmezi, és feltöri a szavakat a fehérekbe (üres és lapos), valamint bizonyos karakterek szekvenciájára, amelyek különlegesek a `` operators '' nevű héjhoz. Kétféle operátor létezik: az irányítást végző szolgáltatók és átirányítási szolgáltatók (jelentésüket később tárgyaljuk). Az alábbiakban felsoroljuk az üzemeltetők listáját:

"Vezérlők:"

&&& (); ;; | ||

"Átirányítási szolgáltató:"

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

idézve

Az idézet segítségével bizonyos karakterek vagy szavak különleges jelentése eltávozható a héjhoz, például az operátorok, a fehérek vagy a kulcsszavak számára. Háromféle idézet létezik: illeszkednek az egyes idézőjelekhez, a kettős idézőjelekhez és a visszafordulókhoz.

backslash

A backslash megőrzi a következő karakter szó szerinti jelentését, kivéve az Aq újvonalat. Az Aq újvonalat megelőző ellentétet line vonalként kezeljük.

Egyetlen idézet

A karakterek egyetlen idézőjelben történő tárolása megőrzi az összes karakter szó szerinti jelentését (kivéve az egyes idézőjeleket, ami lehetetlenné teszi, hogy egyetlen idézőjelet egyetlen idézőjelbe tegyenek).

Dupla idézetek

A kettős idézőjelben szereplő karakterek befoglalása megőrzi a karakterek szó szerinti jelentését, kivéve a dollarsign ($) backquote (`) és a backslash (\) értékeket. A kettős idézőjelek között a backslash történelmileg furcsa, és csak a következő karaktereket idézheti:

$ `\

Egyébként szó szerint marad.

Fenntartott szavak

A fenntartott szavak olyan kifejezések, amelyeknek különleges jelentése van a héjnak, és amelyeket egy vonal elején és egy vezérlõ operátor után ismerünk el. A következő tartalék szavak:

! Ta elif Ta fi Ta, míg a Ta eset

Másképp Ta ta , Ta, Ta {Ta}

tegye Ta-t Ta taacig, amíg Ta

Jelentésüket később tárgyaljuk.

Más nevek

Az álnév az alias (1) beépített parancs segítségével megadott név és megfelelő érték. Amikor fenntartott szó fordul elő (lásd fent), és a fenntartott szavak ellenőrzése után a shell ellenőrzi a szót, hogy megnézze, egy alias-nak felel meg. Ha ez megtörténik, a bemeneti adatfolyamban az értékével helyettesít. Például, ha van egy `` lf '' nevû álnév az `` ls -F '' értékkel, akkor a bemenet:

Ha a foobar

lett volna

ls -F foobar

Az álnevek kényelmes módot kínálnak a naiv felhasználók számára a parancsok rövidítése számára, anélkül, hogy meg kellene tanulniuk az argumentumokkal ellátott függvények létrehozását. Alkalmazhatók lexikusan homályos kódok létrehozására is. Ez a használat nem kedvező.

parancsok

A shell értelmezi az általa olvasott szavakat egy olyan nyelvnek megfelelően, amelynek specifikációja kívül esik ezen man oldalán (lásd a POSIX 1003.2 dokumentum BNF-jét). Lényeges azonban, hogy egy sor olvasható, és ha a vonal első szava (vagy egy vezérlő után) nem fenntartott szó, akkor a shell egy egyszerű parancsot észlelt. Ellenkező esetben összetett parancsot vagy más speciális konstrukciót lehetett volna felismerni.

Egyszerű parancsok

Ha egy egyszerű parancs felismerésre került, akkor a shell elvégzi a következő műveleteket:

  1. A `` name = value '' formanyomtatvány vezető szavait le kell vágni és az egyszerű parancs környezetébe kell rendelni. Az átirányítási szolgáltatók és azok érvei (az alábbiakban ismertetettek szerint) le vannak vágva és feldolgozásra kerülnek.
  2. A fennmaradó szavakat kibővítettük a "Expansions" nevű szakaszban leírtak szerint, és az első megmaradt szó a parancsnévnek és a parancsnak. A többi szó a parancs argumentumainak tekintendő. Ha nincs parancsnév, az 1. pontban felismert `` name = value '' változó hozzárendelések hatással vannak az aktuális shellre.
  3. Az átirányításokat a következő részben leírt módon végezzük.

átirányítás

Az átirányítások segítségével megváltoztathatja, ha egy parancs beolvassa a bemenetet vagy elküldi a kimenetét. Általában az átirányítások megnyitják, bezárják vagy megismétlik egy meglévő hivatkozást egy fájlra. Az átirányításhoz használt általános formátum:

[n] redir-op fájl

ahol a redir-op a korábban említett átirányítási szolgáltatók egyike. Az alábbiakban felsoroljuk a lehetséges átirányításokat. A Bq n egy opcionális szám, mint a `3 '(nem` Bq 3', amely egy fájlleíróra utal.

[n]> fájlt

Átirányítja a szabványos kimenetet (vagy n) a fájlba.

[n]> | fájl

Ugyanaz, de felülírja a - C opciót.

[n] >> fájlt

Add hozzá a szabványos kimenetet (vagy n) a fájlhoz.

[n]

Átirányítja a szabványos bemenetet (vagy n) a fájlból.

[n1] <& n2

Ismételje a standard bemenetet (vagy n1) az n2 fájlleíróból.

[n] <&

Zárja be a standard bemenetet (vagy n).

[n1]> & n2

Dupla standard kimenet (vagy n1) n2-ből.

[n]> &

Szoros szabványos kimenet (vagy n).

[n] <> fájlt

Nyissa meg a fájlt az olvasáshoz és az íráshoz a szabványos bemeneten (vagy n).

A következő átirányítást gyakran "itt-dokumentumnak" nevezik

[n] << határoló

Itt-doc-szöveg ...

határoló

Az egymást követő vonalakra a határolóig terjedő összes szöveget elmenti és hozzáférhetővé teszi a parancsnak a szabványos bemeneten vagy az n fájlleírónál, ha megadta. Ha az eredeti sorban megadott határoló meg van adva, az itt-doc-szöveget szó szerint értelmezzük, ellenkező esetben a szöveg paraméter-kiterjesztésnek, parancshelyettesítésnek és számtani kiterjesztésnek van alávetve (az "Expansions" részben leírtak szerint) 'Ha az operátor `` << -' 'helyett `` <<' ', akkor az itt-doc-szövegben lévő vezető füllel le van tiltva.

Keresés és végrehajtás

Háromféle parancs létezik: shell funkciók, beépített parancsok és normál programok - és a parancsot keresik (név szerint) ebben a sorrendben. Mindegyiket különféle módon hajtják végre.

Héjfunkció végrehajtásakor az összes héj pozícióparamétert (kivéve a $ 0 értéket, amely változatlan marad) a héjfüggvény argumentumaira van állítva. A parancs környezetében explicit módon elhelyezett változók (a függvénynevek elhelyezésével hozzárendelve) a helyi függvényre vannak állítva, és a megadott értékekre vannak állítva. Ezután a függvénydefinícióban megadott parancs végrehajtásra kerül. A pozícióparaméterek visszaállnak eredeti értékükre, amikor a parancs befejeződik. Mindez az aktuális shellben történik.

A shell szerkezetek belsőleg a shell-hez kerülnek végrehajtás nélkül, új folyamat létrehozása nélkül.

Ellenkező esetben, ha a parancsnév nem egyezik egy funkcióval vagy beépített, akkor a parancsot a fájlrendszerben normál programként keresik (a következő részben leírtak szerint). Amikor egy normál program fut, a shell futtatja a programot, átadva az argumentumokat és a környezetet a programhoz. Ha a program nem egy normál futtatható fájl (azaz ha nem kezdődik a "mágikus szám", amelynek ASCII ábrázolása "#!", Akkor a végrehajtó (2) az Er ENEEXEC-et adja vissza), a shell a programot egy alburok. Ebben az esetben a gyermek héja újból inicializálódik, úgyhogy a hatás olyan lesz, mintha egy új héj meghívására lenne szükség az ad-hoc shell parancsfájl kezeléséhez, kivéve, hogy a szülői héjban található hashed parancsok helyét a gyermek.

Ne feledje, hogy a dokumentum és a forráskód korábbi verziói félrevezetően és szórványosan utalnak egy shell-parancsfájlra, mágikus szám nélkül, mint "shell eljárás".

Útkeresés

Amikor parancsot talál, a shell először úgy látja, hogy van-e shell-függvénye ennek a névnek. Ezután egy beépített parancsot keres ezen a néven. Ha egy beépített parancsot nem találunk, akkor a két dolog egyike megtörténik:

  1. A perjelet tartalmazó parancsok egyszerűen végrehajtásra kerülnek keresések végrehajtása nélkül.
  2. A shell minden egyes bejegyzést PATH-ba keresi a parancsra. A PATH változó értékének kettőspontokkal elválasztott bejegyzések sorozata kell legyen. Minden bejegyzés egy könyvtár nevét tartalmazza. Az aktuális könyvtár implicit módon feltüntethető egy üres könyvtárnévvel, vagy kifejezetten egyetlen időszakkal.

Parancs kilépés állapot

Minden parancsnak van kilépési állapota, amely befolyásolhatja más parancshalmazok viselkedését. A paradigma az, hogy egy parancs kilép a normál vagy a sikeres nullával, és nem nulla a hiba, a hiba vagy a hamis jelzés miatt. Az egyes parancsok man oldalának jeleznie kell a különféle kilépési kódokat és azok jelentését. Ezenkívül a beépített parancsok kilépési kódokat adnak vissza, ugyanúgy, mint egy végrehajtott shell függvény.

Komplex parancsok

A komplex parancsok az egyszerű parancsok kombinációi a vezérlő operátorokkal vagy a fenntartott szavakkal együtt egy nagyobb összetett parancsot alkotnak. Általánosabban egy parancs egyike a következőknek:

  • egyszerű parancs
  • csővezeték
  • lista vagy összetett lista
  • összetett parancs
  • funkció meghatározása

Hacsak másként nem jelezzük, a parancs kilépési állapota az utolsó egyszerű parancs végrehajtása.

csővezetékek

A csővezeték egy vagy több, a vezérlő által elválasztott parancssorozat. Az összes, de az utolsó parancs szabványos kimenete a következő parancs szabványos bemenetéhez kapcsolódik. Az utolsó parancs szabvány kimenete a szokásos módon öröklődik a héjból.

A csővezeték formátuma:

[!] parancs1 [| parancs2 ...]

Az 1. parancs szabványos kimenete a 2. parancs standard bemenetére van csatlakoztatva. A parancs szabványos bemenetét, szabványos kimenetét vagy mindkettőjét a csővezeték adja hozzá, mielőtt a parancs részét képező átirányítási operátorok által megadott átirányítás előtt.

Ha a csővezeték nem a háttérben van (később tárgyaljuk), akkor a parancsnokság minden parancsra vár.

Ha a fenntartott szó! nem előzi meg a csővezetéket, a kilépési állapot a csővezetéken megadott utolsó parancs kimeneti állapota. Ellenkező esetben a kilépési állapot az utolsó parancs kimeneti állapotának logikus NEM. Ez azt jelenti, hogy ha az utolsó parancs nulla értéket ad vissza, akkor a kilépési állapot 1; ha az utolsó parancs nullánál nagyobb, a kilépési állapot nulla.

Mivel a szabványos bemeneti vagy szabványos kimenet csővezeték hozzárendelése, vagy mindkettő a átirányítás előtt történik, átirányítással módosítható. Például:

$ command1 2> & 1 | command2

mind a szabványos kimenet, mind a standard parancs1 hibáját a parancs2 standard bemenetére küldi.

A; vagy a terminátor okozza az előző AND-OR-listát (a továbbiakban leírt módon) egymás után végrehajtva; a & az aszinkron végrehajtást hajtja végre az előző AND-OR-listán.

Vegyük észre, hogy a többi héjtól eltérően minden folyamatban lévő folyamat a meghívó héj gyermeke (hacsak nem beépített héj, amely esetben az aktuális héjban végrehajtódik, de a környezeti hatásokat törli).

Háttérparancsok -

Ha egy parancsot az ampersand (&) vezérlő végzi, akkor a shell végrehajtja a parancsot aszinkron módon - azaz a shell nem várja meg a parancs befejezését a következő parancs végrehajtása előtt.

A háttérben futó parancs futtatásának formátuma:

parancs1 & [parancs2 & ...]

Ha a shell nem interaktív, az aszinkron parancs standard bemenete a / dev / null értékre van állítva

Listák - általában beszéd

A lista nulla vagy több parancssorból álló sorozatot tartalmaz, amelyeket újvonalak, pontosvesszők vagy hangjelzők választanak el, és amelyek adott esetben a három karakter egyikével szüntethetők meg. A listában szereplő parancsok a sorrendbe kerülnek. Ha a parancsot egy parancssor követi, a shell elindítja a parancsot, és azonnal továbblép a következő parancsra; különben vár a parancs befejezésére, mielőtt folytatná a következőt.

Rövidzárlista-üzemeltetők

`` && '' és `` || '' az AND-OR listás operátorok. `&& '' végrehajtja az első parancsot, majd végrehajtja a második parancsot, mivel az első parancs kilépési állapota nulla. `` || '' hasonló, de végrehajtja a második parancsot, mivel az első parancs kimeneti állapota nemzero. `` && '' és `` || '' mind ugyanolyan prioritással bírnak.

Áramlásvezérlő konstrukciók - ha, miközben, esetre

Az if parancs szintaxisa

ha listát
majd sorolja fel
[elif lista
akkor lista] ...
[egyéb lista]
fi

A time parancs szintaxisa

míg a lista
csináld listát
Kész

A két lista végrehajtása többször történik, míg az első lista kilépési állapota nulla. Az addig, amíg a parancs hasonló, de van a szó egészen addig a helyén, amíg az ismétlődik, amíg az első lista kilépési állapota nulla.

A for parancs szintaktikája

változó szóban ...
csináld listát
Kész

A szavak kiterjesztésre kerülnek, majd a lista ismétlõdõen végrehajtásra kerül az egyes szavakra beállított változóval. do és done helyettesítheti a `` {'' és ``} ''

A törés és a folytatás parancs szintaxisa

szünet [num]
folytassa [num]

A szünet befejezi a leghosszabb számot a ciklusok és a hurkok között. A folytatás folytatódik a legbelső hurok következő iterációjával. Ezek beépített parancsokként működnek.

Az ügy parancs szintaxisa

esettanulmány
minta) lista ;;
...
esac

A minta valójában egy vagy több mintázat lehet (lásd később ismertetett Shell Patterns), amelyeket `` `karakterekkel választanak el.

Csoportosítási parancsok együtt

A parancsok csoportosításával írhatók

(lista)

vagy

{list;

Ezek közül az első hajtja végre a parancsokat egy alsó szinten. A (lista) csoportba sorolt ​​beépített parancsok nem befolyásolják az aktuális shell-ot. A második forma nem fork egy másik héjat, így kissé hatékonyabb. A csoportosító parancsok ezzel együtt lehetővé teszik a kimenet átirányítását, mintha egy program lenne:

{printf hello; printf világ \ n ";}> üdvözlet

Funkciók

A függvénydefiníció szintaxisa

name () parancsot

A függvénydefiníció végrehajtható állítás; végrehajtásakor egy névvel ellátott függvényt telepít és visszatér nulla állapotú kilépési állapotba. A parancs általában egy lista, amely a `` {'' és ``} ''

A változók helyi függvényeként lokalizálhatók egy függvénynek. Ez egy függvény első mondatként jelenik meg, és a szintaxis

helyi [változó | -] ...

A helyi beépített parancsként működik.

Ha egy változó helyi, akkor örökli a kiindulási értéket, és az exportált és readonly zászlókat a változó ugyanolyan névvel a környező hatókörben, ha van ilyen. Ellenkező esetben a változó kezdetben nincs beállítva. A shell dinamikus robbantást használ, tehát ha az x helyi függvényt f függvénynek hívja, amely ezt követõen g függvényt hív, a g belsejében létrehozott x változóra való hivatkozások az f belsejében deklarált x változóra utalnak, nem az x nevű globális változóra .

Az egyedüli speciális paraméter, mint amennyit helyi lehet, `` - '' A `` - '' helyi beállítása minden olyan shell opciót, amely a beállított parancson keresztül megváltozik a funkción belül, visszaállítva az eredeti értékekre, amikor a függvény visszatér.

A visszatérési parancs szintaxisa

visszatérés [exitstatus

Megszünteti az aktuálisan végrehajtott függvényt. A megtérülés beépített parancsként valósul meg.

Változók és paraméterek

A héj paramétereket tartalmaz. Egy névvel jelölt paraméter változónak nevezhető. A bekapcsoláskor a shell az összes környezeti változót héjváltozókká alakítja. Új formátumokat lehet beállítani az űrlap használatával

név = érték

A felhasználó által beállított változóknak csak egy névnek kell szerepeltetniük az alfabetikusokat, numerikusokat és aláhúzásokat, amelyek közül az elsőnek nem lehet numerikusnak lennie. A paramétereket az alábbiakban leírt szám vagy különleges karakter is jelölheti.

Pozícióparaméterek

Pozícióparaméter egy paraméter, amelyet egy szám (n> 0) jelez. A shell ezeket kezdetben a parancssori argumentumok értékére állítja be, amelyek követi a shell parancsfájl nevét. A beépített készlet (1) szintén beállítható vagy alaphelyzetbe állítható.

Speciális paraméterek

Egy speciális paraméter egy olyan paraméter, amelyet az alábbi speciális karakterek jeleznek. A paraméter értéke szerepel a karakter mellett.

*

Kiterjeszti a pozícióparamétereket, kezdve az egyikből. Ha a terjeszkedés egy kettős idézőjelben történik, akkor egyetlen mezőre bővül, az egyes paraméterek értéke az IFS változó első karakterével elválasztva, vagy egy , ha az IFS nincs beállítva.

@

Kiterjeszti a pozícióparamétereket, kezdve az egyikből. Ha a terjeszkedés kettős idézőjelek között történik, minden pozícióparaméter különálló argumentumként bővül. Ha nincsenek pozícióparaméterek, a @ kiterjesztése nulla argumentumot generál, még akkor is, ha a dupla idézőjelet. Ez alapvetően azt jelenti, hogy ha $ 1 `` abc '' és $ 2 `` def ghi '' akkor Qq $ @ kiterjeszti a két argumentumot:

abc def ghi

#

Kiterjeszti a helyzeti paraméterek számát.

?

Bővíti a legutóbbi csővezeték kilépési állapotát.

- (Jelszó)

Az aktuális opció zászlókra (az egybetűs opciónevek egy karakterláncba összefűzve) bővül, ahogyan azt a meghívás, a beépített beépített parancs, vagy a héj implicit módon megadja.

$

Bővíti a meghívott shell folyamatazonosítóját. A subshell megtartja ugyanazt a $ értéket, mint annak szülőjét.

!

Bővíti az aktuális héjból végrehajtott legfrissebb háttér parancs folyamatazonosítóját. Csővezeték esetében a folyamat azonosítója a pipeline utolsó parancsának.

0 (nulla)

Kiterjeszti a shell vagy shell script nevét.

Word bővítések

Ez a záradék leírja a különböző szavakkal végrehajtott bővítéseket. Nem minden bővítést hajtanak végre minden szóban, ahogy azt később kifejtettük.

A Tilde kiterjesztések, a paraméterek bővítései, a parancscserék, az aritmetikai kiterjesztések és az egyetlen szóban megjelenő idézeteltávolítások egyetlen mezőre bővülnek. Ez csak mező-megosztás vagy útvonalnév-bővítés, amely több mezőt hozhat létre egyetlen szóból. Az egyetlen kivétel erre a szabályra a speciális paraméter @ kiterjesztése a kettős idézőjelek között, ahogy fentebb leírtuk.

A szó bővítés sorrendje:

  1. Tilde bővítés, Paraméter bővítés, Command Substitution, Számtani Expansion (ezek mindegyike egyszerre jelentkezik).
  2. A mező felosztása az (1) lépés által generált mezőkön történik, hacsak az IFS változó nulla.
  3. Pathname bővítés (hacsak a set - f nincs érvényben).
  4. Idézet eltávolítása.

A $ karakter a paraméterek bővítésének, parancs helyettesítésének vagy aritmetikai értékelésének bevezetésére szolgál.

Tilde bővítés (a felhasználó saját könyvtárának helyettesítésével)

Egy nem titkos tilde karakterrel (~) kezdődő szó tilde kiterjesztésre kerül. Minden szóköz (/) vagy a szó végén lévő karaktereket felhasználónévként kezelnek, és a felhasználó saját könyvtárába kerülnek. Ha a felhasználónév hiányzik (mint a ~ / foobar), akkor a tilde helyére a HOME változó (az aktuális felhasználó kezdőkönyvtára) kerül.

Paraméter bővítés

A paraméterek bővítésének formátuma a következő:

ahol a kifejezés az összes karakterből áll, amíg a hozzá tartozó "`} "'Any` `} nem kerül visszaugrásra egy idézett stringen belül, és a beágyazott számtani kiterjesztésekben, parancshelyettesítésekben és változó bővítésekben lévő karaktereket nem vizsgáljuk meg megfelelő ``} ''

A legegyszerűbb formátum a paraméterek terjeszkedéséhez:

A paraméter értéke, ha van ilyen, helyettesített.

A paraméter nevét vagy szimbólumát zárójelben lehet elhelyezni, amelyek opcionálisak, kivéve az egynél több számjegyű pozícióparamétereket, vagy ha a paramétert egy olyan karakter követi, amely a név részeként értelmezhető. Ha egy paraméter-terjeszkedés a kettős idézőjelek között történik:

  1. A bővítés eredményeire nem kerül sor a pathname bővítésre.
  2. A terepi bõvítés eredményeként nem történik mezõbányás, a @ kivételével.

Ezenkívül a paraméterek bővítése módosítható az alábbi formátumok egyikével.

Alapértelmezett értékek használata. Ha a paraméter nincs beállítva vagy nulla, a szó kiterjesztése helyettesíthető; ellenkező esetben a paraméter értéke helyettesített.

Alapértelmezett értékek hozzárendelése. Ha a paraméter nincs beállítva vagy nulla, a szó kiterjesztése a paraméterhez van hozzárendelve. Minden esetben a paraméter végső értéke helyettesíthető. Ily módon csak változók, nem pozícióparaméterek vagy speciális paraméterek rendelhetők.

Jelölje meg a hibát, ha az Null vagy a Unset. Ha a paraméter nincs beállítva vagy nulla, a szó kiterjesztése (vagy egy üzenet, amely jelzi, hogy nincs megadva, ha a szó elmarad) szabványos hibára íródik, és a shell kilép a nemzár kilépési állapotával. Ellenkező esetben a paraméter értéke helyettesíthető. Az interaktív héjnak nem kell kilépnie.

Alternatív érték használata. Ha a paraméter nincs beállítva vagy nulla, akkor null helyettesíti; egyébként a szó kiterjesztése helyettesít.

A korábban bemutatott paraméterkibővítéseknél a kettőspont használata a formátumban egy olyan paramétert eredményez, amely nincs beállítva vagy nulla; a kettőspont elhagyása egy olyan paramétert eredményez, amely csak nem állítható be.

String hossza. A paraméter értékének karakter hosszúsága.

A következő négyféle paraméter-bővítés biztosítja a szubsztrátum feldolgozását. Mindegyik esetben a minták kiértékeléséhez a mintázat illesztés jelölését (lásd Shell Patterns), a szabályos kifejezés jelölés helyett. Ha a paraméter * vagy @, akkor a bővítés eredménye nem meghatározott. A teljes paraméter kiterjesztési karakterlánc kettős idézőjelekkel történő lezárása nem okozza a következő négy fajta minta karaktert, míg a karakterek idézése a zárójelben ez a hatás.

Távolítsa el a legkisebb szuffix mintát. A szó kiterjesztésre kerül mintázat létrehozására. A paraméterbővítés ezután paramétert eredményez, és a minta legkisebb része a törölt mintával egyezik meg.

Távolítsa el a legnagyobb utótag mintát. A szó kiterjesztésre kerül mintázat létrehozására. A paraméterbővítés ezután a paramétert eredményezi, és a mintát a mintával egyező módon kirajzolják.

Távolítsa el a legkisebb előtagmintát. A szó kiterjesztésre kerül mintázat létrehozására. A paraméterbővítés ezután a paramétert eredményezi, és az előtag legkisebb része a mintával törlésre kerül.

Távolítsa el a legnagyobb előtagmintát. A szó kiterjesztésre kerül mintázat létrehozására. A paraméterbővítés ezután paramétert eredményez, és a mintának a prefix számának megfelelő legnagyobb része törlődik.

Parancshelyettesítés

A parancscserék lehetővé teszik a parancs kimenetének helyettesítését a parancsnév helyett. A parancsok helyettesítése akkor történik, amikor a parancs a következőképpen van zárva:

$ (Parancs)

vagy Po `` backquoted '' Pc változat:

`command`

A shell kiterjeszti a parancs helyettesitését végrehajtó parancs egy subshell környezetben, és helyettesítve a parancs helyettesítése a szabványos kimenet a parancs, eltávolítva szekvenciák egy vagy több s végén a helyettesítés. (A beágyazott <új sorok a kimenet vége előtt nem távolíthatók el, azonban a szétválasztás során az IFS értékétől és a hatályos idézőjeltől függően s-re fordíthatók le.)

Aritmetikai bővítés

A számtani expanzió mechanizmust biztosít aritmetikai kifejezés kiértékelésére és értékének helyére. A számtani kiterjesztés formátuma a következő:

$ ((Kifejezés))

A kifejezést úgy kell kezelni, mintha dupla idézőjelben lenne, kivéve, ha a kettős idézetet a kifejezés belsejében nem kezelik. A shell kiterjeszti az összes jelzőt a kifejezés kiterjesztésében, a parancs helyettesítésében és az idézet eltávolításában.

Ezután a shell ezt aritmetikai kifejezésként kezeli, és helyettesíti a kifejezés értékét.

Fehér szóköz (Field Splitting)

A paraméterek bővítése, a parancsok helyettesítése és számtani kiterjesztése után a héj olyan bővítmények és helyettesítések eredményeit vizsgálja, amelyek nem fordultak elő kettős idézőjelben a terepi hasadáshoz, és több mező eredményezhet.

A shell az IFS minden egyes karakterét határolónak kezeli, és a határolókat úgy használja, hogy a paraméterek terjeszkedésének és a parancs helyettesítésének eredményeit a mezőkre osztja.

Pathname bővítés (fájlnév létrehozása)

Hacsak a - f jelző nincs beállítva, akkor a fájlnév létrehozása a szómegosztás befejezése után történik. Minden szó minták sorozata, szeletekkel elválasztva. A bővítési folyamat helyettesíti a szót az összes meglévő fájl nevével, amelynek nevét úgy alakíthatjuk ki, hogy az egyes mintákat egy meghatározott sorrendnek megfelelő karakterláncra cseréljük. Ennek két korlátai vannak: először egy minta nem egyezik meg egy karaktersorozattal rendelkező karaktersorozattal, és másodszor, a minta nem egyezik egy adott időtartammal kezdődő karakterlánccal, kivéve, ha a minta első karaktere egy időszak. A következő rész leírja a Pathname bővítéshez és az eset (1) parancshoz használt mintákat.

Shell minták

A minták normál karakterekből állnak, amelyek megfelelnek maguknak és meta-karaktereknek. A meta-karakterek ``! '' `` * '' ``? '' És `'[' 'Ezek a karakterek elveszítik a különleges jelentését, ha idézték őket. Amikor a parancsot vagy a változóhelyettesítést végrehajtják, és a dollárjelet vagy a visszaidõt idéztek nem kettõs idõben, a parancsváltozó vagy a kimenet értéke beolvasódik ezekre a karakterekre, és meta karakterekké alakul.

A csillag (`` * '') minden karakterláncnak felel meg. A kérdőjel megegyezik az egyetlen karakterrel. A bal oldali konzol (`` ['')) egy karakterosztályt vezet be. A karakterosztály végét egy (``] '') jelzi, ha a ``] '' hiányzik, akkor a `` ['' illeszkedik a `` ['' kifejezéshez, nem pedig egy karakterosztályt. A karakterosztály megegyezik a szögletes zárójelek közötti karakterek bármelyikével. A mínuszjel használatával számos karakter adható meg. A karakterosztály kiegészíthető egy felkiáltójel segítségével a karakterosztály első karakterével.

Ahhoz, hogy a karakterosztályba "`] '' szerepeljen, írja be az első karaktert (a ``! '' Után, ha van ilyen). A mínuszjel beillesztéséhez tegye meg az első vagy utolsó karaktert

Builtins

Ez a rész felsorolja azokat a beépített parancsokat, amelyek beépítettek, mivel olyan műveletet kell végrehajtaniuk, amelyet nem lehet külön folyamat végrehajtani. Ezen túlmenően számos más parancs is beilleszthető a hatékonyság érdekében (pl. Echo 1).

:

Egy null parancs, amely 0 (true) kilépési értéket ad vissza.

. fájl

A megadott fájl parancsát a shell elolvassa és végrehajtja.

alias [ name [ = karakterlánc ]]

Ha név = string van megadva, akkor a shell definiálja az alias nevet az érték string-ként. Ha csak a név van megadva, az álnév nevét kinyomtatja. Az argumentumok nélkül a beépített alias kinyomtatja az összes megadott álnév nevét és értékét (lásd: unalias)

bg [ munka] ...

Folytassa a megadott feladatokat (vagy az aktuális feladatot, ha nincs megadva feladat) a háttérben.

parancs parancs arg ...

Végezze el a megadott beépített parancsot. (Ez akkor hasznos, ha olyan shell függvényt használ, amelynek neve ugyanaz, mint egy beépített parancs.)

cd [ könyvtár ]

Váltás a megadott könyvtárra (alapértelmezett $ HOME) Ha a CD- parancs környezetében egy CDPATH bejegyzés jelenik meg, vagy a CDPATH héj-változó be van állítva, és a könyvtár neve nem kezdődik vágójellel, akkor a CDPATH-ban felsorolt ​​könyvtárak kerülnek keresésre a megadott könyvtárhoz. A CDPATH formátuma megegyezik a PATH formátumával. Egy interaktív héjban a cd parancs kinyomtatja a könyvtár nevét, amelyre ténylegesen át lett kapcsolva, ha ez eltér a felhasználó által megadott névtől. Ezek eltérőek lehetnek, vagy azért, mert a CDPATH mechanizmust használták, vagy mert egy szimbolikus kapcsolatot kereszteztek.

eval karakterlánc ...

Összekapcsolja az argumentumokat szóközökkel. Ezután ismételje meg és hajtsa végre a parancsot.

exec [ parancs argumentum ]

Hacsak a parancs elmarad, a shell folyamat helyébe a megadott program (amelynek valódi programnak kell lennie, nem beépített héjnak vagy funkciónak). A exec parancs minden átirányításának állandónak kell lennie , így azok nem törlődnek, amikor a exec parancs befejeződik.

kilépés [ exitstatus ]

Húzza le a shell eljárást. Ha kilépési állapotot ad meg, akkor a shell shell kilépési státusaként használatos; egyébként az előző parancs kilépési állapotát használják.

export neve ...

export -p

A megadott neveket exportálják úgy, hogy azok a következő parancsok környezetében jelennek meg. Egy változó exportálásának egyetlen módja az, hogy megszüntesse azt. A shell lehetővé teszi egy változó értékének beállítását, ugyanakkor írás közben exportálják

exportnév = érték

Az argumentumok nélkül az export parancs felsorolja az összes exportált változó nevét. A - p opció megadása esetén a kimenet megfelelően formázásra kerül a nem interaktív használathoz.

fc [- e szerkesztő ] [ első [ utolsó ]]

fc -l [- nr ] [ első [ utolsó ]]

fc -s [ régi = új ] [ első ]

Az fc beépített listák, vagy szerkesztések és újra végrehajtások, a korábban megadott parancsok egy interaktív shell.

-e szerkesztő

Használja a szerkesztő által kijelölt szerkesztőt a parancsok szerkesztéséhez. A szerkesztő karakterlánc parancsneve, a PATH változón keresztül történő kereséstől függően . Az FCEDIT változó értéke alapértelmezettként használatos, amikor a - e nincs megadva. Ha az FCEDIT nulla vagy nincs beállítva, akkor az EDITOR változó értéke kerül felhasználásra. Ha az EDITOR null vagy unset, ed (1) lesz a szerkesztő.

-l (ell)

Adja meg a parancsokat, ne pedig egy szerkesztőt hívjon fel rájuk. A parancsok az első és az utolsó operandus által megjelölt sorrendben vannak írva, mivel az - r minden parancsot érint, amelyet a parancsszám előz meg.

-n

Szüntesse meg a parancsok számát, amikor a -l-vel listázunk.

-r

Fordítsa meg a felsorolt ​​parancsok sorrendjét ( l - vel vagy szerkesztve (sem - l sem )

-s

Indítsa újra a parancsot anélkül, hogy egy szerkesztőt felszólítana.

első

utolsó

Válassza ki azokat a parancsokat, amelyek listázni vagy szerkeszteni. A hozzáférhetõ korábbi parancsok számát a HISTSIZE változó értéke határozza meg. Az első vagy az utolsó vagy mindkettő értéke az alábbiak egyike:

[+] száma

Egy pozitív szám, amely egy parancsszámot képvisel; a parancsok számát az - l opcióval lehet megjeleníteni.

-szám

Egy negatív decimális szám, amely az előzőleg végrehajtott parancsot ábrázolja. Például -1 a közvetlenül előző parancs.

húr

Egy olyan karakterlánc, amely a legutóbb beírt parancsot jelöli, amely az adott karakterlánccal kezdődik. Ha a régi = új operandus nem is van megadva - az első operandus string formája nem tartalmazhat beágyazott egyenlő jelet.

Az alábbi környezetváltozók befolyásolják az fc végrehajtását:

FCEDIT

A használni kívánt szerkesztő neve.

HISTSIZE

Az előző parancsok száma, amelyek elérhetők.

fg [ munka ]

Mozgassa a megadott feladatot vagy az aktuális feladatot az előtérbe.

getopts optstring var

A POSIX getopts parancs, amelyet nem szabad összetéveszteni a Bell Labs- eredetű getopt (1) -vel.

Az első érvnek egy sor betűnek kell lennie, amelyek mindegyikét opcionálisan kettőspont követheti annak jelzésére, hogy az opció argumentumot igényel. A megadott változó az elemzett opcióra van állítva.

A getopts parancs elfogyasztja a régebbi getopt (1) segédprogramot, mivel a kontúrt tartalmazó argumentumokat kezeli.

A beépített getopts használható paraméterek és azok argumentumainak megszerzésére a paraméterek listájáról. Az invocáláskor a getopts a következő opció értékét helyezi el a var-ban megadott shell változó listáján szereplő opció- stringből, és az index az OPTIND shell változóban . Amikor a shell meghívásra kerül, az OPTIND inicializálódik. egy argumentum, a beépített getopts az OPTARG héjváltozóba helyezi. Ha egy opció nem engedélyezett az optstringben, akkor az OPTARG lesz érvénytelenítve .

Az optstring egy elismert opcionális betűkészlet. Ha egy betűt egy kettőspont követi, akkor az opció várhatóan olyan érvvel fog rendelkezni, amely a fehér helytől elválaszthatatlanul vagy attól elkülönítve lehet. Ha egy opcionális karakter nem található meg, ahol a várható, a getopts a var változót egy ``? '' Értékre állítja be, a getopts majd megszünteti az OPTARG-ot és írja a kimenetet standard hibára. Ha a kettőspontot az optstring első karaktereként definiáljuk, az összes hibát figyelmen kívül hagyjuk.

Az utolsó opció elérésekor nem nulla érték kerül visszaadásra. Ha nincsenek megmaradt érvek, akkor a getopts a var függvényt a `` - '' speciális opcióra állítja, ellenkező esetben var a ``? ''

A következő kódfájl azt mutatja meg, hogyan lehet feldolgozni az argumentumokat egy olyan parancsra, amely képes az [a] és [b] opciókat és a [c] opciót, amelyhez argumentum szükséges.

míg a getopts abc: f
csinál
esetben $ f be
a | b) flag = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; kilépés 1 ;;
esac
Kész
váltás `expr $ OPTIND - 1`

Ez a kód elfogadja az alábbiak bármelyikét egyenértékűnek:

cmd -acarg fájl fájl
cmd -a -c arg fájl fájl
cmd -carg -a fájl fájl
cmd -a -carg - fájl fájl

hash -rv parancs ...

A héj megőrzi a hash asztalt, amely emlékeztet a parancsok helyére. A hasmenek parancs nem tartalmaz semmilyen érvet, így kinyomtatja a táblázat tartalmát. Olyan bejegyzéseket, amelyeket az utolsó cd- parancs óta nem nézettek meg csillaggal; ezek a bejegyzések érvénytelenek lehetnek.

Az argumentumokkal a hash parancs eltávolítja a megadott parancsokat a hash táblaból (kivéve ha ezek a függvények), majd megtalálja azokat. A - v opcióval a hash kinyomtatja a parancsok helyét, amint megtalálja őket. A - r opció azt eredményezi, hogy a hash parancs a hash tábla összes bejegyzését törli a funkciók kivételével.

munkás [ munkát ]

Nyomtassa ki a folyamatok folyamatazonosítóit a munkában. Ha a feladat argumentumot kihagyjuk, akkor az aktuális feladatot használjuk.

munkahelyek

Ez a parancs felsorolja azokat a háttérfolyamatokat, amelyek az aktuális shell folyamat gyermekei.

pwd

Nyomtassa ki az aktuális könyvtárat. A beépített parancs különbözhet az azonos nevű programtól, mert a beépített parancs megjegyzi, hogy az aktuális könyvtár nem az, hogy újra újraindítja azt. Ez gyorsabbá teszi. Azonban ha az aktuális könyvtár átnevezik, a pwd beépített verziója továbbra is kinyomtatja a könyvtár régi nevét.

olvassa el a [- p prompt ] [- r ] változót ...

A prompt kinyomtatásra kerül, ha a - p opció meg van adva, és a standard bemenet terminál. Ezután egy sor olvasható ki a szabványos bemenetről. A soron következő új sor törlődik a vonalról, és a sor felosztása a fent leírt szómegosztási szakaszban leírtak szerint történik, és a darabokat rendre a változókhoz rendelik. Legalább egy változót kell megadni. Ha a változóknál több darab van, a maradék darabok (az IFS karakterekkel együtt, amelyek elválasztják őket) az utolsó változóhoz rendelik. Ha több változó van mint a darabok, akkor a fennmaradó változókhoz hozzárendeli az null karakterláncot. A beépített olvasás a sikerre utal, kivéve, ha a bemeneten EOF találkozik, amely esetben hiba kerül visszaadásra.

Alapértelmezésben, kivéve ha a - r beállítás meg van adva, a `` \ '' backslash escape karakterként működik, ami a következő karaktert szó szerint kezeli. Ha egy visszalépést új sor követi, akkor a visszalépést és az új sort törli.

csak olvasható név ...

readonly -p

A megadott nevek csak olvashatóak, ezért nem módosíthatók és nem módosíthatók. A shell lehetővé teszi egy változó értékének beállítását, ugyanakkor csak írható írásjelekkel

readonly name = érték

Az argumentumok nélkül az readonly parancs felsorolja az összes csak olvasható változó nevét. A - p opció megadása esetén a kimenet megfelelően formázásra kerül a nem interaktív használathoz.

állítsa be a [{- options | + opciók | - arg ... ]

A beállított parancs három különböző funkciót hajt végre.

Az argumentumok nélkül felsorolja az összes shell változó értékeit.

Ha megadja a beállításokat, akkor beállítja a megadott opciójelzőket, vagy törli őket az Sx argumentumlista feldolgozás szakaszban leírt módon.

A beállított parancs harmadik használata a shell pozícióparamétereinek értékeinek a megadott args-ra való beállítása. A pozícióparaméterek változtatásának megváltoztatása nélkül a `` - '' paramétert kell beállítani. Ha nincs args jelenléte, akkor a set parancs törli az összes pozícióparamétert (ami egyenértékű a `` shift $ # '

változó érték

Értéket rendel a változóhoz. (Általában jobb, ha a setvar setvar helyett inkább a variable = értéket kell írni, hanem olyan függvényekben kell használni, amelyek értékeket rendelnek azokhoz a változókhoz, amelyek nevét paraméterként adják át.)

eltolódás [ n ]

Mozgassa a pozícióparamétereket n-szer. A váltás az $ 1 értéket $ 2 értékre, a $ 2 értéket pedig a $ 3 értékre állítja be, így csökkentve a $ # értékét egyenként. Ha n nagyobb, mint a pozícióparaméterek száma, akkor a váltás hibaüzenetet ad, és a visszatérési állapotból való kilépéshez 2.

alkalommal

Nyomtassa ki a héj felhalmozott felhasználói és rendszeridõjét, valamint a héjból futó folyamatokat. A visszatérési állapot 0.

csapda műveleti jel ...

Húzza ki a shell-t, hogy elemezze és végrehajtsa a műveletet, ha a megadott jelek bármelyikét megkapja. A jeleket a jel száma határozza meg. Ha a jel 0, a művelet végrehajtódik, amikor a shell kilép. a művelet lehet nulla vagy `` - '' az előbbi okozza, hogy a megadott jelet figyelmen kívül hagyja, és az utóbbi okozza az alapértelmezett műveletet. Amikor a shell elhúzza az alsónadrágot , visszaállítja a csapdába esett (de nem mellőzött) jeleket az alapértelmezett művelethez. A trap parancsnak nincs hatása olyan jelekre, amelyeket a héjba való belépéskor figyelmen kívül hagytak.

írja be [ név ... ]

Minden egyes parancsot értelmezzen parancsként, és nyomtassa ki a parancskeresés felbontását. Lehetséges megoldások: shell kulcsszó, alias, beépített shell , parancs, követett alias és nem található. Az álnevek esetében az alias kiterjesztés nyomtatódik; parancsok és nyomon követett álnevek esetén a parancs teljes elérési útvonala nyomtatódik.

ulimit [- H-S ] [- a -tfdscmlpn [ érték ]]

Kérdezzen vagy határozza meg a folyamatok kemény vagy lágy határértékét, vagy állítson be új korlátokat. A küszöbérték közötti választás (melynek során semmilyen folyamatot nem szabad megsérteni, és amelyet nem lehet felemelni, miután leeresztették), és a puha határt (amely jelzi, hogy a folyamatokat nem feltétlenül ölték meg, és amelyek felemelhetők) ezek a zászlók:

H

állítsa be vagy keressen kemény limiteket

-S

beállíthatja vagy megkérdezheti a lágy határértékeket. Ha sem - H sem - S nincs megadva, megjelenik a lágy limit vagy mindkét határérték beáll. Ha mindkettőt megadják, az utolsó nyer.

A lekérdezendő vagy beállítandó határt úgy kell kiválasztani, hogy meghatározzuk a zászlók bármelyikét:

-a

mutassa meg a jelenlegi korlátokat

-t

megmutatja vagy beállítja a CPU időtartamát (másodpercben)

-f

megmutathatja vagy beállíthatja a létrehozandó legnagyobb fájl limitjét (512 byte-os blokkokban)

-d

megmutatja vagy beállítja a folyamat adat szegmensének méretét (kilobájtban)

-s

megmutatja vagy beállítja a folyamat verem méretére vonatkozó korlátot (kilobájtban)

-c

mutassa meg vagy állítsa be a legmagasabb kibocsájtó mérethatárt (512 byte-os blokkokban)

-m

megmutatja vagy beállítja a teljes fizikai memória korlátját, amelyet egy folyamatban használhat (kilobájtban)

-l

mutassa meg vagy állítsa be a korlátot arra vonatkozóan, hogy a memória mennyi memóriát képes lezárni a mlock (2) segítségével ( kilobájtban )

-p

megmutathatja vagy beállíthatja a felhasználó számára egyszerre elérhetõ folyamatok számát

-n

megmutatja vagy beállítja a számfájlok határait, amellyel a folyamat egyszerre megnyitható

Ha ezek közül egyik sem van megadva, a megjelenített vagy beállított fájlméret korlátja. Ha az érték meg van adva, a korlát erre a számra van beállítva; ellenkező esetben a jelenlegi határérték jelenik meg.

Az önkényes folyamat határait a sysctl (8) segédprogram segítségével lehet megjeleníteni vagy beállítani.

umask [ maszk ]

Állítsa be az umask értékét (lásd umask (2)) a megadott oktális értékhez. Ha az argumentum elmarad, az umask érték kinyomtatódik.

unalias [- a ] [ név ]

Ha a név meg van adva, a héj eltávolítja az aliast. Ha a - a van megadva, az összes alias eltávolításra kerül.

unset name ...

A megadott változók és függvények nincsenek beállítva és nem exportálva. Ha egy adott név mind egy változónak, mind egy függvénynek felel meg, mind a változó, mind a függvény nincs beállítva.

várjon [ munkát ]

Várja meg, amíg a megadott feladat befejeződik és visszaadja a feladat utolsó folyamatának kilépési állapotát. Ha az argumentum kihagyásra kerül, várja meg, hogy az összes munka befejezõdjön, és a visszatérési állapot nulla.

Parancssor szerkesztése

Ha a sh- ot interaktív módon használják egy terminálról, az aktuális parancs és a parancs-előzmények (lásd az fc-t az Sx Builtins-ban) szerkeszthetők vi-mode parancssori szerkesztéssel. Ez az üzemmód az alábbiakban leírt parancsokat használja, hasonlóan a vi man oldalon leírt részhalmazokhoz. A `set '-o vi parancs lehetővé teszi a vi-mode szerkesztését és a sh be vi insert módba helyezését. A vi-mode engedélyezésével a sh lehet beilleszteni a beszúrás mód és a parancsmód között. A szerkesztő nem itt olvasható, de egy későbbi dokumentumban lesz. Hasonló a vi-hez: az Aq ESC beírása a VI parancs parancsmódba dobja. Az Aq visszahúzása a parancsmódban a hurok felé halad.

Fontos: Az ember paranccsal ( % man ) tekintse meg, hogyan használják a parancsot az adott számítógépen.