Befehle

Diese Liste gibt einen kurzen Überblick über einige wichtige Shellkommandos. Auch wenn viele der Meinung sind, dass grafische Oberflächen das Nonplusultra darstellen, kommt der Administrator nicht ohne die Shell aus. Sie ist ein extrem leistungsfähiges Werkzeug zur Konfiguration und Fehlersuche. In die Shell ist eine komplette Programmierumgebung installiert, mit der einzelne Kommandos in nahezu beliebiger Kombination zu Scripte zusammengefasst werden können. Das sind ausführbare Textdateien, die Kommandoabfolgen enthalten und mit einem einfachen Texteditor erstellt werden können. Mit solchen Scripten können komplexe Aufgaben automatisiert werden und so erheblich Arbeit sparen helfen. Auch der Anwender kann die Shell verwenden, oder möchten Sie z.B. 2000 Dateien in einer graphischen Oberfläche suchen, konvertieren, umbenennen und neu einsortieren? In der Shell ist das ein Einzeiler!
Diese Aufstellung ist weder vollständig noch (leider) fehlerfrei. Sie soll lediglich dazu dienen, einen kurzen Überblick zu den Befehlen zu geben und ersetzt natürlich nicht das Lesen der man-Pages der Befehle, denn die Implementierung der einzelnen Kommandos ist auf den verschiedenen LinuX-Systemen sehr unterschiedlich. Als Gedächtnisstütze und Suchhilfe ist sie jedoch allemal ausreichend. Ich habe dabei interne und externe Kommandos aufgenommen, da sie für die shell-Programmierung gleich wichtig sind. Die internen shell-Kommandos habe ich in der Liste durch einen vorangestellten Stern gekennzeichnet(*). Ich werde die Liste fortlaufend ergänzen (wann immer ich Zeit dazu finde) und bin für Hinweise zu Verbesserungen jederzeit dankbar.

