Sie sind auf Seite 1von 83

Die wichtigsten Linux-Befehle im Überblick

Wie die meisten modernen Betriebssysteme stellt Ihnen auch Linux zwei Schnittstellen für
Benutzereingaben zur Verfügung. Alle Einstellungen, die Sie über die grafische
Benutzeroberfläche (Graphical User Interface, GUI) treffen, lassen sich in Form
von Kommandozeilenbefehlen auch über die sogenannte Shell vornehmen.

Bei der Shell handelt es sich um ein Programm, das als Schnittstelle zwischen System und
Benutzer fungiert. Es umfasst einen Kommandozeileninterpreter, der Benutzereingaben über
die Tastatur entgegennimmt, diese auswertet, gegebenenfalls Programme startet und den Output
in Form einer Textausgabe an den Benutzer zurückgibt. Darüber hinaus besitzt jede Shell eine
eigene Programmiersprache, die es ermöglicht, Shell-Skripte zu schreiben – zum Beispiel, um
Programmaufrufe zu verknüpfen und administrative Aufgaben zu erleichtern.

Jede Shell läuft in einem Terminal. In den Anfängen des Computerzeitalters kamen dazu
eigenständige Geräte, sogenannte Hardcopy-Terminals (Drucker oder Bildschirm plus Tastatur),
zum Einsatz. Diese wurden auf modernen Rechnern durch
sogenannte Terminalemulatoren ersetzt. Programme, die Benutzern ein grafisches Fenster für
die Interaktion mit der Shell zur Verfügung stellen.

Sobald Sie das Terminal Ihres Betriebssystems aufrufen, startet dieses die in den Einstellungen
festgelegte Standard-Shell (z.B. die Bourne again shell, Bash) und nimmt Eingaben am
sogenannten Prompt (der Eingabeaufforderung) entgegen.

Die Bash unter Ubuntu: Der Prompt zeigt Benutzername und Hostname an

Fakt
Im Laufe der Zeit wurden diverse Shells für unixoide Betriebssysteme entwickelt, die sich in
Funktionsumfang und Benutzerfreundlichkeit unterscheiden. Als Linux-Nutzer haben Sie somit
die Wahl, welchen Kommandozeileninterpreter Sie benutzen. Auf den meisten Betriebssystemen
sind bereits mehrere Shells vorinstalliert. Der Wechsel von einer Shell zur anderen erfolgt
bequem aus dem Terminal heraus (siehe chsh im Kapitel User-Account-Management). Zu den
bekanntesten Shells zählen neben den Standard-Programmen Bash und Dash die Fish, die Z-
Shell, die Korn-Shell, die (t)csh und die Mksh
Inhaltsverzeichnis
1. Grundkommandos
2. Hilfeseiten
3. Verzeichnisoperationen
4. Dateioperationen
5. Rechteverwaltung
6. Suchoptionen
7. User-Informationen
8. User-Account-Management
9. Systembefehle
10. Systeminformationen
11. Hardware-Informationen
12. Prozessmanagement
13. Pager
14. Editoren
15. Netzwerkmanagement
16. Archivieren und Komprimieren
17. Partitionsmanagement
18. Verschiedenes
Die Interaktion mit der Shell erfolgt in der Regel über Befehle, mit denen sich
gleichnamige Kommandozeilenprogramme aufrufen lassen. Für jede Aktion, die Sie über das
Terminal ausführen möchten, verwenden Sie einen Programmaufruf nach folgendem
Grundschema:

BEFEHL [OPTIONEN] [ARGUMENTE]


Ein Programmaufruf über das Terminal erfolgt über den Namen des Programms. Die meisten
Programme bieten die Möglichkeit, bestimmte Programmfunktionen
über Optionen anzusprechen. Erwartet ein Programm Argumente – z. B. in Form von Dateien
oder Verzeichnispfaden – werden diese in der Regel nach den gewählten Optionen angegeben.

Im Folgenden bieten wir Ihnen einen Überblick über die gängigsten Linux-Befehle und die
damit verbundenen Kommandozeilenprogramme.
Grundkommandos
In der Kategorie Grundkommandos finden Sie grundlegende Linux-Befehle, die der Steuerung
des Terminalsdienen. Erfahren Sie, wie Sie den Sichtbereich des Terminals leeren,
vorhergehende Terminaleingaben aus dem Verlauf (der History) abrufen oder die Terminal-
Sitzung beenden.

Befehl Beschreibung

Terminal leeren

Nutzen Sie den


Kommandozeilenbefehl clear, um den
Bildschirminhalt zu löschen.

clear
clear
Sie erhalten ein leeres Terminal mit
Eingabeaufforderung (Prompt). Ältere Eingaben
bleiben im Scrollback-Buffer erhalten.

Statt über diesen Befehl lässt sich das Terminal


auch über die Tastenkombination [STRG] + [L]
leeren.

Sitzung beenden

Der Kommandozeilenbefehl exit beendet die


aktuelle Sitzung und schließt das Terminal.
exit
exit

Verwenden Sie alternativ die Tastenkombination


[STRG] + [D].

Liste aller Shell-Befehle anzeigen

Nutzen Sie den Befehl help, um sich eine Liste


aller integrierten Shell-Befehle (Built-in-Befehle)
anzeigen zu lassen.

help help

Rufen Sie help in Kombination mit einem Shell-


Befehl auf, um sich eine Kurzbeschreibung des
jeweiligen Befehls ausgeben zu lassen.

help BEFEHL

history Einträge der History-Datei ausgeben


In der Bash werden die letzten 500 Befehle, die
Sie über die Kommandozeile eingegeben haben,
in der sogenannten History gespeichert.

Diese Funktion dient als Eingabehilfe und


ermöglicht Ihnen, die Liste der vorhergehenden
Befehle mit den Pfeiltasten zu durchsuchen und
durch die Bestätigung mit der Entertaste erneut
auszuführen.

Die History kann über die Tastenkombination


[STRG] + [R] nach Stichworten durchsucht
werden. Alternativ haben Sie die Möglichkeit,
sich die komplette Liste nummeriert im Terminal
ausgeben zu lassen.

Nutzen Sie dazu den Befehl history ohne


Optionen und Argumente.

history

Möchten Sie die Ausgabe filtern, kombinieren


Sie history via Pipe mit dem
Kommandozeilenprogramm grep (siehe
Suchoptionen) und einem Suchwort.

history | grep SUCHWORT

Hilfeseiten
Sie wissen nicht weiter? Kein Problem. Unter Linux stehen Ihnen diverse Hilfs- und
Dokumentationsseiten wie die Unix-Man-Pages und die GNU-Infoseiten direkt über das
Terminal zur Verfügung. Diese beinhalten eine detaillierte Beschreibung aller
Kommandozeilenprogramme, Systemaufrufe, Konfigurationsdateien, Dateiformate und
Kernelfunktionen. Mit whatis und apropos finden Sie in der Kategorie Hilfsseiten zudem
Kommandozeilenprogramme, mit denen sich die Handbuchseiten Ihres Betriebssystems nach
Stichworten durchsuchen lassen.

Befehl Beschreibung

Handbuch durchsuchen

Nutzen Sie apropos um die Seitentitel und


Beschreibungen der Handbuchseiten Ihres
Betriebssystems nach Stichworten zu
apropos
durchsuchen. Das Kommandozeilenprogramm
gibt Ihnen alle Entsprechungen inklusive
Kurzbeschreibung im Terminal aus.

Orientieren Sie sich an folgendem Schema:


apropos [OPTIONEN] SUCHBEGRIFF

Der Befehl unterstützt verschieden Optionen.


Grenzen Sie die Suche mit der Option -e (--
exact) auf exakte Entsprechungen ein oder
nutzen Sie Platzhalter (-w '*SUCHBEGRIFF')
und reguläre Ausdrücke (-r).

GNU-Infoseiten aufrufen

Über den Befehl info lassen sich GNU-


Informationsseiten zu einem bestimmten Thema
ausgeben. Diese entsprechen in den meisten
Fällen den Handbuchseiten, die sich
via man aufrufen lassen, weisen im Gegensatz
zu diesen jedoch Verlinkungen auf, die Ihnen die
info Navigatoren im Handbuch erleichtern.

Verwenden Sie folgende Syntax, um eine GNU-


Infoseite aufzurufen:

info [OPTION] THEMA

Ein Aufruf ohne Option und Thema führt Sie ins


Hauptmenü der GNU-Infoseiten.

Handbuch aufrufen

Der Befehl man öffnet die Handbuchseiten (Man-


Pages) Ihrer Linux-Distribution direkt im
Terminal.

Verwenden Sie folgendes Schema, um eine


Handbuchseite aufzurufen:

man [OPTION] THEMA

Die Linux-Man-Pages sind in 10


man Themenbereiche unterteilt:

(1) Benutzerkommandos

(2) Systemaufruf

(3) Funktionen der Programmiersprache C

(4) Dateiformate

(5) Konfigurationsdateien

(6) Spiele
(7) Diverses

(8) Kommandos zur Systemadministration

(9) Kernelfunktionen

(n) Neue Kommandos

Möchten Sie beispielsweise die Handbuchseite


zu einem bestimmten Linux-Befehl öffnen,
verwenden Sie man in Kombination mit dem
Namen des Befehls.

man clear

Alternativ können Sie die Suche durch die


Angabe der Themenbereichsnummer
eingrenzen:

man 1 clear

In beiden Fällen öffnet sich die Handbuchseite


zum Kommandozeilenbefehl clear. Benutzen Sie
die Taste [Q], um diese zu schließen und zur
Eingabeaufforderung (Prompt) im Terminal
zurückzukehren.

Eine Möglichkeit, die Linux-Handbuchseiten


nach Stichworten zu durchsuchen, bietet der
Befehl apropos.

Infoseiten im Lynx-Stil aufrufen

Mit pinfo steht ihnen eine Variante des


Kommandozeilenprogramms info zur Verfügung,
die sich am Kommandozeilenbrowser Lynx
pinfo orientiert und Ihnen Infoseiten mit farblich
hervorgehobenen Links ausgibt.

Nutzen Sie pinfo nach demselben Schema wie


den info-Befehl.

pinfo [OPTIONEN] THEMA

Stichwortsuche in den Handbuchseiten

Das Kommandozeilenprogramm whatis dient der


whatis Stichwortsuche in den Handbuchseiten. Rufen
Sie das Programm mit einem beliebigen
Suchbegriff auf, um das Handbuch Ihres
Betriebssystems nach exakten
Übereinstimmungen zu durchsuchen. Findet es
eine Entsprechung, gibt whatis eine
Kurzbeschreibung im Terminal aus.

whatis [OPTIONEN] SUCHBEGRIFF

Auch whatis (-w '*SUCHBEGRIFF') unterstützt


Platzhalter und reguläre Ausdrücke (-r).

Verzeichnisoperationen
Linux-Befehle für Verzeichnisoperationen verwenden Sie, um Verzeichnisse auf Ihrem System
über das Terminal zu erstellen, zu löschen und zu verwalten sowie im Verzeichnisbaum zu
navigieren. Zu den wichtigsten Kommandozeilenbefehlen aus dieser Kategorie
zählen cd, ls, mkdir, rmdir.

Befehl Beschreibung

Navigation im Verzeichnisbaum

Der Kommandozeilenbefehl cd steht für change


directory und dient der Navigation im Verzeichnisbaum.

Die Syntax des Befehls lautet:

cd cd [OPTION] VERZEICHNIS

Wird kein Zielverzeichnis angegeben,


wechselt cd automatisch in das Home-Verzeichnis des
Benutzers.

Wird cd mit einem nachgestellten Minus-Zeichen (-)


verwendet, erfolgt ein Wechsel ins vorherige Verzeichnis.

Programm in einem neuen Wurzelverzeichnis ausführen

Der Befehl chroot (kurz für: change root) wird verwendet, um


einen Befehl in einem anderen Wurzelverzeichnis
auszuführen. Zur Anwendung kommt chroot beispielsweise,
chroot um kritische Programme vom übrigen Dateisystem zu
isolieren. Man spricht in diesem Fall von einem chroot jail.

Der Aufruf des Programms erfordert Root-Rechte und


orientiert sich an folgendem Schema:

chroot VERZEICHNIS BEFEHL

Verzeichnisinhalte auflisten
ls
Der Kommandozeilenbefehl ls steht für list und wird
verwendet, um den Inhalt eines Verzeichnisses (die Namen
aller Dateien und Ordner, die sich im angegebenen
Verzeichnis befinden) anzuzeigen.

Die Syntax des Befehls lautet:

ls [OPTIONEN] VERZEICHNIS

Wird ls ohne Verzeichnis-Angabe benutzt, listet der Befehl


den Inhalt des aktuellen Verzeichnisses auf.

Mithilfe zusätzlicher Optionen definieren Sie, welche


Informationen angezeigt und wie diese dargestellt werden.

Verzeichnis erstellen

Der Kommandozeilenbefehl mkdir steht für make


directory und ermöglicht es Linux-Nutzern, neue
Verzeichnisse anzulegen.

Verwenden Sie folgende Syntax, um ein neues Verzeichnis


im aktuellen Verzeichnis zu erstellen:

mkdir [OPTION] VERZEICHNISNAME

Wahlweise lassen sich mehrere Verzeichnisse gleichzeitig


erstellen, indem Sie deren Namen durch ein Leerzeichen
mkdir getrennt aneinanderreihen:

mkdir [OPTION] VERZEICHNISNAME1


VERZEICHNISNAME2

Soll ein Verzeichnis in einem bestimmten Zielverzeichnis


erstellt werden, geben Sie den absoluten oder relativen Pfad
zum Verzeichnis an.

mkdir /home/user/Desktop/test

mkdir ../Desktop/test

Bei beiden Beispielen wird das Verzeichnis test im


Verzeichnis Desktop erstellt.

Verzeichnishierarchie erstellen

Mit mkdirhier lassen sich ganze Verzeichnishierarchien mit


mkdirhier einem einzigen Kommandozeilenbefehl erstellen:

mkdirhier
[OPTION]/home/user/verzeichnis1/verzeichnis2/verzeichnis
Existieren verzeichnis1 und verzeichnis2 bereits,
erstellt mkdirhier lediglich verzeichnis3. Andernfalls werden
alle drei Verzeichnisse erzeugt.

Verzeichnisname ausgeben

Nutzen Sie pwd (kurz für print working directory), um sich


den Namen des aktuellen Arbeitsverzeichnisses
pwd auszugeben zu lassen.

Die Syntax des Befehl lautet:

pwd [OPTIONEN]

Verzeichnis löschen

Möchten Sie ein bestimmtes Verzeichnis löschen, nutzen


Sie den Kommandozeilenbefehl rmdir (remove directory)
gemäß folgender Syntax:

rmdir [OPTION] VERZEICHNIS


rmdir Mit rmdir lassen sich lediglich leere Verzeichnis löschen. Um
ein Verzeichnis inklusive aller enthaltenen Dateien und
Unterordner zu löschen, verwenden Sie den
Befehl rm (remove) mit der Option -r.

Achtung: rmdir verlangt keine Bestätigung des


Löschvorgangs. Ausgewählte Verzeichnisse werden
unwiderruflich gelöscht.

Verzeichnisse in Baumstruktur auslisten

Während ls lediglich den Inhalt von Verzeichnissen auflistet,


lässt sich mit dem Kommandozeilenprogramm tree die
gesamte Verzeichnishierarchie rekursiv als Baumstruktur
ausgeben.

Der Aufruf erfolgt gemäß folgender Syntax:


tree
tree [OPTIONEN] [VERZEICHNIS]
Dateioperationen
Linux-Kommandos dieser Rubrik ermöglichen Ihnen diverse Dateioperationen aus dem Terminal
heraus. Nutzen Sie grundlegende Linux-Befehle wie cp, mv und rm, um Dateien auf Ihrem
System zu kopieren, zu verschieben, umzubenennen oder zu löschen.

Befehl Beschreibung

Dateiname ausgeben

Dem Kommandozeilenbefehl basename wird ein


Dateipfad übergeben; es gibt lediglich den
Dateinamen ohne vorangestellten Pfad zurück.

Die Syntax des Befehls lautet:

basename [OPTIONEN] Pfad/zur/Datei [SUFFIX]

Geben Sie beispielsweise $ basename


/home/user/bild.jpg ins Terminal ein, um
basename folgende Ausgabe zu erhalten:

bild.jpg

Die zusätzliche Angabe des Suffixes tilgt dieses


ebenfalls aus der Ausgabe.

Eingabe: $ basename /home/user/bild.jpg .jpg

Ausgabe: bild

Der Befehl kann durch Optionen auf mehrere


Dateien ausgeweitet werden.

Dateiinhalte zusammenführen

Das Kommandozeilenprogramm cat (kurz


für: concatenate) wurde als Werkzeug für das
Zusammenführen von Dateiinhalten entwickelt
und kann als Pager zum Anzeigen von
Dateiinhalten im Terminal eingesetzt werden.

cat Rufen Sie cat mit folgender Syntax im Terminal


auf, um eine Datei einzulesen und
auf stdout (der Standardausgabe) auszugeben:

cat OPTIONEN DATEI

Mehrere Dateien werden durch Leerzeichen


getrennt:

cat OPTIONEN DATEI1 DATEI2


Die Verknüpfung von Dateiinhalten erfolgt
mithilfe von Umleitungs-Operatoren (>, < und |).
Nutzen Sie beispielsweise den Operator „größer
als“ (>), um den Inhalt zweier Dateien in einer
Dritten zusammenzuführen:

