AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 17299
Accepted
Rafid
Rafid
Asked: 2010-12-15 00:15:44 +0800 CST2010-12-15 00:15:44 +0800 CST 2010-12-15 00:15:44 +0800 CST

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

  • 772

Ubuntuls命令中的不同颜色是什么意思?例如,当我在我的ls一个文件夹中键入命令时,其中一个文件为浅绿色,另一个(这是一个文件夹)为蓝色并突出显示绿色。

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

command-line colors ls
  • 5 5 个回答
  • 930281 Views

5 个回答

  • Voted
  1. Best Answer
    karthick87
    2010-12-15T00:18:23+08:002010-12-15T00:18:23+08:00
    • 蓝色:目录
    • 绿色:可执行或可识别的数据文件
    • 青色(天蓝色):符号链接文件
    • 黄色,黑色背景:设备
    • 洋红色(粉红色):图形图像文件
    • 红色:存档文件
    • 红色与黑色背景:断开的链接

    供您参考:

    • 要关闭颜色,您必须注释掉.bashrc.

      # 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       
      } 
      

    输出:
    终端输出

    笔记:

    • 有关更多信息,请输入man dir_colors终端。
    • 513
  2. Stefano Palazzo
    2010-12-15T00:57:13+08:002010-12-15T00:57:13+08:00

    ls您可以通过查看$LS_COLORS变量找出使用的颜色:

    • 绿松石:音频文件1
    • 亮红色:档案和压缩文件2
    • 紫色:图像和视频3

    此外,文件按属性着色:

    替代文字


    1. aac、au、flac、mid、midi、mka、mp3、mpc、ogg、ra、wav、axa、oga、spx、xspf。

    2. 焦油, 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。

    3. 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,但其格式相当不可读。

    这是对正在发生的事情的技术解释:

    例子:

    CHR 40;33;01
    

    颜色代码由三部分组成:

    • 分号前的第一部分代表文本样式。

      • 00=无,01=粗体,04=下划线,05=闪烁,07=反转,08=隐藏。
    • 第二和第三部分是颜色和背景颜色:

      • 30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=品红色,36=青色,37=白色。

    每个部分都可以省略,假设从左边开始。即“01”表示粗体,“01;31”表示粗体和红色。并且您可以通过转义指令\33[并以m. 33 或十六进制的 1B 是 ASCII 符号“ESCAPE”(ASCII 字符集中的特殊字符)。例子:

    "\33[1;31mHello World\33[m"
    

    以鲜红色打印“Hello World”。

    ls带有参数的命令--color=auto(在 Ubuntu 上ls是 的别名ls --color=auto)遍历所有文件名,并首先尝试匹配不同的类型,例如 Executable、Pipe 等。然后它尝试匹配像 *.wav 这样的正则表达式并打印结果文件名,包含在这些用于 bash 的颜色更改指令中。

    • 120
  3. wjandrea
    2017-02-18T13:05:39+08:002017-02-18T13:05:39+08:00

    [这扩展了Karthick87 的答案。]

    完整列表,默认设置

    • 无色(白色):
      • 文件
      • 非文件名文本(例如 的输出中的权限ls -l)
      • 多硬链接文件
    • 粗体蓝色:目录
    • 粗体青色:符号链接
    • 粗体绿色:可执行文件
    • 粗体红色:存档文件
    • 大胆的洋红色:
      • 图像文件、视频、图形等
      • 门
      • 插座
    • 青色:音频文件
    • 黄色,黑色背景:管道(AKA FIFO)
    • 黑底粗黄:
      • 块设备
      • 字符设备
    • 粗红黑底:
      • 孤儿符号链接
      • 丢失文件
    • 红色背景未着色:set-user-ID 文件
    • 黑底黄:set-group-ID 文件
    • 黑底红:有能力的文件
    • 白底蓝底:粘性目录
    • 蓝底绿:其他可写目录
    • 黑底绿:粘性和其他可写目录

    请注意,大胆的红色看起来是橙色,黑色看起来是深灰色,青色看起来是蓝色/绿色,而大胆的洋红色看起来是紫色/粉红色/淡紫色。

    显示颜色的脚本

    #!/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
    

    使用默认设置输出:

    gnome 终端截图 - 默认

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

    gnome 终端截图 - 自定义

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

    颜色和描述至少从 14.04 到 17.10 相同。

    • 49
  4. Rinzwind
    2011-09-15T00:25:35+08:002011-09-15T00:25:35+08:00

    如果您从命令行键入dircolors(也可以),您将在 1 行中获得许多文件类型的代码和颜色列表。一次显示 1 行。这是一个简短的列表(我试图列出最重要的列表)。在底部有关于每行末尾的不同代码代表什么的解释:echo $LS_COLORSdircolors --print-database

    NORMAL 00 # 全局默认值,虽然一切都应该有所作为。
    FILE 00 # 普通文件
    DIR 01;34 # 目录
    LINK 01;36 # 符号链接。(如果您将其设置为“目标”而不是
     # 数值,颜色与指向的文件相同。)
    FIFO 40;33 # 管道
    SOCK 01;35 # 插座
    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) 且不粘的目录
    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
    .ogg 00;36
    
    • 属性代码: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

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

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

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

    • 29
  5. flickerfly
    2013-03-23T12:45:17+08:002013-03-23T12:45:17+08:00

    这里没有一个答案包括最新版本的 Ubuntu 中的 256 种颜色选项。我的颜色不足(有些颜色让我很麻烦)所以黑色的默认蓝色目录对我来说真的很难阅读。接下来是我为改变这一点所做的研究。

    键入dircolors -p |less以查看您当前的颜色代码。

    默认的 .bashrc 应该已经配置为不仅可以利用系统颜色代码,而且还可以利用 ~/.dircolors 中的一个,因此将 dircolors 输出转储到 .dircolor 以便您可以使用此命令开始。 dircolors -p > ~/.dircolors

    替代方案:从seebi 的solarized项目中选择一个非常相似的256 色dircolors 。

    获取这个colortest 脚本并使用命令运行它,colortest -w这样您就可以一次看到所有颜色。选择一种颜色。我喜欢橙色#208。我希望它是文本颜色,因此在扩展颜色代码上使用此信息,我可以应用它。

    所以你有一个颜色,现在是什么。首先,我们必须创建字符串。

    第一个数字将是一个属性代码,很可能是 00,但如果你想让它闪烁,请使用 05:

    选择一个属性代码:00=无 01=粗体 04=下划线 05=闪烁 07=反转 08=隐藏

    接下来选择附加;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 对此的注释和代码。

    • 18

相关问题

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve