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/