Dans mon ~/.profile
j'ai un dernier bloc qui devrait charger mon personnel bin/ directory
comme ceci:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Mais il n'est apparemment pas chargé:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Pourquoi ça ne marche pas? (Ma coquille est bash.)
Modifier pour Tigrou
echo $0 => bash
echo $HOME => /home/student
whoami => student
less /etc/*-release =>
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
.profile
, consultez askubuntu.com/questions/284640 .-x
indicateur passé à bash et en voyant où le CHEMIN est réinitialisé. Vous devez également leexport PATH="$HOME/bin:$PATH"
fournir aux processus ultérieurs.Réponses:
Du haut de
~/.profile
:Donc (si vous utilisez
bash
comme shell) Je devine que ce soit~/.bash_profile
ou~/.bash_login
est sur votre système. Sélectionnez-en un et modifiez-le pour inclure:Ensuite, enregistrez et /
source ~/.bash_login
ou déconnectez-vous et reconnectez-vous.Modifier :
Vous dites que les deux
~/.bash_profile
et que vous manquez tous~/.bash_login
les deux$HOME
. Je pense que nous devons confirmer certaines choses. Veuillez publier les résultats suivants dans votre question d'origine:Modifier 2 :
Personnellement, je ne sais pas pourquoi
~/.profile
n'est pas inclus dans votre cas sur la base des informations fournies et de la documentation. Lors des tests, j'ai remarqué que mon analyse était effectuée à mon~/.profile
arrivée,ssh
mais pas au lancement d'un nouveau terminal.Mais, il existe une solution simple pour permettre
$HOME/bin
d'être inclus dans votre shell interactif. Modifiez (créez s'il n'est pas présent)~/.bashrc
et ajoutez-y la ligne suivante:Enregistrez, déconnectez-vous et reconnectez-vous, ou
source ~/.bashrc
.La
export
ligne pourrait être étendue pour vérifier qu'elle$HOME/bin
existe si vous aimez avec:Pourquoi
~/.bashrc
au lieu d'un autre fichier? Préférence personnelle et semble être plus fiable aussi.la source
~/.bash_profile
ni~/.bash_login
. Chez moi~
il n'y a que.bash_history
et.bash_logout
(et bien sûr les.profile
).~/.profile
est ignoré.Les règles pour l'internalisation des fichiers de démarrage du shell sont complexes . Il est probable qu'avec votre configuration,
.profile
ne soit pas inclus lorsque vous ouvrez un nouveau terminal dans une session X (essayez de mettre unecho .profile
intérieur de.profile
et voyez si le message apparaît lorsque vous démarrez un shell).devrait recharger le profil manuellement.
La connexion et la déconnexion de X devraient également entraîner un
.profile
chargement.Alternativement, vous pouvez faire
. $HOME/.profile
depuis.bashrc
(tout en utilisant un garde basé sur des variables pour empêcher la double inclusion) pour vous assurer qu'il.profile
est toujours inclus chaque fois que vous démarrez un shell.(Vous ne devriez pas avoir besoin de le faire
export PATH
car ilPATH
s'agit déjà d'une variable exportée et la modification de sa valeur ne changera pas sonexport
état.)la source
[ -z "$has___profile" ] || return; has__profile=1
) donc je n'ai pas de boucles infinies et les deux.profile
et.bashrc
(seulement si BASH_VERSION est défini) peu importe comment j'y suis arrivé.bash -l
se chargera.profile
(à moins d'une configuration étrange). En outre, le CHEMIN doit être correctement défini lorsque l'utilisateur se connecte. Cela signifie que dans le "gestionnaire d'affichage" (dm) utilisé: gnome, KDE, xfce, lxde, etc.Si vous voulez être
.profile
chargé, il vous suffit de démarrer un shell de connexion:Cela devrait suffire pour une session en cours. Vous pouvez comparer le CHEMIN avant et après le démarrage d'une session de connexion pour confirmer la différence.
Pour une solution plus permanente, vous devez démarrer un shell de connexion à un moment donné avant le démarrage de votre terminal (console). La connexion en tant qu'utilisateur spécifique se produit sur certains dm (gestionnaire d'affichage) (gnome, kde, xfce, lxde, etc.). Il devrait incomber à chacun d'entre eux de modifier la variable d'environnement PATH pour qu'elle corresponde à vos besoins.
Par exemple, pour xfce, la solution est de changer
xinitrc
:Pour gnome, il semble que le fichier à modifier soit
~/.pam_environment
.Et pour KDE, suivez ce guide , pour créer le fichier, vous pouvez utiliser ce code:
la source