在 Linux 命令行中自定义文本颜色 | Linux 中国

2018 年 7 月 12 日 Linux中国
在 Linux 命令行当中使用不同颜色以期提供一种根据文件类型来识别文件的简单方式。你可以修改这些颜色,但是在做之前应该对你做的事情有充分的理由。
-- Sandra Henry-stocker



致谢
编译自 | 
https://www.networkworld.com/article/3269587/linux/customizing-your-text-colors-on-the-linux-command-line.html
 
 作者 | Sandra Henry-stocker
 译者 | MjSeven 🌟 🌟 🌟 🌟 共计翻译:56 篇 贡献时间:162 天

在 Linux 命令行当中使用不同颜色以期提供一种根据文件类型来识别文件的简单方式。你可以修改这些颜色,但是在做之前应该对你做的事情有充分的理由。

如果你在 Linux 命令行上花费了大量的时间(如果没有,那么你可能不会读这篇文章),你无疑注意到了 ls 以多种不同的颜色显示文件。你可能也注意到了一些区别 —— 目录是一种颜色,可执行文件是另一种颜色等等。

这一切是如何发生的呢?以及,你可以选择哪些选项来改变颜色分配可能就不是很多人都知道的。

一种方法是运行 dircolors 命令得到一大堆展示了如何指定这些颜色的数据。它会显示以下这些东西:

   
   
     
  1. $ dircolors

  2. LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do

  3. =01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg

  4. =30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01

  5. ;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01

  6. ;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=0

  7. 1;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31

  8. :*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.

  9. xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.t

  10. bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.j

  11. ar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.a

  12. lz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.r

  13. z=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.

  14. mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:

  15. *.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:

  16. *.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;3

  17. 5:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;

  18. 35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01

  19. ;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01

  20. ;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01

  21. ;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;3

  22. 5:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;3

  23. 5:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;3

  24. 6:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;

  25. 36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;

  26. 36:*.spx=00;36:*.xspf=00;36:';

  27. export LS_COLORS

如果你擅长解析文件,那么你可能会注意到这个列表有一种模式patten。用冒号分隔开,你会看到这样的东西:

   
   
     
  1. $ dircolors | tr ":" "\n" | head -10

  2. LS_COLORS='rs=0

  3. di=01;34

  4. ln=01;36

  5. mh=00

  6. pi=40;33

  7. so=01;35

  8. do=01;35

  9. bd=40;33;01

  10. cd=40;33;01

  11. or=40;31;01

OK,这里有一个模式 —— 一系列定义,有一到三个数字组件。我们来看看其中的一个定义。

   
   
     
  1. pi=40;33

有些人可能会问的第一个问题是“pi 是什么?”在这里,我们研究的是颜色和文件类型,所以这显然不是以 3.14 开头的那个有趣的数字。当然不是,这个 “pi” 代表 “pipe(管道)” —— Linux 系统上的一种特殊类型的文件,它可以将数据从一个程序传递给另一个程序。所以,让我们建立一个管道。

   
   
     
  1. $ mknod /tmp/mypipe p

  2. $ ls -l /tmp/mypipe

  3. prw-rw-r-- 1 shs shs 0 May 1 14:00 /tmp/mypipe

当我们在终端窗口中查看我们的管道和其他几个文件时,颜色差异非常明显。

font colors

在 pi 的定义中(如上所示),“40” 使文件在终端(或 PuTTY)窗口中使用黑色背景显示,31 使字体颜色变红。管道是特殊的文件,这种特殊的处理使它们在目录列表中突出显示。

bd 和 cd 定义是相同的 —— 40;33;01,它有一个额外的设置。这个设置会导致 块设备block device(bd)和 字符设备character device(cd)以黑色背景,橙色字体和另一种效果显示 —— 字符将以粗体显示。

以下列表显示由文件类型file type所指定的颜色和字体分配:

   
   
     
  1. setting         file type

  2. =======         =========

  3. rs=0            reset to no color

  4. di=01;34        directory

  5. ln=01;36        link

  6. mh=00           multi-hard link

  7. pi=40;33        pipe

  8. so=01;35        socket

  9. do=01;35        door

  10. bd=40;33;01     block device

  11. cd=40;33;01     character device

  12. or=40;31;01     orphan

  13. mi=00           missing?

  14. su=37;41        setuid

  15. sg=30;43        setgid

  16. ca=30;41        file with capability

  17. tw=30;42        directory with sticky bit and world writable

  18. ow=34;42        directory that is world writable

  19. st=37;44        directory with sticky bit

  20. ex=01;93        executable

你可能已经注意到,在 dircolors 命令输出中,我们的大多数定义都以星号开头(例如,*.wav=00;36)。这些按文件扩展名file extension而不是文件类型定义显示属性。这有一个示例:

   
   
     
  1. $ dircolors | tr ":" "\n" | tail -10

  2. *.mpc=00;36

  3. *.ogg=00;36

  4. *.ra=00;36

  5. *.wav=00;36

  6. *.oga=00;36

  7. *.opus=00;36

  8. *.spx=00;36

  9. *.xspf=00;36

  10. ';

  11. export LS_COLORS

这些设置(上面列表中所有的 00;36)将使这些文件名以青色显示。可用的颜色如下所示。

all colors

如何改变设置

你要使用 ls 的别名来打开颜色显示功能。这通常是 Linux 系统上的默认设置,看起来是这样的:

   
   
     
  1. alias ls='ls --color=auto'

如果要关闭字体颜色,可以运行 unalias ls 命令,然后文件列表将仅以默认字体颜色显示。

你可以通过修改 $LS_COLORS 设置和导出修改后的设置来更改文本颜色。

   
   
     
  1. $ export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;...

注意:上面的命令由于太长被截断了。

如果希望文本颜色的修改是永久性的,则需要将修改后的 $LS_COLORS 定义添加到一个启动文件中,例如 .bashrc

更多关于命令行文本

你可以在 NetworkWorld 的 2016 年 11 月[1]的帖子中找到有关文本颜色的其他信息。


via: https://www.networkworld.com/article/3269587/linux/customizing-your-text-colors-on-the-linux-command-line.html

作者:Sandra Henry-Stocker[3] 选题:lujun9972 译者:MjSeven 校对:pityonline

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

Linux 是一系列类 Unix 计算机操作系统的统称。该操作系统的核心为 Linux 内核。Linux 操作系统也是软件和开放源代码发展中最著名的例子之一。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
257+阅读 · 2020年6月10日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
【ICIP2019教程-NVIDIA】图像到图像转换,附7份PPT下载
专知会员服务
53+阅读 · 2019年11月20日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
文本分析与可视化
Python程序员
8+阅读 · 2019年2月28日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
用 Python 和 OpenCV 检测图片上的条形码
Python开发者
5+阅读 · 2018年1月20日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
Joint Monocular 3D Vehicle Detection and Tracking
Arxiv
8+阅读 · 2018年12月2日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
257+阅读 · 2020年6月10日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
【ICIP2019教程-NVIDIA】图像到图像转换,附7份PPT下载
专知会员服务
53+阅读 · 2019年11月20日
相关资讯
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
文本分析与可视化
Python程序员
8+阅读 · 2019年2月28日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
用 Python 和 OpenCV 检测图片上的条形码
Python开发者
5+阅读 · 2018年1月20日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
Top
微信扫码咨询专知VIP会员