Redian新闻
>
ls 命令输出的颜色:它们意味着什么? | Linux 中国

ls 命令输出的颜色:它们意味着什么? | Linux 中国

科技
 
导读:想知道 ls 命令输出中的颜色是什么?它们从何而来,又该如何设置?本文将为您一一解答。         
本文字数:3023,阅读时长大约:4分钟

想知道 ls 命令输出中的颜色是什么?它们从何而来,又该如何设置?本文将为您一一解答。

相信你一定使用过 ls 命令来 列出目录的内容🔗 itsfoss.com。在 Ubuntu 和许多其他发行版中,你将看到不同颜色的 ls 命令输出。

如果你没有看到过,你可以这样获得如下所示的彩色输出:

  1. ls --color=auto

但是你有没有想过这些颜色在 ls 命令输出中意味着什么?

我将回答本文中的问题。如果你的终端默认情况下不显示它,我还将展示如何使用 ls 命令获取彩色输出

Ubuntu 中 ls 命令中使用的颜色的含义

🚧 ls 命令输出的颜色没有固定的标准。不同的终端和发行版使用不同的颜色编码,你也可以根据自己的喜好进行修改。换句话说,不要依赖颜色。

我在本节中使用默认的 Ubuntu 终端及其颜色配置文件。

当你 使用 ls 命令列出文件🔗 itsfoss.com 时,它会使用不同的颜色来指示不同类型的文件。

大多数终端都会以不同的颜色显示可执行文件、链接、常规文件和目录,以便你可以轻松区分它们。

有些终端(例如 Ubuntu 中的默认终端)将其提升到一个新的水平,并为音乐文件、图像和视频添加更多颜色。

为了演示,我列出了来自不同目录的文件,这些文件在 Ubuntu 中用不同的颜色填充了我的终端窗口:

different colors used by the ls command

看起来很混乱?让我一一为你解密吧!

< 如显示不全,请左右滑动 >
颜色描述
粗体蓝色目录
无色文件或硬链接
粗体青色指向文件的符号链接。
粗体绿色可执行文件(.sh 扩展名的脚本)
粗体红色归档文件(主要是 tarball 或 zip 文件)
洋红色表示图像和视频文件
青色音频文件
黄色配黑色背景管道文件(称为 FIFO)
粗体红色配黑色背景损坏的符号链接
无色(白色)配红色背景表示设置用户 ID 文件
黑色配黄色背景表示设置组 ID 文件
白色与蓝色背景显示粘滞位目录
蓝色配绿色背景指向其他可写目录
黑色配绿色背景当目录同时具有粘滞位和其他可写目录的特征时

📋 再次强调,上述颜色数据基于终端的默认设置,如果更改调色板,将不会得到类似的结果。

但是如果你的终端不显示任何颜色怎么办?好吧,这是有原因和解决方案的。

如果 ls 命令不显示彩色输出怎么办?

事情是这样的。默认情况下,ls 命令不应在输出中显示颜色。如果你使用 --color=auto 标志,它将显示颜色。

  1. ls --color=auto

那么为什么 ls 命令在 Ubuntu 和其他一些发行版中默认添加颜色呢?这是因为你的发行版为 ls 命令设置了别名,以便在执行 ls 命令时使用 --color=auto 标志:

  1. alias

因此,如果 ls 命令未显示彩色输出,则是因为默认情况下没有设置别名。

现在,每当你使用 ls 命令时,你都可以使用 --color=auto 标志。

Use --color=auto flag with the ls command to get the colored output

但这不太方便。相反,你应该创建别名并将其添加到 .bashrc 中,以便 ls 命令默认显示颜色。

为 ls 创建一个永久别名来显示颜色

要创建永久别名,首先,使用以下命令打开 .bashrc 文件:

  1. nano ~/.bashrc

使用 Alt + / 跳到文件末尾🔗 linuxhandbook.com 并 粘贴如下行到终端🔗 itsfoss.com:

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

完成后,保存更改并退出 nano🔗 linuxhandbook.com 文本编辑器。

要使你刚刚所做的更改生效,请 源引(source) .bashrc 文件:

  1. source ~/.bashrc

就是这样!从现在开始,你可以使用彩色输出。

ls 命令从哪里获取颜色?

现在有趣的部分来了。ls 命令的颜色在哪里定义?答案是 LS_COLORS 环境变量。

