Beschreibungen der C-Shellbefehle

In der C-Shell sind die folgenden integrierten Befehle verfügbar.


Element Beschreibung
alias [Name [WordList]] Zeigt alle Aliasnamen an, wenn keine Parameter angegeben werden. Andernfalls wird der Aliasname für den angegebenen Namen angezeigt. Wird die Variable Wortliste angegeben, ordnet der Befehl den Wert der Wortliste dem Aliasnamen zu. Der angegebene Name (Aliasname) darf weder alias noch unalias sein.
bg [%Job ...] Stellt den aktuellen Job bzw. den mit Job angegebenen Job in den Hintergrund und setzt die Ausführung des Jobs fort, wenn dieser gestoppt war.
break Nimmt die Ausführung nach der Anweisung end der nächsten Schleife foreach oder while wieder auf.
breaksw Unterbricht beim Befehl switch und nimmt die Ausführung nach dem Befehl endsw wieder auf.
case Kennsatz : Definiert einen Kennsatz in einem Befehl switch.
cd[Name] Äquivalent zum Befehl chdir (siehe folgende Beschreibung).
chdir [Name] Wechselt vom aktuellen Verzeichnis in das in der Variablen Name angegebene Verzeichnis. Wird kein Name angegeben, wird mit dem Befehl in das Ausgangsverzeichnis gewechselt. Wenn der Wert der Variablen Name kein Unterverzeichnis des aktuellen Verzeichnisses ist und nicht mit /, ./ oder ../ beginnt, durchsucht die Shell jede Komponente der Shellvariablen cdpath nach einem Unterverzeichnis, das der Variablen Name entspricht. Falls die Variable Name eine Shellvariable mit einem Wert ist, der mit einem Schrägstrich (/) beginnt, prüft die Shell, ob es sich um ein Verzeichnis handelt. Der Befehl chdir entspricht dem Befehl cd.
continue Setzt die Ausführung nach der Anweisung end der nächsten Schleife while oder foreach fort.
default: Kennzeichnet den Standardfall (default) in einer Anweisung switch. Der Standardwert default sollte nach allen anderen Kennsätzen case angegeben werden.
dirs Zeigt den Verzeichnisstapel an.
echo Schreibt Zeichenfolgen in die Standardausgabe der Shell.
else Führt die Befehle aus, die auf die zweite else in einem if (Ausdruck) then folgen.else if (Expression2) then ... else ... endif -Befehlsfolge.
Anmerkung: Die Anweisung Sonst ist der integrierte Befehl CSH bei Verwendung von Wenn (Ausdruck) Dann ..Sonst ...Endif. Wenn der (Ausdruck) wahr ist, werden die Befehle bis zur Anweisung else ausgeführt. Ist der (Ausdruck) falsch, werden die Befehle zwischen den Anweisungen else und endif ausgeführt. Angaben, die in einzelne Anführungszeichen eingeschlossen sind, werden buchstabengetreu verwendet und nicht interpretiert.
end Setzt nacheinander die Variable Name auf jeden in der Variablen Liste angegebenen Eintrag und führt die Befehlsfolge zwischen der Anweisung foreach und der zugehörigen Anweisung end aus. Die Anweisungen foreach und end müssen in separaten Zeilen stehen.

Verwendet die Anweisung continue, um die Schleife fortzusetzen, und die Anweisung break, um die Schleife vorzeitig zu beenden. Wenn der Befehl foreach vom Terminal gelesen wird, fordert die C-Shell mit einem ? auf, die Eingabe von Befehlen zuzulassen. Befehle innerhalb von Schleifen, die an der Eingabeaufforderung ? eingegeben werden, werden nicht in die Protokollliste gestellt.

