Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
Shell-Programmierung von Jürgen Wolf
Einführung, Praxis, Referenz
Buch: Shell-Programmierung

Shell-Programmierung
782 S., mit CD, 44,90 Euro
Rheinwerk Computing
ISBN 3-89842-683-1
gp Kapitel 6 Funktionen
  gp 6.1 Definition
    gp 6.1.1 Definition (Bash und Korn-Shell only)
    gp 6.1.2 Funktionsaufruf
    gp 6.1.3 Funktionen exportieren
    gp 6.1.4 Aufrufreihenfolge
    gp 6.1.5 Who is who
    gp 6.1.6 Aufruf selbst bestimmen
    gp 6.1.7 Funktionen auflisten
  gp 6.2 Funktionen, die Funktionen aufrufen
  gp 6.3 Parameterübergabe
    gp 6.3.1 FUNCNAME (Bash only)
  gp 6.4 Rückgabewert aus einer Funktion
    gp 6.4.1 Rückgabewert mit return
    gp 6.4.2 Rückgabewert mit echo und einer Kommando-Substitution
    gp 6.4.3 Rückgabewert ohne eine echte Rückgabe (lokale Variable)
    gp 6.4.4 Funktionen und exit
  gp 6.5 Lokale contra globale Variablen
    gp 6.5.1 Lokale Variablen (Bash und Korn-Shell only)
  gp 6.6 alias und unalias
  gp 6.7 Autoload (Korn-Shell only)


Rheinwerk Computing

6.6 alias und unaliatoptop

In den Shells gibt es die Möglichkeit, einen Alias für beliebige Befehle zu erteilen. Mit einem Alias teilt man dem System mit, dass ein Befehl auch unter einem anderen Namen ausgeführt werden soll. Aliase werden eigentlich nicht direkt in der Shell-Programmierung verwendet, aber sie stellen doch irgendwie kleine Funktionen dar. Die Syntax:

# Definition eines Alias
alias name definition
# Löschen einer Alias-Definition
unalias name
# Anzeigen aller gesetzten Aliase
alias

Durch Eingabe von »name« werden die in der »definition« enthaltenen Kommandos ausgeführt. Meistens finden Sie auf den Systemen schon eine Menge vordefinierter Aliase, die Sie mit einem einfachen alias auflisten lassen können:

you@host > alias
alias +='pushd .'
alias -='popd'
alias ..='cd ..'
alias ...='cd ../..'
...
alias which='type -p'

Eigene Aliase werden vorwiegend erzeugt, wenn der Befehl zu lang oder zu kryptisch erscheint. Einfaches Beispiel:

you@host > alias xpwd="du -sh ."
you@host > xpwd
84M     .
you@host > cd $HOME
you@host > xpwd
465M    .

Anstatt ständig die Befehlsfolge du –sh . einzugeben, um die Größe des aktuellen Arbeitsverzeichnisses anzuzeigen, haben Sie einen Alias mit xpwd angelegt. Durch den Aufruf von xpwd wird nun die Befehlsfolge du –sh . gestartet. Wollen Sie den Alias wieder entfernen, müssen Sie nur unalias verwenden.

you@host > unalias xpwd
you@host > xpwd
bash: xpwd: command not found

Auf der einen Seite mögen solche Aliase sehr bequem sein, aber bedenken Sie, dass Ihnen der ein oder andere Befehl nicht zur Verfügung steht, wenn Sie auf verschiedenen Systemen arbeiten. Auf der anderen Seite können solche Aliase gerade über System- und Distributionsgrenzen sehr nützlich sein. So befindet sich z. B. die Stelle für das Einhängen (mounten) diverser Datenträger – etwa von CD-ROMs – bei vielen Systemen ganz woanders. Bei Debian ist dies im Verzeichnis /cdrom, bei SuSE unter /media/cdrom und bei anderen Systemen kann es wieder anders sein. Hier ist ein Alias der folgenden Art sehr nützlich:

you@host > alias mcdrom="mount /media/cdrom"
you@host > alias ucdrom="umount /media/cdrom"

Hinweis   Aliase sind abhängig vom Benutzer und dessen Account. Somit kann nur der Eigentümer eines Accounts auf seine Aliase zugreifen, keine andere Person. Dies sollte aus Sicherheitsgründen erwähnt werden, da so kein anderer User den Alias eines Benutzers manipulieren kann, etwa um böswillige Absichten auszuführen. Ein weiterer Grund übrigens, ein gutes Passwort zu verwenden und es niemandem weiterzugeben. Dies ist auch die Grundlage vieler Rootkits. Oft wird ein Alias auf ls oder ähnlich definiert oder – noch schlimmer – das ls-Binary mit einem anderen überschrieben. Bei Letzterem wurde das System schon übernommen, und dem Angreifer geht es nur noch darum, möglichst lange unentdeckt zu bleiben.


Natürlich kann man mit Aliasen auch eine Folge von Befehlen verwenden. Mehrere Befehle werden hierbei mit einem Semikolon getrennt in einer Zeile geschrieben. Sie können auch eine Pipe oder die Umleitungszeichen verwenden:

you@host > alias sys="ps -ef | more"

Sind Sie sich nicht ganz sicher, ob Sie ein Kommando oder nur einen Alias verwenden, können Sie mit type nachfragen:

you@host > type dir
dir is aliased to `ls -l'

Wollen Sie Ihre alten DOS-Gewohnheiten ablegen:

you@host > alias dir="echo Dies hier ist kein DOS, verwenden \
> Sie ls :-\)"
you@host > dir
Dies hier ist kein DOS, verwenden Sie ls :-)

Alias-Definitionen werden außerdem immer als Erstes interpretiert, also noch vor den eingebauten Shell-Kommandos (Builtins) und den externen Kommandos in PATH. Dadurch können Sie gegebenenfalls auch ein mit gleichem Namen existierendes Kommando umdefinieren. Alias-Definitionen, die Sie zur Laufzeit festlegen, sind nach einem Neustart des Systems allerdings nicht mehr vorhanden. Die Aliase, die Ihnen nach dem Einloggen in der untergeordneten Shell zur Verfügung stehen, sind meistens in Dateien wie bspw. .bashr, .cshrc, .kshrc oder .myalias eingetragen. Wollen Sie einen Alias definieren, der Ihnen gleich nach dem Einloggen zur Verfügung steht, müssen Sie ebenfalls hier Ihren Eintrag hinzufügen. Auf Dateien, bei denen Sie etwas finden und verändern können, wird noch in Abschnitt 8.9 eingegangen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
 << zurück
  
  Zum Katalog
Zum Katalog: Shell-Programmierung
Shell-Programmierung
bestellen
 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-Server






 Linux-Server


Zum Katalog: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Katalog: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Katalog: Linux Handbuch






 Linux Handbuch


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de