Zum Inhalt springen

bat Cheatsheet

bat Cheatsheet

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

Installation

PlattformBefehl
Ubuntu/Debiansudo apt install bat (binary may be named batcat)
Arch Linuxsudo pacman -S bat
Fedora/RHELsudo 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/Cargocargo install --locked bat
Dockerdocker pull danlynn/bat

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

Grundlegende Befehle

BefehlBeschreibung
bat file.txtDatei mit Syntaxhervorhebung und Zeilennummern anzeigen
bat file1.txt file2.pyMehrere Dateien mit Überschriften anzeigen
bat -n file.txtZeilennummern explizit anzeigen (standardmäßig aktiviert)
bat -p file.txtPlain mode (no decorations, like cat)
bat -pp file.txtExtra Plain-Modus (vollständig einfache Ausgabe)
bat -A file.txtAlle nicht druckbaren Zeichen anzeigen (Tabs, Leerzeichen, Zeilenenden)
bat -r 10:20 file.txtBestimmten Zeilenbereich anzeigen (Zeilen 10-20)
bat -r :50 file.txtZeige erste 50 Zeilen
bat -r 100: file.txtDisplay von Zeile 100 bis zum Ende
`echo “text” \bat`
bat --list-languagesZeige alle unterstützten Programmiersprachen
bat --list-themesAlle verfügbaren Farbthemen anzeigen
bat -l python file.txtErzwinge spezifische Sprach-/Syntaxhervorhebung
bat --plain file.txtSyntax-Highlighting deaktivieren
bat --paging=never file.txtAutomatisches Blättern deaktivieren

Erweiterte Nutzung

BefehlBeschreibung
bat --theme="Dracula" file.pyVerwende ein spezifisches Farbthema
bat --diff file.txtGit-Änderungen mit Syntaxhervorhebung anzeigen
bat --no-git file.txtGit-Integrationsmarker deaktivieren
bat --tabs=4 file.pyBenutzerdefinierte Tabulatorbreite festlegen
bat --wrap=never file.txtZeilenumbruch deaktivieren
bat --terminal-width=80 file.txtErzwinge bestimmte Terminal-Breite
bat --style=numbers,changes file.txtZeige nur Zeilennummern und Git-Änderungen
bat --style=header,grid file.txtNur Header und Grid-Trennlinien anzeigen
bat --style=plain file.txtEntferne alle Dekorationen
bat --file-name="Custom" file.txtBenutzerdefinierten Namen im Header anzeigen
bat --decorations=never file.txtDeaktiviere alle Dekorationen (selbst wenn angemessen)
bat --color=always file.txtFarbausgabe erzwingen (auch beim Piping)
bat --paging=always file.txtPager auch für kleine Dateien erzwingen
bat --pager="less -RF" file.txtVerwenden Sie einen benutzerdefinierten Pager mit Optionen
bat --map-syntax='*.conf:INI' file.confDateierweiterung auf bestimmte Syntax zuordnen
bat --generate-config-fileStandard-Konfigurationsdatei generieren
bat cache --buildSyntax/Theme-Cache neu aufbauen
bat cache --clearCache für Syntax/Theme löschen

Konfiguration

Speicherorte der Konfigurationsdateien

PlattformPfad
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):

KomponenteBeschreibung
fullAlle Komponenten (Standard)
autoAutomatisch basierend auf Ausgabe
plainKeine Dekorationen
numbersZeilennummern
changesGit-Modifikationsmarker
headerDateinamenkopfzeile
gridGrid-Trennlinien
ruleHorizontale Linien
snipSnip-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

ProblemLösung
Binary named batcat instead of batCreate alias: alias bat='batcat' or symlink: ln -s /usr/bin/batcat ~/.local/bin/bat
No syntax highlightingCheck language support with bat --list-languages and use -l to force language
Pager interferes with pipesUse bat --paging=never or set export BAT_PAGER=""
Theme not displaying correctlyVerify terminal supports 256 colors; try different theme with bat --theme="GitHub"
Custom theme not appearingEnsure theme file is in $(bat --config-dir)/themes/ and run bat cache --build
Line numbers misalignedCheck tab width setting; adjust with --tabs=4 or in config file
Git integration not workingEnsure file is in Git repository; disable with --no-git if not needed
Config file changes ignoredVerify file location with bat --config-file; check for syntax errors in config
Performance issues with large filesUse --paging=never and pipe to less, or use line ranges with -r
Unicode characters display incorrectlyEnsure terminal uses UTF-8 encoding; check locale settings

Schnellreferenz: Häufige Flags

KurzLangZweck
-p--plainEinfacher Ausgabemodus
-n--numberZeilennummern anzeigen
-A--show-allNicht druckbare Zeichen anzeigen
-l--languageSyntax-Sprache festlegen
-r--line-rangeZeilenbereich anzeigen
-H--highlight-lineBestimmte Zeilen hervorheben
-d--diffGit-Diff anzeigen
--themeFarbdesign festlegen
--styleLege Stilkomponenten fest
--pagingPager-Verhalten steuern
--tabsTabulatorbreite festlegen