Comment utiliser le fichier .bashrc sous Linux

À un moment donné, vous avez certainement ressenti que votre expérience Linux pourrait bénéficier d’un peu plus de panache. Peut-être avez-vous rencontré des tâches répétitives ou souhaité une interface de ligne de commande plus fluide. Eh bien, devinez quoi ? Votre système détient la clé : le fichier .bashrc, discrètement niché dans votre répertoire personnel !

Plongez dans les aspects fondamentaux du fichier ~/.bashrc dans ce tutoriel pour transformer votre interaction avec votre système Linux. Vous êtes sur la bonne voie, de la personnalisation de votre invite de commande à l’automatisation des tâches et à la configuration de raccourcis personnalisés.

Dites adieu aux tâches banales et bonjour à une expérience Linux plus efficace et agréable !

Prérequis

Avant de manipuler le fichier ~/.bashrc, assurez-vous d’avoir les éléments suivants en place pour suivre le tutoriel:

  • A Linux distribution is installed on your machine – This tutorial uses Ubuntu 20.04 LTS, but any other distribution works.
  • A non-root user with sudo privileges.

Qu’est-ce que le fichier de commandes Bash (.bashrc) dans Linux ?

Imaginez le fichier ~/.bashrc dans Linux comme une boîte à jouets secrète dans votre chambre. Cette boîte à jouets vous donne et configure vos jouets préférés exactement comme vous les aimez lorsque vous ouvrez la boîte.

Mais parce que ~/.bashrc est un fichier secret, il n’apparaît pas lorsque vous exécutez la commande ls. Eh bien, pas à moins que vous ne spécifiiez également de montrer les fichiers cachés, avec le paramètre -la, comme illustré ci-dessous.

ls -la

Ci-dessous, vous pouvez voir le fichier .bashrc répertorié ainsi que d’autres fichiers également cachés.

Listing all files, including hidden ones, in the working directory (home)

Définition d’Alias Personnalisés pour des Exécutions Rapides de Commandes

A short definition wouldn’t cut into realizing the ~/.bashrc file’s role in customizing your Linux experience. So, how does this file work exactly? When you crack open that ~/.bashrc file, one of the powerful tricks it lets you achieve is defining custom aliases for your favorite commands.

Par exemple, au lieu de taper sudo apt-get update pour mettre à jour l’index des paquets locaux de votre système, définissez un alias dans le fichier .bashrc qui fonctionne de la même manière.

? Remarque : Ce tutoriel utilise le compte root pour exécuter des commandes (non recommandé) afin d’illustrer des tâches d’administration, telles que la configuration système. Cependant, pour des raisons de sécurité, assurez-vous d’utiliser un utilisateur non root avec des privilèges sudo lors de l’exécution d’actions similaires sur votre système.

Pour définir des alias pour des commandes, suivez ces étapes :

1. Ouvrez le fichier .bashrc dans votre répertoire personnel (~/) via votre éditeur préféré, comme nano ou vim.

? Si vous utilisez un compte non root, préfixez sudo lorsque vous exécutez des commandes nécessitant des privilèges élevés.

nano ~/.bashrc

2. Ensuite, faites défiler jusqu’au bas du fichier et définissez un alias (par exemple, update) pour votre commande cible (par exemple, sudo apt-get update), comme illustré ci-dessous.

alias update='sudo apt-get update'

Enregistrez les modifications apportées au fichier et fermez l’éditeur.

Defining an alias in the .bashrc file

3. Une fois enregistré, exécutez la commande suivante dans votre terminal pour sourcer le fichier ~/.bashrc. Cette commande ne produit aucune sortie dans le terminal mais applique vos modifications.

source ~/.bashrc

4. Maintenant, exécutez l’alias update que vous avez défini et confirmez que la commande correspondante (sudo apt-get update) est exécutée.

update

La sortie ci-dessous confirme que votre alias update fonctionne comme l’exécution de la commande sudo apt-get update mais avec moins de frappes de touches.

Testing the newly defined alias (update)

Création de fonctions pour une productivité accrue

