A C shell beépített parancsai

Az alábbiakban a C shell beépített parancsait tekintjük át. Ezek olyan parancsok, amik a felhasználó számára megkülönböztethetetlenek a szokványos UNIX parancsoktól, a különbség abban rejlik, hogy ezek a shell-be beépített parancsok, nem egy másik UNIX parancsot hív meg a shell, amikor használjuk őket.

:

Üres parancs. Hatására semmi tevékenység nem történik. Rendszerint feltétel-ágak kitöltésénél használatos.

alias [name [def]]

A def definíciót rendeli hozzá a name névhez. name nem lehet azonos az alias, illetve unalias szóval. Argumentum hiányában a létező alias definíciók íródnak ki.

bg [%job]

Az aktuális, illetve paraméterként megadott jobot a háttérben futtatja.

break

A legbelső foreach vagy while hurkon kívülre ugrik és onnan folytatja a végrehajtást.

breaksw

switch parancsból lép ki, az endsw kulcsszó utáni részen folytatva a végrehajtást.

case label:

végrehajtási ág a case vezérlési szerkezetben.

cd dir, chdir dir

A dir katalógusba vált. Ha dir relatív elérési úttal megadott katalógusnév, és a kurrens katalógus alatt nem található, akkor a cdpath változó által megadott katalógusok alatt is keresi.

Continue

A pillanatnyi pontot körülvevő legbelső while vagy foreach ciklusra ugrik, s annak elejéről folytatódik a program futása.

default:

A switch vezérlési szerkezet alapértelmezésű ága. Ha a többi ágra ugrás feltétele nem teljesült, az e szócska után következő kód hajtódik végre.

dirs [-l]

A katalógus-verem tartalmát listázza ki, a legutolsónak beírt elemmel kezdve. A -l opció hatására a teljes elérési út nevet írja ki, a ~ rövidítés megszűnik.

echo [-n] list

A list argumentumokat a standard kimenetre írja, szóközzel elválasztva. A kiírást újsor karakterrel zárja, kivéve ha a -n opciót is megadtuk.

eval arg ..

Az argumentumokat beolvassa a shell-be és az eredményül adódó parancsokat végrehajtja. Olyankor szokás használni, ha parancs- vagy változóbehelyettesítéssel generált parancsokat szeretnénk végrehajtani, ugyanis egyébként a parancssor feldolgozása már a parancsbehelyettesítés előtt megtörténik.

exec cmd

A cmd parancs(oka)t az aktuális shell megszüntetésével, annak helyén hajtja végre.

exit [(expr)]

Megszűnik a shell, ha expr definiált, annak értékével, egyébként pedig a status változó értékét fölvéve.

 

fg [%job]

A megadott, illetve paraméter hiányában az aktív jobot előtérbe hozza és ott futtatja.

foreach var ( wordlist ) cmdlist End

Ciklusszervező vezérlési szerkezet. var sorra felveszi wordlist elemeinek értékét, és a ciklustörzset ezzel az értékkel hajtja végre. A break paranccsal idő előtt ki lehet lépni az egész ciklusszerkezetből, a continue pedig soronkívül a ciklusfejjel folytatja, a következő wordlist elemet behelyettesítve.

goto label

A parancsvégrehajtás a label: szöveggel kezdődő sor után folytatódik. Ha szükséges, a label címkén a shell végrehajtja a parancs és fájlnév behelyettesítéseket, és az így adódó címkét keresi. Ciklusba beugrani tilos, akár while, akár foreach ciklusról van is szó.

History [hr] [n]

Kilistázza az eseménypuffer tartalmát, azaz a feljegyzett előző parancsokat. n a kilistázandó események számát adja meg (ha nem adtunk meg értéket, a history változó által beállított értéket veszi). r hatására fordított sorrendben listázza ki az eseményeket, míg h az eseményszám nélkül.

if (expr1) then cmdlist1 else if (expr2) then cmdlist2 else cmdlist3 endif

 

 

 

