Tmux 似乎没有加载 .bashrc

ars*_*ene 5 linux terminal bash tmux

我正在尝试开始使用 tmux 并“修复”tmux 在启动时不加载的事实.bashrc。我尝试进行所有修复,例如添加source ~/.bashrc~/.profile创建~/.bash_profile并添加。即使我启动 tmux 并运行也source ~/.bashrc没有任何变化。

.bashrc对用户名后面的目录显示方式以及颜色进行了一些细微的更改。当我启动 tmux 时,目录将按照没有任何更改的方式显示,.bashrc并且颜色与文本颜色相同,而在正常的 bash 会话中情况并非如此。

有人知道如何解决这个问题吗?

Kam*_*ski 3

由于您没有透露有关您的的确切信息.bashrc,我将扮演通灵者并远程阅读它。

\n\n

有一个类似的条件

\n\n
case "$TERM" in\n    xterm-color|xterm-256color) \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

你的提示取决于它。详细来说可能是这样的

\n\n
case "$TERM" in\n    xterm-color|xterm-256color) color_prompt=yes;;\nesac\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后例如

\n\n
if [ "$color_prompt" = yes ]; then\n    PS1=\'${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ \'\nelse\n    PS1=\'${debian_chroot:+($debian_chroot)}\\u@\\h:\\w\\$ \'\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果是这种情况,那么罪魁祸首就是:tmux 使用screentmux类似的字符串(例如tmux-256color)作为$TERM。您的 tmux 使用的字符串不满足.bashrc启用彩色提示的条件。

\n\n

在 tmux 内的 Bash 中调用echo "$TERM". 无论你得到什么,它都应该能够处理颜色;所以只需将其添加到条件中即可。例子:

\n\n
case "$TERM" in\n    xterm-color|xterm-256color|screen) \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

$TERM您可以从这个问题的答案中了解 的概念。

\n