next up previous contents index
Next: Login- und andere Up: bash Previous: Wenn alles getan

Eingebaute Shellkommandos

 

:

Syntax: : [ Argument ...] 

Das Shellkommando : hat keinen direkten Effekt. Im Gegensatz zum Kommentar werden aber die ``Argumente'' wie bei normalen Kommandos erweitert. Selbstverständlich muß das :- Shellkommando an einer für Kommandos zulässigen Position in der Kommandozeile stehen.

Seine Bedeutung hat dieses Kommando in Shellscripts, wo bestimmte Parametererweiterungen, beispielsweise Belegung von Shellvariablen mit Default-Werten (-> Seite gif), unabhängig von einem einzelnen Kommando ausgeführt werden sollen.

alias

Syntax: alias     [ Name [= Kommando] ...]

Mit dem alias-Shellkommando können einfache Kommandos mit benutzerdefinierten Namen (Synonymen) belegt werden. Wenn ein Name und ein einfaches Kommando angegeben sind, wird der Name als Synonym für das Kommando gespeichert. Besteht das Kommando aus mehreren Wörtern, muß es in Hochkommata oder Anführungszeichen eingeschlossen werden.

Ohne Argument werden alle Synonyme aufgelistet. Wenn nur ein Name angegeben ist, wird das Synonym für diesen Namen angezeigt. Der Rückgabewert von alias ist Null (wahr), wenn der Name als Synonym für ein Kommando steht.

bg

Syntax: bg     [ Jobspezifikation] 

Das Kommando bg startet einen (mit ^Z) angehaltenen Prozeß (Job) im Hintergrund. Wenn keine Jobspezifikation (-> Seite gif) angegeben wurde, wird der zuletzt angehaltene Job gestartet.

Ein im Hintergrund laufender Job wird automatisch angehalten, wenn er vom Terminal lesen will.

bind

   

Syntax: bind [- m Keymap] [- ldv] [- q Kommandobezeichnung]

bind [- m Keymap] [- f Dateiname]\

bind [- m Keymap] [ Tastenfolge: Kommandobezeichnung]

Mit dem bind-Shellkommando kann die Tastenbelegung der readline- Editorfunktionen angezeigt oder neu definiert werden.

Die readline-Funktionen unterstützen mehrere Editoremulationen. Dazu werden mehrere Keymaps verwaltet.

Die Syntax einer Tastaturbelegung entspricht der für die ` ~/.inputrc'-Datei (-> Seite gif).

Die Optionen haben die folgende Bedeutung:

-m Keymap
wählt die bezeichnete Befehlstabelle Keymap zur Anzeige bzw. zur Veränderung; die folgenden Keymaps werden von readline verwaltet:
emacs
emacs-standard
emacs-meta
emacs-ctlx
vi
vi-move
vi-command
vi-insert

-l
gibt eine Liste aller möglichen Kommandobezeichnungen ( readline-Funktionen) aus
-v
gibt eine Liste der aktuellen Editorfunktionen inklusive der gespeicherten Tastenbelegung aus
-d
gibt eine Liste aller Kommandobezeichnungen und ihrer Belegungen im Format zum Wiedereinlesen auf die Standardausgabe
-f Datei
liest die Tastaturbelegung aus der Datei
-q Kommandobezeichnung
gibt die Taste zur Kommandobezeichnung aus

break

Syntax: break [ n]   

Das break-Shellkommando bricht eine for-, while- oder until-Schleife ab.   Wenn eine Zahl n als Argument angegeben ist, werden n verschachtelte Schleifen abgebrochen. Ist die Anzahl größer als die Zahl der umgebenden Schleifen, werden alle umgebenden Schleifen verlassen.

builtin

Syntax: builtin Shellkommando   [ Argument ...]   

Das Shellkommando builtin führt ein anderes eingebautes Shellkommando aus, auch wenn es durch ein Synonym oder eine gleichnamige Scriptfunktion verdeckt ist. Eine mit ` enable -n' abgeschaltete Shellfunktion kann auch mit dem builtin-Kommando nicht aufgerufen werden.

bye

Wird seit Version 1.14 nicht mehr unterstützt. Siehe exit auf Seite gif.

cd

Syntax: cd [ Verzeichnis]      

Das Shellkommando cd setzt das aktuelle Verzeichnis. Wenn kein Verzeichnis angegeben ist, wird in das HOME- Verzeichnis gewechselt. In der   Shellvariablen CDPATH kann eine Liste von   (durch Doppelpunkt getrennten) Verzeichnissen angegeben werden, in denen das Verzeichnis gesucht wird. Ein Verzeichnisname, der mit einem `/' beginnt, wird als absoluter Name behandelt und nur vom Wurzelverzeichnis aus gesucht.

Das aktuelle Verzeichnis selbst ist unter der Bezeichnung `.' ansprechbar; das im Verzeichnisbaum nächsttiefere Verzeichnis heißt `..' und das letzte aktuelle Verzeichnis ( OLDPWD) heißt `-'.

command

Syntax: command [-pVv] Kommando [ Argument...]  

Das Shellkommando command führt das angegebene (einfache) Kommando ohne die normale shellinterne Identifizierung aus. Dadurch werden nur die fest eingebauten Shellfunktionen und die Dateien aus den Verzeichnissen in PATH ausgeführt.

-p
schränkt die Suche nach dem Kommando auf den Standardpfad ein; auf diese Weise kommen nur die Standardsystemkommandos zur Ausführung
-v
(verbose) wortreich (-> Langenscheidts Taschenwörterbuch ``Englisch'')
-V
(even more verbose) wortreicher ('tschuldigung)

continue

Syntax: continue [ n]    

Mit der Shellfunktion continue wird der aktuelle Schleifendurchlauf einer for-, while- oder until- Schleife sofort unterbrochen und mit dem nächsten Schleifendurchlauf angefangen. Wenn als Argument eine Zahl (größer als Null) angegeben ist, wird diese Anzahl umgebender Schleifen abgebrochen. Wenn die Zahl größer als die Zahl der umgebenden Schleifen ist, werden alle umgebenden Schleifen unterbrochen und mit dem nächsten Durchlauf der äußersten Schleife fortgefahren.

declare

Syntax: declare [- frxi] [ Name [= Wert]]     

Das Shellkommando declare erzeugt eine Shellvariable und/oder setzt die Attribute der Variablen. Wenn kein Name angegeben ist, werden die Werte aller Variablen angezeigt.

Das Kommando erlaubt folgende Optionen:

-f
(zeigt) nur Funktionsnamen
-r
setzt die Variable(n) auf `nur Lesen' Status
-x
markiert die Variable für automatischen Export in alle Subshellumgebungen
-i
setzt den Typ der Variablen auf Ganzzahl; wenn dieser Variablen ein Wert zugewiesen wird, findet eine arithmetische Auswertung des zugewiesenen Ausdrucks statt

Wenn die Optionen mit `+' anstelle von `-' gesetzt werden, wird das entsprechende Merkmal abgeschaltet.

Wenn die Shellfunktion innerhalb einer Funktionsdefinition benutzt wird, ist die Variable lokal zu dieser Funktion, genauso als ob sie mit der Shellfunktion local definiert wäre.

Die typeset-Shellfunktion ist identisch mit der declare- Shellfunktion.

dirs

Syntax: dirs [- l]   

Die dirs-Shellfunktion gibt eine Liste der im Verzeichnisstapel gespeicherten Verzeichnisse aus. Die Bearbeitung dieses Verzeichnisstapels findet mit den Shellkommandos pushd und popd statt (-> Seite gif).

Mit der Option ` -l' werden die Verzeichnisnamen nicht relativ zum Heimatverzeichnis, sondern vom Wurzelverzeichnis aus angezeigt.

echo

Syntax: echo [ - neE] [ Argument ...]   

Das echo-Shellkommando gibt die Argumente (durch Leerzeichen getrennt) auf die Standardausgabe. Es gibt auch ein externes echo-Kommando, das mit dem eingebauten Shellkommando der bash identisch ist.

Wenn die Option ` -n' gesetzt ist, wird die Ausgabe nicht durch ein Zeilenendezeichen abgeschlossen.

Wenn die Option ` -e' gesetzt ist, werden die folgenden Sonderzeichen zur Formatierung der Ausgabe erkannt:

\ a
Alarm (Piep)
\ b
Schritt zurück
\ c
kein Zeilenende
\ f
Seitenvorschub
\ n
Zeilenende
\ r
Wagenrücklauf
\ t
(horizontaler) Tabulator
\ v
vertikaler Tabulator
\\
das Zeichen `\'
\ nnn
das Zeichen mit dem (oktalen) Code nnn

enable

Syntax: enable [ - n] [ - all]   [ Kommando ...]   

Das Shellkommando enable ermöglicht es, Shellfunktionen ab- und wieder anzuschalten. Auf diese Weise kann anstelle eines (internen) Shellkommandos das gleichnamige (externe) Kommando aus einem Binärverzeichnis ausgeführt werden.

Wenn die Option ` -n' gesetzt ist, wird das Shellkommando abgeschaltet. Sonst wird das Shellkommando eingeschaltet.

Mit der Option ` -all' werden alle eingebauten Shellkommandos aktiviert und eine Liste ausgegeben.

eval

Syntax: eval [ Argument ...]   

Das eval-Shellkommando fügt die Argumente zu einer Kommandozeile zusammen, die ausgeführt wird, ohne die Shell zu verdrängen. Sinn dieses Shellkommandos ist es, eine Kommandozeile mehrfach der Parametererweiterung zu unterziehen.

Wenn in einem Shellscript Variablen eingesetzt werden müssen, die ihrerseits wieder Variable enthalten, oder wenn aufgrund der Reihenfolge ihrer Ausführung die gewünschte Erweiterung nicht erzielt wird, ist dieses Shellkommando das Mittel der Wahl.

exec

Syntax: exec [[ -]   Kommando [ Argument ...]] 

Normalerweise startet die Shell ein Programm mit dem fork-Systemaufruf und wartet im Hintergrund, bis das Programm beendet wird. Danach übernimmt die Shell wieder die Kontrolle über das Terminal.

Das Shellkommando exec führt ein Kommando mit den angegebenen Argumenten aus, ohne einen Kindprozeß zu erzeugen. Das heißt, die aufrufende Shell wird verdrängt und damit beendet. Auch wenn das Kommando aus irgendwelchen Gründen nicht ausgeführt werden kann, wird die Shell beendet (wenn die Shellvariable no_exit_on_failed_exec nicht gesetzt ist).

