Aller au contenu principal

bat, un cat survitaminé

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.

Les avantages de bat par rapport à cat

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.

Installation de bat

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

Sous Linux avec asdf

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

asdf plugin add bat
asdf install bat latest
asdf global bat latest

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

Sous Windows avec Chocolatey ou Scoop

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

  • Avec Chocolatey :

    choco install bat
    
  • Avec Scoop :

    scoop install bat
    

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

Sous MacOS avec Homebrew

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

brew install bat

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

Vérification de l'installation

Ouvrez un terminal et tapez la commande suivante :

bat --version
bat 0.24.0 (fc95468)

Utiliser 'bat' au Quotidien

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 :

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 :

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 :

bat mon_fichier.txt | grep ma_recherche

Les principales options

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

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.

    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 :

    bat --diff mon_fichier_sous_git.txt
    

Tips

Coloration syntaxique des aides en ligne

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

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

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

help <nom de la commande>

# Exemple

help cp

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

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 :

bat --help

Conclusion

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 !

Plus d'infos