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