cat datei_1.txt datei_2.txt > datei_3.txt

Dateien auf Byte-Ebene abgleichen

cmp ist Teil des diff-Pakets und dient wie dieses


dem Vergleich von Dateiinhalten. Anders als
bei diff erfolgt der Abgleich dabei auf Byte-Ebene
und eignet sich somit speziell für Binärdateien.

cmp Nutzen Sie cmp gemäß folgender Syntax:

cmp [OPTIONEN] DATEI1 DATEI2

Findet cmp Unterschiede, gibt das


Kommandozeilenprogramm Byte- und
Zeilennummer der ersten Abweichung im
Terminal aus.

Zeilenweise sortierte Dateien vergleichen

Nutzen Sie das


Kommandozeilenprogramm comm, um sortierte
Dateien (z. B. via sort) zeilenweise zu
vergleichen.

Dem Programmaufruf liegt folgende Syntax


zugrunde:

comm [OPTIONEN] DATEI1 DATEI2

Wird comm ohne Option aufgerufen, erzeugt das


Programm eine Ausgabe mit drei Spalten: Die
comm erste spalte beinhaltet alle Zeilen, die nur
in DATEI1 vorkommen, die zweite Spalte
beinhaltet alle Zeilen die nur
in DATEI2 vorkommen und die dritte Spalte
beinhaltet alle Zeilen, die in beiden Dateien
vorkommen.

Das Programm unterstützt drei Optionen:

-1 = einzigartige Zeilen
aus DATEI1 unterdrücken

-2 = einzigartige Zeilen
aus DATEI2 unterdrücken
-3 = alle Zeilen unterdrücken, die in beiden
Dateien enthalten sind

Dateien oder Verzeichnisse kopieren

Der Kommandozeilenbefehl cp (copy) kommt zur


Anwendung, um Dateien und Verzeichnisse zu
kopieren. Die grundlegende Syntax des Befehls
lautet:

cp [OPTIONEN] QUELLE ZIEL

Bei der QUELLE handelt es sich um das


Element, das kopiert werden soll. Als ZIEL des
Kopiervorgangs wird entweder eine Datei oder
eine Verzeichnis definiert. Definieren Sie eine
bereits vorhandene Datei als Zieldatei, wird
deren Inhalt mit dem der Quelldatei
überschrieben. Alternativ haben Sie die
Möglichkeit, die Zieldatei als neue Datei mit
gewünschtem Namen zu erstellen.

Sollen mehrere Dateien kopiert werden, muss


das Ziel ein Verzeichnis sein. Gleiches gilt für
den Fall, dass ein Verzeichnis kopiert wird.

Eine Quelldatei in eine Zieldatei im aktuellen


cp Verzeichnis kopieren:

cp [OPTIONEN] QUELLDATEI ZIELDATEI

Beispiel: cp datei.txt datei_kopie.txt

Eine Quelldatei aus dem aktuellen Verzeichnis in


ein Zielverzeichnis kopieren:

cp [OPTIONEN] QUELLDATEI
ZIELVERZEICHIS

Beispiel: cp datei.txt home/user/dokumente/2017

Mehrere Quelldateien in ein Zielverzeichnis


kopieren:

cp [OPTIONEN] QUELLDATEI1 QUELLDATEI2


ZIELVERZEICHNIS

Beispiel: cp datei.txt datei.odt


home/user/dokumente/2017

Ein Quellverzeichnis aus dem aktuellen


Verzeichnis in ein Zielverzeichnis kopieren:
cp QUELLVERZEICHNIS ZIELVERZEICHNIS

Beispiel: cp verzeichnis1
home/user/dokumente/2017

Sollen Verzeichnisse inklusive aller Inhalte


kopiert werden, müssen alle Unterverzeichnisse
mithilfe der OPTION -R in den Kopiervorgang
eingeschlossen werden.

Dateiinhalte extrahieren

Der Befehl cut ermöglicht es Ihnen, Inhalte


spaltenweise aus den Textzeilen einer Datei
(z. B. Log- oder CSV-Dateien) zu extrahieren.

Die Syntax des Befehls lautet:


cut
cut [OPTIONEN] DATEI

Die genaue Position eines zu extrahierenden


Ausschnitts wird über die Optionen -
b (Byteposition), -c (Zeichenposition), -
d (Trennzeichen) und -f (Feld) definiert.

Dateien oder Verzeichnisse abgleichen

Das Kommandozeilenprogramm diff dient dem


Vergleich zweier Dateien. Alternativ lässt sich
via diff ermitteln, ob zwei Verzeichnisse gleiche
diff Dateien beinhalten.

Der Aufruf im Terminal Erfolg gemäß folgender


Syntax:

diff [OPTIONEN] DATEI1 DATEI2

Dateipfad ausgeben

dirname stellt das Gegenstück zu basename dar.


Der Kommandozeilenbefehl ermöglicht es, den
Pfadanteil aus einem Dateipfad zu extrahieren
und ohne Dateinamen im Terminal auszugeben.
dirname
Die Syntax des Befehls lautet:

dirname [OPTIONEN]

Geben Sie beispielsweise $ dirname


/home/benutzer/bild.jpg ins Terminal ein, um
folgende Ausgabe zu erhalten:
/home/benutzer

Dateityp ausgeben

Mit dem Kommandozeilenbefehl file lassen sich


Informationen zum Dateityp einer Datei
file ausgeben.

Dem Aufruf liegt folgendes Schema zugrunde:

file [OPTIONEN] DATEI

Verknüpfung zu Datei oder Verzeichnis


erstellen

Das Kommandozeilenprogramm ln (kurz für link)


erzeugt eine Verknüpfung zu einer Datei oder
einem Verzeichnis. Dadurch wird ein weiterer
Verzeichnis-Eintrag für diese Datei erzeugt, der
es Ihnen ermöglicht, über einen weiteren Datei-
Pfad auf die entsprechende Datei zuzugreifen.

Der Aufruf des


Kommandozeilenprogramms ln muss immer
mindestens den Pfad zur Quelldatei enthalten.

ln [OPTIONEN] pfad/zur/quelldatei

Die Verlinkung wird in diesem Fall im aktuellen


Arbeitsverzeichnis unter demselben Namen
erstellt.
ln
Alternativ haben Sie die Möglichkeit, einen
Zielpfad anzugeben und die Verknüpfung
beliebig zu benennen:

ln [OPTIONEN] pfad/zur/quelldatei
pfad/zur/verknüpfung

ln erstellt in der Standardeinstellung sogenannte


Hardlinks. Diese eignen sich nicht, um
Verknüpfungen zu Verzeichnissen zu erstellen.
Zudem lassen sich Hardlinks nicht über
Partitionsgrenzen hinweg verwenden. Der Befehl
kommt daher oft mit der OPTION -s (--symbolic)
zum Einsatz, mit der sich sogenannte
symbolische Verknüpfungen auch über
Dateisystemgrenzen hinweg erstellen lassen.
Symbolische Links verweisen immer auf einen
„echten“ Dateipfad und hängen von diesem ab.
Geöffnete Dateien im Terminal ausgeben

lsof steht für list open files, ein Hilfsprogramm,


das Ihnen Informationen über geöffnete Dateien
nach PID (Prozess-ID) sortiert im Terminal
ausgibt.

Der Aufruf über das Terminal erfolgt nach


lsof folgendem Schema:

lsof [OPTIONEN]

Da unixoide Systeme wie Linux dem Grundsatz


„Everything is a file“ (Alles ist eine Datei) folgen,
ist die Liste, die lsof ausgibt, entsprechend lang.
In der Regel kommen daher Optionen zum
Einsatz, um die Ausgabe einzugrenzen.

Prüfsummen berechnen

Mithilfe des
md5sum Kommandozeilenbefehls md5sum lassen sich
MD5-Prüfsummen für Dateien berechnen und
überprüfen.

Datei oder Verzeichnis verschieben

Das Kommandozeilenprogramm mv (move)


kopiert eine Datei oder ein Verzeichnis und
löscht das Ursprungselement. Erfolgt dies
innerhalb desselben Verzeichnisses,
kann mv zum Umbenennen von Dateien
verwendet werden.

Dem Programmaufruf liegt folgendes Schema


zugrunde:

mv [OPTION] QUELLE ZIEL


mv
Anwendungsbeispiele:

Eine Datei in ein anderes Verzeichnis


verschieben:

mv [OPTIONEN] QUELLDATEI
ZIELVERZEICHNIS

Beispiel: mv datei1.txt
home/user/dokumente/2017

Mehrere Quelldateien in ein Zielverzeichnis


verschieben:
mv [OPTIONEN] QUELLDATEI1 QUELLDATEI2
ZIELVERZEICHNIS

Beispiel: mv datei1.txt datei2.txt


home/user/dokumente/2017

Unterverzeichnis aus dem aktuellen Verzeichnis


in ein Zielverzeichnis verschieben:

mv [OPTIONEN] VERZEICHNISNAME_ALT
VERZEICHNISNAME_NEU

Beispiel: mv verzeichnis1
home/user/dokumente/2017

Datei im aktuellen Verzeichnis umbenennen:

mv [OPTIONEN] DATEINAME_ALT
DATEINAME_NEU

Beispiel: mv datei1.txt datei2.txt

Unterverzeichnis im aktuellen Verzeichnis


umbenennen:

mv [OPTIONEN] VERZEICHNISNAME_ALT
VERZEICHNISNAME_NEU

Beispiel: mv verzeichnis1 verzeichnis2

Dateiinhalte spaltenweise zusammenführen

Ähnlich wie cat ermöglicht auch das


Kommandozeilenprogramm paste die Ausgabe
von Dateiinhalten auf die Standardausgabe.
Doch während cat Inhalte lediglich
aneinanderfügt, verknüpft paste diese
spaltenweise.

Das Grundschema des Befehls lautet:


paste
paste [OPTIONEN] DATEI1 DATEI2 …

Im Standardmodus werden die aufgeführten


Dateien so zusammengeführt, dass alle Zeilen
mit derselben Zeilennummer in dieselbe Zeile
der Ausgabe übertragen werden. Jede Zeile der
Ausgabe enthält somit Inhalte aller
Eingabedateien.

Welches Trennzeichen paste verwendet, lässt


sich mithilfe der Option -d individuell anpassen.
Als Standardtrennzeichen kommen Tabs zum
Einsatz.

Über die Option -s (seriell) lässt sich zudem ein


zweiter Modus aktivieren. Bei diesem werden
alle Zeilen der ersten Eingabedatei in die erste
Zeile der Ausgabe übertragen. Die Daten aller
anderen Eingabedateien folgen jeweils in
separaten Ausgabezeilen. Jede Zeile der
Ausgabe enthält somit lediglich Inhalte einer
Eingabedatei.

Dateien umbenennen

Bei rename handelt es sich um ein


Kommandozeilenprogramm, das es ermöglicht,
Dateien und Ordner mithilfe perl-kompatibler
regulärer Ausdrucke (Regex) umzubenennen.
Anders als mv bietet sich rename damit für
Dateioperationen an, bei denen die Namen
mehrerer Dateien teilweise oder ganz angepasst
werden sollen.

Verwenden Sie rename nach folgendem


rename Schema:

rename [OPTIONEN]
'REGULÄRER_AUSDRUCK' DATEIEN

Reguläre Ausdrücke entsprechen bei


Ersetzungen folgender Syntax:

s/SUCHMUSTER/ERSETZUNG/MODIFIER

In folgendem Beispiel werden alle .html-


Dateiendungen in .xhtml umbenannt.

rename 's/\.html$/.xhtml/' *.html

Datei oder Verzeichnis löschen

Das Kommandozeilenprogramm rm (remove)


löscht Dateien oder ganze Verzeichnisse
unwiederbringlich.
rm
Dem Programmaufruf liegt folgendes Schema
zugrunde:

rm [OPTIONEN] DATEI

oder
rm [OPTIONEN] VERZEICHNIS

Soll ein Verzeichnis inklusive aller


Unterverzeichnisse gelöscht werden, verwenden
Sie rm mit der OPTION -R (--recursive).

rm -R VERZEICHNIS

Mehrere Dateien oder Verzeichnisse werden mit


Leerzeichen getrennt.

rm [OPTIONEN] DATEI1 DATEI2 …

Dateien „schreddern“

Bei shred handelt es sich um ein


Kommandozeilenprogramm, das ein sicheres
Löschen von Dateien ermöglicht. Ausgewählte
Elemente werden im Rahmen des
Löschvorgangs überschrieben und lassen sich
somit selbst mit forensischen Mitteln nicht
wiederherstellen.

Die allgemeine Syntax des Befehls lautet:

shred shred [OPTIONEN] DATEI

Nutzen Sie shred mit folgenden Optionen, um


eine einzelne Datei unwiederbringlich zu
löschen:

shred -fuz DATEI

Die Option -f erzwingt den Löschvorgang, -


z überschreibt die Dateiinhalte mit Nullen
(voreingestellt sind Zufallsdaten). Abschließend
entfernt -u ähnlich wie das rm-Kommando die
geschredderte Datei aus dem Dateisystem.

Dateilisten und Programmausgaben sortieren

Nutzen Sie den Kommandozeilenbefehl sort, um


Dateilisten und Programmausgaben zeilenweise
numerisch und alphabetisch zu sortieren.
sort
Die allgemeine Syntax des Befehls lautet:

sort [OPTIONEN] DATEI

Die Sortiermethode lässt sich mithilfe von


Optionen anpassen: zum Beispiel numerisch (-
n), zufällig (-R) oder in umgekehrter Reihenfolge
(-r).

Dateien aufteilen

Der Kommandozeilenbefehl split wird verwendet,


um Dateien aufzuteilen.

Die zugrundeliegende Syntax lautet:

split [OPTIONEN] [INPUT [PRÄFIX]]

Der Platzhalter INPUT entspricht der Datei, die


aufgeteilt werden soll. Das PRÄFIX fungiert als
Vorsilbe für die Namen der Teildateien. Deren
Benennung liegt folgendes Schema zugrunde:

PRÄFIXaa, PRÄFIXab, PRÄFIXac …

Wird kein Präfix definiert, greift split auf das


Standardpräfix xzurück.

Mit der Option -b (Bytes) lässt sich die Größe der


Teildateien festlegen. Die Angabe erfolgt
split wahlweise in Byte (b), Kilobyte (k) oder
Megabyte (m).

Beispiel:

split -b 95m archiv.tgz split-archiv.tgz.

Der Befehl split teilt die Datei archiv.tgz in


Teildateien zu 95 Megabyte auf und benennt
diese wie folgt:

split-archiv.tar.aa

split-archiv.tar.ab

split-archiv.tar.ac

Durch split aufgeteilte Dateien lassen sich


mithilfe des Kommandozeilenbefehls cat wieder
zusammenführen.

cat split-archiv.tar.* > archiv.tar

Zeitstempel ausgeben
stat
Mit dem Kommandozeilenbefehl stat (status)
lassen sich Zugriffs- und Änderungs-Zeitstempel
ausgewählter Dateien und Verzeichnisse
ausgeben.

Die allgemeine Syntax des Befehls lautet:

stat [OPTIONEN] DATEI

Das Ausgabeformat lässt sich mithilfe von


Optionen anpassen.

Zeitstempel ändern

Der Kommandozeilenbefehl touch wird


verwendet, um Zugriffs- und Änderungs-
Zeitstempel von Dateien zu verändern.
Wird touchauf eine nicht-existente Datei
angewendet, wird diese automatisch angelegt.
Der Befehl eignet sich daher auch dazu, leere
Dateien zu erstellen.

Nutzen Sie touch nach folgendem Schema:

touch [OPTIONEN] DATEI

Um den Zeitstempel einer Datei auf ein


touch gewünschtes Datum zu setzten, verwenden Sie
die OPTION -t inklusive Zeitangabe im
Format [JJ]MMTThhmm[.ss].

Beispiel:

touch -t 1703231037 datei.txt

Zugriffs- und Änderungszeitstempel werden auf


den 23. März 2017, 10:37 gesetzt. Die
Modifikation lässt sich über die Optionen -a und -
m auf Zugriffs- bzw. Änderungszeitstempel
eingrenzen.

Wird der Befehl touch ohne Option -t verwendet,


kommt der aktuelle Zeitstempel zum Einsatz.

Dopplungen in Dateilisten und


Programmausgaben tilgen

Der Kommandozeilenbefehl uniq wird in der


uniq Regel in Kombination mit sort verwendet, um
sortierte Dateien von doppelten Zeilen zu
bereinigen.

In folgendem Beispiel wird der Befehl sort durch


eine Pipe (|) mit dem Befehl uniq verknüpft, um
eine Datei zunächst zu sortieren und
anschließend ohne doppelte Zeilen auszugeben:

sort datei.txt | uniq

Rechteverwaltung
Unter Linux lassen sich Zugriffs- und Besitzrecht für Dateien und Verzeichnisse bequem über
das Terminal anpassen. Die wichtigsten Kommandozeilenbefehle für die Rechteverwaltung
sind chown und chmod. Gruppenzugehörigkeiten werden über den Befehl chgrp verwaltet.

Befehl Beschreibung

Dateiattribute verwalten

Das Kommandozeilenprogramm chattr (kurz


für change attribute) ermöglicht es Ihnen,
Dateien oder Verzeichnisse mit Attributen zu
versehen. Eine Anpassung von Datei-Attributen
wird von diversen Dateisystemen (z.B. ext2,
ext3, ext4, XFS, ReiserFS, JFS und OCFS2)
unterstützt.

Nutzen Sie chattr gemäß folgender Syntax, um


ein Attribut zu setzen:

chattr [OPTIONEN] +ATTRIBUT DATEI


chattr
Gesetzte Attribute lassen sich nach demselben
Schema wieder entfernen:

chattr [OPTIONEN] -ATTRIBUT DATEI

Setzten Sie beispielsweise das Attribut -i, um


Änderungen (Löschvorgänge oder
Modifikationen) an einer Datei oder einem
Verzeichnis zu unterbinden:

chattr +i datei.txt

Weitere Attribute und mögliche Optionen


entnehmen Sie der Handbuchseite zum
Programm chattr.

Gruppenzugehörigkeit von Dateien und


Verzeichnissen verwalten
chgrp Der Befehl chgrp steht für change group und
kommt bei der Verwaltung von
Gruppenzugehörigkeiten für Dateien und
Verzeichnisse zur Anwendung. Um chgrp auf
eine ausgewählte Datei oder ein Verzeichnis
anwenden zu können, müssen Sie Eigentümer-
oder Root-Rechte besitzen. Zudem stehen
lediglich Gruppen zur Auswahl, denen Sie selber
angehören.

chgrp kommt gemäß folgender Syntax zur


Anwendung:

chgrp [OPTIONEN] GRUPPE DATEI

oder:

chgrp [OPTIONEN] GRUPPE VERZEICHNIS

Die Option -R bezieht Unterordner und in einem


Verzeichnis enthaltene Dateien mit ein.

Zugriffsrechte verwalten

Das Kommandozeilenprogramm chmod (kurz


für change mode) dient der Rechtevergabe in
unixoiden Dateisystemen (z.B. ext2, ext3, ext4,
reiser, xfs).

Die allgemeine Syntax des Befehls lautet:

chmod [OPTIONEN] MODUS DATEI

bzw.
chmod
chmod [OPTIONEN] MODUS VERZEICHNIS

Der Platzhalter MODUS steht dabei für die


anzuwendende Rechtemaske. Wie Sie eine
solche erstellen und was dabei zu beachten ist,
erfahren Sie in unserem weiterführenden Artikel
zur Vergabe von Zugriffsrechten mit chmod.

Mithilfe der Option -R lassen sich vergebene


Rechte rekursiv auf Unterordner und in einem
Verzeichnis enthaltene Dateien ausweiten.

Besitzrechte verwalten

In der Regel ist der Ersteller einer Datei oder


eines Verzeichnisses automatisch dessen
chown Besitzer (owner). Der Befehl chown steht
für change owner und bietet Ihnen die
Möglichkeit, diese Eigentümereinstellungen
anzupassen.
Der Befehl kommt nach folgendem Schema zum
Einsatz:

chown [OPTIONEN] [BENUTZER][:[GRUPPE]]


DATEI

bzw.

chown [OPTIONEN] [BENUTZER][:[GRUPPE]]


VERZEICHNIS

Um das Eigentümerrecht für Benutzer oder


Gruppen zu setzen, stehen Ihnen vier
Kombinationsmöglichkeiten zur Verfügung.

Besitzer und Gruppe werden entsprechend der


Angaben neu gesetzt:

chown [OPTIONEN]
besitzer_name:gruppen_name datei.txt

Die Gruppe wird entsprechend der Angabe neu


gesetzt, der Benutzer bleibt unverändert:

chown [OPTIONEN] :gruppen_name datei.txt

Der Besitzer wird entsprechend der Angabe neu


gesetzt, die Gruppe bleibt unverändert:

chown [OPTIONEN] besitzer_name datei.txt

Der Benutzer wird entsprechend der Angabe neu


gesetzt. Die Gruppe wird auf die Standardgruppe
des eingeloggten Benutzers gesetzt:

chown [OPTIONEN] besitzer_name: datei.txt

Die Änderungen lassen sich mithilfe der


OPTION -R rekursiv auf Unterverzeichnisse
ausweiten.

Dateiattribute anzeigen

Möchten Sie sich anzeigen lassen, welche


Attribute für eine Datei oder ein Verzeichnis
gesetzt wurden, verwenden Sie den
lsattr Kommandozeilenbefehl lsattr (kurz für list
attributes) nach folgendem Schema:

lsattr [OPTIONEN] DATEI/VERZEICHNIS


Suchoptionen
Linux bietet diverse Kommandozeilenbefehle, mit denen sich das System direkt aus dem
Terminal heraus durchsuchen lässt.

Befehl Beschreibung

Dateisystem durchsuchen

Bei find handelt es sich um ein


Kommandozeilenprogramm, das der Suche nach
Dateien dient.

Dem Programmaufruf liegt folgende Syntax


zugrunde:

find [OPTIONEN] [VERZEICHNIS]


[SUCHBEDINGUNG ][AKTIONEN]

Das angegebene Verzeichnis gilt als


Startverzeichnis der Suche. Es werden somit
das Startverzeichnis und dessen
Unterverzeichnisse durchsucht. Geben Sie kein
Verzeichnis an, startet find die Suche vom
aktuellen Arbeitsverzeichnis aus.

Optionen ermöglichen es Ihnen, Suchkriterien


und Aktionen zu definieren. Als Standardaktion
ist -print voreingestellt: Die Ausgabe der
find vollständigen Dateinamen aller Suchergebnisse
auf die Standardausgabe (in der Regel das
Terminal).

Gängige Suchkriterien sind der Dateiname (-


name DATEINAME[SUFFIX]), ein
Benutzername (-user BENUTZERNAME), die
Dateigröße (-size n[cwbkMG]), der
Zugriffszeitpunkt in Tagen (-atime [+-]n) oder der
Änderungszeitpunkt in Tagen (-mtime [+-]n).

Bei der Suchen nach Dateinamen lassen sich


Metazeichen und Platzhalter verwenden. Setzen
Sie diese in Anführungszeichen, um eine
Interpretation durch die Shell zu unterbinden.

Beispiel:

find /tmp -name "*.odt" -mtime -3 -size +20k

Als Startverzeichnis ist das


Verzeichnis /tmp definiert. Das
Kommandozeilenprogramm find gibt alle Dateien
auf die Standardausgabe aus, die die
Dateiendung .odt aufweisen, größer als 20k sind
und vor weniger als 3 Tagen das letzte Mal
geändert wurden.

Weitere Optionen für den


Suchbefehl find entnehmen Sie der
Handbuchseite zum Programm.

Textdateien durchsuchen

Mit dem Befehl grep (kurz für global regular


expression print) lassen sich Textdateien (z. B.
Log-Dateien) durchsuchen. Als Suchmuster
können beliebige Zeichenfolgen oder reguläre
Ausdrücke zum Einsatz kommen.

Nutzen Sie grep gemäß folgender Syntax:

grep grep [OPTIONEN] SUCHMUSTER [DATEI(EN)]

Stößt grep auf einen String, der dem


Suchmuster entspricht, wird die Zeilennummer
unter Angabe des Dateinamens im Terminal
ausgegeben.

In der Regel wird grep auf alle Dateien im


aktuellen Verzeichnis angewendet. Die Option -
r ermöglicht eine rekursive Suche in
Unterverzeichnissen.

Dateiindex durchsuchen

Auch das
Kommandozeilenprogramm locate ermöglicht
eine Suche nach Dateien über das Terminal.
Anders als bei find wird dabei jedoch nicht das
Dateiverzeichnis durchsucht, sondern eine
speziell dafür angelegte regelmäßig aktualisierte
Datenbank. Dadurch
locate liefert locate Suchergebnisse deutlich schneller
aus als find.

Um die Datenbank nach einer bestimmten Datei


zu durchsuchen, wird locate nach folgendem
Schema aufgerufen:

locate SUCHMUSTER

Das Suchmuster kann Metazeichen wie


Platzhalter (*) beinhalten. Setzen Sie
Suchmuster dieser Art in Anführungszeichen, um
die Interpretation durch die Shell zu unterbinden.

In folgendem Beispiel gibt locate alle Dateien mit


der Endung .pngaus.

locate "*.png"

Der Befehl locate ist case-sensitive. Um


Unterschiede in Groß- und Kleinschreibung bei
der Suche zu übergehen, nutzen Sie die Option -
i.

Als Datenbank für die Indexierung von Dateien


fungiert die Datei /var/lib/locatedb. Diese
beinhaltet eine Liste aller Dateien des
Dateisystems zu einem bestimmten Zeitpunkt
und muss regelmäßig aktualisiert werden.
Nutzen Sie dazu den Befehl updatedb.

Unscharfe Suche in Textdateien

Auch tre-agrep dient der Suche nach Strings in


Textdateien auf Basis von Suchmustern. Anders
als bei grep werden dabei nicht nur exakte
Übereinstimmungen ausgegeben, sondern auch
Unschärfen wie Buchstabendreher oder fehlende
Zeichen zugelassen. Das Programm stützt sich
auf die TRE-Bibliothek und macht diese in der
Kommandozeile nutzbar.

Die Syntax von tre-agrep entspricht der


des grep-Befehls:

tre-agrep tre-agrep [OPTIONEN] SUCHMUSTER


DATEI(EN)

Über Optionen lässt sich eine maximale


Fehleranzahl definieren. In folgendem Beispiel
wird maximal eine Abweichung vom Suchmuster
toleriert.

tre-agrep -1 'Linux' test.txt

tre-agrep gibt alle Zeilen der


Textdatei test.txt aus, die Wörter beinhalten, die
sich mit dem Suchmuster decken oder von
diesem maximal durch einen Buchstaben
unterschieden: z.B. Linus.

updatedb Dateiindex aktualisieren


Eine Suche via locate funktioniert nur
zuverlässig, wenn die
Datei /var/lib/locatedb kontinuierlich auf dem
neusten Stand gehalten wird. Der
Befehl updatedb ermöglicht es Ihnen, die
Datenbank manuell zu aktualisieren. Beachten
Sie, dass Sie für den Aufruf Root-Rechte
benötigen:

updatedb

Binär-, Quellcode-, oder Handbuchseiten von


Programmen suchen

Mit dem Befehl whereis lokalisieren Sie die


Binär-, Quellcode- oder Handbuch-Dateien
ausgewählter Programme.

Die allgemeine Syntax des Befehls lautet:

whereis [OPTIONEN] PROGRAMM

Beispiel:
whereis
whereis firefox

Als Output schreibt whereis die Pfade zu den


gefundenen Dateien durch Leerzeichen getrennt
ins Terminal:

firefox: /usr/bin/firefox/ usr/lib/firefox/


usr/share/man/man1/firefox.1.gz

Über Optionen lässt sich die Suche auf


bestimmte Datei-Typen oder Verzeichnisse
eingrenzen.

Binärdateien von Programmen ermitteln

Möchten Sie die Binärdatei eines Programms


ermitteln, verwenden Sie den Befehl which nach
folgendem Schema, um sich den Pfad im
Terminal ausgeben zu lassen.
which
which [OPTIONEN] PROGRAMM

Beispiel:

which firefox

Output:
/usr/bin/firefox

Im Standardmodus gibt which die erste Datei


aus, die gefunden wird. Verwenden Sie die
Option -a, um sich alle Dateien anzeigen zu
lassen, die das Suchkriterium erfüllen.

User-Informationen
Nutzen Sie die Kommandozeilenprogramme der folgenden Kategorie, um detaillierte
Informationen zu den im System registrierten Benutzern sowie zu deren Gruppen und
Prozessen abzurufen.

Befehl Beschreibung

Benutzerinformationen abrufen

Das Kommandozeilenprogramm finger dient


dem Abruf von Benutzerinformationen. Dazu
wird der gleichnamige Befehl in Kombination mit
dem gewünschten Benutzernamen übergeben:

finger [Optionen] [BENUTZERNAME]

Die Ausgabe umfasst folgende Informationen


zum angegebenen Benutzer-Account: Login-
Name, realer Name, Login-Zeit, Zeit seit der
finger letzten Aktivität (Idle-Time), das Home-
Verzeichnis des Nutzers, die Login-Shell,
Standort (Office number), Mail und
Telefonnummer (falls vorhanden) sowie die
Inhalte der
Dateien .plan, .project, .pgpkey und .forward im
Home-Verzeichnis des Benutzers (falls
vorhanden).

Verwenden Sie finger ohne Benutzernamen, um


Informationen zu Ihrem eigenen Account
abzurufen.

Gruppenzugehörigkeit abrufen

Der Befehl groups listet die


Gruppenzugehörigkeiten eines ausgewählten
groups Benutzer-Accounts auf.

Nutzen Sie den Kommandozeilenbefehl nach


folgendem Schema:

groups [OPTIONEN] [BENUTZERNAME]


Verwenden Sie groups ohne Benutzername, um
alle Gruppen aufzulisten, denen Ihr Benutzer-
Account angehört.

Benutzer- und Gruppen-IDs abrufen

Der Kommandozeilenbefehl id gibt Benutzer-


und Gruppenkennungen des ausgewählten
Benutzer-Accounts aus.

id id [OPTIONEN] [BENUTZERNAME]

Ihre eigenen IDs ermitteln Sie, indem Sie den


Befehl ohne Benutzernamen übergeben.

Der Umfang der Ausgabe lässt sich über


Optionen einschränken.

Informationen zu zuletzt angemeldeten


Benutzern abrufen

Nutzen Sie den Befehl last nach folgendem


Schema, um sich eine Liste der zuletzt
angemeldeten Nutzer inklusive Login- und
Logout-Zeiten ausgeben zu lassen:

last [OPTIONEN]
last
Die entsprechenden Informationen werden aus
der wtmp-Datei unter /var/log/wtmp abgerufen.
Möchten Sie lediglich die Informationen zu
einem bestimmten Account abfragen, übergeben
Sie den Kommandozeilenbefehl mit dem
gewünschten Benutzernamen.

last [OPTIONEN] [BENUTZERNAME]

Aktuelle Benutzer und deren Prozesse


abrufen

Der Befehl w gibt eine Liste aller angemeldeten


Benutzer aus inklusive aller Prozesse, die von
w diesen ausgeführt werden.

Verwenden Sie w in Kombinationen mit einem


Benutzernamen, um den Befehl auf diesen
Nutzer zu beschränken:

w [OPTIONEN] [BENUTZERNAME]
Umfang und Format der Ausgabe lassen sich bei
Bedarf durch Optionen anpassen.

Detaillierte Informationen zu angemeldeten


Benutzern abrufen

Der Befehl who gibt Ihnen detaillierte


Informationen über die am System
angemeldeten Benutzer aus.

Die allgemeine Syntax des Aufrufs lautet

who [OPTION] [QUELLDATEI]

who unterstützt diverse Optionen, mit denen sich


der Umfang der ausgegeben Informationen
anpassen lässt.

Standardmäßig bezieht who Daten über aktuell


who
angemeldete Nutzer aus der Datei /var/run/utmp.

Optional kann eine der folgenden Dateien als


Quelle der Informationen angeben werden.

Möchten Sie Informationen zu früheren


Anmeldungen abrufen, verwenden Sie who in
Kombination mit der Quelldatei /var/log/wtmp:

who [OPTION] /var/log/wtmp

Informationen zu missglückten Anmeldungen


erhalten Sie, in dem Sie who mit der
Datei /var/log/btmp aufrufen:

who [OPTION] /var/log/btmp

Eigenen Benutzernamen abrufen

Nutzen Sie den Befehl whoami, um Ihren


whoami
eigenen Benutzernamen abzurufen.

whoami [OPTIONEN]

User-Account-Management
Linux bietet Ihnen eine Reihe von Programmen, mit denen Sie Benutzer-Accounts und Gruppen
direkt über das Terminal anlegen, löschen und verwalten. Eine Übersicht der wichtigen Linux-
Befehle für das User-Account-Management haben wir Ihnen im Folgenden zusammengestellt.
Darüber hinaus finden Sie in dieser Kategorie Linux-Terminal-Befehle, die es Ihnen ermöglichen,
Programme mit den Rechten anderer Benutzer inklusive des Super-Users Root aufzurufen.
Befehl Beschreibung

Benutzer-Account anlegen

Die einfachste Möglichkeit, einen Benutzer-


Account anzulegen, bietet das
Kommandozeilenprogramm adduser. Dieses
erfordert Root-Rechte und wird gemäß folgender
Syntax verwendet:

adduser [OPTIONEN] BENUTZERNAME

Verwenden Sie adduser ohne Optionen, werden


neben dem neuen Benutzer-Account
automatisch eine Benutzer-ID, das Home-
Verzeichnis und eine gleichnamige
Benutzergruppe angelegt

Beispiel:

adduser test

Terminal-Output:

adduser Adding user 'test' (1001) …

Adding new group 'test' (1001) …

Adding new user 'test' (1001) with group 'test' …

Creating home directory '/home/test' …

Copying files from '/etc/skel' …

Anschließend folgt ein interaktiver Dialog, in dem


Sie das Passwort sowie die erweiterten
Benutzerinformationen (realer Name,
Büronummer, Telefonnummern etc.) definieren
können.

Dieser Automatismus lässt sich durch


zusätzliche Optionen anpassen oder
unterbinden.

Das Perl-Skript adduser basiert auf dem Low-


Level-Programm useradd und bietet dieselben
Funktionen in nutzerfreundlicher Form.

Erweiterte Benutzerinformationen anpassen


chfn Der Kommandozeilenbefehl chfn (kurz
für change finger) ermöglicht es Ihnen, die
erweiterten Informationen eines Benutzer-
Accounts wie den realen Namen, die
Büronummer sowie private und dienstliche
Telefonnummern anzupassen.

Die allgemeine Syntax von chfn lautet:

chfn [OPTION "NEUER WERT"]


[BENUTZERNAME]

Der Befehl muss mit Root-Rechten ausgeführt


werden.

Welche Benutzerinformation durch einen neuen


Wert ersetzt wird, definieren Sie mithilfe der
Optionen -f (realer Name), -r(Büronummer), -
w (Dienstnummer) und -h (Privatnummer).

In folgendem Beispiel wird die alte Büronummer


von peter23 mit dem neuen Wert 122
überschrieben.

chfn -r "122" peter23

Standard-Shell ändern

Der Kommandozeilenbefehl chsh (kurz


für change shell) ändert die Login-Shell eines
ausgewählten Benutzers.

Orientieren Sie sich bei der Eingabe an


folgendem Schema:

chsh [OPTIONEN] BENUTZERNAME

Um die Login-Shell eines Benutzers


anzupassen, wird chsh mit der Option -
s verwendet. Diese erwartet den Pfad zur
chsh
gewünschten Shell (z.B /usr/bin/fish).

Beachten Sie: Nutzer ohne Root-Rechte dürfen


nur ihre eigene Shell anpassen. Möchten Sie die
Shell anderer Benutzer ändern, führen Sie den
Befehl mit Root-Rechten aus.

Beispiel:

sudo chsh -s /usr/bin/fish peter23

Für den Benutzer peter23 wird die


Shell fish (friendly interactive shell) als Standard
definiert.
Der Wechsel der Shell tritt erst dann in Kraft,
wenn sich der Benutzer ab- und wieder
anmeldet.

Benutzer-Account löschen

Das Kommandozeilenprogramm deluser löscht


sämtliche Einträge für einen ausgewählten
Benutzer-Account aus den System-Account-
Dateien.

Der Aufruf von deluser erfordert Root-Rechte


und orientiert sich an folgendem Schema:

deluser [OPTIONEN] BENUTZERNAME

Beispiel:

deluser peter23

Der Benutzer-Account peter23 wird gelöscht.

Möchten Sie darüber hinaus auch alle Dateien


im Home-Verzeichnis des Nutzers löschen,
deluser verwenden Sie den Befehl mit der Option --
remove-home. Sollen alle Dateien des Nutzers
aus dem System entfernt werden, kommt die
Option --remove-all-files zum Einsatz.

deluser --remove-all-files peter23

Sollen alle Dateien des Benutzers vor dem


Löschen gesichert werden, verwenden
Sie deluser in Kombination mit der Option --
backup-to und geben Sie das gewünschte
Verzeichnis an.

deluser --backup-to /Pfad/zum/Verzeichnis


peter23

Bei deluser handelt sich um ein Perl-Skript, das


Ihnen die Funktionen des Low-Level-
Programms userdel in nutzerfreundlicherer Form
zur Verfügung stellt.

Benutzergruppen anlegen

Das Kommandozeilenprogramm groupadd dient


groupadd dem Anlegen neuer Benutzergruppen.

Verwenden Sie groupadd mit Root-Rechten


nach folgendem Schema:
sudo groupadd [OPTIONEN] GRUPPE

Jede neu erstelle Gruppe erhält eine einzigartige


Gruppen-ID (GID). Gruppen-IDs zwischen 0 und
99 sind für Systemgruppen reserviert. Möchten
Sie die GID einer neuen Benutzergruppe selbst
definieren, verwenden Sie den
Kommandozeilenbefehl groupaddmit der
Option -g (GID).

In folgendem Beispiel wird die Gruppe users mit


der GID 1425 erstellt.

groupadd -g 1425 users

Möchten Sie eine Systemgruppe anlegen,


verwenden Sie die Option -r (root).

Benutzergruppe löschen

Der Kommandozeilenbefehl delgroup (kurz


für delete group) löscht eine bestehende
Benutzergruppe.

Die allgemeine Syntax von delgroup lautet:

delgroup [OPTIONEN] GRUPPE

Um den Befehl auszuführen zu können, werden


delgroup Root-Rechte benötigt.

Folgender Aufruf führt dazu, dass die


Gruppe users gelöscht wird:

delgroup users

Ähnlich wie bei deluser handelt sich hier um ein


Perl-Skript, das Ihnen die Funktionen des Low-
Level-Programms groupdel in nutzerfreundlicher
Form zur Verfügung stellt.

Benutzergruppe anpassen

Via groupmod lassen sich der Name und die


Gruppen-ID (GID) einer bestehenden
groupmod Benutzergruppe anpassen.

Der Kommandozeilenbefehl wird mit Root-


Rechten nach folgendem Schema verwendet:

groupmod OPTIONEN GRUPPE


Verwenden Sie groupmod mit der Option -g, um
die GID anzupassen. Ein Aufruf mit der Option -
n überschreibt den Gruppennamen.

Beispiele:

groupmod -g 1800 users

Die GID der Gruppe users wird auf 1800 gesetzt.

groupmod -n all users

Die gruppe users wird in all umbenannt.

Benutzergruppe wechseln

Bei newgrp (kurz für new group) handelt es sich


um einen Befehl, der es angemeldeten
Benutzern ermöglicht, ihre aktuelle Gruppen-ID
zu wechseln, ohne sich dafür erneut an- und
abmelden zu müssen.

Die allgemeine Syntax des Befehls lautet:

newgrp [-] [GRUPPE]

Wird newgrp mit dem optionalen Parameter [-]


newgrp übergeben, führt der Gruppenwechsel zu einem
Neustart der Benutzerumgebung – so, als ob
sich der Benutzer neu angemeldet hätte.

Benutzer, die newgrp ohne Gruppenangabe


verwenden, wechseln in die
unter /etc/passwd angegebene Standardgruppe.

Prinzipiell muss ein Benutzer Mitglied der


Gruppe sein, in die er wechseln möchte. Eine
Ausnahme stellen passwortgeschützte Gruppen
dar. Ist eine Gruppe durch ein Passwort
geschützt, wird dieses vor dem Wechsel über
das Terminal abgefragt.

Benutzerpasswort ändern

Verwenden Sie das


Kommandozeilenprogramm passwd, um das
passwd Passwort eines Benutzers zu ändern oder Sperr-
und Änderungsintervalle zu definieren.

Dem Befehl liegt folgende Syntax zugrunde:

passwd [OPTIONEN] BENUTZERNAME


Möchten Sie das Passwort eines anderen
Benutzers ändern, benötigen Sie Root-Rechte.

Verwenden Sie den Befehl passwd ohne


Benutzername, um Ihr eigenes Passwort zu
ändern.

passwd

Soll das Passwort des ausgewählten Benutzers


gesperrt werden, verwenden Sie den
Befehl passwd mit der Option -l (lock).

passwd -l BENUTZERNAME

Weitere Optionen bieten die Möglichkeit, eine


Verfallsdauer für Passwörter (-x) sowie Warn- (-
w) und Sperrintervalle (-i) zu definieren:

passwd -x MAX_TAGE -w WARN_TAGE -i


INAKTIV_TAGE BENUTZERNAME

In folgendem Beispiel wird definiert, dass der


Benutzer peter24 sein Passwort alle 30 Tage
erneuern muss. Eine Warnung erhält er 5 Tage
vor Ablauf der Frist. Bleibt die Erneuerung des
Passworts nach 30 Tagen aus, verfällt das
Passwort und der Benutzer-
Account peter24 wird nach 3 Tagen
gesperrt.

passwd -x 30 -w 5 -i 3 peter24

Programme mit Rechten anderer Benutzer


ausführen

Der Befehl sudo (substitute user do) kann


Programmaufrufen vorangestellt werden, um
diese mit den Rechten eines anderen Nutzers
auszuführen. In der Regel ist dafür eine
Passworteingabe notwendig. Der
Befehl sudo fragt dabei immer nach dem
sudo Passwort des aufrufenden Benutzers.

Wird der Befehl ohne Benutzernamen


übergeben, wird der Superuser root als Ziel-
Benutzer verwendet.

sudo PROGRAMMAUFRUF

Administratoren haben die Möglichkeit, in der


Datei /etc/sudoers zu definieren,
wer sudo benutzen darf und welche
Programmaufrufe erlaubt sind. Ein Benutzer
muss der Gruppe sudo angehören, um den
Befehl sudo verwenden zu können.

Möchten Sie einen anderen Ziel-Benutzer


auswählen, verwenden Sie sudo mit der Option -
u und dem gewünschten Benutzernamen.

sudo -u BENUTZERNAME
PROGRAMMAUFRUF

Ein solcher Benutzerwechsel ist nur möglich,


wenn dieser laut/etc/sudoers erlaubt ist.

Möchten Sie dauerhaft in die Root-Shell


wechseln, um Befehle mit Administratorrechten
auszuführen, verwenden Sie sudo mit der
Option -i.

sudo -i

Der Befehl sudo ist nützlich, da er Benutzern die


Möglichkeit gibt, vorher festgelegte Befehle als
Root-Nutzer auszuführen, ohne dass das Root-
Passwort weitergegeben werden muss.

Mit Rechten anderer Benutzer arbeiten

Auch der Befehl su erlaubt einen temporären


Benutzerwechsel, um Programmaufrufe mit den
Rechten eines Ziel-Benutzers auszuführen.
Anders als bei sudo werden Befehle dabei nicht
direkt ausgeführt. Stattdessen wird ein Wechsel
der Identität veranlasst. Zudem fragt su nicht das
Passwort des aufrufenden Benutzers, sondern
dass des Ziel-Benutzers ab. Um Programme als
su Superuser aufzurufen, bräuchte ein Benutzer
somit das Root-Passwort des Systems. Darüber
hinaus lässt sich su im Gegensatz zu sudo nicht
auf einen Satz vom Administrator vordefinierter
Programmaufrufe einschränken.

Die allgemeine Syntax des Befehls lautet:

su [OPTIONEN] [BENUTZERNAME]

Ein Aufruf ohne BENUTZERNAME wählt root als


Ziel-Benutzer aus.

usermod Benutzer-Account anpassen


Der Kommandozeilenbefehl usermod bietet
Ihnen die Möglichkeit, bereits angelegte
Benutzer-Accounts zu bearbeiten.

Verwenden Sie usermod mit Root-Rechten nach


folgendem Schema:

usermod [OPTIONEN] BENUTZERNAME

Welche Modifikationen vorgenommen werden


sollen, definieren Sie mithilfe von Optionen.

Benutzername ändern (-l NEUER_NAME):

usermod -l peter24 peter23

Der Benutzer peter23 heißt jetzt peter24.

Neues Home-Verzeichnis anlegen (-d


VERZEICHNIS) und alte Dateien umziehen (-m):

usermod -d /Pfad/zum/Verzeichnis/peter24 –m
peter24

Alle Dateien aus dem alten Home-Verzeichnis


werden in das neue Home-Verzeichnis
umgezogen.

Benutzer sperren (-L):

usermod -L peter24

Das Passwort des Benutzers peter24 wird


gesperrt.

Benutzer in Gruppe aufnehmen (-a) und alle


anderen Gruppenzugehörigkeiten beibehalten (-
G):

usermod –aG users peter24

Peter wird der Gruppe users hinzugefügt.

Systembefehle
In der Kategorie Systembefehle finden Sie grundlegende Linux-Kommandos zur
Systemsteuerung. Nutzen Sie folgende Befehle, um das System aus dem Terminal heraus neu
zu starten und herunterzufahren – auf Wunsch auch zeitgesteuert.

Hinweis
Die meisten Kommandozeilenbefehle zur Systemsteuerung müssen mit Root-Rechten ausgeführt
werden.
Befehl Beschreibung

Log-Einträge erstellen

Mit dem
Kommandozeilenprogramm logger lassen sich
Einträge im System-Log erstellen.
logger
Verwenden Sie logger nach folgendem Schema:

logger "IHRE NACHRICHT"

Das System-Log finden Sie unter /var/log/syslog.

System neustarten

Bei reboot handelt es sich um einen


Kommandozeilenbefehl der einen Neustart des
reboot Systems herbeiführt. Um einen Neustart
einzuleiten, muss der Befehl mit Root-Rechten
ausgeführt werden.

reboot [OPTIONEN]

System automatisch starten und


herunterfahren

Bei rtcwake handelt es sich um einen


Kommandozeilenbefehl, der es ermöglicht, das
System zeitgesteuert zu starten und
herunterzufahren.

Dem Befehl liegt folgende Syntax zugrunde

rtcwake [OPTIONEN] [MODUS] [Zeit]

Wählen Sie einen bestimmten Modus (-m


MODUS) in den das System für eine bestimmte
rtcwake
Zeit in Sekunden (-s ZEIT IN SEKUNDEN)
versetzt werden soll. Alternativ haben Sie die
Möglichkeit, Ihr System zu einem genau
definierten Zeitpunkt (-t UNIXZEIT)
aufzuwecken.

Beispiel 1:

rtcwake -m standby -s 300

Das System wird für 5 Minuten (300 Sekunden)


in den Standby-Modus versetzt.

Beispiel 2:
rtcwake -m off -t 1490997660

Das System wird Heruntergefahren und


„erwacht“ zur Unixzeit 1490997660. Diese
entspricht folgendem Datum: 01.04.2017 -
00:01:00. Bei der Unixzeit handelt es sich um die
Anzahl der vergangenen Sekunden seit dem
1.1.1970 um 00:00. Da Angaben in Unixzeit
schwer greifbar sind, empfiehlt es sich, diese
mithilfe des Befehls date (siehe unten)
umzuwandeln.

rtcwake -m off -t $(date -d '20170401 00:01'


+%s)

System herunterfahren

Der Befehl shutdown kann von Root-Nutzern


verwendet werden, um das System
herunterzufahren.

Dem Befehl liegt folgende Syntax zugrunde:

shutdown [OPTIONEN] [ZEIT] [NACHRICHT]

Möchten Sie einen Shutdown veranlassen,


haben Sie die Möglichkeit, einen Zeitpunkt zu
definieren, wann das System herunter gefahren
werden soll. Nutzen Sie dafür entweder eine
konkrete Zeitangabe (hh:mm) oder einen
Countdown (+m).

Andere Benutzer auf dem System bekommen


shutdown eine Shutdown-Meldung. Diese kann bei Bedarf
um einen individuelle Nachricht ergänzt werden:

In folgendem Beispiel fährt das System in 10


Minuten herunter:

shutdown +10

Wird der Befehl shutdown mit der Option -


r verwendet, folgt dem Herunterfahren des
Systems ein Reboot.

shutdown -r +10
Systeminformationen
In der Kategorie Systeminformationen haben wir Kommandozeilenprogramme zusammengefasst,
mit denen Sie Informationen und Statusmeldungen abrufen und sich einen umfassenden
Überblick über den Zustand Ihres Systems verschaffen.

Befehl Beschreibung

Systemzeit abrufen

Der Befehl date gibt Ihnen die Systemzeit


inklusive Datum aus.

date [OPTIONEN] [AUSGABEFORMAT]

Möchten Sie im Rahmen eines Programmaufrufs


mit einem bestimmten Datum arbeiten
(siehe rtcwake), lässt sich dieses mithilfe der
Option -d 'DATUM' definieren. Darüber hinaus
werden diverse Optionen unterstützt, mit denen
sich Datums- und Zeitangaben in ein
gewünschtes Format übertragen lassen.
date
Verwenden Sie beispielweise die Option +%s um
sich ein Datum in Unixzeit (Anzahl der Sekunden
seit 1970-01-01 00:00:00 UTC) ausgeben zu
lassen.

Beispiel:

date -d '20170427 11:29' +%s

Output:

1493285340

1493285340 Unixzeit entspricht dem 27.04.2017


- 11:29:00.

Freien Festplattenspeicher abrufen

Nutzen Sie den Befehl df (disk free) nach


folgendem Schema, um sich den freien
Festplattenspeicher eingehängter Partitionen
anzeigen zu lassen.
df
df [OPTIONEN]

Wird der Befehl in Kombination mit einer


bestimmten Datei verwendet, gibt das System
lediglich den freien Speicherplatz der Partition
an, auf der sich die Datei befindet.
df [OPTIONEN] [DATEI]

Die Option -l (lokal) begrenzt df auf lokale


Dateisysteme. Zudem werden Optionen
unterstützt, mit denen sich das Ausgabeformat
anpassen lässt. Für eine von Menschen lesbare
Ausgabe empfiehlt sich die Option -h (human
readable): z. B. 3K 124M 1G.

Meldungen des Kernel-Ringpuffers abrufen

Das Programm dmesg (kurz für display


message) gibt Meldungen des Kernel-
Ringpuffers im Terminal aus und ermöglicht es
Ihnen so, Hardware- und Treiberfehler zu
lokalisieren.

Nutzen Sie dmesg nach folgendem Schema:

dmesg [OPTIONEN]

Die dmesg-Ausgabe enthält sämtliche


Meldungen des Bootvorgangs und ist
dementsprechend lang. Das
dmesg Kommandozeilenprogramm wird daher oft in
Kombination mit einem Pager
wie more, less oder tail verwendet.

Beispiel:

dmesg | tail

Die dmesg-Ausgabe wird mithilfe des Pipe-


Operators (|) an den Pager tail übergeben.
Dieser führt dazu, dass lediglich die letzten 10
Meldungen im Terminal ausgegeben werden.

Eine Kombination mit dem grep-Befehl


ermöglicht es, gezielt nach Meldungen zu
suchen.

Belegten Festplattenspeicher abrufen

Möchten Sie in Erfahrung bringen, wie viel


Festplattenspeicher durch Verzeichnisse auf
ihrem System belegt wird, verwenden Sie den
du Befehl du (kurz für disk usage) nach folgendem
Schema:

du [OPTIONEN] [VERZEICHNIS]

Die Angabe eines bestimmten Verzeichnisses ist


optional. Der belegte Festplattenspeicherplatz
lässt sich mit der Option -h in einem für
Menschen lesbaren Format ausgeben.

Auslastung des Arbeitsspeichers abrufen

Der Befehl free gibt die Auslastung des


Arbeitsspeichers aus.

Die allgemeine Syntax lautet:

free [OPTIONEN]

Als Ausgabe erhalten Sie zwei


free Angaben: Mem (Memory) und Swap.

Bei Mem handelt es sich um den physischen


Arbeitsspeicher ihres Systems. Ist dieser
erschöpft, lagert Linux Teile der im RAM
gespeicherten Daten auf die Festplatte aus. Man
spricht in diesem Fall von Swap-Space.

Auch free unterstützt die Option -h, mit der sich


die Speicherauslastung in einem für Menschen
lesbaren Format ausgeben lässt.

Hostname abrufen

Nutzen Sie den Befehl hostname nach


hostname folgendem Schema, um sich den DNS-Namen
des Systems anzeigen zu lassen.

hostname [OPTIONEN]

Kernel-Informationen abrufen

Der Kommandozeilenbefehl uname steht für unix


name und wird verwendet, um
Systeminformationen zum Kernel abzurufen.
uname
Der Befehl unterstützt diverse Optionen, mit
denen sich die Ausgabe nach den gewünschten
Informationen filtern lässt.

uname [OPTIONEN]

Systemlaufzeit abrufen

Möchten Sie ermitteln, wie lange Ihr System seit


uptime dem letzten Bootvorgang läuft, nutzen Sie den
Kommandozeilenbefehl uptime nach folgendem
Schema:
uptime

Statistiken zum virtuellen Speicher abrufen

Mithilfe des Monitoring-Tools vmstat lassen sich


Informationen zum virtuellen Speicher, zu
Schreib- und Lesevorgängen auf der Festplatte
sowie zur CPU-Aktivität abrufen.

Rufen Sie vmstat nach folgendem Schema auf,


um sich die durchschnittlichen Werte seit dem
letzten Systemstart ausgeben zu lassen.

vmstat [OPTIONEN]

Alternativ bietet vmstat einen fortlaufenden


Monitoring-Modus, bei dem die Systemwerte in
vmstat einem gewünschten Zeitintervall in Sekunden
beliebig oft abgerufen werden.

vmstat [OPTIONEN] [INTERVALL


[WIEDERHOLUNGEN]]

Beispiel:

vmstat 4 8

Die Abfrage erfolgt in acht Durchgängen alle 4


Sekunden.

Möchten Sie die fortlaufende Abfrage


abbrechen, verwenden Sie die
Tastenkombination [STRG] + [C].

Hardware-Informationen
Linux-Befehle dieser Kategorie liefern Ihnen detaillierte Informationen zur den Hardware-
Komponenten, die Ihrem System zugrunde liegen.

Befehl Beschreibung

Prozessorinformationen ausgeben

Nutzen Sie lscpu (kurz für list cpu) nach


folgendem Schema, um sich Informationen zur
lscpu
CPU-Architektur im Terminal ausgeben zu
lassen.

lscpu [OPTIONEN]
Mögliche Optionen entnehmen Sie den
Handbuchseiten Ihres Betriebssystems.

Hardwareinformationen ausgeben

Der Befehl lshw steht für list hardware, und gibt


Ihnen Informationen zu Hardwarekomponenten
im Terminal aus. Die Informationen umfassen
CPU, Speichermodule sowie Geräte wie
Soundkarten, Grafikkarten oder Laufwerke, die
an PCI-, USB- oder IDE-Schnittstellen
angeschlossen sind.
lshw
Nutzen Sie lshw nach folgendem Schema:

lshw [OPTIONEN]

Der Befehl unterstützt diverse Optionen, mit


denen sich das Ausgabeformat (-html, -xml, -
short, -businfo) sowie der Umfang der
Informationen (z. B. -sanitize zum Verstecken
sensibler Informationen) anpassen lassen.

Informationen zu PCI-Geräten ausgeben

Nutzen Sie lspci (kurz für list pci) nach


folgendem Schema, um sich detaillierte
Informationen über PCI-Geräte ausgeben zu
lspci lassen.

lspci [OPTIONEN]

Mögliche Optionen entnehmen Sie den


Handbuchseiten Ihres Betriebssystems.

Informationen zu USB-Geräten ausgeben

Nutzen Sie lsusb (kurz für list usb), um sich


detaillierte Informationen zu USB-Geräten im
Terminal ausgeben zu lassen.

lsusb [OPTIONEN]
lsusb
Mögliche Optionen entnehmen Sie den
Handbuchseiten Ihres Betriebssystems.
Prozessmanagement
Unter Linux wird die Instanz eines laufenden Programms als Prozess bezeichnet. Folgende
Terminalbefehle gehören zum Standardrepertoire des Prozessmanagements und ermöglichen es
Ihnen, alle Prozesse auf Ihrem System bequem aus der Terminal heraus zu
überwachen und bei Bedarf steuernd einzugreifen.

Befehl Beschreibung

Echtzeit-Attribute abfragen und anpassen

Bei chrt handelt es sich um ein


Kommandozeilenprogramm für die
fortgeschrittene Prozesskontrolle, das es
ermöglicht, die Echtzeitattribute (Scheduling-
Regel und Priorität) laufender Prozesse zu
ermitteln und anzupassen oder Befehle und
deren Argumente mit bestimmten
Echtzeitattributen auszuführen.

Die allgemeine Syntax des Befehls lautet:

chrt [OPTIONEN] [PRIORITÄT] PID/BEFEHL


[ARGUMENTE]

Nutzen Sie chrt ohne Angabe einer Priorität und


mit der Option -p, um die Echtzeitattribute
ausgewählter Prozesse zu ermitteln:

chrt -p PID
chrt
Beispiel:

chrt -p 1234

chrt gibt die Echtzeitattribute des Prozesses


1234 aus.

Der Befehl wird in der in der Regel nach


folgendem Schema verwendet, um einen Befehl
und dessen Argumente mit einer bestimmten
Echtzeit-Priorität ausführen.

chrt [OPTIONEN] PRIORITÄT BEFEHL


[ARGUMENTE]

Beispiel:

chrt 99 firefox

Das Programm Firefox wird mit einer Echtzeit-


Priorität von 99 gestartet.
Soll hingegen die Echtzeit-Priorität laufender
Prozesse angepasst werden, kommt folgende
Syntax zum Einsatz:

chrt -p PRIORITÄT PID

Beispiel:

chrt -p 20 1234

Die Echtzeitpriorität des Prozesses 1234 wird


auf 20 gesetzt.

Darüber hinaus bietet chrt die Möglichkeit, die


Scheduling-Regel laufender oder neu gestarteter
Prozesse mithilfe von Optionen anzupassen
oder zu definieren.

chrt nutzt als Standardwert die Scheduling-Regel


SCHED_RR (Round Robin, explizit mit der
Option -r). Das bedeutet, alle rechenbereiten
Prozesse bekommen nacheinander für einen
gewisse Zeitspanne CPU-Rechenzeit
zugesprochen. Man spricht von der Zeitscheibe.
Diese gibt an, wie lange ein Prozess laufen darf,
bis er von einem anderen Prozess verdrängt
wird. Die Größe der Zeitscheibe eines Prozesses
hängt von dessen Priorität ab. Linux bietet 140
Prioritätslevel für Prozesse (0 = höchste Priorität,
139 = geringste Priorität). Die Prioritätslevel 1 bis
99 sind für Prozesse mit sogenannter
Echtzeitpriorität reserviert. Benutzerprozesse
hingegen werden in der Regel mit einem
Prozesslevel von 100 bis 139 ausgeführt. Dies
entspricht einem nice-Wert von -20 bis +19
(siehe nice)

Neben SCHED_RR kennt Linux mit


SCHED_FIFO (Option -f) eine weitere
Scheduling-Regeln für Echtzeitprozesse. Wie
SCHED_RR arbeitet SCHED_FIFO als First-
in/First-out-Algorithmus. Dabei kommt jedoch
keine Zeitscheibe zum Einsatz. Prozesse, die mit
SCHED_FIFO gestartet werden, laufen so lange,
bis sie beendet oder von einem Prozess mit
höherer Echtzeit-Priorität verdrängt werden.
Verdrängte Prozesse rücken ans Ende der
Warteschleife.

ionice I/O-Scheduling-Klassen zuweisen


Der Kommandozeilenbefehl ionice wird
verwendet, um die Priorität eines Prozesses zu
beeinflussen, der das I/O-Interface des Kernels
verwendet.

Die allgemeine Syntax des Befehls lautet:

ionice [OPTIONEN] BEFEHL

Um ionice ausführen zu können, werden Root-


Rechte benötigt.

Der Befehl unterscheidet drei Scheduling-


Klassen, die über die Option -cZAHL übergeben
werden. Mögliche Zahlenwerte sind 1, 2 und 3.

1 = Real Time: Die I/O-Aktion wird sofort


ausgeführt.

2 = Best-Effort: Die I/O-Aktion wird so schnell


wie möglich durchgeführt.

3 = Idle: Die I/O-Aktion wird nur ausgeführt,


wenn kein anderer Prozess I/O-Zeit in Anspruch
nimmt.

Die PID eines laufenden Prozesses wird mit der


Option -pPIDübergeben.

Beispiel:

ionice -c2 -p1234

Dem Prozess mit der PID 1234 wird die


Scheduling-Klasse 2 (Best Effort) übergeben.

Prozess via PID stoppen und beenden

Bei kill handelt es sich um ein


Kommandozeilenprogramm, mit dem sich
Prozesse anhalten und beenden lassen.

Der Befehl wird nach folgendem Schema mit


kill einem gewünschten Signal und der ID des
ausgewählten Prozesses übergeben.

kill [OPTIONEN] [-SIGNAL] PID

Gängige Signale sind:

TERM: Veranlasst einen Prozess, sich selbst


zu beenden (Standard)
KILL: Erzwingt das Beenden eines Prozesses
(durch das System)

STOP: Hält einen Prozess an

CONT: Lässt einen angehaltenen Prozess


weiterlaufen

Folgender Aufruf sendet ein Signal an den


Prozess 1234, das diesen auffordert, sich selbst
zu beenden. Da kein Signal übergeben wurde,
sendet kill das Standardsignal TERM.

kill 1234

Geben Sie Prozessen immer die Möglichkeit,


sich selbst zu beenden, und erzwingen Sie die
Aktion via KILL nur, wenn der angesprochene
Prozess nicht wie beabsichtigt reagiert.

kill -KILL 1234

Möchten Sie 1234 lediglich zeitweise pausieren,


nutzen Sie folgende Aufrufe, um den Prozess
anzuhalten bzw. weiterlaufen zu lassen:

kill -STOP 1234

kill -CONT 1234

Nutzen Sie den Befehl kill mit der Option -l (--


list), um sich alle möglichen Signale anzeigen zu
lassen, die via kill an Prozesse übergeben
werden können.

Prozesse via Namen stoppen und beenden

Verwenden Sie killall in Kombination mit einem


bestimmten Suchbegriff, um lediglich die
Prozesse zu beenden, deren Namen sich exakt
mit diesem decken (es werden die ersten 15
killall Zeichen abgeglichen).

killall [OPTIONEN] [-SIGNAL] [PROZESSNAME]

Die Option -e (--exact) ermöglicht es, den


Abgleich auf alle Zeichen des Prozessnamens
auszuweiten.

Prozessprioritäten definieren
nice
Der Kommandozeilenbefehl nice weist einem
Prozess beim Start einen nice-Wert zwischen -
20 und +19 in ganzzahligen Schritten zu, nach
der die zu Verfügung stehende Rechenleistung
des Systems verteilt wird. Die Spanne -20 bis
+19 entspricht den Linux-Prioritätsleveln 100 bis
139. Ein Prozess mit einem nice-Wert von -20
hat somit eine höherere Priorität als ein Prozess
mit einem nice-Wert von 19.

Die alleine Syntax lautet:

nice [OPTION] [BEFEHL]

Ohne weitere Angabe startet jeder Prozess mit


einem nice-Wert von 0. Nutzen Sie die Option -n,
um Prozessprioritäten zu definieren. Dabei ist zu
beachten, dass negative Prioritäten nur mit Root-
Rechten vergeben werden können.

In folgendem Beispiel wird der Editor nano mit


einer Priorität von 4 gestartet:

nice -n 4 nano

Prozess aus Sitzung lösen

Normalerweise beenden sich alle abhängigen


Prozesse eines Benutzers automatisch, sobald
dieser die Terminal-Sitzung schließt (z. B.
via exit).

Der Kommandozeilenbefehl nohup (kurz für no


hangup) löst einen Prozess aus der aktuellen
Sitzung und ermöglicht es Ihnen, diesen auch
nohup
dann weiter laufen zu lassen, wenn Sie sich am
System abmelden. Das damit verbundene HUP-
Signal (hangup), das normalerweise dazu führt,
dass sich ein Prozess automatisch beendet, wird
durch nohup unterdrückt.

Dem Programmaufruf liegt folgendes Schema


zugrunde:

nohup BEFEHL

PID via Suchbegriff ermitteln

Das Kommandozeilenprogramm pgrep gleicht


die Liste laufender Prozesse mit einem
pgrep
Suchbegriff ab und gibt bei Übereinstimmung die
jeweiligen PIDs aus.

Die allgemeine Syntax des Aufrufs lautet:


pgrep [OPTIONEN] Suchbegriff

Standardmäßig gibt pgrep die PIDs aller


Prozesse aus, die den Suchbegriff enthalten.

Beispiel:

pgrep ssh

Es werden alle Prozesse aufgelistet, die den


Suchbegriff ssh im Prozessnamen enthalten.

Soll die Suche auf exakte Übereinstimmungen


eingegrenzt werden, verwenden Sie den Befehl
mit der Option -x.

Beispiel:

pgrep -x sshd

Es werden lediglich die Prozesse aufgelistet, die


exakt sshdheißen.

Möchten Sie neben der PID auch den


Prozessnamen abrufen, verwenden
Sie pgrep mit der Option -l.

pgrep unterstützt (ähnlich wie grep) Suchbegriffe


auf Basis regulärer Ausdrücke.

PIDs ermitteln

Das Kommandozeilenprogramm pidof gibt Ihnen


die Prozessidentifikationsnummern (PIDs) aller
Prozesse eines Programms aus.

Ermitteln Sie PIDs via pidof nach folgendem


Schema:

pidof [OPTIONEN] PROGRAMM


pidof
Über folgenden Aufruf werden die IDs aller
laufenden Prozesse des Programms nano im
Terminal ausgegeben.

pidof nano

Möchten Sie sich lediglich die erste Prozess-ID


ausgeben lassen, verwenden Sie pidof in
Kombination mit der Option -s (kurz für Single
shot).
Prozesse via Suchbegriff stoppen und
beenden

Wie kill sendet auch pkill ein Signal an einen


ausgewählten Prozess. Die Adressierung erfolgt
dabei jedoch nicht durch die PID. Stattdessen
wird ein Suchbegriff übergeben, der mit den
Namen laufender Prozesse abgeglichen wird.
Dieser kann als regulärer Ausdruck formuliert
werden.

Auch pkill übergibt das Standardsignal TERM,


sofern kein anderes Signal definiert wurde. Die
pkill allgemeine Syntax des Befehls lautet:

pkill [OPTIONEN] [-SIGNAL] [SUCHBEGRIFF]

Über weitere Optionen lässt sich der Befehl auf


die Prozesse eines bestimmten Benutzers (-U
UID), auf Kindprozesse eines bestimmten
Elternprozess (-P PID) oder die neusten (-n)
bzw. ältesten Prozesse (-o) eingrenzen.

Während pkill alle Prozesse anspricht, deren


Namen den Suchbegriff enthalten, richtet sich
der Befehl killall nur an Prozesse mit exakter
Übereinstimmung.

Liste aller laufenden Prozesse abrufen

Der Befehl ps gibt eine Liste aller laufenden


Prozesse im Terminal aus.

ps [OPTIONEN]
ps
Benötigen Sie eine detaillierte Ausgabe
verwenden Sie ps mit den Optionen -f (detailliert)
oder -F (sehr detailliert).

Weitere mögliche Optionen entnehmen Sie den


Handbuchseiten Ihres Betriebssystems.

Laufende Prozesse als Baumstruktur abrufen

Nutzen Sie pstree, um sich alle laufenden


Prozesse in einer Baumstruktur anzeigen zu
pstree lassen.

Die allgemeine Syntax des Befehls lautet:

pstree [OPTIONEN]
Format und Umfang der Ausgabe lassen sich
durch diverse Optionen anpassen.

Prioritäten laufender Prozesse anpassen

Der Kommandozeilenbefehl renice ermöglicht


es, die Priorität eines laufenden Prozesses
anzupassen.

Die allgemeine Syntax lautet:

renice PRIORITÄT [OPTIONEN]

Die Adressierung erfolgt mithilfe von Optionen


über die Prozess-ID (-p PID), die Gruppen-ID (-g
GID) oder einen Benutzernamen (-
uBENUTZER).

Beispiele:

renice 12 -p 1234
renice
Dem Prozess mit der ID 1234 wird die Priorität
12 zugewiesen.

renice 3 -g 3456

Allen laufenden Prozessen der Gruppe mit


der GID 3456 wird eine Priorität von 3
zugewiesen.

sudo renice -6 -u peter24

Allen laufenden Prozessen des


Benutzers peter24 wird eine Priorität von -6
zugewiesen.

Verwenden Sie renice ohne Option, wird der


Standardwert -p angenommen und der
nachfolgende String als Prozess-ID interpretiert.

Prozessausführung verzögern

Der Kommandozeilenbefehl sleep ermöglicht es


Ihnen, die aktuelle Terminal-Sitzung für einen
angegebenen Zeitraum zu unterbrechen.
sleep
Die allgemeine Syntax des Befehls lautet:

sleep ZAHL[SUFFIX]

Verwenden Sie sleep ohne Suffix, wird die


angegebene Zahl als Zeitspanne in Sekunden
(s) interpretiert. Alternativ haben Sie die
Möglichkeiten, die Terminal-Sitzung für Minuten
(m), Stunden (h) oder Tage (d) zu unterbrechen.

Folgender Aufruf unterbricht die Sitzung für 4


Minuten:

sleep 4m

Der Befehl eignet sich zum Beispiel, um die


Ausführung eines nachfolgenden Befehls zu
verzögern:

sleep 1h && reboot

Das System wartet eine Stunde und führt


anschließend den Befehl reboot aus, der einen
Neustart des Systems zur Folge hat.

Prozesse bestimmten Prozessoren zuordnen

Bei taskset handelt es sich um einen


Kommandozeilenbefehl für die erweiterte
Prozesskontrolle, der bei
Mehrprozessorsystemen zum Einsatz kommt,
um Prozesse oder Befehle bestimmten
Prozessoren zuzuordnen.

Der Befehl erfordert Root-Rechte und verwendet


eines der folgenden Schemata:

taskset [OPTIONEN] MASKE BEFEHL

taskset [OPTIONEN] -p PID

Die Zuordnung von Prozess/Befehl zu Prozessor


taskset
erfolgt mithilfe einer hexadezimalen Bitmaske.
Beispielsweise:

0x00000001 = Prozessor #0

0x00000003 = Prozessor #0 und #1

0xFFFFFFFF = alle Prozessoren (#0 bis #31)

Da eine solche Zuordnung via Bitmaske wenig


intuitiv ist, wird taskset in der Regel mit der
Option -c (--cpu-list) verwendet, die eine
numerische Zuordnung der Prozessoren
ermöglicht (z.B. 0, 5 7, 9-11).

Folgender Befehl weist den Prozess 1234 an,


die Prozessoren 1 und 2 zu nutzen:
taskset -p 1234 -c 1,2

Dynamische Prozessübersicht

Mit dem Befehl top rufen Sie eine dynamische


Übersicht aller laufenden Prozesse ab.

Dem Aufruf liegt folgendes Schema zugrunde:

top [OPTIONEN]

Die Ausgabe der Prozessinformationen lässt


sich mithilfe diverser Optionen anpassen. Zudem
unterstützt die top-Prozessübersicht (unter
anderem) folgende Hotkeys, um die Ausgabe zu
sortieren:

[P] = Sortiert die Ausgabe nach CPU-Last


top
[M] = Sortiert die Ausgabe nach
Speicherverbrauch

[N] = Sortiert die Ausgabe nummerisch nach


PID

[A] = Sortiert die Ausgabe nach Alter

[T] = Sortiert die Ausgabe nach Zeit

[U BENUTZERNAME oder UID] = Filtert die


Ausgabe nach dem jeweiligen Benutzer

Verwenden Sie den Hotkey [H], um sich eine


Hilfeseite anzeigen zu lassen und [Q], um die
Prozessübersicht zu verlassen.

Pager
Sie möchten auch bei mehrseitigen Dateiinhalten stets den Überblick behalten? Mit einem
Kommandozeilenprogramm aus der Kategorie Pager wählen Sie gezielt aus, welche Abschnitte
Sie sich im Terminal anzeigen lassen und blättern bei Bedarf im interaktiven Modus durch die
Datei.

Befehl Beschreibung

Die ersten Zeilen einer Datei ausgeben

Der Pager head wird verwendet, um den ersten


head
Teil einer Datei auszugeben.

Die allgemeine Syntax des Befehls lautet:


head [OPTIONEN] Datei

Nutzen Sie Option -n ANZAHL_ZEILEN, um zu


definieren, wie viele Zeilen beginnend mit der
ersten ausgegeben werden sollen.

Beispiel:

head -n 3 beispiel.txt

Es werden die ersten drei Zeilen der


Datei beispiel.txt ausgegeben. Ohne
Zeilenangabe gibt head die ersten 10 Zeilen der
angegeben Datei aus.

Textdateien im Terminal anzeigen

Das Kommandozeilenprogramm less ermöglicht


es, den Inhalt einer Textdatei im Terminal
anzuzeigen.

Die allgemeine Syntax lautet:

less [OPTIONEN] DATEI


less
Die Ausgabe erfolgt automatisch im interaktiven
Modus. Dieser ermöglicht es Ihnen, im
ausgewählten Dokument zu blättern oder dieses
nach Stichworten zu durchsuchen.

Die Taste [Q] beendet den interaktiven


Lesemodus. Weitere Steuertasten und mögliche
Optionen entnehmen Sie der Handbuchseiten
zum Programm.

Textdateien im Terminal anzeigen

Der Pager more erfüllt dieselbe Funktion


wie less, bietet jedoch einen geringeren
Funktionsumfang.

Nutzen Sie more nach folgendem Schema, um


eine Textdatei aufzurufen und deren Inhalt im
more Terminal auszugeben:

more [OPTIONEN] DATEI

Das Kommandozeilenprogramm zeigt stets eine


komplette Bildschirmseite der ausgewählten
Datei an. Umfasst eine Datei mehrere Seiten,
startet auch more einen interaktiven Modus, der
es Ihnen ermöglicht, mithilfe von Steuertasten im
Dokument zu blättern oder dieses nach
Stichworten zu durchsuchen.

Die Taste [Q] beendet den interaktiven Modus.


Weitere Steuertasten sowie mögliche Optionen
entnehmen Sie den Handbuchseiten Ihres
Betriebssystems

Die letzten Zeilen einer Datei ausgeben

Während head standardmäßig die ersten 10


Zeilen einer ausgewählten Datei anzeigt,
tail
gibt tail die letzten 10 Zeilen aus.

Beide Pager werden nach demselben Schema


verwendet (siehe head).

Editoren
Unter Linux benötigen Sie kein grafisches Textverarbeitungsprogramm, um Konfigurationsdateien
anzupassen, Codeabschnitte zu bearbeiten oder kurze Notizen zu verfassen. Einfache
Texteditoren lassen sich bequem und ohne Zeitverzögerung im Terminal aufrufen. Im Folgenden
stellen wir drei Programme vor, die Sie kennen sollten.

Befehl Beschreibung

Der Texteditor Emacs

Bei Emacs handelt es sich um einen


plattformunabhängigen Texteditor, der durch
eine Programmierschnittstelle beliebig
erweiterbar ist.

Emacs startet standardmäßig mit grafischer


emacs Benutzeroberfläche, kann mit der Option --no-
window-system jedoch auch im Terminal
geöffnet werden.

emacs --no-window-system

Emacs verfügt über ein integriertes Tutorial, das


Sie durch die Tastenkombination [STRG] + [H],
[T] aufrufen.

Der Texteditor Nano

Bei Nano handelt es sich um einen GNU-


nano Nachbau des terminalbasierten Texteditors Pico,
der im Rahmen des Mail-Clients Pine zum
Einsatz kommt. Nano bietet zwar einen
geringeren Funktionsumfang als vergleichbare
Editoren (z. B. Vim), zeichnet sich diesen
gegenüber jedoch durch eine besonders
nutzerfreundliche Handhabung aus.

Die allgemeine Syntax des Programmaufrufs


lautet:

nano [OPTIONEN] DATEI

Das Programm öffnet die angegebene Datei in


einem Edit-Fenster im Terminal.

Rufen Sie Nano ohne Dateinamen auf, kann


eine neue Textdatei erstellt werden, die im
aktuell ausgewählten Verzeichnis abgespeichert
wird.

nano [Optionen]

Die Tastenkombinationen zur Steuerung des


Programms sind am unteren Rand des Edit-
Fensters aufgeführt. Weitere Informationen zu
Nano entnehmen Sie den Handbuchseiten zum
Programm.

Der Texteditor Vim

Bei Vim (kurz für Vi Improved) handelt es sich


um einen Weiterentwicklung des Texteditors Vi,
die sich von diesem durch zahlreiche
Erweiterungen wie Syntax-Highlighting, ein
umfassendes Hilfesystem, natives Scripting,
automatische Codevervollständigung und eine
visuelle Textauswahl abhebt.

Das Open-Source-Programm bietet Ihnen


verschiedene Betriebsmodi zur Bearbeitung
reiner Textdateien und kann wahlweise im
vim Terminal oder als Standalone-Applikation mit
grafischer Benutzeroberfläche (GVim) genutzt
werden. Ein zentrales Anwendungsgebiet des
Programms ist die Bearbeitung von
Programmcode.

Starten Sie Vim in der Konsole, erfolgt die


Bedienung über die Tastatur. In der Regel wird
das Programm zusammen mit einer Textdatei
nach folgendem Schema aufgerufen.

vim [OPTIONEN] DATEI

Geöffnete Dateien lädt Vim in einen


Zwischenspeicher (Buffer). Hier werden auch
alle Änderungen vorgehalten, die Sie an der
geöffneten Datei vornehmen. Öffnen Sie Vim
ohne Angabe einer Datei, startet das Programm
mit leerem Buffer. Eine Anpassung der
Originaldatei erfolgt erst, wenn der
Speichervorgang durch die entsprechende
Tastenkombination angeordnet wird. Existiert
keine Datei, die mit dem beim Programmaufruf
übergebenen Namen übereinstimmt, wird sie im
Rahmen des Speichervorgangs neu angelegt.

Eine umfassende Einführung zu Vim bietet das


Programm vimtutor, das Sie ebenfalls über die
Kommandozeile starten.

Darüber hinaus bietet unser Grundlagenartikel


zum Texteditor Vimweitere Informationen zur
Installation und den verschiedenen Betriebsmodi
des Programms.

Netzwerkmanagement
Auch das Netzwerkmanagement erfolgt unter Linux bequem aus dem Terminal heraus. Egal, ob
Sie die Verbindung prüfen, DNS-Informationen abfragen, Schnittstellen konfigurieren oder
Dateien an einen anderen Rechner im Netzwerk übermitteln möchten, mit folgenden
Programmen genügt ein einzelner Befehl, um Ihr Vorhaben in die Tat umzusetzen.

Befehl Beschreibung

ARP-Cache anzeigen und manipulieren

Das Kommandozeilenprogramm arp ermöglicht es


Ihnen, den ARP-Cache Ihres Betriebssystems
abzurufen und zu manipulieren.

Nutzen Sie arp ohne Modifikator, um sich den Inhalt


der ARP-Tabelle im Terminal ausgeben zu lassen.

arp
arp
Alternativ haben Sie die Möglichkeit, die Ausgabe
mit der Option -a auf Einträge zu einem
bestimmten Hostnamen (alternativ zu einer IP-
Adresse) einzugrenzen.

arp -a HOSTNAME

Beispiel:

arp -a example.com
Möchten Sie einen ARP-Eintrag erstellen,
verwenden Sie einen Programmaufruf mit der
Option -s nach folgendem Schema:

arp -s HOSTNAME MAC_ADRESSE

Beispiel:

arp -s example.com 00:05:23:73:e6:cf

Soll ein bestehender Eintrag gelöscht werden,


kommt arp mit der Option -d zum Einsatz.

arp -d HOSTNAME

DNS-Informationen abfragen

Bei dig handelt es sich um ein Lookup-Tool, mit


dem sich Informationen von DNS-Servern abfragen
und im Terminal ausgeben lassen.

Das Kommandozeilenprogramm wird in der Regel


nach folgendem Schema verwendet, um die IP-
Adresse und andere DNS-Informationen zu einem
gegebenen Domainnamen abzufragen:

dig [@SERVER] [DOMAIN] [TYP]

SERVER ist der DNS-Server, der nach den


gewünschten Informationen durchsucht werden
soll. Wird kein Server angegeben, ermittelt dig den
Standard-DNS-Server aus der
dig Datei /etc/resolv.conf.

DOMAIN steht für den Domainnamen, zu dem


DNS-Informationen ermittelt werden sollen.

Als TYP lässt sich der Abfragetyp festlegen, z. B.


ANY (alle Einträge), A (IPv4-Record eines Hosts)
oder AAAA (IPv6-Record eines Hosts). Als
Standardabfragetyp ist A definiert.

Nutzen Sie dig mit der Option -x, um im Rahmen


eines Reverse-Lookups den Domainnamen zu
einer gegebenen IP-Adresse abzufragen.

dig [@SERVER] [-x IP-ADRESSE]

Die Argumente NAME, TYP und KLASSE werden


in diesem Fall nicht benötigt.

ftp Dateien via FTP übertragen


Mit dem Kommandozeilenprogramm ftp verfügen
die meisten Linux-Distributionen über ein bereits
vorinstalliertes Clientprogramm für den
Datentransfer via FTP (File Transfer Protocol).
Dieses bietet Ihnen die Möglichkeit, Dateien
zwischen dem lokalen System und einem anderen
Rechner im Netzwerk auszutauschen.

Nutzen Sie ftp nach folgendem Schema, um eine


Verbindung zum FTP-Server des Zielrechners
aufzubauen.

ftp [OPTIONEN] [HOST[PORT]]

Die Adressierung erfolgt via Hostname oder IP-


Adresse. Die Angabe einer Portnummer ist
optional.

Im Rahmen des Verbindungsaufbaus werden Sie in


der Regel nach einem Benutzernamen und dem
jeweiligen Passwort gefragt.

Ist der Login erfolgreich, startet ftp einen


Kommandozeileninterpreter, der Benutzereingaben
in Form von Befehlen entgegennimmt. Das
Programm unterstützt diverse Befehle, mit denen
Sie das Dateisystem des Zielrechners durchsuchen
und verwalten sowie Dateien von einem System
zum anderen übertragen können.

Netzwerkschnittstellen abfragen und


konfigurieren

Das Kommandozeilenprogramm ip ist Teil der


Programmsammlung iproute2, mit der sich
Netzwerkschnittstellen über das Terminal abfragen
und konfigurieren lassen.

Die allgemeine Syntax des Befehls lautet:


ip ip [OPTIONEN] OBJEKT [BEFEHL [ARGUMENTE]]

Welche Aktion via ip ausgeführt wird, definieren Sie


mithilfe von Objekten, Subbefehlen und deren
Argumenten.

Das Programm unterstützt diverse Objekte


wie address (IP-
Adresse), link (Netzwerkschnittstelle), route (Eintrag
in der Routing-Tabelle) oder tunnel, auf die sich
Subbefehle
wie add, change, del, list oder show anwenden
lassen.

Möchten Sie sich beispielsweise die IP-Adresse


einer bestimmten Netzwerkschnittstelle (z.B. eth0)
abrufen, verwenden Sie den Befehl ip in
Kombination mit dem Objekt address, dem
Befehl show und dem Argument dev eth0:

ip address show dev eth0

Alternativ lassen sich Objekte und Befehle auch in


Kurzschreibweise übergeben:

ip a s dev eth0

Möchten Sie sich sämtliche Informationen zu einer


Netzwerkschnittstelle (z. B. eth0) ausgeben lassen,
verwenden Sie den Kommandozeilenbefehl ip mit
dem Objekt link, dem Befehlshow und dem
Argument dev eth0:

ip link show dev eth0

bzw.

ip l s dev eth0

Um eine Schnittstelle wie eth0 zu aktivieren bzw. zu


deaktivieren, gehen Sie folgendermaßen vor:

ip link set eth0 up

ip link set eth0 down

Mit ihrem großen Funktionsspektrum ersetzt die


Programmsammlung iproute2 eine Reihe älterer
Netzwerk-Tools wie ifconfig, route und netstat.

Eine Liste aller möglichen Optionen, Objekte,


Subbefehle und Argumente für den
Kommandozeilenbefehl ip sowie Informationen zu
anderen iproute2-Programmen entnehmen Sie den
Handbuchseiten Ihres Betriebssystems.

WLAN-Schnittstellen abfragen und


konfigurieren
iw Das Kommandozeilenprogramm iw dient der
Konfiguration von WLAN-Schnittstellen und hat sich
als aktuellere Alternative zuiwconfig etabliert.
Dem Aufruf liegt eine ähnliche Syntax wie dem ip-
Befehl zugrunde:

iw [OPTIONEN] OBJEKT [BEFEHL]

Mögliche Objekte sind:

dev NAME_DER_SCHNITTSTELLE =
Netzwerkschnittstelle

phy NAME_DES_GERÄTS = WLAN-Gerät (via


Name)

phy#INDEX_DES_GERÄTS = WLAN-Gerät (via


Index)

reg = Regulatory Agent zur Konfiguration von


Regions- und Ländereinstellungen

Nutzen Sie iw mit dem Befehl help, um sich die


Programmsyntax sowie mögliche Optionen und
Befehle anzeigen zu lassen.

iw help

Im Folgenden einige Anwendungsbeispiele des


Kommandozeilenprogramms iw:

Geräteeigenschaften aller WLAN-Schnittstellen


ausgeben:

iw list

Verbindungsstatus (Übertragungsrate und


Signalstärke) einer WLAN-Schnittstelle (z.B. wlan0)
abrufen:

iw dev wlan0 link

WLAN-Umgebung scannen:

iw dev wlan0 scan

Nutzen Sie iw in Kombination mit dem Befehl scan,


um sich alle WLAN-Netze im Empfangsbereich
sowie deren Eigenschaften (Funkkanal,
Verschlüsselung, Signalstärke etc.) ausgeben zu
lassen.

Regionaleinstellungen auslesen:

iw reg get

Regionaleinstellung anpassen:
iw reg set DE

Geräteeigenschaften (z.B. von wlan0) abfragen:

iw list dev wlan0

Detaillierte Geräteeigenschaften:

iw dev wlan0 station dump

Ereignisse abfragen:

iw event

Die Optionen -f, -t und -r liefern eine erweiterte


Ausgabe mit Fehlermeldungen zum
Verbindungsstatus und Zeitangaben.

Status der Netzwerkschnittstellen abfragen

Das Kommandozeilenprogramm netstat dient der


Statusabfrage von Netzwerkschnittstellen.

Die allgemeine Syntax des Befehls lautet:

netstat [OPTIONEN]

Nutzen Sie netstat ohne Option, um sich alle


netstat offenen Sockets im Terminal ausgeben zu lassen.

Verwenden Sie alternativ folgende Optionen, um


Routingtabellen (-r), Schnittstellenstatistiken (-i),
maskierte Verbindungen (-M) oder Netzlink-
Nachrichten (-N) einzusehen.

Eine Alternative zu netstat ist das in der


Programmsammlungiproute2 enthaltene
Programm ss.

DNS-Informationen abfragen

Wie dig dient auch nslookup den


Namensauflösungen. Das
Kommandozeilenprogramm steht Ihnen in zwei
nslookup Modi zur Verfügung: interaktiv und nicht-interaktiv.

Den interaktiven Modus starten Sie, indem Sie den


Befehl nslookup ohne Zusatz ins Terminal
eingeben.

nslookup
Das Programm nimmt nun Befehle entgegen.
Geben Sie beispielsweise einen Hostnamen
(Domain) ein, um sich die entsprechende IP-
Adresse ausgeben zu lassen.

Alternativ können Sie eine Reverse-Lookup-


Abfrage starten, indem Sie eine IP-Adresse
eingeben und sich den damit verknüpften
Hostnamen ausgeben lassen.

Das Programm nslookup verwendet automatisch


den im System voreingestellten DNS-Server.

Geben Sie den Befehl exit ein, um nslookup zu


beenden.

Möchten Sie nslookup im nicht-interaktiven Modus


verwenden, rufen Sie das Programm in
Kombination mit einem Hostnamen oder einer IP-
Adresse auf.

nslookup [OPTIONEN] [HOST/IP ]

Da das Programm offiziell veraltet ist, wird


Anwendern empfohlen, stattdessen
auf dig zurückzugreifen.

Netzverbindung prüfen

Nutzen Sie das Kommandozeilenprogramm ping,


um die Erreichbarkeit anderer Rechner im
Netzwerk zu überprüfen.

Dem Befehl liegt folgende Syntax zugrunde:

ping [OPTIONEN] ZIEL

Um die Netzverbindung zu überprüfen,


sendet ping ein kleines Datenpaket an das
ping angegebene Zielsystem (Hostname oder IP) und
wertet die Zeit bis zum Eingang der Antwort aus.

Zusammen mit der Paketumlaufzeit (Round trip


time, RTT) – die Zeitspanne zwischen dem
Aussenden des Datenpakets und dem Empfang der
Antwort – schreibt ping auch die IP-Adresse des
Zielsystems ins Terminal. Das
Kommandozeilenprogramm eignet sich somit auch
dazu, die IP-Adresse zu einer Domain zu ermitteln.

Wird ping ohne Option ausgeführt, läuft das


Programm, bis es mit der Tastenkombination
[STRG] + [C] händisch gestoppt wird, und sendet
dem Ziel-System eine ping-Anfrage pro Sekunde.

Möchten Sie bereits beim Aufruf des Programms


einen Endzeitpunkt definieren, nutzen Sie die
Optionen -c ANZAHL(Anzahl der ping-Anfragen, die
gesendet werden sollen) oder -w
SEKUNDEN (Zeitspanne in Sekunden, nach
der ping sich selbst beendet).

IP-Routing-Tabellen anzeigen und bearbeiten

Mit dem Kommandozeilenprogramm route lassen


sich IP-Routing-Tabellen des Kernels abfragen und
bearbeiten.

Dem Befehl liegt folgende Syntax zugrunde:

route [OPTIONEN]

route [OPTIONEN] [add|del] [-net|-host]


ZIEL Nutzen Sie den Befehl ohne Option, um sich
die komplette Routing-Tabelle des Kernels
anzeigen zu lassen:

route

Möchten Sie eine Route zu einem Netzwerk setzen,


verwenden Sie den Subbefehl add.
route route add -net 10.0.0.0

Handelt es sich bei dem Ziel um ein Subnetz, muss


die Subnetzmaske über die Option netmask
MASKE mit angegeben werden:

route add -net 10.0.0.0 netmask 256.245.155.0

Alternativ lässt sich auch eine Route zu einem


Rechner einrichten:

route add -host 218.89.72.191

Verfügt das System über mehrere


Netzwerkschnittstellen, muss über die Option dev
SCHNITTSTELLE angegeben werden, welche
Schnittstelle zum Einsatz kommen soll:

route add -net 10.0.0.0 netmask 256.245.155.0 dev


eth0
Lässt sich das Ziel nur über einen Router erreichen,
muss auch dieser mit der Option gw ROUTER mit
angegeben werden.

route add -net 10.0.0.0 netmask 256.245.155.0 gw


10.0.1.261

Möchten Sie eine Route löschen, verwenden Sie


den Subbefehl del.

route del -host 218.89.72.191

Dateien synchronisieren

Das Kommandozeilenprogramm rsync ermöglicht


es, Dateien lokal oder über ein Netzwerk zu
synchronisieren. Dazu werden zunächst die Größe
und die Änderungszeit betreffender Dateien
abgeglichen.

Befinden sich Quelle und Ziel auf demselben


System, werden abweichende Dateien komplett
kopiert. Bei der Synchronisation über ein Netzwerk
nutzt rsync einen Delta-Transfer-Algorithmus,
sodass nur geänderte Dateianteile vom
Quelldatenträger zum Zielsystem übertragen
werden müssen.
rsync Die Syntax des Aufrufs lautet:

rsync [OPTIONEN] QUELLE(N) ZIEL

Beispiel:

rsync -a home/user/dokumente/ /home/user/backup

Alle Dateien aus home/user/dokumente/ werden mit


den Dateien im
Verzeichnis /home/user/backup abgeglichen.

Der Befehl rsync wird in der Regel mit der Option -


a ausgeführt, die dafür sorgt, dass sämtliche
Unterverzeichnisse sowie symbolische Links
mitkopiert und sämtliche Benutzerrechte
übernommen werden.

Dateien via SFTP übertragen

Das Kommandozeilenprogramm sftp dient


sftp wie ftp dem Datentransfer im Netzwerk. Dabei
erfolgen alle Operationen über eine verschlüsselte
SSH-Verbindung (Secure Shell).
Wie ftp stellt sftp eine Verbindung zu einem
Zielrechner im Netzwerk her und startet
anschließend einen interaktiven Kommando-
Modus.

Dateien via SCP übertragen

Mit scp (kurz für secure copy) steht Ihnen direkt


über das Terminal ein weiteres Programm zur
sicheren Datenübertragung im Netzwerk zur
Verfügung: scp kopiert Daten von einem Rechner
zum anderen und nutzt dabei ebenfalls das
Netzwerkprotokoll SSH.

Das Clientprogramm funktioniert in etwa so wie die


Dateioption cp, kommt gemäß folgender Syntax
jedoch systemübergreifend zum Einsatz:

scp [OPTIONEN] DATEI


[[user@]remote_host:]PFAD

Bei der Angabe zum Pfad des entfernten Rechners


werden der Benutzername und der jeweilige Name
des Hosts vorangestellt. Lokale Dateien lassen sich
mittels relativer oder absoluter Pfade explizit
adressieren.
scp
Beispiel:

scp /home/max/images/image.jpg
max@example.com:/home/max/archiv

Die Datei image.jpg wird vom lokalen


Verzeichnis images in das Verzeichnis archiv auf
einen Zielrechner mit der
Adresse example.com kopiert.

Das Programm scp unterstützt zudem den


Datentransfer in umgekehrter Richtung sowie
zwischen Zwei Remote-Systemen.

scp [OPTIONEN] [[user@]host:]DATEI PFAD

scp [OPTIONEN] [[user@]host1:]DATEI


[[user@]host2:]PFAD

Weitere Optionen bieten Ihnen die Möglichkeit,


Anpassungen am Übertragungsmodus und an den
Verschlüsselungseinstellungen zu vorzunehmen.

traceroute Datenpakete verfolgen


Nutzen Sie den
Kommandozeilenbefehl traceroute nach folgendem
Schema, um den Transportweg eines IP-
Datenpakets zwischen Ihrem System und einem
Zielrechner nachzuvollziehen.

traceroute [OPTIONEN] HOSTNAME

Via traceroute lässt sich ermitteln, welche Router


und Internetknoten ein IP-Paket auf dem Weg zum
Zielrechner passiert – beispielsweise, um der
Ursache für eine Verzögerung nachzugehen.

Terminalnamen ausgeben

Der Kommandozeilenbefehl tty gibt den


Dateinamen des Terminals aus, das als Standard-
tty Input definiert ist.

Die allgemeine Syntax des Befehls lautet:

tty [OPTIONEN]

Archivieren und Komprimieren


Linux bietet diverse Technologien, mit denen sich Dateien in Archive verpacken und
komprimieren lassen. Dabei ist zu beachten, dass nicht
jede Archivierung eine Kompression beinhaltet. So wird tar – ein Programm zum Archivieren
von Dateien – in der Regel mit Komprimierungsprogrammen wie gzip, bzip2 oder xz kombiniert.

Befehl Beschreibung

Dateien in Tar-Archive schreiben und extrahieren

Der Befehl tar steht für tape archiver, ein Programm, das
ursprünglich entwickelt wurde, um Daten auf Bandlaufwerken
zu sichern. Noch heute ist tar unter Linux eines der beliebtesten
Programme zur Archivierung von Daten.

Das Programm ermöglicht es, verschiedene Dateien und


Verzeichnisse sequenziell in eine tar-Datei zu schreiben und
tar
aus dieser bei Bedarf wiederherzustellen. Anders als bei dem
unter Windows gebräuchlichen Zip-Format bleiben dabei alle
Benutzerrechte der archivierten Datei auch nach dem
Entpacken erhalten.

Das Kommandozeilenprogramm tar wird gemäß folgender


Syntax aufgerufen:

tar [OPTIONEN] DATEIEN


Möchten Sie ein neues Archiv erstellen, verwenden Sie tar mit
den Optionen -c (neues Archiv erzeugen) und -f (Archiv in
angegebene Datei schreiben oder aus dieser auslesen).

In folgendem Beispiel werden die


Dateien datei1.txt und datei2.txtin das neu erstellte Archiv
beispiel.tar geschrieben.

tar -cf beispiel.tar datei1.txt datei2.txt

Möchten Sie den Inhalt eines Archivs einsehen, nutzen


Sie tar mit den Optionen -t (Inhalte eines Archivs anzeigen), -
v (detaillierte Ausgabe) und -f (siehe oben).

tar -tvf beispiel.tar

Sollen archivierte Dateien im aktuellen Ordner entpackt werden,


kommt tar mit den Optionen -x (Dateien aus Archiv extrahieren)
und -f (siehe oben) zum Einsatz.

tar -xf beispiel.tar

Mit -j (bzip2), -J (xz), -z (gzip) und -Z (compress)


bietet tar zudem Optionen, die es ermöglichen, Archive unter
Aufruf eines anderen Programms während des Pack- und
Entpackvorgangs zu komprimieren bzw. zu dekomprimieren.

In folgendem Beispiel werden die


Dateien datei1.txt und datei2.txtin beispiel.tar.gz archiviert und
mit gzip komprimiert.

tar -czf beispiel.tar.gz datei_1.txt datei_2.txt

Folgender Befehl extrahiert und dekomprimiert alle


in beispiel.tar.gz archivierten Dateien.

tar -xzf beispiel.tar.gz

Dateien mit gzip komprimieren oder dekomprimieren

Bei gzip (kurz für GNU zip) handelt es sich um ein Programm,
mit dem sich Dateien bequem über die Kommandozeile
komprimieren und dekomprimieren lassen.

Die allgemeine Syntax des Befehls lautet:


gzip / gunzip
gzip [OPTIONEN] DATEI(EN)

Nutzen Sie gzip beispielsweise nach folgendem Schema, um


die Datei beispiel.txt in das komprimierte
Format beispiel.txt.gz zu überführen:

gzip beispiel.txt
Beachten Sie, dass gzip die Originaldatei im Rahmen des
Packvorgangs standardmäßig löscht. Unterbinden lässt sich
dies mithilfe der Option -k.

gzip -k beispiel.txt

Das Programm kann bei Bedarf auf mehrere Dateien


gleichzeitig angewendet werden. Dabei wird jede
Ausgangsdatei in eine eigenständige gz-Datei überführt.

Der Befehl

gzip beispiel_1.txt beispiel_2.txt beispiel_3.txt

erzeugt die
Dateien beispiel_1.txt.gz, beispiel_2.txt.gz und beispiel_3.txt.gz.

Möchten Sie mehrere Dateien in ein gemeinsames


komprimiertes Archiv schreiben, nutzen Sie gzip in Kombination
mit dem Archivierungsprogramm tar.

Möchten Sie eine gz-Datei dekomprimieren, nutzen Sie den


Befehl gzip mit der Option -d. Alternativ bietet sich der
Befehl gunzip an.

gzip -d beispiel.txt.gz

gunzip beispiel.txt.gz

Auch entpackte gz-Dateien werden standardmäßig gelöscht.


Möchten Sie neben der extrahierten Datei auch die gz-Datei
behalten nutzen Sie auch hier die Option -k.

Die gzip-Komprimierung beruht auf dem Deflate-Algorithmus


(eine Kombination aus LZ77 und Huffman-Kodierung). Im
Vergleich zu anderen Komprimierungsmethoden zeichnet
sich gzip durch seine Schnelligkeit aus. Der Kompressionsgrad
ist jedoch vergleichsweise gering.

Dateien mit bzip komprimieren und dekomprimieren

Eine beliebte Alternative zu gzip stellt das


Kommandozeilenprogramm bzip2 dar. Dieses verwendet
dieselbe Syntax wie gzip, beruht jedoch auf einem dreistufigen
Komprimierungsprozess, der einen deutlich höheren
bzip2 / bunzip2 Kompressionsgrad ermöglicht.

Zunächst werden die übergebenen Dateien blockweise der


umkehrbaren Burrows-Wheeler-Transformation und
anschließend der Move-to-Front-Transformation unterzogen.
Die eigentliche Datenkompression erfolgt abschließend im
Rahmen einer Huffman-Kodierung.
Dateien, die mit bzip2 komprimiert wurden, tragen die
Dateiendung .bz2. Nutzen Sie bzip nach folgendem Schema,
um Dateien zu komprimieren.

bzip2 [OPTIONEN] DATEI(EN)

Auch bzip2 lässt sich auf tar-Archive anwenden.

Die Dekompression erfolgt analog zu gzip mithilfe der Option -


d. Alternativ steht der Befehl bunzip2 zur Verfügung.

Den hohen Kompressionsgrad erkaufen sich Anwender durch


eine vergleichsweise lange Laufzeit.

Dateien mit xz komprimieren und dekomprimieren

Das Kommandozeilenprogramm xz überführt Dateien in das


gleichnamige Datenkompressionsformat xz. Der
Programmaufruf erfolgt nach demselben Schema wie
bei gzip und bzip2.

xz [OPTIONEN] DATEI(EN)

Dateien, die mit xz komprimiert wurden, tragen die


Dateiendung .xz. Die Dekomprimierung erfolgt wie
xz bei gzip und bzip mit der Option -d. Alternativ kann der
Befehl unxz verwendet werden.

Wie gz- und bz2-Dateien sind auch xz-Dateien keine


Archivdateien. Möchten Sie mehrere Dateien in dieselbe
komprimierte xz-Datei schreiben, müssen Sie auch bei diesem
Komprimierungsprogramm auf das
Archivierungstool tar zurückgreifen.

xz unterstützt diverse Kompressionsalgorithmen.


Standardmäßig kommt der Lempel-Ziv-Markow-Algorithmus
zum Einsatz (LZMA/LZMA2)

Dateien in Archivdatei schreiben und extrahieren

