当你在bash shell执行ls,有时也有颜色表示不同的资源类型,并且可以使能/与--color参数进行控制。

但是,无论是帮助页,也不是谷歌提供了一个答案的问题:

什么是这些颜色默认显示,以及如何显示当前有哪些系统采用?


<强> 更新:

谢谢大家对到目前为止的答案,但是,使其更容易挑选赢家,任何人都可以走了一步,并在它们适用于颜色的方法来输出描述。

嗯...发布时(预览仅当)我的例子不工作,因此,如果您预览此代码,它会显示我的意思...

<ul style="list-style:none; background:black; margin:0;padding:0.5em; width:10em">
  <li style="color:blue">directory</li>
  <li style="color:aqua">symbolic link</li>
  <li style="color:#A00000;">*.tar files</li>
  <li style="color:white">...</li>
</ul>

感谢。

有帮助吗?

解决方案

的颜色由$LS_COLORS环境变量定义。根据你的发行版,当壳开始,使用~/.dircolors/etc/DIR_COLORS它是自动生成的。

修改

要列出的颜色的含义,使用此脚本:

eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
  IFS=:
  for i in $LS_COLORS
  do
    echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
  done
}

其他提示

运行命令dircolors -p将打印所有默认颜色设置。 请参见 http://linux.about.com/library/cmd/blcmdl1_dircolors.htm

您应该能够看到在/ etc / DIR_COLORS映射列表。你可以在你的主目录创建.dir_colors重写。

尝试“人5个DIR_COLORS”,看看它是如何设置您的系统上。矿井没有的/ etc / DIR_COLORS所以它必须设置在其他地方。

谷歌对于 LS_COLORS 作为一些有用的链接。

修改要列出的颜色,这简单的bash脚本可以给出一个想法:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top