Cours Linux : Le $PATH

I. Généralités, qu’est-ce que le $PATH ?
Cette erreur arrive assez souvent, vous tapez une commande et vous avez un command not foud . C’est le cas pour les jeux en root par exemple. Pourquoi ?

Je vous invite à taper echo $PATH dans votre terminal. Vous obtenez une liste de répertoires. Par exemple chez moi :

/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

A quoi ça sert ? C’est simple, en fait quand vous tapez une commande du genre frozen-bubble , le terminal va parcourir tous les répertoires présents dans le $PATH dans l’ordre afin de voir si il ne trouve pas un executable du nom que vous avez appelé précédemment.

Dans mon cas, je tape frozen-bubble , il va donc chercher si il ne trouve pas /usr/local/bin/frozen-bubble , si il ne trouve pas, il va regarder dans /usr/bin/frozen-bubble , etc…
Le dernier répertoire contenu dans mon $PATH est le répertoire /usr/games , il va donc regarder si il trouve /usr/games/frozen-bubble . /usr/games/ étant le répertoire par défaut des jeux, il va bien trouver l’executable /usr/games/frozen-bubble et me lancer mon jeu favori 🙂

II. Cas pratique, comment changer les dossiers par défaut ?

Le problème que j’avais était que je ne pouvais pas lancer mon jeu (asciijump) directement depuis le compte root (à moins bien sur de taper l’adresse complète de l’exécutable (/usr/games/asciijump)). Je regarde donc ce que contient le $PATH root : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11

Je me rend compte que le dossier /usr/games n’est pas présent. Voici donc comment l’ajouter !

Il y a deux solutions :

  • Soit vous ajoutez un ou plusieurs répertoires pour un utilisateur donné

    • Soit vous ajoutez un ou plusieurs répertoires pour tous les utilisateurs
      Je vous recommande la première solution bien évidemment.

    Comment faire :

    Pour modifier le $PATH pour un utilisateur donné , éditez le fichier de configuration de votre terminal de votre compte. Normalement, le fichier de configuration pour un utilisateur est /home/utilisateur/.bashrc et celui du root est /root/.bashrc .
    Dans notre exemple, je veux ajouter le dossier /usr/games dans le $PATH du root. J’ajoute donc cette ligne dans /root/.bashrc :

    PATH=$PATH:/usr/games

    Pour modifier le $PATH pour tous les utilisateurs , ajoutez la même ligne dans le fichier de configuration général de votre terminal qui doit se trouver ici : /etc/bash.bashrc .

    Voila, désormais vous pouvez lancer votre jeu favoris depuis l’utilisateur root (Je sais, aucun intérêt mais c’est pour donner un exemple quoi 🙂 )