Где по умолчанию LS_COLORS установлен в RHEL 5.x?
В терминале в 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
к значениям, которые мне нравятся, но что меня интересует, так это то, где определены значения выше.
3 ответа
Я думаю, что вы ищете можно найти на /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
который в свою очередь получает свои значения от /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:
И там у вас есть это.
/etc/DIR_COLORS
Вышеуказанное не совпадает со следующим.
/etc/DIR_COLORS.xterm.
При входе через файл терминала SSH
/etc/DIR_COLORS.xterm
используется.
Из справочной страницы dircolors::
Если указан FILE, прочитайте его, чтобы определить, какие цвета использовать для каких типов файлов и расширений. В противном случае используется предварительно скомпилированная база данных. Для получения подробной информации о формате этих файлов запустите `dircolors --print-database'.
так что похоже эти коды скомпилированы в системе