cpio Bei cpio (kurz für copy in, copy out) handelt es sich um ein
Archivierungsprogramm, mit dem Daten in eine Archivdatei
(.cpio) geschrieben und aus dieser extrahiert werden können.
Eine detaillierte Beschreibung der hier aufgeführten Kommandozeilenprogramme finden Sie in
unserem Grundlagenartikel zum Thema „Archivierung und Komprimierung unter Linux“. Weitere
Informationen zu Kompressionsverfahren sowie die Abgrenzung zur Deduplikation bietet
unser Artikel zur Datenreduktion.

Partitionsmanagement
Möchten Sie unter Linux auf ein Dateisystem auf einer anderen Partition zugreifen, muss dieses
zunächst in die Verzeichnisstruktur Ihres Betriebssystems eingebunden werden. Man spricht vom
„Mounten“ (oder „Einhängen“) einer Partition. Dies kann bei Bedarf über die grafische
Benutzeroberfläche erfolgen. Alternativ bieten Kommandozeilenprogramme
wie lsblk, blkid und mount die Möglichkeit, Informationen zu angeschlossenen
Blockspeichergeräten abzufragen und diese bei Bedarf ein- oder auszuhängen.

Befehl Beschreibung

Dateisysteme einbinden

Soll ein Dateisystem über das Terminal in die


Verzeichnisstruktur des Betriebssystems
eingebunden werden, kommt unter Linux das
Kommandozeilenprogramm mount zum Einsatz.

Die allgemeine Syntax des Befehls lautet:

mount [OPTIONEN] GERÄT MOUNTPOINT

GERÄT = Der Pfad zur Gerätedatei des


Speichergeräts, das Sie als Partition einhängen
möchten.

MOUNTPOINT = Die Stelle in der


Verzeichnisstruktur Ihres Betriebssystems, an der
mount /unmount
Sie die Partition einbinden möchten. Der Mountpoint
wird meist als absoluter Pfad angegeben.

Beispiel:

mount /dev/sdd /media/usb

Das Gerät sdd wird in das Verzeichnis /media/usb


eingehängt.

In der Regel erkennt Linux das jeweilige


Dateisystem des Geräts automatisch. Sollte dies
nicht der Fall sein, bietet die Option -t die
Möglichkeit, das Dateisystem (z. ext4) explizit
mitanzugeben:

mount -t ext4 /dev/sdd /media/usb


Soll ein bereits eingebundenes Dateisystem
ausgehängt werden, kommt der
Befehl unmount zum Einsatz:

unmount [OPTIONEN] GERÄT

oder

unmount [OPTIONEN] MOUNTPOINT

Möchten Sie sich alle Dateisysteme ausgeben


lassen, die in Ihr Betriebssystem eingebunden sind,
verwenden Sie den Befehl mount mit der Option -l.

mount -l

Die Ausgabe kann via -t auf Dateisysteme eines


bestimmten Typs eingegrenzt werden.

Informationen zu angeschlossenen
Blockspeichergeräten auflisten

Nutzen Sie den Befehl lsblk (kurz für list block


devices), um sich alle angeschlossenen
Blockspeichergeräte und Partitionen als
Baumstruktur darstellen zu lassen. Diese müssen
nicht zwangsläufig eingebunden sein.

Dem Aufruf liegt folgende Syntax zugrunde:

lsblk [OPTIONEN]

Die Ausgabe umfasst folgende Informationen:

NAME = Gerätename (z.B. sda) bzw.


lsblk Partitionsname (z.B. sda1, sda2 etc.)

MAJ:MIN = major:minor Gerätenummer

RM = Wechselmedium (1 = zutreffend, 0 = nicht


zutreffend)

SIZE = Speicherumfang des Geräts

RO = nur-lesbares Gerät (1 = zutreffend, 0 = nicht


zutreffend)

TYPE = Gerätetyp

MOUNTPOINT = Einhängepunkt

Bei Bedarf lässt sich die Ausgabe mithilfe der


Option -o (--output) und einer Liste der gewünschten
Attribute individuell anpassen, um zusätzliche
Informationen wie die Identifikationsnummer (UUID),
das Dateisystem (FSTYPE) oder den Zustand
(STATE) abzufragen.

Beispiel:

lsblk -o NAME,FSTYPE,UUID,
SIZE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT

In der Standardeinstellung werden leere


Speichergeräte übersprungen. Möchten Sie auch
diese in die Übersicht aufnehmen, verwenden
Sie lsblk in Kombination mit der Option -a(--all).

Möchten Sie lediglich Informationen zu einem


bestimmten Gerät abfragen, verwenden
Sie lsblk nach folgendem Schema:

lsblk [OPTIONEN] GERÄT

Beispiel:

lsblk /dev/sda

Informationen zu angeschlossenen
Blockspeichergeräten auflisten

Ähnlich wie lsblk gibt auch blkid Informationen zu


angeschlossenen Blockspeichergeräten aus.

Verwenden Sie blkid nach folgendem Schema, um


die Identifikationsnummer (UUID) und den
Dateisystemtyp (TYPE) aller angeschlossenen
Blockspeichergeräte abzufragen.

blkid [OPTIONEN]
blkid
Eine Tabellarische Ausgabe erhalten Sie mithilfe der
Option -o in Kombination mit dem Wert list.

blkid -o list

Auch blkid lässt sich auf ein ausgewähltes Gerät


einschränken:

blkid [OPTIONEN] GERÄT

Beispiel:

blkid /dev/sda1
Bit-genaues kopieren von Dateien, Partitionen
oder Datenträgern

Das Kommandozeilenprogramm dd ermöglicht einen


Kopiervorgang, bei dem Daten Bit für Bit aus einem
Input File (if) ausgelesen und in ein Output File (of)
geschrieben werden.

Dem Aufruf des Programms liegt folgende Syntax


zugrunde:

dd if=Quelle of=Ziel [OPTIONEN]

Als Quelle und Ziel können dabei sowohl einzelne


dd
Dateien als auch ganze Partitionen (z.B. /dev/sda1)
oder ein komplettes Speichergerät (z.B. /dev/sda)
angegeben werden.

Beispiel:

dd if=/dev/sda5 of=/dev/sdb1

Die komplette fünfte Partition von /dev/sda wird Bit-


genau auf die erste Partition von /des/sdb kopiert.

Über Optionen lässt sich der Kopiervorgang auf eine


beliebige Anzahl von Speicherblöcken der
gewünschten Größe beschränken.

Verschiedenes
Nachfolgend finden Sie eine Liste weiterer Standardbefehle unter Linux, die sich keiner der oben
aufgeführten Kategorien zuordnen lassen.

Befehl Beschreibung

Kurznamen für Programmaufrufe definieren

Das Kommandozeilenprogramm alias ermöglicht


es Ihnen, Kurznamen für Programmaufrufe zu
definieren.

Verwenden Sie alias nach folgendem Schema:


alias
alias KURZNAME= 'BEFEHL'

Ersetzen Sie den Platzhalter BEFEHL durch


einen beliebigen Kommandozeilenbefehl
inklusive Optionen. Dieser wird mit der für den
Platzhalter KURZNAME eingesetzten
Zeichenfolge verknüpft.
Beispiel

alias ll='ls -l'

Die Zeichenfolge ll wird als Alias für den


Befehl ls mit der Option -l(detaillierte Ausgabe)
definiert.

Befehl zeitgesteuert ausführen

Rufen Sie das


Kommandozeilenprogramm at nach folgendem
Schema auf, um einen Befehl zeitgesteuert
auszuführen.

at at ZEITANGABE

Beispiel:

at 10:00 AM 6/22/2017

Geben Sie anschließend den Befehl ein und


schließen Sie den interaktiven Modus mit
[STRG] + [D].

Kalender anzeigen

Nutzen Sie cal nach folgendem Schema, um


sich einen Kalender im Terminal ausgeben zu
lassen.

cal cal [OPTIONEN] [[MONAT] Jahr]

Beispiel:

cal 12 2017

Das System gibt eine Monatsübersicht für


Dezember 2017 aus.

String auf der Standardangabe ausgeben

Nutzen Sie den Kommandozeilenbefehl echo,


um sich Zeichenketten zeilenweise auf der
echo Standardausgabe (in der Regel das Terminal)
ausgeben zu lassen.

Die allgemeine Syntax des Befehls lautet:

echo [OPTIONEN] STRING

pr Textdateien zum Drucken aufbereiten


Nutzen Sie das Kommandozeilenprogramm pr,
um Textdateien zum Drucken aufzubereiten.

Die allgemeine Syntax des Befehls lautet:

pr [OPTIONEN] Datei

In der Standardeinstellung erzeugt pr einen


Seiten-Header, der den Dateinamen, das
aktuelle Datum und die Seitennummer enthält.

Terminalsitzungen mitschneiden

Das Kommandozeilenprogramm
script ermöglicht es Ihnen, eine Terminalsitzung
in der Datei typescript mitzuschreiben. Findet
sich in typescript bereits ein Mitschnitt einer
vorhergehenden Sitzung, wird dieser
überschrieben.

Die Aufzeichnung startet automatisch mit dem


Aufruf des Programms:
script
script

Verwenden Sie die Tastenkombination [STRG] +


[D], um die Aufzeichnung zu beenden.

Möchten Sie die Aufzeichnung statt


in typescript in einer anderen Datei speichern,
rufen Sie script in Kombination mit einem
Dateinamen oder -pfad auf.

script DATEI

Zahlenreihen ausgeben

Nutzen Sie den Befehl seq, um sich eine


Zahlenreihe auf die Standardausgabe ausgeben
zu lassen. Definieren Sie dabei einen Startwert,
einen Endwert und wahlweise ein Inkrement.

seq seq [OPTIONEN] STARTWERT INKREMENT


ENDWERT

Beispiel:

seq 0 2 10

Das Programm zählt ausgehend vom Startwert 0


in Zweierschritten bis 100.
Installationshilfe für Standardanwendungen

Das Kommandozeilenprogramm tasksel dient als


Installationshilfe für Standardanwendungen
(Mail-Server, DNS-Server, OpenSSH-Server,
LAMP-Server etc.). Nutzen Sie das Tool, um alle
für eine Aufgabe benötigten Pakete und
Programme automatisch in der richtigen
Reihenfolge zu installieren.

Rufen Sie tasksel mit der Option --list-tasks auf,


um sich eine Liste aller verfügbaren
Standardanwendungen ausgeben zu lassen.

tasksel --list-tasks

Möchten Sie weitere Informationen zu einer


Standardanwendung aus dieser Liste abrufen,
verwenden Sie tasksel mit der Option --task-
desc und der entsprechenden Aufgabe.

Beispiel:
tasksel tasksel --task-desc mail-server

Es werden Informationen zur Aufgabe „mail-


server“ ausgegeben.

Möchten Sie sich alle Pakete, die zur Aufgabe


„mail-server“ gehören, auflisten lassen, nutzen
Sie tasksel in Kombination mit der Option --task-
packages.

tasksel --task-packages mail-server

Eine Installation aller Pakete einer


Standardanwendung starten Sie mithilfe des
Subbefehls install. Es werden Root-Rechte
benötigt.

Beispiel:

tasksel install mail-server

Das Kommandozeilenprogramm leitet die


Installation aller Pakete ein, die für die Aufgabe
„mail-server“ benötigt werden.

Programmausgabe verdoppeln
tee Bei tee handelt es sich um ein
Kommandozeilenprogramm, mit dem sich die
Ausgabe eines Programms verdoppeln lässt.
Dabei wird eine Ausgabe auf die
Standardausgabe weitergeleitet und eine andere
in eine mit dem tee-Befehl übergebene Datei
geschrieben.

Die allgemeine Syntax des Befehls lautet:

tee [OPTIONEN] DATEI

In der Regel kommt tee in Kombination mit dem


Umleitungsoperator Pipe (|) zum Einsatz.

ls | tee beispiel.txt

Der Befehl ls listet den Inhalt des aktuellen


Verzeichnisses auf. Die Programmausgabe wird
via Pipe an das
Kommandozeilenprogramm tee übergeben, das
diese sowohl im Terminal anzeigt als auch in die
Datei beispiel.txt schreibt.

Laufzeit von Programmen messen

Nutzen Sie den Befehl time nach folgendem


time Schema, um die Laufzeit von Programmen zu
ermitteln, die Sie über das Terminal starten.

time [OPTIONEN] Befehl [ARGUMENTE]

Zeichen in Textdateien ersetzen.

Nutzen Sie tr, um eine beliebige Zeichenmenge


zu löschen oder durch eine andere zu ersetzen.
Dazu liest tr den Datenstrom der
Standardeingabe ein und schreibt diesen nach
der gewünschten Modifikation auf die
Standardausgabe.

Soll eine Zeichenmenge durch eine andere


ersetzt werden, kommttr mit zwei Argumenten
tr zum Einsatz.

tr OPTION ZEICHENMENGE1
ZEICHENMENGE2

Das zweite Argument (ZEICHENMENGE2)


ersetzt das erste (ZEICHENMENGE1).

Möchten Sie eine Zeichenfolge löschen,


verwenden Sie tr mit der Option -d und
übergeben die zu löschende Sequenz als
Argument.
tr -d ZEICHENMENGE

Das Kommandozeilenprogramm kommt in der


Regel in Kombination mit Umleitungsoperatoren
(< und >) zum Einsatz, um Anpassungen in
Dateien vorzunehmen.

tr 'a-z' 'A-Z' < beispiel1.txt > beispiel2.txt

tr liest den Inhalt der Datei beispiel1.txt ein,


ersetzt die Kleinbuchstaben a bis z durch
Großbuchstaben und schreibt den Output in die
Datei beispiel2.txt.

Nachrichten an alle angemeldeten Benutzer


versenden

Das Kommandozeilenprogramm wall ermöglicht


es Ihnen, allen am System angemeldeten
Benutzern eine Nachricht zukommen zu lassen.

Um eine Mitteilung zu senden, startet Sie das


Programm mit folgendem Aufruf:

wall

Bestätigen Sie den Programmaufruf mit [Enter]


und geben Sie Ihre Nachricht ein. Auch diese
wird mit [Enter] bestätigt und durch die
Tastenkombination [STRG]+[D] abgeschickt.

Alle am System angemeldeten Benutzer erhalten


Ihre Nachricht als Broadcast-Message im
wall Terminal.

Beachten Sie: Um Mitteilungen erhalten zu


können, müssen Sie anderen Nutzern einen
Schreibzugriff für Ihr Terminal gewähren. Nutzen
Sie dazu den Befehl mesg:

mesg [y/n]

Aktuellen Status abrufen:

mesg

Schreibzugriff gewähren:

mesg y

Schreibzugriff verweigern:

mesg n
Möchten Sie Dateiinhalte an alle angemeldeten
Nutzer versenden, verwenden Sie wall in
Kombination mit einer Eingabeumleitung und
dem jeweiligen Dateinamen:

wall < DATEINAME

Befehle periodisch ausführen

Das
Kommandozeilenprogramm watch ermöglicht es
Ihnen, einen Befehl in regelmäßigen
Zeitabständen auszuführen.

Dem Aufruf des Programms liegt folgende


Syntax zugrunde:

watch [OPTIONEN] BEFEHL

Das Zeitintervall, in dem der


watch mit watch übergebene Befehl periodisch
aufgerufen wird, definieren Sie mithilfe der
Option -n SEKUNDEN.

Beenden lässt sich watch durch die


Tastenkombination [STRG] + [C].

In folgendem Beispiel wird das System


angewiesen, die Auslastung des
Arbeitsspeichers im 10–Sekunden-Takt
auszugeben.

watch -n 10 free

Zeilen, Wörter, Buchstaben, Zeichen


und/oder Bytes von Textdateien zählen

Das Kommandozeilenprogramm wc (kurz


für word count) gibt Ihnen bei Bedarf die Anzahl
der Zeilen, Wörter, Buchstaben, Zeichen
und/oder Bytes einer Textdatei aus.
wc Die allgemeine Syntax des Befehls lautet:

wc [OPTIONEN] DATEI

Beispiel:

wc beispiel.txt

Output:
14 18 143 beispiel.txt

Wird wc ohne Option aufgerufen, entspricht die


Ausgabe dem Schema ZEILEN WÖRTER
ZEICHEN DATEI. Für eine gefilterte Ausgabe
unterstützt das Kommandozeilenprogramm die
Optionen: -l (Zeilen), -c (Bytes), -m (Zeichen), -
L (Länge der längsten Zeile) und -w (Wörter).

Standardeingabe in Befehlszeilen umwandeln

Bei xargs handelt es sich um ein


Kommandozeilenprogramm, das es Ihnen
ermöglicht, einem Befehl die Ausgabe eines
vorhergehenden Befehls als Argument zu
übergeben. In der Regel kommt dabei die Pipe
(|) als Umleitungsoperator zum Einsatz.

Nutzen Sie xargs gemäß folgender Syntax:

BEFEHL1 | xargs [OPTIONEN] BEFEHL2


xargs
Zum Einsatz kommt xargs beispielsweise in
Kombination mit dem Befehl find.

In folgendem Beispiel ermittelt find im aktuellen


Verzeichnis alle Dateien, die auf das
Suchmuster *.tmp passen, und gibt deren
Namen auf die Standardausgabe aus. Dort
werden die Dateinamen
von xargs entgegengenommen und als
Argumente an den Befehl rm übergeben.

$ find . -name '*.tmp' | xargs rm

Quelle:

https://hosting.1und1.de/digitalguide/server/konfiguration/linux-befehle-terminal-kommandos-im-
ueberblick/

Das könnte Ihnen auch gefallen