Die Argumente werden als Optionen und Positionsparameter an das Kommando weitergegeben. Wenn das erste Argument ein `-' ist, wird dieses Argument als nulltes (!) Argument der Kommandozeile an das Kommando weitergegeben. Das ist die Art, wie login ein Programm aufruft.

Wenn kein Kommandoname angegeben ist, werden die Ein-/Ausgabe-Umleitungen, die mit dem exec-Shellkommando gegeben werden, auf die aufrufende Shell angewendet.

exit

Syntax: exit [ n]        

Das exit-Shellkommando verläßt die Shell mit dem Status n. Wenn kein Status angegeben ist, wird der Status des zuletzt ausgeführten Kommandos (in der Shellvariablen ` ?') zurückgegeben.

Die exit-Shellfunktion erzeugt ein EXIT-Signal (0), das mit dem trap-Shellkommando abgefangen und als letzte Aktion der Shell behandelt werden kann.

Bis zur Version 1.13 konnte die Shellfunktion exit auch unter dem Namen bye aufgerufen werden.

export

Syntax: export [ - nfp]   [ Name [= Wert]]   

Bei der Ausführung von Programmen durch die Shell werden in der Regel neue Prozesse erzeugt. Diese Prozesse ``erben'' von der Shell eine Umgebung (Environment), in der verschiedene ``globale'' Variablen und Funktionen enthalten sein können (-> Seite gif). Diese können vom Prozeß ausgewertet werden.

Es werden aber nicht alle Shellvariablen, sondern nur die besonders für den Export bestimmten Umgebungsvariablen und Funktionen aus der Shellumgebung in die Umgebung eines neuen Prozesses kopiert.

Das export-Shellkommando schreibt bereits existierende Shellvariable in die Prozeßumgebung und macht sie so zu Umgebungsvariablen. Wenn die Option ` -n' gesetzt ist, wird die Variable aus der Prozeßumgebung entfernt, innerhalb der Shell bleibt sie als Shellvariable erhalten. Um Funktionen zu exportieren, muß die ` -f'-Option benutzt werden.

Wenn keine Namen angegeben sind oder die Option ` -p' gesetzt ist, werden alle für den Export bestimmten Shellvariablen mit ihren Werten angezeigt. Eine komplette Liste aller Umgebungsvariablen können Sie sich auch mit dem printenv-Kommando (-> Seite gif) anzeigen lassen. In dieser Liste werden auch die Variablen angezeigt, die die Shell beim Start mit ihrer eigenen Umgebung erhalten hat.

Wenn zu einem Variablennamen beim Aufruf von export eine Zuweisung erfolgt, wird eine existierende Variable mit diesem Wert belegt oder eine neue mit diesem Wert erzeugt.

Die mit Magnetbandgeräten arbeitenden Kommandos versuchen beispielsweise die Gerätedatei des Streamers aus der Umgebungsvariablen TAPE zu lesen. Wenn Sie beispielsweise einen (den ersten) SCSI-Streamer als Standardgerät für alle Bandoperationen bestimmen wollen, können Sie mit dem folgenden Kommando die Umgebungsvariable erzeugen:

$ export TAPE=/dev/st0
$ _

fc

Syntax: fc [-e Editor]   [ - nlr] [ Anfang] [ Ende]

fc - s [ Muster= Ersatz]\ [ Kommandozeile]  

Mit dem Shellkommando fc (fix command) können einzelne Kommandozeilen aus dem Kommandozeilenspeicher, aber auch ganze Bereiche des Kommandozeilenspeichers editiert und danach ausgeführt werden. Als Editor wird der mit der ` -e'-Option spezifizierte Editor benutzt oder der in der Shellvariablen FCEDIT bestimmte oder schließlich der Standardeditor vi, wenn kein anderer Editor bestimmt wird.

In der ersten Form werden die Kommandozeilen von Anfang bis Ende in den Editor geladen. Anfang und Ende können als Zeichenkette (in Übereinstimmung mit dem Anfang der gewünschten Kommandozeile) oder als Zahl (die absolute Position des Kommandos im Kommandozeilenspeicher) angegeben werden. Eine negative Zahl bestimmt Anfang und Ende relativ zum aktuellen Kommando.

Wenn kein Ende gesetzt ist, wird nur das Kommando am Anfang editiert. Wenn auch kein Anfang gesetzt ist, wird das letzte Kommando genommen.

Wenn die Option ` -l' gesetzt ist, wird der entsprechende Bereich von Kommandozeilen angezeigt, anstatt ihn zu editieren. Wenn zusätzlich noch die Option ` -n' gesetzt ist, wird die Ausgabe der Zeilennummern vor den Kommandozeilen unterdrückt.

Wenn die Option ` -r' gesetzt ist, werden die Kommandozeilen in umgekehrter Reihenfolge in den Editor geladen.

Wenn das Shellkommando fc in der zweiten Form aufgerufen wird, ersetzt es das Muster in der Kommandozeile durch Ersatz. Wenn kein Muster/Ersatz-Paar angegeben wird, kommt die Kommandozeile unverändert zur Ausführung.

fg

Syntax: fg [ Jobspezifikation ]   

Das Shellkommando fg bringt einen (mit ^Z) angehaltenen Prozeß im Vordergrund zum Laufen. Wenn keine Jobspezifikation (-> Seite gif) angegeben ist, wird der zuletzt angehaltene Job im Vordergrund gestartet.

getopts

Syntax: getopts Optionen Variable [ Argumente]  

Die getopts-Shellfunktion kann in Shellscripten verwendet werden, um die Kommandozeile nach (konventionell) gültigen Optionen und Argumenten zu durchsuchen.

Wenn ein Shellscript als Kommando aufgerufen wird, kann es auf der Kommandozeile Optionen und Argumente übernehmen. Diese Parameter sind in den Positionsparametern (-> Seite gif) gespeichert und können so innerhalb des Scripts angesprochen und z. B. mit einer case-Konstruktion verarbeitet werden.

Wenn die Kommandozeile den konventionellen Regeln entsprechend aufgebaut ist, kann sie einfacher mit der getopts-Shellfunktion auseinander genommen werden (-> Seite gif).

In der Zeichenkette Optionen werden alle Schalter und Regler mit ihren Kennbuchstaben angegeben. Regler, die zusätzliche Argumente erhalten, werden von einem Doppelpunkt gefolgt.

Immer dann, wenn getopts aufgerufen wird, gibt es eine Option in der beim Aufruf bezeichneten Variable zurück. Wenn diese Variable nicht existiert, wird sie erzeugt. Wenn die Option ein Argument erwartet (also mit einem Doppelpunkt markiert ist), wird dieses Argument in der Shellvariablen OPTARG zurückgegeben.

Bei jedem Aufruf von getopts wird der Zeiger in der Shellvariablen OPTIND erhöht, damit bei einem weiteren Aufruf automatisch die nächste Option eingelesen wird.

Der OPTIND wird beim Start der Shell mit 1 initialisiert. Wenn eine Kommandozeile mehrfach eingelesen werden soll, muß der Index manuell zurückgesetzt werden.

Wenn nicht ausdrücklich eine Argument-Zeichenkette beim Aufruf von getopts übergeben wird, nimmt das Shellkommando die Positionsparameter, also die Argumente von der Kommandozeile des Scripts.

Der Status von getopts ist 0 (wahr), wenn eine Option gefunden wurde und falsch, wenn das Ende der Kommandozeile bzw. der Argumente erreicht ist oder wenn ein Fehler aufgetreten ist.

Die Ausgabe von Fehlermeldungen in den Fehlerkanal kann durch Plazieren eines Doppelpunktes als erstes Zeichen der Optionen-Zeichenkette oder durch Belegung der Shellvariablen OPTERR=0 unterdrückt werden.

Zur weiteren Fehlerbehandlung kann bei der ``stillen'' Variante in der Variablen ein symbolischer Fehlercode und in der Shellvariablen OPTARG das zuletzt gelesene Token gefunden werden.

hash

Syntax: hash [ - r]  [ Name]  

Die Shell unterhält eine Hashtabelle, in der alle seit dem Start der Shell aufgerufenen (externen) Kommandos mit komplettem Pfadnamen gespeichert werden. Das beschleunigt jeden weiteren Aufruf eines solchen Kommandos, weil nicht erst auf dem Pfad danach gesucht werden muß. Wenn das Shellkommando hash mit einem Kommandonamen aufgerufen wird, fügt es diesen Namen (mit Pfad) in die Hashtabelle ein.

Wenn die Option ` -r' gesetzt ist, wird die Hashtabelle gelöscht. Diese Option kann notwendig sein, wenn eine Binärdatei gelöscht oder verschoben worden ist. Wenn kein Argument angegeben ist, wird der Inhalt der Hashtabelle ausgegeben.

help

Syntax: help [ Shellkommando  ]    

Das help-Shellkommando zeigt einen kurzen Hilfstext zu dem angegebenen Shellkommando oder, wenn kein Kommando angegeben ist, eine Übersicht aller Shellkommandos, zu denen Hilfstexte verfügbar sind.

history

Syntax: history [ n]
history [- anrw] [ Datei]    

Wenn die history-Shellfunktion in der ersten Form aufgerufen wird, zeigt sie die Einträge im Kommandozeilenspeicher an. Das Argument n schränkt die Ausgabe auf die letzten n Zeilen ein.

In der zweiten Form wird der Kommandozeilenspeicher mit der Option ` -r' aus der Datei gelesen oder mit der Option ` -w' dorthin geschrieben. Mit der Option ` -a' werden die gespeicherten Zeilen an den Kommandozeilenspeicher angehängt, und mit der Option ` -n' werden die noch nicht gelesenen Zeilen aus der Datei gelesen. Wenn kein Dateiname angegeben ist, wird der Dateiname aus der Shellvariablen HISTFILE genommen, die mit ~/.bash_history vorbelegt ist.

jobs

Syntax: jobs [ - lnp]   [ Jobspezifikation]
jobs -x Kommando [ Argument ... ]    

Das Shellkommando jobs gibt eine Liste der aktuellen Jobs aus. In dieser Liste steht neben der Jobnummer zu jedem Job der Kommandoname, der Status und eine Markierung `+' für den `aktuellen Job' und `-' für den vorhergehenden aktuellen Job (-> Seite gif).

Wenn die Option ` -l' gesetzt ist, wird zusätzlich die Prozeßnummer zu jedem Job ausgegeben. Mit der Option ` -p' wird nur die Prozeßnummer ausgegeben. Mit der Option ` -n' werden nur die Jobs angezeigt, die ihren Status seit der letzten Anzeige geändert haben. Wenn eine Jobspezifikation angegeben ist, werden nur die Daten zu diesem Job angezeigt.

Mit der Option ` -x' kann das Kommando ausgeführt werden, indem alle in den Argumenten auftauchenden Jobspezifikationen durch ihre Prozeßnummern ersetzt werden.

kill

Syntax: kill - Signal     [ Prozeßnummer | Jobspezifikation]
kill - l    

Das Shellkommando kill sendet das Signal an den Prozeß Prozeßnummer. Standardwert ist SIGTERM (15) zum Terminieren   des Prozesses. Es können aber auch beliebige andere Signale gesendet werden. Das Signal kann als Name oder als Nummer angegeben werden. Die Jobspezifikation ist auf Seite gif erklärt.

Mit der Option ` -l' werden alle möglichen Signalnamen aufgelistet.

Es gibt auch ein externes kill-Kommando, mit dem die gleichen Signale gesendet werden können, das aber nicht mit einer Jobspezifikation in der Kommandozeile umgehen kann.

let

Syntax: let Ausdruck [ Ausdruck ...]   

Das Shellkommando let berechnet jedes Argument als arithmetischen Ausdruck. Der Rückgabewert von let ist 1, wenn der letzte Ausdruck Null liefert; sonst ist der Status Null.

Die Syntax der Ausdrücke ist auf Seite gif erklärt.

local

Syntax: local [ Name[ = Wert]]    

Das Shellkommando local erzeugt eine lokale Variable Name und weist ihr den Wert zu. Wenn eine lokale Variable innerhalb einer Funktion erzeugt wird, so ist sie nur innerhalb dieser Funktion und allen Unterfunktionen zugänglich. Außerhalb von Funktionen hat die Shellfunktion local keine Bedeutung.

Wenn kein Name angegeben ist, werden alle lokalen Variablen angezeigt.

logout

Syntax: logout      

Das Shellkommando logout beendet eine Loginshell. Wenn die Shell als bash gestartet wurde, wird dabei das Shellscript ` ~/.bash_logout' abgearbeitet.

popd

Syntax: popd [+|- n]    

Das popd-Shellkommando löscht einen Verzeichnisnamen vom Verzeichnisstapel. Ohne Argument wird das erste (oberste) Verzeichnis vom Stapel geholt und mit cd ein Verzeichniswechsel dorthin ausgeführt.

Mit der Option `+/- n' kann ein bestimmtes Verzeichnis aus dem Stapel gelöscht werden. Dabei ist die Zahl n die Position im Stapel, beginnend mit Null, und das Vorzeichen gibt an, ob das Verzeichnis vom ``Anfang'' (links in der Liste von dirs, mit `+') oder vom ``Ende'' (`-') aus gezählt werden soll.

Wenn die Shellvariable pushd_silent gesetzt ist, wird die Auflistung des aktualisierten Verzeichnisstapels (mit dirs) unterdrückt.

pushd

Syntax: pushd Verzeichnis
  pushd [+|- n]  

Das Shellkommando pushd legt das Verzeichnis als oberstes auf dem Verzeichnisstapel ab oder rotiert den Verzeichnisstapel um die angegeben Positionen.

Die Bedeutung der Shellvariablen pushd_silent ist die gleiche wie beim popd-Shellkommando.

pwd

    Syntax: pwd  

Das Shellkommando pwd gibt den Pfadnamen des aktuellen Verzeichnisses aus.

read

Syntax: read [- r]     [ Name ...]  

Die Shellfunktion read liest eine Zeile von der Standardeingabe und weist die (durch die IFS getrennten) Wörter den benannten Shellvariablen zu. Wenn mehr Wörter in der Zeile stehen als Namen angegeben sind, werden die verbleibenden Wörter alle in der zuletzt benannten Variablen gespeichert.

Wenn die Option ` -r' gesetzt ist, wird ein durch ein `\' eingeleitetes Zeilenende als Teil der Eingabe in einer Variablen abgespeichert.

Wenn kein Name für die Variable angegeben ist, unter dem die Eingabe gespeichert werden soll, so wird automatisch die Shellvariable REPLY (Antwort) benutzt.

readonly

Syntax: readonly [- npf ]   [ Name]  

