【问题标题】:Where are default LS_COLORS set in RHEL 5.x?RHEL 5.x 中默认的 LS_COLORS 设置在哪里?
【发布时间】:2010-10-11 13:05:46
【问题描述】:

在 Red Hat Enterprise Linux 5.x 的终端中,运行:

[$] Env

返回(除其他外):

"LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33 . . ."

LS_COLORS中的大部分内容我在文件中找到:

/etc/DIR_COLORS

但是值“no=00:fi=00:di=01;34:ln=01;36:pi=40;33 等”,我没有成功找到,即使在通过系统搜索之后。

这些值是在哪些文件中定义的?

是的,我知道我可以将LS_COLORS 的内容设置为我喜欢的值, 但我想知道的是在哪里上面的值是定义的

【问题讨论】:

    标签: terminal redhat rhel ls-colors


    【解决方案1】:

    我想你要找的东西可以在/etc/profile.d/colorls.sh找到:

    # color-ls initialization
    
    alias ll='ls -l' 2>/dev/null
    alias l.='ls -d .*' 2>/dev/null
    
    COLORS=/etc/DIR_COLORS
    [ -e "/etc/DIR_COLORS.$TERM" ] && COLORS="/etc/DIR_COLORS.$TERM"
    [ -e "$HOME/.dircolors" ] && COLORS="$HOME/.dircolors"
    [ -e "$HOME/.dir_colors" ] && COLORS="$HOME/.dir_colors"
    [ -e "$HOME/.dircolors.$TERM" ] && COLORS="$HOME/.dircolors.$TERM"
    [ -e "$HOME/.dir_colors.$TERM" ] && COLORS="$HOME/.dir_colors.$TERM"
    [ -e "$COLORS" ] || return
    
    eval `dircolors --sh "$COLORS" 2>/dev/null`
    [ -z "$LS_COLORS" ] && return
    
    if ! egrep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null ; then
            alias ll='ls -l --color=tty' 2>/dev/null
            alias l.='ls -d .* --color=tty' 2>/dev/null
            alias ls='ls --color=tty' 2>/dev/null
    fi
    

    LS_COLORS 变量由dircolors --sh "$COLORS" 2>/dev/null 的输出评估设置,而dircolors --sh "$COLORS" 2>/dev/null 又从/etc/DIR_COLORS 接收其值。所以换句话说,LS_COLORS 中的值默认与DIR_COLORS 相同。

    您可以通过比较dircolors --sh "$COLORS" 的输出来证明这一点:

    $ dircolors --sh "$COLORS" 
    LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:';
    export LS_COLORS
    

    还有echo $LS_COLORS

    $ echo $LS_COLORS
    no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
    

    你有它。

    【讨论】:

      【解决方案2】:
        /etc/DIR_COLORS 
      

      上面的和下面的不一样

       /etc/DIR_COLORS.xterm.
      

      使用 SSH 终端文件登录时

      /etc/DIR_COLORS.xterm 
      

      已使用。

      【讨论】:

        【解决方案3】:

        来自 'dircolors' 手册页 ::

        如果指定了 FILE,则将其读取到 确定要使用的颜色 哪些文件类型和 扩展名。否则,预编译 使用数据库。有关详细信息 这些文件的格式,运行`dircolors --print-database'。

        所以看起来那些代码是在系统中编译的

        【讨论】:

          猜你喜欢
          • 2018-02-11
          • 1970-01-01
          • 1970-01-01
          • 2015-10-27
          • 2016-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多