Gängige Linux-Befehle und Beispiele nachschlagen

Nutzen Sie die Browsersuche oder öffnen Sie einen Abschnitt. Prüfen Sie Pfade, Berechtigungen und löschende Optionen, bevor Sie Befehle auf Ihrem System ausführen.

Läuft lokal in deinem Browser
Befehl Beschreibung
arch Vom Kernel gemeldeter Hardwarename der Maschine (derselbe Wert wie uname -m)
uname -m Hardwarename der Maschine, zum Beispiel x86_64
uname -r Version des laufenden Kernels, zum Beispiel 5.10.134-16.al8.x86_64
dmidecode -q DMI/SMBIOS-Hardwareinventar (BIOS, Mainboard, Speicher) ohne die Hinweise auf unbekannte Einträge (nur root)
hdparm -i /dev/hda IDE- oder SATA-Platte identifizieren: Modell, Firmware, Seriennummer und unterstützte Modi
hdparm -tT /dev/sda -T misst Lesezugriffe aus dem Cache, -t Lesezugriffe vom Gerät selbst und liefert damit einen rohen Durchsatzwert
cat /proc/cpuinfo CPU-Modell, Kernzahl und Feature-Flags genau so, wie der Kernel sie exportiert
cat /proc/interrupts Interrupt-Zähler je CPU und Gerät, nützlich um einen ausgelasteten Controller zu finden
cat /proc/meminfo Speicherzähler des Kernels — die Datei, die free liest
cat /proc/swaps Aktive Swap-Bereiche mit Größe, belegtem Platz und Priorität
cat /proc/version Versionszeichenkette des Kernels, samt dem Compiler, mit dem er gebaut wurde
cat /proc/net/dev Byte-, Paket-, Fehler- und Verwerfungszähler jeder Netzwerkschnittstelle
cat /proc/mounts Alle eingehängten Dateisysteme mit ihren aktuellen Einhängeoptionen
lspci -tv PCI-Geräte als Baum mit Bussen, Brücken und den Geräten dahinter
lsusb -tv USB-Geräte als Baum mit Hersteller- und Produkt-IDs (Paket usbutils)
date Aktuelles Datum und aktuelle Uhrzeit der Systemuhr
cal 2007 Kalender für einen Monat oder ein ganzes Jahr — hier das ganze Jahr 2007
date 041217002007.00 Stellt die Uhr im Format MMDDhhmm[[CC]YY][.ss]: 17. Dezember 2007, 00:20 (nur root)
clock -w Schreibt die Systemzeit in die Hardware-Uhr, damit sie einen Stromausfall übersteht (hwclock -w, nur root)

Befehl Beschreibung
shutdown -h now Schaltet die Maschine sofort aus (nur root)
init 0 Wechselt in Runlevel 0, also in den Halt (nur root)
telinit 0 Fordert Runlevel 0 über den Steuer-Socket von init an — derselbe Halt (nur root)
shutdown -h hours:minutes & Plant das Herunterfahren zu einer gewählten Zeit und gibt die Eingabeaufforderung zurück
shutdown -c Bricht ein zuvor geplantes Herunterfahren ab
shutdown -r now Startet die Maschine jetzt neu (nur root)
reboot Neustart über init oder systemd (nur root)
logout Schließt die aktuelle Login-Shell

Befehl Beschreibung
cd /home In ein Verzeichnis wechseln, das mit absolutem Pfad angegeben ist
cd .. Eine Verzeichnisebene nach oben gehen
cd ../.. Zwei Verzeichnisebenen nach oben gehen
cd In das eigene Home-Verzeichnis wechseln
cd ~user1 In das Home-Verzeichnis eines anderen Benutzers wechseln
cd - In das Verzeichnis zurückkehren, in dem man vorher war
pwd Das aktuelle Arbeitsverzeichnis ausgeben
ls Die Einträge des aktuellen Verzeichnisses auflisten
ls -F Auflisten mit Typzeichen: / Verzeichnis, * ausführbar, @ symbolischer Link
ls -l Lange Auflistung mit Rechten, Eigentümer, Größe und Änderungszeit
ls -a Auch die Einträge anzeigen, die mit einem Punkt beginnen, etwa .bashrc
ls *[0-9]* Nur Namen auflisten, die eine Ziffer enthalten; die Shell löst das Muster auf
tree Verzeichnisbaum des aktuellen Pfads; steckt in einem eigenen Paket und fehlt deshalb oft
lstree Ein anderer Name für dieselbe Baumanzeige; auf den meisten Systemen ein Alias
mkdir dir1 Ein Verzeichnis anlegen
mkdir dir1 dir2 Zwei Verzeichnisse in einem Aufruf anlegen
mkdir -p /tmp/dir1/dir2 Fehlende Elternverzeichnisse anlegen und nicht scheitern, wenn der Pfad schon existiert
rm -f file1 Eine Datei löschen und einen fehlenden Namen übergehen, statt nachzufragen
rmdir dir1 Ein leeres Verzeichnis entfernen
rm -rf dir1 Ein Verzeichnis mit allem Inhalt löschen, ohne jede Rückfrage
rm -rf dir1 dir2 Zwei ganze Bäume in einem Aufruf löschen
mv dir1 new_dir Ein Verzeichnis umbenennen oder verschieben, wenn das Ziel ein anderer Pfad ist
cp file1 file2 Eine Datei kopieren
cp dir/* . Alles aus einem Verzeichnis in das aktuelle kopieren
cp -a /tmp/dir1 . Archivkopie, die Rechte, Eigentümer, Links und Zeitstempel erhält
cp -a dir1 dir2 Dieselbe Archivkopie für einen zweiten Baum
ln -s file1 lnk1 Einen symbolischen Link anlegen, der einen Pfad speichert
ln file1 lnk1 Einen harten Link anlegen: ein zweiter Name für denselben Inode
touch -t 0712250000 file1 Den Zeitstempel ausdrücklich auf den 25. Dezember 2007, 00:00, setzen statt auf jetzt
iconv -l Alle Zeichenkodierungen auflisten, die dieser iconv-Build kennt
iconv -f fromEncoding -t toEncoding inputFile > outputFile Eine Datei von einer Zeichenkodierung in eine andere umwandeln und das Ergebnis in eine neue Datei schreiben
find . -maxdepth 1 -name '*.jpg' -exec ls -l {} \; Nur die JPEG-Dateien dieses Verzeichnisses zeigen und für jeden Treffer ein Kommando ausführen

Befehl Beschreibung
find / -name file1 Das ganze Dateisystem nach einem exakten Dateinamen durchsuchen
find / -user user1 Alle Dateien, die einem Benutzer gehören
find /home/user1 -name \*.bin Namensmuster mit Platzhalter, unterhalb eines Verzeichnisses gesucht
find /usr/bin -type f -atime +100 Reguläre Dateien, die zuletzt vor mehr als 100 Tagen gelesen wurden
find /usr/bin -type f -mtime -10 Reguläre Dateien, die in den letzten zehn Tagen geändert wurden
find / -name \*.rpm -exec chmod 755 '{}' \; Für jeden Treffer ein Kommando ausführen; {} steht für den gefundenen Pfad
find / -xdev -name \*.rpm Innerhalb eines Dateisystems bleiben, sodass eingehängte Medien und Netzwerkfreigaben übersprungen werden
locate \*.ps Namen im updatedb-Index nachschlagen: viel schneller als find, aber nur so aktuell wie der letzte Indexlauf
whereis halt Das Programm, den Quelltext und die Manpage eines Kommandos finden
which halt Zeigen, welche ausführbare Datei die Shell starten würde

Befehl Beschreibung
mount /dev/hda2 /mnt/hda2 Eine Partition in ein Verzeichnis des Dateisystembaums einhängen (nur root)
umount /dev/hda2 Die Partition wieder aushängen; auch der Einhängepunkt darf als Argument dienen
fuser -km /mnt/hda2 Die Prozesse beenden, die den Einhängepunkt noch halten, damit er ausgehängt werden kann (nur root)
umount -n /mnt/hda2 Aushängen, ohne die Änderung in /etc/mtab zu schreiben
mount /dev/fd0 /mnt/floppy Das erste Diskettenlaufwerk einhängen (alter Gerätename)
mount /dev/cdrom /mnt/cdrom Das optische Laufwerk hinter dem Link /dev/cdrom einhängen
mount /dev/hdc /mnt/cdrecorder Das dritte Gerät der alten hdX-Benennung einhängen, meist ein CD-Brenner
mount /dev/hdb /mnt/cdrecorder Dasselbe für das zweite Gerät am ersten IDE-Kanal
mount -o loop file.iso /mnt/cdrom Den Inhalt eines ISO-Abbilds als Verzeichnis bereitstellen
mount -t vfat /dev/hda5 /mnt/hda5 Eine FAT-Partition mit dem vfat-Treiber einhängen, damit Windows-Dateien lesbar bleiben
mount /dev/sda1 /mnt/usbdisk Die erste Partition einer USB-Platte einhängen
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Eine Windows-Freigabe einhängen; aktuelle Kernel nutzen -t cifs und eine Zugangsdatendatei statt smbfs

Befehl Beschreibung
df -h Freier Platz jedes Dateisystems in lesbaren Einheiten
ls -lSr |more Dateien dieses Verzeichnisses nach Größe sortiert, größte zuerst, mit more seitenweise ausgegeben
du -sh dir1 Gesamter Plattenplatz, den ein Verzeichnis belegt
du -sk * | sort -rn Größe jedes Eintrags in Kilobyte, größte zuerst
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n Installierte RPM-Pakete mit ihrer Größe in Byte, nach dieser Spalte sortiert
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n Dieselbe Auflistung für Debian-Pakete: installierte Größe und Paketname

Befehl Beschreibung
groupadd group_name Eine Gruppe anlegen (nur root)
groupdel group_name Eine Gruppe löschen (nur root)
groupmod -n new_group_name old_group_name Eine Gruppe umbenennen (nur root)
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 Ein Konto mit Kommentar, primärer Gruppe, Home-Verzeichnis und Login-Shell anlegen (nur root)
useradd user1 Ein Konto mit den Vorgaben aus /etc/default/useradd anlegen (nur root)
userdel -r user1 Ein Konto samt Home-Verzeichnis löschen (nur root)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 Kommentar, Gruppe, Home-Verzeichnis und Shell eines bestehenden Kontos ändern (nur root)
passwd Das eigene Passwort ändern
passwd user1 Das Passwort eines anderen Kontos ändern (nur root)
chage -E 2030-12-31 user1 Einem Konto ein Ablaufdatum geben, ab dem die Anmeldung verweigert wird (nur root)
pwck /etc/passwd und /etc/shadow auf widersprüchliche Einträge prüfen (nur root)
grpck /etc/group und /etc/gshadow auf dieselbe Art von Problemen prüfen (nur root)
newgrp group_name Eine neue Shell starten, in der eine andere Gruppe die effektive primäre Gruppe ist

Befehl Beschreibung
ls -lh Lange Auflistung mit Größen in K, M und G
ls /tmp | pr -T5 -W$COLUMNS Die Auflistung in fünf Spalten ausgeben, angepasst an die Terminalbreite
chmod ugo+rwx directory1 Eigentümer, Gruppe und anderen Lesen, Schreiben und Ausführen für ein Verzeichnis geben
chmod go-rwx directory1 Gruppe und anderen alle Rechte entziehen
chown user1 file1 Den Eigentümer einer Datei ändern (nur root)
chown -R user1 directory1 Den Eigentümer eines Verzeichnisses und alles darunter ändern (nur root)
chgrp group1 file1 Die Gruppe einer Datei ändern
chown user1:group1 file1 Eigentümer und Gruppe in einem Aufruf ändern (nur root)
find / -perm -u+s Alle setuid-Programme des Systems finden
chmod u+s /bin/file1 Das setuid-Bit setzen, damit die Datei mit den Rechten ihres Eigentümers läuft (nur root)
chmod u-s /bin/file1 Das setuid-Bit wieder entfernen
chmod g+s /home/public Das setgid-Bit setzen: neue Einträge unterhalb des Verzeichnisses erben dessen Gruppe
chmod g-s /home/public Das setgid-Bit entfernen
chmod o+t /home/public Das Sticky-Bit setzen, damit in einem gemeinsamen Verzeichnis jeder nur seine eigenen Dateien löschen darf
chmod o-t /home/public Das Sticky-Bit entfernen

Befehl Beschreibung
chattr +a file1 Nur Anhängen: die Datei darf wachsen, aber nicht überschrieben oder gelöscht werden (nur root)
chattr +c file1 Die Datei komprimiert auf der Platte ablegen (ext4, nur root)
chattr +d file1 Die Datei von dump-Sicherungen ausnehmen (nur root)
chattr +i file1 Unveränderlich: selbst root kann sie nicht ändern oder löschen, bis das Attribut weg ist (nur root)
chattr +s file1 Shred: beim Löschen die Blöcke mit Nullen überschreiben (nur root)
chattr +S file1 Synchrones Schreiben: jede Änderung geht sofort auf die Platte (nur root)
chattr +u file1 Undeletable: den Inhalt behalten, damit eine gelöschte Datei noch gerettet werden kann (nur root)
lsattr Die Attribut-Flags von Dateien auflisten; ohne Argument läuft es durch das aktuelle Verzeichnis

Befehl Beschreibung
bunzip2 file1.bz2 Eine bzip2-Datei entpacken und das komprimierte Original löschen
bzip2 file1 Eine Datei mit bzip2 komprimieren; sie heißt danach file1.bz2
gunzip file1.gz Eine gzip-Datei entpacken
gzip file1 Eine Datei komprimieren; sie heißt danach file1.gz
gzip -9 file1 Dasselbe mit maximaler Kompression, auf Kosten der Geschwindigkeit
rar a file1.rar test_file Eine Datei zu einem RAR-Archiv hinzufügen (rar ist Shareware und fehlt in den meisten Distributionen)
rar a file1.rar file1 file2 dir1 Mehrere Dateien und ein Verzeichnis zum RAR-Archiv hinzufügen
rar x file1.rar Ein RAR-Archiv entpacken und die gespeicherte Verzeichnisstruktur erhalten
unrar x file1.rar Dasselbe Entpacken mit dem separaten Werkzeug unrar
tar -cvf archive.tar file1 Ein unkomprimiertes Archiv anlegen und jedes hinzugefügte Element ausgeben
tar -cvf archive.tar file1 file2 dir1 Dasselbe Archiv mit mehreren Elementen
tar -tf archive.tar Die Elemente eines Archivs auflisten, ohne sie zu entpacken
tar -xvf archive.tar Ein Archiv in das aktuelle Verzeichnis entpacken
tar -xvf archive.tar -C /tmp In ein anderes Verzeichnis entpacken; -C gilt für alles, was danach kommt
tar -cvfj archive.tar.bz2 dir1 Ein mit bzip2 komprimiertes Archiv anlegen (-j)
tar -jxvf archive.tar.bz2 Ein bzip2-komprimiertes Archiv entpacken (-j)
tar -cvfz archive.tar.gz dir1 Ein mit gzip komprimiertes Archiv anlegen (-z)
tar -zxvf archive.tar.gz Ein gzip-komprimiertes Archiv entpacken
zip file1.zip file1 Eine Datei in ein neues ZIP-Archiv legen
zip -r file1.zip file1 file2 dir1 Zwei Dateien und ein Verzeichnis hinzufügen und dabei in das Verzeichnis absteigen
unzip file1.zip Ein ZIP-Archiv in das aktuelle Verzeichnis entpacken

Befehl Beschreibung
rpm -ivh package.rpm Ein Paket installieren und dabei Fortschrittsbalken und Dateinamen anzeigen
rpm -ivh --nodeps package.rpm Installieren, ohne vorher Abhängigkeiten aufzulösen — selten gewünscht
rpm -U package.rpm Ein Paket aktualisieren oder installieren, wenn keine ältere Version vorhanden ist
rpm -F package.rpm Refresh: nur aktualisieren, wenn bereits eine ältere Version installiert ist
rpm -e package_name Ein installiertes Paket entfernen; das Argument ist der Paketname, nicht die Datei
rpm -qa Alle installierten Pakete mit Name, Version und Release auflisten
rpm -qa | grep httpd Die Liste der installierten RPM-Pakete nach einem Paketnamen filtern
rpm -qi package_name Ausführliche Informationen zu einem installierten Paket
rpm -qg "System Environment/Daemons" Alle Pakete, die zu einer Gruppe gehören
rpm -ql package_name Dateien, die ein Paket besitzt
rpm -qc package_name Nur die Konfigurationsdateien eines Pakets
rpm -q package_name --whatrequires Pakete, die von dieser Fähigkeit abhängen
rpm -q package_name --whatprovides Fähigkeiten, die dieses Paket bereitstellt
rpm -q package_name --scripts Installations- und Deinstallations-Skriptlets des Pakets
rpm -q package_name --changelog Änderungsverlauf aus den Paketmetadaten
rpm -qf /etc/httpd/conf/httpd.conf Welchem Paket eine bestimmte Datei gehört
rpm -qp package.rpm -l Dateien in einer Paketdatei, die nicht installiert ist
rpm --import /media/cdrom/RPM-GPG-KEY Einen Signaturschlüssel in die RPM-Datenbank aufnehmen, damit Pakete geprüft werden können
rpm --checksig package.rpm Signatur und Prüfsumme einer Paketdatei verifizieren
rpm -qa gpg-pubkey Die aktuell in der RPM-Datenbank gespeicherten Schlüssel auflisten
rpm -V package_name Ein installiertes Paket mit seinen Metadaten vergleichen: Größe, Digest, Rechte
rpm -Va Alle installierten Pakete prüfen; langsam, und es zeigt jede Abweichung
rpm -Vp package.rpm Eine Paketdatei statt eines installierten Pakets prüfen
rpm2cpio package.rpm | cpio --extract --make-directories \*bin\* Ein RPM auspacken, ohne es zu installieren, und nur Pfade nehmen, die auf *bin* passen
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm Aus einem Build-Baum installieren, wobei arch die Architektur einsetzt
rpmbuild --rebuild package_name.src.rpm Aus einem Quell-RPM ein binäres RPM bauen

Befehl Beschreibung
yum install package_name Ein Paket samt Abhängigkeiten aus den Repositories installieren
yum localinstall package_name.rpm Eine lokale RPM-Datei installieren und die Abhängigkeiten aus den Repositories holen
yum update package_name.rpm Ein Paket aus einer lokalen Datei aktualisieren
yum update package_name Ein installiertes Paket auf die neueste Version aktualisieren
yum remove package_name Ein Paket und die davon abhängenden Pakete entfernen
yum list Installierte und verfügbare Pakete auflisten
yum search package_name Die Repositories nach einem Namen oder Stichwort durchsuchen
yum clean packages Die heruntergeladenen Paketdateien aus dem Cache löschen
yum clean headers Die zwischengespeicherten Metadaten-Header der Repositories löschen
yum clean all Den gesamten Cache leeren, Metadaten eingeschlossen

Befehl Beschreibung
dpkg -i package.deb Eine .deb-Datei installieren, ohne die Repositories zu befragen
dpkg -r package_name Ein installiertes Paket entfernen, aber seine Konfigurationsdateien behalten
dpkg -l Installierte Pakete mit ihren Versionen auflisten
dpkg -l | grep httpd Die Liste der installierten Debian-Pakete nach einem Namen filtern
dpkg -s package_name Status und Metadaten eines installierten Pakets
dpkg -L package_name Dateien, die ein Paket installiert hat
dpkg --contents package.deb Dateien in einer .deb-Datei, die nicht installiert ist
dpkg -S /bin/ping Welches Paket einen bestimmten Pfad installiert hat

Befehl Beschreibung
apt-get install package_name Ein Paket samt Abhängigkeiten aus den Debian-Repositories installieren
apt-cdrom add Eine CD oder DVD als Paketquelle eintragen und dann daraus installieren
apt-get update Den Paketindex aus allen konfigurierten Quellen neu laden
apt-get upgrade Die verfügbaren Aktualisierungen einspielen, ohne etwas zu entfernen
apt-get remove package_name Ein Paket aus den Debian-Repositories entfernen, aber die Konfigurationsdateien behalten
apt-get check Prüfen, ob die Paketdatenbank konsistent ist
apt-get clean Die heruntergeladenen .deb-Dateien aus /var/cache/apt löschen
apt-cache search searched-package Den Paketindex nach Name oder Beschreibung durchsuchen

Befehl Beschreibung
cat file1 Eine ganze Datei auf die Standardausgabe schreiben
tac file1 Die Datei mit umgekehrter Zeilenreihenfolge ausgeben
more file1 Eine Datei nur vorwärts seitenweise lesen
less file1 Eine Datei in beide Richtungen durchblättern und darin suchen
head -2 file1 Die ersten zwei Zeilen einer Datei; voreingestellt sind zehn
tail -2 file1 Die letzten zwei Zeilen einer Datei
tail -f /var/log/messages Ein wachsendes Protokoll verfolgen und neue Zeilen ausgeben, sobald sie geschrieben werden

Befehl Beschreibung
cat file1 | sed 's/old/new/g' > result.txt Eine Datei durch ein anderes Programm leiten und das Ergebnis in eine neue Datei schreiben
cat file1 | sed 's/old/new/g' >> result.txt Dasselbe, aber das Ergebnis wird angehängt statt die Datei zu ersetzen
grep Aug /var/log/messages Zeilen, die den Text enthalten
grep ^Aug /var/log/messages Zeilen, die mit dem Text beginnen — am Zeilenanfang verankert
grep [0-9] /var/log/messages Zeilen, die mindestens eine Ziffer enthalten
grep Aug -R /var/log/* Den Text rekursiv unterhalb der angegebenen Pfade suchen
sed 's/string1/string2/g' example.txt Jedes Vorkommen einer Zeichenkette durch eine andere ersetzen
sed '/^$/d' example.txt Die leeren Zeilen löschen
sed '/ *#/d; /^$/d' example.txt Kommentarzeilen und die danach leeren Zeilen löschen
echo 'example' | tr '[:lower:]' '[:upper:]' Text über die Zeichenklassen von tr in Großbuchstaben umwandeln
sed -e '1d' result.txt Die erste Zeile löschen und den Rest ausgeben
sed -n '/string1/p' example.txt Nur die passenden Zeilen ausgeben; -n unterdrückt die Standardausgabe
sed -e 's/ *$//' example.txt Die Leerzeichen am Zeilenende entfernen
sed -e 's/string1//g' example.txt Jedes Vorkommen eines Wortes löschen und den Rest der Zeile behalten
sed -n '1,5p;5q' example.txt Die ersten fünf Zeilen ausgeben und bei Zeile 5 aufhören zu lesen
sed -n '5p;5q' example.txt Nur Zeile 5 ausgeben und beenden
sed -e 's/00*/0/g' example.txt Folgen von Nullen zu einer einzigen Null zusammenfassen
cat -n file1 Jede Zeile beim Ausgeben nummerieren
cat example.txt | awk 'NR%2==1' Die ungeraden Zeilennummern ausgeben
echo a b c | awk '{print $1}' Das erste durch Leerzeichen getrennte Feld ausgeben
echo a b c | awk '{print $1,$3}' Das erste und das dritte Feld ausgeben
paste file1 file2 Zwei Dateien Zeile für Zeile mit einem Tabulator verbinden
paste -d '+' file1 file2 Dasselbe mit + als Trennzeichen
sort file1 file2 Beide Dateien zusammen aufsteigend sortieren
sort file1 file2 | uniq Benachbarte doppelte Zeilen entfernen; die Eingabe muss vorher sortiert sein
sort file1 file2 | uniq -u Nur Zeilen ausgeben, die genau einmal vorkommen
sort file1 file2 | uniq -d Nur Zeilen ausgeben, die mehr als einmal vorkommen
comm -1 file1 file2 Die Zeilen ausblenden, die nur in file1 stehen, und die anderen zwei Spalten behalten
comm -2 file1 file2 Die Zeilen ausblenden, die nur in file2 stehen
comm -3 file1 file2 Nur die Zeilen ausgeben, die sich zwischen beiden Dateien unterscheiden

Befehl Beschreibung
dos2unix filedos.txt fileunix.txt CRLF-Zeilenenden in LF umwandeln und eine neue Datei schreiben
unix2dos fileunix.txt filedos.txt LF-Zeilenenden in CRLF umwandeln
recode ..HTML < page.txt > page.html Reinen Text mit den Zeichensatz-Paaren von recode in HTML-Entities umwandeln
recode -l | more Die Zeichensätze und Umwandlungen auflisten, die dieser recode-Build kennt

Befehl Beschreibung
badblocks -v /dev/hda1 Jeden Block der Partition lesen und die fehlerhaften melden, mit Fortschritt
fsck /dev/hda1 Das Dateisystem nach seinem Typ prüfen; die Partition darf nicht eingehängt sein
fsck.ext2 /dev/hda1 Den ext2-Prüfer direkt starten, statt über fsck zu gehen
e2fsck /dev/hda1 Ein ext2-, ext3- oder ext4-Dateisystem prüfen
e2fsck -p /dev/hda1 Automatisch alles reparieren, was ohne Rückfrage geht (preen)
fsck.ext3 /dev/hda1 Die ext3-Variante desselben Prüfers
fsck.vfat /dev/hda1 Ein FAT-Dateisystem mit dem Prüfer aus dosfstools prüfen
fsck.msdos /dev/hda1 Ein anderer Name für den MS-DOS-FAT-Prüfer
dosfsck /dev/hda1 Ein FAT-Dateisystem reparieren; -a beantwortet jede Frage mit ja

Befehl Beschreibung
mkfs /dev/hda1 Ein Dateisystem auf einer Partition anlegen und dabei alles Vorhandene zerstören
mke2fs /dev/hda1 Ein ext2-Dateisystem anlegen
mke2fs -j /dev/hda1 Ein ext3-Dateisystem anlegen, indem ein Journal hinzukommt
mkfs -t vfat -F 32 /dev/hda1 Ein FAT32-Dateisystem mit dem Werkzeug aus dosfstools anlegen
fdformat -n /dev/fd0 Eine Diskette low-level formatieren, ohne den Prüfdurchlauf
mkswap /dev/hda3 Eine Partition als Swap-Bereich vorbereiten

Befehl Beschreibung
mkswap /dev/hda3 Eine Partition als Swap-Bereich vorbereiten
swapon /dev/hda3 Eine Swap-Partition in Betrieb nehmen
swapon /dev/hda2 /dev/hdb3 Zwei Swap-Bereiche in einem Aufruf aktivieren

Befehl Beschreibung
dump -0aj -f /tmp/home0.bak /home Vollständiger Dump (Level 0) von /home in eine komprimierte Archivdatei
dump -1aj -f /tmp/home0.bak /home Inkrementeller Dump: nur was sich seit dem Level-0-Lauf geändert hat
restore -if /tmp/home0.bak Einen Dump interaktiv durchgehen und die wiederherzustellenden Dateien auswählen
rsync -rogpav --delete /home /tmp Einen Baum nach /tmp spiegeln und dabei Links, Eigentümer, Gruppen, Rechte und Zeiten erhalten; --delete entfernt verschwundene Dateien
rsync -rogpav -e ssh --delete /home ip_address:/tmp Dieselbe Spiegelung über eine SSH-Verbindung
rsync -az -e ssh --delete ip_addr:/home/public /home/local Einen entfernten Baum holen, während der Übertragung komprimiert
rsync -az -e ssh --delete /home/local ip_addr:/home/public Einen lokalen Baum zum entfernten Host schicken
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' Eine ganze Platte über gzip und SSH kopieren, Megabyte für Megabyte
dd if=/dev/sda of=/tmp/file1 Eine Platte in eine Datei auf einem anderen Dateisystem kopieren
tar -Puf backup.tar /home/user An ein bestehendes Archiv anhängen und den führenden Schrägstrich des Pfads behalten
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' Einen Baum über eine Pipe auf einen entfernten Host kopieren; -p stellt die Rechte wieder her
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' Dieselbe Kopie, ausgehend von einem absoluten Pfad
tar cf - . | (cd /tmp/backup ; tar xf - ) Den aktuellen Baum in ein anderes Verzeichnis derselben Maschine kopieren
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents Eine Dateiliste kopieren und ihre Verzeichnisstruktur am Ziel wieder aufbauen
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 Die von find gefundenen Dateien archivieren und den Strom direkt komprimieren
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 Den Master Boot Record kopieren, 512 Byte pro Schritt
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 Diesen Record zurückschreiben; mit dem falschen Ziel wird eine Platte zerstört

