Dans certaines situations, vous pouvez souhaiter ajouter d’autres répertoires à la variable $PATH. Par exemple, certains programmes peuvent être installés à différents endroits, ou vous pouvez souhaiter disposer d’un répertoire dédié à vos scripts personnels, mais être en mesure de les exécuter sans spécifier le chemin absolu vers les fichiers exécutables.
Ce tutoriel montre comment ajouter des répertoires à votre $PATH sous Linux.
Table des matières
Qu’est-ce que le PATH sous Linux
La variable d’environnement $PATH est une liste de répertoires délimitée par deux points qui indique à l’interpréteur de commandes les répertoires dans lesquels il doit rechercher les fichiers exécutables.
Lorsque vous tapez une commande sur la ligne de commande, vous demandez à l’interpréteur de commandes d’exécuter un fichier exécutable portant le nom donné.
Sous Linux, ces programmes exécutables, tels que ls, find, file et d’autres, se trouvent généralement dans différents répertoires de votre système. Tout fichier avec des permissions d’exécution stocké dans ces répertoires peut être exécuté à partir de n’importe quel endroit. Les répertoires les plus courants contenant des programmes exécutables sont /bin, /sbin, /usr/sbin, /usr/local/bin et /usr/local/sbin.
Mais comment l’interpréteur de commandes sait-il dans quels répertoires rechercher les programmes exécutables ? L’interpréteur de commandes recherche-t-il dans l’ensemble du système de fichiers ?
La réponse est simple. Lorsque vous tapez une commande, l’interpréteur de commandes recherche un fichier exécutable de ce nom dans tous les répertoires spécifiés dans la variable $PATH de l’utilisateur.
Comment ajouter un chemin au PATH Linux
Dans certaines situations, vous pouvez souhaiter ajouter d’autres répertoires à la variable $PATH.
Par exemple, certains programmes peuvent être installés à différents endroits, ou vous pouvez souhaiter disposer d’un répertoire dédié à vos scripts personnels, mais être en mesure de les exécuter sans spécifier le chemin absolu vers les fichiers exécutables. Pour ce faire, il vous suffit d’ajouter le répertoire à votre $PATH.
Modifier le PATH temporaire
Supposons que vous ayez un répertoire appelé bin, situé dans votre répertoire Home, soit donc dans lequel vous conservez vos scripts shell. Pour ajouter ce répertoire à votre $PATH, tapez :
export PATH="$HOME/bin:$PATH"
La commande export exporte la variable modifiée vers les environnements des processus enfants de l’interpréteur de commandes.
Vous pouvez désormais exécuter vos scripts en tapant le nom du script exécutable sans avoir à spécifier le chemin d’accès complet au fichier.
Toutefois, cette modification n’est que temporaire et n’est valable que dans la session actuelle de l’interpréteur de commandes.
Modifier le PATH définitivement
Pour rendre la modification permanente, vous devez définir la variable $PATH dans les fichiers de configuration de l’interpréteur de commandes. Dans la plupart des distributions Linux, lorsque vous démarrez une nouvelle session, les variables d’environnement sont lues à partir des fichiers suivants :
- Fichiers de configuration globale spécifiques à l’interpréteur de commandes, tels que /etc/environment et /etc/profile. Utilisez ce fichier si vous souhaitez que le nouveau répertoire soit ajouté au $PATH de tous les utilisateurs du système.
- Fichiers de configuration spécifiques à l’interpréteur de commandes pour chaque utilisateur. Par exemple, si vous utilisez Bash, vous pouvez définir la variable $PATH dans le fichier ~/.bashrc. Si vous utilisez Zsh, le nom du fichier est ~/.zshrc.
Dans cet exemple, nous allons définir la variable dans le fichier ~/.bashrc.
- Ouvrez le fichier avec votre texte
nano ~/.bashrc
- Modifiez la ligne suivante :
export PATH="$HOME/bin:$PATH"
- Enregistrez le fichier et chargez le nouveau $PATH dans la session shell en cours à l’aide de la commande source :
source ~/.bashrc
- Pour confirmer que le répertoire a été ajouté avec succès, imprimez la valeur de votre $PATH en tapant :
echo $PATH
Comment afficher le contenu du PATH Linux
Pour vérifier quels répertoires se trouvent dans votre $PATH, vous pouvez utiliser la commande printenv ou echo :
echo $PATH
Le résultat ressemblera à ceci :
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Comme indiqué, vous pouvez aussi utiliser la commande printenv qui donne le même résultat :
printenv $PATH