Profile, bashrc, alias
(→Egy példa '''.profile''' (vagy '''.bashrc''') állomány) |
|||
(egy szerkesztő 38 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
== A '''.profile''' és '''.bashrc''' állományok == | == A '''.profile''' és '''.bashrc''' állományok == | ||
− | A '''bash''' shell indulása során először ellenőrzi, hogy bizonyos fájlok léteznek-e, és ha igen, akkor a bennük lévő parancsokat értelmezi és végrehajtja. Ezen fájlok között számunkra | + | A '''bash''' shell indulása során először ellenőrzi, hogy bizonyos fájlok léteznek-e, és ha igen, akkor a bennük lévő parancsokat értelmezi és végrehajtja. Ezen fájlok között számunkra a két legfontosabb a HOME könyvtárunkban elhelyezkedő '''.profile''' és '''.bashrc''', amelyek segítségével személyes igényeink szerint tudjuk módosítani a '''bash''' parancsértelmező viselkedését. A '''.profile'''-ban elhelyezett parancsok csak az ú.n. '''login shell'''-ekben, míg a '''.bashrc'''-ben elhelyezettek csak a '''nem-login shell'''-ekben futnak le a parancsértelmező indítása során. '''Login shell'''-t indítunk pl. egy '''ssh'''-s vagy '''putty'''-os bejelentkezés alkalmával, és '''nem-login shell'''-t indíthatunk a '''bash''' vagy az '''xterm''' parancs begépelésével. Ez utóbbiakhoz persze előbb szükségünk van egy már működő parancsértelmezőre -- tipikusan egy '''login shell'''-re. |
== Környezeti változók módosítása, beállítása == | == Környezeti változók módosítása, beállítása == | ||
A '''bash''' viselkedését sok u.n. köznyezeti változó befolyásolja különböző módokon. Ezeket a változókat az '''export''' parancs segítségével változtathatjuk meg, és az '''echo''' parancs segítségével ellenőrizhetjük értéküket. Pl. a ''sajat_valtozom'' nevű környezeti változót az alábbiak szerint módosíthatjuk: | A '''bash''' viselkedését sok u.n. köznyezeti változó befolyásolja különböző módokon. Ezeket a változókat az '''export''' parancs segítségével változtathatjuk meg, és az '''echo''' parancs segítségével ellenőrizhetjük értéküket. Pl. a ''sajat_valtozom'' nevű környezeti változót az alábbiak szerint módosíthatjuk: | ||
− | '''$ export sajat_valtozom=valami''' | + | '''$ export sajat_valtozom=valami''' |
Az eredményt pedig az alábbi paranccsal ellenőrizhetjük: | Az eredményt pedig az alábbi paranccsal ellenőrizhetjük: | ||
− | '''$ echo $sajat_valtozom | + | '''$ echo $sajat_valtozom |
+ | valami | ||
(A shell változóira való hivatkozás módja: $változó-név.) | (A shell változóira való hivatkozás módja: $változó-név.) | ||
== A '''bash''' által használt néhány fontosabb környezeti változó== | == A '''bash''' által használt néhány fontosabb környezeti változó== | ||
− | A '''HOME''' nevű változó tartalmazza a saját HOME könyvtáruk elérési útját a teljes fájlrendszeren belül. (Ezt csak nagyon kivételes esetben célszerű módosítanunk.) | + | *A '''HOME''' nevű változó tartalmazza a saját HOME könyvtáruk elérési útját a teljes fájlrendszeren belül. (Ezt csak nagyon kivételes esetben lehet célszerű módosítanunk.) |
− | A '''PATH''' nevű változó tartalmazza mindazon könyvtárak nevét, melyekben a '''bash''' keresni fogja a futtatható programokat. Ez a lista általában csak az operációs rendszer által nyújtott legfontosabb parancsokat tartalmazó könyvtárakra terjed ki: | + | *A '''PATH''' nevű változó tartalmazza mindazon könyvtárak nevét, melyekben a '''bash''' keresni fogja a futtatható programokat. Ez a lista általában csak az operációs rendszer által nyújtott legfontosabb parancsokat tartalmazó könyvtárakra terjed ki: |
+ | '''$ echo $PATH''' | ||
+ | /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin | ||
+ | :Ha viszont szeretnénk a saját programjainkat is ugyanolyan egyszerűen elindítani (az elérési útvonal megadása nélkül), mint a rendszerparancsokat, akkor célszerű lehet ennek a változónak a módosítása. Többnyire két ''könytárral'' célszerű kiegészíteni az alapértelmezett listát: az aktuális munkakönyvtárral (.) ill. ha sok saját progrtamunk van, akkor az azokat tartalmazó pl. a közvetlenül a HOME könyvtárunk alatti ''bin'' könvtárral: | ||
+ | '''$ export PATH=$PATH:.:$HOME/bin''' | ||
+ | :Persze, ha ez a módosítás valóban indokolt, akkor az is nagyon valószínű, hogy erre minden egyes bejelentkezésünk után szükségünk lesz. Ekkor a parancsnak a minden alkalommal való újbóli begépelése helyett célszerűbb azt elhelyezni a '''.profile''' állományban. | ||
− | '''$ | + | *A '''PS1''' változó segítségével a promptunkat szabályozhatjuk. Az ''egyszerű szövegen'' túlmenően néhány speciális dolgot is elhelyezhetünk a promptunkban. Pl. praktikus lehet a promptban elhelyezni az aktuális könyvtárat (\w), a gép nevét (\H),esetleg az időt (\t, \T, \@ vagy \A) vagy más egyéb dolgot, melyekről a '''man bash''' paranccsal kaphatunk bővebb információt. Egy lehetséges prompt beállító parancs: |
+ | '''$ export PS1="\t \H//\w> "''' | ||
+ | '''15:01:54 omnibus//~> ''' | ||
+ | :Ha a parancsot a parancssorból adtuk ki, annak hatását azonnal le is mérhetjük. | ||
+ | :(A "//" és a ">" közötti '~' jelentése: jelenleg éppen a '''HOME''' könyvtárunkban vagyunk.) | ||
+ | :Mivel az egyszer már praktikusnak talált promptot általában szeretnénk minden bejelentkezésünk idején használni, célszerű a '''PS1''' változó módosítását is a '''.profile'''-ban elhelyezni. | ||
− | + | == Az '''alias''' parancs == | |
+ | A '''bash''' parancsainak működését általában kapcsolók széles skálájával lehet módosítani. A számunkra fontos kombinációk minden alkalommal való begépelése helyett az '''alias''' parancs segítségével ú.n. beceneveket használhatunk. Pl. az | ||
− | + | '''$ alias ll="ls -l"''' | |
− | ''' | + | parancsot követően a '''bash''' ismerni fogja az '''ll''' parancsot. Mindannyiszor, ha leírjuk, hogy '''ll''' a '''bash''' automatikusan átfordítja azt az '''ls -l''' paranccsá. |
− | + | Fájlok véletlenszerű törlése ('''rm'''), másolása ('''cp''') ill. mozgatása ('''mv''') esetenként végzetes hibákat okozhat. Ezen hibák többnyire megelőzhetőek a '''-i''' kapcsoló használatával. Ehhez vagy minden alkalommal be kell írnunk az ilyen parancsok mögé a kapcsolót, vagy az '''alias''' parancs segítségével módosíthatjuk a parancsok alapértelmezett viselkedését: | |
+ | $ alias cp="cp -i" | ||
+ | Ezen parancsot követően pl. a "'''cp a.txt b.txt'''" parancs abban az esetben, ha már korábban is létezett egy 'b.txt' nevű fájl, akkor annak az automatikus felülírása helyett (ez történne a '''-i''' kapcsoló nélkül), az "új '''cp'''" parancs meg fogja kérdezni, hogy komolyan gondoltuk-e a fájl felülírását. | ||
− | A ''' | + | A környezeti változók módosításához hasonlóan, az '''alias''' parancsot is többnyire a '''.profile''' állományban célszerű alkalmazni. |
− | ''' | + | == Egy példa '''.profile''' (vagy '''.bashrc''') állomány== |
− | + | export PATH=$PATH:.:$HOME/bin | |
+ | export PS1="\t \H//\w> " | ||
+ | |||
+ | alias ll="ls -l" | ||
+ | alias la="ls -a" | ||
+ | alias lla="ls -la" | ||
+ | |||
+ | alias rm='rm -i' | ||
+ | alias cp='cp -i' | ||
+ | alias mv='mv -i' | ||
+ | |||
+ | alias euler="ssh euler.math.bme.hu" | ||
+ | alias maple='cd $HOME/working; maple' | ||
− | + | == További tájékozódáshoz == | |
+ | [[Bash gyorsbillentyűk, beírt parancsok visszahívása]] | ||
− | + | [http://www.gnu.org/software/bash A '''bash''' hivatalos oldala] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
A lap jelenlegi, 2006. december 12., 19:50-kori változata
Tartalomjegyzék |
A .profile és .bashrc állományok
A bash shell indulása során először ellenőrzi, hogy bizonyos fájlok léteznek-e, és ha igen, akkor a bennük lévő parancsokat értelmezi és végrehajtja. Ezen fájlok között számunkra a két legfontosabb a HOME könyvtárunkban elhelyezkedő .profile és .bashrc, amelyek segítségével személyes igényeink szerint tudjuk módosítani a bash parancsértelmező viselkedését. A .profile-ban elhelyezett parancsok csak az ú.n. login shell-ekben, míg a .bashrc-ben elhelyezettek csak a nem-login shell-ekben futnak le a parancsértelmező indítása során. Login shell-t indítunk pl. egy ssh-s vagy putty-os bejelentkezés alkalmával, és nem-login shell-t indíthatunk a bash vagy az xterm parancs begépelésével. Ez utóbbiakhoz persze előbb szükségünk van egy már működő parancsértelmezőre -- tipikusan egy login shell-re.
Környezeti változók módosítása, beállítása
A bash viselkedését sok u.n. köznyezeti változó befolyásolja különböző módokon. Ezeket a változókat az export parancs segítségével változtathatjuk meg, és az echo parancs segítségével ellenőrizhetjük értéküket. Pl. a sajat_valtozom nevű környezeti változót az alábbiak szerint módosíthatjuk:
$ export sajat_valtozom=valami
Az eredményt pedig az alábbi paranccsal ellenőrizhetjük:
$ echo $sajat_valtozom valami
(A shell változóira való hivatkozás módja: $változó-név.)
A bash által használt néhány fontosabb környezeti változó
- A HOME nevű változó tartalmazza a saját HOME könyvtáruk elérési útját a teljes fájlrendszeren belül. (Ezt csak nagyon kivételes esetben lehet célszerű módosítanunk.)
- A PATH nevű változó tartalmazza mindazon könyvtárak nevét, melyekben a bash keresni fogja a futtatható programokat. Ez a lista általában csak az operációs rendszer által nyújtott legfontosabb parancsokat tartalmazó könyvtárakra terjed ki:
$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
- Ha viszont szeretnénk a saját programjainkat is ugyanolyan egyszerűen elindítani (az elérési útvonal megadása nélkül), mint a rendszerparancsokat, akkor célszerű lehet ennek a változónak a módosítása. Többnyire két könytárral célszerű kiegészíteni az alapértelmezett listát: az aktuális munkakönyvtárral (.) ill. ha sok saját progrtamunk van, akkor az azokat tartalmazó pl. a közvetlenül a HOME könyvtárunk alatti bin könvtárral:
$ export PATH=$PATH:.:$HOME/bin
- Persze, ha ez a módosítás valóban indokolt, akkor az is nagyon valószínű, hogy erre minden egyes bejelentkezésünk után szükségünk lesz. Ekkor a parancsnak a minden alkalommal való újbóli begépelése helyett célszerűbb azt elhelyezni a .profile állományban.
- A PS1 változó segítségével a promptunkat szabályozhatjuk. Az egyszerű szövegen túlmenően néhány speciális dolgot is elhelyezhetünk a promptunkban. Pl. praktikus lehet a promptban elhelyezni az aktuális könyvtárat (\w), a gép nevét (\H),esetleg az időt (\t, \T, \@ vagy \A) vagy más egyéb dolgot, melyekről a man bash paranccsal kaphatunk bővebb információt. Egy lehetséges prompt beállító parancs:
$ export PS1="\t \H//\w> " 15:01:54 omnibus//~>
- Ha a parancsot a parancssorból adtuk ki, annak hatását azonnal le is mérhetjük.
- (A "//" és a ">" közötti '~' jelentése: jelenleg éppen a HOME könyvtárunkban vagyunk.)
- Mivel az egyszer már praktikusnak talált promptot általában szeretnénk minden bejelentkezésünk idején használni, célszerű a PS1 változó módosítását is a .profile-ban elhelyezni.
Az alias parancs
A bash parancsainak működését általában kapcsolók széles skálájával lehet módosítani. A számunkra fontos kombinációk minden alkalommal való begépelése helyett az alias parancs segítségével ú.n. beceneveket használhatunk. Pl. az
$ alias ll="ls -l"
parancsot követően a bash ismerni fogja az ll parancsot. Mindannyiszor, ha leírjuk, hogy ll a bash automatikusan átfordítja azt az ls -l paranccsá.
Fájlok véletlenszerű törlése (rm), másolása (cp) ill. mozgatása (mv) esetenként végzetes hibákat okozhat. Ezen hibák többnyire megelőzhetőek a -i kapcsoló használatával. Ehhez vagy minden alkalommal be kell írnunk az ilyen parancsok mögé a kapcsolót, vagy az alias parancs segítségével módosíthatjuk a parancsok alapértelmezett viselkedését:
$ alias cp="cp -i"
Ezen parancsot követően pl. a "cp a.txt b.txt" parancs abban az esetben, ha már korábban is létezett egy 'b.txt' nevű fájl, akkor annak az automatikus felülírása helyett (ez történne a -i kapcsoló nélkül), az "új cp" parancs meg fogja kérdezni, hogy komolyan gondoltuk-e a fájl felülírását.
A környezeti változók módosításához hasonlóan, az alias parancsot is többnyire a .profile állományban célszerű alkalmazni.
Egy példa .profile (vagy .bashrc) állomány
export PATH=$PATH:.:$HOME/bin export PS1="\t \H//\w> " alias ll="ls -l" alias la="ls -a" alias lla="ls -la" alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias euler="ssh euler.math.bme.hu" alias maple='cd $HOME/working; maple'