Définir un alias est insuffisant lorsque vous devez exécuter des opérations complexes de manière répétée. Mais ne vous inquiétez pas ; les fonctions sont là pour proposer une solution là où les alias pourraient rencontrer des difficultés.

Contrairement aux alias qui servent simplement de raccourci pour une seule commande, les fonctions englobent une série complexe de commandes conçues pour effectuer des opérations complexes.

Pour comprendre le fonctionnement d’une fonction, effectuez les étapes suivantes :

1. Dans le fichier ~/.bashrc, ajoutez la fonction ci-dessous appelée manage_package (arbitraire).

Lorsqu’elle est exécutée, cette fonction vérifie si un package donné est installé, et en fonction de cette information, elle met à jour ou installe le package.

Rappelez-vous, cette fonction ne prend qu’un seul argument, qui est le nom du package qui vous intéresse.

manage_package() {
  # Vérifie si le paquet est installé en interrogeant le statut du paquet avec dpkg. 
  # $1 est le paramètre de substitution pour le premier argument passé à la fonction (le nom du paquet).
  # La sortie est redirigée vers /dev/null pour la supprimer dans le terminal.
  # L'instruction if vérifie le code de sortie de la commande dpkg -s. 
  # Si le statut est 0 (le paquet est installé), 
  # procède au premier bloc, mettant à jour le paquet.
  if dpkg -s "$1" &> /dev/null; then
    echo "Package '$1' is already installed. Updating..."
    sudo apt-get update && sudo apt-get install --only-upgrade "$1"
  # Si le paquet n'est pas installé, affiche un message
  # et exécute sudo apt-get install "$1" pour installer le paquet.
  else
    echo "Package '$1' is not installed. Installing..."
    sudo apt-get update && sudo apt-get install "$1"
  fi
}

2. Avec la fonction ajoutée, enregistrez les modifications, fermez l’éditeur, puis source le fichier ~/.bashrc pour appliquer les modifications.

source ~/.bashrc

3. Une fois sourcé, appelez la fonction (manage_package), suivi du nom-du-paquet que vous souhaitez vérifier, mettre à jour ou installer dans votre terminal, comme indiqué ci-dessous.

Le paquet choisi dans ce tutoriel est NGINX, mais assurez-vous de substituer nom-du-paquet par le nom de votre paquet préféré.

manage_package package-name

Comme vous pouvez le voir dans la sortie, des fonctions comme celle-ci rendent la gestion des paquets très facile en effectuant le gros du travail pour vous. Ils déterminent automatiquement si le paquet que vous voulez est là, donc vous n’avez pas à le faire.

Executing the newly defined function

Personnalisation de votre terminal Linux et de l’invite de commande (PS1)

Pensez à votre terminal Linux comme à un espace de travail personnel. Personnaliser votre terminal le transforme en un environnement visuellement plus attrayant et informatif.

Lorsque vous améliorez votre terminal Linux, tout est possible. Vous pouvez agrémenter votre terminal d’un message de bienvenue sympa ou modifier votre invite de commande pour lui donner une touche supplémentaire.

Pour personnaliser votre terminal Linux, procédez comme suit:

1. Ajoutez la ligne suivante en bas de votre fichier ~/.bashrc. Cette ligne affiche un message de bienvenue à chaque fois que vous démarrez une session terminal.

echo "Welcome to your terminal, $USER!

