ls中不同的颜色是什么意思?

Ubuntu的ls命令中的不同颜色是什么意思?例如,当我在我的一个文件夹中输入ls命令时,我得到的其中一个文件是浅绿色的,另一个(是一个文件夹)是蓝色的,有绿色高亮显示。

这些颜色是什么意思,有没有关于所有颜色的手册?

解决办法
  • 蓝色。目录
  • 绿色。可执行文件或公认的数据文件
  • 天蓝色。符号链接文件
  • 黄色,黑色背景。设备
  • 粉红色:图形图像文件
  • 红色:档案文件
  • 红色,黑色背景。破损的链接

供您参考。

  • 要关闭颜色,你必须在.bashrc中注释掉以下几行。

      # 启用ls的颜色支持,同时添加方便的别名
      #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&#39。
      #
      #alias grep='grep --color=auto'
      # alias fgrep='fgrep --color=auto'
      # alias egrep='egrep --color=auto&#39。
      #fi
  • 此外,如果你想看到你自己的bash颜色含义,那么在你的终端中复制/粘贴以下代码。

      eval $(echo "no:全局默认;fi:正常文件;di:目录;ln:符号链接;pi:命名管道;so:套接字;do:门;bd:块设备;cd:字符设备;or:孤儿符号链接;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
        做
          echo -e "e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )e[m"
        完成
      }

输出:

注意:

评论(8)

你可以通过查看$LS_COLORS变量来了解ls使用的颜色。

  • 绿松石色:音频文件1
  • 鲜红色。档案和压缩文件2
  • 紫色:图像和视频3
评论(1)

如果你在命令行中输入dircolorsecho $LS_COLORS也可以),你将在1行中得到许多文件类型的代码和颜色列表。dircolors --print-database一次显示1行。这里是一个简短的列表(我试图把最重要的放在里面)。在底部有一个关于每行末尾的不同代码代表什么的解释。

NORMAL 00 # 全局默认,尽管一切都应该是这样。
FILE 00 # 正常文件
DIR 01;34 # 目录
LINK 01;36 # 象征性链接。(如果你把这个设置为'目标'而不是一个
 # 而不是一个数字,那么颜色就是指向的文件的颜色)。)
FIFO 40;33 # 管道
SOCK 01;35 # socket
DOOR 01;35 # 门
BLK 40;33;01 # 块设备驱动器
CHR 40;33;01 # 字符设备驱动器
ORPHAN 40;31;01 # 符号链接到不存在的文件,或不存在的文件
SETUID 37;41 # 文件是 setuid (u+s) 的。
SETGID 30;43 # 文件是setgid(g+s)。
STICKY_OTHER_WRITABLE 30;42 # 粘性和其他可写的文件 (+t,o+w)
OTHER_WRITABLE 34;42 # 其他可写(o+w)且不粘的dir
STICKY 37;44 # 设置了粘性位的目录(+t),并且不是其他可写的目录
# 存档或压缩(亮红色
.tar 01;31
.tgz 01;31
# 图像格式
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
# 音频格式
.aac 00;36
.flac 00;36
.ocg 00;36
  • 属性代码: 00=无 01=粗体字 04=下划线 05=闪烁 07=反转 08=隐蔽
  • 文本颜色代码:30=黑色 31=红色 32=绿色 33=黄色 34=蓝色 35=品红 36=青色 37=白色
  • 背景颜色代码: 40=黑色 41=红色 42=绿色 43=黄色 44=蓝色 45=玛瑙色 46=青色 47=白色

如果你想玩玩这个,这里有一个如何为一个文件设置颜色的例子。

export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"  

这将设置*.ogg.mp3bold magenta。如果你把它放在你的.bashrc文件中,它将成为永久性的。

评论(4)

这是对Karthick87'的回答的扩展。