endif Wenn die Variable Ausdruck wahr ist, werden die Befehle ausgeführt, die der ersten Anweisung then folgen. Ist else if Ausdruck2 wahr, werden die Befehle ausgeführt, die der zweiten Anweisung then folgen. Wenn der else if Expression2 ' false' ist, werden die -Befehle ausgeführt, die auf elsefolgen. Es kann eine beliebige Anzahl von else if-Paaren angegeben werden. Es ist nur eine Anweisung endif erforderlich. Das Segment else ist optional. Die Wörter else und endif können nur am Anfang von Eingabezeilen verwendet werden. Das Segment if muss allein in einer Eingabezeile oder hinter einem Befehl else stehen.
endsw Vergleicht nacheinander alle case-Fälle mit dem Wert der Variablen Zeichenfolge. Die Zeichenfolge wird zuerst mit dem Befehl und Dateinamen erweitert. Verwenden Sie die Mustererkennungszeichen *, ?und [ . . . ] in den case -Beschriftungen, die variabel erweitert sind. Wird für keinen der Fälle eine Übereinstimmung gefunden, bevor ein Standardfall (default) gefunden wird, beginnt die Ausführung nach dem Standardfall. case und default müssen am Anfang der Zeile stehen. Der Befehl breaksw veranlasst die Fortsetzung der Befehlsausführung nach dem Befehl endsw. Andernfalls werden die nachfolgenden Fälle (case und default) wie in der Programmiersprache C nacheinander abgearbeitet. Falls keine Fallübereinstimmung gefunden wird und kein Standardfall (default) angegeben ist, wird die Ausführung nach dem Befehl endsw fortgesetzt.
eval Parameter ..  Liest den Wert der Variablen Parameter als Eingabe für die Shell und führt den bzw. die entsprechenden Befehle im Kontext der aktuellen Shell aus. Mit diesem Befehl werden Befehle ausgeführt, die aufgrund einer Befehls- oder Variablensubstitution generiert wurden, da die Syntaxanalyse vor den Substitutionen erfolgt.
exec Befehl Führt anstelle der Shell den angegebenen Befehl aus.
exit (Ausdruck) Beendet die Shell entweder mit dem Wert der Shellvariablen status (falls kein Ausdruck angegeben wurde) oder mit dem Wert des angegebenen Ausdrucks.
fg [%Job ...] Stellt den aktuellen Job bzw. den für Job angegebenen Job in den Vordergrund und setzt die Ausführung des Jobs fort, wenn dieser gestoppt war.
foreach Name (Liste) Befehl.   Legt nacheinander eine Variable Name für jedes durch die Variable Liste angegebene Member und eine Befehlsfolge fest, bis ein end -Befehl erreicht wird.
glob Liste Zeigt die Liste unter Verwendung von Protokoll, Variablen und Dateinamenerweiterung an. Setzt ein Nullzeichen zwischen Wörter und enthält am Ende keinen Wagenrücklauf.
goto Wort Setzt die Ausführung nach der in der Variablen Wort angegebenen Zeile fort. Das angegebene Wort ist ein Dateiname und ein Befehl, die erweitert wurden, um eine Zeichenfolge in dem Format zu bilden, das in der Variablen Kennsatz: angegeben wurde. Die Shell rekonstruiert die Eingabe so weit wie möglich und sucht nach einer Zeile im Format Kennsatz :, dem Leerzeichen oder Tabulatorzeichen vorangestellt sind.
hashstat Zeigt Statistiken an, die angeben, mit welchem Erfolg Befehle über die Hash-Tabelle gefunden wurden.
history [-r | -h][n] Zeigt die Protokollereignisliste an. Die ältesten Ereignisse werden zuerst angezeigt. Wird eine Anzahl n angegeben, wird nur die angegebene Anzahl der jüngsten Ereignisse angezeigt. Mit dem Flag -r wird die Reihenfolge, in der die Ereignisse angezeigt werden, umgekehrt, so dass die jüngsten Ereignisse zuerst angezeigt werden. Mit dem Flag -h wird die Protokollliste ohne führende Nummern angezeigt. Dieses Flag ist zu verwenden, um Dateien zu erzeugen, die für die Verwendung mit dem Flag -h des Befehls source geeignet sind.
if (Ausdruck) Befehl Führt den angegebenen Befehl (einschließlich seiner Argumente) aus, wenn der angegebene Ausdruck wahr ist. Die Variablensubstitution für die Variable Befehl findet zu einem früheren Zeitpunkt statt, d. h., zur gleichen Zeit wie für den Rest der Anweisung if. Bei dem angegebenen Befehl muss es sich um einen einfachen Befehl handeln (und nicht um eine Befehlskette, Befehlsliste oder eine Klammerbefehlsliste).
Anmerkung: Die Eingabe-und Ausgabeumleitung findet auch dann statt, wenn die Variable Ausdruck auf ' false' gesetzt ist und Befehl nicht ausgeführt wird.
jobs [-l] Listet die aktiven Jobs auf. Wenn Sie das Flag -l (Kleinbuchstabe L) mit dem Befehl jobs angeben, werden zusätzlich zu der Jobnummer und dem Jobnamen die Prozess-IDs angezeigt.
kill -l | [ [-Signal]% Job... |PID...] Sendet entweder das Abbruchsignal TERM oder das in der Variablen Signal angegebene Signal an den angegebenen Job oder die angegebene PID (Prozess-ID). Signale werden entweder mit der Nummer oder mit dem Namen angegeben (wie in der Datei /usr/include/sys/signal.h definiert, nur ohne das Präfix SIG). Wenn Sie das Flag -l (Kleinbuchstabe L) angeben, werden die Signalnamen aufgelistet.
limit [-h] [Ressource [Max-Verwendung]] Begrenzt die Verwendung der angegebenen Ressource durch den aktuellen Prozess und jeden von diesem erstellten Prozess. Prozessressourcengrenzwerte werden in der Datei /etc/security/limits definiert. Steuerbare Ressourcen sind CPU-Zeit, Dateigröße, Datengröße, Kernspeicherauszugsgröße und Speicherbelegung. Die maximal zulässigen Werte für diese Ressourcen werden mit dem Befehl mkuser festgelegt, wenn der Benutzer dem System hinzugefügt wird. Mit dem Befehl chuser können sie geändert werden.

