你如何确定bash的颜色是什么意思?
在bash shell中执行ls
时,有时候会有颜色表示不同的资源types,您可以使用--color
参数来启用/控制它。
但是手册页和Google都没有提供这个问题的答案:
这些颜色默认显示什么内容,以及如何显示当前系统使用的内容?
更新:
感谢大家迄今为止的答案,但是为了更容易挑选出一个胜利者,任何人都可以更进一步,并提供一种以适用的颜色输出描述的方法。
嗯…我的例子不工作时发布(只有当预览),所以如果你预览这个代码,它会显示我的意思是…
<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
环境variables定义。 根据您的发行版,它会在shell启动时自动生成,使用~/.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中看到映射列表。 您可以通过在主目录中创build.dir_colors来覆盖它。
尝试“man 5 dir_colors”,看看它是如何设置在您的系统上。 我没有/ etc / DIR_COLORS,所以它必须设置在别的地方。
Google for LS_COLORS获取一些有用的链接。
编辑:要列出颜色,这个简单的bash脚本可能会提供一个想法:
IFS=: set $LS_COLORS for C in $* do IFS='=' set $C echo -e "\033[$2m$1\033[00m" done