Pular para o conteúdo

bat Cheatsheet

bat Cheatsheet

catUm substituto moderno para cat com destaque de sintaxe, integração com Git e paginação automática.

Instalação

PlataformaComando
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

Nota: No Debian/Ubuntu, crie um alias se necessário:alias bat='batcat'

Comandos Básicos

ComandoDescrição
bat file.txtExibir arquivo com destaque de sintaxe e números de linha
bat file1.txt file2.pyExibir múltiplos arquivos com cabeçalhos
bat -n file.txtMostrar explicitamente os números de linha (habilitado por padrão)
bat -p file.txtPlain mode (no decorations, like cat)
bat -pp file.txtModo extra simples (saída completamente simples)
bat -A file.txtMostrar todos os caracteres não imprimíveis (tabulações, espaços, terminações de linha)
bat -r 10:20 file.txtExibir intervalo de linhas específico (linhas 10-20)
bat -r :50 file.txtExibir primeiras 50 linhas
bat -r 100: file.txtExibir da linha 100 até o final
`echo “text” \bat`
bat --list-languagesMostrar todas as linguagens de programação suportadas
bat --list-themesExibir todos os temas de cores disponíveis
bat -l python file.txtForçar destaque de linguagem/sintaxe específico
bat --plain file.txtDesativar realce de sintaxe
bat --paging=never file.txtDesativar paginação automática

Uso Avançado

ComandoDescrição
bat --theme="Dracula" file.pyUse um tema de cores específico
bat --diff file.txtMostrar modificações do Git com destaque de sintaxe
bat --no-git file.txtDesativar marcadores de integração do Git
bat --tabs=4 file.pyDefinir largura personalizada de tabulação
bat --wrap=never file.txtDesabilitar quebra de linha
bat --terminal-width=80 file.txtForçar largura específica do terminal
bat --style=numbers,changes file.txtMostrar apenas números de linha e alterações do Git
bat --style=header,grid file.txtMostrar apenas cabeçalho e separadores de grade
bat --style=plain file.txtRemover todas as decorações
bat --file-name="Custom" file.txtExibir nome personalizado no cabeçalho
bat --decorations=never file.txtDesativar todas as decorações (mesmo quando apropriado)
bat --color=always file.txtForçar saída colorida (mesmo ao redirecionar)
bat --paging=always file.txtForçar pager mesmo para arquivos pequenos
bat --pager="less -RF" file.txtUsar pager personalizado com opções
bat --map-syntax='*.conf:INI' file.confMapear extensão de arquivo para sintaxe específica
bat --generate-config-fileGerar arquivo de configuração padrão
bat cache --buildReconstruir cache de sintaxe/tema
bat cache --clearLimpar cache de sintaxe/tema

Configuração

Locais de Arquivos de Configuração

PlataformaCaminho
Linux/macOS~/.config/bat/config
Windows%APPDATA%\bat\config

Arquivo de Configuração de Exemplo

Crie ~/.config/bat/configcom suas preferências:

# 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"

Variáveis de 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"

Temas Personalizados

# 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

Componentes de Estilo

Componentes de estilo disponíveis (separados por vírgula):

ComponenteDescrição
fullTodos os componentes (padrão)
autoBaseado automaticamente na saída
plainSem decorações
numbersNúmeros de linha
changesMarcadores de modificação do Git
headerCabeçalho do nome do arquivo
gridSeparadores de Grid
ruleRegras horizontais
snipMarcadores de corte para intervalos de linhas

Casos de Uso Comuns

Caso de Uso: Revisão de Código com Integração 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 de Uso: Análise de Arquivos de 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 de Uso: Gerenciamento de Arquivos de Configuração

# 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 de Uso: Fluxos de Trabalho com Docker e Contêineres

# 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 de Uso: Desenvolvimento e Depuração de Scripts

# 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

Melhores Práticas

  • Use -ppara scripts: Ao fazer pipe ou criar scripts, use bat -pou

Would you like me to clarify or complete any specific part of the translation?bat --plainpara evitar decorações que possam interferir no processamento~/.config/bat/configConfigure padrões: Configurealias cat='bat --paging=never --style=plain'com seu tema e estilo preferidos para evitar sinalizadores repetitivos--diffAlias para substituição de cat: Adicione--map-syntaxao seu arquivo de configuração do shell para substituição transparente.jenkinsfileAproveite a integração do Git: Use.confao revisar mudanças de código para ver modificações inline com destaque de sintaxe--paging=neverMapeie extensões personalizadas: Use-lno arquivo de configuração para tipos de arquivo específicos do projeto (por exemplo,bat cache --build,

ProblemaSolução
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
CurtoLongo
-------------
-p--plain
-n--number
-A--show-all
-l--language
-r--line-range
-H--highlight-line
-d--diff
--theme
--style
--paging
--tabs