Ha expr1 igaz, az első else ágig terjedő programrészt (cmdlist1) hajtja végre a shell; máskülönben ha expr2 igaz, akkor a cmdlist2 parancslistát, egyébként pedig a cmdlist3 parancsait. Mind az else if, mind az else ágak opcionálisak, else if pedig tetszőleges számban szerepelhet

 

A fenti parancs leegyszerűsített esete az

 

if (expr) cmd változat, ahol egyetlen parancs, cmd hajtódik végre expr igaz teljesülése esetén (sem cső, sem parancslista, se zárójelezett parancsok nem megengedettek).

jobs [-l]

Az éppen futó, jobvezérlő parancsokkal elérhető jobokat listázza ki. -l hatására a folyamatazonosítókat is kiírja.

kill [-sig] [pid] [%job] kill -l

A TERM (leállító), illetve megadása esetén valamelyik másik sig szignált küldi ki a megnevezett folyamatnak. Akár folyamatazonosítóval (pid), akár a jobazonosítóval (%job) hivatkozhatunk a leállítandó folyamatra. A -l opció hatására kilistázza a küldhető szignálok listáját. A szignál akár számmal, akár névvel megadható.

limit [-h]

[resource]

[max- use]

Az aktuális folyamat, vagy az általa indított folyamatok erőforrás igényét maximálja. Ha a max use értéket nem adjuk meg, a pillanatnyi beállítást írja ki; ha az erőforrást (resource) se nevezzük meg, az érvényes összes határértéket kilistázza

-h Hatására az úgynevezett "hard limitet" listázza ki a shell, azokat az értékeket, ameddig a pillanatnyi beállításokkal elmehetünk. Hard limitet csak privilégizált felhasználó növelhet meg.

-A beállítható erőforrások és neveik erősen rendszerfüggőek, de rendszerint a CPU által használható idő, a maximális fájlméret, programok data és stackterületének mérete, fájlleírók száma stb. állíthatóak be.

login [user [-p]]

Leállítja a login shell t és elindítja a login parancsot. A -p opció hatására az előző környezetet átmenti az új felhasználó számára

logout

Leállítja a login shell-t.

nice [+n|-n] [command]

Megváltoztatja a definiált parancs (ennek hiányában az aktuális shell) prioritását. Minél magasabb számértéket adunk meg, annál kisebb prioritással (lassabban) fog futni a rendszer. A prioritást növelni csak a privilégizált felhasználóknak van joga. A megadható számérték -20 és +19 közti érték lehet, a default 4.

notify [%job]

Ha a megnevezett, illetve ennek hiányában az aktuális job állapota megváltozik, aszinkron módon, közvetlenül értesíti a felhasználót.

onintr [|label]

A Bourne shell trap parancsának megfelelője, a szoftver megszakítások (szignálok) lekezelésére. Ha argumentum nélkül hívjuk meg az onintr parancsot, alapállapotba állítja a megszakításkezelést: ez azt jelenti, hogy egy szignál érkezésekor (leggyakrabban ha a felhasználó CTRL-C billentyűvel "lelövi" a programot (TERM szignál)) a shellscript elhal, a vezérlés pedig átadódik a script-et indító shell szintjére. A - opció hatására az összes szignált figyelmen kívül hagyja a script. label megadásával a script egy

goto label parancsot fog végrehajtani, valahányszor szignál érkezik.

popd [+n]

Előveszi (egyben törli) a katalógus verem legfelső elemét, és oda vált. Ha számértéket is megadunk, a verem n -edik elemét törli a shell (de nem vált oda!).

pushd [+n | dir]

Ha paraméter nélkül hívjuk meg, a katalógus verem első két elemét cseréli meg (nulladik és első), egyúttal átvált az új nulladik elemre.

Ha számparamétert adunk meg, a katalógus-verem n-edik elemét a verem tetejére helyezi (és oda is vált), a többi katalógust pedig rotálja.

