Відповіді:
До твого відома:
Щоб вимкнути колір, вам слід прокоментувати наступні рядки в .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
термінал. eval
сценарію тут: github.com/gkotian/gautam_linux/blob/master/scripts/colours.sh
Ви можете дізнатися, які кольори 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, 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
Код кольору складається з трьох частин:
Перша частина перед крапкою з комою представляє стиль тексту.
Друга і третя частина - це колір і колір тла:
Кожну частину можна опустити, якщо припустити, що починається зліва. тобто "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.
Якщо ви введете dircolors
( echo $LS_COLORS
також працює) з командного рядка, ви отримаєте список кодів і кольорів для безлічі файлів у 1 рядку. dircolors --print-database
показує їх по 1 рядку за раз. Ось короткий список (я намагався внести найважливіші). Внизу є пояснення про те, що представляють різні коди в кінці кожного рядка:
NORMAL 00 # глобальний за замовчуванням, хоча все повинно бути щось. ФАЙЛ 00 # звичайний файл DIR 01; 34 # каталог ПОСИЛАННЯ 01; 36 # символічне посилання. (Якщо ви встановите це значення "target" замість a # числове значення, колір є для вказаного файлу.) FIFO 40; 33 # труба SOCK 01; 35 # розетка ДВЕРІ 01; 35 # двері BLK 40; 33; 01 # блок драйверів пристрою CHR 40; 33; 01 # драйвер пристрою символів ORPHAN 40; 31; 01 # символьне посилання на неіснуючий файл або нестабільний файл SETUID 37; 41 # встановлений файл (u + s) SETGID 30; 43 # встановлений файл (g + s) STICKY_OTHER_WRITABLE 30; 42 # dir, який є липким та іншим, що можна записати (+ t, o + w) OTHER_WRITABLE 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
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
і .mp3
до bold magenta
. І якщо ви помістите його у свій .bashrc
файл, він стане постійним.
pdf
файлу, процес використовувати export
? Чи можна просто додати одне розширення до LS_COLORS
змінної за замовчуванням ?
Це пояснюється відповіддю Картіка87 .
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
Вихід з налаштуваннями за замовчуванням:
Вихід з моїм налаштуванням (спеціальні кольори та спеціальна тема терміналу Solarized):
Я отримав описи від dircolors -p
та man dir_colors
заповнив прогалини своїми власними дослідженнями.
Кольори та описи однакові з 14.04 до 17.10.
rs
засоби RESET
, mh
засоби MULTIHARDLINK
, ca
засоби CAPABILITY
тощо?
dircolors -p
.
dircolors -p
не говорить rs це RESET 0 # скинути до "нормального" кольору .
Жодна з відповідей тут не містить 256 варіантів кольорів в останніх версіях Ubuntu. У мене дефіцит кольору (деякі кольори створюють неприємності поруч один з одним), тому синій каталог за замовчуванням на чорному мені дуже важко читати. Далі слід моє дослідження, щоб змінити це.
Введіть, dircolors -p |less
щоб побачити свій поточний код кольору.
За замовчуванням .bashrc повинен бути налаштований не лише для використання системного коду кольорів, але і для одного в ~ / .dircolors, щоб скинути виведення дикольорів у .dircolor, щоб ви могли почати з цього, використовуючи цю команду.
dircolors -p > ~/.dircolors
Альтернатива: підберіть дуже подібні 256 кольорових кольорів з соляризованого проекту Seebi .
Візьміть цей кольоровий сценарій і запустіть його командою, colortest -w
щоб ви могли побачити всі кольори одночасно. Виберіть колір. Мені подобається апельсин # 208. Я хочу, щоб це був колір тексту, тому використовуючи цю інформацію для розширених кольорових кодів, я можу це застосувати.
Отже, у вас є колір, тепер що. Спочатку ми повинні створити рядок.
Перше число буде кодом атрибута, швидше за все, 00, але якщо ви хочете, щоб він блимав, перейдіть з 05:
Виберіть код атрибута: 00 = немає 01 = жирний 04 = підкреслити 05 = блимати 07 = зворотно 08 = приховано
Далі виберіть додавання ;38;5;
до цього коду атрибута, щоб вказати колір тексту, щоб отримати 00; 38; 5; а потім додайте свій колір. Я вибрав 208, щоб я отримав 00;38;5;208
.
Якщо ви також хочете поставити на нього фон, виберіть інший колір (скажімо, 56) із кольоровим сценарієм та додатком ;48;5;
для фону та 56 для кольору, щоб отримати загальний рядок 00;38;5;208;48;5;56
.
Отже, тепер у вас є, що ви робите з цим?
vim ~/.dircolors
і знайдіть розділ, який ви хочете змінити (для мене це DIR) до рядка, який ми визначили вище "00; 38; 5; 208".
Це не застосовується негайно, вам потрібно завантажити конфігурацію. Використовуйте dircolors ~/.dircolors
для отримання коду, щоб встановити змінну LS_COLORS. Ви можете просто вставити це у свій термінальний сеанс або можете закрити свій термінал і знову відкрити його. Ви також можете передати це у файл та запустити його як сценарій оболонки.
Цю саму процедуру можна зробити з 16 кольорів. Вам не потрібні спеціальні речі; 38; 5 або; 48; 5. Просто киньте числа в рядок і насолоджуйтесь простотою.
eval
сценарій, що показує вихідне зображення кольорів для кожного типу, є геніальним ... дякую!