Lorsque tmux démarre ou ouvre une nouvelle fenêtre, il ne charge pas mon fichier .profile
ou .bashrc
. Je finis par taper à . ~/.bashrc
chaque fois. Existe-t-il un moyen de faire en sorte que cela se produise automatiquement?
94
Oui, à la fin de votre .bash_profile
, mettez la ligne:
. ~/.bashrc
Cela source automatiquement le fichier rc dans les circonstances où il ne traiterait normalement que le profil.
Les règles quant au moment bash
exécution de certains fichiers sont compliquées et dépendent du type de shell démarré (connexion / non-connexion, interactif ou non, etc.), ainsi que des arguments de ligne de commande et des variables d'environnement.
Vous pouvez les voir dans la man bash
sortie, recherchez simplement INVOCATION
- vous aurez probablement besoin de temps pour le digérer et le décoder :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
Lancer bash a fonctionné explicitement pour moi, en ajoutant cette ligne à mon fichier ~ / .tmux.conf:
la source
~/.tmux.conf
:set -g default-command "/bin/bash"
. Merci mon pote.Les anciennes réponses ont fourni des solutions mais n'ont pas expliqué la raison. C'est ici.
Ceci est lié aux fichiers init Bash. Par défaut,
~/.bashrc
est utilisé dans un shell interactif sans connexion . Il ne proviendra pas d'un shell de connexion. Tmux utilise un shell de connexion par défaut. Par conséquent, les shells démarrés par tmux skip~/.bashrc
.Fichiers d'initialisation pour Bash,
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(Seulement le premier qui existe)/etc/bash.bashrc
(certains Linux; pas sur Mac OS X)~/.bashrc
$BASH_ENV
L'étrange exigence de chargement interactif et sans connexion déroute également les gens dans d'autres situations. La meilleure solution est de modifier l'exigence de chargement en
~/.bashrc
tant qu'interactif uniquement , ce que font exactement certaines distributions, comme Ubuntu.Cela devrait être la solution que vous désirez. Et je recommande à chaque utilisateur de Bash de configurer cela dans le profil.
Références
man tmux
la source
De ce fil:
semble utiliser
.bash_profile
fonctionnerait.la source
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
La solution qui a fonctionné pour moi est la suivante:
.bash_profile
fichier si vous n'en avez pas~
.bash_profile
putsource ~/.bashrc
ousource ~/.profile
Le problème devrait maintenant être résolu.
la source
J'ai eu le même problème et les solutions jusqu'à présent n'ont pas fonctionné pour moi. La solution qui a fonctionné pour moi peut être trouvée ici .
En bref, les
tmux
fenêtres / sessions utilisent un shell de connexion qui recherche un~/.profile
fichier parmi d'autres au démarrage.Ce que je voulais, c'était que zsh commence à chaque nouvelle
tmux
fenêtre donc je metsexec zsh
au bas de mon~/.profile
.la source