Ha katalógusnévvel hívjuk meg, a dir katalógust a verem tetejére rakja és egyúttal oda vált.

rehash

A shell a gyorsabb hozzáférés érdekében belső (ún. hash algoritmussal feltöltött) táblákban tartja nyilván a path változóban szereplő katalógusokban lévő összes parancsot. A rehash paranccsal ezeket a táblákat tudjuk frissíteni, ha valamelyik katalógusba új parancsot írtunk be.

repeat n cmd

A cmd parancsot nszer végrehajtja.

 

set [var [=value]]set var[n]=word

Paraméterek megadása nélkül az összes shell változó értékét listázza ki, a több szóból álló változóértékeket zárójeles listaként. Ha csak a var változónevet adjuk meg, a változóhoz üres (null) értéket rendel. a var[n] megadás a var változó n- edik eleméhez rendel értéket.

A változókhoz rendelt értékeken a shell előbb végrehajtja az esetleges fájlnév- és változó behelyettesítéseket.

setenv [VAR [word]]

Argumentum megadása nélkül az összes környezeti változó értékét listázza ki. Csak a VAR változónév megadásával a változóhoz az üres (null) értéket rendeli. (A környezeti változók a konvenció szerint nagybetűsek.)

shift [var]

A var változó, illetve argumentum megadásának hiányában az argv shell változó elemeit eggyel balra lépteti a shell, azaz az első elemet eldobja, a második lesz az első, stb.

source [-h] name

Shell parancsokat olvas be és hajt végre a name fájlból. A -h opció hatására a name fájlból beolvasott parancsokat az eseménypufferbe helyezi, anélkül hogy végrehajtaná őket.

stop [%job]

A megadott, ennek hiányában pedig az aktuális jobot leállítja.

suspend

Felfüggeszti a futó shell végrehajtását, hasonlóan a CTRL-Z billentyűhöz.

switch (string)case label:

...

breaksw

...

default:

...

breaksw endsw

 

 

 

 

 

 

 

Többirányú elágaztatás: arra a case ágra ugrik a vezérlés, amelynek label mintája illeszkedik az expr kifejezésre. Ha nem volt illeszkedő minta, a default ág hajtódik végre.

time [cmd]

Argumentum megadása nélkül a futó C shell és az általa elindított gyermek folyamatok által felhasznált összes időt írja ki. A cmd parancs megadásával végrehajtja azt, és cmd végrehajtási idejét írja ki.

umask [value]

A létrehozandó új fájlok hozzáférési jogait állítja be, illetve listázza ki.

unalias pattern

Törli a pattern nevű aliasokat. (A végrehajtás előtt fájlnév behelyettesítést végez a megadott alias néven,

unalias * pedig törli az összes definiált aliast.)

unhash

Letiltja a belső hash tábla használatát.

unlimit [-h] [resource]

A resource erőforrásra bevezetett korlátokat feloldja. Ha nem nevezünk meg erőforrást, akkor az összes erőforrásra vonatkozó limitet törli. A -h opció hatására a hard limiteket törli. Ezt - akárcsak a beállítást - csak privilégizált felhasználó teheti meg.

unset pattern

Törli mindazokat a változókat, amelyek neve (a fájlnév behelyettesítési szabályok szerint) illeszkedik a pattern mintára.

unsetenv VAR

Törli a VAR környezeti változót. Az unset paranccsal ellentétben, a VAR változónéven nem történik fájlnév behelyettesítés.

wait

Nem ír ki addig parancspromptot, amíg a háttérben futó folyamatok be nem fejeződnek, illetve megszakítás nem érkezik.

while (expr)

...

end

 

 

Mindaddig végrehajtja a while és end közti részt, amíg expr kiértékelése igaz (nem nulla) logikai értéket ad.

%[job][&]

A megadott, illetve ennek hiányában az aktuális jobot az előtérbe hozza; ha a & jelet is megadjuk, akkor job a háttérben fut tovább.

 

Tartalomjegyzék