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. |