如何通过 ssh 获取彩色终端?

如何通过 ssh 获取彩色终端?

当我通过 ssh 连接到远程主机时,所有内容都只有一种字体/颜色。我希望有像本地一样的颜色,例如可执行文件为绿色,符号链接为蓝色等。这样当我在 ssh 主机上运行 $ git diff 时,它会显示带有颜色的差异 =)

答案1

因为服务器上是 xterm,所以我猜想可能出了问题.bashrc

确实如此!ls --color=auto仅当您连接到 TTY 时才有效。将所有内容更改为--color.bashrc远程主机上,现在所有内容都变成了漂亮的颜色。

答案2

这对我有用:

ssh -t my_host my_command

-t是关键。解释

-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.

答案3

似乎颜色已经为我设置好了~/.bashrc,问题是 ssh 不使用 bashrc 文件。你可以在 ssh 会话中使用 bashrc,方法是将以下内容添加到~/.bash_profile

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi

答案4

当您连接到服务器时,服务器上的 XTERM 环境变量的内容是什么?

~ > export | grep -i term
TERM=xterm

相关内容