# 💻 CLI Cheatsheet: Git, Linux & Neovim Eine zentrale Referenz für Befehle, Shortcuts und Workflows. --- ## 🐙 Git (Version Control) # **Merkregel:** Git speichert Snapshots, nicht nur Deltas. Working Dir (Lokal) -> Staging Area (Vorbereitung) -> Repository(Commit). ### 🔄 Basis-Workflow | Befehl | Beschreibung | | :--- | :--- | | `git status` | Zeigt den aktuellen Zustand (geänderte/neue Dateien). | | `git add .` | Fügt **alle** Änderungen zur Staging-Area hinzu. | | `git add -p` | Interaktives Staging (Hunks einzeln auswählen). | | `git commit -m "msg"` | Erstellt einen Snapshot (Commit) mit Nachricht. | | `git push` | Synchronisiert lokale Commits zum Remote-Server. | | `git pull` | Holt Änderungen vom Server und merged sie. | ### ↩️ Undo & Rettungsanker | Befehl | Beschreibung | | :--- | :--- | | `git checkout .` | **Gefährlich:** Verwirft alle lokalen Änderungen an Dateien. | | `git reset --soft HEAD~1` | Macht den letzten Commit rückgängig, behält Änderungen aber im Staging. | | `git commit --amend` | Fügt Änderungen zum *letzten* Commit hinzu (History Rewrite!). | | `git stash` | Verschiebt Änderungen temporär auf einen Stack (Arbeitsverzeichnis sauber). | | `git stash pop` | Holt Änderungen vom Stack zurück. | | `git log --oneline --graph` | Zeigt den Commit-Baum visuell an. | git reset --hard HEAD~1 Löscht den letzten Commit und alle darin enthaltenen Änderungen unwiderruflich. Reset auf den Zustand davor. --- ## 🐧 Linux / Bash (Shell) ### 📂 Datei- & Ordner-Operationen | Befehl | Beschreibung | | :--- | :--- | | `ls -lah` | Listet alles (all), ausführlich (long), menschenlesbar (human). | | `cp -r src dest` | Kopiert Ordner rekursiv (`-r`). | | `rsync -av src/ dest/` | Synchronisiert Ordner (besser als cp, behält Rechte/Zeitstempel). | | `mkdir -p a/b/c` | Erstellt ganze Ordner-Pfade (parents). | | `du -sh folder` | Zeigt die Speicherbelegung eines Ordners (`disk usage`). | | `chmod +x file.sh` | Macht eine Datei ausführbar (e**x**ecutable). | ### 🔍 Suchen & Filtern (Grep & Find) | Befehl | Beschreibung | | :--- | :--- | | `grep -r "Text" .` | Sucht "Text" rekursiv im aktuellen Verzeichnis. | | `grep -Fw "IP" file` | Sucht nach fixem String (`-F`) und ganzem Wort (`-w`). | | `find . -name "*.conf"` | Sucht Dateien anhand des Namens. | | `find . -size +100M` | Findet Dateien größer als 100 MB. | | `history | grep "befehl"` | Durchsucht die eigene Befehls-Historie. | ### ⚙️ System & Prozesse | Befehl | Beschreibung | | :--- | :--- | | `htop` / `btop` | Interaktiver Prozess-Manager (CPU/RAM). | | `ps aux | grep [app]` | Zeigt spezifische laufende Prozesse. | | `kill -9 [PID]` | Beendet Prozess hart (SIGKILL). | | `systemctl status [dienst]` | Prüft Status eines Service (z.B. docker, sshd). | | `journalctl -xe` | Zeigt System-Logs (bei Fehlern). | --- ## ⛵ Neovim (NVIM)
ESC = Normal (Bewegen), i = Insert (Schreiben), v = Visual (Markieren).