Linux - Befehle

Diese Seite gibt einen Überblick über einige der wichtigsten Linux-Befehle. Die Liste der Befehle ist jedoch keineswegs vollständig.


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)


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)


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


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_pp -json_opt canonical,pretty < [FILE] formatiert die Datei [FILE] in ein von Menschen lesbares Format


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


uuencode [FILE] /dev/stdout > file.txt kodiert die Datei [FILE] mit Base64
uudecode -o [FILE] file.txt dekodiert die angegebene Datei nach [FILE]


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]


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)


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


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]


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


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/

  • Last modified: 2020/12/31 21:00