Перевага Linux полягає в тому, що за бажання в ньому можна налаштувати все, що завгодно. У цьому і виражається перевага проективних систем над процедурними. Це своєрідний конструктор, що складається з окремих блоків, кожен з яких можна налаштувати за своїм бажанням.
Особливо цікаво, якщо не просто копіюєш готові рішення, а намагаєшся розібратися, що і як влаштовано. І навіть вирішуючи несерйозне завдання, дізнаєшся щось нове.
Наприклад, вам захотілося налаштувати кольори терміналу linux у виводі команди ls.
З документації до ls можна зрозуміти, що встановлення кольорів для виведення здійснюється за допомогою утиліти dircolors, яка або встановлює параметри кольору зі своєї власної бази, або бере їх із файлу ~/.dircolors. Також згадувалося, що ініціалізація використання кольорів відбувається через ~/.bashrc, файл із налаштуваннями командної оболонки, а самі параметри визначаються через змінну LC_COLORS.
У .bashrc виявився скрипт такого змісту:

Його суть зводиться до перевірки на наявність утиліти dircolors у системі, присвоювання значення змінній і, в разі вдалого виконання, використання параметра --color=auto під час кожного виклику ls.
Якщо запустити утиліту dircolors, вона виводить значення змінної LC_COLOR.

Також можливе виведення значення змінної LC_COLORS у структурованому вигляді, зазначенням ключа:
$ dircolors -p
Оскільки висновок виходить довгий, наводити його не буду.
Якщо переспрямувати виведення dircolors -p > ~/.dircolors, то буде створено структурований файл, з якого і будуть братися налаштування кольорів. Редагуючи цей файл і встановлюються налаштування кольору для виведення ls.
У створеному файлі .dircolors є підказка:

Встановлюючи послідовність через крапку з комою, отримуємо потрібний нам колір у консолі linux, згідно з переліченими. Кольори терміналу linux від 30 до 37 для кольору шрифту, а з 40 до 47 для фону. Наприклад:
DIR 01;34 передбачає, що імена директорій будуть виділятися жирним шрифтом і синім кольором.
Але таким способом виходить лише вісім кольорів, а сучасні емулятори терміналу здатні виводити як мінімум 256.
Існують і інші способи встановлення кольору. Наприклад, значення EXEC 38;5;208;1 - дає помаранчевий товстий шрифт у виконуваних файлів.
Щоб не перебирати кольори linux вручну, є вже готова таблиця кольорів

Підставляючи в значення кольору 38;5;x - де x колір із таблиці, отримуємо необхідний результат. Виходить щось на кшталт цього:

Як це працює? Річ у тім, що встановлення кольору виведення інформації в емуляторі термінала здійснюється за допомогою ANSI escape-кодів. Це певна послідовність символів, яка не виводиться на екран, проте впливає на виведення. Називається вона так, оскільки починається з [ - коду "Esc". Оскільки терміналів та емуляторів терміналів існує безліч, ці керуючі коди стандартизовані. Керування кольором через послідовність від 30 до 37 - це стандарт ECMA-48. Інформація про нього міститься в розділі console_codes.
Розібравшись, як встановлювати кольори linux через esc-коди, не важко буде переробити і розфарбувати рядок запрошення. За його виведення відповідає змінна PS1, яка визначена у файлі ~/.bashrc
У Linux Mint скрипт її ініціалізації має такий вигляд:

Тобто спершу визначається, чи запустив скрипт root або звичайний користувач. Оскільки в переважній більшості випадків має місце саме другий варіант, то і редагувати потрібно рядок, наступний після першого 'else'. Формат рядка розшифровано в документації по баш, у розділі "Promting". З нього випливає, що esc-послідовність має починатися з "[" і закінчуватися "]". Таким чином:
u - виводить ім'я користувача;h - виводить ім'я хоста;w - виводить ім'я робочої директорії;Що ще можна вивести в рядку запрошення:
d - дату, у форматі "Wed Dec 28";A - час у 24-годинному форматі;Введемо щось цікавіше:
PS1='${debian_chroot:+($debian_chroot)}[[01;32m] has you,u![[00m] [[01;34m]Blue pill[[00m] or [[31m]red?[[00m]--->$ '
І рядок запрошення набуде вигляду:
