Under Construction

Alias Mechanismus

Ein Alias ermöglicht die Ersetzung eines Wortes durch eine beliebige Zeichenkette. Ersetzt wird aber jeweils nur das erste Wort eines einfachen Kommandos. Mit Hilfe von Aliasen kann folgendes erreicht werden:

    • Abkürzung eines häufig verwendeten langen Kommandos durch ein küzeres Wort, z.B. „h“ anstelle von „history“.
    • Hinzufügen einer Default-Option bei einem Kommando, z.B. die Option „-F“ beim Kommando ls.

Man sollte allerdings mit einem Alias nicht die Bedeutung oder Funktionalität von existierenden Kommandos abändern!

Welche Aliase es aktuell gibt, kann man mit Hilfe des eingebauten (builtin) Kommandos alias, ohne Argumente, anzeigen lassen:

[user01@aixe01 ~]$ alias
alias gt='gnome-terminal'
[user01@aixe01 ~]$

Hinweis: Über die bash Variable BASH_ALIASES (Array) kann man ebenfalls auf die definierten Aliase zugreifen.

Über die folgende Syntax können neue Aliase definiert werden:

alias name=value ...

Bei Verwendung des Kommandos ls empfinden es viele Benutzer als nützlich, wenn der Datei-Typ zusammen mit dem Dateinamen angezeigt wird (Option „-F“). Damit man die Option „-F“ nicht eigens eintippen muss, könnte man den folgenden Alias für ls definieren:

[user01@aixe01 ~]$ alias ls="ls -F"
[user01@aixe01 ~]$

Wird nun das Kommando ls aufgerufen, erkennt die Shell das ein Alias definiert wurde, und ersetzt „ls“ durch die rechte Seite des Alias „ls –F“. Nachfolgende Teile im Kommando bleiben dabei unverändert. Ausgeführt wird damit das Kommando ls mit der Option „-F“.

Hinweis: Nach der Ersetzung taucht „ls“ wieder als erstes Wort auf! Allerdings wird „ls“ jetzt nicht rekursiv erneut ersetzt. Die bash erkennt die Rekursion und ersetzt das Wort „ls“ nicht erneut.

Ein weiteres Kommando, das von vielen Benutzern häufig verwendet wird, ist das Kommando history. Mit 7 Buchstaben ist dies ein recht langes Kommando, wir ersetzen es daher durch den Buchstaben „h“:

[user01@aixe01 ~]$ alias h=history
[user01@aixe01 ~]$

Als letztes Beispiel für einen sinnvollen Alias, definieren wir den Alias „r“ als „fc –s“:

[user01@aixe01 ~]$ alias r="fc -s"
[user01@aixe01 ~]$

Der Buchstabe „r“ soll hier für „repeat“ stehen. Der Alias erlaubt das erneute Ausführen des letzten Kommandos. Optional kann dabei „old=new“ als Argument angeben werden, was dazu führt das im letzten Kommando die Zeichenkette „old“ durch die Zeichenkette „new“ vor der Wiederausführung ersetzt wird.

Damit die Aliase automatisch nach dem Login bzw. Starten einer Login-bash zur Verfügung stehen, müssen diese noch in eine der Start-Dateien der bash eingetragen werden. Wir verwenden die ~/.bashrc:

[user01@aixe01 ~]$ cat ~/.bashrc

alias gt="gnome-terminal"
alias h='history'
alias ls='ls -F'
alias r='fc -s'

[user01@aixe01 ~]$

Ein Alias kann mit dem Kommando unalias für die aktuelle bash entfernt werden:

[user01@aixe01 ~]$ unalias h
[user01@aixe01 ~]$ h
-bash: h: command not found
[user01@aixe01 ~]$

Durch Voranstellen eines Back-Slashs „\“ vor das erste Wort eines Kommandos, kann die Auswertung von Aliasen verhindert werden:

[user01@aixe01 ~]$ \ls
IJ32630s4a.210813.epkg.Z    bin                         mod_hist                    stop.ksh
bash_history                etc                         sample.txt                  working_copy_of_sample.txt
bigfile                     keepopen.ksh                start.ksh
[user01@aixe01 ~]$ ls
IJ32630s4a.210813.epkg.Z     bin/                         mod_hist                     stop.ksh
bash_history                 etc/                         sample.txt                   working_copy_of_sample.txt
bigfile                      keepopen.ksh*                start.ksh
[user01@aixe01 ~]$

Ein Alias erlaubt nur die Ersetzung des ersten Wortes durch eine Zeichenkette. Die gezielte Verarbeitung von Argumenten ist mit Aliasen nicht möglich. Falls dies gewünscht ist, sollte man anstelle auf Aliase auf Funktionen zurückgreifen. Diese erlauben die Verarbeitung beliebiger Argumente.