Lorsque je ssh dans mon ubuntu-box exécutant Hardy 8.04, les variables d'environnement dans mon .bashrc
ne sont pas définies.
Si je fais une source .bashrc
, les variables sont correctement définies, et tout va bien.
Comment se .bashrc
fait-il qu'il ne soit pas exécuté à la connexion?
.bashrc
et.bash_profile
!Réponses:
.bashrc
n'est pas fourni lorsque vous vous connectez à l'aide de SSH. Vous devez le trouver dans votre.bash_profile
comme ceci:la source
.bashrc
provient de votre connexion SSH, par défaut..bashrc
- mais il le fait à partir de.profile
, non.bash_profile
.J'avais une situation similaire comme Hobhouse. Je voulais utiliser la commande
et 'some_command' existe dans '/ var / some_location' donc j'ai essayé d'ajouter '/ var / some_location' dans l'environnement PATH en éditant '$ HOME / .bashrc'
mais cela ne fonctionnait pas. parce que .bashrc par défaut (Ubuntu 10.4 LTS) empêche le sourcing par code comme ci-dessous
donc si vous voulez changer l'environnement pour le shell non-login ssh. vous devez ajouter du code au-dessus de cette ligne.
la source
bash # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac
Pour une excellente ressource sur le fonctionnement de l'invocation bash, ce que font les fichiers dot et comment les utiliser / configurer, lisez ceci:
la source
Si la solution d'Ayman ne fonctionne pas, essayez de nommer votre fichier
.profile
au lieu de.bash_profile
. Cela a fonctionné pour moi.la source
.profile
doit être exécuté par n'importe quel shell de connexion, que celui-ci ait l'intention de générer une interface graphique ou non. Votre commentaire contredit totalement la question et cette réponse, qui indiquent clairement que cela.profile
est invoqué sur SSHing dans - une méthode nettement non GUI.