Befehl Beschreibung
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force Eine wiederbeschreibbare Disc im Brenner löschen und auswerfen (cdrecord aus cdrtools)
dd if=/dev/cdrom of=cd.iso Eine optische Disc in eine ISO-Abbilddatei kopieren
dd if=/dev/cdrom | gzip > cd_iso.gz Dasselbe Abbild, beim Schreiben komprimiert
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd Aus einem Verzeichnis ein ISO-Abbild bauen, mit Joliet- und Rock-Ridge-Namen
cdrecord -v dev=/dev/cdrom cd.iso Ein ISO-Abbild auf die Disc brennen
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - Ein komprimiertes Abbild direkt aus der Pipe brennen
mount -o loop cd.iso /mnt/iso Das Abbild wieder als Verzeichnis lesen
cd-paranoia -B Die Audiospuren einer CD in WAV-Dateien auslesen
cd-paranoia -- "-3" Spur 3 auslesen; das -- verhindert, dass der führende Bindestrich als Option gilt
cdrecord --scanbus Die SCSI/ATA-Adressen auflisten, die der Brenner erreicht
dd if=/dev/hdc | md5sum Die Prüfsumme des Rohinhalts eines optischen Laufwerks berechnen

Befehl Beschreibung
dhclient eth0 Bei einem DHCP-Server eine Adresse und ein Lease für die Schnittstelle anfordern (nur root)
ethtool eth0 Linkgeschwindigkeit, Duplexmodus und Treiberdetails einer Netzwerkschnittstelle
host www.example.com Einen Namen mit dem BIND-Werkzeug host in Adressen auflösen
hostname Den Namen dieser Maschine ausgeben
ifconfig eth0 Adresse, Netzmaske und Zähler einer Schnittstelle (net-tools, zugunsten von ip veraltet)
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Eine statische Adresse setzen, die bis zum nächsten Neustart gilt (nur root)
ifconfig eth0 promisc Die Schnittstelle in den Promiscuous-Modus setzen, damit sie jedes gesehene Frame behält (nur root)
ifdown eth0 Eine Schnittstelle über die ifupdown-Skripte abschalten (nur root)
ifup eth0 Sie wieder einschalten und die Konfiguration aus /etc/network/interfaces anwenden (nur root)
ip link show Zustand aller Netzwerkgeräte; der moderne Ersatz für ifconfig
iwconfig eth1 Funk-Einstellungen einer Schnittstelle: ESSID, Modus und Frequenz (wireless-tools)
iwlist scan Die Access Points auflisten, die die WLAN-Karte sehen kann (nur root)
mii-tool eth0 Linkstatus einer kabelgebundenen Schnittstelle, wie der Treiber ihn meldet
netstat -tup Aktive TCP- und UDP-Verbindungen mit dem Prozess, dem der jeweilige Socket gehört
netstat -tulp Nur die Sockets, die auf Verbindungen warten, samt besitzendem Prozess
netstat -rn Routing-Tabelle des Kernels mit numerischen Adressen und ohne Namensauflösung
nslookup www.example.com Einen Namensserver nach einem Namen oder einer Adresse fragen; dig ist der moderne Ersatz
route -n Routing-Tabelle ohne Namensauflösung (net-tools)
route add default gw 192.168.1.1 Das Standard-Gateway bis zum nächsten Start setzen (nur root)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 Eine statische Route zu einem Netz hinzufügen (nur root)
route del default gw 192.168.1.1 Diese Standardroute wieder entfernen (nur root)
echo 1 > /proc/sys/net/ipv4/ip_forward IPv4-Weiterleitung einschalten, damit die Maschine zwischen Schnittstellen routen darf (nur root)
tcpdump tcp port 80 HTTP-Verkehr auf der Leitung mitschneiden (nur root)
whois www.example.com Registrierungsdaten einer Domain aus der WHOIS-Datenbank

