La variable PATH est toujours réinitialisée. Comment y remédier?


9

Il y a peu de temps, j'ai découvert que je pouvais créer des terminaux de commande personnalisés en développant la variable PATH. Malheureusement, il est toujours réinitialisé lorsque je ferme le terminal et l'ouvre à nouveau.

Savez-vous comment résoudre ce problème?

Parce que quand je veux démarrer quelques scripts avec des commandes de terminal, je ne veux pas étendre la variable PATH à chaque fois avant ...


1
Mettez-le dans votre .bashrc?
gniourf_gniourf

Comment faire ça? Je suis nouveau sur Linux;)
Jenne

2
ouvrez votre .bashrcfichier comme ceci: gedit ~/.bashrcet mettez-y tout ce que vous voulez (en bas du fichier c'est mieux), par exemple, PATH="~/my/cool/path/:$PATH"et exportez cette variable: après la ligne que vous venez de saisir, placez export PATHpuis enregistrez le fichier, puis fermez votre terminal et rouvrez et maintenant vos exécutables ~/my/cool/pathseront trouvés.
gniourf_gniourf

Je l'ai écrit comme une réponse complète pour vous ...:)
gniourf_gniourf

Réponses:


15

Je comprends que vous avez des exécutables dans l'un de vos dossiers de départ, par exemple, dans ~/binet que vous souhaitez pouvoir les exécuter sans toujours taper le chemin complet ~/bin/my_cool_executable.

Vous avez déjà remarqué que l'entrée PATH=~/bin:$PATHdans votre terminal faisait marcher les choses ... mais seulement jusqu'à ce que vous fermiez le terminal. Lorsque vous en ouvrez une nouvelle, votre ancienne PATHvariable est réinitialisée à sa valeur d'origine. Soit dit en passant, je suppose que vous savez à tout moment vérifier la valeur de la PATHvariable: comme ceci:

echo "$PATH"

Comment rendre votre changement permanent afin que vous PATHrestiez le même lorsque vous rouvrez un nouveau terminal? C'est très simple, il vous suffit de modifier votre .bashrcfichier. Utilisons l' geditéditeur: dans un terminal, tapez ceci:

gedit ~/.bashrc

Cela ouvre l' geditéditeur. Faites défiler jusqu'à la fin du fichier et ajoutez ceci:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

et enregistrez le fichier et quittez gedit. Fermez ensuite votre terminal et ouvrez-en un nouveau. Maintenant, votre PATHvariable devrait avoir ~/bindevant elle afin que vos commandes ~/binsoient accessibles sans taper leur chemin complet. Et vous savez comment vérifier que: echo "$PATH".

Prendre plaisir!

Attention . Il est considéré comme une mauvaise pratique et une vulnérabilité de sécurité de mettre .dans votre PATHvariable.


Donc, c'était vraiment sympa, mais maintenant je ne peux pas démarrer les programmes, quand je suis root. Savez-vous pourquoi et comment y remédier? :)
Jenne

Dans ce cas, une option est de mettre vos programmes au /usr/local/binlieu de jouer avec la PATHvariable ... ou /usr/local/sbinsi ils ne doivent être accessibles que par root.
gniourf_gniourf

Certains doivent être exécutés en tant que root et d'autres non. Ce serait donc bien, si cela n'avait pas d'importance et qu'ils pourraient être dans un répertoire personnalisé. Alors est-il capable de faire ça? :)
Jenne
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.