PRF:20180502 Customizing your text colors on the Linux command line.md

@MjSeven
This commit is contained in:
Xingyu.Wang 2018-07-12 11:00:44 +08:00
parent 321427aa10
commit 8c377100fe

View File

@ -1,13 +1,15 @@
在 Linux 命令行中自定义文本颜色
======
> 在 Linux 命令行当中使用不同颜色以期提供一种根据文件类型来识别文件的简单方式。你可以修改这些颜色,但是在做之前应该对你做的事情有充分的理由。
![](https://images.idgesg.net/images/article/2018/05/numbers-100756457-large.jpg)
如果你在 Linux 命令行上花费了大量的时间(如果没有,那么你可能不会读这篇文章),你无疑注意到了 `ls` 以多种不同的颜色显示文件。你可能也注意到了一些区别 —— 目录是一种颜色,可执行文件是另一种颜色等等。
这一切是如何发生的呢?而且,你可以选择哪些选项来改变颜色分配可能不是那么明显
这一切是如何发生的呢?以及,你可以选择哪些选项来改变颜色分配可能就不是很多人都知道的
获取大量数据显示如何指定这些颜色的一种方法是运行 `dircolors` 命令。它会显示以下这些东西:
一种方法是运行 `dircolors` 命令得到一大堆展示了如何指定这些颜色的数据。它会显示以下这些东西:
```
$ dircolors
@ -39,7 +41,7 @@ mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:
export LS_COLORS
```
如果你擅长解析文件,那么你可能会注意到这个列表有一<ruby>模式<rt>patten</rt></ruby>加上冒号,你会看到这样的东西:
如果你擅长解析文件,那么你可能会注意到这个列表有一<ruby>模式<rt>patten</rt></ruby>用冒号分隔开,你会看到这样的东西:
```
$ dircolors | tr ":" "\n" | head -10
@ -61,7 +63,7 @@ OK这里有一个模式 —— 一系列定义,有一到三个数字组件
pi=40;33
```
有些人可能会问的第一个问题是“pi 是什么?”我们在这里处理颜色和文件类型,所以这显然不是以 3.14 开头的有趣数字。当然不是这个“pi” 代表“pipe (管道)” —— Linux 系统上的一种特殊类型的文件,它可以将数据从一个程序传递给另一个程序。所以,让我们建立一个管道。
有些人可能会问的第一个问题是“pi 是什么?”在这里,我们研究的是颜色和文件类型,所以这显然不是以 3.14 开头的那个有趣的数字。当然不是,这个 “pi” 代表 “pipe管道” —— Linux 系统上的一种特殊类型的文件,它可以将数据从一个程序传递给另一个程序。所以,让我们建立一个管道。
```
$ mknod /tmp/mypipe p
@ -71,13 +73,13 @@ prw-rw-r-- 1 shs shs 0 May 1 14:00 /tmp/mypipe
当我们在终端窗口中查看我们的管道和其他几个文件时,颜色差异非常明显。
![font colors][1] Sandra Henry-Stocker
![font colors][1]
`pi` 的定义中如上所示“40”是文件显示在带有黑色背景的终端(或 PuTTY窗口中31 使字体颜色变红。管道是特殊的文件,这种特殊的处理使它们在目录列表中突出显示。
`pi` 的定义中如上所示“40” 使文件在终端(或 PuTTY窗口中使用黑色背景显示31 使字体颜色变红。管道是特殊的文件,这种特殊的处理使它们在目录列表中突出显示。
`bd``cd` 定义是相同的 —— `40;33;01` 并且有一个额外的设置。设置会导致 <ruby>块设备<rt>block device</rt></ruby>bd<ruby>字符设备<rt>character device</rt></ruby>cd以黑色背景橙色字体和另一种效果显示 —— 字符将以粗体显示。
`bd``cd` 定义是相同的 —— `40;33;01`,它有一个额外的设置。这个设置会导致 <ruby>块设备<rt>block device</rt></ruby>bd<ruby>字符设备<rt>character device</rt></ruby>cd以黑色背景橙色字体和另一种效果显示 —— 字符将以粗体显示。
以下列表显示由<ruby>文件类型<rt>file type</rt></ruby>创建的颜色和字体分配:
以下列表显示由<ruby>文件类型<rt>file type</rt></ruby>所指定的颜色和字体分配:
```
setting file type
@ -118,9 +120,9 @@ $ dircolors | tr ":" "\n" | tail -10
export LS_COLORS
```
这些设置(上面列表中所有的 `00;36`)将使这些文件名以青色显示。可用颜色如下所示。
这些设置(上面列表中所有的 `00;36`)将使这些文件名以青色显示。可用颜色如下所示。
![all colors][2] Sandra Henry-Stocker
![all colors][2]
### 如何改变设置
@ -138,9 +140,9 @@ alias ls='ls --color=auto'
$ export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;...
```
注意:上面的命令被截断了。
注意:上面的命令由于太长被截断了。
如果希望修改后的文本颜色是永久性的,则需要将修改后的 `$LS_COLORS` 定义添加到一个启动文件中,例如 `.bashrc`
如果希望文本颜色的修改是永久性的,则需要将修改后的 `$LS_COLORS` 定义添加到一个启动文件中,例如 `.bashrc`
### 更多关于命令行文本