Resumen
Cuando creo una nueva sesión de tmux, mi solicitud se extrae de una configuración bash predeterminada y tengo que ejecutarla manualmente source ~/.bashrcpara mi solicitud personalizada.
Análisis
Estoy usando una máquina RHEL 7. Comencé a notar este comportamiento después de una actualización de bash hace un tiempo, pero hasta ahora no he podido hacer la pregunta (y no estoy seguro de qué actualización comenzó a ocurrir).
Por ejemplo, he personalizado mi solicitud para que se vea así:
[user@hostname ~]$
Cada vez que comienzo una nueva sesión de tmux, utiliza lo que parece ser el bash predeterminado:
-sh-4.2$
Una ejecución rápida de source ~/.bashrcsiempre soluciona el problema, pero es molesto tener que hacer esto cada vez que quiero arreglar algo pequeño. ¿Alguna idea sobre cómo hacer que tmux vuelva a hacer esto automáticamente?
Si necesita más información, me complace proporcionarla.
tmux.conf
Como referencia, tengo mi tmux.confarchivo a continuación, aunque no es lo que se podría llamar personalizado.
setw -g mode-keys vi
# reload tmux.conf
bind r source-file ~/.tmux.conf \; display-message " ✱ ~/.tmux.conf is reloaded"

source ~/.bashrclínea a mi.bash_profile, intenté cerrar sesión y volver a iniciarla, crear una nueva sesión de tmux, pero sin cambios. ¿Algunas ideas?.tmux.confla líneaset-option -g default-shell "/bin/bash". ¡Esto debería resolver tu problema (al menos eso espero)!bashtravés de Homebrew y esto no funciona, cambie"/bin/bash"a"/usr/local/bin/bash".Esto está relacionado con los archivos de inicio de Bash. Por defecto,
~/.bashrcse usa 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 comenzaron por tmux skip~/.bashrc.Archivos de inicio para Bash,
/etc/profile~/.bash_profile`~/.bash_login`~/.profile(solo el primero que existe)/etc/bash.bashrc(algunos Linux; no en Mac OS X)~/.bashrc$BASH_ENVSolución
El extraño requisito interactivo de carga sin inicio de sesión también confunde a las personas en otras situaciones. La mejor solución es cambiar el requisito de carga solo
~/.bashrccomo interactivo , que es exactamente lo que están haciendo algunas distribuciones, como Ubuntu.Esta debería ser la solución que deseas. Y recomiendo que cada usuario de Bash configure esto en el perfil.
Referencias
man tmuxfuente
Agregando lo siguiente a
.tmux.conf:NO produce el resultado deseado.
Solo cuando se agrega
source "$HOME/.bashrc"al~/.bash_profileresultado deseado.Esto funcionará en una sesión activa de tmux al abrir una nueva ventana o panel, y también al separar y abrir una nueva sesión de tmux.
Probado en:
fuente