Befehle für den Alltag
Die wichtigsten Linux-Befehle für den täglichen Betrieb, mit Erklärung und Beispiel.
Diese Befehle funktionieren auf Debian und Ubuntu. Sie sind nach Aufgaben sortiert. Die Befehle mit sudo sind für einen normalen Benutzer gedacht. Als root lässt man sudo weg.
Befehle nur ausführen, wenn klar ist, was sie tun. Löschbefehle wie rm -rf niemals kopieren, ohne den Pfad vorher zu prüfen. Ein vertippter Pfad kann ganze Verzeichnisse löschen.
Überblick über den Server
uptime | Laufzeit und Last. Die drei Zahlen sind die Last der letzten 1, 5 und 15 Minuten. Liegen sie dauerhaft über der Anzahl der Kerne (nproc), ist der Server ausgelastet. |
htop | Prozesse, CPU- und RAM-Auslastung live. Beenden mit q. Installation: sudo apt install htop |
free -h | Arbeitsspeicher und Swap. Entscheidend ist die Spalte available. Der Wert free ist oft klein, weil Linux freien Speicher als Cache nutzt. |
nproc | Anzahl der CPU-Kerne |
hostnamectl | Hostname, Betriebssystem und Kernelversion |
Speicher und Festplatten
df -h | Belegung der Dateisysteme. Ist eine Partition bei 100 %, laufen Dienste oft fehlerhaft. |
df -i | Belegte Inodes. Viele winzige Dateien können den Platz aufbrauchen, obwohl df -h noch Speicher zeigt. |
du -sh /pfad/* | Größe der Ordner in einem Verzeichnis. Sortiert und ohne Fehler bei Rechten: sudo du -sh /var/* | sort -h |
lsblk | Festplatten und Partitionen als Baum |
sudo journalctl --disk-usage | Speicher, den die Logs belegen. Mit sudo journalctl --vacuum-time=7d auf sieben Tage kürzen. |
Dienste verwalten
systemctl status dienst | Zustand, letzte Logzeilen und Startzeit eines Dienstes |
sudo systemctl restart dienst | Dienst komplett neu starten. Bestehende Verbindungen werden dabei getrennt. |
sudo systemctl reload dienst | Konfiguration neu laden, ohne den Dienst zu stoppen. Bei SSH sinnvoll, damit die offene Sitzung bleibt. |
sudo systemctl enable --now dienst | Dienst beim Systemstart aktivieren und sofort starten |
sudo systemctl disable --now dienst | Dienst stoppen und beim Systemstart deaktivieren |
systemctl --failed | Alle Dienste, die fehlerhaft beendet wurden. Nach einem Neustart der erste Blick wert. |
Logs lesen
journalctl -u dienst -n 100 | Letzte 100 Logzeilen eines Dienstes |
journalctl -u dienst -f | Logs eines Dienstes live verfolgen, beenden mit Strg+C |
journalctl --since "1 hour ago" | Alle Logs der letzten Stunde |
tail -f /pfad/zur/log | Eine Logdatei live verfolgen, z. B. /var/log/nginx/error.log |
sudo grep -i fehler /var/log/syslog | Zeilen mit einem Suchbegriff finden. Groß- und Kleinschreibung ist mit -i egal. |
Netzwerk
ip -br a | Netzwerkadressen kurz und übersichtlich. Die IPv4- und IPv6-Adressen der Schnittstellen. |
ip r | Routing-Tabelle. Zeigt, über welches Gateway der Server ins Netz geht. |
ping -c 4 example.com | Erreichbarkeit prüfen. Vier Pakete, dann Ende. |
curl -I https://example.com | Nur die HTTP-Kopfzeilen einer Webseite. Zeigt den Statuscode, z. B. 200 OK. |
dig +short example.com | DNS-Eintrag einer Domain prüfen. Benötigt das Paket dnsutils. |
Pakete installieren und aktualisieren
sudo apt update && sudo apt upgrade -y | Paketlisten holen und alle Pakete aktualisieren. Details im Abschnitt Updates. |
sudo apt install -y paket | Paket installieren. Mit -y ohne Rückfrage. |
apt list --upgradable | Zeigt, welche Pakete ein Update haben |
sudo apt autoremove | Nicht mehr benötigte Pakete entfernen |
Dateien und Ordner
ls -la /pfad | Alle Dateien inklusive versteckter, mit Rechten und Besitzer |
cp -r quelle ziel | Ordner kopieren, -r für rekursiv |
mv alt neu | Verschieben oder umbenennen |
grep -R "text" /pfad | Alle Dateien in einem Ordner nach einem Text durchsuchen |
find /pfad -name "*.log" -mtime +7 | Dateien mit dem Muster finden, die älter als sieben Tage sind. Nur suchen, nicht löschen. |
chmod 600 datei | Nur der Besitzer darf lesen und schreiben. Für private Schlüssel nötig. |
chown benutzer:gruppe datei | Besitzer einer Datei ändern |
Editor nano
Die Dateien auf dem Server bearbeitet man meist mit nano datei. Speichern mit Strg+O, beenden mit Strg+X. Mit Strg+W sucht man nach einem Text.
Prozesse
ps aux --sort=-%mem | head -n 10 | Die zehn speicherhungrigsten Prozesse |
sudo kill PID | Einen Prozess mit der Prozessnummer (PID) beenden. Die PID steht in htop oder ps. |
tmux | Eine Sitzung, die auch nach dem Verbindungsabbruch weiterläuft. Ideal für lange Vorgänge. Installation: sudo apt install tmux |
Wer ist angemeldet?
who | Angemeldete Benutzer |
last -n 20 | Letzte erfolgreiche Anmeldungen |
sudo lastb -n 20 | Letzte fehlgeschlagene Anmeldungen. Nützlich, um Angriffe auf SSH zu erkennen. Mit fail2ban (siehe fail2ban) sollten sie abgefangen werden. |
Sicherheit
sudo fail2ban-client status sshd | Gesperrte Adressen anzeigen |
sudo sshd -t | SSH-Konfiguration auf Fehler prüfen, bevor man den Dienst neu lädt |
Neustart
sudo reboot | Server sofort neu starten. Vorher prüfen, ob ein Neustart nötig ist (siehe Updates) und ob jemand gerade arbeitet. |
sudo shutdown -r +5 | Neustart in fünf Minuten. Mit sudo shutdown -c abbrechen. |
Hilfe zu einem Befehl
Mit man befehl öffnet sich die Handbuchseite. Mit befehl --help gibt es eine kurze Übersicht. Beenden der Handbuchseite mit q.