Grenzwerte werden als veränderlich oder fest kategorisiert. Der Benutzer kann die veränderlichen Grenzwerte bis auf den durch die festen Grenzwerte festgelegten Wert erhöhen. Um einen veränderlichen Grenzwert über den festen Grenzwert hinaus zu erhöhen oder um feste Grenzwerte zu verändern, muss die Rootberechtigung vorliegen. Mit dem Flag -h werden die festen Grenzwerte anstelle der veränderlichen Grenzwerte angezeigt.

Ist der Parameter Max-Verwendung nicht angegeben, wird mit dem Befehl limit der aktuelle Grenzwert für die angegebene Ressource angezeigt. Ist der Parameter Ressource nicht angegeben, werden mit dem Befehl limit die aktuellen Grenzwerte für alle Ressourcen angezeigt. Weitere Informationen zu den vom Unterbefehl limit gesteuerten Ressourcen finden Sie in der Beschreibung der Subroutine getrlimit, setrlimitoder vlimit .

Der Parameter Max-Verwendung für die CPU-Zeit wird im Format hh:mm:ss angegeben. Der Parameter Max-Verwendung für andere Ressourcen wird als Gleitkommazahl oder als ganze Zahl angegeben, der wahlweise ein Maßstabsfaktor folgen kann. Der Maßstabsfaktor ist k oder Kilobyte (1024 Byte), m oder Megabyte oder b oder Blöcke (die von der Subroutine ulimit verwendeten Einheiten). Wenn Sie keinen Maßstabsfaktor angeben, wird k für alle Ressourcen angenommen. Sowohl für Ressourcennamen als auch Maßstabsfaktoren genügen eindeutige Präfixe zu den Namen.
Anmerkung: Dieser Befehl begrenzt den für einen Prozess verfügbaren physischen Speicher (Speicherbelegung) nur, wenn es Konkurrenzsituationen für den Systemspeicher durch andere aktive Prozesse gibt.
login Beendet eine Anmeldeshell und ersetzt sie durch eine Instanz des Befehls /usr/bin/login . Dies ist eine Möglichkeit der Abmeldung (aus Gründen der Kompatibilität mit den Befehlen ksh und bsh).
logout Beendet eine Anmeldeshell. Dieser Befehl muss verwendet werden, wenn die Option ignoreeof festgelegt ist.
nice [+n] [Befehl] Setzt die Priorität von Befehlen, die in dieser Shell ausgeführt werden, auf 24, falls keine Werte angegeben wurden. Bei Angabe des Flags +n wird die Priorität plus der angegebenen Zahl gesetzt. Bei Angabe des Flags +n und eines Befehls wird der Befehl mit der Priorität 24 plus der angegebenen Zahl ausgeführt. Wenn Sie Rootberechtigung besitzen, können Sie die Anweisung nice mit einer negativen Zahl angeben. Der Befehl wird immer in einer Subshell ausgeführt, und es gelten die in einfachen if-Anweisungen festgelegten Einschränkungen für Befehle.
nohup [Befehl] Bewirkt, dass Hangups für den Rest des Scripts ignoriert werden, wenn kein Befehl angegeben ist. Wird ein Befehl angegeben, wird dieser Befehl ausgeführt, wobei Hangups ignoriert werden. Um eine Befehlskette oder Befehlsliste auszuführen, die Befehlskette bzw. Befehlsliste in ein Shell-Script stellen, dem Script Ausführungsberechtigung erteilen und als Wert für die Variable Befehl verwenden. Alle Prozesse, die im Hintergrund mit einem Et-Zeichen (&) ausgeführt werden, werden effektiv vor dem Senden eines hangup -Signals geschützt, wenn Sie sich abmelden. Die Prozesse sind jedoch weiterhin von explizit gesendeten Hangup-Signalen betroffen, sofern die Anweisung nohup nicht verwendet wird.
notify [%Job...] Weist die Shell an, den Benutzer asynchron zu benachrichtigen, wenn sich der Status des aktuellen oder angegebenen Jobs ändert. Normalerweise gibt die Shell Nachrichten kurz vor Ausgabe der Shellvingabeaufforderung aus. Diese Funktion wird automatisch ausgeführt, wenn die Shellvariable notify gesetzt ist.
onintr [- | Kennsatz] Steuert die Aktion der Shell bei Unterbrechungen. Werden keine Argumente angegeben, wird die Standardaktion der Shell bei Unterbrechungen wiederhergestellt, die das Shell-Script beendet oder zur Befehleingabeebene zurückkehrt. Bei Angabe eines Flags - werden alle Unterbrechungen ignoriert. Bei Angabe von Kennsatz wird die Shell angewiesen, die Anweisung goto Kennsatz auszuführen, wenn sie eine Unterbrechung empfängt oder wenn ein untergeordneter Prozess aufgrund einer Unterbrechung beendet wird. In jedem Fall verlieren alle Formate der Anweisung onintr ihre Bedeutung, wenn die Shell im Hintergrund ausgeführt wird und Unterbrechungen ignoriert werden. Unterbrechungen werden von der Shell und allen aufgerufenen Befehlen weiterhin ignoriert.
popd [+n] Zeigt die Verzeichnisstapel an und wechselt zum neuen Hauptverzeichnis. Wenn Sie eine +n -Variable angeben, verwirft der Befehl den nth -Eintrag im Stapel. Die Elemente des Verzeichnisstapels sind von oben nach unten, beginnend mit 0, nummeriert.
pushd [+n|Name] Werden keine Argumente angegeben, werden die zwei obersten Elemente des Verzeichnisstapels ausgetauscht. Wird die Variable Name angegeben, wechselt der Befehl in das neue Verzeichnis und stellt das alte aktuelle Verzeichnis (wie in der Shellvariablen cwd angegeben) in den Verzeichnisstapel. Wenn Sie eine +n -Variable angeben, dreht der Befehl die nth -Komponente des Verzeichnisstapels um das obere Element und ändert sich daran. Die Elemente des Verzeichnisstapels sind von oben nach unten, beginnend mit 0, nummeriert.
rehash Bewirkt eine erneute Berechnung der internen Hash-Tabelle mit dem Inhalt der in der Shellvariablen path angegebenen Verzeichnisse. Diese Aktion ist erforderlich, wenn den Verzeichnissen in der Shellvariablen path neue Befehle hinzugefügt werden, während der Benutzer angemeldet ist. Der Befehl rehash ist nur dann erforderlich, wenn den benutzereigenen Verzeichnissen Befehle hinzugefügt werden oder wenn der Inhalt eines der Systemverzeichnisse geändert wurde.
repeat Befehl Count Führt den angegebenen Befehl, der denselben Einschränkungen wie Befehle in einfachen if-Anweisungen unterliegt, so oft aus, wie im Parameter Anzahl angegeben ist.
Anmerkung: E/A-Umleitungen erfolgen genau einmal, auch wenn die Variable Anzahl gleich 0 ist.
set [[Name[n]] [ = Wort]] | [Name = (Liste)] Zeigt die Werte aller Shellvariablen an, wenn keine Argumente angegeben werden. Variablen, deren Wert aus mehreren Wörtern besteht, werden als Wortliste in Klammern angezeigt. Wird nur Name angegeben, setzt die C-Shell die Variable Name auf die leere Zeichenfolge. Andernfalls wird Name auf den Wert der Variablen Word gesetzt, oder die Variable Name wird auf die durch die Variable List angegebene Liste von Wörtern gesetzt. Wenn n angegeben wird, wird die Komponente nth der Variablen Name auf den Wert der Variablen Word gesetzt. Die Komponente nth muss bereits vorhanden sein. In allen Fällen besteht der Wert aus erweiterten Befehlen und Dateinamen. Diese Argumente können wiederholt werden, um mehrere Werte in einem einzigen set -Befehl festzulegen. Die Variablenerweiterung für alle Argumente findet jedoch statt, bevor eine Einstellung erfolgt.
setenvName Wert Setzt den Wert der in der Variablen Name angegebenen Umgebungsvariablen auf Wert, eine einzelne Zeichenfolge. Die am häufigsten verwendeten Umgebungsvariablen USER, TERM, HOME und PATH werden automatisch in bzw. aus den C-Shellvariablen user, term, home und path im- bzw. exportiert. Es ist nicht erforderlich, die Anweisung setenv für diese zu verwenden.
shift [Variable] Verschiebt die Elemente der Shellvariablen argv oder der angegebenen Variablen nach links. Wenn die Shellvariable argv oder die angegebene Variable nicht gesetzt ist oder ihr Wert weniger als ein Wort enthält, tritt ein Fehler auf.
source[-h] Name Liest Befehle, die in der Datei Name angegeben sind. Der Befehl source kann verschachtelt werden. Falls der Befehl jedoch zu tief verschachtelt wird, stehen der Shell möglicherweise nicht genügend Dateideskriptoren zur Verfügung. Tritt ein Fehler in einem Befehl source auf einer Ebene auf, werden alle verschachtelten Befehle source beendet. Normalerweise werden Eingaben während der Ausführung von source -Befehlen nicht in die Protokollliste aufgenommen. Mit dem Flag -h können die Befehle in die Protokollliste gestellt werden, ohne ausgeführt zu werden.
stop [%Job ...] Stoppt den aktuellen Job oder den angegebenen Job, der im Hintergrund ausgeführt wird.
suspend Stoppt die Shell so, als wäre ein STOP empfangen worden.
switch (zeichenfolge) Startet eine switch (Zeichenfolge) case Zeichenfolge : ... breaksw default: ... breaksw endsw -Befehlsfolge. Diese Befehlsfolge gleicht nacheinander alle case-Fälle mit dem Wert der Variablen Zeichenfolge ab. Wenn keine Fallübereinstimmung gefunden wird, bevor ein Standardfall gefunden wird, beginnt die Ausführung nach dem Standardfall.
time [Befehl] Mit dem Befehl time wird die automatische Ablaufsteuerung von Befehlen gesteuert. Wird die Variable Befehl nicht angegeben, zeigt der Befehl time die Gesamtzeit an, die von der Shell und ihren untergeordneten Prozessen verwendet wurde. Wird über die Variable Befehl ein Befehl angegeben, ist er zeitverzögert. Die Shell zeigt dann eine Zeitzusammenfassung an, wie in der Shellvariablen time beschrieben. Falls erforderlich, wird eine zusätzliche Shell erstellt, um die Zeitstatistik nach Beendigung des Befehls anzuzeigen.
Im folgenden Beispiel wird time mit dem Befehl sleep verwendet:
time sleep
Die Ausgabe des Befehls ist ähnlich der folgenden:
0.0u 0.0s 0:00 100% 44+4k 0+0io 0pf+0w

