Aller au contenu
Outils medium

bat, un cat survitaminé

10 min de lecture

Dans le monde du DevOps, l’efficacité et la clarté des outils que nous utilisons au quotidien sont primordiales. Aujourd’hui, je vais vous parler de bat, une alternative améliorée et moderne à la commande traditionnelle cat sous Linux.

bat

cat, cette commande, bien connue des administrateurs systèmes et des développeurs, est essentielle pour afficher le contenu des fichiers directement dans le terminal. bat vient enrichir cette fonctionnalité basique avec des ajouts significatifs.

Tout d’abord, la coloration syntaxique est l’une des fonctionnalités les plus frappantes de bat. Elle permet de distinguer rapidement les différents éléments d’un fichier de code, comme les variables, les fonctions, les commentaires, etc. Cette caractéristique est particulièrement utile pour les administrateurs systèmes et les développeurs qui travaillent régulièrement avec des scripts ou des fichiers de configuration. Par exemple, si vous lisez un script bash ou un fichier JbatSON avec bat, chaque élément sera coloré différemment selon sa fonction, rendant la lecture et le débogage plus rapides et moins sujets à erreur.

Ensuite, bat intègre une fonction de pagination automatique. Pour les fichiers volumineux, plutôt que de déverser tout le contenu d’un coup, bat affiche le contenu page par page. Cela facilite la navigation dans de grands fichiers, surtout quand on cherche des informations spécifiques.

Un autre point fort de bat est l’affichage des numéros de ligne, une fonctionnalité très appréciée pour le débogage ou simplement pour se repérer dans un fichier. Les numéros de ligne sont essentiels pour localiser rapidement des erreurs signalées dans des scripts ou des programmes.

bat offre également une intégration avec Git. Pour les fichiers sous contrôle de version, bat peut mettre en évidence les lignes qui ont été modifiées, ce qui est extrêmement utile pour suivre les changements ou comprendre les contributions de différents membres d’une équipe.

L’installation de bat varie selon le système d’exploitation que vous utilisez. Heureusement, elle est assez simple sur les principales plateformes.

asdf-vm est un gestionnaire de versions polyvalent qui peut être utilisé pour installer bat. Si vous avez déjà asdf, suivez ces étapes :

Fenêtre de terminal
asdf plugin add bat
asdf install bat latest
asdf set --home bat latest

Ces commandes ajoutent le plugin bat, installent la dernière version disponible et la définissent comme version globale.

Sous Windows, vous pouvez choisir entre Chocolatey et Scoop pour installer bat. Voici les commandes pour chacun :

  • Avec Chocolatey :

    Fenêtre de terminal
    choco install bat
  • Avec Scoop :

    Fenêtre de terminal
    scoop install bat

Ces commandes installeront la dernière version de bat sur votre système Windows.

Pour les utilisateurs de MacOS, Homebrew est le moyen le plus simple d’installer bat. Ouvrez votre terminal et tapez :

Fenêtre de terminal
brew install bat

Cette commande télécharge et installe bat via Homebrew.

Ouvrez un terminal et tapez la commande suivante :

Fenêtre de terminal
bat --version
bat 0.24.0 (fc95468)

Maintenant que bat est installé sur votre système, voyons comment l’intégrer efficacement dans votre travail quotidien.

La commande de base pour utiliser bat est très simple et rappelle celle de cat. Par exemple, pour afficher le contenu d’un fichier, vous tapez :

Fenêtre de terminal
bat mon_fichier.txt

Cette commande affichera le contenu de mon_fichier.txt avec une coloration syntaxique adaptée, la numérotation des lignes. La simplicité de cette commande en fait un remplacement direct et avantageux pour cat.

Si vous avez l’habitude d’utiliser cat dans vos scripts shell, vous pouvez facilement remplacer cat par bat pour profiter de ses fonctionnalités avancées. Créez simplement des alias :

Fenêtre de terminal
alias cat='bat --paging=never --style=changes'
alias less='bat'

Ajoutez-les dans votre fichier .bashrc ou .zshrc ou .fishrc.

Bat se marie bien avec d’autres commandes Unix, ce qui le rend très flexible. Par exemple, vous pouvez combiner bat avec grep pour chercher des termes spécifiques dans un fichier tout en profitant de la lisibilité améliorée offerte par bat :

Fenêtre de terminal
bat mon_fichier.txt | grep ma_recherche

** —list-themes : Cette option affiche la liste de tous les thèmes intégrés à bat :

Fenêtre de terminal
bat --list-themes
Theme: 1337
// Output the square of a number.
fn print_square(num: f64) {
let result = f64::powf(num, 2.0);
println!("The square of {:.2} is {:.2}.", num, result);
}
Theme: Coldark-Cold
// Output the square of a number.
fn print_square(num: f64) {
let result = f64::powf(num, 2.0);
println!("The square of {:.2} is {:.2}.", num, result);
}
Theme: Coldark-Dark
// Output the square of a number.
fn print_square(num: f64) {
let result = f64::powf(num, 2.0);
println!("The square of {:.2} is {:.2}.", num, result);
}
  • —list-languages : Cette option affiche la liste de tous les langages possédant une coloration syntaxique dans bat.

    Fenêtre de terminal
    ActionScript as
    Ada adb, ads, gpr
    Apache Conf envvars, htaccess, HTACCESS, htgroups, HTGROUPS, htpasswd, HTPASSWD, .htaccess, .HTACCESS, .htgroups, .HTGROUPS, .htpasswd, .HTPASSWD,
    /etc/apache2/**/*.conf, /etc/apache2/sites-*/**/*, httpd.conf
    AppleScript applescript, script editor
    ARM Assembly s, S
    AsciiDoc (Asciidoctor) adoc, ad, asciidoc
    ASP asa
    Assembly (x86_64) yasm, nasm, asm, inc, mac
    Authorized Keys authorized_keys, pub, authorized_keys2
    AWK awk
    Batch File bat, cmd
    BibTeX bib
    Bourne Again Shell (bash) sh, bash, zsh, ash, .bash_aliases, .bash_completions, .bash_functions, .bash_login, .bash_logout, .bash_profile, .bash_variables, .bashrc, .profile,
    ...
  • —diff : L’option --diff affiche les modifications de fichiers qui font partie de projet git :

    Fenêtre de terminal
    bat --diff mon_fichier_sous_git.txt

Une fonctionnalité interressante : la coloration syntaxique des aides en ligne des commandes.

bat

Si vous êtes sous bash, ajoutez ces lignes à votre fichier .bashrc :

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

Ensuite pour obtenir de l’aide sur une commande, il suffit de taper ceci :

Fenêtre de terminal
help <nom de la commande>
# Exemple
help cp

Si vous êtes sous zsh, ajoutez ces lignes à votre fichier .zshrc :

Fenêtre de terminal
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'

Cela permet de surcharger les options -h et --help de toutes les commandes. Ensuite pour obtenir de l’aide sur une commande, il suffit de taper la commande classique :

Fenêtre de terminal
bat --help

L’intégration de bat dans votre environnement de travail peut significativement améliorer votre efficacité et votre productivité. Ses fonctionnalités utiles en font non seulement un outil pratique, mais aussi un plaisir à utiliser au quotidien.

Je vous encourage vivement à intégrer bat dans votre boîte à outils de développement et d’administration système. Sa simplicité, combinée à ses puissantes fonctionnalités, en fait un atout précieux pour tout professionnel souhaitant optimiser son travail.

D’ailleurs, c’est pour cette raison que BAT a rejoint ma liste d’outils DevOps Indispensables !

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.