Alias, czyli pójście "na skróty"...

Spis treści

Do stworzenia aliasu służy komenda alias o następującej składni:

user@XYZ:~$ alias skrot=cos
user@XYZ:~$ alias skrot=cos skrot1=cos1 ...

spowoduje to, że od tej chwili fraza skrot bedzie zastępowała w linii komend frazę (komendę) cos.  Drugi zapis pokazuje jak można "hurtowo" tworzyć aliasy.

Alias jest aktywny do końca sesji, w której został stworzony. Np. jeśli został stworzony w sesji terminala w systemie pracującym w trybie graficznym to zostanie "zapomniany" po wyjściu z sesji terminalowej.

By aliasy były aktywne dla każdej sesji użytkownika winny zostać wpisane do pliku o nazwie: .bash_aliases, który winien zostać umieszczony w jego katalogu domowym. Podczas logowania się czy uruchamiania nowej sesji odpowiedni wpis w pliku .bashrc sprawdza istnienie pliku .bash_aliases i jeśli jest wczytuje poszczególne wpisy.

.bash_aliases to zwykły plik tekstowy, w którym w kolejnych liniach znajdują się odpowiednie przypisania aliasów. Ja wykorzystuję plik o następującej treści:

alias ,0="cd ~"
alias ,1="cd .."
alias ,2="cd ../.."
alias ,3="cd ../../.."
alias ,-="cd -"
alias ,a="alias"
alias ,c="clear"
alias ,e="exit"
alias ,ce="clear; exit"
alias ,s="sudo"
alias ,ss="sudo su"
alias ,sapt="sudo apt-get update; sudo apt-get -y upgrade; sudo apt-get -y dist-upgrade"
alias ,sapc="sudo apt-get autoclean"
alias ,sapr="sudo apt-get autoremove"
alias ,sg="sudo gedit"
alias ,sh0="sudo /etc/init.d/apache2 stop"
alias ,sh1="sudo /etc/init.d/apache2 start"
alias ,sh2="sudo /etc/init.d/apache2 reload"
alias ,sk="sudo poweroff"
alias ,smc="sudo mc"
alias ,sn="sudo nano"
alias ,sps="sudo ps -aux"
alias ,sr="sudo reboot"
alias ,sv="sudo vi"
alias ,t="top"

Jak widać przyjąłem, że wszystkie moje aliasy zaczynają się od przecinka. Zapobiega to mimowolnemu nadpisaniu przeze mnie aliasem np. jakiejś komendy powłoki.

Do wyrażeń zastrzeżonych (nie wolno ich wykorzystywać jako nazwy aliasów) należą: !, case, do, done, elif, else, esac, fi, for, function, if, in, select, then, until, while, {, }, time, [, ].

Próby użycia niektórych znaków takich jak: *, ?, +, -, $, itp mogą dać nieoczekiwane rezultaty. Bo o ile przy próbie stworzenia aliasu "$" otrzymamy komunikat o błednej nazwie, to niestety możliwe jest utworzenie poniższych aliasów:

user@XYZ:~$ alias ?="<coś tam>"
user@XYZ:~$ alias *="<coś tam>"
user@XYZ:~$ alias a="" // puste przypisanie

Najmniej niebezpieczne jest ostatnie przypisanie. Po prostu alias nie robi nic (oprócz wydłużania listy aliasów). Natomiast przypisanie aliasu do "*" lib "?" powodując kłopot, o czym można się przekonać próbując je np. wykasować. Wpisz prostą komendę:

user@XYZ:~$ unalias ? *

Wynik będzie co najmniej zaskakujący. By osiągnąć to co chcieliśmy musimy wywołać komendę w postaci:

user@XYZ:~$ unalias \? \*