是的。这是名为 LS_COLORS 的特殊环境变量,它定义 ls 命令使用的颜色。

Value of the LS_COLORS env variable in Ubuntu

这很好,但是谁定义了这个变量呢?如果你想做出一些改变怎么办?我也来回答一下这些问题。

实际上,你有一个专门的 dircolors 命令来为 ls 命令设置颜色。

不同的 Shell 有不同的颜色配置文件格式。这就是为什么在使用此命令时应指定 Shell。

dircolors command output for bash

如你所见,它定义了 LS_COLORS 环境变量并将其导出,以便该变量可用于子 Shell。

现在,如果你想使用它,你可以将其复制粘贴到你的 .bashrc 文件或像这样重定向输出:

  1. dircolors -b >> .bashrc

并 源引(source) 该文件,以便效果立即可见。你只需要做一次。

理解颜色配置文件

LS_COLORS 包含由冒号(:)分隔的键值对数据。如果该值有多个部分,则它们之间用分号(;)分隔。

键通常是预定义的。值部分代表颜色。

因此,如果显示 ln=01;36,则表示对于符号链接,字体为粗体,颜色(36)为青色。

00 为正常,01 为粗体,4 为下划线。31 代表红色,32 代表绿色等。颜色代码遵循 ANSI 转义代码🔗 en.wikipedia.org

另一个例子。or=40;31;01 表示链接到不存在的文件(键为 or),使用黑色背景(颜色代码 40)、红色(31)和粗体字体(代码 01)。

我认为顺序并不重要,因为代码不重叠。31 是前景色红色的代码,41 是背景红色的颜色。因此,如果使用 41,你就知道它用于背景颜色。

使用 ls 命令执行更多操作

ls 命令可以做更多的事情,为此,我们制作了有关如何使用 ls 命令的详细教程:

在 Linux 中使用 ls 命令🔗 itsfoss.com

Abhishek Prakash 提供资料。

(题图:MJ/4d0f1f66-259f-4671-a3a8-158f61a38b10)


via: https://itsfoss.com/ls-color-output/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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

LCTT 译者 :geekpi
💎💎💎💎
翻译: 1994.5 篇
|
贡献: 3584 天
2013-10-25
2023-08-18
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
美债收益率创14年新高,意味着什么?在 Linux 中使用 cat 命令 | Linux 中国人生一切如初见-----五千米跑步漫记超导,对半导体意味着什么?Linux 中的 ls 命令使用教程 | Linux 中国世卫官宣:阿斯巴甜可能致癌!意味着什么?游戏行业“经营难”的这道坎,开放生态的微信游戏圈意味着什么?美国援助乌克兰陆军战术导弹,意味着什么?瓦格纳的结局依旧成谜,对俄罗斯政治进程意味着什么?口罩在中国华北这场创纪录暴雨,究竟意味着什么?RBC预测:下周央行会再加息!这对房主意味着什么?给我家狗狗做Reiki国庆长假文旅热潮对中国经济意味着什么?六月山海经(2)音乐产业的结构性变革背后,意味着什么?量子计算机即将到来,这对于网络安全意味着什么?商伟 x 杨立华:经验匮乏的时代,文学意味着什么?经济的最后一道防线:加拿大提高国内存款准备金到底意味着什么?三十岁,到底意味着什么?在 Linux 中使用 cd 命令 | Linux 中国美国宪法第二十八修正案(续)在 Linux 中使用 cp 命令 | Linux 中国加拿大人口超过4千万意味着什么?秋冬新冠疫情会不会再飙升?亚洲移民口腔保健情况如何?(视频)AI的“智能涌现”,对你意味着什么?5年新建120万套住房,工党地产新政意味着什么?专家:帮租客省下$320亿传中国将禁用苹果,意味着什么?柯文哲民调蹿升至第一,意味着什么?“美国1/4夫妻会在10年内离婚”,对我们又意味着什么?在线解读丨EB-5新政下第一个I-526E获批意味着什么?瓦格纳事件对俄意味着什么?俄专家这样说——房地产供求关系发生重大变化,对普通人意味着什么?如果韩国“炼”出常温超导,对中国芯片意味着什么?为了输出而输出的茶颜悦色,是第几次“翻车”了?这条关键通道,对中国意味着什么?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。