我的 PC 中有一个 centos 和一个 ubuntu 虚拟机,每当我ls
在 centos 虚拟机中运行命令时,它都会打印出浅字体的文本。但在 ubuntu 中,相同的命令会以更粗的字体打印出文本。为什么?
答案1
正如其他人所指出的,着色是由--color
标志控制的。许多 Linux 发行版为ls
in或另一个 shell 启动文件设置了别名~/.bashrc
,并且别名包含此标志。
颜色本身由环境变量控制$LS_COLORS
。这通常也可以在您的 shell 启动脚本之一中通过调用读取配置文件的命令来设置,该文件dircolors
告诉它如何构造$LS_COLORS
.在 CentOS 和其他 RHEL 衍生版本上,默认配置文件是/etc/DIR_COLORS
.只是 CentOS 和 Ubuntu 选择了不同的ls
输出配色方案。
答案2
该ls
命令对于几乎所有 Linux 发行版都是通用的,并且行为类似。但是,shell 配置文件中的命令可能有别名。在 Ubuntu 20.04 中,默认的 bash 配置文件位于用户的主目录中,名为 .bashrc。它包含以下行:
alias ls='ls --color=auto'
因此,当您输入时ls
,您实际上正在执行ls --color=auto
。 CentOS 中可能有不同的别名或根本没有别名,或者您的 Ubuntu 安装中可能有与上述别名不同的别名。这可能是不同行为的原因