Як змінити кольори каталогів і файлів у команді ls
Якщо ви запустили ls
Ви побачите, що каталоги та файли, які ви бачите, розфарбовані відповідно до їх типу. Ви можете налаштувати власну колірну схему, щоб вибрати різні кольори тексту, кольори фону та форматування, напівжирний та підкреслений.
Як це працює
Колірна схема зберігається в змінній LS_COLORS. Щоб переглянути поточну колірну схему, ви можете вказати Bash друкувати вміст змінної:
echo $ LS_COLORS
Ви побачите довгий список типів файлів і коди чисел. Ми пояснимо, як самому створити такий список.
Перш ніж грати з цим, ми рекомендуємо зберегти поточний вміст змінної LS_COLORS до іншої змінної. Це дозволить вам швидко відновити налаштування за замовчуванням, не виходячи з оболонки та підписавшись, або закривши та знову відкривши вікно терміналу. Щоб зберегти поточний вміст змінної LS_COLORS до нової змінної з ім'ям ORIGINAL, виконайте такі дії:
ORIGINAL = $ LS_COLORS
Щоб скасувати зміни та відновити кольори за умовчанням, у будь-який час можна виконати таку команду:
LS_COLORS = $ ORIGINAL
Ваші зміни завжди тимчасові, доки ви не відредагуєте файл, щоб зробити їх новими. Ви завжди можете вийти і підписатися назад або закрити вікно терміналу, щоб відновити кольори за замовчуванням. Однак, це полегшує це за допомогою однієї швидкої команди.
Як встановити власні кольори
Змінна LS_COLORS містить список типів файлів разом з відповідними кольоровими кодами. Список за замовчуванням довгий, оскільки він визначає різні кольори для декількох різних типів файлів.
Давайте почнемо основний приклад, щоб продемонструвати, як це працює. Припустимо, ми хочемо змінити колір каталогів від напівжирного синього до напівжирного. Для цього можна виконати таку команду:
LS_COLORS = "di = 1; 31"
The di = 1;
трохи розповідає ls
що каталоги (di
) є ()=
) жирним (1;
) червоний (31
).
Проте, це просто дуже проста LS_COLORS змінна, яка визначає каталоги як один колір і залишає кожен інший тип файлу за замовчуванням. Припустимо, ми хочемо зробити файли з розширенням .desktop підкресленим блакитним кольором. Для цього можна виконати таку команду:
LS_COLORS = "di = 1: 31: *. Desktop = 4; 36"
Це розповідає ls
що каталоги (di
) є ()=
) жирним (1;
) червоний (31
) і (:
) будь-який файл, що закінчується на .desktop (* .desktop
) є (=
) підкреслено (4;
) cyan (36
).
Це процес збирання списку типів файлів і кольорів. Укажіть, скільки ви хочете, у вигляді filetype = color, розділяючи кожен з символом двокрапки (:).
Щоб зібрати свій власний список, вам просто потрібно знати список колірних кодів і кодів типів файлів. Для цього використовуються ті самі коди цифрових кольорів, які використовуються під час зміни кольору у рядку Bash.
Ось список кольорових кодів для тексту переднього плану:
- Чорний: 30
- Синій: 34
- Cyan: 36
- Зелений: 32
- Фіолетовий: 35
- Червоний: 31
- Білий: 37
- Жовтий: 33
Наприклад, оскільки жовтий текст є кольоровим кодом 33, слід використовувати di = 33
щоб зробити каталоги жовтими.
Ось список кольорових атрибутів тексту:
- Звичайний текст: 0
- Жирний або легкий текст: 1 (Це залежить від емулятора терміналу.)
- Dim Text: 2
- Підкреслений текст: 4
- Блимає текст: 5 (Це не працює в більшості емуляторів терміналів.)
- Текст на зворотній стороні: 7 (це інвертує кольори переднього плану та фону, тому ви побачите чорний текст на білому тлі, якщо поточний текст є білим текстом на чорному тлі.)
- Прихований текст: 8
При визначенні атрибута або декількох кодів кольору виділіть список кодів символом з комою (;). Вам не потрібно вказувати 0 для звичайного тексту, оскільки звичайний текст використовується, коли тут не вказується атрибут.
Наприклад, оскільки напівжирний текст є кольоровим кодом 1, а жовтий текст - кольоровим кодом 33, слід використовувати di = 1;
щоб зробити каталоги напівжирними. Можна також вказати більше одного атрибута. Наприклад, можна використовувати di = 1, 4, 33
щоб зробити каталоги напівжирними, підкресленими жовтими.
Ось список кольорових кодів фону:
- Чорний фон: 40
- Блакитний фон: 44
- Блакитний фон: 46
- Зелений фон: 42
- Фіолетовий фон: 45
- Червоний фон: 41
- Білий фон: 47
- Жовтий фон: 43
Наприклад, оскільки блакитний фон є кольоровим кодом 44, ви повинні використовувати di = 44
використовувати синій фон для каталогів. Ви також можете поєднати код кольору фону, код кольору переднього плану і стільки атрибутів, скільки вам потрібно. Наприклад, di = 1, 4, 33, 44
дасть вам сміливий, підкреслений жовтий текст на синьому тлі.
Ось список кодів типів файлів:
- Каталог: di
- Файл: fi
- Символічне посилання: ln
- Названа труба (FIFO): pi
- Гніздо: так
- Блок-пристрій: bd
- Пристрій символів: cd
- Символічне посилання на сиріт (вказує на файл, який більше не існує): або
- Відсутній файл (відсутній файл, на який вказує символ-сирота): mi
- Виконуваний файл (має дозвіл x): ex
- * .extension: Будь-який файл, що закінчується вказаним вами розширенням. Наприклад, використовуйте * .txt для файлів, що закінчуються на .txt, * .mp3 для файлів, що закінчуються на .mp3, * .desktop для файлів, що закінчуються на .desktop, або що-небудь ще. Можна вказати якомога більше різних розширень файлів.
Вкажіть стільки різноманітних типів кодів файлів, скільки вам потрібно, розділених символом:. Повторіть цей процес, щоб зібрати вашу змінну LS_COLORS.
Наприклад, припустимо, що ви хочете використовувати напівжирний текст для каталогів, підкреслений червоний текст для виконуваних файлів і жирний зелений текст на червоному тлі для файлів .mp3. Поєднуючи коди типів файлів і кольорові коди зі списків вище, ви отримаєте:
LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"
Як встановити нові кольори за замовчуванням
Тепер у вас є спеціальна змінна LS_COLORS, яка функціонує в поточному сеансі Bash. Тим не менш, ви, ймовірно, хочете зробити його постійним, щоб він автоматично використовувався, коли ви починаєте нову сесію Bash без необхідності запам'ятовувати це.
Ви можете налаштувати власну змінну LS_COLORS та будь-яку іншу змінну Bash, додавши її до файлу .bashrc облікового запису користувача. Цей файл знаходиться за адресою ~ / .bashrc. Отже, якщо ваше ім'я користувача bob, ви знайдете його в /home/bob/.bashrc. Існують й інші способи встановлення змінних середовища, але це просто.
Спочатку відкрийте цей файл у потрібному текстовому редакторі. Для прикладу ми будемо використовувати nano, але ви можете використовувати vi, emacs або що завгодно.
nano ~ / .bashrc
Додайте користувацьку змінну LS_COLORS до нового рядка в кінці файлу, наприклад:
LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"
Збережіть файл і вийдіть. У nano натисніть Ctrl + O, а потім натисніть клавішу Enter, щоб зберегти, потім натисніть Ctrl + X, щоб вийти.
Всякий раз, коли ви починаєте новий сеанс Bash, Bash прочитає файл .bashrc і автоматично встановить вашу змінну LS_COLORS. Щоб змінити кольори в майбутньому, поверніться до вашого файлу .bashrc і відредагуйте рядок LS_COLORS.
Ви також можете просто видалити LS_COLORS =
рядок, доданий до вашого файлу .bashrc, щоб знову використовувати кольори за замовчуванням. Якщо ви не встановите значення LS_COLORS, Bash буде використовувати типові кольори.