Десь тут було обговорення з цієї теми, почате паном Андрієм, але шукати не дозволяє щвидкість інтернету
.
Отже:
Кольори тексту задаються за допомогою esc-послідовностей.
От як "\e[0;31m". Перша цифра - то 0 або 1 якщо вам потрібен темний або яскравий варіанти кольору відповідно. Друге число складається з двох цифр - перша то 3 або 4 - визначає встановлюється клоір символу чи фону. А друга цифра відповідає:
0 чорний, сірий 1 червоний
2 зелений 3 коричневий, жовтий
4 синій, блакитний 5 фіолетовий
6 синьо-зелений 7 сірий, білий
А щоб bash не вважала ваші псевдо-символи дійсно символами - їх треба засунути поміж \[ та \]. Наприклад у мене:
PS1="\[\e[1;31m\][\[\e[0;36m\]\u\[\e[1;37m\]:\[\e[0;32m\]\w\[\e[1;31m\]]\[\e[1;32m\]"