Zum Inhalt

bat Cheatsheet

catEin moderner Ersatz für cat mit Syntaxhervorhebung, Git-Integration und automatischer Seitenumschaltung.

Installation

Plattform Befehl
Ubuntu/Debian sudo apt install bat (binary may be named batcat)
Arch Linux sudo pacman -S bat
Fedora/RHEL sudo dnf install bat
macOS (Homebrew) brew install bat
macOS (MacPorts) sudo port install bat
Windows (Scoop) scoop install bat
Windows (Chocolatey) choco install bat
Windows (Winget) winget install sharkdp.bat
Rust/Cargo cargo install --locked bat
Docker docker pull danlynn/bat

Hinweis: Auf Debian/Ubuntu erstellen Sie bei Bedarf einen Alias:alias bat='batcat'

Grundlegende Befehle

Befehl Beschreibung
bat file.txt Datei mit Syntaxhervorhebung und Zeilennummern anzeigen
bat file1.txt file2.py Mehrere Dateien mit Überschriften anzeigen
bat -n file.txt Zeilennummern explizit anzeigen (standardmäßig aktiviert)
bat -p file.txt Plain mode (no decorations, like cat)
bat -pp file.txt Extra Plain-Modus (vollständig einfache Ausgabe)
bat -A file.txt Alle nicht druckbaren Zeichen anzeigen (Tabs, Leerzeichen, Zeilenenden)
bat -r 10:20 file.txt Bestimmten Zeilenbereich anzeigen (Zeilen 10-20)
bat -r :50 file.txt Zeige erste 50 Zeilen
bat -r 100: file.txt Display von Zeile 100 bis zum Ende
echo "text" \ | bat Piped Input mit Syntaxhervorhebung anzeigen
bat --list-languages Zeige alle unterstützten Programmiersprachen
bat --list-themes Alle verfügbaren Farbthemen anzeigen
bat -l python file.txt Erzwinge spezifische Sprach-/Syntaxhervorhebung
bat --plain file.txt Syntax-Highlighting deaktivieren
bat --paging=never file.txt Automatisches Blättern deaktivieren
## Erweiterte Nutzung
Befehl Beschreibung
bat --theme="Dracula" file.py Verwende ein spezifisches Farbthema
bat --diff file.txt Git-Änderungen mit Syntaxhervorhebung anzeigen
bat --no-git file.txt Git-Integrationsmarker deaktivieren
bat --tabs=4 file.py Benutzerdefinierte Tabulatorbreite festlegen
bat --wrap=never file.txt Zeilenumbruch deaktivieren
bat --terminal-width=80 file.txt Erzwinge bestimmte Terminal-Breite
bat --style=numbers,changes file.txt Zeige nur Zeilennummern und Git-Änderungen
bat --style=header,grid file.txt Nur Header und Grid-Trennlinien anzeigen
bat --style=plain file.txt Entferne alle Dekorationen
bat --file-name="Custom" file.txt Benutzerdefinierten Namen im Header anzeigen
bat --decorations=never file.txt Deaktiviere alle Dekorationen (selbst wenn angemessen)
bat --color=always file.txt Farbausgabe erzwingen (auch beim Piping)
bat --paging=always file.txt Pager auch für kleine Dateien erzwingen
bat --pager="less -RF" file.txt Verwenden Sie einen benutzerdefinierten Pager mit Optionen
bat --map-syntax='*.conf:INI' file.conf Dateierweiterung auf bestimmte Syntax zuordnen
bat --generate-config-file Standard-Konfigurationsdatei generieren
bat cache --build Syntax/Theme-Cache neu aufbauen
bat cache --clear Cache für Syntax/Theme löschen
## Konfiguration

Speicherorte der Konfigurationsdateien

Plattform Pfad
Linux/macOS ~/.config/bat/config
Windows %APPDATA%\bat\config
### Beispiel-Konfigurationsdatei

Erstellen Sie~/.config/bat/configmit Ihren Einstellungen:

# Set default theme
--theme="Dracula"

# Always show line numbers and changes
--style="numbers,changes,header,grid"

# Use 4-space tabs
--tabs=4

# Automatic paging
--paging=auto

# Show non-printable characters
--show-all

# Enable italic text (if terminal supports)
--italic-text=always

# Custom syntax mappings
--map-syntax="*.conf:INI"
--map-syntax=".ignore:Git Ignore"
--map-syntax="*.jenkinsfile:Groovy"
--map-syntax="*.log:Log"
--map-syntax=".env:Bash"

Umgebungsvariablen

# Set default theme
export BAT_THEME="Dracula"

# Set default style components
export BAT_STYLE="numbers,changes,header"

# Set default pager
export BAT_PAGER="less -RF"

# Disable paging entirely
export BAT_PAGER=""

# Custom config directory
export BAT_CONFIG_PATH="/custom/path/to/config"

Benutzerdefinierte Themes

# Create themes directory
mkdir -p "$(bat --config-dir)/themes"

# Download theme file (.tmTheme format)
cd "$(bat --config-dir)/themes"
wget https://example.com/theme.tmTheme

# Rebuild cache to use new theme
bat cache --build

Stilkomponenten

Verfügbare Stilkomponenten (durch Komma getrennt):

