Výhodou Linuxu je, že si můžete cokoli přizpůsobit, pokud chcete. To je výhoda projektivních systémů oproti procedurálním. Jedná se o jakýsi konstruktor skládající se z jednotlivých bloků, z nichž každý lze libovolně přizpůsobit.
Zvláště zajímavé je, když nekopírujete jen hotová řešení, ale snažíte se pochopit, co a jak funguje. A i při řešení nezávažné úlohy se dozvíte něco nového.
Chcete například upravit barvy linuxového terminálu ve výstupu příkazu ls.
Z dokumentace k příkazu ls pochopíte, že nastavení barev výstupu se provádí pomocí nástroje dircolors, který buď nastavuje parametry barev z vlastní databáze, nebo je přebírá ze souboru ~/.dircolors. Bylo také zmíněno, že inicializace použití barev se provádí prostřednictvím ~/.bashrc, souboru s nastavením shellu, a že samotné parametry se definují prostřednictvím proměnné LC_COLORS.
V souboru .bashrc byl nalezen následující skript:

Jeho podstatou je kontrola přítomnosti nástroje dircolors v systému, přiřazení hodnoty proměnné a v případě úspěchu použití parametru --color=auto při každém volání ls.
Pokud spustíte nástroj dircolors, vypíše hodnotu proměnné LC_COLOR.

Hodnotu proměnné LC_COLORS je možné vypsat také ve strukturované podobě, a to zadáním klíče:
$ dircolors -p
Protože je výstup dlouhý, nebudu ho zde uvádět.
Pokud přesměrujete výstup dircolors -p > ~/.dircolors, vytvoří se strukturovaný soubor, ze kterého se převezme nastavení barev. Úpravou tohoto souboru a nastavením barev pro výstup ls.
Ve vytvořeném souboru .dircolors se nachází nápověda:

Nastavením posloupnosti přes středník získáme v linuxové konzoli barvu, kterou potřebujeme, podle uvedeného seznamu. Barvy linuxového terminálu jsou od 30 do 37 pro barvu písma a od 40 do 47 pro barvu pozadí. Například:
DIR 01;34 znamená, že názvy adresářů budou tučné a modré.
Tímto způsobem však získáte pouze osm barev, přičemž moderní emulátory terminálů jich umí zobrazit nejméně 256.
Existují i jiné způsoby nastavení barev. Například EXEC 38;5;208;1 dává oranžové tlusté písmo pro spustitelné soubory.
Abychom nemuseli procházet linuxové barvy ručně, existuje připravená tabulka barev

Dosazením hodnoty barvy 38;5;x - kde x je barva z tabulky, získáme potřebný výsledek. Dostaneme něco takového:

Jak to funguje? Jde o to, že nastavení barvy výstupních informací v emulátoru terminálu se provádí pomocí escape kódů ANSI. Jedná se o určitou sekvenci znaků, která se nevytiskne na obrazovku, ale ovlivní výstup. Nazývá se tak proto, že začíná [ - kódem "Esc". Protože existuje mnoho terminálů a emulátorů terminálů, jsou tyto řídicí kódy standardizovány. Barevné ovládání prostřednictvím posloupnosti od 30 do 37 je standardem ECMA-48. Informace o něm najdete v části konzolové_kódy.
Jakmile pochopíte, jak nastavit barvy linuxu prostřednictvím esc kódů, je snadné změnit design a barvu výzvy. Za jeho výstup je zodpovědná proměnná PS1, definovaná v souboru ~/.bashrc.
V Linux Mintu vypadá skript pro její inicializaci takto:

To znamená, že se nejprve zjistí, zda byl skript spuštěn rootem nebo běžným uživatelem. Protože v naprosté většině případů jde o druhou možnost, je třeba upravit řádek následující za prvním 'else'. Formát řádku je rozluštěn v dokumentaci k bashi, v části "Promting". Vyplývá z něj, že sekvence esc by měla začínat znakem "[" a končit znakem "]". Tedy:
u - vypíše jméno uživatele;h - vypíše jméno hostitele;w - vypíše jméno pracovního adresáře;Co dalšího může být vypsáno ve výzvě:
d - datum ve formátu "st 28. prosince";A - čas, ve 24hodinovém formátu;Představíme si ještě něco zajímavého:
PS1='${debian_chroot:+($debian_chroot)}[[01;32m] has you,u![[00m] [[01;34m]Blue pill[[00m] or [[31m]red?[[00m]--->$ '
A řádek výzvy bude vypadat takto:
