XShell 颜色高亮问题

截屏2021-11-19 上午9.48.18.png

  • 想问上图中的软链接红色的是失效的不存在的,蓝色是有效的:这种高亮是 XShell 独有的么
  • 如果是独有的为什么有的服务器连高亮都没了?
  • 如果不是独有的那么怎么才能调试出来让每个服务器都能有高亮呢
阅读 6.1k
2 个回答

不是。

配色实际是会使用远程终端的配置;你本地 XShell 改的是当远程没有返回颜色信息时的颜色。

颜色的本质是包含在返回数据里一起发送回来的,这些颜色字符会被识别并替换掉,你看到的就是花里胡哨的了。

比如远程发送给你的是 \c00{root}\c11{@}\c22{hostname} 其中 \cxx 决定后面显示啥颜色,xx 是系统配色序号、从 00 到 ff 对应 256 色,你实际看到的就是 root@hostnameroot 一个色、@ 另一个色、hostname 又一个色。(仅作基本原理的举例说明,实际数据格式不长这样)

如果部分主机有高亮、部分没有,你可以先对比一下这几个远程主机自己的 ~/.bashrc 内容是否不一致(如果用的是 zsh 就是 ~/.zshrc,其他 Shell 同理)。

ls命令有一个支持高亮颜色的参数--color,会将ls输出的结果进行高亮显示,效果就是你看到的那样。

绝大多数Linux发行版自带就会有一个alias ls='ls --color',如果你的alias没有,自己添加这个alias就行了。当然你也可以自己执行ls命令的时候手工指定这个参数: ls -alF --color(这个命令的效果就是你的截图显示的那个ls输出模式)

另外xshell也需要开启xterm色彩支持(通常xshell默认配置就是,你也不需要额外设置,除非你自己改了默认)。

同理,其他的terminal emulator只要设置开启支持色彩高亮都是可以显示shell中的色彩高亮的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进