Symbole ¦ (*) ! - Negation ¦  [ - Testen von Ausdrücken ¦  : - Leerbefehl ¦
A ¦ alias - Festlegung von Kurzformen für Kommandoaufrufe ¦
B ¦ basename - Ausschneiden von Dateinamen aus Pfadnamen ¦ bg - Prozesse in den Hintergrund schicken ¦ break - Schleifenabbruch ¦
C ¦ cal - Kalender ¦ (*) case - Mehrfachverzweigung ¦ cat - Dateiausgabe ¦ cd - Verzeichniswechsel ¦ chgrp - Gruppenzugehörigkeit von Dateien ändern ¦ chmod - Änderung der Zugriffsrechte von Dateien ¦ chown - Änderung des Besitzers von Dateien ¦ cmp - Vergleich zweier (Binär)Dateien ¦ continue - vorzeitiger Schleifendurchlauf ¦ cp - Kopieren von Dateien ¦ cut - Zeilenbereiche ausschneiden ¦
D ¦ date - Systemzeit abfragen und setzen ¦ (*) declare - bash-Variablen deklarieren ¦ dd - große Datenmengen kopieren und konvertieren ¦ df - Anzeige des freien Speicherplatzes ¦ diff - Unterschiede zwischen Dateien ermitteln ¦ dirname - Abschneiden von Dateinamen aus Pfadnamen ¦ (*) do - Beginn eines Schleifenbodys ¦ (*) done - Ende eines Schleifenbodys ¦ du - belegten Plattenplatz abfragen ¦
E ¦ echo - Ausgabe von Text ¦  egrep - erweiterte Suche mit regulären Ausdrücken ¦ (*) elif - Mehrfachentscheidung der if-Entscheidung ¦ (*) else - Alternativzweig der if-Entscheidung ¦ (*) esac - Abschluss der case-Mehrfachverzweigung ¦ eval - Wiederholtes Ausführen von shell-Kommandos ¦ exit - shell beenden ¦ export - Exportieren von Shell-Variablen ¦ expr - Berechnung und Vergleich von Werten ¦
F ¦ false - Rückgabewert false 1 ¦ fg - Hintergrundprozesse in den Vordergrund holen ¦  fgrep - schnelle Suche ohne reguläre Ausdrücke ¦ (*) fi - Abschluss der if-Entscheidung ¦  file - Dateityp feststellen ¦  find - Dateisuche ¦ (*) for - Zählschleife ¦
G ¦  grep - Suche mit regulären Ausdrücken ¦
H ¦  head - Ausgabe der Kopfzeilen einer Datei ¦
I ¦ id - Benutzer-IDs ¦ (*) if - Entscheidungen ¦ (*) in - Schlüsselwort in for,case,select ¦
J ¦ jobs - Anzeige der Hintergrundprozesse der shell ¦
K ¦ kill - Signale an Prozesse senden ¦
L ¦ let - bash-Arithmetik ¦
M ¦ mv - Verschieben von Dateien ¦
N ¦ newgrp - Gruppenzugehörigkeit wechseln ¦ nice - Kommandopriorität verändern ¦ nohup - Ignorieren von SIGHUP bei Kommandos ¦
O ¦ od - Anzeige von Dateiinhalten
P ¦ passwd - Ändern des Passwortes ¦ pwd - aktuelles Verzeichnis anzeigen ¦
Q
R ¦ read - Einlesen von Werten ¦ readonly - Schreibschutz für shell-Variablen ¦ return - Verlassen einer shell-Funktion ¦ rm - Löschen einer Datei ¦ rmdir - Löschen eines leeren Verzeichnisses ¦
S ¦ (*) select - einfache bash-Menüs ¦ seq - Zahlensequenz erzeugen ¦ shred - sicheres Löschen von Dateien ¦ sleep - Wartefunktion ¦ sort - Zeilenweises Sortieren von Daten ¦ stat - Ausgabe des Dateistatus ¦ sync - E/A-Puffer leeren ¦
T ¦ tac - reverse Dateiausgabe ¦ tee - Datenstrom duplizieren ¦  test - Testen von Ausdrücken ¦ (*) then - Programmblockeinleitung in der if-Entscheidung ¦ (*) time - Ausführungszeit messen ¦ touch - Änderung der letzten Zugriffszeit und  Änderungszeit einer Datei ¦ tr - Umsetzen von Zeichen ¦ trap - Einrichtung von Signalhandlern ¦ true - Rückgabewert true 0 Null ¦ tty - Terminalname anzeigen ¦ (*) typeset - bash-Variablen deklarieren ¦
U ¦ uniq - löscht mehrfach vorkommende Zeilen ¦ unset - entfernt Variablen ¦ (*) until - Kontrollkonstrukt für Schleifen ¦
V
W ¦  wait - Warten auf Hintergrundprozesse ¦  whatis - Kurzhinweis zu Kommandos ¦  wc - Zeichen zählen ¦  which - Kommandosuche ¦ (*) while - Kontrollkonstrukt für Schleifen ¦
X
Y
Z

Befehlsübersicht



Symbole




!Negation des exit-status
! Kommando

Die Verwendung des Operators ! vor einem Kommando bewirkt eine Negation des exit-status des Kommandos. Aus dem exit-status 0 (Null) true wird der exit-status 1 false. Sollte das Kommando einen exit-status >0, also false liefern, so wird daraus durch das vorangestellte ! eine 0 (Null) true. Dieser Operator ist z.B. bei if-Entscheidungen sinnvoll.




[Testen von Ausdrücken
[ Ausdruck ]

Das Kommando [ ist eine verkürzte Schreibweise für das Kommando test. Beim Aufruf des Komandos [ wird alles bis zum nächsten folgenden ] als Ausdruck interpretiert. Da es sich um Kommandonamen handelt, muss man darauf achten, dass [ links und rechts von Trennzeichen (Leerzeichen oder Tabulatoren) umgeben ist, damit es auch als Kommando erkannt wird. Vor dem ] muss ebenfalls ein Trennzeichen (Leerzeichen oder Tabulator) und dahinter ein Leerzeichen, Tabulator, Semikolon oder Zeilenumbruch folgen. Außerdem sollte man Zeichenketten auf jeden Fall in Hochkommata einschliessen, da diese ja selbst [,] und Leer- oder Tabulatorzeichen enthalten können. Um diese zu quoten und somit unliebsame Quereffekte zu vermeiden, sollte man sich die Schreibweise mit Hochkommata grundsätzlich angewöhnen, das gilt für die anderen Kommandos die mit Zeichenketten arbeiten in ähnlicher Weise. Bei einem Fehler in der Schreibweise erzeugt die bash eine Fehlermeldung. Mit [ können Eigenschaften von Dateien getestet werden oder Zeichenketten und numerische Werte miteinander verglichen werden. Es stehen Dabei folgende Vergleichsoperatoren zur Verfügung:

OperatorBedeutung
-b Dateiwahr, wenn die Datei existiert und eine blockorientierte Gerätedatei ist (z.B. /dev/hda1)
-c Dateiwahr, wenn die Datei existiert und eine zeichenorientierte Gerätedatei ist (z.B. /dev/ttyS0)
-d Dateiwahr, wenn die Datei existiert und ein Verzeichnis ist
-f Dateiwahr, wenn die Datei existiert und eine normale Datei ist
-g Dateiwahr, wenn die Datei existiert und das Set-Group-ID-Bit gesetzt ist
-k Dateiwahr, wenn die Datei existiert und das Sticky-Bit gesetzt ist
-p Dateiwahr, wenn die Datei existiert und eine Named-Pipe ist
-r Dateiwahr, wenn die Datei existiert und lesbar ist
-s Dateiwahr, wenn die Datei existiert und mindestens ein Zeichen enthält
-u Dateiwahr, wenn die Datei existiert und das Set-User-ID-Bit gesetzt ist
-w Dateiwahr, wenn die Datei existiert und schreibbar ist
-x Dateiwahr, wenn die Datei existiert und ausführbar ist
-n Zeichenkettewahr, wenn die Zeichenkette mindestens ein beliebiges Zeichen (auch Leerzeichen) enthält
-z Zeichenkettewahr, wenn die Zeichenkette ein NULL-String ist, dh die Länge 0 besitzt
Zeichenkette1 = Zeichenkette2wahr, wenn die Zeichenketten identisch sind
Zeichenkette1 != Zeichenkette2wahr, wenn die Zeichenketten nicht identisch sind
Wert1 -eq Wert2wahr, wenn Wert1 und Wert2 gleich sind (equal)
Wert1 -ne Wert2wahr, wenn Wert1 und Wert2 ungleich sind (no equal)
Wert1 -lt Wert2wahr, wenn Wert1 kleiner als Wert2 ist (less then)
Wert1 -gt Wert2wahr, wenn Wert1 größer als Wert2 ist (greater then)
Wert1 -le Wert2wahr, wenn Wert1 kleiner oder gleich Wert2 ist (less equal)
Wert1 -ge Wert2wahr, wenn Wert1 größer oder gleich Wert2 ist (greater equal)
-t Kanalnummerwahr, wenn die Kanalnummer geöffnet und mit einem Terminal verknüpft ist.

Die verschiedenen Testformen können ihrerseits wieder durch folgende logische Operatoren verknüpft werden

OperatorBedeutung
!logische Verneinung des Tests (Negation)
-alogische UND-Verknüpfung zweier Tests
-ologische ODER-Verknüpfung zweier Tests

Durch Klammerung mit runden Klammern können die einzelnen Testausdrücke gruppiert werden, sodass komplexe Testmuster erstellt werden können. Zu beachten ist jedoch, dass die runde Klammer ein Sonderzeichen der shell ist und eine Subshell aufrufen würde. Deshalb sind alle runden Klammern innerhalb eines Testausdruckes durch einen vorangestellten backslash (\) zu quoten. Das Ergebis des Vergleichs wird als exit-status zurückgegeben. Hierbei gilt:

exit-statusBedeutung
0Das Ergebnis des Vergleiches ist wahr true
1Das Ergebnis des Vergleiches ist falsch false
2 Bei der Ausführung des Kommandos ist ein Fehler aufgetreten. Eine Fehlerausgabe erfolgt auf Standarderr. Da das Script, in dem [ verwendet wird trotzdem weiter ausgeführt wird, sollte man beim Design des Scriptes beachten, dass nun z.B. bei einer if-Entscheidung der else-Zweig durchlaufen und das Script dann weiter ausgeführt wird, obwohl der Test fehlerhaft war. Wenn dort keine Vorkehrungen getroffen wurden, kann das zu unvorhersehbaren Reaktionen des Scriptes führen.
128+NDas Kommando wurde durch das Signal Nummer N unterbrochen



:Leerbefehl NOP
: [Parameter]

Der Doppelpunkt ist ein Leerbefehl, der selbst keinerlei Funktion besitzt, die Shell aber zur Ausführung der verschiedenen Expansionen zwingt. Denkbar wäre das zB. für die Ausführung arithmetischer Expansionen ähnlich dem let-Kommando.
Beispiel:
: $(( TEST=TEST+8))



A




ALIASFestlegung von Kurzformen für Kommandoaufrufe
alias [Name[=Wert]]

In der shell (bash) können durch das Kommando alias Kurzformen für den Aufruf von Kommandos oder Programme definiert werden. Die bash durchsucht die Eingabezeile nach Alias-Namen und ersetzt (expandiert) sie durch den Ersetzungstext Wert. Das Kommando alias kann auf verschiedene Weise genutzt werden:
AufrufBedeutung
alias Beim Aufruf ohne Namen listet alias alle omentan durch den User definierten Aliase auf
alias Name Beim Aufruf mit einem Alias-Namen zeigt alias die omentane Definition des Alias Namen an. Sollte kein Alias mit diesem Namen existieren, so wird ein exit-status >0 zurückgegeben.
alias Name=Wert Bei diesem Aufruf wird ein Alias mit dem Aliasnamen Name definiert. Wenn die bash diesen Alias-Namen in der Eingabezeile findet, wird er durch das Kommando in Wert ersetzt. Wenn der Kommandostring Wert Leerzeichen oder Sonderzeichen besitzt, so ist er in Anführungszeichen oder Hochkomata zu setzen. Endet der Ersetzungtext Wert auf ein Leerzeichen, so wird auch das darauf folgende Wort in der Eingabezeile auf ein Alias untersucht.



B




BASENAMEAusschneiden von Dateinamen aus Pfadnamen
basename Pfadname [SUFFIX]
basename OPTION

Das Kommando basename extrahiert aus einem Pfadnamen den eigentlichen Dateinamen heraus. Das Kommando trennt also den letzten Teil des Pfadnamen ab und gibt ihn über den Standardout aus. Durch die Angabe eines SUFFIX wird dieses vom gefundenen Dateinamen abgezogen.
Siehe auch dirname.




BGProzesse in den Hintergrund schicken
bg [Jobnummer]

it dem Kommando bg wird in der shell ein Prozeß im Hintergrund asynchron weiter abgearbeitet. In der bash ist jedes Hintergrundkommando durch eine eindeutige Jobnummer identifiziert. Durch das Kommando fg kann ein Hintergrundprozeß in den Vordergrund als synchroner Prozeß geholt werden. Als Vordergrundkommando werden sie durch das Signal SIGSTOP (oft Tastenkombination <Strg>+z) angehalten. Anschließend kann der Prozeß it dem Kommando bg wieder in den Hintergrund geschickt werden. Der Job kann auf verschiedene Weise identifiziert werden:

JobangabeBedeutung
%NummerProzeß mit der angegebenen Jobnummer
%TextProzeß dessen Kommandozeile mit Text beginnt
%?TextProzeß, dessen Kommandozeile den Text enthält
%%aktueller Prozeß
%-vorhergehender Prozeß

Siehe auch jobs, wait und fg.




BREAKSchleifenabbruch
break [Zahl]

Mit dem Kommando break können Schleifen vorzeitig beendet werden. In der bash sind das die for, while, until- Schleife und der select-Befehl. Mit dem Parameter Zahl kann bestimmt werden, wie viele Schleifen beendet werden sollen. Ohne Parameter wird nur die aktuelle Schleife verlassen.



C




CALKalender
cal [[Monat] Jahr]

Das Kommando cal zeigt einen Kalender an. Wird cal ohne Parameter aufgerufen, so erscheint eine Übersicht des aktuellen Monats (Systemdatum date). Wird nur eine Zahl als Parameter angegeben, so wird sie als Jahreszahl interpretiert und es wird der Jahreskalender für dieses Jahr ausgegeben. Bei zwei Parametern wird die erste als Monat und die zweite als Jahreszahl interpretiert und der Kalender des entsprechenden Monats ausgegeben. Wenn ungültige Werte angegeben werden, so erzeugt cal den exit-status > 0.




CASEMehrfachverzweigung
case Variable in
 Muster1) Kommandos;;
 Muster2) Kommandos;;
 *) Kommandos;;
esac

Durch das Steuerkonstrukt case wird ein Variablenwert mit einer Reihe von Mustern verglichen. Trifft eines der Muster auf den Variablenwert, so werden die Kommandos die nach dem Muster zwischen der runden Klammer und dem Doppelsemikolon ausgeführt. Das Muster kann die Jokerzeichen *,?,[...] enthalten. Durch die eckigen Klammern können Bereichsangaben definiert werden. Mehrere Muster können mit einem ¦ logisch Oder verknüpft werden. Sollte kein Muster zutreffen, so bietet * eine Defaultverzweigung.




CATDateiausgabe
cat [-s] [Datei ....]

Das Kommando liest den Inhalt einer oder mehrerer Dateien und gibt sie über den Standardout aus. Wird keine Datei oder der Parameter - angegeben, so liest cat die Daten von Standardin. Die Option -s unterdrückt auftretende Fehlermeldungen.




CDVerzeichniswechsel
cd
cd -
cd [Verzeichnis]

Mit cd wird das aktuelle Verzeichnis gewechselt. Ziel ist das Verzeichnis, das als Parameter mitgegeben wird. Ohne Angabe eines Parameters wechselt cd in das Homeverzeichnis des Users. Mit dem Parameter - wird in das Verzeichnis OLDPWD gewechselt. Im Normalfall ist dass das Verzeichnis des letzten cd-Aufrufs. Die Pfadangabe kann absolut (z.B. /lib/modules) oder relativ (z.B. ../modules) erfolgen.




CHGRPÄnderung der Gruppenzugehörigkeit von Dateien
chgrp Gruppe Datei [Datei ....]

Der Besitzer der Datei (oder root) kann die Zugehörigkeit einer Datei zu einer Gruppe ändern. Der erste Parameter Gruppe ist der Name oder die Nummer der neuen Gruppe. Beide Werte müssen in der Datei /etc/group eingetragen sein. Der zweite Parameter und die eventuell folgenden Parameter Datei sind die Dateinamen.




CHMODÄnderung der Zugriffsrechte von Dateien
chmod Rechte Datei [Datei ...]

Mit dem Kommando chmod können die Zugriffsrechte einer oder mehrerer Dateien durch den Besitzer oder root geändert werden. Das Kommando chmod akzeptiert zwei Schreibweisen für die Rechtevergabe. Eine symbolische und eine oktale Schreibweise. Die symbolische Schreibweise besitzt folgende Syntax:
[ugoa][+-=][rwxs]
Dabei bedeuten u-Besitzer, g-Gruppe, o-Other (Rest der Welt) und a-All (ugo zusammen). Die Rechte können addiert (+), subtrahiert (-) oder absolut (=) gesetzt werden. Die Zugriffsrechte selbst stehen für r-Lesen, w-Schreiben, x-Ausführen und s-SETUID/SETGID. Mehrere symbolische Äderungen werden durch Komma voneinander getrennt.
Bei der oktalen Schreibweise ist jeder Stelle des Oktalcodes ein Recht zugewiesen. Die einzelnen Bits des Oktalcodes haben dabei folgende Bedeutung: Durch Verknüpfung der Bits können mehrere Rechte zugleich verändert werden.
WertBedeutung
4000Set-UID-Bit
2000Set-GID-Bit
1000Sticky-Bit
0400Leserecht für den Besitzer
0200Schreibrecht für den Besitzer
0100Ausführungsrecht für den Besitzer
0040Leserecht für die Gruppe
0020Schreibrecht für die Gruppe
0010Ausführungsrecht für die Gruppe
0004Leserecht für Other (Alle)
0002Schreibrecht für Other (Alle)
0001Ausführungsrecht für Other (Alle)



CHOWNÄnderung des Besitzers von Dateien
chown Besitzer Datei [Datei ...]

Mit chown kann der Besitzer einer oder mehrerer Dateien verändert werden. Der zukünftige Besitzer muss in der Datei /etc/passwd eingetragen sein. Die Änderung darf nur vom Besitzer der Datei oder root vorgenommen werden. Wenn das SETUID oder das SETGID-Bit gesetzt sind, so wird dieses zurückgesetzt.




CMPVergleich von Dateien
cmp [-l] [-s] Datei1 Datei2

Das Kommando cmp vergleicht den Inhalt zweier Dateien miteinander. Ohne Angabe einer Option, endet cmp bei dem ersten auftretenden Unterschied und zeigt die Nummer des Zeichens und die Zeilennumer an, in der der Unterschied gefunden wurde. Mit der Option -l (list) werden die Unterschiede zwischen beiden Dateien Dateien aufgelistet. In einer Zeile erscheinen pro gefundenen Unterschied als erstes die Zeichenposition, der oktal kodierte Zeichencode des Zeichens aus Datei1 und der oktal kodierte Zeichencode des Zeichens aus Datei2, die an dieser Stelle gefunden wurden. Mit der Option -s (silent) wird die Ausgabe der Fehler unterdrückt. Der exit-status macht eine Aussage über das Vergleichsergebnis. Der exit-status 0 (Null, wahr) bedeutet, dass die Dateien identisch sind. Der exit-status 1 (false) gibt an, das die Dateien sich unterscheiden. cmp akzepriert auch Dateien unterschiedlicher Länge, sowie Binärdateien.




CONTINUEvorzeitiger Schleifendurchlauf
continue [Zahl]

Mit continue wird der nächste Schleifendurchlauf veranlasst. In der bash ist continue in der for, while, until-Schleife und innerhalb der select-Anweisung verwendet werden. Die bash fährt nach dem Kommando continue mit dem nächsten Schleifentest fort. Mit dem Parameter Zahl kann angegeben werden, wie viele Schleifen verlassen werden sollen. Wird continue ohne Parameter aufgerufen, so ist das mit continue 1 identisch.




CPKopieren von Dateien
cp Datei1 Datei2
cp Datei1 [Datei2 ...] Verzeichnis

In der ersten Form wird die Datei1 unter dem neuen Namen Datei2 zusätzlich abgelegt. Dabei kann sich der ursprüngliche Dateiname als auch der Pfad der Datei ändern. Wenn die Zieldatei schon existiert, wird sie ohne Nachfrage mit der Datei1 überschrieben.
In der zweiten Form werden eine oder mehrere Dateien unter dem selben Namen in ein anderes Verzeichnis hineinkopiert. Auch hier werden eventuell bereits vorhandene Dateien mit den selben Namen überschrieben. Die Pfadnamen können absolut und relativ angegeben werden.




CUTZeilenbereiche ausschneiden
cut -cSpalten [Datei]
cut -fFelder [-dZeichen] [-s] [Datei]

Mit cut können Teile von Zeilen einer Datei ausgeschnitten werden. Wenn keine Zeile angegeben wird, erwartet cut die Daten auf Standardin. Es wird für jede Zeile der gleiche Bereich ausgeschnitten und das Ergebnis an Standardout ausgegeben. Der Bereich kann absolut in Spalten oder relativ durch Angabe von Feldern, die durch das Trennzeichen Zeichen separiert sind, angegeben werden. Wird kein Trennzeichen angegeben, so wird das Tabulatorzeichen genutzt. Die Optionen -f und -c erwarten die Angabe einer Liste von werten. Diese Liste erlaubt unterschiedliche Schreibweisen:

Mit der Option -d kann ein anderes Trennzeichen als der tabulator definiert werden. Wenn es sich um ein Sonderzeichen handelt, dann muss es gequotet werden. Mit der Option -s werden Zeilen die das Trennzeichen nicht enthalten vollständig ignoriert.



D




DATEAbfragen und Setzen von Uhrzeit und Datum
date [+Format] date mmddHHMM[yy]

Mit dem Kommando date können Uhrzeit und Datum des Systems gestzt werden. In der ersten Form kann die Systemzeit abgefragt werden. Wird kein Format angegeben, so wird ein Standardformat gewählt. Mit Hilfe des Parameters Format kann die Ausgabe der Systemzeit entsprechend formatiert werden. Beginnt der erste Parameter mit +, so interpretiert date diesen als Formatierungszeichenkette. Die Formatierungszeichenkette kann alle Zeichen (also auch Text) und entsprechende Escapesequenzen enthalten, die eine besondere Bedeutung besitzen. Die Escapesequenzen werden durch ein Prozentzeichen eingeleitet, dem ein Steuerungszeichen folgt. Bei der Ausgabe ersetzt date die Escapeseuenzen durch entsprechende Teile aus Uhrzeit und Datum des Systems. Folgende Steuerungszeichen sind verfügbar:
SteuerungszeichenBedeutung
aabgekürzter Name des Wochentages
Avoller Name des Wochentages
babgekürzter Name des Monats
Bvoller Name des Monats
cStandardformat für Datum und Uhrzeit
CJahrhundert 00..99
dTag des Monats 01...31
Dentspricht %m/%d/%y
eTag des Monats 1..31
Fentspricht %Y-%m-%d
habgekürzter Name des Monats
HStundenangabe im 24-Stunden Format 00..23
IStundenangabe im 12-Stunden Foramt 00..12
jTag des Jahres 001..366
kStundenangabe im 24-Stunden Format 0..23
lStundenangabe im 12-Stunden Format 0..12
mNummer des Monats 01..12
MMinutenangabe 00..59
nZeilenschaltung
NNanosekunden 000000000..999999999
pAngabe PM oder AM
PAngabe pm oder am
rUhrzeit im 12-Stunden Format hh:mm:ss [AM]
RUhrzeit im 24-Stunden Formt hh:mm
sAnzahl der Sekunden seit dem 1.1.1970 0.00 UTC
SSekunden 00..60
tTabulator
TUhrzeit im 24-Stunden Formt hh:mm:ss, entspricht %H:%M:%S
uTag der Woche Montag=1, Dienstag=2, ..., Sonntag=7
UKalenderwoche mit Sonntag als erstem Wochentag 00..53
VKalenderwoche mit Montag als erstem Wochentag 01..53
wTag der Woche Sonntag=0, Montag=1,..., Sonnabend=6
WKalenderwoche mit Montag als erstem Wochentag 00..53
yletzte zwei Stellen der Jahreszahl
YJahreszahl, z.B. 2006
znumerische Angabe der Zeitzone (+0200)
ZName der Zeitzone

Sollte der Formatstring Leerzeichen oder Sonderzeichen enthalten, so ist er in Anführungszeichen zu setzen.
In der zweiten Form setzt date das Systemdatum neu. Das darf nur root. Bei diesem Aufruf muss ein bestimmtes Format eingehalten werden. Die Zeitangabe wird in numerischer Form mmddHHMM[yy[yy]] in der Reihenfolge Monatsnummer, Tag im onat, Stunde, Minute, evtl Jahr




DECLAREDeklarieren von bash-Variablen
declare [Option] [Name[=Wert]]

Variablen sind allgemein untypisiert und werden bei ihrer ersten Benutzung automatisch declariert. Mit dem Kommando declare ist es möglich, den Variablen verschiedene Attribute und gleichzeitig einen Wert zuzuweisen. Allgemein ist eine Deklarierung von Variablen und Arrays nicht notwendig.
declare kennt folgende Optionen:

OptionBedeutung
-a Die Variable wird als eindimensionales Array mit numerischem Index definiert. Als Index sind die natürlichen Zahlen einschließlig der Null zugelassen.
-A Die Variable wird als eindimensionales assoziatives Array definiert. Der Index ist dabei ein String.
-f Der Name bezeichnet eine Shell-Funktion.
-i Die Variable enthält Integerwerte.
-p Typ und Wert der Variable werden ausgegeben. Ohne Angabe eines Namens erfolgt die Angabe für alle in der bash definierten Variablen.
-r Die Variable ist nur lesbar, Schreiboperationen führen zu einer Fehlermeldung. Der Variable muss also vorher oder mit der Deklaration ein Wert zugewiesen werden, ansonsten ist die Variable schreibgeschützt und leer.
-t Trace (für Funktionen)
-x Die Variable ist eine Umgebungsvariable der bash (siehe export).

Die Kommandos declate und typeset sind identisch. Mit unset können die variablen wieder vernichtet werden.




DDKopieren und Konvertieren von Dateien
dd [Option=Wert]

dd wird hauptsächlich zum kopieren großer Datenmengen benutzt. dd kopiert die Daten blockweise ohne weitere Interpretation 1:1. Damit können z.B. Images von Partitionen gezogen werden oder physiche Kopien von einer Partition auf eine andere übertragen werden. Ferner kann dd Konvertierungen von Blockgrößen, Zeichensätzen usw vornehmen. dd kennt folgende Optionen:

SonderzeichenBedeutung
if=Datei if(inputfile) Über die angegebene Datei werden die Daten gelesen. Der Dateiname kann auch zu einer Gerätedatei gehören (z.B. /dev/fd0) von dem die Daten gelesen werden. Ohne den Parameter if liest dd vom Standardin.
of=Datei of(outputfile) Die Ausgabe erfolgt über die angegebene Datei. Der Dateiname kann auch zu einer Gerätedatei gehören (z.B. /dev/fd0) auf die die Daten geschrieben werden. Ohne den Parameter of schreibt dd auf Standardout.
ibs=Zahl Zahl gibt die Größe des Eingabepuffers an. Damit wird festgelegt, wieviele Zeichen mit einem mal eingelesen werden können.
obs=Zahl Zahl gibt die Größe des Ausgabepuffers an
cbs=Zahl Größe des Umsetzungspuffers (z.B. für ASCII->EBCDIC)
bs=Zahl Setzt ibs und obs auf der Wert Zahl.
skip=Zahl Beim Einlesen wird die angegebene Zahl von Blöcken übersprungen.
seek=Zahl Bei der Ausgabe wird die angegebene Zahl von Blöcken übersprungen.
count=Zahl Anzahl der zu lesenden Blöcke.
conv=Auswahl Der Option können eine oder mehrere durch Komma getrennte Auswahlen mitgegeben werden. Dadurch kann festgelegt werden, welche Konvertierungen der Daten vorgenommen werden sollen. Es sind folgende Schl&umml;sselworte erlaubt.
  • ascii Die Eingabedaten sollen in den ASCII-Zeichesatz konvertiert werden.
  • ebcdic Die Eingabedaten sollen in den EBCDIC-Zeichensatz konvertiert werden.
  • ibm Die Eingabedaten sollen in den IBM-Zeichensatz konvertiert werden.
  • lcase Alle Großbuchstaben werden in Kleinbuchstaben umgesetzt.
  • ucase Alle Kleinbuchstaben werden in Großbuchstaben umgesetzt.
  • swab Die Bytereihenfolges wird vertauscht. Dabei wechseln jeweils zwei Bytes ihre Position.
  • noerror Bei Konvertierungsfehlern soll nicht gestoppt werden.

Die Angaben der Parameter ibs, obs, cbs und bs gelten als Byteanzahl, wenn keine Einheit angegeben wird. Durch anhängen des Buchstaben k wird die Zahl als Kilobyte und duch den Buchstaben b als Blockanzahl (512Byte default, wenn keine andere Blockgröße festgelegt wird.) interpretiert.




DFAnzeigen des freien Festplattenspeichers
df [Optionen] [Gerätedatei(en)]

Das Kommando df gibt einen Überblick über die Belegung des gemounteten Festplattenplatzes. Ohne Angabe einer Gerätedatei wie z.B. /dev/hda1 listet df alle gemounteten Festplattendevices auf und zeigt Informationen zur Gesamtgröße sowie dem belegten und freien Platz an. Durch die Angabe einer oder mehrerer existierender Gerätedateien wird die Anzeige auf diese beschränkt. Mit mehreren Optionen kann das Verhalten von df beeinflusst werden.




DIFFUnterschiede zwischen Dateien ermitteln
diff [Optionen] Datei1 Datei2

Mit diff können Unterschiede zwischen zwei Dateien ermittelt werden. Als Ausgabe erscheint eine Beschreibung der Unterschiede. Diese Beschreibung enthält Informationen welche Zeilen in Datei1 verändert, gelöscht oder eingefügt werden müssten, damit sie mit Datei2 übereinstimmt. Bei einem Unterschied gibt diff zuerst eine kurze Information zur Position des Unterschiedes der Dateiinhalte der Form:
Zeilennummer(Datei1)[,Zeilennummer(Datei1)..] Kennung (adc) Zeilennummer(Datei2)[,Zeilennummer(Datei2)..]
aus, wobei Die Kennungen a,d und c für

Folgende Oprionen beeinflussen die Arbeitsweise von diff:

OptionBedeutung
-bLeerzeichen werden beim Vergleich nicht herangezogen
-eErzeugung eines ed-Scripts (ed-textorientierter Zeileneditor) mit dem beide Dateien zur Übereistimmung geführt werden.
-fUmkehrung der Option -e. Es wird ein ed-Script erstellt, dass Datei2 in Übereinstimmung mit Datei1 bringt.

Sollten beide Dateien identisch sein, so erzeugt diff den exit-status 0, wenn Unterschiede gefunden werden, wird der exit-status 1 zurückgegeben. Sollte ein Fehler während diff aufgetreten sein, so ist der exit-status 2.




DIRNAMEAbschneiden von Dateinamen aus Pfadnamen
dirname Pfadname
dirname OPTION

Das Kommando dirname schneidet den Dateinamen /dateiname am Ende eines Pfadnamen ab. Das Kommando trennt also den letzten Teil des Pfadnamen ab und gibt den verbleibenden Pfad über den Standardout aus. Mit der Ausgabe von . ist das aktuelle Arbeitsverzeichnis gemeint.
Siehe auch basename.




DO ... DONEProgrammsequenz für Schleifen
Schleifenkonstrukt do Kommando1; Kommando2; ... KommandoN; done

Mit do und done wird eine Programmsequenz innerhalb der Schleifenbefehle for, until und while eingeschlossen, die mehrfach ausgeführt werden soll. Die einzelnen Kommandos können als Liste in der Form
SCHLEIFENKOPF do Kommando1; Kommando2; ... KommandoN; done
oder auch über mehrere Zeilen verteilt notiert werden, also in der Form
SCHLEIFENKOPF
do
  Kommando1;
  Kommando2;
  ...
  KommandoN;
done
Innerhalb der Sequenz dürfen sich wiederum komplette Schleifen befinden, sodass diese auch geschachtelt werden können. Ein vorzeitiges Verlassen der Sequenz ist nur durch break oder den Abbruch des ganzen Scripts mit exit möglich. Mit continue kann ein neuer Schleifendurchlauf ausgelöst werden, noch bevor die ganze Sequenz abgearbeitet ist.




DUbelegten Plattenplatz abfragen
du [-a] [-s] [Datei(en) oder Verzeichnis(se)]

Das Kommando du zeigt die Anzahl der Blöcke an, die durch eine oder mehrere Dateien oder Verzeichnisse oder ganzer Verzeichnisbäume belegt werden. Die Blockgröße entspricht 512Bytes. Wird ein Verzeichnisname angegeben, so listet du rekursiv auch die Belegung für die Unterverzeichnisse mit auf. Wird keine Datei oder Verzeichnis angegeben, so bezieht sich du auf das aktuelle Verzeichnis. Mit -s kann die Rekursion für Unterverzeichnisse abgeschaltet werden. Mit -a erfolgt die Anzeige für alle Dateien und Unterverzeichnisse einzeln.




E




ECHOAusgabe von Text
echo [-n] [-e] Text

Das echo-Kommando gibt einen Text über den Standard-Ausgabekanal aus. An die Ausgabe wird ein Zeilenvorschub gehängt. Dieser kann mit der Option -n unterdrückt werden. Um Leer- und Sonderzeichen zu maskieren, muß der Text in Anführungszeichen oder Hochkommata eingeschlossen werden. Mit der Option -e werden im Text befindliche Sonderzeichen interpretiert. Folgende Sonderzeichen werden erkannt:

SonderzeichenBedeutung
\0NNNAusgabe eines oktal codierten ASCII-Zeichens
\\Ausgabe eines Backslashs (backslash)
\aFehlerzeichen (Glocke) (bel)
\bAusgabe eines Backspace (backspace)
\cEnde der Ausgabe und Unterdrückung des Zeilenvorschubs
\fAusgabe eines Seitenvorschubs (form feed)
\nAusgabe eines Zeilenvorschubs (new line)
\rAusgabe eines Return (carriage return)
\tAusgabe eines horizontalen Tabulators (horizontal tab)
\vAusgabe eines vertikalen Tabulators (vertical tab)
\eAusgabe eines ESC-Zeichens (escape)



EGREPerweiterte Suche mit regulären Ausdrücken
egrep [Optionen] [Suchmuster] [Datei(en)]

Das Kommando egrep arbeitet ähnlich wie das Kommando grep, jedoch mit wesentlich erweiterten Möglichkeiten. egrep durchsucht eine oder mehrere Dateien nach einem bestimmten Suchmuster. Wird keine Datei angegeben, so liest egrep den Datenstrom von Standardin. Eine Besonderheit gegenüber grep ist die Option -f. Damit kann statt eines Suchmusters eine Suchmusterdatei an egrep übergeben werden, aus der egrep die Suchmuster lesen kann. Folgende Optionen können bei egrep verwendet werden:

OptionBedeutung
-vAlle Zeilen, außer den Zeilen, die das Suchmuster enthalten, werden ausgegeben.
-cDie Anzahl der gefundenen Zeilen wird ausgegeben.
-iBei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden.
-lEs wird nur der Name der Dateien angezeigt, die das Suchuster enthalten.
-nDie Zeilen werden nummeriert.
-f SuchmusterdateiDas Suchmuster wird aus einer Datei gelesen.
-e SuchmusterDas Suchmuster wird mit einer Option eingeleitet. Das ist sinnvoll, wenn das Suchmuster mit einem - beginnt und sonst fälschlicherweise als Option interpretiert werden könnte.

Das Suchmuster kann verschiedene Sonderzeichen enthalten und damit einen regulären Ausdruck bilden. Damit können nicht nur festgelelegte Zeichen, sondern auch ganze Zeichengruppen in das Suchmuster aufgenommen werden. Folgende Sonderzeichen können verwendet werden.

OptionBedeutung
[...]Bereichsangabe für eine Menge von Zeichen, die an dieser Position erlaubt sind. Die zulässigen Zeichen werden ohne Trennzeichen aufgelistet.
[^...]Negation der Bereichsangabe. Es wird eine Menge von Zeichen aufgelistet, die an dieser Stelle nicht auftreten dürfen.
.Ein einzelnes, beliebiges Zeichen (auch Leerzeichen)
*Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Das Zeichen darf keinmal, einmal oder mehrmals vorkommen.
^Symbolisiert den Zeilenanfang innerhalb des Suchmusters.
$Symbolisiert das Zeilenende innerhalb des Suchmusters.
\{...\{ Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Es existieren drei unterschiedliche Möglichkeiten, die Anzahl festzulegen.
  1. \{n\} Das Zeichen muss genau n-mal vorkommen.
  2. \{n,\} Das Zeichen muss mindestens n-mal vorkommen.
  3. \{n,m\} Das Zeichen muss mindestens n-mal und höchstens m-mal vorkommen.
+Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Das Zeichen muss mindestens einmal vorkommen.
?Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Das Zeichen darf höchstens einmal vorkommen.
|logische ODER-Verknüpfung zweier Suchmuster. Muster1 | Muster2.
(...)Gruppierung von Mustern.

Um die Expansion der Sonderzeichen durch die shell zu verhindern, müssen die Sonderzeichen gequotet werden, oder das Suchmuster wird in Hochkommata oder Anführungszeichen eingeschlossen. Es sind die Besonderheiten der Parametersubstitution der shell zu beachten, da einige Sonderzeichen auch innerhalb der Kommata gelten. Diese sind dann zu quoten.
Siehe auch grep und fgrep.




ELIFMehrfachauswahl der if-Entscheidung
if .. then ... elif ... then ... elif ... then ... else ... fi

elif gehört zum Kontrollkonstrukt der if-Entscheidung und bildet die Einleitung einer Mehrfachauswahl. Nachdem die Bedingung im if-Zweig getestet wurde und je nach exit-status des Testkommandos der if-Zweig ausgeführt wurde oder nicht, wird die nächste mit elif definierte Bedingung getestet. elif verhält sich dabei wie ein weiteres if, und je nach exit-status des Testkommandos wird entweder der elif-Zweig nach then ausgeführt oder mit dem folgenden elif oder else die Bearbeitung fortgesetzt oder bei fi die if-Entscheidung verlassen.. Das Ende des elif-Programmblocks wird also entweder durch ein weiteres elif oder die Konstrukte else oder fi markiert. Siehe if.




ELSEAlternativzweig der if-Entscheidung
if .. then ... else ... fi

else gehört zum Kontrollkonstrukt der if-Entscheidung und bildet die Einleitung des Alternativzweiges. Dieser schliesst ein oder mehrere shell-Kommandos ein, die abgearbeitet werden, wenn keine der vorhergehende(n) if- oder elif-Entscheidungen ein true geliefert hat. Das Ende des else-Alternativzweiges wird durch fi festgelegt. Siehe if.




ESACAbschluss der case-Auswahl
case ..... esac

esac gehört zum Kontrollkonstrukt der case-Auswahl und bildet den Abschluss des ganzen Konstrukts. Siehe case.




EVALWiederholtes Auswerten von shell-Kommandos
eval [Argument(e)]

Mit dem Komando eval wird eine Eingabezeile nochmals durch die shell ausgewertet. Im Normalfall expandiert die shell die Eingabezeile und führt das Kommando dann aus. Wenn eine Variable aber den Namen einer Variable enthät (indirekte Adressierung), dann reicht das nicht aus. Mit eval wird die Eingabezeile ein zweites Mal ausgeführt. Sonderzeichen, die dabei nur einmal oder überhaupt nicht ausgewertet werden sollen, müssen deshalb ein oder mehrmals gequotet werden. Auch eine mehrfache Verwendung von eval in der Form
eval eval .....
ist möglich, führt jedoch schnell zu sehr unübersichtlichen quotungen.




EXITBeenden der aktuellen shell
exit [Rückgabewert]

Der Aufruf dieses Kommandos beendet die aktuelle shell. Wird das Kommando in einer login-shell aufgerufen, so meldet man sich dadurch ab. Dem Kommando exit kann als Parameter ein Rückgabewert (natürliche Zahl von 0...255) mitgegeben werden. Dieser Wert wird dem Elternprozess als exit-status mitgeteilt. Ein Rückgabewert 0(Null) wird von der shell als Ende ohne Fehler interpretiert.




EXPORTExportieren von Shell-Variablen in das Environment
export [Variablenname(n)]

Shell-Variablen sind grundsätzlich lokal definiert. Eine gestartete Subshell kennt diese lokalen Variablen nicht. Sollte das jedoch gewünscht sein, dann kann die Variable durch export in das Environment übertragen werden, das die Subshell von der aufrufenden shell erbt. Ohne Parameter zeigt export eine Liste der exportierten Variablen. Ein rückschreiben des Inhaltes einer exportierten Variable aus einer Subshell an die aufrufende Shell erfolgt nicht, dh, wenn die Subshell den Wert einer exportierten oder auch lokalen Variable verändert, merkt die aufrufende (Mutter)shell davon nichts. Eine Datenübertragung von der Subshell zur Parentshell ist damit nicht möglich. In der bash können Variablen und Shellfunktionen exportiert werden. Siehe dazu declare und typeset.




EXPRAuswerten und Berechnen von Ausdrücken
expr Argument Operator Argument

expr kann einfache Berechnungen und Vergleiche an numerischen Variablen und Zeichenketten vornehmen. Man sollte jedoch auf die Kommandos let und test zurückgreifen, da diese leistungsfähiger sind. expr führt die Operation mit den beiden Argumenten aus und gibt das Ergebnis über Standardout aus. Texte, die Ziffern enthalten, werden in numerische Werte umgewandelt. Für Berechnungen stehen folgende Operatoren zur Verfügung:

OperatorBedeutung
+Addition
-Subtraktion
*Multiplikation
/Division
%Modulo

Wenn ein Vergleichsoperator benutzt wird, dann gibt expr entweder 0 für falsch oder 1 für wahr aus. Für Vergleiche können folgende Operatoren genutzt werden:

OperatorBedeutung
=gleich
!=ungleich
<kleiner
>größer
<=kleiner oder gleich
>=größer oder gleich

Für Zeichenketten bietet expr den Operator : um Teile aus einer Zeichenkette auszuschneiden. Das linke Argument ist die Zeichenkette und das rechte Argument ein Pattern it einem Suchmuster für einen regulären Ausdruck. Als Ergebnis gibt expr die Anzahl der Zeichen der Zeichenkette zurück, die dem Suchmuster entsprechen. Werden im Pattern runde Klammern verwendet, so wird nicht die Anzahl, sondern der übereinstimmende Text selbst zurückgegeben. Auch hierfür bietet die bash effiziente und schnellere interne Kommandos.



F




FALSERückgabewert false, 1
false

Das Komando false gibt den exit-status false (1) zurück. Das Gegenstück ist true.




FGHintergrundprozesse in den Vordergrund bringen
fg [Jobnummer]

Wenn man in der shell mehrere Hintergrundprozesse gestartet hat, kann man diese Prozesse einzeln auch wieder in den Vordergund holen. Dazu verwendet man das Kommando fg (foreground). Genauso wie das Kommando bg erwartet fg eine Jobnummer, die mit jobs erittelt werden kann. Der Job (Jobnummer) kann auf verschiedene Weise angegeben werden, eingeleitet wird die Angabe jeweils durch ein Prozentzeichen:

JobangabeBedeutung
%NummerProzeß mit der angegebenen Jobnummer
%TextProzeß dessen Kommandozeile mit Text beginnt
%?TextProzeß, dessen Kommandozeile den Text enthält
%%aktueller Prozeß
%-vorhergehender Prozeß

Siehe auch jobs, wait und bg.




FGREPSchnelle Suche ohne reguläre Ausdrücke
fgrep [Optionen] [Suchmuster] [Datei(en)]

Das Kommando fgrep arbeitet ähnlich wie die Kommandos grep und egrep, jedoch mit wesentlich eingeschränkteren Möglichkeiten aber höherer Geschwindigkeit. fgrep durchsucht eine oder mehrere Dateien nach einem bestimmten Suchmuster. Wird keine Datei angegeben, so liest fgrep den Datenstrom von Standardin. Wie egrep erlaubt auch fgrep die Benutzung der Option -f. Damit kann statt eines Suchmusters eine Suchmusterdatei an fgrep übergeben werden, aus der fgrep die Suchmuster lesen kann. Enthält diese Datei mehrere Zeilen, die Suchmuster enthalten, so werden diese durch ein logisches ODER iteinander verknüpft. Folgende Optionen können bei fgrep verwendet werden:

OptionBedeutung
-vAlle Zeilen, außer den Zeilen, die das Suchmuster enthalten, werden ausgegeben.
-xEs werden nur die Zeilen ausgegeben, die genau das Suchmuster enthalten und sonst nichts.
-cDie Anzahl der gefundenen Zeilen wird ausgegeben.
-iBei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden.
-lEs wird nur der Name der Dateien angezeigt, die das Suchuster enthalten.
-nDie Zeilen werden nummeriert.
-f SuchmusterdateiDas Suchmuster wird aus einer Datei gelesen.

Das Suchmuster darf keine regulären Ausdrücke enthalten. Im Suchstring enthaltene Sonderzeichen werden als reine Textzeichen interpretiert und müssen auch so in den Daten vorkommen, um einen Suchtreffer zu erzeugen. Um die Expansion dieser Sonderzeichen durch die shell zu verhindern, müssen die Sonderzeichen gequotet werden, oder das Suchmuster wird in Hochkommata oder Anführungszeichen eingeschlossen. Es sind die Besonderheiten der Parametersubstitution der shell zu beachten, da einige Sonderzeichen auch innerhalb der Kommata gelten. Diese sind dann zu quoten.
Siehe auch egrep und grep.




FIAbschluss der if-Entscheidung
if ..... fi

fi gehört zum Kontrollkonstrukt der if-Entscheidung und bildet den Abschluss des ganzen Konstrukts. Siehe if.




FILEDateityp feststellen
file Datei(en)

Das Kommando file versucht den Dateityp einer Datei zu ermitteln. Dabei geht es hauptsächlich um die Unterscheidung von Dateien die lesbaren Text enthalten, oder Binärdateien, ob es Verzeichnisse oder ausführbare Programme sind. file gibt als Ergebnis eine oder mehrere Zeilen pro Datei als Beschreibung zurück. Fehlinterpretationen sind jedoch nicht ausgeschlossen.




FINDDateisuche
find Startverzeichnis [Suchkriterien] [Kommandooptionen]

find ist ein sehr mächtiges Suchkommando. Die Suche erfolgt rekursiv in allen Verzeichnissen ab dem Startverzeichnis. Sie kann durch verschiedene Suchkriterien auf bestimmte Dateien eingeschränkt werden. Wird eine entsprechende Datei gefunden, so verfährt find entsprechend der Kommandooption. Wenn keine Kommandooptionen angegeben wurde, so geschieht entweder nichts, oder es wird eine default-Option (-print) ausgeführt. Mit folgenden Suchkriterien kann die Suche eingeschränkt werden:

SuchkriteriumBedeutung
-amin nDer letzte Zugriff (access) auf die Datei war vor n Minuten
-atime nDer letzte Zugriff (access) auf die Datei war vor n Tagen
-cmin nDie Datei wurde vor n Minuten erzeugt (create)
-ctime nDie Datei wurde vor n Tagen erzeugt (create)
-emptyDie reguläre Datei oder Verzeichnis ist leer
-fstype typDie Datei befindet sich auf dem Filesystem typ
-gid nDie Datei besitzt die numerische Gruppen-ID n
-group nameDie Datei gehört der Gruppe mit dem Namen name
-links nAuf die Datei verweisen n Links
-mmin nDie Datei wurde vor n Minuten zuletzt verändert (modified)
-mtime nDie Datei wurde vor n Tagen zuletzt verändert (modified)
-name dateiDie Datei besitzt den Dateinamen datei. (Die Sonderzeichen *, ? und [..] sind erlaubt)
-perm mode Die Datei besitzt genau die Zugriffsrechte mode. mode kann octale oder symbolisch angegeben werden
-perm -mode Die Datei besitzt alle in mode gesetzten Zugriffsrechte. mode kann octale oder symbolisch angegeben werden
-perm +mode Die Datei besitzt mindestens eines der in mode gesetzten Zugriffsrechte. mode kann octale oder symbolisch angegeben werden
-size n[bckw] Die Datei besitzt die Dateigröße n. Ohne Angabe einer Einheit gibt n die Anzahl der belegten Blöcke (512Bytes) an. Die einzelnen Kennbuchstaben für die Einheit bedeuten:
KennbuchstabeBedeutung
bGrößenangabe in Blöcken (default)
cGrößenangabe in Bytes
kGrößenangabe in kiloBytes
wGrößenangabe in 2-Byte-Worten
-type typ Auswahl nach dem Dateityp.
Für den Kennbuchstaben typ stehen folgende Zeichen zur Auswahl:
KennbuchstabeBedeutung
ffile, normale Datei
ddirectory, Verzeichnis
ccarakter, zeichenorientierte Gerätedatei (z.B. /dev/ttyS0)
bblock, blockorientierte Gerätedatei (z.B. /dev/hda1)
ppipe, Named Pipe oder FIFO
llink, symbolischer Link
ssocket, Netzwerksocket
-uid nDie Datei besitzt die User-ID n
-user nameDie Datei gehört dem User name

Wird für den numerischen Wert n eine Zahl angegeben, so interpretiert find dies als genaue Angabe. Durch ein vorgestelltes + wird die Zahl als größer als und durch ein vorgestelltes - als kleiner als interpretiert.
Wenn mehrere Suchkriterien angegeben werden, dann sind sie durch ein logisches UND miteinander verbunden. Komplexere logische Verknüpfungen können durch die Operatoren ! (NICHT), -a (UND), -o (ODER) und die Gruppierung durch runde Klammern erreicht werden. Da die Klammern in den meisten Shells eine Sonderbedeutung besitzen, müssen sie z.B. mit dem backslash \ gequotet werden.
find bietet eine Vielzahl von Kommandooptionen, mit denen eine Reihe von unterschiedlichen Aktionen ausgeführt werden können, wenn eine entsprechende Datei gefunden wurde. Die wichtigsten Kommandooptionen sind:
KommandooptionBedeutung
-printWird eine entsprechende Datei gefunden, so wird der vollständige Dateiname aus Standardout ausgegeben.
-exec Wenn eine entsprechende Datei gefunden wird, so wird das hinter -exec angegebene Kommando ausgeführt. Um den Namen der gefundenen Datei als Parameter zu verwenden, benutzt man das Kürzel {}. Das Kommando muss mit einem Semikolon abgeschlossen werden. Da das Semikolon ein Sonderzeichen der Shell ist, muss es durch einen backslash gequotet werden.
-okDiese Kommandooption funktioniert ähnlich wie -exec, nur das vor der Ausführung jedes einzelnen Kommandoaufrufes eine Nachfrage erscheint, die mit y oder n bestätigt werden muss.



FORKontrollkonstrukt für Zählschleifen
for Variable [in Werteliste]; do Kommando1; Kommando2;Kommando3; done
oder übersichtlicher
for Variable [in Werteliste]
do
  Kommando1
  Kommando2
  Kommando3
done

Die for-Schleife wird, wie in Programmiersprachen üblich zur mehrfachen Ausführung einer Programmsequenz benutzt. for erwartet eine Variable, die als Zählvariable benutzt wird. Die Anweisungen zwischen do und done werden so oft durchlaufen, wie Werte aus der Werteliste gelesen weder können. Bei jedem Durchlauf wird der nächste Wert aus der Werteliste in die Variable geschrieben und die Kommandos zwischen do und done ausgeführt. Wenn die Liste abgearbeitet ist, wird die for-Schleife verlassen. Ein vorzeitiger Abbruch der for-Schleife ist mit break möglich. Ein vorzeitiger weiterer Schleifendurchlauf kann mit continue veranlasst werden. Die Werteliste enthält durch Leerzeichen oder Tabulator getrennte Worte, die fest vorgegeben oder durch Expansion oder Kommandosubstitutin der shell erzeugt werden. Worte die selbst Leerzeichen oder Sonderzeichen enthalte müssen in Anführungszeichen gesetzt werden. Wenn keine Werteliste vorgegeben wird, werden die Parameter $@ benutzt.
Um die for-Schleife abzählbar zu machen, kann das Kommando seq verwendet werden. Siehe auch die until-Schleife und while-Schleife.






G




GREPSuche mit regulären Ausdrücken
grep [Optionen] Suchmuster [Datei(en)]

grep durchsucht eine oder mehrere Dateien nach einem bestimmten Suchmuster. Wird keine Datei angegeben, so liest grep den Datenstrom von Standardin. In den Daten wird nach Zeilen gesucht, die das Suchmuster enthalten. Folgende Optionen können bei grep verwendet werden:

OptionBedeutung
-vAlle Zeilen, außer den Zeilen, die das Suchmuster enthalten, werden ausgegeben.
-cDie Anzahl der gefundenen Zeilen wird ausgegeben.
-iBei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden.
-lEs wird nur der Name der Dateien angezeigt, die das Suchuster enthalten.
-nDie Zeilen werden nummeriert.
-sFehlermeldungen werden unterdrückt.

Das Suchmuster kann verschiedene Sonderzeichen enthalten und damit einen regulären Ausdruck bilden. Damit können nicht nur festgelelegte Zeichen, sondern auch ganze Zeichengruppen in das Suchmuster aufgenommen werden. Folgende Sonderzeichen können verwendet werden.

SonderzeichenBedeutung
[...]Bereichsangabe für eine Menge von Zeichen, die an dieser Position erlaubt sind. Die zulässigen Zeichen werden ohne Trennzeichen aufgelistet.
[^...]Negation der Bereichsangabe. Es wird eine Menge von Zeichen aufgelistet, die an dieser Stelle nicht auftreten dürfen.
.Ein einzelnes, beliebiges Zeichen (auch Leerzeichen)
*Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Das Zeichen darf keinmal, einmal oder mehrmals vorkommen.
^Symbolisiert den Zeilenanfang innerhalb des Suchmusters.
$Symbolisiert das Zeilenende innerhalb des Suchmusters.
\{...\} Wiederholungszeichen. Es wirkt auf das unmittelbar davor stehende Zeichen oder den Bereich. Es existieren drei unterschiedliche Möglichkeiten, die Anzahl festzulegen.
  1. \{n\} Das Zeichen muss genau n-mal vorkommen.
  2. \{n,\} Das Zeichen muss mindestens n-mal vorkommen.
  3. \{n,m\} Das Zeichen muss mindestens n-mal und höchstens m-mal vorkommen.

Um die Expansion der Sonderzeichen durch die shell zu verhindern, müssen die Sonderzeichen gequotet werden, oder das Suchmuster wird in Hochkommata oder Anführungszeichen eingeschlossen. Es sind die Besonderheiten der Parametersubstitution der shell zu beachten, da einige Sonderzeichen auch innerhalb der Kommata gelten. Diese sind dann zu quoten. Das Kommando egrep arbeitet ähnlich wie das Kommando grep, jedoch mit wesentlich erweiterten Möglichkeiten.
Siehe auch egrep und fgrep.



H




HEADAusgabe der Kopzeilen einer Datei
head [Optionen] [Datei(en)]

Das Kommando head gibt die ersten 10 Zeilen einer Datei nach Standardout aus. Wird mehr als eine Datei angegeben, so werden die Header der Dateien, getrennt durch den Dateinamen, nacheinander ausgegeben. Wurde keine Datei oder der Dateiname - verwendet, so liest head von Standardin. Die Ausgabe von head kann durch folgende Optionen gesteuert werden:
OptionBedeutung
-c[-]NEs werden die ersten N-Bytes der Datei(en) ausgegeben. Wird dem Wert N ein Minus vorangestellt, so werden alle, bis auf die letzten N-Bytes der Datei(en) ausgegeben.
-n[-]NEs werden die ersten N-Zeilen der Datei(en) ausgegeben. Wird dem Wert N ein Minus vorangestellt, so werden alle, bis auf die letzten N-Zeilen der Datei(en) ausgegeben.
-qEs wird die Ausgabe der Dateinamen unterdrückt. (quiet)
-vEs wird die Ausgabe der Dateinamen erzwungen. (verbose)
Innerhalb der Optionen "c" und "n" können für den Wert N folgende Multiplikatoren als Suffix verwendet werden. Insbesondere bei der Option c machen diese Suffixe auch Sinn.
SuffixBedeutung
b512, die Angabe erfolgt in Blöcken.
k1024, die Angabe erfolgt in Kilo(bytes)
m1024*1024, die Angabe erfolgt in Mega(bytes).



I




IDBenutzerdaten
id [Benutzer]

id gibt die User-ID, den Usernamen, die Gruppennummer und die Gruppennamen eines Systemusers aus. Wird kein Benutzer angegeben , so ist dies der angemeldete User, der das Kommando aufruft. Wird ein Benutzer angegeben, so werden dessen Daten angezeigt, falls er existiert. Falls das Kommando korrekt ausgeführt wurde, liefert es den exit-status 0. Wurde ein User angegeben, der nicht existiert, so wird der exit-status 1 zurückgegeben.




IFEntscheidungen
if Kommando1; then Kommando2; [elif Kommando3; then Kommando4;].....[else Kommando5;] fi

if bietet die Möglichkeit Entscheidungen in shell-Scripte einzubauen. Dazu testet if den exit-status eines Kommandos (z.B. Kommando1, Kommando3) und setzt den Programmablauf entsprechend fort. Der exit-status 0 (Null) ist gleichbedeutend mit wahr (true). Diesen exit-status liefern shell-Kommandos, wenn sie ohne Fehler und korrekt ausgeführt werden konnten. Alle anderen Werte für den exit-status werden als falsch (false) interpretiert. Das if-Konstrukt wird durch das Schlüsselwort fi abgeschlossen. Mit elif ist eine Mehrfachauswahl möglich. Generell werden die Kommandos nach if und elif von oben nach unten nacheinander ausgeführt, bis das erste den exitstatus wahr (true) zurückliefert. Dann wird der mit dem folgenden then eingeleitete Anweisungsblck ausgeführt und die Verzweigung anschließend verlassen. Sollte keiner der if und elif-Verzweigungen ein wahr ergeben, wird ein eventuell vorhandener else-Alternativzweig ausgeführt.




INSchlüsselwort in Verzweigungen
case ... in ..... esac
for ... in ... do ... done
select ... in ... do ... done

in gehört zu den Kontrollkonstrukten for, case und select. Es schliesst die Variablendefinition dieser Kontrollstrukturen ab und leitet den folgenden Block ein.




J




JOBSAnzeige laufender Hintergrundprozesse
jobs [-l] [-p] [-n] Jobnummer

In der shell werden im Hintergrund ausgeführte Prozesse über sogenannte Jobnummern verwaltet. Das Kommando jobs listet alle laufenden Hintergrundprozesse mit der zugehörigen Jobnummer auf. it der Option -l kann gleichzeitig die Angabe der Prozessnummer des Hintergrundprozesses erzwungen werden. Mit -n werden nur die gestoppten oder beendeten Hintergrundprozesse gelistet. Mit der Angabe einer Jobnummer werden nur Informationen zu diesem Job angezeigt.
Siehe auch bg, wait und fg.



K




KILLSignal an einen Prozess senden
kill [-Signal] -l Prozessnummer(n)

kill sendet ein Signal an die durch Prozessnummern angegebenen Prozesse. Damit erreicht man unter anderem, dass ein Prozess sich vorzeitig beendet, daher der Name kill. Das Signal kann entweder durch eine Signalnummer oder den Kurznamen angegeben werden. Mit der Option -l wird eine Liste der verfügbaren Signalnummern und deren Signalnamen angezeigt. Eine kleine Auswahl an Signalen:

NummerKurznameSignalnameBedeutung
1HUPSIGHUPVerbindungsunterbrechung
2INTSIGINTUnterbrechungstaste am Terminal <Strg>-C
3QUITSIGQUITUnterbrechungstaste am Terminal
4ILLSIGILLunerlaubter Hardwarebefehl
5TRAPSIGTRAPHardwarefehler
6ABRTSIGABRTunnormale Beendigung, Absturz mit core
7BUSSIGBUSHardwarefehler
8FPESIGFPEArithmetischer Fehler (Division durch Null)
9KILLSIGKILLBeendigung
10USR1SIGUSR1benutzerdefiniertes Signal
11SEGVSIGSEGVunerlaubte Speicheradressierung
12USR2SIGUSR2benutzerdefiniertes Signal
13PIPESIGPIPESchreiben in eine Pipe ohne Leser
14ALRMSIGALRMAblauf einer Zeitschaltuhr
15TERMSIGTERMBeendigung
17CHLDSIGCHLDStatusänderung in einem Kindprozess
18CONTSIGCONTFortsetzen eines angehaltenen Prozesses
19STOPSIGSTOPProzess anhalten
20TSTPSIGTSTPTerminal-Stoppzeichen
21TTINSIGTTINLesewunsch eines Hintergrundprozesses
22TTOUSIGTTOUSchreibwunsch eines Hintergrundprozesses
23URGSIGURGdringendes Ereignis
24XCPUSIGXCPUÜberschreitung des CPU-Limits
25XFSZSIGXFSZÜberschreitung des Dateigrößenlimits
26VTALRMSIGVTALRMvirtueller Zeitalarm
27PROFSIGPROFProfiling-Zeitalarm
28WINCHSIGWINCHÄnderung der Windowgröße
29IOSIGIOasynchrone E/A-Operation
30PWRSIGPWRStromausfall
31SYSSIGSYSunerlaubter Systemaufruf

Wenn keine Signalnummer oder Kurznamen angegeben werden, so versendet kill das Signal SIGTERM(15), wodurch sich der Prozess normal beendet. Dadurch hat der Prozess die Möglichkeit seine Arbeit normal zu beenden, eventuell Daten zurückzuschreiben und Netzwerkverbindungen abzubauen. Das Signal SIGKILL(9) bewirkt, das der Prozess sofort hart beendet wird, eine normale Beendigung der Arbeit findet nicht statt. Es sollte nur für Prozesse verwendet werden, die sich mit SIGTERM(15) nicht beenden lassen wollen. Mit SIGHUP(1) werden eine Reihe von Prozessen veranlasst ihre Konfiguration neu einzulesen und mit dieser zu arbeiten (z.B. inetd). Signale kann ein Benutzer nur an Prozesse versenden, die unter seiner uid laufen, d.h., die er selbst gestartet hat. root darf an alle Prozesse ein Signal senden. Wenn als Prozessnummer die 0 verwendet wird, wird das Signal an alle durch den Benutzer erreichbaren Prozesse gesendet.
Siehe auch trap.



L




LETbash-Arithmetik
let Argument(e)

let bietet vielfältige Möglichkeiten arithmetische Operationen in der bash durchzuführen. let interpretiert den angegebenen Argumente als arithmetischen Ausdruck. Bei der Benutzung von Variablen kann auf das Dollarzeichen zur Expansion des Variableninhalts verzichtet werden. Der Ausdruck wird von links nach rechts ausgewertet. Als Operatoren stehen dir Grundrechenoperationen, komplexe Zuweisungen und Bit-Operationen zur Verfügung. Folgende Operatoren können verwendet werden:

OperatorBedeutung
+ - * /Addition,Subtraktion,Multiplikation,Division
%Modulo (Rest einer ganzzahligen Division)
< > <= >=Vergleiche auf kleiner, größer, kleiner und gleich, größer und gleich. Das Ergebnis ist 0 für wahr (true) oder 1 für falsch (false).
== !=Test auf gleich bzw. nicht gleich (ungleich). Das Ergebnis ist 0 für wahr (true) oder 1 für falsch (false).
&& ¦¦Vergleiche können durch logisches UND(&&) bzw. durch logisches ODER(¦¦) verknüpft werden.
& ¦ ^Bit-Operatoren. Die Werte werden durch bitweises Und(&), durch bitweises Oder(¦) und EXCLUSIVODER(^) miteinander verknüpft.
+= -= *= /= %=komplexe Zuweisungsoperatoren. Die Schreibweise a+=b ist eine verkürzte Schreibweise für a=a+b. Für die anderen Operatoren gilt das ähnlich.

Der exit-status von let ist 0 (Null true), wenn der Wert des letzten Ausdrucks nicht 0 (Null) war. Den exit-status 1 (false) liefert let, wenn die letzte Operation das Ergebnis 0 (Null) geliefert hat.




M




MVVerschieben von Dateien
mv [-f] Datei1 Datei2
mv [-f] Datei(en) Verzeichnis

Das Kommando mv (move) arbeitet auf sehr unterschiedliche Weise. Zum einen kann man mit mv eine Datei umbenennen. Zum anderen können Dateien auch verschoben werden. In der ersten Form wird die Datei1 bei der Verschiebung unter einem neuen Namen Datei2 abgespeichert. Verweisen beide Dateinamen auf das gleiche Verzeichnis, so ist eine Umbenennung das Ergebnis. In der zweiten Form werden die Dateien in das Zielverzeichnis verschoben und behalten dabei ihren eigentlichen Dateinamen. Existiert die Zieldatei und ist das Schreiben auf die Zieldatei nicht erlaubt, fragt mv vorher ab, ob die Datei überschrieben werden soll. Wird mit "y" geantwortet, so wird der Inhalt überschrieben, sofern es die Systemrechte zulassen. Mit der Option -f kann die Abfrage unterdrückt werden. Wird die Datei innerhalb des gleichen Dateisystems verlagert, so erzeugt mv einen zweiten Link auf die Datei und löscht den ersten. Das geht sehr zügig und ist von der Größe der Datei unabhängig, da sie nicht physisch verschoben werden muss. Erfolgt die Verlagerung über die Grenzen des Dateisystems hinweg, so muss die Datei physisch verschoben werden, was von der Größe der Datei abhängig ist und damit mehr Zeit benötigt.



N




NEWGRPGruppenzugehörigkeit wechseln
newgrp [-] [Gruppenname]

Mit dem Kommando newgrp kann ein Benutzer seine Gruppenzugehörigkeit wechseln. Dazu gibt er als Parameter den Namen der Gruppe an, in die er wechseln möchte. Diese Gruppe muss in /etc/group existieren und der Benutzer muss als Mitglied der Gruppe eingetragen sein. Der aktuelle Shell-Prozess ändert daraufhin die Gruppennummer. Der Wechsel der Gruppenzugehörigkeit kann mit dem Kommando id getestet werden. Wird newgrp ohne Parameter aufgerufen, so wechselt man in die voreingestellte Default-Gruppe (in /etc/passwd). Bei Angabe eines Minuszeichens als ersten Parameter wird so verfahren, als würde man sich neu anmelden, dh, das die Initialisierungsdateien der Shell (/etc/profile, .profile, .bashrc,...) erneut abgearbeitet werden. Das Kommando newgrp startet dabei im Gegensatz zu su keinen neuen Shell-Prozess.




NICEKommandopriorität verändern
nice [-Zahl] Kommando [Argument(e)]

Das Kommando nice erlaubt es, die Priorität von Kommandos zu verändern. Damit kann gesteuert werden, wieviel Rechenzeit für das Kommando verwendet werden soll und wie stark das Kommando die Performance des Systems belasten darf. Linux-Systeme unterscheiden zwischen einer Basispriorität, die allein vom Kernel verwaltet wird und einem Faktor, der vom Benutzer verändert werden kann, der sogenannte nice-Faktor. Die Zahlenangabe als Option verringert den nice-Faktor des Kommandos. Je niedriger der Wert des nice-Faktors ist, desto langsamer wird das Kommando abgearbeitet. Die Zahl kann Werte von 0 bis 19 annehmen. Damit kann der nice-Faktor durch den Benutzer auf einen Wert zwischen 20 (-0) und 39 (-19) gebracht werden. Der Benutzer root kann als einziger die Priorität seiner Kommandos erhöhen. Er kann durch die Angabe einer Zahl als Option den nice-Faktor bis auf den Wert 0 (--20) erhöhen. Fast immer wird man das Kommando, das verlangsamt abgearbeitet werden soll, als Hintergrundprozess starten, damit die Konsole nicht unnötig lange blockiert ist.




NOHUPIgnorieren von SIGHUP bei einem Kommando
nohup Kommando [Option(en)] [Argument(e)] [&]

Wenn ein Kommando mit nohup davor gestartet wird, so ignoriert es das Signal SIGHUP. Wenn der Kommandoaufruf mit einer Hintergrundverarbeitung (&) kombiniert wird, dann bedeutet dies, dass das Kommando auch nach dem Schliessen der Terminalverbindung (Verlassen der shell, Abmelden des Benutzers) weiter im Hintergrund abgearbeitet wird. Falls keine Ausgabenumlenkung für das Kommando festgelegt wird, werden die Ausgaben von Standardout und Standarderr in einer Datei nohup.out abgelegt.



O




ODAnzeige von Dateiinhalten
od [Optionen] [Dateiname]

Mit dem Komando od können Dateiinhalte in unterschiedlicher Formatierung dargestellt werden. In der Defaulteinstellung werden die einzelnen Bytes als Oktalzahl dargestellt. Die darzustellende Datei kann durch den [Dateinamen] übergeben werden, oder als Datenstrom über stdin an das Kommando gesendet. Durch eine Reihe von Optionen kann die Ausgabe formatiert werden und wird dann über stdout wieder ausgegeben.
So kann z.B. mit od -Ax -tx1z -v [Dateiname] eine übersichtliche Darstellung des Dateiinhaltes ähnlich wie in HEX-Browsern erzeugt werden.
OptionBedeutung
-A [doxn]Anzeige der Zeilenadresse im Format d=dezimal, o=oktal, x=hexadezimal und n=keine Adressenangabe.
-j KEs werden die ersten K-Bytes der Datei übersprungen (Jump) und damit ein Offset für die Ausgabe festgelegt.
-N KDie Ausgabe wird auf K-Bytes beschränkt. (Limit)
-vDie Ausgabe wird dupliziert. Beide Ausgaben können unterschiedlich formatiert werden.
-w KDie Ausgabe wird auf K-Bytes pro Ausgabezeile beschränkt.
-t K Die Ausgabe wird auf den Typ K formatiert. Zur Formatierung stehen folgende Optionen zur Ferfügung:
OptionBedeutung
-ta Die Bytes werden als ASCII-Zeichen interpretiert, die mit ihrem Namen angezeigt werden. Druckbare ASCII-Zeichen werden angezeigt und Steuerzeichen werden mit Namen versehen, also das Leerzeichen durch sp (SPACE) und die Zeilenschaltung durch nl (NEWLINE).
-tc Die Bytes werden als ASCII-Zeichen interpretiert. Druckbare ASCII-Zeichen werden angezeigt und Steuerzeichen werden als Escape-Sequenzen dargestellt, also die Zeilenschaltung durch \n.
-to[SIZE] Die Bytes werden als Oktalzahl dargestellt. [SIZE] gibt an, wie viele Bytes zu einer Oktalzahl zusammengefasst werden sollen. -to1 stellt also jedes Byte als dreistellige Oktalzahl dar.
-td[SIZE] Die Bytes werden als Dezimalzahl dargestellt. [SIZE] gibt an, wie viele Bytes zu einer Zahl zusammengefasst werden sollen. -td1 stellt also jedes Byte als Dezimalzahl dar.
-tx[SIZE] Die Bytes werden als Hexadezimalzahl dargestellt. [SIZE] gibt an, wie viele Bytes zu einer Zahl zusammengefasst werden sollen. -td1 stellt also jedes Byte als Hexadezimalzahl dar.
-tu[SIZE] Die Bytes werden als vorzeichenlose (unsigned) Dezimalzahl dargestellt. [SIZE] gibt an, wie viele Bytes zu einer Zahl zusammengefasst werden sollen. -tu2 fasst also zwei Bytes zu einer Dezimalzahl zusammen.
-tf[SIZE] Die Bytes werden als Gleitkommazahlen (floating) interpretiert. Für die SIZE-Angabe der Option f stehen F für sizeof(float), D für sizeof(double) und L für sizeof(long double) zur Verfügung.
Für die SIZE-Angaben der Optionen d,o,u,x können auch die Kürzel C (sizeof(char)), S (sizeof(short)), I (sizeof(int)), oder L (sizeof(long)), des jeweiligen Systems verwendet werden. Wird ein z-Suffix an den Typstring angehängt, so werden die Bytes als druckbare Zeichen am Zeilenende ausgegeben.



P




PASSWDÄndern des Passwortes
passwd [Benutzername]

Mit dem Komando passwd kann sich ein User ein neues Passwort setzen. Vor der Eingabe des neuen Passwortes wird das alte zur Sicherheit noch einmal abgefragt. Der normale Anwender kann nur sein eigenes Passwort ändern, deshalb ist die Angabe eines Benutzernamens nicht möglich. Der Superuser root darf einen Benutzernamen als Parameter verwenden, um das Passwort eines bestimmten users zu ändern. Die Eingabe des alten Passwortes ist dabei nicht notwendig.




PWDAnzeige des aktuellen Verzeichnisses
pwd

Das Kommando pwd zeigt den absoluten Pfadnamen des aktuellen Verzeichnisses der shell an



Q



R




READEinlesen von Werten
read [Variablenname(n)]

read liest die Eingaben des Benutzers von Standardin und legt sie in den shell-Variablen ab, die read als Parameter übergeben werden. Wenn das Kommando read abgearbeitet wird, dann wartet die shell auf eine Eingabe des Benutzers. Die Eingabe wird durch Enter abgeschlossen. Wenn die Eingabe aus mehereren Worten besteht (Trennzeichen shell-Variable IFS), so wird das erste Wort in der ersten Variable, das zweite Wort inder zweiten Variable usw. usf. gespeichert. Sollten weniger Variablen als read-Parameter mitgegeben worden sein als Worte in der Eingabe gelesen werden, so wird der Rest in der letzten Variable abgelegt. Sollte read nur eine Variable mitgegeben werden, dann wird die komplette Eingabe in dieser gespeichert.




READONLYshell-Variable vor Überschreiben schützen
readonly [Variablenname[=Wert]] [Variablenname[=Wert]] ..

Mit readonly können shell-Variablen vor Überschreiben geschützt werden. Dadurch werden sie zu Konstanten. Der Variable kann der Wert vor Aufruf von readonly oder mit dem Aufruf zugewiesen werden. Ein Löschen der Variable in der shell ist dann ebenfalls nicht mehr möglich. Erst durch das Verlassen der shell wird auch die Variable vernichtet.
Wird readonly ohne Parameter aufgerufen, so listet es alle geschützten Variablen auf, die bereits definiert wurden. Das Kommando readonly hat die selbe Bedeutung wie declare -r.




RETURNRücksprung aus einer shell-Funktion
return [Wert]

Mit dem Kommando return kann eine shell-Funktion vorzeitig verlassen werden. Gibt man einen Wert als Parameter mit, dann wird er als exit-status in der shell-Variablen $? übergeben. Damit wirkt return ähnlich wie exit, nur dass mit return nur die shell-Funktion verlassen wird und nicht die ganze shell. Da der exit-status ein vorzeichenloser Bytewert ist, sind nur ganzzahlige Werte von 0..255 zulässig.




RMLöschen einer Datei
rm [Optionen] [Datei(en)]

Mit dem Kommando rm können eine oder mehrere Dateien gelöscht werden. Ohne entsprechende Optionen löscht rm die Dateien ohne Rückfrage. Ein nachträgliches Wiederherstellen der Dateien ist im allgemeinen nicht mehr möglich. rm ist also mit größter Vorsicht einzusetzen, denn durch einen einfachen Befehl können die gesamten Dateien des Systems gelöscht werden (z.B. rm -r / als root ausgeführt). Als Optionen sind möglich:

OptionBedeutung
-iEs wird zur Sicherheit für jede Datei eine Abfrage erzeugt, ob die Datei gelöscht werden soll oder nicht.
-r(rekursion) Die Option -r testet, ob es sich bei den Parametern um Verzeichnisnamen handelt. Wenn ja, dann löscht rm auch alle Unterverzeichnisse in diesem Verzeichnis komplett.
-fWenn man im Verzeichnis, in dem die zu löschenden Dateien liegen, Schreibrechte hat, die Dateien aber einem anderen Benutzer gehören, so erscheint eine Rückfrage.



RMDIRLöschen eines leeren Verzeichnisses
rmdir Verzeichnisname(n)

rmdir kann ein leeres Verzeichnis löschen.



S




SELECTeinfaches bash-Menü
select Variable [in Werteliste] ; do Kommandos; done

Mit select können sehr einfache Menüs erzeugt werden. select gibt das Menü über Standarderr aus. Dazu setzt es vor jedem Eintrag der Werteliste eine fortlaufende Nummer und präsentiert zum Abschluß einen Prompt (PS3), mit dem es auf eine Eingabe wartet. Ist die Eingabe eine Zahl aus der Liste, so wird die Variable mit dem entsprechenden Wort aus der Werteliste gefüllt und die Schleife durchlaufen. Wird eine Eingabe getätigt, die zu keinem Wert der Liste passt, so enthält die Variable einen Leerstring und die Schleife wird durchlaufen. Wird nichts eingegeben, so wird das Menü erneut angezeigt. Die Schleife kann nur mit <Strg>+d oder einem break verlassen werden. Wenn keine Werteliste angegeben wird, so wird $@ verwendet.




SEQZahlensequenz erzeugen
seq [Optionen] [Startwert [Schrittweite]] Endwert

Das Kommando seq erzeugt eine Sequenz von Zahlen, beginnend mit dem Startwert im Abstand der Schrittweite, bis der Endwert erreicht oder überschritten wird. Wenn keine Schrittweite oder Startwerte angegeben werden, so sind sie automatisch 1. Im Normalfall werden die Zahlen durch eine Zeilenschaltung (\n) voneinander separiert, es kann aber mit der Option -s ein anderes Zeichen vereinbart werden. Die Sequenz erhält dann nur eine abschliessende Zeilenschaltung.
Beispiele:
seq 4
seq 1 4
seq 1.3 0.2 3.1
seq -s" " 1.5 0.5 7
Damit ist der Befehl z.B. hervorragend geeignet, um die for-Schleife in der shell abzählbar zu machen.




SHREDsicheres Löschen von Dateien
shred [Optionen] Datei(en)

Das Kommando shred dient dazu, eine oder mehrere Dateien sicher zu löschen, so dass sie auch mit großem Aufwand nicht wieder hergestellt werden können. Der Inhalt der Datei(en) wird dazu mehrfach mit Zufallswerten überschrieben. Im Normalfall werden die Datei(en) anschliessend nicht gelöscht.
Option Bedeutung
-f , --force setzt die Schreibberechtigung, falls notwendig
-n , --iterations=N Anzahl der Überschreibungen der Datei(en), Defaultwert ist 25.
-s , --size=N Anzahl der Bytes (K, M, G), die nur überschrieben werden sollen.
-u , --remove nach dem Überschreiben wird die Datei gelöscht
Da im Normalfall auf Gerätedateien (z.B. /dev/hda) geschrieben wird, darf die Datei selbst natürlich nicht gelöscht werden. Bei regulären Dateien wird der Anwender -u benutzen.
-v , --verbose Fortschrittsanzeige
-x , --exact Die Dateilänge wird nicht auf den letzten vollen Block aufgerundet.
Bei nicht-regulären Dateien ist das die Defaulteinstellung.
--random-source=Datei Quelldatei für Zufallszahlen, default=/dev/urandom.
Das Kommando nutzt im Normalfall des Device /dev/urandom als Quelle für die Zufallszahlen. Dieses generiert zwar ständig Zufallswerte, doch wenn die Entropie des Systems aufgebraucht ist, werden diese Zufallszahlen schwächer. Für hochparanoide Anwendungen wäre z.B. auch die Verwendung von /dev/random möglich, doch dieses blockiert, bis die Entropie des Systems wieder einen ausreichenden Wert erreicht hat. Dadurch kann das Löschen großer Dateien unter Umständen sehr lange dauern.
-z , --zero abschliessendes Überschreiben der Datei(en) mit Null-Bytes, um das Shreddern zu verbergen

Achtung!
Das Kommando shred funktioniert natürlich nur, wenn die Daten vom Betriebssystem auch wirklich dort überschrieben werden, wo sie sich auf dem Datenträger auch befinden und dass keine Duplikate abgelegt wurden. Das ist nicht immer der Fall, wie z.B. bei:
- protokollstrukturierten Dateisystemen,
- Journaling-Dateisystemen (z.B. ext3, ext4 mit data=journal)
- redundante Dateisysteme, Backupsysteme, RAIDs
- temporäre Dateisysteme, Cachingsysteme
Die ordnungsgemäße Funktionsweise von shred kann also nicht in allen Fällen garantiert werden.




SLEEPUnterbrechung der Abarbeitung für eine festgelegte Zeit
sleep Zahl[Einheit]

Das Kommando sleep unterbricht den aktuellen Prozess für einen bestimten Zeitraum. Der Parameter legt dabei die Länge des Zeitraums fest. Die Einheit gibt die Größenordnung der Zeitspanne an. Wird keine Einheit angegeben, so wird die Zahl als Sekundenangabe interpretiert. Im Gnu-echo kann die Zahl auch ein Dezimalbruch sein und damit sind auch Zeitspannen unter einer Sekunde möglich. Die Einheit kann einer der folgenden Buchstaben sein

BuchstabeEinheit
sSekunden
mMinuten
hStunden
dTage

z.B.:
sleep 2s
sleep 4m
sleep 0.3




SORTZeilenweises Sortieren von Daten
sort [Optionen] [Positionen] [Datei(en)]

Das Kommando sort liest Daten über Standardin oder aus einer oder mehreren Dateien, wenn diese als Parameter übergeben wurden und gibt diese sortiert an Standardout wieder aus. Die Sortierung kann mit verschidenen Sortierkriterien gesteuert werden. Sort liest die Daten zeilenweise ein und zerlegt den Inhalt in einzelne Felder. Als Trennzeichen verwendet sort das Leerzeichen und den Tabulator. Folgen mehrere Trennzeichen oder Tabulatoren hintereinander, so wird das erste Zeichen als Trennzeichen interpretiert und alle folgenden als Inhalt des nächsten Feldes gewertet. Die einzelnen Felder werden fortlaufend, mit 0 (Null) beginnend, nummeriert und können so als Positionsangabe im Sortierkriterium verwendet werden. Mit Hilfe dieser Positionsangabe werden die Felder ausgewählt, die als Sortierkriterium gelten sollen. Soll ein Bereich von Feldern als Sortierkriterium genutzt werden, so ist vor die erste Positionsangabe ein Pluszeichen (Position 1) und vor die zweite ein Minuszeichen (Position 2) zu setzten. sort wird dann alle Felder von Position 1 bis vor das Feld Position 2 als Suchkriterium werten. Das Feld Position 2 wird also selbst nicht mehr in das Suchkriterium eingeschlossen.
Es ist auch möglich, mehrere Suchkriterien anzugeben. Das zweite Suchkriterium wird dann verwendet, wenn das erste Suchkriterium zur eindeutigen Sortierung nicht ausreicht (Untersortierungen) usw. usf.
Zusätzlich können folgende Optionen verwendet werden:

OptionBedeutung
-bLeerzeichen (blanks) am Feldanfang werden ignoriert.
-cTest (check), ob die Eingabedaten sortiert sind oder nicht. Nur wenn es sich um bereits sortierte Daten handelt, wird eine Ausgabe gemacht.
-dWörterbuch-Sortierung (dictionary). Es werden nur Buchstaben, Ziffern und Leerzeichen als gültige Zeichen für die Sortierung verwendet. Alle anderen Zeichen werden ignoriert.
-fEs wird nicht zwischen Groß- und Kleinschreibung unterschieden. (fold)
-nEs wird numerisch sortiert. Vor der Sortierung wird versucht, den Feldinhalt in eine Zahl umzuwandeln
-o DateiDie Ausgabe erolgt nicht an Standardout, sondern soll sofort in die angegebene Datei umgeleitet werden.
-rUmkehrung (reverse) der Sortierreihenfolge, es wird nicht aufsteigend, sondern absteigend sortiert.
-tcAls Trennzeichen für die einzelnen Felder wird das Zeichen "c" festgelegt.
-uSollten mehrere gleiche Zeilen vorkommen, so wird diese Zeile nur ein einziges Mal (unique) ausgegeben.

Sollten die Suchkriterien für verschiedene Felder unterschiedlich sein, dann können die Optionen "d", "f", "n" und "r" auch direkt hinter der ersten Feldnummer der Positionsangabe stehen (z.B. +2n -3).




STATAusgabe des Dateistatus
stat [Optionen] Datei(en)

Das Kommando stat gibt die wichtigsten Angaben zu einer oder mehreren Dateien auf stdout aus. Die Angaben enthalten die Dateirechte, Dateibesitzer, Dateigröße, Zeitstempel (Access, Modify, Change). Die Ausgabe kann über Optionen gesteuert und formatiert werden.




SYNCHerausschreiben der E/A-Puffer
sync

Die Ein-/Ausgaben auf Dateisysteme werden im Normalfall im RAM gepuffert um die Performance zu erhöhen. Der Pufferinhalt wird bei Bedarf oder in regelmäßigen Abständen auf die Festplatte zurückgeschrieben. Durch das Kommando sync wird ein Zurückschreiben der Puffer erzwungen. Das Kommando darf nur von root ausgeführt werden.



T




tacreverse Dateiausgabe
tac [Datei ....]

Das Kommando funktioniert ähnlich wie cat, nur gibt es den Inhalt einer oder mehrerer Dateien in umgekehrter Reihenfolge (letzte Zeile zuerst) über den Standardout aus. Wird keine Datei oder der Parameter - angegeben, so liest cat die Daten von Standardin.




TEEDatenstrom duplizieren
tee [-a] Datei(en)

Mit dem Kommando tee kann ein Datenstrom dupliziert werden. Es liest die Daten vom Standardinput und gibt die Daten unverändert wieder über den Standardoutput aus und zum anderen in die Datei oder Dateien, deren Name als Parameter übergeben wurde. Mit der Option -a wird erreicht, das der Datenstrom an eine bereits bestehende Datei angehängt (append) werden soll. Ansonsten wird der Inhalt der Datei überschrieben.




TESTTesten von Ausdräcken
test Ausdruck
[ Ausdruck ]

Das Kommando test existiert in verkürzter Schreibweise als Kommando [. Es gilt das dort gesagte in ähnlicher Weise.




THENAnweisungsblock der if-Entscheidung
if .. then ... elif ... then ... elif ... then ... else ... fi

then gehört zum Kontrollkonstrukt der if-Entscheidung und bildet den Abschluss des Testkommandos und die Einleitung eines Programmblockes, der ausgeführt wird, wenn das Testkommando den Wahrheitswert wahr 0 (Null, true) liefert. Das Testkommando wird duch if oder elif und then eingeklammert. Wenn dieses Testkommando nun den exit-status 0 (Null, true) zurückliefert, wird der Programmblock ausgeführt, der nach then folgt. Abgeschlossen wird dieser Block durch eines der Steuerkonstrukte elif, else oder fi. Siehe if.




TIMEAusführungszeit für Kommandos messen
time Kommando [Argumente]

Mit dem Kommando time kan man die Ausführungszeit für ein Kommando messen. Das time-Kommando gibt auf dem Standarderror folgende Angaben aus:

  1. verbrauchte Systemzeit (system)
  2. verbrauchte Benutzerzeit (user)
  3. verbrauchte Gesamtzeit zwischen Start und Ende (elapsed)



TOUCHÄndern der Zeiten für den letzten Zugriff und die letzte Änderung einer Datei
touch [Optionen] [Zeitangabe] Datei(en)

Mit touch kann der Zeitpunkt des letzten Zugriffs (last access) und der letzten änderung (last modifikation) einer oder mehrerer Dateien geändert werden. Wird touch nur mit einem Dateinamen aufgerufen, so werden beide Zeitpunkte auf das aktuelle Systemdatum (date) gesetzt. Wenn die Datei noch nicht existiert, so wird eine leere datei mit diesem Namen angelegt. Mit der Option -a wird nur der Zeitpunkt des letzten Zugriffs (last access) gesetzt. Mit der Option -m wird nur der Zeitpunkt der letzten Änderung (last modification) beeinflusst. Die Zeitangabe muss im selben Format erscheinen wie beim stellen der Systemuhr mit dem Kommando date:
mmddHHMM[yy] (Monat-Tag-Stunde-Minute-Jahr als zweistellige Werte).




TRAustausch von Zeichen
tr [Optionen] [Zeichenkette1 [Zeichenkette2]]

tr liest Daten von Standardin, verändert sie und gibt sie an Standardout wieder aus. Damit arbeitet tr als Filter. Es kann Zeichen aus dem Datenstrom löschen, mehrere gleiche Zeichen zu einem Zeichen zusammenfassen oder ein Zeichen gegen ein anderes austauschen. Ohne Angabe von Optionen erwartet tr zwei Zeichenketten. tr setzt dann einzelne Zeichen im Datenstrom um. Tritt das erste Zeichen der Zeichenkette1 im Datenstrom auf, so wird es gegen das erste Zeichen der Zeichenkette2 ausgetauscht. Enthalten die Zeichenkette1 und Zeichenkette2 mehrere Zeichen, so wird gleichzeitig das zweite Zeichen der Zeichenkette1 im Datenstrom gegen das zweite Zeichen der Zeichenkette2 ausgetauscht, usw. usf. Sollte Zeichenkette1 länger als Zeichenkette2 sein, so werden die überzähligen Zeichen in Zeichenkette1 alle mit dem letzten Zeichen von Zeichenkette2 umgesetzt. Die Zeichenkette1 kann ausserdem noch Sonderzeichen und Bereichsdefinitionen enthalten mit denen ganze Gruppen von Zeichen selektiert werden.
Die möglichen Sonderzeichen und Bereichsdefinitionen in Zeichenkette1 und Zeichenkette2 sind

SonderzeichenBedeutung
\0NNNein oktal codiertes ASCII-Zeichens
\\ein Backslashs (backslash)
\aein Fehlerzeichen (Glocke) (bel)
\bein Backspace (backspace)
\fein Seitenvorschub (form feed)
\nein Zeilenvorschub (new line)
\rein Return (carriage return)
\tein horizontaler Tabulator (horizontal tab)
\vein vertikaler Tabulator (vertical tab)
\eAusgabe eines ESC-Zeichens (escape)
[CHAR1-CHAR2]Alle Zeichen von CHAR1 bis CHAR2

Die Bereichsdefinitionen die nur in Zeichenkette1 möglich sind

BereichsdefinitionBedeutung
[:alnum:]alle Buchstaben und Ziffern
[:alpha:]alle Buchstaben
[:blank:]alle horizontalen Whitespace-Zeichen
[:cntrl:]alle Control-Zeichen
[:digit:]alle Ziffern
[:graph:]alle druckbaren Zeichen ohne Leerzeichen
[:lower:]alle Kleinbuchstaben
[:print:]alle druckbaren Zeichen mit Leerzeichen
[:punct:]alle Punktierungszeichen
[:space:]alle horizontalen und verticalen Whitespace-Zeichen
[:upper:]alle Großbuchstaben
[:xdigit:]alle Hexadezimalziffern
[=CHAR=]alle Zeichen, die zu CHAR äquivalent sind

Die Bereichsdefinitionen die nur in Zeichenkette2 möglich sind

BereichsdefinitionBedeutung
[CHAR*]setzt CHAR so oft in Zeichenkette2, wie Zeichenkette1 lang ist (alle Zeichen werden in CHAR umgezetzt
[CHAR*REPEAT]mehrfache Wiederholung eines Zeichens, oktale Angaben von REPEAT beginnen mit 0

Folgende Optionen können für tr verwendet werden:

OptionBedeutung
-tschneidet zuerst Zeichenkette1 auf die Länge von Zeichenkette2 zu.
-cAlle Zeichen, die nicht in Zeichenkette1 stehen, werden entsprechend der Zeichenkette2 umgesetzt (complement)
-dAlle Zeichen aus Zeichenkette1 werden aus dem Datenstrom entfernt. Zeichenkette2 wird nicht mit angegeben.
-sAlle Zeichen, die mehrfach hintereinander vorkommen, werden auf ein einzelnes Zeichen reduziert. Eine Angabe der Zeichenketten ist nicht notwendig.



TRAPVerwaltung von Signalhandlern
trap [Argument [Signalnummer(n)]

Mit dem Kommando trap (Falle) kann man das Verhalten der shell beim Eintreffen von Signalen verändern. Mit trap kann man erreichen, dass ein shell-Script

trap zeigt seine Wirkung erst ab der Zeile, in der es steht. Durch einen erneuten Aufruf von trap kann das bisherige Verhalten wieder überschrieben werden. Wird trap ohne Parameter aufgerufen, so listet es die bisher definierten Signalreaktionen auf. In der bash können sowohl die Signalnummern als auch deren Kurznamen verwendet werden. Weiterhin kann noch das Pseudosignal EXIT verwendet werden. Es wird beim Verlassen der Shell oder einer shell-Funktion gesendet. Es lassen sich nicht alle Systemsignale mit trap steuern, da sie von der Behandlung durch trap ausgeschlossen sind (z.B. SIGKILL). Eine Übersicht von Signalen kann bei kill eingesehen werden.




TRUERückgabewert true, 0, NULL
true

Das Komando true gibt den exit-status true (0-Null) zurück. Das Gegenstück ist false.




TTYTerminalname anzeigen
tty [-s]

Das Kommando tty zeigt den Namen der Gerätedatei an, über die man mit dem Linuxrechner verbunden ist. Mit der Option -s wird die Ausgabe nach Standardout unterdrückt. Stattdessen wird ein entsprechender Rückgabewert erzeugt.

RückgabewertBedeutung
0Standardinput ist mit einem Terminal verbunden
1Standardinput wurde umgelenkt
2Fehler beim Aufruf von tty



TYPESETTypisierung einer bash-Variable
typeset [Optionen] [Name[=Wert]]

Das Kommando typeset ist ein Alias für declare.



U




UNIQlöscht mehrfach vorkommende Zeilen
uniq [Optionen] [Eingabedatei [Ausgabedatei]]

Das Kommando uniq ist ein sogenanntes Filterkommando, da es keine Datei direkt verändert, sondern Datenströme filtert. Das Kommando liest aus einer Eingabedatei oder von stdin, entfernt aus diesem Datenstrom mehrfach hintereinander vorkommende Zeilen, bis auf eine und schreibt das Ergebnis in die Ausgabedatei oder auf stdout.
Option Bedeutung
-c , --count beginne Zeilen mit der Anzahl der Vorkommen
-d, --repeated gibt nur die mehrfach vorkommenden Zeilen einmalig aus
-D, --all-repeated gibt alle Zeilen aus, die mehrfach hintereinander vorkommen,
--all-repeated=separate fügt zwischen den einzelnen Blöcken identischer Zeilen eine Leerzeile ein,
--all-repeated=prepend fügt vor jedem einzelnen Block identischer Zeilen eine Leerzeile ein,
--all-repeated=none (default), fügt keine Leerzeilen ein.
-f, --skip-fields=N Beziehe in den Vergleich die ersten N Felder nicht mit ein.
-s, --skip-chars=N Beziehe in den Vergleich die ersten N Zeichen nicht mit ein.
-i, --ignore-case Ignoriere beim vergleich die Groß- und Kleinschreibung.
-u, --unique Gib nur die einmal vorkommenden Zeilen aus.
-w, --check-chars=N Beziehe in den Vergleich nur die ersten N Zeichen jeder Zeile ein.

Um alle Zeilenduplikate aus einem Datenstrom zu entfernen, ist die Anwendung des Filterkommandos sort sinnvoll. Das Kommando sort besitzt selbst eine einfache uniqe-Option. Sollten die Anforderungen an den Zeilenvergleich höher sein, kann man natürlich beide Kommandos mit in einer Pipe zu komplexeren Strukturen verbinden, wie z.B.
sort [Optionen] [Positionen] [Datei(en)]  ¦  uniq [Optionen]
verbunden werden.




UNSETVariablen entfernen
unset OPTION NAME

Mit dem Kommando unset können zuvor deklarierte Variablen, Arrays, Arrayelemente und Funktionen wieder vernichtet werden. Der Inhalt der Variablen geht dabei verloren. Schreibgeschützte Variablen können nicht entfernt werden. unset ist das Gegenstück zum Kommando declare.
Siehe auch die declare.

OptionBedeutung
-v Bei NAME handelt es sich um eine Variable, ein Array oder Arrayelement das entfernt werden soll. Diese Option ist der default-Wert und kann uch weg gelassen werden.
-f Bei NAME handelt es sich um eine Funktion die entfernt werden soll.



UNTILKontrollkonstrukt für Schleifen
until Kommando1; do Kommandos; done

until testet, ob das Kommando1 den exit-status 1 (false) liefert. Wenn ja, dann werden die in do...done eingeschlossenen Kommandos ausgeführt. Wenn der exit-status von Kommando1 0 (Null, true) ist, wird die Schleife verlassen. Das Gegenstück zu until ist die while-Schleife. Siehe auch die for-Schleife.



V



W




WAITWarten auf einen Hintergrundprozess
wait [Prozessnummer]

Hintergrundprozesse laufen in der startenden Shell weiter, solange bis sie sich selbst beenden oder die aufrufende Shell beendet wird. Wenn vor dem Beenden der aufrufenden Shell auf die Beendigung von Hintergrundprozessen gewartet werden soll, so ist das mit dem Kommando wait möglich. Ohne Parameter aufgerufen, wartet wait auf die Beendigung aller Hintergrundprozesse. Durch die Angabe einer Prozessnummer oder einer Job-ID kann auf die Beendigung eines bestimmten Hintergrundprozesses gewartet werden. Bei der Angabe einer Prozessnummer wird nur auf die Beendigung des entsprechenden Prozesses gewartet. Wird eine Job-ID angegeben, so wird auf die Beendigung aller Prozesse in dem jeweiligen Job gewartet (z.B. bei verketteten Prozessen).
Wurde eine falsche Prozessnummer oder Job-ID angegeben, so gibt wait den exit-code 127 zurück, ansonsten den exit-code des Prozesses/Jobs auf den gewartet wurde.

Siehe auch jobs, bg und fg.

WHATISKurzhinweis zu Kommandos
whatis Kommandoname

Whatis gibt einen kurzen Hinweis zur Aufgabe des Kommandos Kommandoname zurück.




WCZählen von Zeichen, Wörtern und Zeilen
wc [Optionen] [Datei(en)]

Das Kommando wc liest Daten direkt aus Dateien oder aus dem Standard-Eingabekanal stdin und zählt, wie viele Zeilen, Wörter und Zeichen gelesen wurden. Wörter sind durch Leerzeichen, Tabulatoren oder Zeilenumbrüche voneinander getrennt. Nach dem Lesen aller Daten werden die drei Werte für die Anzahl der gelesenen Zeilen, Wörter und Zeichen angezeigt. Wurde direkt aus einer Datei gelesen, so wird der dateiname ebenfalls mit ausgegeben. Das Kommando wc kennt einige Optionen mit denen festgelegt werden kann, dass nur bestimmte Anzahlen ermittelt werden sollen.

Option Bedeutung
-l --lines, es wird die Anzahl der Zeilenschaltungen ausgegeben
-c --bytes, es wird die Anzahl der gelesenen Bytes ausgegeben
-m --chars, Es wird die Anzahl der Zeichen ausgegeben
-L es wird die Zeichenzahl der längsten Zeile ausgegeben
-w --words, es wird die Anzahl der Wörter ausgegeben



WHICHKommandosuche
which Kommandoname

which sucht in den Standardsuchpfaden der Shell nach dem angegebenen Kommandole und gibt den Namen mit dem kompletten Pfad wieder aus. Es wird dann der exit-status 0 (Null, true) zurückgegeben. Wird das Kommando nicht gefunden, so erzeugt which eine Fehlermeldung und gibt den exit-status 1 (false) zurück.




WHILEKontrollkonstrukt für Schleifen
while Kommando1; do Kommandos; done

while testet, ob das Kommando1 den exit-status 0 (Null, true) liefert. Wenn ja, dann werden die in do...done eingeschlossenen Kommandos ausgeführt. Wenn der exit-status von Kommando1 1 (false) ist, wird die Schleife verlassen. Das Gegenstück zu while ist die until-Schleife. Siehe auch die for-Schleife.



X



Y



Z






OptionBedeutung