Komponente Beschreibung
full Alle Komponenten (Standard)
auto Automatisch basierend auf Ausgabe
plain Keine Dekorationen
numbers Zeilennummern
changes Git-Modifikationsmarker
header Dateinamenkopfzeile
grid Grid-Trennlinien
rule Horizontale Linien
snip Snip-Markierungen für Zeilenbereiche
## Häufige Anwendungsfälle

Anwendungsfall: Code-Review mit Git-Integration

# View file with Git changes highlighted
bat --diff src/main.py

# Compare with previous commit
git show HEAD~1:config.yaml | bat -l yaml --file-name="Previous Version"

# Review multiple changed files
git diff --name-only | xargs bat --diff

Anwendungsfall: Log-Datei-Analyse

# View application logs with syntax highlighting
bat --language=log /var/log/application.log

# View specific error section
bat -r 1000:2000 /var/log/syslog | grep ERROR

# Monitor live logs (disable paging)
tail -f /var/log/app.log | bat --paging=never -l log

# Search logs with context
bat /var/log/nginx/error.log | grep -C 5 "ERROR"

Anwendungsfall: Konfigurationsdatei-Management

# Review system configurations
bat /etc/nginx/nginx.conf /etc/ssh/sshd_config

# Compare configurations side by side
diff <(bat -p config.prod.yml) <(bat -p config.dev.yml)

# Check for hidden characters in config
bat -A .env

# View Kubernetes resources
kubectl get deployment myapp -o yaml | bat -l yaml

Anwendungsfall: Docker und Container-Workflows

# View Dockerfile with syntax highlighting
bat Dockerfile

# Inspect docker-compose configurations
bat docker-compose.yml docker-compose.override.yml

# View container logs with syntax
docker logs container_name 2>&1 | bat --paging=never -l log

# Display formatted JSON from API
curl -s https://api.github.com/repos/sharkdp/bat | bat -l json

Anwendungsfall: Skript-Entwicklung und Debugging

# View shell script with line numbers
bat -n deploy.sh

# Check specific function (lines 45-78)
bat -r 45:78 automation.sh

# Detect problematic characters
bat -A problematic-script.sh

# View multiple related scripts
bat scripts/*.sh

Best Practices

  • Verwenden Sie -pfür Skripte: Beim Piping oder Scripting verwenden Sie bat -poder

Would you like me to fill in the remaining placeholders with translations or leave them as-is?bat --plainum Dekorationen zu vermeiden, die die Verarbeitung stören könnten~/.config/bat/configStandardeinstellungen konfigurieren: Richten Siealias cat='bat --paging=never --style=plain'mit Ihrem bevorzugten Theme und Stil ein, um wiederholte Flags zu vermeiden - Alias für cat-Ersatz: Hinzufügen--diffzu Ihrer Shell-Konfiguration für nahtlosen Ersatz - Git-Integration nutzen: Verwenden--map-syntaxbeim Überprüfen von Code-Änderungen, um Modifikationen inline mit Syntaxhervorhebung zu sehen - Benutzerdefinierte Erweiterungen zuordnen: Verwenden.jenkinsfilein Konfigurationsdatei für projektspezifische Dateitypen (z.B..conf) - Paging für Pipes deaktivieren: Immer--paging=neververwenden, wenn Ausgabe an andere Befehle weitergeleitet wird, um Probleme mit interaktivem Pager zu verhindern - Sprachhinweise verwenden: Geben Sie bei Dateien ohne Erweiterungen explizit die Sprache mit-lfür korrekte Syntaxhervorhebung an - Theme-Konsistenz: Wählen Sie ein Theme, das Ihr Terminal-Farbschema ergänzt, für bessere Lesbarkeit - Cache-Verwaltung: Führen Sie nach dem Hinzufügen benutzerdefinierter Themes oder Syntaxenbat cache --buildaus, um sie verfügbar zu machen

Fehlerbehebung

Problem Lösung
Binary named batcat instead of bat Create alias: alias bat='batcat' or symlink: ln -s /usr/bin/batcat ~/.local/bin/bat
No syntax highlighting Check language support with bat --list-languages and use -l to force language
Pager interferes with pipes Use bat --paging=never or set export BAT_PAGER=""
Theme not displaying correctly Verify terminal supports 256 colors; try different theme with bat --theme="GitHub"
Custom theme not appearing Ensure theme file is in $(bat --config-dir)/themes/ and run bat cache --build
Line numbers misaligned Check tab width setting; adjust with --tabs=4 or in config file
Git integration not working Ensure file is in Git repository; disable with --no-git if not needed
Config file changes ignored Verify file location with bat --config-file; check for syntax errors in config
Performance issues with large files Use --paging=never and pipe to less, or use line ranges with -r
Unicode characters display incorrectly Ensure terminal uses UTF-8 encoding; check locale settings
## Schnellreferenz: Häufige Flags
Kurz Lang Zweck
-p --plain Einfacher Ausgabemodus
-n --number Zeilennummern anzeigen
-A --show-all Nicht druckbare Zeichen anzeigen
-l --language Syntax-Sprache festlegen
-r --line-range Zeilenbereich anzeigen
-H --highlight-line Bestimmte Zeilen hervorheben
-d --diff Git-Diff anzeigen
--theme Farbdesign festlegen
--style Lege Stilkomponenten fest
--paging Pager-Verhalten steuern
--tabs Tabulatorbreite festlegen