Die folgenden Ausgabefelder sind vorhanden:

Erster
CPU-Zeit (in Sekunden) für den Benutzerprozess
Sekunde
CPU-Zeit (in Sekunden), die vom Kernel für den Benutzerprozess benötigt wurde
Dritte
Abgelaufene Zeit (Uhrzeit) für den Befehl
Vierte
Gesamt-CPU-Zeit plus Systemzeit, ausgedrückt als Prozentsatz der abgelaufenen Zeit
Fünfte
Durchschnittlicher gemeinsam benutzter Speicherbereich plus durchschnittlicher nicht gemeinsam benutzter Datenraum in Kilobyte
Sechste
Anzahl der Blockeingabe- und Blockausgabeoperationen
Siebtes
Fehlseitenbedingungen plus Anzahl der Auslagerungen
umask [Wert] Legt Dateiberechtigungen fest. Beim Erstellen einer Datei werden mit diesem Wert zusammen mit den Berechtigungen des Erstellungsprozesses die Berechtigungen der Datei festgelegt. Der Standardwert ist 022. Wird kein Wert angegeben, wird die aktuelle Einstellung angezeigt.
unalias *|Muster Löscht alle Aliasnamen, die mit der Variablen Muster übereinstimmen. Alle Aliasnamen werden mit dem Befehl unalias * entfernt. Sind keine Aliasnamen vorhanden, führt dies nicht zu einem Fehler.
unhash Inaktiviert die Verwendung der internen Hash-Tabelle, um aktive Programm zu suchen.
unlimit [-h][Ressource] Löscht die Grenzwerte für die Variable Ressource. Ist die Variable Ressource nicht angegeben, werden die Grenzwerte aller Ressourcen gelöscht. In der Beschreibung des Befehls limit ist eine Liste der Namen der Ressourcen enthalten.

