Comment régler durablement $PATH sous Linux/Unix?
Je suis en train d'ajouter un répertoire de mon chemin, de sorte qu'il sera toujours dans mon Linux chemin. J'ai essayé:
export PATH=$PATH:/path/to/dir
Cela fonctionne, cependant, chaque fois que je quitter le terminal et le début d'un nouveau terminal de l'instance, ce chemin est perdu, et j'ai besoin d'exécuter la commande exporter de nouveau.
Comment puis-je le faire donc ce sera définie de façon permanente?
Vous devez vous connecter pour publier un commentaire.
Vous devez l'ajouter à votre
~/.profile
ou~/.bashrc
fichier.En fonction de ce que vous faites, vous voudrez peut-être aussi un lien symbolique pour les fichiers binaires:
Noter que ce ne sera pas automatiquement la mise à jour de votre chemin pour le reste de la session. Pour ce faire, vous devez exécuter:
$PATH
et/usr/bin
. 2) Doit/usr/bin
même être là. 3) ne devriez-vous pas plutôt utiliser/usr/local/bin
?cd
le répertoire que vous avez déballé, puis exécutezls
---et puis se rendent compte que le tarball avait un programme malveillant appeléls
en elle.sl
et en attente de quelqu'un pour une faute de frappels
.~/bin
répertoire dans~/.profile
.export PATH="$PATH:/path/to/dir"
, dans le cas où il y a des espaces dans les noms de répertoire? Je suis d'accord c'est un peu rare dans le cas dePATH
. Mais en tout cas, c'est une bonne habitude de mettre"
autour de toutes les expansions de toute façon..bashrc
.~/.profile
fichier, puis exécutezsource .profile
pour que les modifications prennent effet immédiatement pour l'actuelle session de terminal. C'est de façon permanente et est disponible après fermeture/redémarrage.source ~/.profile
après l'édition~/.profile
que vous n'avez pas besoin de redémarrer..bash_profile
au lieu de.profile
Dans Ubuntu, modifier
/etc/environment
. Son seul but est de stocker des Variables d'Environnement. À l'origine, la variable $PATH est définie ici.C'est une pâte à partir de mon
/etc/environment
fichier:De sorte que vous pouvez ouvrir ce fichier en tant que root et ajoutez ce que vous voulez.
Pour des résultats Immédiats,
Exécuter (essayez comme utilisateur normal et racine):
Mise à JOUR:
Si vous utilisez
zsh
(un.k.un Shell Z), ajouter cette ligne droite d'après les commentaires dans/etc/zsh/zshenv
:J'ai rencontré ce petit caprice sur Ubuntu 15.10, mais si votre zsh n'est pas de la CHEMIN, cela pourrait être la raison pour laquelle
$PATH
est également définie dans/etc/profile
dans Arch Linux.~/.bashrc
. D'autre part, de ne pas avoir un/etc/environment
sens de mon point de vue à moi, comme je n'ai pas une seule variable que je dois mettre pour “tout le monde”... et il est généralement préférable de séparer le système de base des configurations de l'utilisateur individuel configurations de toute façon. 😉/etc/environment
est à l'échelle du système des variables d'environnement. C'est la seule raison de le changer. Si vous faites une erreur pendant que vous modifiez ce fichier, vous finirez probablement avec un vide de la variable de CHEMIN (je ne souhaiterais pas à un homme). Un bon moyen d'ajouter des chemins d'accès à votre variable PATH qui affectent l'ensemble du système est d'utiliser/etc/profile.d
répertoire (ce lien doit être un utile lien)./etc/environment
. mais si vous utilisez quoi comme gedit, vous devriez, par défaut, un fichier de sauvegarde. pour ne pas mentionner, vous pouvez toujours primordial CHEMIN d'accès à un vide dans la variable TOUS à l'échelle du système de fichier. mon point est, si vous êtes prêt à modifier le CHEMIN, vous devriez être déjà familiarisé avec les dangers de la faire et de la modification de/etc/environment
n'est pas plus dangereux que de dire quelque chose comme/etc/profile
🙂/etc/environment
mais la mise en CHEMIN il n'y a pas d'effet - /etc/profile et /etc/login.defs de re-définir le dos. Testé sur une Debian 9.5Il y a plusieurs façons de le faire. La solution réelle dépend de l'objectif.
Les valeurs de la variable sont généralement stockés dans une liste d'assignations ou d'un shell script qui est exécuté au démarrage du système ou de l'utilisateur de la session. Dans le cas du script shell, vous devez utiliser une syntaxe shell.
À l'échelle du système
/etc/environment
Liste des missions uniques. Parfait pour ajouter des répertoires du système comme/usr/local/something/bin
àPATH
variable ou la définition deJAVA_HOME
./etc/xprofile
Shell script exécuté lors du démarrage du Système X Window session. C'est exécutée pour chaque utilisateur qui ouvre une session dans le Système X Window. C'est un bon choix pourPATH
les entrées sont valables pour tous les utilisateurs comme/usr/local/something/bin
. Le fichier est inclus par d'autres script, de manière à utiliser le shell POSIX pas la syntaxe la syntaxe de votre shell de l'utilisateur./etc/profile
et/etc/profile.d/*
script Shell. C'est un bon choix pour shell-seuls les systèmes. Ces fichiers sont en lecture seule par les obus./etc/<shell>.<shell>rc
. Script Shell. C'est un mauvais choix car il est simple coque spécifique.Session utilisateur
~/.pam_environment
. Liste des missions uniques. Chargé par PAM au début de chaque session utilisateur sans importance si c'est une session de X Window System ou shell. Vous ne pouvez pas faire référence à d'autres variables, y comprisHOME
ouPATH
de sorte qu'il est d'un usage limité.~/.xprofile
Script Shell. C'est exécutée lorsque l'utilisateur ouvre une session dans le Système X Window system. Les variables définies ici sont visibles pour chaque X de l'application. Un choix parfait pour étendrePATH
avec des valeurs telles que~/bin
ou~/go/bin
ou la définition spécifique à l'utilisateur,GOPATH
ouNPM_HOME
. Le fichier est inclus par d'autres script, de manière à utiliser le shell POSIX pas la syntaxe la syntaxe de votre shell de l'utilisateur. Votre graphique de l'éditeur de texte ou IDE commencé par raccourci de voir ces valeurs.~/.profile
Script Shell. Il ne sera visible que pour les programmes de démarrage du terminal ou un émulateur de terminal. C'est un bon choix pour shell-seuls les systèmes.~/.<shell>rc
. Script Shell. C'est un mauvais choix car il est simple coque spécifique.Notes
Gnome sur Wayland commence la connexion de l'utilisateur shell pour obtenir de l'environnement. Il utilise efficacement
~/.profile
,~/.<shell>_profile
fichiers.De la Distribution de la documentation spécifique
.bash_profile
doit être ajouté à la liste?/etc/environment
. Mais puis-je actualiser sans se déconnecter et de dans? Parfois, je n'utilisez pas de bash ou sh doncsource /etc/environment
ne fonctionne pas.Mettre le
export
déclaration~/.bashrc
. Mon .bashrc contient ceci:.profile
', n'a pas trouvé.bashrc
source ~/.bashrc
pour recharger.bashrc
de configuration. Ensuite, il seraPut the export declaration in ~/.bashrc.
je suis sous Ubuntu 14.04 LTS. Je suis très novice sur Linux.export
mot-clé n'est nécessaire que siPATH
n'est pas déjà signalé comme une variable d'environnement -- qui, presque sans condition va être. SimplementPATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
aurait le même effet.~/.bashrc
) dans un éditeur de texte comme nano et tapez cette ligne à l'endo du fichier. Le chemin sera modifié dès que vous ouvrez un nouveau bash exempleVous pouvez définir
$PATH
de façon permanente dans les 2 sens.Pour définir le chemin d'accès d'un utilisateur en particulier :
Vous devrez peut-être faire l'entrée dans
.bash_profile
dans le répertoire home de l'utilisateur.e.g dans mon cas, je mettrai chemin d'accès java tomcat profil de l'utilisateur
Pour définir la voie commune pour TOUS les utilisateurs du système, vous devrez peut-être définir le chemin d'accès comme ceci :
/etc/profiles
avec uns
sur votre distribution? Le mien n'a pas des
. Je pense que vous avez une faute de frappe.Vous pouvez utiliser sur Centos ou RHEL pour les utilisateurs locaux:
Cette ajouter le répertoire courant(ou vous pouvez utiliser un autre répertoire) pour le CHEMIN d'accès, il est permanent, mais prendre effet lors de la prochaine ouverture de session utilisateur.
Si vous ne voulez pas faire une ré-ouverture de session, puis peut utiliser:
Que recharger la
# User specific environment and startup programs
ce commentaire est présent dans.bash_profile
Vous pouvez également définir de façon permanente, le montage d'une de ces fichiers:
/etc/profile
(pour tous les utilisateurs)~/.bash_profile
(pour l'utilisateur courant)~/.bash_login
(pour l'utilisateur courant)~/.profile
(pour l'utilisateur courant)Vous pouvez également utiliser
/etc/environment
pour définir un permanent de la variable d'environnement PATH, mais il ne prend pas en charge l'expansion des variables.Extrait de: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Je suis tombé sur cette question hier lors de la recherche d'un moyen pour ajouter un dossier contenant mes propres scripts pour le CHEMIN - et a été surpris de découvrir que ma propre
~/.profile
fichier (sur Linux Mint 18.1) contient déjà ceci:Donc, tout ce que j'avais à faire était de créer le dossier
~/bin
et de mettre mes scripts.Je pense que la façon la plus élégante est:
1.ajouter ceci dans le ~/.fichier bashrc
Exécuter cette commande
ajouter votre chemin à l'intérieur
2.source ~/.bashrc
(Ubuntu)
Vous pouvez ajouter cette ligne à votre fichier de configuration de la console (par exemple .bashrc) , ou pour .profil
/home/(username)
ls -a
à voir.).profile
là sur un second regard. Travaillé maintenant, ty.Ajouter définitivement variable de CHEMIN d'accès
Global:
Local(pour l'utilisateur uniquement):
Pour mondiale redémarrer. Pour local reconnectez-vous.
Exemple
Avant:
Après:
Alternativement, vous pouvez simplement modifier le profil:
D'une autre façon(merci gniourf_gniourf):
echo 'export PATH=$PATH:/new/path/variable'
... Et par la manière, leexport
mot-clé est très probablement inutile que l'PATH
variable est très probablement déjà marqué de leur exportation./usr/local
à l'aide de~/.bashrc
. maintenant, si vous avez l'intention d'ajouter/opt/bin
à la même variable à l'aide de/etc/bash.bashrc
; $CHEMIN traduire de la même chaîne statique, comme un résultat de $CHEMIN remplacer au lieu de annexée à... Il fera l'objet d'un système de préférence à un fichier sur un autreZues77 a la bonne idée. L'OP n'a pas dit "comment puis-je pirater mon chemin à travers ce". OP voulais savoir comment faire pour ajouter de façon permanente à $PATH:
C'est là qu'elle est définie pour tout et il est le meilleur endroit pour changer de toutes les choses qui ont besoin $PATH
1.modifier "/etc/profile" fichier.
La touche "i" pour entrer l'état d'édition et de déplacer le curseur à la fin du fichier,des entrées Supplémentaires:
Appuyez sur la touche "Esc" la sortie de modifier le statut,':wq' enregistrer le fichier.
2.La configuration efficace
Expliquer:
le fichier de profil fonctionne pour tous les utilisateurs,si vous voulez être valable que pour l'utilisateur actif, réglez ".bashrc" fichier
les fichiers où vous ajoutez la commande d'exportation dépend si vous êtes en connexion ou en mode non-login-mode.
si vous êtes dans la connexion en mode, les fichiers que vous cherchez est /etc/bash ou /etc/bash.bashrc
si vous êtes en situation de non-connexion-mode, vous êtes à la recherche pour le fichier /.profil ou pour les fichiers dans le répertoire /.les profils.d
les fichiers mentionnés ci-dessus si les variables système sont.
Ma réponse est en référence à la mise en place de
go-lang
surUbuntu linux/amd64
.J'ai rencontré la même difficulté de définir le chemin d'accès de variables d'environnement (GOPATH
etGOBIN
), le perdre sur la borne de sortie et de le reconstruire à l'aide de lasource <file_name>
à chaque fois.L'erreur a été de mettre le chemin d'accès (GOPATH
etGOBIN
) dans~/.bash_profile
dossier. Après avoir englouti quelques bonnes heures, j'ai trouvé que la solution était de mettreGOPATH
etGOBIN
dans~/.bash_rc
fichier de la manière:et ce faisant, cette installation a bien fonctionné et il n'y avait pas de chemin de pertes.
EDIT 1:
La raison avec laquelle ce problème peut être lié, c'est que les paramètres pour les non-shells de login comme votre terminal ubuntu ou gnome-terminal, où nous courons le go du code sont prises à partir de
~./bash_rc
fichier et les paramètres pour les shells de login sont prises à partir de~/.bash_profile
fichier, et de~/.profile
fichier si~/.bash_profile
fichier est inaccessible.le meilleur moyen simple est la ligne suivante:
PATH="<directory you want to include>:$PATH"
dans votre .bashrc fichier dans le répertoire home.
Il ne sera pas réinitialisé, même si vous fermez le terminal ou le redémarrage de votre PC. Permanent de son
Ajouter à
/etc/profile.d
dossier script[name_of_script].sh
avec ligne:export PATH=$PATH:/dir
. Chaque script dans/etc/profile.d
dossier est automatiquement exécutée par/etc/profile
sur connexion.Je pense que la façon la plus élégante est:
1.ajouter ceci dans le ~./bashrc fichier
2.source ~/.bashrc
(Ubuntu)
Disons que vous êtes sous MacOS et que vous avez un fichier binaire en qui vous avez confiance et que vous souhaitez faire disponible dans l'ensemble de votre système, mais ne veulent pas nécessairement le répertoire dans lequel le fichier binaire est d'être ajouté à votre CHEMIN d'accès, vous pouvez opter pour copier/déplacer le fichier binaire
/usr/local/bin
, qui devraient déjà être dans votre CHEMIN. Cela rendra le fichier binaire exécutable comme tout les autres binaires vous pouvez déjà avoir accès à votre terminal.Il peut être ajouté directement à l'aide de la commande suivante:
bash
, ce n'est donc pas très utile.une façon d'ajouter un chemin permanent, qui a travaillé pour moi, est:
redémarrez votre ordinateur et ici nous allons chemin sera-t-il en permanence
des acclamations.
Pour la distribution debian, vous devez: