Bat Command : un clone de chat avec mise en évidence de la syntaxe et intégration de Git
Commande Bat : la meilleure alternative à la commande cat pour afficher les fichiers texte dans le terminal sous Linux.
Sous Linux et les systèmes de type Unix, la commande 'cat
' est utilisée pour imprimer et concaténer des fichiers. En utilisant la commande cat
, nous pouvons imprimer le contenu d'un fichier sur la sortie standard, concaténer plusieurs fichiers dans le fichier cible et ajouter plusieurs fichiers dans le fichier cible. Aujourd'hui, je suis tombé sur un utilitaire similaire nommé "Bat". Bat n'est qu'un clone de la commande cat
, avec quelques fonctionnalités supplémentaires intéressantes telles que la coloration syntaxique, l'intégration git et la pagination automatique, etc. Dans ce guide, nous discuterons de qu'est-ce que Ba t, comment installer Bat sous Linux et comment utiliser la commande Bat dans les systèmes d'exploitation Linux et Unix.
Qu’est-ce que Bat Command ?
Bat est un outil de ligne de commande qui affiche le contenu d'un fichier dans le terminal. Il s'agit d'un clone de la commande cat, mais elle possède quelques fonctionnalités supplémentaires, telles que la coloration syntaxique et la numérotation des lignes. Les « ailes » dans le nom font référence à ces fonctionnalités supplémentaires.
En termes simples, Bat est une version plus puissante et plus polyvalente de la commande cat. C'est un excellent outil pour les programmeurs et autres utilisateurs techniques qui ont besoin d'afficher et de modifier des fichiers texte.
Bat est un programme gratuit et open source écrit en langage de programmation Rust.
Si vous recherchez un outil de ligne de commande puissant et polyvalent pour afficher et éditer des fichiers texte, Bat est une excellente option. Il est facile à utiliser et possède de nombreuses fonctionnalités qui peuvent vous faciliter la vie.
Caractéristiques des chauves-souris
Voici quelques-unes des fonctionnalités de Bat :
- Mise en évidence de la syntaxe : Bat peut automatiquement mettre en évidence la syntaxe de différents langages de programmation, ce qui facilite la lecture et la compréhension du code.
- Numérotation des lignes : Bat peut numéroter les lignes d'un fichier, ce qui peut être utile pour le débogage et le dépannage.
- Options de formatage : Bat vous permet de personnaliser le formatage de la sortie du texte, comme la police, la taille et la couleur.
- Intégration Git : Bat peut s'intégrer à Git pour afficher les modifications de fichiers. Cela peut être utile pour suivre les modifications apportées au code.
- Pagination automatique : lorsque vous utilisez
bat
pour afficher un long fichier, il divise automatiquement le contenu en pages, vous permettant de les faire défiler facilement. C’est plus pratique que de devoir tout faire défiler en même temps. - Thèmes et styles : vous pouvez personnaliser la façon dont Bat affiche les fichiers en choisissant différents thèmes et styles de couleurs. Cela vous permet de personnaliser votre expérience visuelle en fonction de vos préférences.
- Gestion des fichiers binaires :
bat
peut également afficher les fichiers binaires dans un format lisible, ce qui peut être utile pour examiner le contenu des fichiers binaires comme des images ou des programmes compilés. - Détection d'extension : il peut détecter automatiquement le type de fichier que vous consultez en fonction de son extension et appliquer la coloration syntaxique appropriée.
- Intégration avec d'autres outils :
bat
peut fonctionner avec d'autres outils et commandes, ce qui en fait un choix polyvalent pour afficher le contenu d'un fichier tout en profitant également d'autres utilitaires de ligne de commande. - Remplacement immédiat pour cat : Bat peut être utilisé comme remplacement immédiat de la commande cat. Cela signifie que vous pouvez utiliser Bat pour faire tout ce que le chat peut faire, et bien plus encore.
Installer Bat sur Linux
Bat est fourni pour les systèmes d'exploitation Linux populaires.
Linux alpin :
Bat est disponible dans les référentiels officiels d'Alpine Linux. Pour installer bat sur Alpine Linux, exécutez :
sudo apk add bat
Arch Linux :
Bat est disponible dans les référentiels par défaut d'Arch Linux. Ainsi, vous pouvez l'installer à l'aide de pacman sur n'importe quel système basé sur Arch.
sudo pacman -S bat
Systèmes basés sur Debian :
bat
est disponible pour Ubuntu depuis la version 20.04 ("Focal") et pour Debian depuis août 2021 (Debian 11 - "Bullseye").
Si vous utilisez une version récente d'Ubuntu ou Debian, vous pouvez facilement l'installer avec la commande suivante :
sudo apt install bat
Veuillez noter que lorsque vous installez bat
de cette façon, l'exécutable peut être nommé batcat
au lieu de bat
(en raison d'un conflit de nom avec un autre package ).
Pour éviter les problèmes potentiels et maintenir la cohérence entre les distributions, vous pouvez créer un lien symbolique ou un alias :
Créez un répertoire pour les binaires locaux (s'il n'existe pas) :
mkdir -p ~/.local/bin
Créez un lien symbolique ou un alias pour utiliser bat
au lieu de batcat
:
Pour le lien symbolique :
ln -s /usr/bin/batcat ~/.local/bin/bat
Pour l'alias (ajoutez cette ligne à votre fichier de configuration shell, comme ~/.bashrc
ou ~/.zshrc
) :
alias bat='batcat'
Si vous souhaitez installer la dernière version .deb
sur Debian, Ubuntu, Linux Mint, Pop_OS ! systèmes, téléchargez le fichier .deb
depuis la page des versions et installez-le comme indiqué ci-dessous.
wget https://github.com/sharkdp/bat/releases/download/v0.11.0/bat_0.11.0_amd64.deb
sudo apt install gdebi
sudo gdebi bat_0.11.0_amd64.deb
SUSE/openSUSE :
Vous pouvez installer bat avec zypper comme ci-dessous :
sudo zypper install bat
Utilisation du gestionnaire de packages Nix :
Dans NixOS, vous pouvez installer bat à l'aide du gestionnaire de packages nix :
nix-env -i bat
Fedora :
Bat peut être installé à partir du référentiel officiel Fedora Modular.
sudo dnf install bat
Gentoo :
emerge sys-apps/bat
Annuler Linux :
Vous pouvez installer bat
via xbps-install :
sudo xbps-install -S bat
FreeBSD :
Vous pouvez installer un package bat
précompilé avec pkg :
pkg install bat
Ou construisez-le à partir des ports FreeBSD :
cd /usr/ports/textproc/bat
make install
Utilisation du gestionnaire de packages Cargo à partir des sources :
Assurez-vous d'avoir installé Rust 1.26 ou supérieur.
- Installer le langage de programmation Rust sous Linux
Ensuite, exécutez la commande suivante pour installer Bat :
cargo install bat
Utiliser Linuxbrew :
Vous pouvez également l'installer à l'aide du gestionnaire de packages Linuxbrew.
brew install bat
Utilisation des commandes Bat
L'utilisation de la commande Bat est très similaire à la commande cat
.
Pour créer un nouveau fichier à l'aide de bat, faites :
bat > file.txt
Pour afficher le contenu d'un fichier à l'aide de bat, exécutez :
bat file.txt
Vous pouvez également afficher plusieurs fichiers à la fois :
bat file1.txt file2.txt
Pour ajouter le contenu de plusieurs fichiers dans un seul fichier :
bat file1.txt file2.txt file3.txt > document.txt
Comme je l'ai déjà mentionné, outre l'affichage et l'édition de fichiers, l'utilitaire Bat possède cependant des fonctionnalités supplémentaires intéressantes.
Mise en évidence de la syntaxe
Bat prend en charge la surlignage syntaxique pour un grand nombre de langages de programmation et de balisage. Par exemple, regardez l’exemple suivant.
Je vais afficher le contenu du fichier reverse.py
en utilisant les commandes cat et bat.
comparaison des sorties des commandes cat et bat
Avez-vous remarqué la différence ? La commande cat
affiche le contenu du fichier au format texte brut, tandis que Bat affiche la sortie avec coloration syntaxique, numéro d'ordre dans un format de colonne tabulaire soigné. C'est beaucoup mieux, n'est-ce pas ?
Afficher uniquement les numéros de ligne
Si vous souhaitez afficher uniquement les numéros de ligne (pas la colonne tabulaire), utilisez l'indicateur -n
.
bat -n reverse.py
Exemple de résultat :
sortie de la commande bat sans colonne tabulaire
Pagination automatique
Une autre caractéristique notable de la commande Bat est qu'elle prend en charge la pagination automatique. Cela signifie que si la sortie d'un fichier est trop volumineuse pour un écran, la commande bat redirige automatiquement sa propre sortie vers la commande less
, afin que vous puissiez afficher la sortie page par page.
Permettez-moi de vous montrer un exemple.
Lorsque vous affichez le contenu d'un fichier qui s'étend sur plusieurs pages à l'aide de la commande cat, l'invite passe rapidement à la dernière page du fichier et vous ne voyez pas le contenu au début ou au milieu.
Jetez un œil à la sortie suivante :
sortie de la commande cat
Comme vous pouvez le voir, la commande cat affiche la dernière page du fichier.
Ainsi, vous devrez peut-être rediriger la sortie de la commande cat vers la commande less
pour afficher son contenu page par page depuis le début.
cat reverse.py | less
Maintenant, vous pouvez afficher la sortie page par page en appuyant sur la touche ENTRÉE. Cependant, ce n’est pas nécessaire si vous utilisez la commande bat. La commande bat redirigera automatiquement la sortie d'un fichier qui s'étend sur plusieurs pages.
bat reverse.py
Exemple de résultat :
La commande Bat prend en charge la pagination automatique
Appuyez maintenant sur la touche ENTRÉE pour passer à la page suivante.
Intégration Git
La commande bat
prend également en charge l'intégration GIT, vous pouvez donc afficher/modifier les fichiers dans votre référentiel Git sans trop de tracas. Il communique avec git pour afficher les modifications par rapport à l'index (voir barre latérale gauche).
Intégration Git avec la commande Bat
Bat a également la possibilité de contrôler l’apparence de la sortie. Pour ce faire, utilisez l'option --style
. Pour afficher uniquement les modifications Git et les numéros de ligne, mais pas de grille ni d'en-tête de fichier, utilisez --style=numbers,changes
.
Afficher les caractères non imprimables
Pour afficher les caractères non imprimables dans un fichier à l'aide de la commande bat
, vous pouvez utiliser l'option -A
ou --show-all
. Voici un exemple :
bat -A file.txt
Remplacez file.txt
par le chemin d'accès au fichier que vous souhaitez afficher.
Cette commande affichera le contenu du fichier ainsi que les caractères non imprimables en surbrillance. Les caractères non imprimables peuvent inclure des éléments tels que des tabulations, des sauts de ligne, des caractères de contrôle spéciaux, etc.
Gardez à l'esprit que l'apparence des caractères non imprimables peut varier en fonction de votre terminal et de la palette de couleurs que vous utilisez avec bat
.
Comment intégrer Bat Command à d’autres outils ?
Voici des exemples étape par étape de la façon d'intégrer la commande bat
à divers autres outils :
Intégration avec fzf
(Fuzzy Finder en ligne de commande) :
fzf
est un outil permettant de rechercher et de sélectionner des éléments dans une liste de manière interactive. Vous pouvez utiliser bat
comme aperçu pour fzf
pour afficher le contenu du fichier pendant la navigation.
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
Dans cet exemple, fzf
affichera un aperçu du contenu du fichier en utilisant bat
pour tout fichier sélectionné.
Intégration avec find
(Rechercher des fichiers) et xargs
:
find
est utilisé pour rechercher des fichiers dans une hiérarchie de répertoires. Vous pouvez utiliser bat
pour prévisualiser les résultats de la recherche.
find /path/to/search -name "*.txt" -exec bat {} +
Cette commande trouvera tous les fichiers .txt
dans le répertoire spécifié et ses sous-répertoires, puis utilisera bat
pour prévisualiser leur contenu.
Intégration avec ripgrep
(Recherche de texte récursive) :
ripgrep
est un outil de recherche de texte récursif rapide. Vous pouvez utiliser bat
comme imprimante pour les résultats de recherche ripgrep
.
batgrep "search term" /path/to/search
Cette commande utilisera ripgrep
pour rechercher le terme spécifié dans le chemin donné, puis imprimera les résultats de la recherche en utilisant bat
.
Intégration avec tail -f
(surveillance continue des journaux) :
tail -f
est utilisé pour surveiller les fichiers journaux en temps réel. Vous pouvez utiliser bat
pour surveiller en permanence les fichiers journaux avec coloration syntaxique.
tail -f /var/log/syslog | bat --paging=never -l log
Cette commande affichera le contenu du fichier syslog en utilisant bat
, en gardant la coloration syntaxique intacte tout en surveillant en permanence les mises à jour.
Intégration avec git show
(affichage du fichier à partir de l'historique Git) :
git show
affiche des informations sur un commit spécifique. Vous pouvez utiliser bat
pour afficher le contenu d'un fichier à partir d'un commit spécifique.
git show commit_hash:path/to/file | bat -l language
Remplacez commit_hash
par le hachage du commit souhaité et path/to/file
par le chemin du fichier. langue
doit être remplacé par le langage approprié pour la coloration syntaxique.
Intégration avec git diff
(affichage des modifications Git) :
Vous pouvez utiliser bat
pour afficher les modifications apportées dans une sortie diff Git.
git diff --color=always | bat --paging=never --diff
Cette commande affichera le diff Git colorisé en utilisant bat
, sans pagination, et en indiquant qu'il s'agit d'un diff.
Intégration avec xclip
(Copie dans le Presse-papiers) :
Vous pouvez utiliser xclip
pour copier la sortie de bat
dans le presse-papiers.
bat file.txt | xclip -selection clipboard
Cette commande enverra le contenu de file.txt
via bat
puis copiera le résultat dans le presse-papiers en utilisant xclip
.
N'oubliez pas d'ajuster les chemins de fichiers, les options et les arguments en fonction de votre cas d'utilisation et de vos préférences spécifiques.
Personnalisation du thème de commande Bat
Si vous n'aimez pas les thèmes par défaut, vous pouvez également les modifier. Bat a également une option pour cela.
Pour lister les thèmes disponibles, exécutez simplement :
$ bat --list-themes
1337
DarkNeon
Default
GitHub
Monokai Extended
Monokai Extended Bright
Monokai Extended Light
Monokai Extended Origin
TwoDark
Pour utiliser un thème différent, par exemple TwoDark, exécutez :
bat --theme=TwoDark file.txt
Si vous souhaitez rendre le thème permanent, utilisez export BAT_THEME="TwoDark"
dans le fichier de démarrage de votre shell.
Vous pouvez lire la comparaison d'outils similaires dans ce tableau. Veuillez noter que la comparaison est faite du point de vue de Bat.
Questions fréquemment posées
Voici la liste des questions les plus fréquemment posées (FAQ) sur la commande Bat.
Q : Qu'est-ce que la commande bat
?
R : La commande bat
est une alternative moderne à la commande cat
traditionnelle utilisée dans les systèmes d'exploitation de type Unix. Il est conçu pour afficher le contenu des fichiers avec la coloration syntaxique, la numérotation des lignes et des fonctionnalités supplémentaires pour une expérience de visualisation améliorée.
Q : Comment installer bat
?
R : Vous pouvez installer bat
sur différents systèmes à l'aide des gestionnaires de packages. Par exemple, sur les systèmes utilisant apt
(Debian/Ubuntu), vous pouvez exécuter : sudo apt install bat
Q : Quelles fonctionnalités bat
offre ?
R : bat
offre la coloration syntaxique pour divers langages de programmation et de balisage, la numérotation des lignes, l'intégration Git, la possibilité d'afficher des caractères non imprimables, la pagination des fichiers longs, la personnalisation des couleurs, et bien plus encore.
Q : Comment afficher le contenu d'un seul fichier à l'aide de bat
?
R : Pour afficher le contenu d'un seul fichier, utilisez la commande bat
suivie du chemin du fichier. Par exemple : bat README.md
Q : Puis-je afficher le contenu de plusieurs fichiers à la fois à l'aide de bat
?
R : Oui, vous pouvez afficher le contenu de plusieurs fichiers en fournissant leurs chemins comme arguments. Par exemple : bat file1.txt file2.txt
Q : Est-il possible d'afficher tous les fichiers d'un répertoire à l'aide de bat
?
R : Absolument, vous pouvez utiliser un caractère générique *
pour afficher le contenu de tous les fichiers d'un répertoire. Par exemple : bat /chemin/vers/répertoire/*
Q : Comment puis-je afficher des fichiers avec une extension spécifique à l'aide de bat
?
R : Pour afficher les fichiers avec une certaine extension, utilisez un caractère générique avec l'extension souhaitée. Par exemple : bat *.log
Q : Puis-je afficher le contenu des fichiers dans les sous-répertoires avec bat
?
R : Oui, vous pouvez utiliser un double caractère générique **
pour afficher les fichiers dans les sous-répertoires. Par exemple : bat /path/to/directory/**/*.txt
Q : Comment puis-je utiliser bat
pour afficher des lignes spécifiques d'un fichier ?
R : Vous pouvez spécifier une plage de lignes à afficher à l'aide de l'option --line-range
. Par exemple, pour afficher les lignes 10 à 20 d'un fichier : bat --line-range=10:20 file.txt
Q : Comment puis-je afficher le fichier d'un commit spécifique avec bat
?
R : Vous pouvez utiliser git show
pour afficher le fichier d'un commit spécifique, puis le rediriger vers bat
pour la coloration syntaxique :git show commit_hash:path/to /fichier | bat -l langage
Q : Comment afficher des caractères non imprimables à l'aide de bat
?
R : Utilisez l'option -A
ou --show-all
suivie du chemin du fichier : bat -A file.txt
Q : bat
peut-il être utilisé avec d'autres outils ?
R : Oui, bat
peut être intégré à des outils tels que fzf
(fuzzy finder), find
, ripgrep
, git
, et plus encore. Par exemple, pour utiliser bat
avec fzf
: fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
Q : Puis-je personnaliser l'apparence de la sortie de bat
?
R : Oui, vous pouvez personnaliser les thèmes et styles de couleurs à l'aide des options --theme
et --style
.
Pour plus de détails, reportez-vous à la page GitHub du projet de commande Bat ci-dessous.
Ressource :
- Dépôt GitHub Bat