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