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 |
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.
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.
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 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.