Стандартное приглашение в моей системе выглядело так:
PS1="[\u@\h \W]\$ "
Наиболее близкой частью этой конструкции, является вот эта часть кода:
"\n⌎ ${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\!\[\e[01;34m\] \$\[\e[00m\] "
 \n — символ перевода строки.
 
 "⌎ " — это просто два символа "⌎" и пробел.
 
- 
 
 \[ —
 
 \e[01;32m — \033[1;32m — активируем стиль: жирный зелёный
 
 \] —
 
 \e[01;34m — \033[1;34m — активируем стиль: жирный синий
 
 \] —
 
 \! — номер текущей команды
 
 \] —
 
 " \$" — это пробел и $
 
 \[ —
 
 \e[00m — \033[0m — сброс текущего стиля к изначальному
 
 \] —
 
 " " — пробел
 
Вообще, конструкции "\[" и "\]" тут что-то вроде визуальной обёртки. Не помню, зачем их вставил. Если их убрать, будет:
"\n⌎ ${debian_chroot:+($debian_chroot)}\e[01;32m\!\e[01;34m \$\e[00m "
Помимо этого, мною добавлены были лишние символы 0, до двухсимвольных конструкций. Их тоже можно убрать.
"\n⌎ ${debian_chroot:+($debian_chroot)}\e[1;32m\!\e[1;34m \$\e[0m "
Лично мне, такую конструкцию воспринимать сложнее.
Ещё можно поменять \e на \033
"\n⌎ ${debian_chroot:+($debian_chroot)}\033[1;32m\!\033[1;34m \$\033[0m "
Это - рабочая конструкция:
PS1="\n⌎ ${debian_chroot:+($debian_chroot)}\033[1;32m\!\033[1;34m \$\033[0m "
Можно попробовать ввести её в консоль.
Конструкция:
"\`if [ \$? = 0 ]; then echo … ; else echo … ; fi\`"
Позволяет отследить успешное выполнение команды или возврат ошибки.
Именно вот эту конструкцию из статьи:
"PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "
я вроде бы брал за основу.
Строки:
echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\];
и
echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\];
повторяют друг-друга по конструкции, но отличаются деталями. ; приходится экранировать из-за конструкции if.
 \e[33m — активируем стиль: жёлтый
 
 \e[31m — активируем стиль: красный
 
 \t — время
 
 \e[00m — сброс стиля
 
 " " — пробел
 
 \e[01\;32m — \033[1;32m — активируем стиль: жирный зелёный
 
 \e[01\;41m — \033[1;41m — активируем стиль: жирный и красный фон
 
 "\(^_^\)\" — довольная рожица
 
 "\(O_o\)\" — удивлённая рожица
 
 \e[00m — \033[0m — сброс стиля
 
 " " — пробел
 
 \e[32m — \033[32m — активируем стиль: зелёный
 
 \e[33m — \033[33m — активируем стиль: жёлтый
 
 \u — логин пользователя
 
 \e[33m — \033[33m — активируем стиль: жёлтый
 
 \e[31m — \033[31m — активируем стиль: красный
 
 @ — "@"
 
 \e[32m — \033[32m — активируем стиль: зелёный
 
 \e[33m — \033[33m — активируем стиль: жёлтый
 
 \h — имя хоста
 
 \e[00m — \033[0m — сброс стиля
 
Остался вот этот кусочек:
[\e[01;34m\] [ \w ]\[\e[00m\]
 \e[01\;34m — \033[1;34m — активируем стиль: жирный синий
 
 " [ " — " [ " \w — рабочий каталог/дирректория/папка
 
 " ] " — " ] "
 
 \e[00m — \033[0m — сброс стиля
 
Теперь, по прошествии времени и ещё раз разобравшись со всем заново, я могу всё переписать в стиле статьи, убрав лишнее.
Было:
.bashrc
PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\]; else echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\]; fi\`\[\e[01;34m\] [ \w ]\[\e[00m\]\n⌎ ${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\!\[\e[01;34m\] \$\[\e[00m\] "
Стало:
.bashrc
PS1="\`if [ \$? = 0 ]; then echo \e[33m\t\e[0m \e[1\;32m\(^_^\)\e[0m \e[32m\u\e[33m@\e[32m\h\e[0m; else echo \e[31m\t\e[0m \e[1\;41m\(O_o\)\e[0m \e[33m\u\e[31m@\e[33m\h\e[0m; fi\`\e[1;34m [ \w ]\e[0m\n⌎ ${debian_chroot:+($debian_chroot)}\e[1;32m\!\e[1;34m \$\e[0m "
Если заменить "\e" на "\033", то получится ближе к тексту статьи:
.bashrc
PS1="\`if [ \$? = 0 ]; then echo \033[33m\t\033[0m \033[01\;32m\(^_^\)\033[0m \033[32m\u\033[33m@\033[32m\h\033[0m; else echo \033[31m\t\033[0m \033[1\;41m\(O_o\)\033[0m \033[33m\u\033[31m@\033[33m\h\033[0m; fi\`\033[1;34m [ \w ]\033[0m\n⌎ ${debian_chroot:+($debian_chroot)}\033[1;32m\!\033[1;34m \$\033[0m "
И оно вроде как даже работает, но «глючит» при навигации по истории, например. В отличие от изначальной конструкции. Может, конструкции "\[" и "\]" были нужны или что-то лишнее удалил случайно, когда переписывал. Искать проблему сейчас — лень, но думаю, смысл я объяснил. Сам предпочту пользоваться старой конструкцией, проверенной мною же.