Files
silverbullet/IT/Cheatsheet.md
2026-02-15 12:57:51 +01:00

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: value defines 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):

  1. Edit: Update your .journal file.

  2. Verify: Run hledger check.

  3. Commit: git commit -am "Update transactions"

  4. Sync: git pull --rebase && git push