Dostrajanie Bash'a W tym tekscie przedstawię kilka pożytecznych rzeczy które mogą uczynic pracę pod konsolą Linuksa (zwłaszcza jeżeli chodzi o Bash'a) sprawniejszą. Bash jest domyślną powłoką uzytkownika w Linuksie. Jego nazwa to skrót od Bourne Again Shell. Kiedy ta powłoka się uruchamia przeważnie (zależy od trybu w jakim jest uruchomiona, zobacz man bash) odczytywane są pliki /etc/profile i $HOME/.bash_profile. W /etc/profile można umieścić wiele pożytecznych rzeczy, np. krótsze aliasy dla często używanych komend, lub chciażby echo "Witaj użytkowniku" . Przeważnie (zależy od dystrybucji) przy starcie Bash'a uruchamiane też są pliki z katalogu /etc/profile.d/, ale muszą one mieć rozszerzenie .sh. W /etc/profile możemy sobie np. ustawić zmienną PATH. Jeżeli chcemy aby powłoka szukała programów również w aktualnym katalogu wystarczy dodać wiersz export PATH=$PATH:. . export PS1='[\u][\W]\$ ' zmieni znak zachęty powłoki na wyglądający następująco [nazwa_użytkownika][katalog]$ . W skryptach Bash'a, czyli także w pliku /etc/profile można uzywać funkcji. Najprostsza funkcja wygląda następująco: nazwa_funkcji() {
echo "To jest przykładowa funkcja"
}Funkcje używane są jak zwykłe polecenia, są to takie programy w programach. Oto przykłady kilku funkcji: filter() {
egrep -v "^\#.*$|^$"
} | Usuwa z tekstu otrzymanego na standardowe wejście (ang. standard input) wszystkie puste i zaczynające się od # linie. Przykład: cat /etc/ppp/options | filter > /etc/ppp/options.new | bpkg() {
tar -vc * | gzip -v > $1.tgz
} | Z zawartości aktualnego katalogu buduje tarball'a (archiwum .tgz). Nazwę archiwum podajemy bez końcówki .tgz Przykład: bpkg ../backup | fnd() {
find -name *$1*
} | Przy pomocy programu find szuka pliku o podanej nazwie. Przykład: fnd postfix |
Oprócz funkcji możemy uzywać aliasów. Mają one krótszą postać od funkcji. Przykładowy alias wygląda tak: alias nowe_polecenie="baaaaardzo długie i skomplikowane polecenie" Kilka przykładów: alias cdm="mount /dev/cdrom" - montuje CD-ROM alias cdu="umount /cdrom" - odmontowywuje CD-ROM alias df="df -h" - pokazuje ile jest wolnego miejsca na dysku (w MB) alias repr="source /etc/profile" - ponownie odczytuje plik /etc/profile alias cdsrc="cd /usr/src" - przechodzi do katalogu /usr/src alias disp="export DISPLAY=:0.0" - ustawia zmienną DISPLAY na :0.0 alias lspkg="ls /var/log/packages" - wyświetla zawartość katalogu /var/log/packages, w wypadku Slackware jest to lista zainstalowanych pakietów :)
|