Comment ajouter un répertoire à PATH sous Linux

How Add Directory Path Linux



PATH est une variable prédéfinie dans un shell Linux. Il se compose de répertoires avec leurs chemins de répertoire, en commençant par la racine. PATH est une liste séparée par des deux-points. Chaque répertoire avec son chemin est séparé du répertoire précédent avec son chemin par un deux-points. Le shell recherche les commandes dans ces répertoires.

Les commandes ne sont pas seulement des commandes du système d'exploitation du disque. Le chemin est une liste de répertoires dans lesquels le shell recherche les commandes du système d'exploitation et d'autres commandes. Les commandes sont comme de courts fichiers de programme. Ainsi, les commandes sont des exécutables. Chaque application installée sur l'ordinateur est livrée avec un fichier exécutable. Afin d'exécuter l'application, le fichier exécutable est engagé en premier. Ces fichiers exécutables sont également appelés commandes.







Sans la variable PATH, chaque commande serait commandée avec le chemin absolu, comme dans,



/home/john/dir1/dir2/command.exe



où le premier / est le répertoire racine ; john est le répertoire utilisateur de l'utilisateur, John ; dir1 et dir2 sont des sous-répertoires ; et command.exe est le nom du fichier exécutable.





De nombreux autres noms sont possibles pour le fichier exécutable. En fait, command.exe est symbolique, ici. Donc, si le répertoire, /home/john/dir1/dir2 (sans le fichier), est dans la variable PATH, l'utilisateur john, exécutera command.exe à l'invite, [email protected] :~$ en tapant simplement, command.exe, sans le chemin précédent. C'est-à-dire:

[email protégé] :~$command.exe

puis en appuyant sur Entrée.

Pour voir la liste actuelle des répertoires PATH sur l'ordinateur, tapez :

$chassèrent $CHEMIN

et appuyez sur Entrée, sur le terminal. Le résultat serait quelque chose comme,

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

La question est maintenant : comment un répertoire (et son chemin précédent) est-il ajouté à la variable PATH ? Avec certaines installations, le répertoire est ajouté automatiquement. Avec d'autres, il doit être ajouté manuellement. Cet article explique les deux principales façons dont le répertoire est ajouté. Le répertoire n'est pas ajouté (inclus) comme il le serait pour un tableau. Les deux méthodes principales sont appelées ajout temporaire et ajout permanent. Bash est le shell utilisé pour les exemples de code dans cet article.

Contenu de l'article

Ajout temporaire

L'ajout temporaire signifie que l'ajout n'a lieu qu'en mémoire. Il n'est pas enregistré pour être utilisé lors du redémarrage de l'ordinateur.

La commande d'exportation intégrée de Bourne Shell

En termes simples, la commande d'exportation est :

$exportation [Nom[=valeur]]

Dans ce cas, il réaffecte une valeur à une variable en mémoire.

La variable PATH en mémoire peut déjà avoir une valeur comme,

CHEMIN=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Supposons que le répertoire à ajouter soit /home/john/dir1/dir2. Si la commande d'exportation est tapée comme,

$exportation CHEMIN=/domicile/John/dir1/dir2

alors /home/john/dir1/dir2 remplacerait tout ce qui est déjà en mémoire comme valeur pour la variable PATH.

Si la commande d'exportation est tapée comme,

$exportation CHEMIN=$CHEMIN:/domicile/John/dir1/dir2

Ensuite, /home/john/dir1/dir2 s'attacherait à la fin de ce qui est déjà dans la variable. Ainsi, la nouvelle variable serait :

CHEMIN=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/ accueil/jean/dir1/dir2

Notez que dans la ligne de code précédente ci-dessus, la partie de la valeur qui est déjà là est séparée de la nouvelle partie par un deux-points, qui est ':'. $PATH dans la ligne de code, se développe (est remplacé) par la valeur de PATH déjà en mémoire.

Désormais, la même commande peut se trouver dans plusieurs répertoires. Lorsqu'une commande exécutable est saisie sans le chemin précédent à l'invite, le shell commence à rechercher la valeur (chaîne) de la variable PATH en mémoire, de gauche à droite. Ainsi, avec la ligne de code ci-dessus, /home/john/dir1/dir2 arriverait enfin dans la recherche. Qui veut que son annuaire arrive en dernier ? - Personne. Ainsi, une meilleure façon d'inclure (ajouter) le répertoire est la suivante :

$exportation CHEMIN=/domicile/John/dir1/dir2 :$CHEMIN

/home/john/dir1/dir2 est maintenant au début, séparé du répertoire suivant, par deux points. Donc, avec une invite de [email protected] :~$,

[email protégé] :~$exportation CHEMIN=/domicile/John/dir1/dir2 :$CHEMIN

après avoir tapé et appuyé sur Entrée, la commande command.exe dans le répertoire dir2 serait exécutée avec :

[email protégé] :~$command.exe

Tant que l'ordinateur n'est pas éteint, l'utilisateur continuera à exécuter command.exe sans taper le chemin précédent.

Lorsque l'ordinateur est éteint, tout ce qui se trouve dans la mémoire à accès aléatoire est effacé. La mauvaise nouvelle est que l'utilisateur de l'ordinateur devra répéter ce processus d'ajout de son répertoire à la variable PATH à chaque redémarrage de l'ordinateur. Personne ne veut faire ça aujourd'hui. Ainsi, l'approche d'ajout permanent est l'approche recommandée. C'est-à-dire que l'ajout à PATH doit être enregistré (sur le disque dur).

Ajout permanent

À partir de la discussion ci-dessus, l'idée est de sauvegarder la modification apportée (sur le disque dur). Donc, si la modification est enregistrée dans un fichier que le shell lit à chaque démarrage de l'ordinateur, ce serait bien. C'est-à-dire qu'à chaque démarrage de l'ordinateur, la variable PATH en mémoire sera mise à jour de manière appropriée. Lorsqu'un ordinateur démarre, au démarrage, il lit certains fichiers. L'un des fichiers que le shell Bash pour Linux lit est ~/.bashrc . Le nom du fichier est . bashrc , en commençant par le point. Il est dans le répertoire de l'utilisateur.

Bash n'est qu'un shell, probablement le shell le plus populaire pour Linux, aujourd'hui. Un autre shell pour Linux est Zsh. Avec Zsh, le fichier correspondant est ~/. zshrc , toujours dans le répertoire de l'utilisateur. Lorsque le shell démarre, au démarrage, il lit ce fichier. Pour Bash, le fichier est ~/.bashrc . Ainsi, si le code d'ajout ci-dessus est tapé dans le fichier ~/.bashrc, le répertoire sera toujours en mémoire, car ~/.bashrc l'inclura toujours dans PATH, à chaque démarrage de l'ordinateur. Il reste en mémoire jusqu'à l'arrêt de l'ordinateur.

Dans Bash, ~/.bashrc est un fichier caché, donc l'utilisation ordinaire de la commande, ls ne l'affichera pas. ~/.bashrc contient des commandes Bash (shell). Ubuntu est une variante de Linux. Ubuntu est livré avec un éditeur de texte. Dans l'ordinateur de l'auteur, l'arrière-plan de l'éditeur de texte Ubuntu est noir.

La commande d'ajout ci-dessus (sans l'invite) doit être incluse dans le fichier ~/.bashrc. Il est bon de l'ajouter à la fin du fichier afin de ne pas tempérer son contenu disponible, cela fonctionne probablement bien.

Pour ouvrir ~/.bashrc dans Ubuntu, tapez ce qui suit à l'invite de commande du terminal et appuyez sur Entrée :

$nano~/.bashrc

Où nano est l'éditeur de texte. Ici, nano est une commande (exécutable), dont l'argument est ~/.bashrc . Le contenu du fichier doit s'ouvrir dans l'éditeur de texte pour se superposer à la fenêtre du terminal.

Le fichier ~/.bashrc s'ouvrira dans l'éditeur de texte, probablement avec un fond noir. Le curseur clignotera dans le coin supérieur gauche.

Appuyez sur la flèche vers le bas du clavier en continu jusqu'à ce que le curseur atteigne la fin du fichier. Ajouter une nouvelle ligne de,

$exportation CHEMIN=/domicile/John/dir1/dir2 :$CHEMIN

Ce n'est pas tout. La modification du fichier ~/.bashrc n'a pas été enregistrée. Pour enregistrer le fichier avec la modification apportée, appuyez sur Ctrl+o et suivez les autres instructions qui s'affichent. Pour quitter l'éditeur de texte, appuyez sur Ctrl+x et la fenêtre de terminal normale devrait remplacer la fenêtre de l'éditeur de texte. D'autres commandes shell peuvent alors être émises.

Si echo $PATH est émis, le nouveau répertoire ne sera pas visible à l'écran. Il y a deux façons de continuer à partir d'ici : soit redémarrer l'ordinateur, soit récupérer le nouveau contenu du fichier ~/.bashrc en mémoire avec la commande source. Il est simple d'utiliser la commande source, comme suit :

$la source~/.bashrc

Si la commande source est émise sans redémarrage, echo $PATH affichera le nouveau répertoire ajouté dans le résultat (affichage). La commande d'intérêt peut alors être saisie sans le chemin précédent.

Noter: Ne pas confondre entre la fin de la valeur PATH (liste) et la fin du fichier ~/.bashrc. Aussi, ne confondez pas entre un répertoire dans PATH en mémoire, et un fichier exécutable dans le répertoire du disque dur.

Conclusion

PATH est une variable intégrée dans les shells Linux. La valeur de PATH est une liste de répertoires séparés par des deux-points. Il existe une commande (fichier exécutable) sur le disque dur pour chacun de ces répertoires. Si une commande est émise lors de la vente sans la faire précéder d'un chemin, le shell recherchera la commande dans ces répertoires. S'il ne voit la commande dans aucun des répertoires, la commande ne sera pas exécutée. Dans ce cas, pour exécuter la commande, la commande doit être précédée de son chemin. La commande peut se trouver dans plusieurs répertoires dans la valeur PATH. Dès que le shell voit le premier répertoire contenant la commande, il exécute la commande. La valeur PATH est en fait une chaîne composée de répertoires séparés par des deux-points.

Le problème est de savoir comment ajouter le répertoire de l'exécutable d'une nouvelle application dans PATH. Dans certains cas, cela est fait automatiquement par le programme d'installation de la nouvelle application. Dans d'autres cas, cela doit être fait manuellement. Il existe deux manières de le faire manuellement, appelées : ajout temporaire et ajout permanent. L'ajout temporaire utilise la commande d'exportation et ajoute simplement le répertoire pendant que l'ordinateur est allumé. L'ajout permanent doit enregistrer la ligne de commande d'exportation dans le fichier d'initialisation ~/.bashrc (Bash) pour les opérations futures.