- IT Blog – Linux & Windows - https://it.naxoblog.hu -

Bejelentkezés: a Bash-ről röviden

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

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:

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bashrc
  4. ~/.bash_login
  5. ~/.profile
  6. ~/.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>
MAIL 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ó