„Unix-rendszerhéj” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
a betű
SamatBot (vitalap | szerkesztései)
a kurzív és fett tartalmú zárójelek javítása,
20. sor:
* feltétels kifejezések (''if'', ''case'') és ciklusok (''while'', ''for'') alkalmazása
* beépített parancsok használata (''cd'', ''read'')
* pszeudo-parancsok létrehozása (''(alias)'')
* belső változók használata
* a [[környezet]] manipulálása új [[folyamatok]] indítása előtt
30. sor:
 
'''A modernebb rendszerhéjak ezen felül még az alábbi tulajdonságokkal is rendelkeznek:'''
* parancssorszerkesztés (''(command line editing)'') és kiegészítés (''(completion)'')
* korábbi parancsok visszakeresése és szerkesztése ''(command history)''
* folyamatok megállítása és újraindítása ''(Job Control)''
* számítási feladatok elvégzése (''(expr)'')
* állománytulajdonságok tesztelése (''(test)'')
* jelzések (signal) küldése (''(kill)'') és fogadása (''(trap)'')
* más folyamat bevárása (''(wait)'')
 
Egy parancs leállítása esetén a rendszerhéj a billentyűzet-meghajtót is használja. ''CTRL-C'' a parancs leállítását vonja maga után, és ezt a billentyűzet-meghajtó indítja el.
 
== Működése ==
Az operációs rendszerek működtetése közben a felhasználó és a [[számítógép|gép]] közötti [[kommunikáció]] valamilyen terminálon (esetleg virtuális, vagy emulált környezeten) keresztül történik. Ennek egyik eszköze a shell is, melyen keresztül a vezérlés szöveges karakterekre korlátozódik. A vezérlő jelsorok elsődleges beviteli eszköze (''(standard input, vagy röviden STDIN)'') a használt terminál [[billentyűzet]]e. Minden egyes billentyű lenyomásakor annak kódját a shell megkapja és egy pufferben tárolja, amelynek tartalmát többnyire szerkeszteni is lehet. A parancssor ezen szolgáltatását sorszerkesztőnek, vagy promptnak nevezzük. A sorszerkesztővel többnyire egyszerű műveleteket – törlést, felülírást, beszúrást – végezhetünk a [[kurzor]]mozgató billentyűk segítségével. Ezt követően a bevitt jelsor megjelenik a terminálon. Egy érvényesítő végjellel (alapértelmezésként ez az ENTER vagy RETURN billentyű) lehet a parancsot értelmeztetni.
 
Ilyenkor a [[puffer]] tartalmát megkapja a shell értelmező (''(interpreter)'') része, amely szétbontja utasításokra és paraméterekre. Az utasítások között elsőbbségek, precedenciák lehetnek, azaz nem feltétlenül beviteli sorrendben lesznek elindítva. Végrehajtás
során, ha [[szintaktika]]ilag helyes az utasítássor, akkor a shell először helyettesítő névként (''(alias)''), ha nincs ilyen, akkor a beépített parancskészletében (''(builtin)'') keresi meg a parancshoz tartozó cselekvéssort. Ha ilyen nem létezik, akkor egy alkalmazás neveként értelmezi, és megkísérli elindítani. A beépített parancsok a shellbe vannak integrálva, így működésében olyan, mintha egy programfájl kerülne végrehajtásra, azzal a különbséggel, hogy nem különálló részként található meg a fájlrendszeren. Egyes shellekben
lehetőség nyílik a korábban kiadott parancsok tárolására, újbóli kiadására. Ezeket a parancsokat összefoglaló néven előzményeknek (''(history)'') nevezzük, az őket tartalmazófájl pedig az előzményfájl, mely általában rejtett, és a shellt futtató felhasználó saját könyvtárában, vagy bizonyos esetekben a shell saját programkönyvtárában, vagy ritkábban a gyökérkönyvtárban található.
 
Többnyire elmondható, hogy a végrehajtás szekvenciális, azaz egy újabb utasítás csak akkor adható ki, ha már egy korábbi lefutott. Ez igen nagy megkötés, ennek áthidalására szolgál a munkavezérlés, amellyel megtehetjük, hogy bizonyos parancsokat háttérben futtassunk külön folyamatként, vagy felfüggesszük. A felfüggesztett folyamatoktól a rendszer elveszi a [[CPU]] vezérlést, ha szükséges, a lefoglalt memóriájukat elsők között írja ki a [[lapozás (informatika)|lapozó]] (''(swap)'') partícióra.
 
==Irodalom==