PuTTY 颜色主题设置 1

远程访问 UNIX/Linux Server,PuTTY 一直是我的不二之选。

原因有二:1)freeware;2)好用。

至于前两年 PuTTY 的木马事件,那是中文版被注入的。对于网上的软件,我一直建议:

  • 能去官网下载的,就一定去官网下载;
  • 能用英文版的,就一定用英文版;
  • 能下载后进行验证的,就一定要验证(MD5,SHA,SHA256,甚至GPG)

太远的不说了,回归主题,这次我们探讨一下 PuTTY 颜色主题的设置。

1. 颜色设置

PuTTY 的颜色设置可以在 Window-Colours 中找到:

PuTTY Set Color

从上图可见,我们可以给 Default Foreground(缺省前景)、Default Bold Foreground(缺省加粗前景)、Default Background(缺省背景)等22种不同情况设置颜色。

设置好,保存到需要的 Session 中,就可以了:

PuTTY Save Session

下次使用这个 Session 来登录 UNIX/Linux Server,就可以应用设置好的颜色:

PuTTY Colour Effect 1

按照最老派的思路,我们按喜好设置缺省前景、缺省背景(见上图)也就够了,那么为啥 PuTTY(或者说 UNIX/Linux Shell)支持22种颜色呢?

2. 更多颜色

我们看下这个图:

PuTTY Theme Effect 1

ls 命令的输出中,有蓝色、亮蓝色、白色、绿底黑色等不同颜色的条目,这都代表了什么呢?看看 ll 命令的输出就知道了:

PuTTY Theme Effect 1

不同颜色有不同的含义:

  • 白色(缺省前景色)代表普通文件
  • 蓝色代表目录文件
  • 亮蓝色代表链接文件
  • 绿地黑字代表有粘滞位(Sticky bit)的文件

更多颜色果然有用 —— 有助于我们通过颜色直观地获取更多的信息。

3. 颜色输出

这些颜色是 Linux shell 支持的,我们可以通过 echo 命令来简单实验一下:

1
2
3
4
$ echo -e "\e[31m\e[47mhello\e[0m"
hello
$ echo -e "\e[33m\e[44mhello\e[0m"
hello

在Shell中的输出结果如下:

Shell Echo Effect 1

上面 hello 颜色都是 echo 通过 -e 参数以及 \e[nm 转义符等告诉终端(如 PuTTY)的。

Shell 支持的颜色包括:

8个前景颜色:

  1. \e[30m:黑
  2. \e[31m:红
  3. \e[32m:绿
  4. \e[33m:黄
  5. \e[34m:蓝色
  6. \e[35m:紫色
  7. \e[36m:深绿
  8. \e[37m:白色

8个背景颜色:

  1. \e[40m:黑
  2. \e[41m:深红
  3. \e[42m:绿
  4. \e[43m:黄色
  5. \e[44m:蓝色
  6. \e[45m:紫色
  7. \e[46m:深绿
  8. \e[47m:白色

所以在上面的例子中,第一个 hello 是白底\e[47m红字\e[31m,第二个 hello 是蓝底\e[44m黄字\e[33m

除了这 16 种颜色之外,echo 还支持更丰富的输出控制转义。完整详细的介绍超出了本文的范围,感兴趣的同学可以自行搜索研究。本文仅介绍一个“高亮”控制转义:\e[1m

1
$ echo -e "\e[33m\e[44mhello\e[0m";echo -e "\e[1;33m\e[44mhello\e[0m"

多个 \e[?m 控制转义符可以用;连接写在一起,所以 \e[1;33m 的意思就是高亮黄色前景的意思。

上述语句的输出如下:

Shell Echo Effect 2

可见高亮黄色和黄色还是有明显区别的。

为什么单独要介绍一下“高亮”控制转义 \e[1m 呢?哎呀,写着写着就这么长了,快超过网页适宜长度了(太长的话,大多数读者就没耐心读完);那么我们在 PuTTY 颜色主题设置 2 中再介绍这个问题吧。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器