J'essaie d'ajouter un répertoire à mon chemin afin qu'il soit toujours dans mon chemin Linux. J'ai essayé:
export PATH=$PATH:/path/to/dir
Cela fonctionne. Cependant, chaque fois que je quitte le terminal et démarre une nouvelle instance de terminal, ce chemin est perdu et je dois exécuter la commande d'exportation à nouveau.
Comment puis-je le faire pour que cela soit réglé de manière permanente?
Vous devez l'ajouter à votre fichier ~/.profile
ou ~/.bashrc
.
export PATH="$PATH:/path/to/dir"
Selon ce que vous faites, vous pouvez également souhaiter créer un lien symbolique vers des fichiers binaires:
cd /usr/bin
Sudo ln -s /path/to/binary binary-name
Notez que cela ne mettra pas automatiquement à jour votre chemin pour le reste de la session. Pour ce faire, vous devez exécuter:
source ~/.profile
or
source ~/.bashrc
Dans Ubuntu, éditez /etc/environment
. Son seul but est de stocker des variables d'environnement. A l'origine, la variable $ PATH est définie ici . Il s'agit d'un collage de mon fichier /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Donc, vous pouvez simplement ouvrir ce fichier en tant que root et ajouter ce que vous voulez.
Pour les résultats immédiats, exécutez (essayez en tant qu'utilisateur normal et root):
source /etc/environment && export PATH
METTRE À JOUR:
Si vous utilisez zsh
(a.k.a shell Z), ajoutez cette ligne juste après les commentaires dans /etc/zsh/zshenv
:
source /etc/environment
J'ai rencontré ce petit problème sur Ubuntu 15.10, mais si votre zsh n'obtient pas le cheminCHEMINcorrect, c'est peut-être pour ça
Il y a plusieurs façons de le faire. La solution dépend du but recherché.
Les valeurs de variable sont généralement stockées dans une liste d'assignations ou dans un script Shell exécuté au démarrage de la session système ou utilisateur. Dans le cas du script Shell, vous devez utiliser une syntaxe spécifique.
/etc/environment
Liste des assignations uniques. Parfait pour ajouter des répertoires système tels que /usr/local/something/bin
à la variable PATH
ou pour définir Java_HOME
./etc/xprofile
Script shell exécuté lors du démarrage de la session système X Window. Ceci est exécuté pour chaque utilisateur qui se connecte au système X Window. C'est un bon choix pour les entrées PATH
qui sont valides pour tous les utilisateurs, comme /usr/local/something/bin
. Le fichier est inclus par un autre script, utilisez donc la syntaxe POSIX Shell et non la syntaxe de votre utilisateur Shell./etc/profile
et /etc/profile.d/*
Script shell. C'est un bon choix pour les systèmes Shell uniquement. Ces fichiers ne sont lus que par des shells./etc/<Shell>.<Shell>rc
. Script shell. C'est un mauvais choix, car il s'agit d'un seul shell.~/.pam_environment
. Liste des assignations uniques. Chargé par PAM au début de chaque session utilisateur, qu'il s'agisse d'une session système X Window ou d'un shell. Vous ne pouvez pas faire référence à une autre variable, y compris HOME
ou PATH
, son utilisation est donc limitée.~/.xprofile
Script shell. Ceci est exécuté lorsque l'utilisateur se connecte au système X Window. Les variables définies ici sont visibles pour chaque application X. Choix idéal pour étendre PATH
avec des valeurs telles que ~/bin
ou ~/go/bin
ou pour définir une GOPATH
ou NPM_HOME
spécifique à l'utilisateur. Le fichier est inclus par un autre script, utilisez donc la syntaxe POSIX Shell et non la syntaxe de votre utilisateur Shell. Votre éditeur de texte graphique ou IDE démarré par raccourci verra ces valeurs.~/.profile
Script shell. Il ne sera visible que pour les programmes lancés à partir d'un terminal ou d'un émulateur de terminal. C'est un bon choix pour les systèmes exclusivement Shell.~/.<Shell>rc
. Script shell. C'est un mauvais choix, car il s'agit d'un seul shell.Placez la déclaration export
dans ~/.bashrc
. Mon .bashrc contient ceci:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
Vous pouvez définir $PATH
de manière permanente de 2 manières.
Pour définir le chemin d'accès d'un utilisateur particulier: Vous devrez peut-être saisir l'entrée dans .bash_profile
dans le répertoire de base de l'utilisateur.
par exemple, dans mon cas, je définirai le chemin Java dans le profil utilisateur Tomcat
[Tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/Tomcat/.bash_profile
Pour définir un chemin commun pour TOUS les utilisateurs du système, vous devrez peut-être définir un chemin comme suit:
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
Vous pouvez utiliser sur Centos ou RHEL pour un utilisateur local:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
Cela ajoute le répertoire actuel (ou vous pouvez utiliser un autre répertoire) au PATH, cela le rend permanent mais prend effet à la prochaine connexion de l'utilisateur.
Si vous ne souhaitez pas vous reconnecter, vous pouvez utiliser:
source ~/.bash_profile
Pour recharger le # User specific environment and startup programs
ce commentaire est présent dans le .bash_profile
Vous pouvez ajouter cette ligne à votre fichier de configuration de la console (par exemple .bashrc) ou à .profile
Je pense que la manière la plus élégante est:
1.ajouter ceci dans le fichier ~/.bashrc Exécuter cette commande
gedit ~/.bashrc
ajoutez votre chemin à l'intérieur
export PATH = $ PATH:/opt/node/bin
2.source ~/.bashrc
(Ubuntu)
Vous pouvez également définir de manière permanente, en modifiant l'un de ces fichiers:
/etc/profile
(pour tous les utilisateurs)
~/.bash_profile
(pour l'utilisateur actuel)
~/.bash_login
(pour l'utilisateur actuel)
~/.profile
(pour l'utilisateur actuel)
Vous pouvez également utiliser /etc/environment
pour définir une variable d'environnement PATH permanente, mais il ne prend pas en charge le développement de variable.
Extrait de: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Hier, je suis tombé sur cette question en cherchant un moyen d'ajouter un dossier contenant mes propres scripts à PATH - et j'ai été surpris de découvrir que mon propre fichier ~/.profile
(sous Linux Mint 18.1) contenait déjà ceci:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Ainsi, tout ce que j'avais à faire était de créer le dossier ~/bin
et d'y placer mes scripts.
les fichiers dans lesquels vous ajoutez la commande d'exportation dépendent du mode de connexion utilisé ou non.
si vous êtes en mode connexion, les fichiers que vous recherchez sont soit/etc/bash ou /etc/bash.bashrc
si vous êtes en mode non-connexion, vous recherchez le fichier /.profile ou les fichiers du répertoire /.profiles.d
les fichiers mentionnés ci-dessus si les variables système sont.
Zues77 a la bonne idée. L'OP n'a pas dit "Comment puis-je me frayer un chemin à travers ça". OP voulait savoir comment ajouter en permanence à $ PATH:
Sudo nano /etc/profile
C’est là que tout est prévu et c’est le meilleur endroit pour le changer pour tout ce qui nécessite $ PATH.
Ma réponse fait référence à la configuration de go-lang
sur Ubuntu linux/AMD64
. J'ai eu le même problème pour définir le chemin des variables d'environnement (GOPATH
et GOBIN
), le perdre à la sortie du terminal et le reconstruire à l'aide du source <file_name>
à chaque fois. L'erreur était de mettre le chemin (GOPATH
et GOBIN
) dans le dossier ~/.bash_profile
. Après avoir perdu quelques bonnes heures, j’ai trouvé que la solution consistait à placer GOPATH
et GOBIN
dans le fichier ~/.bash_rc
de la manière suivante:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
et ce faisant, l’installation go a bien fonctionné et il n’ya eu aucune perte de chemin.
EDIT 1: La raison pour laquelle ce problème peut être lié est que les paramètres pour les shells non connectés comme votre terminal ubuntu ou gnome-terminal où nous exécutons le code aller sont extraits du fichier ~./bash_rc
et que les paramètres pour les shells de connexion sont utilisés. à partir du fichier ~/.bash_profile
et du fichier ~/.profile
si le fichier ~/.bash_profile
est inaccessible.
Ajoutez à /etc/profile.d
le dossier script [name_of_script].sh
avec la ligne: export PATH=$PATH:/dir
. Chaque script dans le dossier /etc/profile.d
est automatiquement exécuté par /etc/profile
lors de la connexion.
Ajouter définitivement la variable PATH
Global:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
Local (pour utilisateur seulement):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
Pour global restart. Pour local relogin.
Exemple
Avant:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
Après:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Sinon, vous pouvez simplement modifier le profil:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Une autre façon (merci gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profile
Vous ne devriez pas utiliser de guillemets doubles ici! echo 'export PATH = $ PATH:/new/path/variable '... Et d'ailleurs, le mot clé export est très probablement inutile car la variable PATH est déjà très probable marqué comme exporté. - gniourf_gniourf
Je pense que la manière la plus élégante est:
1.ajouter ceci dans ~./Bashrc fichier
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.source ~/.bashrc
(Ubuntu)
le meilleur moyen simple est la ligne suivante:PATH="<directory you want to include>:$PATH"
dans votre fichier .bashrc dans le répertoire personnel.
Il ne sera pas réinitialisé même si vous fermez le terminal ou redémarrez votre PC. Son permanent
Pour la distribution Debian, vous devez:
- edit ~/.bashrc e.g: vim ~/.bashrc
- add export PATH=$PATH:/path/to/dir
- then restart your computer. Be aware that if you edit ~/.bashrc as root, your environment variable you added will work only for root
une façon d’ajouter un chemin permanent, qui a fonctionné pour moi, est: cd /etc/profile.d touchez custom.sh vi custom.sh export PATH = $ PATH:/path en fonction de votre configuration / redémarrez votre ordinateur et nous y allons path en permanence.
Supposons que vous utilisez MacOS et que vous avez un binaire en lequel vous avez confiance et que vous souhaitez rendre disponible sur votre système, mais ne souhaitez pas nécessairement que le répertoire dans lequel le binaire doit être ajouté à votre PATH, vous pouvez choisir de copier/déplacer. le binaire à /usr/local/bin
, qui devrait déjà être dans votre CHEMIN. Cela rendra le fichier binaire exécutable comme tout autre fichier binaire auquel vous pourriez déjà avoir accès dans votre terminal.
1.modifiez le fichier "/ etc/profile".
#vi /etc/profile
Appuyez sur la touche "i" pour accéder au statut de modification et déplacer le curseur à la fin du fichier. Entrées supplémentaires:
export PATH=$PATH:/path/to/dir;
Appuyez sur "Echap" pour quitter le statut d'édition, ': wq' enregistrer le fichier.
2. Rendre la configuration efficace
source /etc/profile
Explique: fichier de profil fonctionne pour tous les utilisateurs, si vous voulez être valide que pour l'utilisateur actif, définissez le fichier ".bashrc"