|
In einem System wiederholen sich viele Aufgaben immer wieder. Dazu zählt auch die Anwendung von Befehle mit ihren Optionen und Argumenten. Nicht immer entspricht aber die Standardausgabe eines Befehls dem Geschmack des Benutzers. Daher bietet Linux die Möglichkeit Befehle, bis hin zu kompletten Komandoketten einem Alias zuzuordnen.
Zur Nutzung verwendet man den gleichnamigen Befehl alias. Auf vielen Distributionen werden schon bei der Installation einige Aliasse eingerichtet. Durch die ausführung des Befehls ohne weiter Optionen werden diese angezeigt:
alias d='dir'
alias dir='/usr/bin/ls $LS_OPTIONS --format=vertical'
alias ls='/usr/bin/ls $LS_OPTIONS'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
alias v='vdir'
alias vdir='/usr/bin/ls $LS_OPTIONS --format=long'
In der letzten Zeile wird der Alias vdir definiert. Gibt man nun vdir ein, macht die Shell nichts anderes als den Befehl ls aus dem Verzeichnis /usr/bin mit der Option --format=long auszuführen.
Als einfaches Beispiel kann man sich mal einen Alias erstellen, um die Datei /etc/hosts anzuzeigen. Ein konventioneller Weg wäre das Kommando cat /etc/hosts. Dies soll nun umgesetzt und anschließend getestet werden:
alias myhosts='more /etc/hosts'
127.0.0.1 localhost 192.168.1.1 zerberus.olymp zerberus #Gateway, Firewall 192.168.1.10 poseidon.olymp poseidon #Workstation 192.168.1.20 hera.olymp hera #Workstation 192.168.1.250 zeus.olymp zeus #Server 192.168.1.254 eunomia.olymp eunomia #Drucker
Will man den Alias wieder auflösen, bedient man sich des Befehls unalias:
Für die Anwendung gibt es noch einiges zu beachten:
- Der auf dem obigen Weg erstellte Alias ist nur für die aktuelle Shell Sitzung gültig. Logt man sich aus oder schließt das Shell Fenster, gehen die Alias Definitionen verloren.
- Immer einen Alias wählen, der weder als Alias noch als Befehl bereits existiert! Am besten einfach den ausgedachten Namen erst einmal ausführen. Kommt es zu der Meldung, dass der Befehl nicht bekannt sei, kann man ihn in der Regel getrost verwenden. Die Ausnahme besteht aber bei einer globalen Alias-Definition (siehe unten)! Schließlich ist es möglich, dass ein normaler Benutzer nicht auf alle existierenden Befehle zugreifen darf. Die Lösung hierfür ist einfach den ausgedachten Alias als root zu testen.
Will man einen Alias dauerhaft definieren, gibt es mehrere Möglichkeiten. In der Regel verwendet man eine Datei /etc/profile. Dort werden globale Einstellungen für die Shell vorgenommen. Ein Alias Eintrag in /etc/profile wäre damit schnellste Weg und für alle User gültig. Wenn ein Alias nur für bestimmte Benutzer oder Benutzergruppen verfügbar sein soll, kann man dies mit einer if-Abfrage berwerkstelligen, die einfach in diese Datei eingefügt wird. Folgend eine Beispielabfrage für den Benutzer root (ID=0):
if [ "`id -u`" = '0' ] then alias myhosts='more /etc/hosts' fi
Die jeweiligen ID's lassen sich aus der Datei /etc/passwd in Erfahrung bringen. Diese if-Abfrage kann 1:1 in die Datei /etc/profile angehängt und nach belieben modifiziert werden.
Eine weitere Möglichkeit wäre ein Eintrag in der .bashrc (Wegen . eine versteckte Datei!) im jeweiligen Home Verzeichnis. Die .bashrc wird aber nur ausgewertet, wenn in der Datei profile eine entsprechende Abfrage dazu existiert! Folgende Abfrage kann man der Datei /etc/profile anhängen, falls sie noch nicht existiert:
if [ -f ~/.bashrc ]
then
. ~/.bashrc
fi
Innerhalb der Datei ~/.bashrc, entspricht dem Pfad /home/benutzername/.bashrc, kann dann jeder Benutzer die gewünschten Aliasse auf herkömlichem Wege durch einen Einzeiler selbst Definieren.
|