В названии слишком громко сказано. Настраивать будем не всю консоль, я только строку приглашения (PROMPT)
Зачем это нужно? Зачастую бывает что откртыто в разных окошках по несколько баз данных. Одна отладочная, другая боевая… И можно совершенно случайно запустить запрос не на той базе. Да, возможно это не совсем правильно держать постоянно открытой консоль боевой базы. Но лень двигатель прогресса. Поэтому возникает задача как-то обозначить где какая база. Легче всего это сделать через разное оформление строки приглашения (PROMPT), которую показывает psql.
По умолчанию psql показывает в prompt имя базы в таком же оформлении что и весь текст в консоли. Но то что там показывать можно поменять. Впрочем как и цвет текста и фон.
Для этого в psql надо поменять переменную окружения PROMPT1. Делается это с помощью команды \set в консоли
\set PROMPT1 value
Или через параметр —set в коммандной строке при запуске psql
--set PROMPT1='value'
Значением параметра могжет быть строка содержащая коды подстановки postgres — которые позволяют задать данные подключения:
Например:
%n - имя пользовател %/ - имя текущй базы %M -полное имя хоста базы данных.
Подробнее можно посмотреть в документации — раздел Prompting.
Так же помимо данных подключения можно использовать специальные символы для задания цвета текста, его формления и фона. Делается это аналогично параметров PROMPT для шелла. Лучше рассмотреть это на примере.
Я использую следующую команду:
\set PROMPT1 '%[%033[1;31;47m%]%n@%/%R%[%033[0m%]%#'
В результате выводится имя пользователя и имя базы в виде «user@base». Выводится это жирным красным цветом на белом фоне.
За оформление текста отвечает последовательность «1;31;47»
Здесь первая цифира это код оформления текста:
0 - нормальный 1 - полужирный 2 - нормальный 3 - фонового цвета 4 - подчеркнутый 5 - мигающий
Вторая и третья цифра определяют цвет текста и цвет фона соответственно.
Коды цветов:
30 - черный 31 - красный 32 - зеленый 33 - желтый 34 - синий 35 - фиолетовый 36 - бирюзовый 37 - белый
Код цвета фона можно получить добавив 10 к цвету текста.
Не всегда все коды могут сработать корректно — во многом зависит от используемого терминала. Поэтому лучше экспериментировать.