Что означают разные цвета в команде Ubuntu ls
? Например, когда я набираю команду ls
в одной из моих папок, я получаю один из файлов светло-зеленым цветом, другой (который является папкой) синим цветом с зеленым выделением.
Что означают эти цвета, и есть какое-либо руководство по всем цветам?
Для вашей информации:
Чтобы отключить цвет, вы должны прокомментировать следующие строки в .bashrc
.
# включить поддержку цвета ls, а также добавить удобные псевдонимы
#if [-x / usr / bin / dircolors]; тогда
# test -r ~/.dircolors & & eval "$ (dircolors -b ~/.dircolors)" || eval "$ (dircolors -b)"
# псевдоним ls = 'ls --color = auto'
# #alias dir = 'dir --color = auto'
# #alias vdir = 'vdir --color = auto'
#
# псевдоним grep = 'grep --color = auto'
# псевдоним fgrep = 'fgrep --color = auto'
# псевдоним egrep = 'egrep --color = auto'
#Fi
Также, если вы хотите увидеть свои собственные значения цвета bash, скопируйте / вставьте следующие коды в свой терминал.
& Лт;!- язык: bash - >
eval $ (echo "no: global default; fi: normal file; di: directory; ln: symbolic link; pi: named pipe; so: socket; door; bd: blocket device; cmi: missing file; su: set gid; stw: sticky другой для записи; extow:
{
IFS =:
для меня в $ LS_COLORS
делать
echo -e "\ e [$ {i # * =} m $ (x = $ {i% = *}; ["$ {!x} "] & & echo" $ {!x} "|| echo" $ x ") \ e [m"
сделанный
}
Выход: альт текст! Примечание:
man dir_colors
в терминале.Вы можете узнать, какие цвета использует ls
, посмотрев на переменную $ LS_COLORS
:
Кроме того, файлы раскрашены по атрибутам:
aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
tar, 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, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv.
Вся эта информация содержится в выводе dircolors --print-database
, но ее форматирование довольно нечитаемо.
Вот техническое объяснение того, что происходит:
Пример:
CHR 40;33;01
Цветовой код состоит из трех частей:
Первая часть перед точкой с запятой представляет текстовый стиль.
Вторая и третья части - цвет и цвет фона
Каждая часть может быть опущена, если начать слева. то есть. «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
) проходит через все имена файлов и сначала пытается сопоставить различные типы, такие как Исполняемый, Труба и тд. Затем он пытается сопоставить регулярные выражения, такие как * .wav, и печатает полученное имя файла, заключенное в эти изменяющие цвет инструкции для bash.
Если вы введете dircolors
(echo $ LS_COLORS
также работает) из командной строки, вы получите список кодов и цветов для множества типов файлов в 1 строке. dircolors --print-database
показывает им по 1 строке за раз. Вот короткий список (я пытался вставить самые важные из них). Внизу есть объяснение того, что представляют различные коды в конце каждой строки:
& Лт; pre > НОРМАЛЬНЫЙ 00 # глобальный дефолт, хотя все должно быть что-то. ФАЙЛ 00 # обычный файл DIR 01; 34 # каталог ССЫЛКА 01; 36 # символическая ссылка. (Если вы установите для этого значение «target» вместо a
ФИФО 40; 33 # труба SOCK 01; 35 # сокет ДВЕРЬ 01; 35 # дверь BLK 40; 33; 01 # блокировать драйвер устройства CHR 40; 33; 01 # драйвер символьного устройства ORPHAN 40; 31; 01 # symlink к несуществующему файлу или нестатуемому файлу SETUID 37; 41 # файл, который является setuid (u + s) SETGID 30; 43 # файл, который является setgid (g + s) STICKY_OTHER_WRITABLE 30; 42 # dir, липкий и другой для записи (+ t, o + w) ДРУГОЙ_ПРЕЗВЫЙ 34; 42 # dir, который можно писать по-другому (o + w) и не липкий STICKY 37; 44 # dir с набором липких бит (+ 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 & Лт; / pre >
00 = none 01 = bold 04 = underscore 05 = blink 07 = reverse 08 = скрытый
30 = черный 31 = красный 32 = зеленый 33 = желтый 34 = синий 35 = magenta 36 = голубой 37 = белый
40 = черный 41 = красный 42 = зеленый 43 = желтый 44 = синий 45 = magenta 46 = голубой 47 = белый
Если вы хотите поиграть с этим, вот пример того, как установить цвет для файла:
export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"
Это установит * .ogg
и .mp3
на bold magenta
. И если вы поместите его в файл .bashrc
, он станет постоянным.
Это расширяется на Ответ Karthick87.
ls -l
)#!/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
Вывод с настройкой по умолчанию:
Вывод с моей настройкой (пользовательские дирколоры и настраиваемая тема солнечного терминала):
Я получил описания от dircolors -p
и man dir_colors
и заполнил пробелы своим собственным исследованием.
Цвета и описания одинаковы с 14.04 до 17.10.
Ни один из ответов здесь не включает 256 вариантов цвета в последних версиях Ubuntu. У меня недостаток цвета (некоторые цвета доставляют мне неприятности друг другу), поэтому синий каталог по умолчанию на черном очень трудно для меня. Далее следует мое исследование, чтобы изменить это.
Введите dircolors -p | less
, чтобы увидеть ваш текущий цветовой код.
.bashrc по умолчанию уже должен быть настроен не только для использования системного цветового кода, но и для одного в ~/.dircolors, поэтому выведите выходные данные dircolors в .dircolor, чтобы вы могли начать с этого с помощью этой команды.
dircolors -p > ~/.dircolors
Возьмите этот [скрипт colortest][2] и запустите его с помощью команды colortest -w
, чтобы вы могли видеть все цвета одновременно. Выберите цвет. Мне нравится апельсин № 208. Я хочу, чтобы это был цвет текста, поэтому, используя эту информацию в расширенных цветовых кодах, я могу применить это.
Итак, у вас есть цвет, что теперь. Сначала мы должны создать строку.
Первым числом будет код атрибута, скорее всего 00, но если вы хотите, чтобы он мигал, перейдите к 05:
Выберите код атрибута: 00 = none 01 = bold 04 = underscore 05 = blink 07 = reverse 08 = скрыто
Затем выберите добавление ; 38; 5;
к этому коду атрибута, чтобы указать цвет текста, чтобы получить 00; 38; 5; а затем добавьте свой цвет. Я выбрал 208, поэтому я получаю 00; 38; 5; 208
.
Если вы хотите также поместить фон на него, выберите другой цвет (скажем, 56) со скриптом colortest и приложением ; 48; 5;
для фона и 56 для цвета, чтобы получить общую строку 00; 38; 5; 208; 48; 5; 56
.
Итак, теперь у вас есть это, что вы делаете с этим?
vim ~/.dircolors
и найдите раздел, который вы хотите изменить (для меня это DIR), на строку, которую мы определили выше "00; 38; 5; 208".
Это не будет применяться немедленно, вам нужно загрузить конфигурацию. Используйте dircolors ~/.dircolors
для кода get, чтобы установить переменную LS_COLORS. Вы можете просто вставить это в сеанс терминала или закрыть терминал и снова открыть его. Вы также можете отправить это в файл и запустить его как сценарий оболочки.
Вы можете сделать эту же процедуру с 16 цветами. Вам не нужны специальные вещи; 38; 5 или; 48; 5. Просто бросьте цифры в строку и наслаждайтесь простотой.
Спасибо Dan и seebi за их заметки и код по этому вопросу.
[2]: http://www.vim.org/scripts/script.php?script_id = 1349