Profile, bashrc, alias

A MathWikiből
(Változatok közti eltérés)
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 az egyik 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 '''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''' parancs begépelésével. Ez utóbbihoz persze előbb szükségünk van egy már működő parancsértelmezőre -- tipikusan egy '''login shell'''-re.
+
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''' parancs begépelésével. Ez utóbbihoz 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 ==
10. sor: 10. sor:
  
 
   '''$ 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:
21. sor: 22. sor:
 
   /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
 
   /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:
+
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'''
 
   '''$ export PATH=$PATH:.:$HOME/bin'''
27. sor: 28. sor:
 
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.
 
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 aktuális 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:
+
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> "'''
 
   '''$ export PS1="\t \H//\w> "'''
 
Ezen parancs hatására a prompt valahogy így fog kinézni:
 
 
 
   '''15:01:54 omnibus//~> '''
 
   '''15:01:54 omnibus//~> '''
  
ahol a '~' jelentése: a '''HOME''' könyvtárunkban vagyunk.
+
Ha a parancsot a parancssorból adtuk ki, annak hatását azonnal le is mérhetjük.
 +
(A '~' jelentése a "//" és a ">" között: a '''HOME''' könyvtárunkban vagyunk.)
  
 
== Az '''alias''' parancs ==
 
== 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ó be; gépelése helyett az '''alias''' parancs segítségével ú.n. beceneveket használhatunk. Pl az
+
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"'''
 
   '''$ alias ll="ls -l"'''
46. sor: 45. sor:
 
== Egy példa '''.profile''' állomány==
 
== Egy példa '''.profile''' állomány==
  
<div class="keretbal">
 
 
  export PATH=$PATH:.:$HOME/bin
 
  export PATH=$PATH:.:$HOME/bin
 
  export PS1="\t \H//\w> "
 
  export PS1="\t \H//\w> "
55. sor: 53. sor:
 
  alias euler="ssh euler.math.bme.hu"
 
  alias euler="ssh euler.math.bme.hu"
 
  alias maple='cd $HOME/working; maple'
 
  alias maple='cd $HOME/working; maple'
</div>
 

A lap 2006. december 10., 20:22-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 parancs begépelésével. Ez utóbbihoz 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 '~' jelentése a "//" és a ">" között: a HOME könyvtárunkban vagyunk.)

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

Egy példa .profile á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 euler="ssh euler.math.bme.hu"
alias maple='cd $HOME/working; maple'
Személyes eszközök