2. Ensuite, modifiez la variable d’environnement de la chaîne de texte d’invite 1 (PS1) si elle existe, ou ajoutez la ligne ci-dessous à votre fichier ~/.bashrc. La variable PS1 contrôle précisément la chaîne d’invite principale, qui est l’invite principale affichée (c’est-à-dire utilisateur@linux:~#) lorsque le shell est prêt à accepter des commandes.

Modifier la variable PS1 vous permet de changer l’apparence de votre invite de commande, y compris sa couleur, son format et les informations affichées. L’expression suivante:

  • Rend le nom d’utilisateur (\u) et le nom d’hôte (\h) en vert vif (32m).
  • Fait en sorte que le répertoire de travail actuel (\w) apparaisse en bleu vif (34m).
  • Réinitialise les attributs de couleur à la couleur par défaut (généralement blanche) (\[\033[00m\]) pour le texte qui suit l’invite. Cette réinitialisation garantit que le reste du texte de votre terminal reste inchangé.
PS1='\[\033[01;32m\]\u@\h:\[\033[01;34m\]\w\$ \[\033[00m\]'

3. Ensuite, enregistrez et fermez le fichier, puis source votre fichier ~/.bashrc pour appliquer les modifications.

source ~/.bashrc

Remarquez ci-dessous que le message de bienvenue apparaît immédiatement après la source, et votre invite de terminal change d’apparence comme vous l’avez défini.

Applying the shell prompt changes

Lancement de vos scripts : Pas de chemin ? Pas de problème !

Améliorer votre système pour reconnaître des répertoires supplémentaires pour les commandes exécutables peut rationaliser votre flux de travail. Prenez l’exemple de l’exécution de scripts, par exemple, plus de lutte avec de longs chemins, juste de la pure commodité.

Pour lancer vos scripts sans mémoriser chaque chemin, suivez les étapes ci-dessous :

1. Exécutez la commande suivante pour créer un répertoire (mkdir) appelé ~/scripts (arbitraire)) dédié au stockage de vos scripts.

mkdir -p ~/scripts

2. Ensuite, ouvrez le fichier ~/.bashrc et ajoutez la ligne suivante à la fin, qui modifie le chemin de recherche des commandes du système. Cette ligne ajoute le répertoire ~/scripts à votre variable PATH existante.

Ce comportement garantit que le shell donne la priorité à vos scripts par rapport aux autres exécutables portant des noms identiques ailleurs dans le PATH du système.

export PATH="$HOME/scripts:$PATH"

3. Enregistrez et fermez le fichier, puis sourcez-le pour appliquer les modifications sans redémarrer le terminal.

source ~/.bashrc

4. Ensuite, exécutez chaque commande ci-dessous pour créer un script appelé testscript (arbitraire) dans votre répertoire ~/scripts.

Ces commandes n’ont pas de sortie, mais ce script est rendu exécutable (chmod), ce qui affiche un message (echo) dans le terminal.

# Créez un nouveau script Bash appelé 'testscript' dans le répertoire ~/scripts
echo '#!/bin/bash' > ~/scripts/testscript

# Ajoutez une ligne au 'testscript' qui affiche "Le script est en cours d'exécution!" lorsqu'il est exécuté
echo 'echo "Script is running!"' >> ~/scripts/testscript

# Rendez le 'testscript' exécutable en modifiant ses autorisations
chmod +x ~/scripts/testscript

5. Enfin, exécutez votre script (testscript) en appelant son nom dans le terminal.

Le système exécute votre script à partir de votre répertoire dédié ~/scripts quel que soit votre répertoire de travail dans le terminal.

testscript

La sortie ci-dessous confirme que votre script et le chemin de recherche de commande modifié du système fonctionnent comme prévu.

Executing the new script to confirm it’s functioning as expected

Conclusion

Dans le monde du fichier ~/.bashrc, vous avez parcouru les fondamentaux de son rôle et comment fonctionne la personnalisation des alias de commande et des fonctions. Même personnaliser l’apparence de votre terminal Linux est désormais à portée de main.

Outre l’aspect, vous avez débloqué la commodité d’exécuter des scripts sans spécifier leurs chemins complets à chaque fois en étendant la variable d’environnement PATH. Ces modifications permettent de gagner du temps et améliorent l’interface utilisateur, rendant votre interaction avec Linux plus efficace et plus agréable en même temps.

Alors que vous terminez ce chapitre sur le fichier ~/.bashrc, rappelez-vous que l’essence même de Linux réside dans sa flexibilité et le contrôle qu’il vous offre. Le voyage continue, alors pourquoi ne pas avoir soif d’une expérience sur mesure en explorant les améliorations de ZSH?

Plongez dans l’océan de thèmes et de plugins que ZSH et des frameworks comme Oh My Zsh fournissent. Regardez votre terminal se transformer en un espace de travail plus productif et visuellement attrayant!

Source:
https://adamtheautomator.com/bashrc/