Sikeres bejelentkezéskor a felhasználóhoz rendelt shell program indul el először. Ebben az írásban a Bash elindulási lehetőségeivel ismerkedünk meg.
A Bash-t 1987-ben adták ki először, amely az 1978-ban kiadott sh parancsértelmező újraírása. A shell egy olyan program, ami a szabványos bemenetről vagy egy fájlból olvassa a végrehajtandó parancsokat.
A Bash-nek három féle futtatási lehetősége van:
- interaktív login-shell
- interaktív nem-login shell
- nem interaktív shell
Interaktív login-shell
Ebben az üzemmódban a felhasználó a login-t használva belép a rendszerben, ahol a Bash fogadja és várja a végrehajtandó parancsokat:
Naxonet login: jonci
Password:
bash$
Interaktív nem-login shell
Nem a belépés folyamat során indul el, már bent vagyunk a rendszerben és innen indítjuk el. Például egy másik shell-ből elindítjuk a Bash-t:
ksh$ bash bash$
Nem interaktív shell
Ebben az állapotban shell script futtatására használjuk. Ilyenkor a BASH_ENV környezeti változóban megadott program fog lefutni.
bash$ bash /útvonal/futtatando-shell-script.sh
Ha van futtatási jog a fájlon és az első sorban megadtuk a feldolgozó programot is (Bash esetén az első sor #!/bin/bash), akkor csak elég lefuttatni:
bash$ /útvonal/futtatando-shell-script.sh
Bash belépési folyamata
Működése során az alábbi sorrend alapján vizsgálja meg a fájlok létezését:
- /etc/profile
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_login
- ~/.profile
- ~/.bash_logout
Az alábbi kis kód szemlélteti a belépés során a végrehajtások feltételét interaktív login-shell esetén:
HA /etc/profile létezik AKKOR futtatás /etc/profile VÉGE HA HA ~/.bash_profile létezik AKKOR futtatás ~/.bash_profile KÜLÖNBEN HA ~/.bash_login létezik AKKOR futtatás ~/.bash_login KÜLÖNBEN HA ~/.profile létezik AKKOR futtatás ~/.profile VÉGE HA VÉGE HA VÉGE HA
Ugyanez interaktív nem-login shell esetén:
HA ~/.bashrc létezik AKKOR futtatás ~/.bashrc VÉGE HA
Kilépés során pedig az alábbi:
HA ~/.bash_logout létezik AKKOR futtatás ~/.bash_logout VÉGE HA
Parancs-history
A Bash-ban kiadott parancsok a memóriában tárolódnak, amit a history paranccsal kérdezhetjünk le. Méretét a HISTSIZE változóval állíthatjuk be (alapesetben 500 az értéke). Kilépéskor a lista kiíródik a ~/.bash_history fájlba. A HISTFILE tarlmazza a history-t tároló fájl nevét (alapesetben /home/<felhasználó>/.bash_history). A fájlban eltárolt sorok számát a HISTFILESIZE változóval szabályozhatjuk (értéke szintén 500 alapból).
Ha nem adunk meg értéket a history programnak, akkor a teljes listát megkapjuk:
bash$ history 1 ls -lak /tmp ... 497 history 498 cd ~ 499 cd - 500 mkdir /tmp/akarmi bash$
Ha csak az utolsó négy parancsra vagyunk kíváncsiak, akkor a következő parancsot használhatjuk (history <szám>):
bash$ history 4 497 cd ~ 498 cd - 499 mkdir /tmp/akarmi 500 history 4 bash$
Van lehetőség, hogy töröljünk a history-ból! Ha csak egy bejegyzést szeretnénk törölni, akkor használjuk a -d szám paramétert:
bash$ history -d 499 bash$ history 5 496 cd ~ 497 cd - 498 history 4 499 history -d 499 500 history 5 bash$
Az egész history törlése a -c paraméterrel kérhető:
bash$ history -c bash$ history 1 history bash$
Fontosabb környezeti változók
Sok környezeti változóval bír a Bash, amelyek közül érdemes átnézni párat:
Változó | Leírás | Alapérték |
---|---|---|
IFS | Karaktersorozatok elválasztására szolgál | $’ tn’ |
HOME | a felhasználó home könyvtára | /home/<felhasználó> |
HOSTNAME | számítógép neve | <számítógép neve> |
a felhasználó postaládája (mailbox) | /var/mail/<felhasználó> | |
MAILCHECK | postafiók ellenőrzése másodpercben | 60 |
PATH | asd | asd |
PS1, 2, (3,4) | prompt 1., 2., (3., 4.) sora | PS1=’u@h:w$ ‘ |
UID | felhasználó egyedi azonosító száma (0-65535) | <felhasználó azonosítója> |
USER | felhasználó neve | <felhasználó> |
Beépített parancsok
A környezeti változókhoz hasonlóan, sok beépített paranccsal bír a Bash, ezekről a help futtatásával kaphatunk listát. A kiszemelt parancsról bővebbet leírást a help <parancs> futtatásával olvashatunk.
Ebben az írásban mélyebben nem foglalkozunk ezekkel a beépített parancsokkal, majd visszatérük rájuk a Shell-programozás bejegyzésben.
Hasznos billentyűzetkombinációk
A gyorsbillentyűk közül kiemelnék párat, amik hasznosak lehetnek a mindennapi használat során:
Gyorsbillentyű | Leírás |
---|---|
TAB | parancs-, fájl-, vagy könyvtárnév-kiegészítés |
ctrl+a | ugrás a sor erejére |
ctrl+e | ugrás a sor végére |
ctrl+l | képernyő törlése és újbóli kirajzolása |
ctrl+d | kurzor alatti karakter törlése vagy logout |
ctrl+u | a kurzortól balra lévő részt törli |
ctrl+k | a kurzortól jobbra lévő részt törli |
ctrl+z | futó program pause (‘jobs’ kilistázza, ‘fg’ újra aktivizálja) |
ctrl+c | új sor kezdése vagy futó program megszakítása |
ctrl+v | a tab, mint karakter használható |