Cuando tmux se inicia o abre una nueva ventana, no carga mi .profile
o .bashrc
. Termino escribiendo . ~/.bashrc
todo el tiempo. ¿Hay alguna forma de que esto suceda automáticamente?
94
Sí, al final de tu .bash_profile
, pon la línea:
. ~/.bashrc
Esto genera automáticamente el archivo rc en aquellas circunstancias en las que normalmente solo procesaría el perfil.
Las reglas sobre cuándo se bash
ejecutan ciertos archivos son complicadas y dependen del tipo de shell que se inicia (inicio de sesión / no inicio de sesión, interactivo o no, etc.), junto con los argumentos de la línea de comandos y las variables de entorno.
Puede verlos en la man bash
salida, solo busque INVOCATION
, probablemente necesitará algo de tiempo para digerirlo y decodificarlo :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
Ejecutar bash funcionó explícitamente para mí, agregando esta línea a mi archivo ~ / .tmux.conf:
fuente
~/.tmux.conf
:set -g default-command "/bin/bash"
. Gracias amigo.Las respuestas anteriores proporcionaron soluciones pero no explicaron el motivo. Aquí está.
Esto está relacionado con los archivos init de Bash. De forma predeterminada,
~/.bashrc
se utiliza en un shell interactivo sin inicio de sesión . No se obtendrá en un shell de inicio de sesión. Tmux usa un shell de inicio de sesión por defecto. Por lo tanto, los shells iniciados por tmux skip~/.bashrc
.Archivos de inicialización para Bash,
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(Sólo primera que existe)/etc/bash.bashrc
(algunos Linux; no en Mac OS X)~/.bashrc
$BASH_ENV
El extraño requisito de carga interactivo, sin inicio de sesión, confunde a las personas en otras situaciones también. La mejor solución es cambiar el requisito de carga
~/.bashrc
como interactivo únicamente , que es exactamente lo que están haciendo algunas distribuciones, como Ubuntu.Esta debería ser la solución que desea. Y recomiendo a todos los usuarios de Bash que configuren esto en el perfil.
Referencias
man tmux
fuente
De este hilo:
parece que el uso
.bash_profile
funcionaría.fuente
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
La solución que funcionó para mí es la siguiente:
.bash_profile
archivo si no tiene uno en~
.bash_profile
ponersource ~/.bashrc
osource ~/.profile
El problema ahora debería solucionarse.
fuente
Tuve el mismo problema y las soluciones hasta ahora no funcionaron para mí. La solución que terminó funcionando para mí se puede encontrar aquí .
En resumen, las
tmux
ventanas / sesiones usan un shell de inicio de sesión que busca un~/.profile
entre otros archivos cuando se inicia.Lo que quería era que zsh comenzara con cada nueva
tmux
ventana, así que puseexec zsh
en la parte inferior de mi~/.profile
.fuente