Dieses Dokument gibt einen Überblick über allgemeine Shell-Funktionen (die in jeder Shell-Variante gleich sind) und unterschiedliche Shell-Funktionen (Shell-spezifische Funktionen).
C.1. Gemeinsamkeiten
Die folgenden Funktionen sind in jeder Shell Standard. Beachten Sie, dass die Befehle stop, suspend, jobs, bg und fg nur auf Systemen verfügbar sind, die die Jobsteuerung unterstützen.
Tabelle C-1. Gemeinsame Shell-Funktionen
Befehl | Bedeutung |
> | Ausgabe umleiten |
>> | An Datei anhängen |
< | Eingabe umleiten |
<< | „Hier“-Dokument (Eingabe umleiten) |
| | Rohrausgang |
& | Prozess im Hintergrund ausführen. |
; | Separate Befehle in derselben Zeile |
* | Entspricht einem beliebigen Zeichen im Dateinamen |
? | Einzelnes Zeichen im Dateinamen abgleichen |
[] | Passen Sie alle eingeschlossenen Zeichen an |
() | In Subshell ausführen |
`` | Ersetzen Sie die Ausgabe des eingeschlossenen Befehls |
"" | Teilzitate (ermöglicht Variablen- und Befehlserweiterung) |
'' | Vollständiges Zitat (keine Erweiterung) |
\ | Zitieren Sie das folgende Zeichen |
$ var | Wert für Variable verwenden |
$$ | Prozess ID |
$0 | Befehlsname |
$n | n-tes Argument (n von 0 bis 9) |
$* | Alle Argumente als einfaches Wort |
# | Kommentar beginnen |
bg | Hintergrundausführung |
brechen | Brechen Sie von Schleifenanweisungen ab |
cd | Verzeichnisse wechseln |
fortsetzen | Setzen Sie eine Programmschleife fort |
Echo | Anzeigeausgang |
eval | Bewerten Sie Argumente |
exec | Führen Sie eine neue Shell aus |
fg | Vordergrundausführung |
Jobs & Karriere | Aktive Jobs anzeigen |
töten | Beenden Sie laufende Jobs |
neugrp | Wechseln Sie in eine neue Gruppe |
verschieben | Positionsparameter verschieben |
halt | Unterbrechen Sie einen Hintergrundjob |
aussetzen | Unterbrechen Sie einen Vordergrundjob |
Zeit | Zeit für einen Befehl |
umask | Dateiberechtigungen festlegen oder auflisten |
ungesetzt | Variablen- oder Funktionsdefinitionen löschen |
warten | Warten Sie, bis ein Hintergrundjob abgeschlossen ist |
C.2. Unterschiedliche Funktionen
Die folgende Tabelle zeigt die Hauptunterschiede zwischen der Standard-Shell (sh), Bourne Again SHell (bash), Korn-Shell (ksh) und die C-Shell (csh).
Shell-Kompatibilität
Da die Bourne Again SHell eine Obermenge von ist sh, alle sh Befehle funktionieren auch in bash - aber nicht umgekehrt. bash verfügt über viele weitere eigene Funktionen und, wie die Tabelle unten zeigt, viele Funktionen, die von anderen Shells übernommen wurden.
Da die Turbo C-Shell eine Obermenge von ist csh, alle csh Befehle werden funktionieren tcsh, aber nicht umgekehrt.
Tabelle C-2. Unterschiedliche Shell-Funktionen
sh | bash | ksh | csh | Bedeutung/Aktion |
$ | $ | $ | % | Standard-Benutzeraufforderung |
>| | >| | >! | Umleitung erzwingen | |
> Datei 2> & 1 | &> Datei or > Datei 2> & 1 | > Datei 2> & 1 | >& Datei | Leiten Sie stdout und stderr um Datei |
{} | {} | Erweitern Sie Elemente in der Liste | ||
`Befehl` | `Befehl` or $(Befehl) | $(Befehl) | `Befehl` | Ersatzausgabe von eingeschlossen Befehl |
$ HOME | $ HOME | $ HOME | $home | Home-Verzeichnis |
~ | ~ | ~ | Home-Verzeichnissymbol | |
~+, ~-, dirs | ~+, ~- | =-, =N | Auf den Verzeichnisstapel zugreifen | |
jung=Wert | VAR=Wert | jung=Wert |
kompensieren jung=Wert | Variablenzuweisung | |||
exportieren jung | exportieren VAR=Wert | exportieren jung=Wert | settenv jung Welle | Umgebungsvariable festlegen |
${nnnn} | ${nn} | Es können mehr als 9 Argumente referenziert werden | ||
"$@" | "$@" | "$@" | Alle Argumente als separate Wörter | |
$# | $# | $# | $#argv | Anzahl der Argumente |
$? | $? | $? | $-Status | Exit-Status des zuletzt ausgeführten Befehls |
$! | $! | $! | PID des zuletzt im Hintergrund ausgeführten Prozesses | |
$- | $- | $- | Aktuelle Optionen | |
. Datei | Quelle Datei or . Datei | . Datei | Quelle Datei | Befehle in Datei lesen |
Alias x='y' | Alias x=y | alias xy | Name und Vorname x steht für Befehl y | |
Häuser | Häuser | Häuser | wechseln or Häuser | Wählen Sie Alternativen |
erledigt | erledigt | erledigt | Ende | Beenden Sie eine Schleifenanweisung |
esac | esac | esac | endet | Ende Häuser or wechseln |
wunsch n | wunsch n | wunsch n | wunsch (Ausdruck) | Beenden Sie mit einem Status |
für/do | für/do | für/do | foreach | Durchlaufen Sie Variablen |
kompensieren -f , kompensieren -o nullglob|dotglob|nocaseglob|noglob | noglob | Ersetzungszeichen für die Generierung von Dateinamen ignorieren | ||
Hash- | Hash- | alias -t | Hashstat | Gehashte Befehle anzeigen (verfolgte Aliase) |
Hash- cmds | Hash- cmds | alias -t cmds | aufwärmen | Merken Sie sich die Befehlsorte |
Hash- -r | Hash- -r | aufheben | Vergessen Sie Befehlsstandorte |
Geschichte | Geschichte | Geschichte | Vorherige Befehle auflisten | |
Pfeil nach oben+Enter or !! | r | !! | Vorherigen Befehl wiederholen | |
!str | r str | !str | Letzten Befehl wiederholen, der mit „str“ beginnt | |
!cmd: s /x/y/ | r x=y cmd | !cmd: s /x/y/ | Ersetzen Sie „x“ durch „y“ im letzten Befehl, der mit „cmd“ beginnt, und führen Sie ihn dann aus. | |
wenn [ $i -Gl 5 ] | wenn [ $i -Gl 5 ] | Wenn ((i==5)) | if ($i==5) | Musterzustandstest |
fi | fi | fi | Endif | Ende if Aussage |
unlimit | unlimit | unlimit | begrenzen | Legen Sie Ressourcengrenzen fest |
pwd | pwd | pwd | dirs | Arbeitsverzeichnis drucken |
lesen | lesen | lesen | $< | Vom Terminal lesen |
Falle 2 | Falle 2 | Falle 2 | onintr | Unterbrechungen ignorieren |
Unalias | Unalias | Unalias | Aliase entfernen | |
bis | bis | bis | Beginnen bis Schleife | |
während/do | während/do | während/do | während | Beginnen während Schleife |
Die Bourne Again Shell verfügt über viele weitere Funktionen, die hier nicht aufgeführt sind. Diese Tabelle soll Ihnen nur eine Vorstellung davon geben, wie diese Shell alle nützlichen Ideen anderer Shells integriert: In der Spalte für gibt es keine Leerzeichen bash. Weitere Informationen zu Funktionen, die nur in Bash verfügbar sind, können auf den Bash-Infoseiten im Abschnitt „Bash-Funktionen“ abgerufen werden.
Weitere Informationen:
Sie sollten mindestens ein Handbuch lesen, und zwar das Handbuch Ihrer Shell. Die bevorzugte Wahl wäre Info-Bash, bash ist die GNU-Shell und am einfachsten für Anfänger. Drucken Sie es aus, nehmen Sie es mit nach Hause und studieren Sie es, wann immer Sie 5 Minuten Zeit haben.
Lesen Sie Anhang B, wenn Sie Schwierigkeiten haben, Shell-Befehle zu verarbeiten.