7.2 KiB
💻 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). |
--progress für Fortschrittsanzeige. |
|
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 (pipe) 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)
⚠️
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). |
ledger
1. Core Syntax: The Journal Entry
Every transaction must satisfy the Accounting Equation (AE) where the sum of all postings equals zero (∑=0).
Code snippet
YYYY-MM-DD [Status] Description
Account:Name:Subaccount [Amount] [Unit]
Account:Other:Subaccount [Amount] [Unit]
-
Indentation: At least two spaces for postings.
-
Status Marks:
*for Cleared (C),!for Pending (P). -
Automatic Balancing: You can leave one amount blank; the system calculates the remainder to maintain equilibrium.
2. Account Types (Standard Hierarchy)
| Category | Account Prefix | Normal Balance | Physics Analogy |
|---|---|---|---|
| Assets | assets: |
Debit (+) | Potential Energy (Stored) |
| Liabilities | liabilities: |
Credit (-) | External Tension (Debt) |
| Equity | equity: |
Credit (-) | System Origin / Initial State |
| Income | income: |
Credit (-) | Energy Inflow (Flux) |
| Expenses | expenses: |
Debit (+) | Energy Dissipation (Entropy) |
Export to Sheets
3. Advanced Notation
Comments and Metadata
-
;or#or%starts a comment. -
; tag: valuedefines metadata for custom filtering.
Balance Assertions (BA)
Force the system to validate the state at a specific point in time.
Code snippet
2026-02-11 * Grocery Store
expenses:food $50.00
assets:checking $-50.00 == $1000.00 ; Fails if balance != $1000
Commodities and Prices
Define exchange rates between different units (e.g., Currency or Stocks).
Code snippet
P 2026-02-11 15:00:00 AAPL $230.00 ; Price of 1 AAPL in USD
4. Command Line Interface (CLI) Quick Ref
| Goal | Command | Key Flags |
|---|---|---|
| Current Totals | hledger bal |
-p (period), -R (real) |
| Transaction Log | hledger reg |
-W (weekly), -M (monthly) |
| Verify Integrity | hledger check |
Useful after git pull |
| Interactive UI | hledger-ui |
--watch (auto-reload on save) |
| Export Data | hledger print |
-o file.csv |
Export to Sheets
5. hledger-Specific Features
Unlike the original Ledger (LGR), hledger (HLGR) includes specialized directives:
-
account: Define account properties. -
alias: Rename accounts on the fly. -
include: Modularize your journal (e.g.,include 2025.journal).
6. Workflow: Git + hledger
Since your journal is plain text, use this workflow to maintain a Distributed Ledger (DL):
-
Edit: Update your
.journalfile. -
Verify: Run
hledger check. -
Commit:
git commit -am "Update transactions" -
Sync:
git pull --rebase && git push