Befehl Beschreibung
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Eine Windows-Freigabe einhängen; aktuelle Kernel nutzen -t cifs und eine Zugangsdatendatei statt smbfs
nbtscan 192.168.1.0/24 Ein Subnetz nach NetBIOS-Namen und den Maschinen dahinter durchsuchen
nmblookup -A 192.168.1.10 Einen Host nach seinen NetBIOS-Namen fragen; Sambas Antwort auf nbtstat
smbclient -L 192.168.1.10 Die Freigaben auflisten, die ein Windows-Host anbietet
smbget -Rr smb://192.168.1.10/share Eine Freigabe rekursiv mit Sambas wget-artigem Client herunterladen

Befehl Beschreibung
iptables -t filter -L Die Regeln der filter-Tabelle auflisten
iptables -t nat -L Die Regeln der nat-Tabelle auflisten, die die Adressübersetzung übernimmt
iptables -t filter -F Alle Regeln der filter-Tabelle löschen
iptables -t nat -F Alle Regeln der nat-Tabelle löschen
iptables -t filter -X Die benutzerdefinierten Ketten löschen, auf die nichts mehr verweist
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT Eine Regel anhängen, die eingehendes Telnet auf Port 23 erlaubt
iptables -t filter -A OUTPUT -p tcp --dport telnet -j DROP Ausgehenden Telnet-Verkehr verwerfen
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT POP3-Verkehr, der weitergeleitet wird, durchlassen
iptables -t filter -A INPUT -j LOG --log-prefix "INPUT: " Jedes eingehende Paket mit einem durchsuchbaren Präfix protokollieren
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Die Quelladresse ausgehender Pakete umschreiben — so arbeitet ein einfaches NAT-Gateway
iptables -t nat -A POSTROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 SSH per Umschreiben der Zieladresse an einen internen Host schicken