Die Shellfunktion readonly gibt Variablen (oder Scriptfunktionen mit der Option ` -f') den ``nur Lesen''-Status. Solche Variable können nicht gelöscht oder verändert werden.

Wenn kein Name angegeben ist oder die Option ` -p' gesetzt ist, werden alle Variablen mit ``nur Lesen''-Status angezeigt.

Mit der ` -n'-Option können bis zur Version 1.14.2 Variable mit ``nur Lesen''-Status wieder beschreibbar gemacht werden. Die einzige Ausnahme sind die reale und die effektive User-ID, die nicht direkt verändert werden können.

return

Syntax: return [ n]   

Die return-Shellfunktion hat nur innerhalb einer Scriptfunktion eine Bedeutung und veranlaßt dort, die Funktion mit dem angegebenen Rückgabewert zu verlassen.

Wenn kein Rückgabewert angegeben ist, wird der Status des zuletzt ausgeführten Kommandos weitergereicht.

set

Syntax: set [- abefhknotuvxldHC]   [ Argument]  
-a
veranlaßt die Shell, alle neu erzeugten oder veränderten Variablen automatisch zu exportieren
-b
zeigt die Beendigung eines Jobs sofort an, ohne auf die nächste Eingabeaufforderung zu warten
-e
beendet die Shell sofort, wenn ein Kommando nicht den Rückgabewert Null liefert
-f
unterdrückt die Pfadnamenerweiterung
-h
veranlaßt die Shell, Funktionen sofort bei ihrer Definition zu speichern, nicht erst bei ihrem Aufruf
-i
zwingt eine Shell, interaktiv zu arbeiten; in diesem Fall wird immer die Initialisierungsdatei ~/.bashrc interpretiert
-k
veranlaßt die Shell, beim Aufruf eines Kommandos die komplette Kommandozeile in die Umgebung einer Funktion zu schreiben, nicht bloß die Argumente nach dem Funktionsnamen
-m
ermöglicht die Benutzung der Job-Kontrollfunktionen
-n
liest Kommandos, ohne sie auszuführen; diese Option funktioniert nicht in interaktiven Shells und dient zum Testen von Shellscripts
-o Option
setzt die angegebene Option. Dabei sind folgende Optionen erlaubt:
allexport
das gleiche wie die Option -a
braceexpand
in geschweiften Klammern eingeschlossene, durch Kommata getrennte Listen von Wortteilen in der Kommandozeile werden durch mehrere Wörter mit je einem eingefügten Wortteil ersetzt (wie in der C-Shell)
emacs
schaltet den Kommandozeileneditor in den emacs-Stil
errexit
das gleiche wie die Option -e
histexpand
das gleiche wie die Option -H
ignoreeof
unterdrückt das Verlassen der Shell beim Lesen von EOF
interactive-comments
veranlaßt die Shell, Kommentarzeichen ` #' auch auf der Kommandozeile zu erkennen
monitor
das gleiche wie die Option -m
noclobber
verbietet das Überschreiben existierender Dateien durch Ausgabeumleitung wie -C
noexec
das gleiche wie die Option -n
noglob
das gleiche wie die Option -f
nohash
das gleiche wie die Option -d
notify
das gleiche wie die Option -b
nounset
das gleiche wie die Option -u
privileged
das gleiche wie die Option -p
verbose
das gleiche wie die Option -v
vi
schaltet den Kommandozeileneditor in den vi-Stil
xtrace
das gleiche wie die Option -x

-p
(privileged) veranlaßt die Shell, beim Start die ENV- Initialisierungsdatei und die aus der Umgebung geerbten Funktionen zu ignorieren; dieser Schalter wird automatisch gesetzt, wenn die effektive User-ID nicht mit der realen übereinstimmt; beim Zurücksetzen des Schalters wird die effektive User-ID sofort mit der realen gleichgesetzt
-t
beendet die Shell sofort nach der Ausführung eines einzigen Kommandos
-u
erzeugt eine Fehlermeldung für jede leere (ungesetzte) Variable, die erweitert werden soll
-v
gibt jede Kommandozeile so aus, wie sie gelesen wurde
-x
gibt nach der Erweiterung jedes einfachen Kommandos den Inhalt der Shellvariablen PS4, gefolgt von dem erweiterten Kommando mit allen Argumenten, aus
-l
speichert und restauriert die Belegung der Zählvariablen vor und nach einer for-Schleife
-d
unterdrückt die Benutzung einer Hashtabelle für die Pfadnamen der Kommandos
-H
ermöglicht den Bezug auf Zeilen im Kommandozeilenspeicher mit dem ` !' wie in der csh
-C
verbietet das Überschreiben existierender Dateien durch Ausgabeumlenkung (wie noclobber)
-
setzt die Positionsparameter auf die der Option folgenden Werte, auch wenn einer der Werte mit einem `-' beginnt; wenn keine Werte folgen, werden die Positionsparameter gelöscht
-
setzt die Positionsparameter auf die der Option folgenden Werte; wenn keine Werte folgen, bleiben die Positionsparameter unverändert

Wenn anstelle des `-' bei den Optionen ein `+' gesetzt ist, wird die entsprechende Option abgeschaltet. Alle hier aufgeführten Optionen können auch beim Aufruf der Shell in der Kommandozeile gesetzt werden. Die aktuell gesetzten Optionen können mit der Shellvariablen `-' angezeigt werden ( echo$-).

Wenn keine Optionen angegeben sind, werden alle Shellvariablen mit ihren Werten angezeigt.

shift

Syntax: shift [ n]    

Die shift-Shellfunktion verschiebt (shiftet) die Positionsparameter um n Stellen nach links. Die herausgeschobenen Parameter sind verloren. Wenn keine Anzahl angegeben ist, wird um eine Stelle geshiftet.

source

Syntax: source Datei    

Die source-Shellfunktion läßt die Shell das Shellscript Datei abarbeiten. Dabei wird kein neuer Shell-Prozeß gestartet, sondern der Inhalt der Scriptdatei in den Eingabekanal der aktuellen Shell eingespeist. Diese Funktion kann auch durch einen einzelnen Punkt am Anfang der Kommandozeile ausgelöst werden.

suspend

Syntax: suspend [ - f ]    

Die suspend-Shellfunktion veranlaßt die Shell, auf das Signal SIGCONT zu warten. Wenn die Option ` -f' gesetzt ist, kann auch eine Loginshell mit dieser Funktion angehalten werden.

test

Syntax: test Ausdruck    

[ Ausdruck ]

Die Shellfunktion test bewertet den Ausdruck und liefert Null, wenn der Ausdruck wahr (!) ist und Eins, wenn er falsch ist. Dieser Unterschied zu der gängigen Definition der Wahrheitswerte in C ist für die Shellprogrammierung normal! (Siehe auch im Abschnitt über den Status der Kommandos auf Seite gif)

Ein Ausdruck kann einen einstelligen (unären) oder einen zweistelligen (binären) Operator enthalten. Einstellige Operatoren benötigen ein einziges Argument, zweistellige Operatoren stehen zwischen zwei Argumenten. Unäre Operatoren dienen oft zum Ermitteln des Zustandes einer Datei.

Außerdem können mehrere Ausdrücke noch durch spezielle Operatoren verknüpft werden.

Folgende Operationen können ausgeführt werden:

-b Datei
ist wahr, wenn die Datei ein Blockdevice ist
-c Datei
ist wahr, wenn die Datei ein Zeichendevice ist
-d Datei
ist wahr, wenn die Datei ein Verzeichnis ist
-e Datei
ist wahr, wenn die Datei existiert
-f Datei
ist wahr, wenn die Datei eine einfache Datei (plain file) ist
-g Datei
ist wahr, wenn bei der Datei das SGID Bit gesetzt ist
-k Datei
ist wahr, wenn bei der Datei das ``sticky''-Bit gesetzt ist
-L Datei
ist wahr, wenn die Datei ein symbolischer Link ist
-p Datei
ist wahr, wenn die Datei eine benannte Pipeline (Named Pipe) ist
-r Datei
ist wahr, wenn die Datei existiert und lesbar ist
-s Datei
ist wahr, wenn die Datei existiert und größer als Null Bytes ist
-S Datei
ist wahr, wenn die Datei ein ``Socket'' ist
-t Dateinummer
ist wahr, wenn die Datei mit der Dateinummer für ein Terminal geöffnet ist. Wenn keine Nummer angegeben ist, wird Nummer 1 (Standardausgabe) angenommen
-u Datei
ist wahr, wenn die Datei existiert und das SUID Bit gesetzt ist
-w Datei
ist wahr, wenn die Datei existiert und beschreibbar ist
-x Datei
ist wahr, wenn die Datei existiert und ausführbar ist
-O Datei
ist wahr, wenn die Datei existiert und im Eigentum des Anwenders ist, unter dessen UID das test-Shellkommando läuft
-G Datei
ist wahr, wenn die Datei existiert und im Eigentum des Benutzers ist, unter dessen GID das test-Shellkommando läuft
Datei1 -nt Datei2
(newer than) ist wahr, wenn die Datei1 neuer ist als die Datei2
Datei1 -ot Datei2
(older than) ist wahr, wenn die Datei1 älter ist als die Datei2
Datei1 -ef Datei2
(equal to file) ist wahr, wenn Datei1 und Datei2 die gleiche Inode auf dem gleichen Device belegen
-z Zeichenkette
ist wahr, wenn die Länge der Zeichenkette Null ist
-n Zeichenkette
ist wahr, wenn die Länge der Zeichenkette nicht Null ist
Zeichenkette
ist auch wahr, wenn die Länge der Zeichenkette nicht Null ist, es wird also nicht der (eventuell numerische) Inhalt der Variablen getestet
Zeichenkette1 = Zeichenkette2
ist wahr, wenn die Zeichenketten gleich sind
Zeichenkette1 != Zeichenkette2
ist wahr, wenn die Zeichenketten nicht gleich sind
! Ausdruck
ist wahr, wenn der Ausdruck falsch ist
Ausdruck1 -a Ausdruck2
ist wahr, wenn Ausdruck1 UND Ausdruck2 wahr sind
Ausdruck1 -o Ausdruck2
ist wahr, wenn Ausdruck1 ODER Ausdruck2 wahr ist
Argument1 OP Argument2
OP steht hier für einen der arithmetischen Vergleich -eq, -ne, -lt, -le, -gt und -ge (gleich, ungleich, kleiner, kleinergleich, größer, größergleich) Der Ausdruck ist wahr, wenn die Relation von Ausdruck1 und Ausdruck2 stimmt.

times

Syntax: times    

Das Shellkommando times gibt die verbrauchte Benutzer- und Systemzeit jeweils für die Shell und für die von der Shell aus gestarteten Prozesse an.

trap

Syntax: trap [ Kommando]   [ Signal]
trap - l     

Die Shellfunktion trap fängt das angegebene Signal ab und führt das Kommando aus. Wenn kein Signal benannt ist, werden alle Signale zurückgesetzt. Wenn als Kommando die leere Zeichenkette angegeben ist, wird das damit angegebene Signal von der Shell und von allen Kommandos, die von dieser Shell ausgeführt werden, ignoriert.

Das Signal kann entweder als Zahl oder mit seinem Namen angegeben werden. Eine Liste aller möglichen Signale kann vom Shellkommando trap mit der Option ` -l' ausgegeben werden.

Wenn das Signal EXIT (0) angegeben ist, wird das Kommando als letztes vor der Beendigung der Shell ausgeführt.

Wenn keine Argumente angegeben sind, wird eine Liste aller ``getrapten'' Signale und der damit verbundenen Kommandos ausgegeben.

type

Syntax: type [ - atp]\ [- all]     [- type | - path] [ Name]

Die Shellfunktion type gibt an, wie der angegebene Name von der Shell interpretiert würde, wenn er in der Kommandozeile an der Position eines Kommandos stünde (alias, Scriptfunktion, Shellfunktion (builtin), Datei). Wenn der Name nicht gefunden wird, gibt type nichts aus.

Mit der Option - type wird nur ein Wort für den Kommandotyp entsprechend den oben genannten Möglichkeiten ausgegeben.

Wenn die Option - path benutzt wird, gibt die Shellfunktion den kompletten Pfadnamen des benannten Kommandos aus. Wenn es kein externes Kommando mit dem Namen gibt, wird nichts ausgegeben.

Die Option - all veranlaßt die Shellfunktion nicht nur die erste Fundstelle eines passenden Kommandos anzuzeigen, sondern alle möglichen. Mit der Option - path kann dabei zusätzlich die Ausgabe auf externe Kommandos eingeschränkt werden.

typeset

  Siehe declare

ulimit

Syntax: ulimit [- SHacdfmnpstuv   [ Limit]]  

Die Shellfunktion ulimit erlaubt die Kontrolle über die von der Shell und den daraus gestarteten Programmen benutzten Systemressourcen.

-S
setzt ``weiche'' Grenzen; die Veränderung solcher Grenzen innerhalb des durch ``harte'' Grenzen gegebenen Rahmens ist jederzeit möglich
-H
setzt ``harte'' Grenzen; eine einmal gesetzte harte Grenze kann nicht nach oben erweitert werden
-a
zeigt alle eingestellten Grenzwerte an
-c
schränkt die Größe des Speicherabzugs (core) bei einem Programmabsturz ein  
-d
schränkt die maximale Größe des Datensegments jedes einzelnen Prozesses ein, der von dieser Shell aus gestartet wird; der Versuch eines Prozesses über diese Grenze hinaus Speicher zu alloziieren ist erfolglos
-f
verbietet dem Anwender, Dateien über einer bestimmten Größe zu erzeugen; ist nur im Extended-2 Filesystem implementiert
-n
schränkt die maximale Anzahl offener Dateien jedes einzelnen von dieser Shell gestarteten Prozesses ein
-m
nicht implementiert; ist dafür vorgesehen, die Größe des residenten (nicht auszulagernden) Teiles der Prozesse einzuschränken
-p
zeigt die Größe des Pipeline-Puffers (in 512 Byte Blöcken) an; dieser Wert kann nicht verändert werden
-s
schränkt den Stapelspeicher (Stack) jedes einzelnen von dieser Shell aus gestarteten Prozesses auf eine bestimmte Größe ein
-t
schränkt die verfügbare CPU-Zeit (User und System) jedes einzelnen Prozesses auf die angegebene Anzahl Sekunden ein
-u
schränkt die Anzahl der Prozesse je Benutzer ein; dabei werden auch die von anderen Shells gestarteten Prozesse des selben Benutzers mitgezählt
-v
zeigt das Gesamtlimit des virtuellen Speichers für jeden aus dieser Shell gestarteten Prozeß an

Die Grenzen werden in Kilobytes angegeben, wenn oben keine andere Einheit genannt ist. Wenn beim Aufruf keine Grenze bestimmt wird, gibt ulimit die aktuelle Grenze an.

umask

Syntax: umask [ -S] [ Modus]      

Die Shellfunktion umask setzt die Maske, mit der die Zugriffsrechte auf Dateien und Verzeichnisse unmittelbar nach ihrer Erzeugung durch einen von dieser Shell kontrollierten Prozeßgif bestimmt werden. Die in der Maske gesetzten Bits werden bei den Zugriffsrechten für eine neue Datei (oder ein neues Verzeichnis) gelöscht (sie werden maskiert).

Die Maske kann als Oktalzahl oder in der beim Kommando chmod auf Seite gif angegebenen Form angegeben werden. Wenn kein Wert angegeben ist, wird die aktuelle Maske angezeigt. Wenn die Option ` -S' gesetzt ist, wird die aktuelle Maske in symbolischer Form ausgegeben.

Die Maske ` 022' verbietet beispielsweise allen Benutzern, außer dem Eigentümer selbst, das Schreiben in eine neu angelegte Datei oder ein Verzeichnis.

Bei der Erzeugung einer Datei wird die Funktion creat(2) mit einem Wert für die Permissions aufgerufen, beispielsweise 0777. Durch die umask werden die Schreibrechte für Gruppe und Andere gelöscht. Die übrigen Rechte kommen unverändert durch die Maske und erscheinen in der I-Node der frisch erzeugten Datei.

unalias

Syntax: unalias [ -a] [ Name   ...]  

Die Shellfunktion unalias hebt ein durch das alias-Shellkommando gesetztes Synonym für ein Kommando wieder auf.

Mit der Option ` -a' werden alle Synonyme gelöscht.

unset

Syntax: unset [- fv] [ Name ...]      

Mit der Shellfunktion unset werden Shellvariable oder Shellfunktionen aus dem Speicher entfernt. Mit der Option ` -f' wird die bezeichnete Funktion aus dem Speicher gelöscht, mit der Option ` -v' die entsprechende Variable. Wenn keine der Optionen angegeben ist, wird zuerst versucht, eine Variable mit passendem Namen zu entfernen, und nur wenn dieser Versuch fehlschlägt, wird die entsprechende Funktion aus der Shellumgebung entfernt.

Eine Variable bzw. eine Funktion kann nur mit dem unset-Kommando wirklich aus dem Speicher entfernt werden. Wenn eine Variable mit der leeren Zeichenkette `` '' belegt ist, gilt sie weiterhin als gesetzt.

Die Shellvariablen PATH, IFS, PPID, PS1, PS2, UID und EUID können nicht aus dem Arbeitsspeicher der Shell entfernt werden.

wait

Syntax: wait   [ Jobspezifikation | Prozeßnummer]  

Die Shellfunktion wait wartet auf die Beendigung des durch die Jobspezifikation (Jobnummer oder Kommandoname) oder die Prozeßnummer angegebenen Hintergrundprozesses und gibt dessen Status aus.

Wenn kein Job spezifiziert wurde, wartet die Shellfunktion auf alle aktiven Hintergrundprozesse.  


next up previous contents index
Next: Login- und andere Up: bash Previous: Wenn alles getan



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller