Következő Előző Tartalom

11. Bash

Ha adsz a "login"-nak egy érvényes felhasználói név - jelszó párost, ellenőrzi azt az /etc/passwd állományban, hogy megtudja melyik shell-t indítsa el neked. Linux rendszeren ez legtöbbször a "bash". A "bash" dolga a parancsaid értelmezése, illetve gondoskodni ezek végrehajtásáról. Egyszerre felhasználói felület és programnyelv-értelmező (programming language interpreter - a lektor).

Mint felhasználói felület beolvassa parancsaidat, és végre is hajtja ezeket - amennyiben un. "belső" parancsok, mint például a "cd" - illetve megkeresi és futtatja a programot, - ha az egy un. "külső" parancs, mint például a "cp" vagy a "startx". Olyan megszokott dolgokat is csinál, mint például megjegyzi az előzőleg kiadott parancsokat valamint kiegészíti a fájlneveket.

Már láttuk a "bash"-t működni, mint programnyelv-értelmező. A szkriptek, amiket az "init" a rendszer elindításáért futtat, általában shell szkriptek, amelyeket a "bash" hajt végre. Egy rendes programnyelv, a szokásos parancssoros rendszereszközökkel nagyon hatásos kombinációt alkot, ha tudod mit csinálsz. Például sokat kellett foltoznom (patch - a ford.) egy könyvtárnyi forráskódon a minap. Mindezt egyetlen sorral végre tudtam hajtani:

for f in /home/greg/sh-utils-1.16*.patch; do patch -p0 < $f; done;

Ez megvizsgálja az összes olyan fájlt a home könyvtáramban, aminek a neve "sh-utils-1.16"-al kezdődik, és ".patch"-el végződik. Mindezt ciklusban teszi, beállítja az "f" változót, majd végrehajtja a "do" és "done" közötti parancsot. Ebben az esetben 11 folt volt, de könnyen lehetett volna akár 3000 is.

11.1 Beállítás

Az /etc/profile fájl határozza meg a bash viselkedését/működését a teljes rendszerre vonatkozóan. Amit ide beraksz, az hatással lesz mindenkire, aki a bash shellt használja a rendszereden. Különböző dolgokat fog csinálni, például könyvtárakat ad hozzá a "PATH"-hoz, vagy beállítja a "MAIL" környezeti változót.

A billentyűzet alapbeállítása gyakran kívánnivalót hagy maga után. A readline az, ami ezt irányítja. Ez egy különálló csomag, ami a parancssori csatolófelületet irányítja, rendelkezésre bocsátja a parancssori történetet (command history) és fájlnév-kiegészítést, csakúgy mint néhány fejlettebb sorszerkesztési módot. Ez bele van szerkesztve a bash-ba. Alapértelmezésként a readline a home könyvtáradban lévű .inputrc fájl használatára van beállítva. Az INPUTRC változó használható arra, hogy a bash számára felülírjuk ezt. Például a Red Hat 6 rendszerben az "INPUTRC" értéke /etc/inputrc az /etc/profile fájlban. Ez azt jelenti, hogy a backspace, delete, home és end billentyűk mindenkinek nagyszerűen működnek.

A bash a teljes rendszerre vonatkozó beállítások beolvasása után a személyes beállításokat tartalmazó fájlt keresi meg. Ellenőrzi a home könyvtáradat, .bash_profile, .bash_login és .profile fájlok után kutatva. Ezek közül az első létezőt futtatja. Ha a bash működésén szeretnél változtatni úgy, hogy a többiekre ne legyen hatással, akkor azt itt tedd meg. Például sok alkalmazás környezeti változókat használ a működésének beállítására. Nekem van egy "EDITOR" változóm, ami a "vi" programra van beállítva, így én ezt használhatom a Midnight Commanderben (egy kiváló karakteres fájlkezelő) az ő saját szövegszerkesztője helyett.

11.2 Gyakorlatok

A bash alapjait könnyű megtanulni. De ne állj meg itt: hihetetlen mélységei vannak. Tedd szokásoddá, hogy mindig jobb utat keresel egy dolog véghezvitelére.

Olvass shell szkripteket, keresd meg azokat a részeket, amelyeket nem értesz.

11.3 További információ


Következő Előző Tartalom