cli-tools
📋 Copy All bat Commands
📄 Generate bat PDF Guide
bat Cheatsheet
catUn sostituto moderno di cat con evidenziazione della sintassi, integrazione Git e impaginazione automatica.
Installazione
Piattaforma
Comando
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
Nota : Su Debian/Ubuntu, crea un alias se necessario:alias bat='batcat'
Comandi di Base
Comando
Descrizione
bat file.txt
Visualizza file con evidenziazione della sintassi e numeri di riga
bat file1.txt file2.py
Visualizza più file con intestazioni
bat -n file.txt
Mostra esplicitamente i numeri di riga (abilitato per impostazione predefinita)
bat -p file.txt
Plain mode (no decorations, like cat)
bat -pp file.txt
Modalità extra plain (output completamente plain)
bat -A file.txt
Mostra tutti i caratteri non stampabili (tabulazioni, spazi, fine riga)
bat -r 10:20 file.txt
Visualizza un intervallo specifico di righe (righe 10-20)
bat -r :50 file.txt
Visualizza le prime 50 righe
bat -r 100: file.txt
Visualizza dalla riga 100 alla fine
echo "text" \ | bat
Visualizza l'input tramite pipe con evidenziazione della sintassi
bat --list-languages
Mostra tutti i linguaggi di programmazione supportati
bat --list-themes
Mostra tutti i temi di colore disponibili
bat -l python file.txt
Forzare l'evidenziazione specifica del linguaggio/sintassi
bat --plain file.txt
Disabilita l'evidenziazione della sintassi
bat --paging=never file.txt
Disabilita impaginazione automatica
## Utilizzo Avanzato
Comando
Descrizione
bat --theme="Dracula" file.py
Utilizzare un tema colore specifico
bat --diff file.txt
Mostra modifiche Git con evidenziazione della sintassi
bat --no-git file.txt
Disabilita marcatori di integrazione Git
bat --tabs=4 file.py
Imposta larghezza personalizzata della scheda
bat --wrap=never file.txt
Disabilita a capo riga
bat --terminal-width=80 file.txt
Imposta larghezza specifica del terminale
bat --style=numbers,changes file.txt
Mostra solo i numeri di riga e le modifiche di Git
bat --style=header,grid file.txt
Mostra solo intestazione e separatori della griglia
bat --style=plain file.txt
Rimuovi tutte le decorazioni
bat --file-name="Custom" file.txt
Mostra nome personalizzato nell'intestazione
bat --decorations=never file.txt
Disabilita tutte le decorazioni (anche quando appropriate)
bat --color=always file.txt
Forza l'output a colori (anche durante la pipeline)
bat --paging=always file.txt
Forza pager anche per file piccoli
bat --pager="less -RF" file.txt
Utilizzare un pager personalizzato con opzioni
bat --map-syntax='*.conf:INI' file.conf
Associa l'estensione del file a una sintassi specifica
bat --generate-config-file
Genera file di configurazione predefinito
bat cache --build
Ricostruisci cache della sintassi/tema
bat cache --clear
Cancella cache sintassi/tema
## Configurazione
Posizioni del File di Configurazione
Piattaforma
Percorso
Linux/macOS
~/.config/bat/config
Windows
%APPDATA%\bat\config
### File di Configurazione di Esempio
Crea ~/.config/bat/configcon le tue preferenze:
# 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"
Variabili di Ambiente
# 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"
Temi Personalizzati
# 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
Componenti di Stile
Componenti di stile disponibili (separati da virgola):
Componente
Descrizione
full
Tutti i componenti (predefinito)
auto
Automatico in base all'output
plain
Nessuna decorazione
numbers
Numeri di riga
changes
Marcatori di modifica di Git
header
Intestazione nome file
grid
Separatori di griglia
rule
Linee orizzontali
snip
Marcatori di selezione per intervalli di righe
## Casi d'Uso Comuni
Caso d'Uso: Revisione del Codice con Integrazione Git
# 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
Caso d'Uso: Analisi di File di Log
# 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"
Caso d'Uso: Gestione di File di Configurazione
# 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
Caso d'Uso: Workflow Docker e Container
# 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
Caso d'Uso: Sviluppo e Debug di Script
# 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
Migliori Pratiche
Usa -pper lo scripting : Quando usi pipe o script, usa bat -pobat --plainper evitare decorazioni che potrebbero interferire con l'elaborazione
Configura impostazioni predefinite : Imposta~/.config/bat/configcon il tuo tema e stile preferito per evitare flag ripetitivi
Alias per sostituzione cat : Aggiungialias cat='bat --paging=never --style=plain'al tuo file di configurazione della shell per una sostituzione senza interruzioni
Sfrutta l'integrazione Git : Usa--diffdurante la revisione delle modifiche al codice per vedere le modifiche inline con l'evidenziazione della sintassi
Mappa estensioni personalizzate : Usa--map-syntaxnel file di configurazione per tipi di file specifici del progetto (ad esempio,.jenkinsfile,.conf)
Disabilita paginazione per pipe : Usa sempre--paging=neverquando si invia l'output ad altri comandi per evitare problemi con il pager interattivo
Usa suggerimenti di lingua : Per file senza estensioni, specifica esplicitamente la lingua con-lper una corretta evidenziazione della sintassi
Coerenza del tema : Scegli un tema che corrisponda allo schema di colori del tuo terminale per una migliore leggibilità
Gestione cache : Dopo aver aggiunto temi o sintassi personalizzate, eseguibat cache --buildper renderli disponibili
Risoluzione dei problemi
Problema
Soluzione
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
## Riferimento rapido: Flag comuni
Breve
Lungo
Scopo
-p
--plain
Modalità di output semplice
-n
--number
Mostra numeri di riga
-A
--show-all
Mostra caratteri non stampabili
-l
--language
Imposta sintassi del linguaggio
-r
--line-range
Visualizza intervallo di righe
-H
--highlight-line
Evidenziare righe specifiche
-d
--diff
Mostra Git diff
--theme
Imposta tema colore
--style
Imposta componenti di stile
--paging
Controlla il comportamento del pager
--tabs
Imposta larghezza scheda