Aller au contenu
Outils medium

bat : afficher vos fichiers avec coloration syntaxique

9 min de lecture

bat affiche le contenu de vos fichiers avec coloration syntaxique, numéros de ligne et intégration Git. C’est un remplacement direct de cat qui rend la lecture de code et de configuration beaucoup plus confortable. Ce guide couvre l’installation avec mise, la configuration et les usages courants.

La commande cat existe depuis 1971. Elle fait une seule chose : afficher le contenu d’un fichier. Pas de coloration, pas de numéros de ligne, pas de pagination.

Quand vous lisez un fichier YAML de 200 lignes ou un script Bash complexe, cat vous renvoie un bloc de texte brut. Trouver une erreur de syntaxe ou se repérer dans le fichier demande un effort visuel important.

bat résout ce problème en ajoutant :

FonctionnalitéCe que ça apporte
Coloration syntaxiqueDistinguer variables, fonctions, commentaires d’un coup d’œil
Numéros de ligneSe repérer instantanément, corréler avec les messages d’erreur
Intégration GitVoir les lignes modifiées directement dans l’affichage
Pagination automatiquePour les longs fichiers, navigation page par page

Version actuelle : 0.26.1 (janvier 2026)

mise est le gestionnaire d’outils recommandé pour ce site :

Fenêtre de terminal
mise install bat@latest
mise use -g bat@latest

Vérification :

Fenêtre de terminal
bat --version
# bat 0.26.1 (979ba22)

La commande la plus simple — identique à cat, mais en mieux :

Fenêtre de terminal
bat mon_fichier.yaml

Résultat : le fichier s’affiche avec :

  • Coloration syntaxique adaptée au type de fichier
  • Numéros de ligne dans la marge
  • Bordure avec le nom du fichier
  • Pagination si le fichier dépasse la hauteur du terminal

Pour n’afficher que les lignes 10 à 20 :

Fenêtre de terminal
bat -r 10:20 package.json

Exemple de sortie :

─────┬────────────────────────────────────────────────
│ File: package.json
─────┼────────────────────────────────────────────────
10 │ "postbuild": "node scripts/check-links.js",
11 │ "build:nocheck": "astro build",
12 │ "preview": "astro preview",
─────┴────────────────────────────────────────────────

Pratique quand un message d’erreur vous indique un numéro de ligne précis.

Fenêtre de terminal
bat config.yaml secrets.yaml

bat concatène les fichiers avec une séparation claire entre chacun.

bat fonctionne aussi en pipeline. Utile pour coloriser la sortie d’autres commandes :

Fenêtre de terminal
curl -s https://api.github.com/users/octocat | bat -l json

L’option -l json force le langage (bat ne peut pas le deviner depuis stdin).

Par défaut, bat utilise un pager (comme less) pour les longs fichiers. Pour désactiver :

Fenêtre de terminal
bat --paging=never mon_fichier.log

Utile dans les scripts ou quand vous voulez tout afficher d’un coup.

bat propose plusieurs styles d’affichage. L’option --style accepte une liste de composants séparés par des virgules :

ComposantCe qu’il affiche
numbersNuméros de ligne
gridBordures autour du contenu
headerNom du fichier en en-tête
changesMarqueurs Git (lignes modifiées)
snipIndicateur de troncature

Exemples :

Fenêtre de terminal
# Numéros et grille uniquement
bat --style=numbers,grid script.sh
# Style minimal (juste la coloration)
bat --style=plain config.yaml
# Tout afficher
bat --style=full Dockerfile

bat inclut plus de 20 thèmes. Pour voir la liste :

Fenêtre de terminal
bat --list-themes

Les thèmes populaires :

ThèmeStyle
DraculaSombre, contrasté
GitHubClair, style GitHub
Monokai ExtendedClassique Sublime Text
NordPalette nordique douce
Catppuccin MochaModerne, pastel sombre

Pour appliquer un thème :

Fenêtre de terminal
bat --theme="Dracula" mon_fichier.py

Pour rendre le thème permanent, voir la section Configuration.

Si votre fichier est dans un dépôt Git, bat peut afficher les lignes modifiées :

Fenêtre de terminal
bat --diff mon_fichier.py

Les lignes ajoutées, modifiées ou supprimées sont marquées dans la marge.

Plutôt que de taper les options à chaque fois, créez un fichier de configuration :

Fenêtre de terminal
mkdir -p ~/.config/bat
cat > ~/.config/bat/config << 'EOF'
# Thème par défaut
--theme="Catppuccin Mocha"
# Style par défaut (numéros, grille, changements Git)
--style="numbers,changes,header,grid"
# Désactiver la pagination pour les petits fichiers
--paging=auto
EOF

bat lit automatiquement ce fichier à chaque exécution.

Si vous voulez utiliser bat partout où vous utiliseriez cat, créez des alias dans votre shell :

Ajoutez dans ~/.bashrc :

Fenêtre de terminal
# Remplacer cat par bat
alias cat='bat --paging=never'
# Remplacer less par bat
alias less='bat'

Après modification, rechargez votre shell :

Fenêtre de terminal
source ~/.bashrc # ou ~/.zshrc

Les pages --help des commandes sont souvent longues et difficiles à lire. bat peut les coloriser :

Fenêtre de terminal
# Dans ~/.bashrc
alias bathelp='bat --plain --language=help'
help() {
"$@" --help 2>&1 | bathelp
}

Usage : help docker affiche l’aide de docker avec coloration.

bat s’intègre naturellement dans les pipelines Unix :

Fenêtre de terminal
# Chercher et afficher avec coloration
grep -n "error" app.log | bat -l log
# Afficher les 50 dernières lignes d'un log avec coloration
tail -50 /var/log/syslog | bat -l syslog
# Comparer deux fichiers avec diff et coloriser
diff -u old.yaml new.yaml | bat -l diff

Pour débugger des problèmes d’espaces, tabulations ou fins de ligne :

Fenêtre de terminal
bat --show-all mon_fichier.txt

Les caractères invisibles sont affichés avec des symboles Unicode (␊ pour newline, → pour tab, etc.).

bat reconnaît automatiquement plus de 150 langages grâce à l’extension du fichier. Pour voir la liste complète :

Fenêtre de terminal
bat --list-languages

Les langages courants en DevOps :

LangageExtensions reconnues
YAML.yaml, .yml
JSON.json, .jsonl
Bash.sh, .bash, .zsh
Python.py
DockerfileDockerfile, Containerfile
HCL (Terraform).tf, .tfvars
Go.go
Rust.rs

Si bat ne reconnaît pas un fichier, forcez le langage avec -l :

Fenêtre de terminal
bat -l yaml mon_fichier_sans_extension
  1. bat = cat + coloration + numéros de ligne — Remplacement direct, mêmes arguments
  2. Installation recommandée avec mise : mise install bat@latest && mise use -g bat@latest
  3. Options utiles : -r 10:20 (plage), --style=plain (minimal), --theme=...
  4. Configuration permanente dans ~/.config/bat/config
  5. Alias pratique : alias cat='bat --paging=never'
  6. Fonctionne en pipeline : curl ... | bat -l json
  7. 150+ langages reconnus automatiquement

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.