Comment ajouter un répertoire au $PATH
dans Ubuntu et rendre les modifications permanentes?
Comment ajouter un répertoire au $PATH
dans Ubuntu et rendre les modifications permanentes?
Un chemin défini dans .bash_profile
ne sera défini que dans un shell de connexion bash ( bash -l
).
Si vous placez votre chemin dans .profile
, il sera disponible pour votre session de bureau complète. Cela signifie que même la métacité l’utilisera.
Par exemple ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, vous pouvez vérifier la variable PATH d'un processus en regardant son environnement dans /proc/[pid]/environ
(remplacez [pid] par le nombre de ps axf
). Par exemple. utilisez grep -z "^PATH" /proc/[pid]/environ
bash
en tant que shell de connexion n'analyse pas .profile
si .bash_profile
ou .bash_login
existe. De man bash
:
il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cette ordre, et lit et exécute les commandes du premier qui existe et est lisible.
Consultez les réponses ci-dessous pour obtenir des informations sur .pam_environment
ou .bashrc
pour les shells interactifs sans connexion, ou définissez la valeur valeur globale pour tous les utilisateurs en insérant un script dans /etc/profile.d/
ou en utilisant /etc/X11/Xsession.d/
pour affecter la session des gestionnaires d'affichage.
Modifiez .bashrc
dans votre répertoire personnel et ajoutez la ligne suivante:
export PATH="/path/to/dir:$PATH"
Vous devrez vous procurer .bashrc
ou vous déconnecter / connecter (ou redémarrer le terminal) pour que les modifications prennent effet. Pour trouver votre .bashrc
, tapez simplement
$ source ~/.bashrc
L'emplacement recommandé pour définir des variables d'environnement permanentes à l'échelle du système s'appliquant à tous les utilisateurs se trouve dans:
/etc/environment
(où est défini PATH
par défaut)
Cela fonctionnera sur les ordinateurs de bureau ou les consoles, gnome-terminal ou TTY, pluie ou brillance;)
Pour éditer, appuyez sur Alt + F2 et tapez:
gksudo gedit /etc/environment
(ou ouvrez le fichier en utilisant sudo
dans votre éditeur de texte préféré)
Pour effectuer des modifications, exécutez . /etc/environment
. Comme ce fichier n'est qu'un simple script, il s'exécutera et assignera le nouveau chemin à la variable d'environnement PATH
. Pour vérifier l'exécution de env et voir la valeur PATH
dans la liste.
En relation:
Je pense que la manière canonique dans Ubuntu est:
créer un nouveau fichier sous /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
ajoutez-y:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
et donnez-lui l'autorisation d'exécution
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Pour les débutants complets (comme moi) qui sont plus à l’aise avec l’interface graphique:
$HOME
. .profile
et cliquez sur Ouvrir avec l’éditeur de texte . PATH="$PATH:/my/path/foo"
. .profile
). Pour les variables d’environnement persistantes disponibles uniquement pour des utilisateurs particuliers. Je recommande fortement la documentation officielle d'Ubuntu.
En ce qui concerne la documentation ci-dessus, j'ai configuré mes outils de développement de SDK Android en:
~/.pam_environment
dans le répertoire personnel. PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
. Placez cette ligne dans votre fichier ~/.bashrc
.
Il est généré chaque fois que vous ouvrez un terminal
EDIT : en fonction des commentaires ci-dessous, pour un paramètre plus général qui s'appliquera à tous les shells (y compris lorsque vous tapez Alt - F2 dans Unity), ajoutez la ligne à votre fichier ~/.profile
. Vous ne devriez probablement pas faire les deux cependant, car le chemin sera ajouté deux fois à votre environnement PATH
si vous ouvrez un terminal.
Pour définir la taille du système, ajoutez la ligne export PATH=/path/you're/adding:$PATH
à la fin de /etc/profile
.
Pour ajouter le répertoire uniquement à l'utilisateur connecté, ajoutez la même ligne à ~/.bash_profile
.
L'ajouter à .bashrc fonctionnera mais je pense que la manière la plus traditionnelle de configurer vos variables de chemin est dans .bash_profile en ajoutant les lignes suivantes.
PATH=$PATH:/my/path/foo
export PATH
Selon ce thread apparaît comme si le comportement d'Ubuntu était légèrement différent de celui de RedHat et des clones.
sudo vi /etc/profile.d/SCRIPT_NAME.sh
ajoutez-y
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
Dans le terminal, cd
à the_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):${PATH}" >> ~/.bashrc
Ce n'était pas mon idée. J'ai trouvé cette façon d'exporter le chemin à cette blog ici .
Chaque fois que je "installe" mon dossier de scripts BASH, je suis le modèle de test pour un dossier $HOME/bin
qui se trouve dans la plupart des fichiers .profile des versions récentes d'Ubuntu. Je mets un test qui ressemble à
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Cela fonctionne à peu près 100% du temps et me laisse libre de le changer dans un éditeur de texte avec un rapide "Remplacer tout" si je décidais de déplacer /scripts
quelque part plus près de mon dossier $HOME
. Je ne l'ai pas fait dans 6 installations Ubuntu, mais il y a "toujours demain". S
BZT
Ouvrez votre terminal, tapez gedit .profile
et insérez les éléments suivants:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
Fermer et ouvrir le terminal, ça devrait marcher.
La méthode recommandée pour modifier votre PATH
provient du fichier /etc/environment
Exemple de sortie de /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Par exemple, pour ajouter le nouveau chemin d'accès de /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Variables d’environnement à l’échelle du système
Un fichier approprié pour les paramètres de variable d'environnement qui affectent le système dans son ensemble (plutôt qu'un utilisateur particulier) est / etc / environment. Une alternative consiste à créer un fichier à cet effet dans le répertoire /etc/profile.d.
/ etc / environment
Ce fichier est spécifiquement destiné aux paramètres de variable d’environnement du système. Ce n'est pas un fichier de script, mais plutôt des expressions d'affectation, une par ligne.
Remarque: L'expansion des variables ne fonctionne pas dans / etc / environment.
Vous trouverez plus d'informations ici: EnvironmentVariables
Même si les scripts système ne l’utilisent pas,
Dans tous les cas où l'on souhaite ajouter un chemin (par exemple, $HOME/bin
) à la variable d'environnement PATH, il convient d'utiliser
PATH="${PATH:+${PATH}:}$HOME/bin"
pour ajouter (au lieu de PATH="$PATH:$HOME/bin"
),
et
PATH="$HOME/bin${PATH:+:${PATH}}"
pour le préfixage (au lieu de PATH="$HOME/bin:$PATH"
).
Cela évite les deux points de début et de fin intempestifs lorsque $PATH
est initialement vide, ce qui peut avoir des effets indésirables.
Voir par exemple lien
Pour Ubuntu, éditez le ~/.bashrc
et ajoutez la ligne suivante.
. ~/.bash_profile
Ensuite, éditez votre fichier .bash_profile selon vos besoins .....
Lire d'autres questions sur les étiquettes environment-variables