💻 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 (executable). |
🔍 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"` |
⚙️ System & Prozesse
| Befehl |
Beschreibung |
htop / btop |
Interaktiver Prozess-Manager (CPU/RAM). |
| `ps aux |
grep [app]` |
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)
⚠️
Modi: ESC = Normal (Bewegen), i = Insert (Schreiben), v = Visual (Markieren).
🏃 Navigation (Muscle Memory)
| Taste |
Bewegung |
h j k l |
Links, Runter, Hoch, Rechts. |
w / b |
Wort vorwärts / Wort rückwärts. |
0 / $ |
Zeilenanfang / Zeilenende. |
gg / G |
Dateianfang / Dateiende. |
Ctrl + u / d |
Seite hoch / Seite runter (Up/Down). |
/suchbegriff |
Suche (n = weiter, N = zurück). |
✏️ Editieren (Normal Mode)
| Taste |
Aktion |
u / Ctrl + r |
Undo / Redo. |
dd |
Zeile ausschneiden (löschen). |
yy |
Zeile kopieren (yank). |
p |
Einfügen (paste) nach Cursor. |
ciw |
"Change Inner Word" (Löscht Wort unter Cursor & wechselt zu Insert). |
A |
Springt ans Zeilenende & wechselt zu Insert (Append). |
o |
Neue Zeile unterhalb einfügen & Insert. |
💾 Ex-Kommandos (:)
| Befehl |
Aktion |
:w |
Speichern. |
:q! |
Schließen ohne Speichern (Force). |
:wq |
Speichern & Schließen. |
:%s/old/new/g |
Suchen & Ersetzen in ganzer Datei. |
:vsp file |
Vertikaler Split (Fensterteilung). |
🔐 SSH & Netzwerk
| Befehl |
Beschreibung |
ssh user@ip |
Verbindet zum Server. |
ssh -p 2222 user@ip |
Verbindet auf spezifischem Port. |
ssh-copy-id user@ip |
Kopiert den Public Key auf den Server (Passwortloses Login). |
ip a |
Zeigt eigene IP-Adressen und Interfaces. |
ss -tulpn |
Zeigt offene Ports und lauschende Dienste (Sockets). |