Mit dem Flag -h werden die entsprechenden festen Grenzwerte gelöscht. Nur Benutzer mit Rootberechtigung können feste Grenzwerte ändern.

unset *|Muster Löscht alle Variablen, deren Name mit der Variablen Muster übereinstimmen. Mit dem Befehl unset * werden alle Variablen gelöscht. Sind keine Variablen gesetzt, tritt kein Fehler auf.
unsetenvMuster Löscht alle Variablen aus der Umgebung, deren Namen mit dem angegebenen Muster übereinstimmen. (Weitere Informationen sind im Abschnitt zum integrierten Befehl setenv enthalten.)
wait Wartet auf alle Hintergrundjobs. Ist die Shell interaktiv, wird der Wartestatus durch eine Unterbrechung (INTERRUPT), normalerweise die Tastenkombination Strg-C, unterbrochen. Die Shell zeigt daraufhin die Namen und Jobnummern aller ausstehenden Jobs an.
while (Ausdruck) Befehl. . .  end Wertet die Befehle zwischen der Anweisung while und der zugehörigen Anweisung end aus, solange der mit der Variablen Ausdruck angegebene Ausdruck ungleich null ist. Mit der Anweisung break wird die Schleife vorzeitig beendet und mit der Anweisung continue fortgesetzt. Die Anweisungen while und end müssen jeweils allein in der jeweiligen Eingabezeile stehen. Erfolgt die Eingabe an einem Terminal, werden nach while (Ausdruck) Eingabeaufforderungen wie bei der Anweisung foreach angezeigt.
@ [Name[n] = Ausdruck Zeigt die Werte aller Shellvariablen an, wenn keine Argumente angegeben werden. Andernfalls wird der in der Variablen Name angegebene Name auf den Wert der Variablen Ausdruck gesetzt. Falls der Ausdruck das Zeichen <, >, & oder | enthält, muss dieser Teil des Ausdrucks in runde Klammern gesetzt werden. Wenn n angegeben wird, wird die nth Komponente der Variablen Name auf die Variable Expression gesetzt. Sowohl die Name -Variable als auch die nth -Komponente müssen bereits vorhanden sein.

Operatoren der Programmiersprache C wie *= und += werden unterstützt. Das Leerzeichen, das die Variable Name vom Zuordnungsoperator trennt, ist optional. Leerzeichen sind jedoch erforderlich, um die Komponenten der Variablen Ausdruck zu trennen, die andernfalls als ein einziges Wort interpretiert würden. Besondere Suffixoperatoren wie ++ (doppeltes Pluszeichen) und -- (doppeltes Minuszeichen) erhöhen bzw. verringern jeweils den Wert der Variablen Name.