Eine Unix-Shell ist eine Shell für die Betriebssysteme Unix und Unix , die den Zugriff auf die internen Betriebssystemfunktionen ermöglicht. Es hat die Form einer Befehlszeilenschnittstelle, auf die über die Konsole oder ein Terminal zugegriffen werden kann . Der Benutzer gibt Befehle als Texteingabe aus, die dann von der Shell ausgeführt wird. In verschiedenen Microsoft Windows- Betriebssystemen lautet das analoge Programm command.com oder cmd.exe .
Unix- Betriebssysteme haben meistens eine Shell. Ursprünglich war der Befehlsinterpreter Standard war sh , die Geburt zu viele Variationen gab, einschließlich csh , in erweiterten tcsh oder KSH oder rc ... Aber heute bash , inspiriert von sh , ksh und csh , die beliebteste Schale ist, obwohl es andere Shell-Interpreter wie zsh oder ash gibt .
Die erste Shell ist die Thompson-Shell (in), die 1971 mit der ersten Version von Unix erschien und von Ken Thompson , einem der Schöpfer von Unix, geschrieben wurde . Es wurde 1977 für Unix Version 7 durch die von Stephen Bourne geschriebene Bourne-Shell ersetzt .
1978 schuf Bill Joy , damals Student an der University of California in Berkeley , csh (C-Shell), eine Weiterentwicklung der Shell, deren Syntax von der der C-Sprache inspiriert war. Eine modernere Version von csh wird dann unter dem Namen tcsh veröffentlicht .
Die Kornschale (ksh) wurde 1983 von David Korn veröffentlicht . Es ist mit der Bourne-Shell kompatibel , übernimmt einige Funktionen von csh und fügt erweiterte Skriptfunktionen hinzu, die in fortgeschritteneren Sprachen wie Perl verfügbar sind .
Die Bourne-Again-Shell (Bash) erschien 1988. Sie wurde von Brian Fox für die Free Software Foundation im Rahmen des GNU- Projekts geschrieben . Es ist die Hülle vieler kostenloser Unix- Implementierungen , wie z. B. GNU / Linux-Systeme . Es ist kompatibel mit der Bourne-Shell, von der es eine kostenlose Implementierung sein soll.
Paul Falstad gründete zsh 1990 als Student an der Princeton University . Diese Shell übernimmt die praktischsten Funktionen von bash , csh , tcsh .
Mit den Shells können Sie Weiterleitungen durchführen. Eine Umleitung leitet die Eingabe oder Ausgabe eines Befehls an einen anderen Befehl oder eine andere Datei weiter.
Syntax:
commande > fichierDas Ergebnis des Befehlsaufrufs commandewird in die Datei geschrieben fichier, wobei der vorherige Inhalt überschrieben wird.
Beispiel:
$: cat file Welcome $: echo "Hello world" > file $: cat file Hello worldSyntax:
commande >> fichierDas Ergebnis des Aufrufs des Befehls commandewird fichiernach den bereits vorhandenen Daten in die Datei geschrieben .
Beispiel:
$: cat file Welcome $: echo "Hello world" >> file $: cat file Welcome Hello worldSyntax:
commande < fichierDer Befehl commandeliest den Inhalt der Datei, fichieranstatt von der Standardeingabe (Tastatur) zu lesen.
Beispiel:
$: cat < file WelcomeSyntax:
commande << ENDDer Befehl commandeliest bei Standardeingabe, bis das Wort nach der doppelten Umleitung gefunden wird.
Beispiel:
$: cat << TOTO ? foo ? bar ? moomoo ? TOTO foo bar moomooSyntax:
commande_1 | commande_2Das Ergebnis des Befehls commande_1wird zur Eingabe des zweiten Befehls umgeleitet commande_2.
Beispiel:
$: echo "Hello world" | grep -o "Hello" HelloSch | ksh | csh | tcsh | Bash | zsh | |
---|---|---|---|---|---|---|
/etc/.login | Anmeldung | Anmeldung | ||||
/etc/csh.cshrc | Ja | Ja | ||||
/etc/csh.login | Anmeldung | Anmeldung | ||||
~ / .tcshrc | Ja | |||||
~ / .cshrc | Ja | Ja | ||||
~ / etc / ksh.kshrc | int. | |||||
/etc/sh.shrc | int. | |||||
$ ENV (normalerweise ~ / .kshrc) | int. | int. | int. | |||
~ / .login | Anmeldung | Anmeldung | ||||
~ / .logout | Anmeldung | Anmeldung | ||||
/ etc / profile | Anmeldung | Anmeldung | Anmeldung | Anmeldung | ||
~ / .profile | Anmeldung | Anmeldung | Anmeldung | Anmeldung | ||
~ / .bash_profile | Anmeldung | |||||
~ / .bash_login | Anmeldung | |||||
~ / .bash_logout | Anmeldung | |||||
~ / .bashrc | int. + n / login | |||||
/ etc / zshenv | Ja | |||||
/ etc / zprofile | Anmeldung | |||||
/ etc / zshrc | int. | |||||
/ etc / zlogin | Anmeldung | |||||
/ etc / zlogout | Anmeldung | |||||
~ / .zshenv | Ja | |||||
~ / .zprofile | Anmeldung | |||||
~ / .zshrc | int. | |||||
~ / .zlogin | Anmeldung |