From 2230cb473d5cd0b0e7b42e5c0dffbe22c02355da Mon Sep 17 00:00:00 2001 From: MjSeven <33125422+MjSeven@users.noreply.github.com> Date: Wed, 11 Jul 2018 21:09:17 +0800 Subject: [PATCH] Create 20180502 Customizing your text colors on the Linux command line.md --- ...r text colors on the Linux command line.md | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 translated/tech/20180502 Customizing your text colors on the Linux command line.md diff --git a/translated/tech/20180502 Customizing your text colors on the Linux command line.md b/translated/tech/20180502 Customizing your text colors on the Linux command line.md new file mode 100644 index 0000000000..cc4d882fba --- /dev/null +++ b/translated/tech/20180502 Customizing your text colors on the Linux command line.md @@ -0,0 +1,162 @@ +在 Linux 命令行中自定义文本颜色 +====== + +![](https://images.idgesg.net/images/article/2018/05/numbers-100756457-large.jpg) +如果你在 Linux 命令行上花费了大量的时间(如果没有,那么你可能不会读这篇文章),你无疑注意到了 ls 以多种不同的颜色显示文件。你可能也注意到了一些区别 -- 目录是一种颜色,可执行文件是另一种颜色等等。 + +这一切是如何发生的呢?而且,你可以选择哪些选项来改变颜色分配可能不是那么明显。 + +获取大量数据显示如何分配这些颜色的一种方法是运行 **dircolors** 命令。它会显示以下这些东西: +``` +$ dircolors +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do +=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg +=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01 +;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01 +;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=0 +1;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31 +:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*. +xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.t +bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.j +ar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.a +lz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.r +z=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*. +mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35: +*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35: +*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;3 +5:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01; +35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01 +;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01 +;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01 +;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;3 +5:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;3 +5:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;3 +6:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00; +36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00; +36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS + +``` + +如果你擅长解析文件,那么你可能会注意到这个列表有一个模式。加上冒号,你会看到这样的东西: +``` +$ dircolors | tr ":" "\n" | head -10 +LS_COLORS='rs=0 +di=01;34 +ln=01;36 +mh=00 +pi=40;33 +so=01;35 +do=01;35 +bd=40;33;01 +cd=40;33;01 +or=40;31;01 + +``` + +好的,我们在这里有一个模式 -- 一系列定义,有一到三个数字组件。让我们来看看其中的一个定义。 +``` +pi=40;33 + +``` + +有些人可能会问的第一个问题是“ pi 是什么?”我们在这里处理颜色和文件类型,所以这显然不是以 3.14 开头的有趣数字。当然不是,这个“ pi ” 代表“ pipe (管道)” -- Linux 系统上的一种特殊类型的文件,它可以将数据从一个程序发送到另一个程序。所以,让我们建立一个。 +``` +$ mknod /tmp/mypipe p +$ ls -l /tmp/mypipe +prw-rw-r-- 1 shs shs 0 May 1 14:00 /tmp/mypipe + +``` + +当我们在终端窗口中查看我们的管道和其他几个文件时,颜色差异非常明显。 + +![font colors][1] Sandra Henry-Stocker + +在 pi 的定义中(如上所示),“40” 是文件显示在带有黑色背景的终端(或 PuTTY)窗口中,31 使字体颜色变红。管道是特殊的文件,这种特殊的处理使它们在目录列表中突出显示。 + +**bd** 和 **cd** 定义是相同的 - 40;33;01 并且有一个额外的设置。设置会导致块(bd)和字符(cd)设备以黑色背景,橙色字体和另一种效果显示 -- 字符将以粗体显示。 + +以下列表显示由 **file type** 创建的颜色和字体分配: +``` +setting file type +======= ========= +rs=0 reset to no color +di=01;34 directory +ln=01;36 link +mh=00 multi-hard link +pi=40;33 pipe +so=01;35 socket +do=01;35 door +bd=40;33;01 block device +cd=40;33;01 character device +or=40;31;01 orphan +mi=00 missing? +su=37;41 setuid +sg=30;43 setgid +ca=30;41 file with capability +tw=30;42 directory with sticky bit and world writable +ow=34;42 directory that is world writable +st=37;44 directory with sticky bit +ex=01;93 executable + +``` + +你可能已经注意到,在我们的 **dircolors** 命令输出中,我们的大多数定义都以星号开头(例如,*.wav=00;36)。这些按**文件扩展名**而不是文件类型定义显示属性。这有一个示例: +``` +$ dircolors | tr ":" "\n" | tail -10 +*.mpc=00;36 +*.ogg=00;36 +*.ra=00;36 +*.wav=00;36 +*.oga=00;36 +*.opus=00;36 +*.spx=00;36 +*.xspf=00;36 +'; +export LS_COLORS + +``` + +这些设置(上面列表中的所有 00:36)将使这些文件名以青色显示。可用颜色如下所示。 + +![all colors][2] Sandra Henry-Stocker + +### 如何改变设置 + +所描述的颜色和字体变化要求你使用 ls 的别名来打开颜色功能。这通常是 Linux 系统上的默认设置,看起来是这样的: +``` +alias ls='ls --color=auto' + +``` + +如果要关闭字体颜色,可以运行 **unalias ls** 命令,然后文件列表将仅以默认字体颜色显示。 + +你可以通过修改 $LS_COLORS 设置和导出修改后的设置来更改文本颜色。 +``` +$ export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;... + +``` + +注意:上面的命令被截断了。 + +如果希望修改后的文本颜色是永久性的,则需要将修改后的 LS_COLORS 定义添加到一个启动文件中,例如 .bashrc。 + +### 更多关于命令行文本 + +你可以在 NetworkWorld 的 [2016 年 11 月][3]的帖子中找到有关文本颜色的其他信息。 + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3269587/linux/customizing-your-text-colors-on-the-linux-command-line.html + +作者:[Sandra Henry-Stocker][a] +选题:[lujun9972](https://github.com/lujun9972) +译者:[MjSeven ](https://github.com/MjSeven ) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.networkworld.com/author/Sandra-Henry_Stocker/ +[1]:https://images.idgesg.net/images/article/2018/05/font-colors-100756483-large.jpg +[2]:https://images.techhive.com/images/article/2016/11/all-colors-100691990-large.jpg +[3]:https://www.networkworld.com/article/3138909/linux/coloring-your-world-with-ls-colors.html