Aliases (mit mehreren Befehlen)
Wenn man die Bash häufig benutzt, merkt man sehr schnell, dass man bestimmte Befehle häufig wiederholt. Um die Benutzung zu vereinfachen, kann man sich Aliases definieren, die einen Befehl (oder sogar mehrere) auf einmal ausführen.
Diese Einstellungen macht man in der .bashrc
oder der .bash_profile
im eigenen Home-Verzeichnis. Um sie zu editieren, kann man sie bspw. mit vim
öffnen:
$ vim ~/.bash_profile
Ein grafischer Text-Editor geht natürlich auch. Sollte die Datei nicht existieren, kann man sie einfach anlegen.
Einfache Aliases
Ein klassisches Alias (das manchmal vom Betriebssystem sogar schon vordefiniert ist), ist die Kurzform ll
für ls -l
. Diese würde man in der Datei so anlegen:
alias ll='ls -l'
Natürlich kann man hier auch komplexere Ausdrücke verwenden:
alias alldirs='find . -type d'
Dies definiert ein Alias, um alle Verzeichnisse im aktuellen Pfad aufzulisten (ist ja nur ein Beispiel).
Komplexe Aliases
Um mehrere Befehle durch ein Alias ausführen zu lassen, gibt es mehrere Wege. Man kann in Aliases die gleichen Operatoren verwenden wie direkt in der Kommandozeile, wenn man mehrere Befehle kombinieren will:
# beide befehle ausführen, egal was passiert alias doBoth='command1; command2' # den zweiten Befehl nur ausführen, wenn der erste geklappt hat alias doAnd='command1 && command2' # den zweiten Befehl nur ausführen, wenn der erste nicht geklappt hat alias doOr='command1 || command2'
Persönlich finde ich diese Notation bei komplexeren Sachen etwas unübersichtlich. Zum Glück gibt es aber eine Alternative: Funktionen. Man kann globale Funktionen definieren, die dann in immer zur Verfügung stehen. Das sieht dann so aus:
myShortcut() { command1 command2 }
In der Funktion kann man natürlich auch wieder die Bash-Operatoren (und theoretisch auch noch viel mehr) benutzen.
Aliases aktivieren
Wenn du ein neues Terminal öffnest, wird automatisch eine existierende ~/.bashrc
und/oder ~/.bash_profile
eingelesen, also sind alle deine Aliases sofort verfügbar.
Um sie in einem Terminal verfügbar zu machen, in dem du gerade arbeitest, kannst du auch das Einlesen der Datei erzwingen:
$ source ~/.bash_profile