-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a
remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t
options force tty allocation, even if ssh has no local tty.
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
至:
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
xterm) color_prompt=yes;;
esac
因为它是服务器上的xterm,我认为有问题
.bashrc
确实如此!
ls --color=auto
仅当您连接到 TTY 时才有效。将所有内容更改为简单地--color
在.bashrc
远程主机上,现在所有内容都呈现漂亮的颜色。这对我有用:
-t
是关键。解释:似乎已经
~/.bashrc
为我设置了颜色,问题是 ssh 不使用 bashrc 文件。您可以在 ssh 会话中使用 bashrc,方法是将以下内容添加到~/.bash_profile
:由于直接登录时颜色工作正常,我只是取消注释
force_color_prompt=yes
文件中的行~/.bashrc
,这也给了我在 ssh 上的颜色:(Ubuntu 18.04 LTS)
当您连接到服务器时,您的 XTERM 环境变量的内容是什么?
就我而言,缺少的部分是有彩色的 ls、grep 等,可以通过向 .bashrc 文件添加别名来添加:
等等
我尝试更改
~./bashrc
设置(在本地和远程服务器上),但它似乎不起作用。然后我注意到
~/.bashrc
如果我通过 ssh 连接到远程服务器,它甚至不会被执行。所以我通过将远程服务器放入~/.bashrc
远程服务器来执行远程服务器。(基于https://stackoverflow.com/questions/820517/bashrc-at-ssh-login)。if [ -f ~/.bashrc ]; then . ~/.bashrc fi
~/.bash_profile
所以这个解决方案不需要
~/bashrc
直接更改任何文件,但它确实需要更改远程服务器的文件,~/bash_profile
以便~/bashrc
执行远程服务器的文件。在我的情况下,我最近安装了
chef-local
它,它要求我在.bash_profile
. 当我登录时,.bashrc
不再加载,因为它看到了.bash_profile
.我所做的是在中添加一行
.bash_profile
:我注销并重新登录并立即获得我的彩色终端。
上面的“Mike E”有一条评论包含了我的答案,但它不仅难以阅读,而且如果你不经常使用的话,很难弄清楚他的意思
.bashrc
——而我没有吨。经过一番折腾,我通过在
~/.bashrc
使用 ssh 登录的机器上更改以下行来获得所需的结果:至:
我想我可以在第一行的“color”之后添加“|xterm”,或者挖掘并找出为什么 ssh 使用“xterm”而不是“xterm-color”并改变它,但这有效,我现在还有其他事情要做。
通过代理连接时我失去了颜色,因为
TERM=dumb
我修复了它: