1.4 Kommando, Programm oder Shellscript?
Solange man nichts mit dem Programmieren am Hut hat, verwendet man alles, was irgendwie ausführbar ist (mehr oder weniger). Irgendwann hat man Feuer gefangen und in die ein oder andere Sprache geschnuppert, dann stellt sich die Frage: Was ist es denn nun ein Kommando (Befehl) – ein Programm, ein Script oder was? Die Unterschiede sind für Laien gar nicht ersichtlich. Da eine Shell als Kommando-Interpreter arbeitet, kennt diese mehrere Arten von Kommandos, welche Ihnen hier ein wenig genauer erläutert werden sollen.
1.4.1 Shell-eigene Kommandos (Builtin-Kommando)
Dies sind Kommandos, die in der Shell direkt implementiert sind und auch von dieser selbst ausgeführt werden, ohne dass dabei ein weiteres Programm gestartet werden muss. Die Arten und der Umfang dieser Builtins sind abhängig vom verwendeten Kommando-Interpreter (was meistens die Shell selbst ist). So kennt die eine Shell einen Befehl, den die andere nicht beherrscht. Einige dieser Kommandos müssen sogar zwingend Teil einer Shell sein, da diese globale Variablen verwendet (wie bspw. cd mit den Shell-Variablen PWD und OLDPWD). Weitere Kommandos werden wiederum aus Performance-Gründen in der Shell ausgeführt.
1.4.2 Aliase in der Shell
Ein Alias ist ein anderer Name für ein Kommando oder eine Kette von Kommandos. Solch einen Alias können Sie mit einer selbst definierten Abkürzung beschreiben, welche von der Shell während der Substitution durch den vollen Text ersetzt wird. Sinnvoll sind solche Aliase bei etwas längeren Kommandoanweisungen. Wird ein Alias aufgerufen, wird ein entsprechendes Kommando oder eine Kette von Kommandos mit allen angegebenen Optionen und Parametern ausgeführt.
you@host> alias gohome="cd ~"
you@host> cd /usr
you@host> pwd
/usr
you@host> gohome
you@host> pwd
/home/you
Im Beispiel wurde der Alias gohome definiert. Die Aufgabe des Alias wurde zwischen den Anführungsstrichen festgelegt – hier also ins Heimverzeichnis wechseln. Da ein Alias wiederum einen Alias beinhalten kann, wiederholen die Shells die Substitutionen so lange, bis der letzte Alias aufgelöst ist. Bspw.:
you@host> alias meinheim="gohome"
you@host> cd /usr
you@host> pwd
/usr
you@host> meinheim
you@host> pwd
/home/you
1.4.3 Funktionen in der Shell
Dabei handelt es sich um nicht fest eingebaute Funktionen der Shell (wie den Builtins), vielmehr um Funktionen, die zuvor für diese Shell definiert wurden. Solche Funktionen gruppieren meistens mehrere Kommandos als eine separate Routine.
1.4.4 Shellscripts (Shell-Prozeduren)
Dies ist Ihr zukünftiges Hauptanwendungsfeld. Ein Shellscript hat gewöhnlich das Attributrecht zum Ausführen gesetzt. Für die Ausführung eines Shellscripts wird eine weitere (Sub-)Shell gestartet, welche das Script interpretiert und die enthaltenen Kommandos ausführt.
1.4.5 Programme (binär)
Echte ausführbare Programme (bspw. erstellt in C) liegen im binären Format auf der Festplatte vor. Zum Starten eines solchen Programms erzeugt die Shell einen neuen Prozess. Alle anderen Kommandos werden innerhalb des Prozesses der Shell selbst ausgeführt. Standardmäßig wartet die Shell auf die Beendigung des Prozesses.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.
|