Grundbegriffe
Kommandointerpreter
Kommandointerpreter (engl. Shell) ist an sich ein Anwendungsprogramm
wie andere auch.
Aus Programmiersprachlicher Sicht ist er ein Interpreter auf sehr hohem Abstrakten Niveau. Sehr wichtig ist er für die
Werkzeugkasten-Philosophie
Die betrachteten Programme stellen viele kleine nette universelle Werkzeuge dar,die mit Hilfe der Shellsprache zu Anwendungsprogrammen werden.
Welche Shell man nimmt, ist eigentlich Geschmackssache.
Folgende Syntax ist sehr wichtig:
Ein- Ausgabe- Umleitung
- Ausgabeumleitung >
-
sort datei > sortiere_datei
- Ausgabe anfügen >>
- Eingabe umleiten <
- Pipe |
- Die Ausgabe des ersten Prozesses wird als Eingabe des zweiten Prozesses genommen
Beispiel:
dehtml *.html | tr -sc 'a-zA-Z0-9' '\n' | sort -u > /tmp/wortliste
macht eine Wortliste (Rechtschreibprüfung für harte Männer :-)
- Prozesse (eigentlich Jobs) im Hintergrund starten &
Spezielle Kommandos
bg: schiebt gestoppten Prozess in den Hintergrund
fg: Holt gestoppten Prozess wieder in Vordergrund
Je nach Shell gibt es dann auch verschiedene Kontrollstrukturen
wie for,if then else, while usw.
Shell-Variablen
Man kann in der Schell Variablen definiern und später daruf zugreifen.
Setzen: name=heinz
Abfragen: Um Variablen von anderen Sachen zu unterscheiden, müssen sie mit $ versehen werden:
echo Hallo $name
Environmentvariablen
Eine Betriebsmittelumgebung bekommt neben Argumenten auch eine Liste von Variablen übergeben.
Diese müssen oft speziell gekennzeichnet werden:
sh: export Varname
csh:setenv VARNAME=Wert
Ersetzungen der Shell
Shells
- sh - Bourne - Shell
- Die orginal shell von Steve Bourne ca. 1978
An Introduction to the Unix Shell
- bash - Bource-Again-Shell von GNU
-
- sh-aufwärts-kompatibel
- soll zu IEEE Posix Shell and Tools specification (IEEE Working Group 1003.2). konform sein.
Links:
- Advanced Scripting Guide
- sehr detailierte Einführung in diverse bash-Details
- Bash Prog Intro HOWTO
-
- Bash hackers Wiki
Häfig gebraucht ist die Stringverarbeitung von Variableninhalten
dirpath=${path%/*}
base=${path##*/}
aus [Bash String Processing]
- csh Berkley UNIX C-shell
-
- tcsh
- wie csh, und noch schöne Merkmale
- bequemes Editieren von Komandozeilen
- Wort Vervollständigung
weitere Links:
In MS DOS und seinen Nachfolgern sowie Windows NT/2000 gibt es auch Shells (oft fäschlicherweise "DOS-BOX" genannt):
- COMMAND.COM
- kleiner Interpreter aus MS DOS-Zeiten
- CMD.EXE
- leistungsfähiger als COMMAND.COM
- Powershell
- ist ein Kommandozeiteninterpreter der sich sehen lassen kann.
- Wiki: Batch-Programmierung
-
- Syntax cmd
- Tutorial Batch-Programmierung WindowXX-CMD
-
Links zum Thema
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber