трохи поекспериментував з кастомізацією запрошення в командній оболонці (bash prompt): додавав смайлики і навіть котиків, фарбував різні частини в усі кольори веселки тощо…

награвся і повернувся до стандартного, — не зовсім, але майже:
результат на знятку. в .bashrc таке:

export PS1='\[\e[2;37m\]\! \[\e[1;32m\]\u@\H\[\e[0m\] \w $(if [[ $? != 0 ]]; then echo "\[\e[31m\]"; fi)$([ \j -gt 0 ] && echo "\[\e[2;37m\][\j]\[\e[0m\] ")\$\[\e[0m\] '

виглядає трохи складно. але якщо врахувати, що всі фрагменти «\[\e[2;37m\]» — то лише кодування кольорів тексту, залишається основа, яка теж працюватиме:

export PS1='\! \u@\H \w $(if [[ $? != 0 ]]; then echo "(Error)"; fi)$([ \j -gt 0 ] && echo "[\j] ")\$ '

її нескладно розібрати на елементи:
налаштував і тішуся.

деякі питання й відповіді:

де перевірка root  чи не root?
немає. root використовує свій .bashrc, тому йдемо в його профіль (su root) і прописуємо все те саме йому в PS1, лише міняємо колір частини \u@\H (або лише \u, кому як більше до вподоби).

навіщо номери команд?
для зручності: !! в баш перезапускає останню команду, !<номер> ще раз запускає команду з певним номером, history 10 покаже десять останніх команд з номерами.

звісно, найпростіше тиснути стрілки вгору (ctrl+p) та вниз (ctrl+n), якщо потрібно знайти щось дуже неглибоко в історії — гадаю, більшість початківців так і роблять (особливо ті, хто в термінал зазирає лише раз на рік, коли щось поламається).

стоп! а де котики?!
простенький варіант з котиком, котрий посміхається або хмуриться залежно від результату виконання попередньої команди:

PS1='$(if [[ $? == 0 ]]; then echo "\[\e[32m\]😺"; else echo "\[\e[31m\]🙀"; fi)\[\e[0m\] \u@\H \w $ '

проблема в тому, що символ котика в деяких шрифтах може мати нестандартну ширину, це трохи збиває bash з пантелику.

що з цим робити?!
це стосується лише linux та командної оболонки bash. відкрити текстовим редактором (nano, micro, geany, gedit тощо) файл .bashrc:

nano ~/.bashrc

та додати останнім рядком:

export PS1='\[\e[2;37m\]\! \[\e[1;32m\]\u@\H\[\e[0m\] \w $(if [[ $? != 0 ]]; then echo "\[\e[31m\]"; fi)$([ \j -gt 0 ] && echo "\[\e[2;37m\][\j]\[\e[0m\] ")\$\[\e[0m\] '

після цього перезавантажити .bashrc:

source ~/.bashrc

все, має працювати, і навіть після перезавантаження.

я поліз в .bashrc і поламав своє запрошення!
просто в терміналі, не зважаючи на кракозябли, друкуємо (див. вище пояснення елементів):

export PS1='\u@\H:\w\$ '

і маємо мінімалістичний промпт — тоді гуглимо і навчаємося робити аварійні копії важливих файлів перед редагуванням =)

ти що, збоченець? хто у 21 столітті користується цими командами?
так. велика, величезна кількість збоченців користується.