Решил сегодня поменять приглашение в терминале и консоли на более удобное и информативное.
Так это выглядит у меня в эмуляторе терминала:
И подробнее в пару строк
- Определение терминал это или консоль.
- Отображение времени, когда было закончено выполнение команды.
- Отображение загрузки процессора на момент выполнения команды.
- Отображение имени пользователя и хоста (если это root, то меняется цвет на красный).
- Если команда была закончена с ошибкой, то отображается код ошибки в круглых скобочках.
- Отображение текущего пути. Если путь превышает указанную длину (я остановился на цифре 25), то начало пути обрезается и заменяется на троеточие.
- До конца строки отображается разделитель (зависит от ширины терминала).
- На следующей строке отображается информация о GIT (если текущая директория находится внутри репозитория) и приглашение для ввода команды.
Мой текущий prompt
makePrompt() { # if we're in a Git repo, show current branch if [ "\$(type -t __git_ps1)" ]; then local BRANCH="\$(__git_ps1)" elif [ -d ".svn" ]; then local BRANCH="[ "`svn info | awk '/Last\ Changed\ Rev/ {print $4}'`" ]" fi local CURENT_PATH="\w" if [ "$TERM" != "dumb" ]; then local GREEN="\[\033[0;32m\]" local CYAN="\[\033[0;36m\]" local BCYAN="\[\033[1;36m\]" local BLUE="\[\033[0;34m\]" local GRAY="\[\033[0;37m\]" local DKGRAY="\[\033[1;30m\]" local WHITE="\[\033[1;37m\]" local RED="\[\033[0;31m\]" # return color to Terminal setting for text color local DEFAULT="\[\033[0;39m\]" fi # different prompt and color for root if [ "$UID" = "0" ]; then local USERNAME_COLORED="${RED}${USER}${GREEN}@${RED}${HOSTNAME}" local PRMT_COLORED="${RED}#" else local USERNAME_COLORED="${BCYAN}${USER}${GREEN}@${BCYAN}${HOSTNAME}" local PRMT_COLORED="${GREEN}$" fi # use only ASCII symbols in linux console if [ "$TERM" != "linux" -a "$TERM" != "dumb" -a "$TERM" != "cygwin" ]; then local TITLEBAR="\[\e]2;${CURENT_PATH}\a\]" fi local TOP_LINE="${CYAN}[ ${DEFAULT}\t ${USERNAME_COLORED} ${CYAN}] ${CYAN}[ ${GRAY}${CURENT_PATH}${CYAN} ]${GRAY}${SEPARATOR}" local BOTTOM_LINE="${CYAN}[ ${GREEN}${BRANCH}${PRMT_COLORED} ${DEFAULT}" export PS1="${TITLEBAR}\n${TOP_LINE}\n${BOTTOM_LINE}" } # Whenever displaying the prompt, write the previous line to disk: export PROMPT_COMMAND="history -a; history -n" makePrompt