Befehl Beschreibung
free -m Speicher- und Swap-Nutzung in Mebibyte
kill -9 1234 SIGKILL: der Prozess endet sofort und kann nichts mehr aufräumen (1234 steht für die PID)
kill -1 1234 SIGHUP: die meisten Dienste lesen ihre Konfiguration neu ein (1234 steht für die PID)
last reboot Anmeldehistorie, auf Neustarts gefiltert — zeigt also, wann die Maschine neu gestartet ist
lsmod Die aktuell geladenen Kernelmodule auflisten
lsof -p 1234 Alle Dateien, Sockets und Geräte, die ein Prozess geöffnet hat
lsof /home/user1 Welche Prozesse Dateien unterhalb eines Pfads geöffnet haben
ps -eafw Alle Prozesse mit vollständiger Kommandozeile in einer breiten Auflistung
ps -e -o pid,args --forest Prozessbaum, der nur PID und Kommando zeigt
pstress Lasttest-Werkzeug für PostgreSQL; gehört nicht zu einer Standarddistribution
smartctl -A /dev/hda S.M.A.R.T.-Attribute einer Platte — neu zugewiesene Sektoren deuten auf einen Ausfall hin
smartctl -i /dev/hda Modell, Firmware, Seriennummer und Gesundheitszustand einer Platte
strace -c ls >/dev/null Die Systemaufrufe eines Kommandos zählen und eine Zusammenfassung ausgeben
strace -f -e open ls >/dev/null Die open()-Aufrufe eines Kommandos und seiner Kindprozesse verfolgen
tail /var/log/dmesg Die letzten Zeilen des Kernel-Ringpuffers
tail /var/log/messages Die letzten Zeilen des allgemeinen Systemprotokolls
top Live-Liste der Prozesse nach CPU-Last sortiert, die sich beim Zusehen aktualisiert
watch -n 1 'cat /proc/interrupts' Ein Kommando jede Sekunde ausführen und die Ausgabe auf dem Bildschirm halten

Befehl Beschreibung
alias hh='history' Einem Kommando in der aktuellen Shell einen kurzen Namen geben
apropos keyword Die Manpage-Namen und -Beschreibungen nach einem Stichwort durchsuchen
chsh Die eigene Login-Shell interaktiv ändern
chsh --list-shells Die in /etc/shells aufgeführten Shells ausgeben
gpg -c file1 Eine Datei mit einer Passphrase symmetrisch nach file1.gpg verschlüsseln
gpg file1.gpg Diese Datei wieder entschlüsseln und die Passphrase abfragen

So benutzt man die Befehlstabellen

Diese Seite sammelt 347 Befehlsbeispiele in 27 einklappbaren Gruppen, von Systeminformationen und Dateien bis zu Netzwerk, Paketen, Sicherungen und optischen Medien. Mit Ctrl / Cmd + F oder einem Klick auf eine Gruppenüberschrift klappt der benötigte Teil auf oder zu; die Befehlsspalte behält die Shell-Syntax, die man wirklich tippt, und die Notiz daneben sagt, was das Werkzeug oder die Option tut.

Die Notizen entstanden aus der Manpage des jeweiligen Werkzeugs und beschreiben deshalb das Werkzeug, statt einen Satz zu wiederholen: uname -r gibt die Kernel-Version aus, e2fsck -p repariert, was ohne Rückfrage geht, und iptables -t nat -F leert die Adressübersetzungstabelle. VoriTools führt keinen dieser Befehle aus — die Seite ist ein statisches Dokument, das Lesen kann das System also nicht verändern.

  1. Die passende Gruppe finden: System- und Hardwareinformationen, Dateien und Verzeichnisse, Dateisuche, Einhängen, Plattenplatz, Benutzer und Gruppen, Rechte, erweiterte Attribute, Archive, RPM- / YUM- / Debian- / APT-Pakete, Dateien ansehen, Textverarbeitung, Zeichenkodierungen, Dateisystemprüfung, Dateisysteme anlegen, Swap, Sichern und Wiederherstellen, optische Medien, Ethernet und WLAN, SMB, iptables, Überwachung und Diagnose sowie weitere Werkzeuge.
  2. Auf eine Gruppenüberschrift klicken, um sie ein- oder auszuklappen, oder mit Ctrl / Cmd + F direkt zu einem Befehl wie tar -xvf oder zu einem Wort in einer Notiz springen.
  3. Die Notiz vor dem Kopieren lesen. Sie nennt die Option, auf der das Beispiel beruht (-j für bzip2, -C zum Entpacken an einen anderen Ort, -perm für die setuid-Suche) und markiert die Zeilen, die root brauchen.
  4. Pfade, Gerätenamen und Distributionsannahmen des Beispiels prüfen. /dev/hda und /dev/hdc stammen aus der alten IDE-Benennung, ein modernes System erwartet /dev/sda oder /dev/sr0; yum wird ab RHEL 8 auf dnf umgeleitet, und ifconfig, route und netstat gehören zu net-tools, das ip, ss und ip route abgelöst haben.
  5. Den Befehl anschließend in der eigenen Shell ausführen, wo die Wirkung sichtbar wird. Hier wird nichts für Sie ausgeführt, und beim Lesen verlässt keine Anfrage den Browser.

Was in den Notizen steht — und was diese Seite nicht tut

Wie eine Zeile aufgebaut ist

Die Befehlsspalte enthält ein Beispiel, das funktioniert: mkdir -p /tmp/dir1/dir2 legt die Elternverzeichnisse an und scheitert nicht, wenn der Pfad schon existiert; tar -xvf archive.tar -C /tmp entpackt in ein anderes Verzeichnis, weil -C für alles Danachfolgende gilt; find / -xdev -name \*.rpm bleibt in einem Dateisystem. Wo die ursprüngliche Liste einen Tippfehler oder eine unmögliche Option enthielt — iptables -t nae, e2fsck -j, gpg -c filel, mkisofs /dev/cdrom, netstat -tup1, /proc/sys/net/ipv4/ip_foward — wurde das Beispiel korrigiert und die Notiz beschreibt die korrigierte Form.

Was geprüft wurde und wie

Jedes auf dieser Seite genannte Werkzeug wurde auf dem Linux-Server geprüft, der auch VoriTools betreibt (Alibaba Cloud Linux 3): command -v für das Programm, man -w für die Manpage. 106 der 141 Werkzeuge haben dort eine Manpage, und die Notizen folgen dem Wortlaut ihrer NAME-Zeile und Optionsliste. 32 sind gar nicht installiert (apt-get, dpkg, rar, smartctl, tree, whois, rsync, smbclient und weitere); ihre Notizen beschreiben also das ursprüngliche Werkzeug und keinen lokalen Lauf.

Die gezeigten Optionen sind Beispiele, nicht die vollständige Liste. Der Rest steht in --help oder in der Manpage.

Zeilen, die Daten berühren

Zeilen wie rm -rf dir1, dd if=/dev/fd0 of=/dev/hda, mkfs /dev/hda1, iptables -F und shutdown -h now sind dokumentiert und werden hier nie ausgeführt. Die Notiz markiert die, die root brauchen, und es gilt dieselbe Sorgfalt wie im Terminal: erst Gerät, Pfad und Zielhost prüfen. Ein falscher Gerätename in dd oder mkfs zerstört Daten ohne Rückweg.

Zuletzt verwendet: