# enable color support of ls and also add handy aliases
#if [ -x /usr/bin/dircolors ]; then
# test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
# alias ls='ls --color=auto'
# #alias dir='dir --color=auto'
# #alias vdir='vdir --color=auto'
#
# alias grep='grep --color=auto'
# alias fgrep='fgrep --color=auto'
# alias egrep='egrep --color=auto'
#fi
此外,如果您想查看自己的 bash 颜色含义,请在终端中复制/粘贴以下代码。
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
}
#!/bin/bash
# For each entry in LS_COLORS, print the type, and description if available,
# in the relevant color.
# If two adjacent colors are the same, keep them on one line.
declare -A descriptions=(
[bd]="block device"
[ca]="file with capability"
[cd]="character device"
[di]="directory"
[do]="door"
[ex]="executable file"
[fi]="regular file"
[ln]="symbolic link"
[mh]="multi-hardlink"
[mi]="missing file"
[no]="normal non-filename text"
[or]="orphan symlink"
[ow]="other-writable directory"
[pi]="named pipe, AKA FIFO"
[rs]="reset to no color"
[sg]="set-group-ID"
[so]="socket"
[st]="sticky directory"
[su]="set-user-ID"
[tw]="sticky and other-writable directory"
)
IFS=:
for ls_color in $LS_COLORS; do
color="${ls_color#*=}"
type="${ls_color%=*}"
# Add description for named types.
desc="${descriptions[$type]}"
# Separate each color with a newline.
if [[ $color_prev ]] && [[ $color != "$color_prev" ]]; then
echo
fi
printf "\e[%sm%s%s\e[m " "$color" "$type" "${desc:+ ($desc)}"
# For next loop
color_prev="$color"
done
echo
供您参考:
要关闭颜色,您必须注释掉
.bashrc
.此外,如果您想查看自己的 bash 颜色含义,请在终端中复制/粘贴以下代码。
输出:
笔记:
man dir_colors
终端。ls
您可以通过查看$LS_COLORS
变量找出使用的颜色:此外,文件按属性着色:
aac、au、flac、mid、midi、mka、mp3、mpc、ogg、ra、wav、axa、oga、spx、xspf。
焦油, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace,动物园,cpio,7z,rz。
jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v、vob、qt、nuv、wmv、asf、rm、rmvb、flc、avi、fli、flv、gl、dl、xcf、xwd、yuv、cgm、emf、axv、anx、ogv、ogx。
所有这些信息都包含在 的输出中
dircolors --print-database
,但其格式相当不可读。这是对正在发生的事情的技术解释:
例子:
颜色代码由三部分组成:
分号前的第一部分代表文本样式。
第二和第三部分是颜色和背景颜色:
每个部分都可以省略,假设从左边开始。即“01”表示粗体,“01;31”表示粗体和红色。并且您可以通过转义指令
\33[
并以m
. 33 或十六进制的 1B 是 ASCII 符号“ESCAPE”(ASCII 字符集中的特殊字符)。例子:以鲜红色打印“Hello World”。
ls
带有参数的命令--color=auto
(在 Ubuntu 上ls
是 的别名ls --color=auto
)遍历所有文件名,并首先尝试匹配不同的类型,例如 Executable、Pipe 等。然后它尝试匹配像 *.wav 这样的正则表达式并打印结果文件名,包含在这些用于 bash 的颜色更改指令中。[这扩展了Karthick87 的答案。]
完整列表,默认设置
ls -l
)请注意,大胆的红色看起来是橙色,黑色看起来是深灰色,青色看起来是蓝色/绿色,而大胆的洋红色看起来是紫色/粉红色/淡紫色。
显示颜色的脚本
使用默认设置输出:
使用我的设置输出(自定义 dircolors和自定义 Solarized终端主题):
我从
dircolors -p
和得到描述man dir_colors
,并用我自己的研究填补了空白。颜色和描述至少从 14.04 到 17.10 相同。
如果您从命令行键入
dircolors
(也可以),您将在 1 行中获得许多文件类型的代码和颜色列表。一次显示 1 行。这是一个简短的列表(我试图列出最重要的列表)。在底部有关于每行末尾的不同代码代表什么的解释:echo $LS_COLORS
dircolors --print-database
00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
如果你想玩这个,这里有一个关于如何为文件设置颜色的例子:
这将设置
*.ogg
和。如果你把它放在你的文件中,它将成为永久性的。.mp3
bold magenta
.bashrc
这里没有一个答案包括最新版本的 Ubuntu 中的 256 种颜色选项。我的颜色不足(有些颜色让我很麻烦)所以黑色的默认蓝色目录对我来说真的很难阅读。接下来是我为改变这一点所做的研究。
键入
dircolors -p |less
以查看您当前的颜色代码。默认的 .bashrc 应该已经配置为不仅可以利用系统颜色代码,而且还可以利用 ~/.dircolors 中的一个,因此将 dircolors 输出转储到 .dircolor 以便您可以使用此命令开始。
dircolors -p > ~/.dircolors
替代方案:从seebi 的solarized项目中选择一个非常相似的256 色dircolors 。
获取这个colortest 脚本并使用命令运行它,
colortest -w
这样您就可以一次看到所有颜色。选择一种颜色。我喜欢橙色#208。我希望它是文本颜色,因此在扩展颜色代码上使用此信息,我可以应用它。所以你有一个颜色,现在是什么。首先,我们必须创建字符串。
第一个数字将是一个属性代码,很可能是 00,但如果你想让它闪烁,请使用 05:
接下来选择附加
;38;5;
到该属性代码以指示您的文本颜色以获取 00;38;5; 然后附加你的颜色。我选了 208 所以我得到了00;38;5;208
.如果您还想在其上放置背景,请使用 colortest 脚本选择另一种颜色(假设为 56),并
;48;5;
为背景添加附加颜色,并为颜色选择 56 以获得总字符串00;38;5;208;48;5;56
.所以现在你有了它,你用它做什么?
vim ~/.dircolors
并找到您要更改的部分(对我来说是 DIR)到我们在“00;38;5;208”上方确定的字符串。这不会立即应用,您需要加载配置。使用
dircolors ~/.dircolors
获取代码来设置您的 LS_COLORS 变量。您可以将其粘贴到终端会话中,也可以关闭终端并重新打开它。您还可以将其通过管道传输到文件中并将其作为 shell 脚本运行。您可以使用 16 种颜色执行相同的过程。您不需要特殊的 ;38;5 或 ;48;5 东西。只需将数字扔进字符串并享受简单。
感谢Dan和seebi 对此的注释和代码。