在默认设置下

  • 非彩色(白色)。 文件非文件名文本(例如 ls -l输出中的权限。)
  • 蓝字。 目录
  • 粗青色。 象征性联系
  • 绿色**号字体。 可执行文件
  • 红色粗体。 档案文件
  • 粗体洋红色。 图像文件,视频,图形等 插座
  • 慈安**。 音频文件
  • 黄色,黑底。 管道(又称先进先出)
  • 黑底黄字*。 块状设备或*字符设备
  • 黑底红字。 孤儿符号链接文件丢失
  • 红色背景下的**无色。 set-user-ID文件
  • 黄底黑字**。 set-group-ID文件
  • 黑底红字。 有能力的文件
  • 白底蓝字的。 粘性目录
  • 蓝色,绿色背景。 其他可写目录
  • 黑色,绿色背景。 粘性和其他可写目录

脚本显示颜色

#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.

IFS=:
for ls_color in $LS_COLORS; do
    color="${ls_color#*=}"
    type="${ls_color%=*}"

    # Add descriptions for named types.
    case "$type" in
    bd) type+=" (block device)" ;;
    ca) type+=" (file with capability)" ;;
    cd) type+=" (character device)" ;;
    di) type+=" (directory)" ;;
    do) type+=" (door)" ;;
    ex) type+=" (executable file)" ;;
    fi) type+=" (regular file)" ;;
    ln) type+=" (symbolic link)" ;;
    mh) type+=" (multi-hardlink)" ;;
    mi) type+=" (missing file)" ;;
    no) type+=" (normal non-filename text)" ;;
    or) type+=" (orphan symlink)" ;;
    ow) type+=" (other-writable directory)" ;;
    pi) type+=" (named pipe, AKA FIFO)" ;;
    rs) type+=" (reset to no color)" ;;
    sg) type+=" (set-group-ID)" ;;
    so) type+=" (socket)" ;;
    st) type+=" (sticky directory)" ;;
    su) type+=" (set-user-ID)" ;;
    tw) type+=" (sticky and other-writable directory)" ;;
    esac

    # Separate each color with a newline.
    if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
        echo
    fi

    printf "\e[%sm%s\e[m " "$color" "$type"

    # For next loop
    color_prev="$color"
done
echo

默认设置下的输出。

[![gnome-terminal screenshot][1]][1]

我的设置的输出(自定义dircolors和自定义Solarized终端主题)。

[![gnome-terminal screenshot][2]][2]

我从 "dircolors -p "和 "man dir_colors "中得到了描述,并通过自己的研究填补了空白。

从14.04到17.10,颜色和描述都是一样的。

[1]: https://i.stack.imgur.com/6kknG.png [2]: https://i.stack.imgur.com/8Zbxl.png

评论(4)

这里没有一个答案包括Ubuntu最新版本中的256种颜色选项。 我'我有颜色缺陷(有些颜色让我在彼此附近有麻烦),所以黑色上默认的蓝色目录对我来说真的很难读懂。 下面是我的研究,以改变这种情况。

输入dircolors -p |less就可以看到你当前的颜色代码。

默认的.bashrc应该已经配置好了,不仅可以利用系统的色码,还可以在~/.dircolors中配置一个,所以把dircolors的输出转储到.dircolor中,这样你就可以用这个命令开始了。 dircolors -p > ~/.dircolors

备选方案:seebi's solarized项目中提取一个非常类似的256色dircolors。

抓取这个[colortest脚本][2],并用colortest -w命令运行它,这样你就可以一次看到所有的颜色。 选择一种颜色。 我喜欢橙色#208。 我想让它成为文本颜色,所以利用这个扩展颜色代码的信息,我可以应用它。

所以你有了一个颜色,现在怎么办。 首先我们要创建字符串。

第一个数字将是一个属性代码,最有可能是00,但如果你想让它闪烁就用05。 选一个属性码: 选择一个属性代码 00=none 01=粗体 04=下划线 05=闪烁 07=反转 08=隐蔽

接下来挑选在该属性码上追加;38;5;来表明你的文字颜色,得到00;38;5。 然后追加你的颜色。 我选了208,所以我得到00;38;5;208

如果你想在它上面也放一个背景,用colortest脚本选择另一种颜色(让我们'say 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][3]和[seebi][4]对此的注释和代码。

1:

[2]: http://www.vim.org/scripts/script.php?script_id=1349 [3]: _COPY15@gnu.org/msg11030.html [4]: [4]:https://github.com/seebi/dircolors-solarized

评论(2)