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` |
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 Syntaxen
bat 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 |