Linux - Befehle
Diese Seite gibt einen Überblick über einige der wichtigsten Linux-Befehle. Die Liste der Befehle ist jedoch keineswegs vollständig.
Systeminformationen
| man [CMD] | zeigt die Handbuchseite zu einem Befehl oder Programm an |
| dmesg | gibt die Meldungen des Kernel-Ringpuffers auf dem Bildschirm aus |
| mount | zeigt alle eingehängten Datenträger bzw. Partitionen an |
| df [-h] | zeigt den Speicherplatzverbrauch aller eingehängten Partitionen an (h:human readable) |
| du -sh [DIR] | zeigt den belegten Speicherplatz eines Verzeichnisses an (s:summary, h:human readable) |
| du -d1 -h [DIR] | zeigt den belegten Speicherplatz von allen Unterordnern an (d:depth, h:human readable) |
| free [-m] | zeigt die aktuelle Arbeitsspeicherauslastung an (m:megabytes) |
| top | zeigt eine dynamische Übersicht der auf dem System laufenden Prozesse an |
| uptime | zeigt die Laufzeit des Systems und die mittlere Systemauslastung an |
| date | zeigt das aktuelle Datum und Uhrzeit an |
| time | dient zur Messung der Laufzeit von Programmen und Shell-Befehlen |
| ps aux | liefert eine Momentaufnahme der aktuell laufenden Prozesse |
| kill [PID] | sendet das Signal SIGTERM an den Prozess mit der Prozess-ID [PID] |
| kill -9 [PID] | sendet das Signal SIGKILL an den Prozess mit der Prozess-ID [PID] |
| killall [PNAME] | sendet das Signal SIGTERM an alle Prozesse mit dem Namen [PNAME] |
| uname -a | zeigt einige Informationen zum aktuell laufenden Kernel an |
| arch | zeigt die Maschinen-Architektur an (z.B. x86_64) |
| sync | weist das System an, alle gepufferten Daten auf die Festplatte zu schreiben |
| shutdown -h now | fährt den Rechner herunter |
| shutdown -r now | startet den Rechner neu |
| watch -n [N] -d [CMD] | führt den Befehl [CMD] alle [N] Sekunden aus (d:show differences) |
Dateien und Verzeichnisse
| cat [FILE] | gibt den gesamten Inhalt der Datei [FILE] auf dem Bildschirm (bzw. stdout) aus |
| more [FILE] | zeigt den Inhalt der Datei [FILE] seitenweise auf dem Bildschirm an |
| less [FILE] | wie more, man kann aber auch rückwärts blättern |
| head -[N] [FILE] | zeigt die ersten [N] Zeilen der Datei [FILE] an |
| tail -[N] [FILE] | zeigt die letzten [N] Zeilen der Datei [FILE] an |
| cp [FILE1] [FILE2] | kopiert die Datei [FILE1] in die Datei [FILE2] |
| cp [FILE] [DIR] | kopiert die Datei [FILE] in das Verzeichnis [DIR] |
| mv [FILE1] [FILE2] | verschiebt die Datei [FILE1] nach [FILE2] |
| mv [FILE] [DIR] | verschiebt die Datei [FILE] in das Verzeichnis [DIR] |
| rm [FILE] | löscht die Datei [FILE] |
| touch [FILE] | erzeugt eine neue, leere Datei mit dem Namen [FILE] |
| pwd | zeigt das aktuelle Verzeichnis an |
| cd [DIR] | wechselt in das Verzeichnis [DIR] |
| cd .. | wechselt in das übergeordnete Verzeichnis |
| cd ~ | wechselt in das eigene Homeverzeichnis |
| cd - | wechselt in das zuletzt aufgerufene Verzeichnis |
| ls | zeigt den Inhalt eines Verzeichnisses bzw. Ordners an |
| ls -l | zeigt den Inhalt eines Verzeichnisses bzw. Ordners in Langform an |
| mkdir [DIR] | erstellt das neue Verzeichnis [DIR] |
| rmdir [DIR] | löscht das leere Verzeichnis [DIR] |
| rm -r [DIR] | löscht das Verzeichnis [DIR] inklusive Inhalt (r:recursive) |
| find / -name "foo" | sucht nach Dateien mit dem Namen "foo" |
| find / -iname "foo" | sucht nach Dateien mit dem Namen "foo" (case insensitive) |
| find / ! -name "foo" | sucht nach Dateien mit dem Namen != "foo" |
| find . -cmin -120 | sucht nach Dateien, die in den letzten 2 Stunden erstellt wurden |
| find . -mmin -120 | sucht nach Dateien, die in den letzten 2 Stunden geändert wurden |
| find . -mtime +100 -exec rm -v {} \; | löscht im aktuellen Verzeichnis alle Dateien, die älter als 100 Tage sind |
| find . -maxdepth 1 -type d -exec du -sh {} \; | ermittelt die Speicherbelegung aller Ordner im aktuellen Verzeichnis |
| find . -maxdepth 1 -type d -print0 | xargs -0 du -sh | ermittelt die Speicherbelegung aller Ordner im aktuellen Verzeichnis (print0: Dateinamen werden mit Null-Byte anstatt mit Leerzeichen getrennt) |
| ln -s [FILE] [SYMLINK] | erzeugt eine Verknüpfung (symbolischen Link) zu einer Datei oder einem Verzeichnis |
| ln -sfni [FILE] [SYMLINK] | aktualisiert einen bestehenden symbolischen Link zu einer Datei oder einem Verzeichnis |
| scp [FILE] [USER]@[HOST]:[DIR]/[FILE] | kopiert die Datei [FILE] über das Netzwerk nach [HOST]:[DIR]/[FILE] |
| cp -avr [SOURCE] [DEST] | kopiert [SOURCE] nach [DEST] (a:archive, v:verbose, r:recursive) |
| rsync -rvn [SOURCE] [DEST] | kopiert [SOURCE] nach [DEST] (r:recursive, v:verbose, n:dry-run) |
Archive (tar, gz, bz2)
| tar cfv archiv.tar [FILE1] [FILE2] [DIR] | erzeugt ein unkomprimiertes .tar Archiv |
| tar xfv archiv.tar | entpackt ein unkomprimiertes .tar Archiv |
| tar tfv archiv.tar | zeigt den Inhalt eines Archivs an |
| gzip [FILE] | komprimiert eine Datei mit gzip |
| gunzip [FILE].gz | entpackt eine Datei mit gzip |
| tar cfvz archiv.tar.gz [FILE1] [FILE2] [DIR] | erzeugt ein komprimiertes .tar.gz Archiv |
| tar xfvz archiv.tar.gz | entpackt ein komprimiertes .tar.gz Archiv |
| bzip2 [FILE] | komprimiert eine Datei mit bzip2 |
| bunzip2 [FILE].bz2 | entpackt eine Datei mit bzip2 |
| tar cfvj archiv.tar.bz2 [FILE1] [FILE2] [DIR] | erzeugt ein komprimiertes .tar.bz2 Archiv |
| tar xfvj archiv.tar.bz2 | entpackt ein komprimiertes .tar.bz2 Archiv |
Dateien sicher löschen
| shred -uvz [FILE] | löscht die Datei [FILE] sicher (u:remove file after overwrite, v:verbose, z:final pass with zeros) |
| wipe -rqi [DIR] | löscht das Verzeichnis [DIR] sicher (r:recursive, q:quick wipe/4 passes, i:informational/verbose) |
JSON-Dateien lesbar formatieren
| json_pp -json_opt canonical,pretty < [FILE] | formatiert die Datei [FILE] in ein von Menschen lesbares Format |
JSON-Dateien vergleichen
| diff -u <(json_pp -json_opt canonical,pretty < [FILE_A]) <(json_pp -json_opt canonical,pretty < [FILE_B]) |
| vergleicht die JSON-Datei [FILE_A] mit der JSON-Datei [FILE_B] und gibt die gefundenen Unterschiede aus |
Dateien mit Base64 kodieren/dekodieren
| uuencode [FILE] /dev/stdout > file.txt | kodiert die Datei [FILE] mit Base64 |
| uudecode -o [FILE] file.txt | dekodiert die angegebene Datei nach [FILE] |
Dateien mit GPG verschlüsseln
| gpg -c --cipher-algo AES256 -o file.gpg [FILE] | verschlüsselt die Datei [FILE] mit GPG (AES256) |
| gpg --decrypt file.gpg > [FILE] | entschlüsselt die angegebene Datei nach [FILE] |
Erzeugen und Anwenden von Patches
| diff -rupN [DIR1] [DIR2] > [PATCHFILE] | erzeugt eine Patchdatei aus den Unterschieden von [DIR1] und [DIR2] (r:recursive, u:unified context, p:show C functions, N:treat new files as empty) |
| patch -p1 -d [DIR] < [PATCHFILE] | wendet eine Patchdatei auf [DIR] an (p:strip leading slashes, d:directory) |
| patch -p1 [FILE] < [PATCHFILE] | wendet eine Patchdatei auf [FILE] an (p:strip leading slashes) |
Paketverwaltung mit apt / apt-get
| apt update | apt-get update | liest alle eingetragenen Paketquellen neu ein und aktualisiert die Paketlisten |
| apt upgrade | apt-get upgrade -u | bringt alle auf dem System installierten Pakete auf die aktuellste Version |
| apt full-update | apt-get dist-upgrade -u | wie upgrade, nur können bei dem Vorgang auch Pakete installiert bzw. entfernt werden |
| apt install [PAKETNAME] | apt-get install [PAKETNAME] | installiert das angegebene Paket |
| apt remove [PAKETNAME] | apt-get remove [PAKETNAME] | entfernt das angegebene Paket |
| apt purge [PAKETNAME] | apt-get purge [PAKETNAME] | wie remove, zusätzlich werden alle globalen Konfigurationen entfernt |
| apt autoremove | apt-get autoremove | entfernt ungenutzte Abhängigkeiten |
| apt clean | apt-get clean | entfernt zur Installation heruntergeladene Pakete aus dem Paketcache |
| apt autoclean | apt-get autoclean | wie clean, jedoch nur Pakete, die nicht mehr in den Quellen verfügbar sind |
| apt search [SUCHBEGRIFF] | apt-cache search [SUCHBEGRIFF] | sucht nach Paketen (--names-only schränkt die Suche auf Paketnamen ein) |
| apt show [PAKETNAME] | apt-cache show [PAKETNAME] | zeigt detaillierte Informationen (z.B. Abhängigkeiten) zu einem Paket an |
| apt policy [PAKETNAME] | apt-cache policy [PAKETNAME] | zeigt die installierte sowie die verfügbaren Versionen eines Pakets an |
Benutzerverwaltung
| id | zeigt die Benutzer- und Gruppenkennung (ID) an |
| whoami | zeigt den Benutzernamen an, unter dem gerade gearbeitet wird |
| who | zeigt alle angemeldeten Benutzer an |
| passwd | ändert das Passwort des aktuellen Benutzers |
| passwd [USERNAME] | ändert das Passwort des Benutzers [USERNAME] (nur als root möglich) |
| useradd -m [USERNAME] | legt den neuen Benutzer [USERNAME] an und erzeugt ein Homeverzeichnis |
| userdel -r [USERNAME] | löscht den Benutzer [USERNAME] und sein Homeverzeichnis |
| groupadd [GROUP] | erzeugt eine neue Gruppe [GROUP] |
| groupdel [GROUP] | löscht die Gruppe [GROUP] |
Rechteverwaltung
| chown [OWNER] [FILE] | ändert den Eigentümer der Datei [FILE] in [OWNER] |
| chgrp [GROUP] [FILE] | ändert die Gruppe der Datei [FILE] in [GROUP] |
| chmod [MODE] [FILE] | ändert die Zugriffsrechte der Datei [FILE] in [MODE] |
Die Zugriffsrechte werden üblicherweise in Form einer dreistelligen Oktalzahl angegeben, wobei jede Ziffer für die Rechte einer Benutzerkategorie steht.
- 1. Ziffer = Besitzer der Datei
- 2. Ziffer = Gruppe der Datei
- 3. Ziffer = Andere Benutzer
Jeder der drei Benutzerkategorien kann eines oder mehrere der folgenden Grundrechte zugewiesen werden.
- Lesen (read, R-Bit, Wertigkeit 4)
- Schreiben (write, W-Bit, Wertigkeit 2)
- Ausführen (execute, X-Bit, Wertigkeit 1)
Beispiele:
| 644 | rw-r--r-- | Der Besitzer darf lesen und schreiben, alle anderen nur lesen. |
| 744 | rwxr--r-- | Der Besitzer darf lesen, schreiben und ausführen, alle anderen nur lesen. |
| 660 | rw-rw---- | Besitzer und Gruppe dürfen lesen und schreiben, der Rest nichts. |
weitere Informationen: https://de.wikipedia.org/wiki/Unix-Dateirechte
Prozesssteuerung
| jobs [OPTIONEN] | zeigt alle laufenden Prozesse der aktuellen Shell an |
| nohup [KOMMANDO] | startet das angegebene Kommando unabhängig von der aktiven Shell |
| bg %[JOBNUMMER] | verschiebt einen angehaltenen Job in den Hintergrund und startet ihn wieder |
| fg %[JOBNUMMER] | holt einen im Hintergrund laufenden Prozess wieder in den Vordergrund |
weitere Informationen: https://wiki.ubuntuusers.de/Shell/Prozesssteuerung/