Shell-Aliase
CIP Index Up Left Right

Shell-Aliase

Aliase sind eigentlich nur eine Tipp-Erleichterung, d.h. eine Abkürzung komplizierter Kommandos auf einfache Schlüsselwörter (und sind deshalb vom persönlichen Geschmack abhängig). Eine Alias-Definition ist die Zuordnung eines Strings zu einem Schlüsselwort. Beispiel: alias Liste_Verzeichnis ls Hier wird dem Schlüsselwort Liste_Verzeichnis der String ls zugeordnet

Wird dann beim Kommandoprompt der Shell dieses Schlüsselwort als erstes Wort eingegeben, so wird das Wort durch den angegebenen String ersetzt. Das heißt für unser Beispiel, daß nun immer, wenn eine Kommandozeile beginnend mit "ListeVerzeichnis " eingegeben wird, das Kommando ls aufgerufen wird. ganz so, als wäre gleich schon ls als Kommandoname angegeben worden.

Eine Liste aller definierten Aliase erhält man mit dem Shell-internen Kommando alias (diesmal ohne Parameter), den Wert einer bestimmten Zuweisung für name mit alias name; eine Alias-Definition kann man aufheben mit unalias. Die Alias-Mechanismen existieren übrigens erst ab der csh, d.h. nicht mit der Bourne-Shell (sh).

Parameterübergabe

Aliase mit Parametern kann man in manchen Fällen nur über einen Trick definieren: da die Kommandozeile vor der Alias-Ersetzung in der History gespeichert wird, kann man über die History-Kommandos in der Alias-Definition auf die übergebenen Parameter zurückgreifen. Das "!" muß dann natürlich mit einem Backslash gefluchtet werden, da das History-Kommando sonst ja schon bei der Alias-Definition, und nicht erst bei der Ersetzung ausgewertet wird. Beispiel:
   alias lm 'ls -l !* | more'
Oft entstehen unliebsame Effekte wenn man sich Aliase definiert und dieses vergessen hat - später wundert man sich dann vielleicht, warum ein bestimmtes Kommando nicht oder anders als erwartet funktioniert - es wurde vielleicht von einem Alias umdefiniert (man kann dies überprüfen, indem man z.B. which ll für das Kommando ll eingibt).

Es werden übrigens in der Standardumgebung für alle CIP-Benutzer eine ganze Reihe von Aliasen automatisch bei jedem Shell-Start definiert: Diese Definitionen liegen in der Datei .cshrc bzw. in /local/login/env/cshrc.