CLI & Snippets
🌐 Netzwerk schnell checken
Section titled “🌐 Netzwerk schnell checken”# IPs & Interfacesip a # Alle IPs anzeigenip r # Routing-Tabelleip link show # Netzwerk-Interfaces
# DNS-Checksnslookup google.com # DNS-Lookupdig +short mx kit-it-koblenz.de # MX-Recordsdig @1.1.1.1 google.com # Mit spezifischem DNS
# Connectivityping -c 4 google.com # 4 Pakete sendentraceroute google.com # Route zum Hostmtr google.com # Ping + Traceroute (live)
# Ports & Servicesnc -zv google.com 443 # Port-Check (netcat)telnet smtp.gmail.com 587 # SMTP-Testcurl -I https://google.com # HTTP-Header fetchencurl -o /dev/null -s -w "%{http_code}\n" https://google.com # Nur Status
# Wer lauscht auf welchem Port?sudo netstat -tulpn # Alle listening Portssudo lsof -i :8080 # Wer nutzt Port 8080?ss -tunap # Moderne Alternative zu netstat🐳 Docker
Section titled “🐳 Docker”# Container Managementdocker ps # Laufende Containerdocker ps -a # Alle Container (inkl. gestoppte)docker logs -f <container> # Logs live verfolgendocker exec -it <container> bash # In Container springendocker stats # Ressourcen-Nutzung (live)
# Imagesdocker images # Alle Imagesdocker pull nginx:latest # Image pullendocker rmi <image> # Image löschendocker build -t myapp:v1 . # Image bauen
# Cleanup (VORSICHT!)docker system prune # Ungenutzte Ressourcen löschendocker system prune -a --volumes # ALLES ungenutzte löschen (inkl. Images!)docker stop $(docker ps -aq) # Alle Container stoppendocker rm $(docker ps -aq) # Alle Container löschen
# Docker Composedocker-compose up -d # Starten (detached)docker-compose down # Stoppen & löschendocker-compose logs -f # Logs aller Servicesdocker-compose ps # Status aller Services⚙️ Systemctl & Services (systemd)
Section titled “⚙️ Systemctl & Services (systemd)”# Service-Statussystemctl status nginx # Status eines Servicessystemctl is-active nginx # Läuft der Service? (exit code)systemctl is-enabled nginx # Startet beim Boot?
# Service-Steuerungsudo systemctl start nginx # Service startensudo systemctl stop nginx # Service stoppensudo systemctl restart nginx # Service neustartensudo systemctl reload nginx # Config neu laden (ohne Neustart)
# Boot-Verhaltensudo systemctl enable nginx # Beim Boot startensudo systemctl disable nginx # Nicht beim Boot starten
# Alle Servicessystemctl list-units --type=service # Alle laufenden Servicessystemctl list-unit-files --type=service # Alle installierten Services
# Failed Services findensystemctl --failed # Fehlgeschlagene Services📋 Journalctl (System-Logs)
Section titled “📋 Journalctl (System-Logs)”# Basicssudo journalctl # Alle Logs (q = quit)sudo journalctl -f # Live-Logs (wie tail -f)sudo journalctl -n 50 # Letzte 50 Zeilensudo journalctl --since "1 hour ago" # Logs der letzten Stunde
# Service-spezifischsudo journalctl -u nginx # Logs für nginxsudo journalctl -u nginx -f # nginx-Logs live
# Boot-Logssudo journalctl -b # Logs vom aktuellen Bootsudo journalctl -b -1 # Logs vom vorletzten Bootsudo journalctl --list-boots # Alle Boots
# Filtern & Suchensudo journalctl -p err # Nur Errors (emerg, alert, crit, err)sudo journalctl -p warning # Warnings & Errorssudo journalctl | grep -i "error" # Keyword-Suche
# Disk Spacesudo journalctl --disk-usage # Wie viel Platz nutzen Logs?sudo journalctl --vacuum-size=100M # Auf 100MB reduzieren🖥️ Process Management
Section titled “🖥️ Process Management”# Prozesse anzeigenps aux # Alle Prozesseps aux | grep nginx # Bestimmten Prozess suchentop # Live-Monitor (q = quit)htop # Schöner als top (apt install htop)
# Prozess killenkill <PID> # Graceful stop (SIGTERM)kill -9 <PID> # Force-Kill (SIGKILL)pkill nginx # Prozess nach Name killenkillall nginx # Alle nginx-Prozesse
# Background Jobscommand & # Im Hintergrund startenjobs # Laufende Jobs anzeigenfg %1 # Job 1 in Vordergrund holenbg %1 # Job 1 im Hintergrund weiterlaufennohup command & # Läuft weiter nach Logout
# Screen/Tmux für persistente Sessions (siehe unten)🖼️ tmux – Terminal Multiplexer
Section titled “🖼️ tmux – Terminal Multiplexer”# Session Managementtmux # Neue Session startentmux new -s mysession # Session mit Nametmux ls # Alle Sessionstmux attach -t mysession # An Session anhängentmux kill-session -t mysession # Session beenden
# Keyboard-Shortcuts (Prefix: Ctrl+b)Ctrl+b c # Neues Fenster (Tab)Ctrl+b , # Fenster umbenennenCtrl+b n # Nächstes FensterCtrl+b p # Vorheriges FensterCtrl+b % # Vertical SplitCtrl+b " # Horizontal SplitCtrl+b →/←/↑/↓ # Zwischen Panes wechselnCtrl+b d # Detach (Session läuft weiter!)Ctrl+b [ # Scroll-Modus (q = quit)
# Config (~/.tmux.conf)set -g mouse on # Maus-Support aktivieren📝 vim – Basics (Überlebenswissen)
Section titled “📝 vim – Basics (Überlebenswissen)”# vim öffnenvim file.txt # Datei öffnen/erstellen
# Modii # Insert-Modus (Text schreiben)Esc # Normal-Modus (Befehle eingeben)v # Visual-Modus (Text markieren)
# Navigation (Normal-Modus)h j k l # ←↓↑→ (alternativ: Pfeiltasten)gg # Zum Anfang der DateiG # Zum Ende der Datei:42 # Zu Zeile 42 springen/search # Vorwärts suchen (n = nächstes)?search # Rückwärts suchen
# Bearbeitendd # Zeile löschenyy # Zeile kopieren (yank)p # Einfügen (paste)u # UndoCtrl+r # Redox # Zeichen löschen
# Speichern & Beenden:w # Speichern (write):q # Beenden (quit):wq # Speichern & Beenden:q! # Beenden ohne Speichern (force)ZZ # Speichern & Beenden (Shortcut)🔗 Git – Advanced
Section titled “🔗 Git – Advanced”# Aliases in ~/.gitconfig[alias] st = status -sb co = checkout cm = commit -m br = branch lg = log --oneline --graph --all --decorate unstage = reset HEAD -- amend = commit --amend --no-edit
# Nützliche Commandsgit status -sb # Kurze Status-Übersichtgit log --oneline --graph # Schöner Commit-Graphgit diff --cached # Staged-Changes anzeigengit show HEAD~2 # 2. letzten Commit anzeigen
# Branchesgit branch -a # Alle Branches (inkl. remote)git branch -d old-feature # Branch löschen (lokal)git push origin --delete old-feature # Branch löschen (remote)git checkout -b new-feature # Neuen Branch erstellen & wechseln
# Stashing (Änderungen zwischenspeichern)git stash # Änderungen weglegengit stash list # Alle Stashes anzeigengit stash pop # Stash zurückholen (& löschen)git stash apply # Stash zurückholen (behalten)
# Reset & Revert (VORSICHT!)git reset --soft HEAD~1 # Letzten Commit rückgängig (Änderungen bleiben staged)git reset --hard HEAD~1 # Letzten Commit löschen (ALLE Änderungen weg!)git revert <commit> # Commit rückgängig (neuer Commit)
# Remote Managementgit remote -v # Remote-URLs anzeigengit remote add upstream <url> # Upstream-Remote hinzufügengit fetch upstream # Von Upstream fetchengit pull --rebase # Pull mit Rebase (sauberer History)
# Cleanupgit gc --aggressive --prune=now # Repo aufräumen (Disk Space sparen)📂 File Operations
Section titled “📂 File Operations”# Disk Usagedf -h # Disk Space pro Partitiondu -sh * # Ordner-Größe im aktuellen Verzeichnisdu -ah ~ | sort -rh | head -20 # Top 20 größte Dateien im Homencdu # Interaktiver Disk-Usage-Explorer (apt install ncdu)
# Find Filesfind ~ -name "*.log" # Nach Dateinamen suchenfind /var/log -size +100M # Dateien größer als 100MBfind . -type f -mtime -7 # Geändert in letzten 7 Tagenlocate filename # Schnelle Dateisuche (updatedb vorher!)
# Permissionschmod 755 script.sh # Executable machenchmod 600 ~/.ssh/id_ed25519 # Nur Owner read/writechown user:group file # Owner ändernsudo chown -R $USER:$USER /opt/myapp # Rekursiv
# Archivestar -czf backup.tar.gz /data # Ordner komprimierentar -xzf backup.tar.gz # Entpackenzip -r backup.zip /data # ZIP erstellenunzip backup.zip # ZIP entpacken
# Sync & Backuprsync -avz /source/ /dest/ # Ordner synchronisieren (lokal)rsync -avz -e ssh /local/ user@host:/remote/ # Über SSH🔐 SSH & Keys
Section titled “🔐 SSH & Keys”# SSH-Config (~/.ssh/config)Host gideon HostName 10.0.10.2 User joshua IdentityFile ~/.ssh/id_ed25519 Port 22 ServerAliveInterval 60
# SSH-Key generierenssh-keygen -t ed25519 -C "your.email@kit-it-koblenz.de"
# SSH-Agenteval "$(ssh-agent -s)" # Agent startenssh-add ~/.ssh/id_ed25519 # Key hinzufügenssh-add -l # Geladene Keys anzeigen
# SSH-Tricksssh user@host 'command' # Remote-Command ausführenssh -L 8080:localhost:80 user@host # Port-Forwarding (Local)ssh -R 8080:localhost:80 user@host # Port-Forwarding (Remote)scp file.txt user@host:/path/ # Datei kopieren (SCP)Mehr Details: SSH & Keys Guide →
📊 Monitoring
Section titled “📊 Monitoring”# System-Übersichtuptime # System-Laufzeit & Loadfree -h # RAM-Nutzungdf -h # Disk Spacelscpu # CPU-Infolsblk # Block-Devices (Festplatten)
# Live-Monitoringhtop # Besseres topiotop # Disk I/O (sudo apt install iotop)nethogs # Netzwerk-Traffic pro Prozessglances # All-in-One Monitor (apt install glances)
# Hardware-Infolspci # PCI-Geräte (z.B. Grafikkarte)lsusb # USB-Gerätedmesg | tail # Kernel-Messages (Hardware-Logs)sensors # Temperaturen (lm-sensors installieren)🎯 Bash-Tricks
Section titled “🎯 Bash-Tricks”# History!! # Letzten Befehl wiederholensudo !! # Letzten Befehl mit sudo!grep # Letzten grep-BefehlCtrl+r # History durchsuchen (interaktiv)
# Pipes & Redirectscommand | tee output.txt # Stdout -> File & Terminalcommand > file.txt 2>&1 # Stdout + Stderr -> Filecommand 2>/dev/null # Stderr unterdrücken
# Loopsfor i in {1..10}; do echo $i; donewhile true; do date; sleep 1; done
# Aliases in ~/.bashrcalias ll='ls -lah'alias ..='cd ..'alias gs='git status -sb'alias dc='docker-compose'alias k='kubectl'
# Functions in ~/.bashrcmkcd() { mkdir -p "$1" && cd "$1"; } # Ordner erstellen & reinwechselnextract() { # Universeller Entpacker if [ -f $1 ]; then case $1 in *.tar.gz) tar xzf $1 ;; *.zip) unzip $1 ;; *.rar) unrar x $1 ;; esac fi}🔥 One-Liners (Magic Spells)
Section titled “🔥 One-Liners (Magic Spells)”# Top 10 größte Ordnerdu -ah / 2>/dev/null | sort -rh | head -10
# Alle TODO/FIXME-Kommentare findengrep -rn "TODO\|FIXME" --include="*.py" .
# Dateien älter als 30 Tage löschenfind /tmp -type f -mtime +30 -delete
# CPU-Kerne zählennproc
# Public IP herausfindencurl ifconfig.me
# Port-Scanner (Quick & Dirty)nc -zv 192.168.1.1 1-1000 2>&1 | grep succeeded
# JSON formatierenecho '{"foo":"bar"}' | python3 -m json.tool
# HTTP-Server (Quick)python3 -m http.server 8000 # Current Dir als Webserver
# Alle Prozesse eines Usersps aux | grep ^$USER
# Rechner in 1h herunterfahrensudo shutdown -h +60 "System geht in 1h runter"
# SSL-Zertifikat checkenecho | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -dates