Maîtriser Bash
Mise à jour :
Bash est le shell par défaut sur la majorité des systèmes Unix tels que Linux et macOS, et il joue un rôle essentiel dans l’administration des systèmes et l’automatisation des tâches. Grâce à sa flexibilité et à sa puissance, Bash permet aux utilisateurs de personnaliser leur environnement de travail et de le rendre plus efficace.
Dans ce guide, je vais vous montrer comment personnaliser et optimiser Bash à l’aide d’outils tels que bash-it, tout en explorant des astuces pour rendre votre terminal plus fonctionnel et adapté à vos besoins.
Historique
Bash, acronyme de “Bourne Again Shell”, a été créé en 1989 par Brian Fox dans le cadre du projet GNU. Conçu pour être un successeur amélioré du sh (le shell Bourne original), Bash a été développé avec l’objectif d’offrir des fonctionnalités avancées tout en restant compatible avec les scripts existants.
Initialement, Bash a été adopté principalement sur les systèmes Linux, en raison de son inclusion dans le projet GNU, garantissant une alternative libre aux shells propriétaires de l’époque. Sa flexibilité, combinée à des fonctionnalités comme la gestion des variables, la redirection de flux et les structures de contrôle, en a fait un choix de prédilection pour les administrateurs systèmes et développeurs.
Avec le temps, Bash est devenu le shell par défaut sur de nombreuses distributions Linux et même sur macOS jusqu’en 2019, où il a été remplacé par Zsh. Cependant, Bash reste toujours largement utilisé et apprécié pour sa stabilité et sa vaste compatibilité.
Comparé à d’autres shells tels que Zsh, Ksh et Tcsh, Bash se distingue par son équilibre entre simplicité et fonctionnalité. Cet historique d’évolution et d’adoption généralisée témoigne de la robustesse et de la polyvalence de Bash, qui continue d’être un pilier central dans l’administration des systèmes modernes.
Installation et configuration de base
L’un des avantages de Bash est qu’il est préinstallé sur la plupart des systèmes Linux et macOS, rendant son installation généralement inutile. Cependant, il peut être nécessaire de configurer Bash comme shell par défaut ou de vérifier sa version pour s’assurer que vous utilisez la plus récente.
Pour vérifier la version de Bash installée sur votre système, utilisez la commande suivante :
Cela vous permettra de voir la version actuelle et de savoir si une mise à jour est recommandée pour bénéficier des dernières fonctionnalités et correctifs.
Définir Bash comme shell par défaut
Pour changer votre shell par défaut et le configurer sur Bash, utilisez la commande suivante :
Cette commande modifie le fichier /etc/passwd
pour que Bash soit lancé
automatiquement chaque fois que vous ouvrez un terminal. Assurez-vous que le
chemin vers Bash est correct et que vous avez les permissions nécessaires
pour effectuer cette modification.
Personnalisation de l’environnement
Le fichier .bashrc
est un script de configuration exécuté à chaque ouverture
d’une nouvelle session de terminal interactif non connecté. Il est l’un des
éléments clés pour personnaliser l’environnement Bash et le rendre plus
efficace et convivial.
Le fichier .bashrc
est généralement situé dans votre répertoire personnel
(~/.bashrc
). Il permet de définir des variables d’environnement, des alias,
des fonctions et des configurations spécifiques pour améliorer votre expérience
utilisateur.
Ajouter des alias pour simplifier les commandes
Les alias sont des raccourcis pour les commandes que vous utilisez
fréquemment. Voici comment ajouter des alias dans votre fichier .bashrc
:
Après avoir ajouté des alias, rechargez le fichier .bashrc
pour appliquer les
changements :
Personnaliser le prompt Bash
Le prompt est la ligne qui apparaît dans votre terminal avant que vous
tapiez une commande. Vous pouvez le personnaliser en modifiant la variable PS1
:
Dans cet exemple :
\u
représente le nom d’utilisateur.\h
représente le nom de l’hôte.\w
représente le répertoire de travail courant.
Pour ajouter des couleurs au prompt, utilisez des codes ANSI :
Ce code colore l’utilisateur et l’hôte en vert et le répertoire en bleu.
Ajouter des fonctions personnalisées
Les fonctions permettent d’automatiser des tâches complexes en regroupant plusieurs commandes. Par exemple, une fonction pour nettoyer un répertoire temporaire peut ressembler à ceci :
Ajoutez cette fonction à votre .bashrc
, puis rechargez-le avec source ~/.bashrc
pour l’utiliser.
Modifier des variables d’environnement
Le fichier .bashrc
permet également de définir des variables
d’environnement pour configurer des comportements spécifiques. Par exemple :
Cette personnalisation via le fichier .bashrc
vous permet de configurer votre
environnement de travail pour mieux répondre à vos besoins, en rendant
l’utilisation de Bash plus intuitive et puissante.
bash-it
Présentation
bash-it est un framework open-source qui simplifie et améliore la personnalisation de Bash. Il offre un ensemble de scripts, d’alias, de plugins, et de thèmes qui rendent l’utilisation de Bash plus puissante et agréable, sans avoir besoin de configurer manuellement chaque élément.
bash-it regroupe et automatise des configurations avancées qui seraient fastidieuses à implémenter individuellement. Grâce à ce framework, vous pouvez rapidement ajouter des alias personnalisés, des complétions de commande, des fonctions, et des thèmes pour embellir et enrichir votre terminal.
bash-it se compose de plusieurs éléments :
- Alias : Raccourcis prédéfinis pour simplifier les commandes courantes.
- Plugins : Modules qui ajoutent des fonctionnalités spécifiques (ex. : support Git, Docker).
- Thèmes : Personnalisation du prompt pour rendre le terminal plus informatif et esthétique.
- Complétions : Améliorations de l’autocomplétion pour des commandes complexes.
Installation et configuration de bash-it
L’installation de bash-it est simple et permet de configurer rapidement un environnement de terminal personnalisé. Voici comment procéder pour installer et configurer bash-it sur votre système.
-
Cloner le dépôt de bash-it : Pour installer bash-it, commencez par cloner le dépôt GitHub dans votre répertoire personnel.
-
Lancer le script d’installation : Exécutez le script d’installation pour initialiser bash-it. Vous pouvez choisir de sauvegarder votre fichier
.bashrc
existant avant qu’il ne soit modifié.Pendant l’installation, vous aurez la possibilité de choisir si vous souhaitez que bash-it modifie automatiquement votre fichier
.bashrc
pour activer les configurations par défaut. -
Activer bash-it : Si vous choisissez de ne pas modifier votre
.bashrc
automatiquement, vous devrez ajouter la ligne suivante manuellement pour activer bash-it : -
Recharger la configuration : Pour appliquer les modifications, rechargez votre fichier
.bashrc
en utilisant la commande :
Configuration de bash-it
bash-it est livré avec de nombreuses fonctionnalités prêtes à l’emploi. Vous pouvez personnaliser votre installation en activant ou désactivant des modules spécifiques.
Activer et gérer les alias
Les alias sont stockés dans des fichiers individuels dans le dossier
~/.bash_it/aliases/enabled
. Pour activer un alias, utilisez la commande :
Cette commande active un fichier d’alias spécifique (par exemple, pour Git) qui facilite l’exécution de commandes courantes.
Activer des plugins
Les plugins ajoutent des fonctionnalités spécifiques à votre terminal. Pour activer un plugin, utilisez la commande suivante :
Cette commande active le plugin Docker, qui fournit des commandes simplifiées et des complétions pour gérer vos conteneurs.
Activer des complétions
Les complétions de commande permettent à Bash de proposer des options lorsque vous commencez à taper une commande. Pour activer une complétion, utilisez :
Cela active la complétion pour les commandes SSH, facilitant la saisie de vos commandes de connexion.
Personnalisation des thèmes
L’un des aspects les plus attrayants de bash-it est la facilité avec laquelle vous pouvez personnaliser l’apparence de votre terminal grâce à une grande variété de thèmes. Ces thèmes permettent de modifier le prompt pour afficher des informations essentielles, telles que l’utilisateur, le nom de la machine, le répertoire courant, l’état de Git, et bien plus encore. Cette personnalisation rend l’environnement plus informatif et agréable à utiliser.
bash-it propose de nombreux thèmes prêts à l’emploi. Pour voir la liste
complète des thèmes disponibles, vous pouvez parcourir le dossier
~/.bash_it/themes
. Chaque sous-dossier contient un fichier .bash
correspondant au thème.
Certains des thèmes les plus populaires incluent powerline, bobby, et pure.
Pour changer de thème, modifiez la variable BASH_IT_THEME
dans votre fichier
.bashrc. Par exemple, pour utiliser le thème powerline :
Ensuite, rechargez votre configuration pour appliquer le nouveau thème :
Adapter le thème à vos besoins
Chaque thème peut être modifié pour inclure ou exclure certaines informations.
Pour personnaliser un thème existant, localisez le fichier .bash
correspondant
dans le répertoire ~/.bash_it/themes
, et apportez les modifications
nécessaires.
Par exemple, pour ajouter une information sur l’état de la batterie à votre prompt, vous pouvez éditer le fichier et ajouter un appel de fonction approprié :
Utilisation de fzf
fzf est un outil de recherche de fichiers en ligne de commande extrêmement
performant et interactif, qui améliore considérablement la navigation dans le
terminal. Voici comment l’installer, l’activer avec bash-it, et configurer
votre .bashrc
pour une utilisation optimale.
Installation de fzf
Pour installer fzf, vous pouvez utiliser le gestionnaire de paquets de votre système ou le cloner directement depuis GitHub.
-
Ubuntu/Debian :
-
Arch Linux :
-
macOS (avec Homebrew) :
Activer le plugin fzf avec bash-it
Si vous utilisez bash-it, l’intégration est encore plus facile grâce au plugin dédié. Pour activer le plugin fzf, utilisez la commande suivante :
Cette commande active le plugin fzf dans votre environnement bash-it et permet d’utiliser des commandes et des raccourcis pratiques liés à fzf.
Ajouter fzf dans le fichier .bashrc
Pour assurer un fonctionnement optimal de fzf, il est recommandé d’ajouter
quelques lignes de configuration à votre fichier .bashrc
. Voici ce que vous
devez inclure :
Recharger la configuration
Après avoir modifié votre fichier .bashrc
, rechargez-le pour appliquer les
changements :
Écriture de scripts Bash
L’écriture de scripts Bash est une compétence essentielle pour automatiser les tâches répétitives et simplifier l’administration des systèmes. Dans ce chapitre, je vais brièvement introduire les concepts de base de l’écriture de scripts Bash et vous renvoyer vers mes guides pour des détails approfondis sur la création et la sécurisation des scripts.
Un script Bash est un fichier contenant une série de commandes qui sont exécutées en séquence. Ces scripts permettent d’automatiser des tâches complexes et de créer des processus reproductibles.
Un script Bash commence par la ligne de shebang, qui indique au système que le fichier doit être exécuté avec Bash :
Cette première ligne #!/usr/bin/env bash
doit être présente au début du
fichier pour que le système sache quel interpréteur utiliser. Ensuite, des
commandes et des instructions sont ajoutées pour former le corps du script.
Dans les scripts Bash, vous pouvez utiliser des variables pour stocker des valeurs et des paramètres pour rendre le script plus flexible.
Ici, $1
représente le premier argument passé au script.
Les structures de contrôle telles que if
, for
, et while
permettent de
contrôler le flux d’exécution du script.
Pour exécuter un script, il doit être rendu exécutable :
Plus loin dans l’écriture de scripts Bash
Pour apprendre à écrire correctement vos scripts et adopter de bonnes pratiques, je vous recommande de consulter mes guides détaillés :
- Guide d’introduction aux scripts Bash : Découvrez les bases de l’écriture de scripts et comment structurer efficacement votre code.
- Guide pour sécuriser les scripts Bash : Apprenez à protéger vos scripts contre les erreurs courantes et les attaques potentielles, en utilisant des techniques telles que la validation des entrées et la gestion des erreurs.
Conclusion
Pour aller encore plus loin dans la personnalisation, envisagez l’intégration d’outils supplémentaires tels que asdf et direnv. asdf est un gestionnaire de versions qui vous permet de gérer facilement plusieurs versions de langages de programmation et d’outils, idéal pour les développeurs travaillant sur des projets variés. direnv est un utilitaire qui charge et décharge automatiquement des variables d’environnement spécifiques en fonction du répertoire courant, rendant la gestion des environnements de développement plus fluide et sans erreur.
Ces outils, combinés à bash-it, permettent de créer un environnement de développement avancé et personnalisé, parfaitement adapté à vos besoins. On arrive presque au même niveau que le shell zsh.