Можно ли изменить цвета в командной строке для user@computer, а также отображение текущего каталога и командной части командной строки?
Я уже видел нечто подобное, сделанное пользователями OSX, но я не знаю, как сделать то же самое в терминале gnome (я могу изменять только цвета переднего плана и фона).
Это было бы очень полезно, например, при попытке скомпилировать программы с ошибками, поскольку длинные неформатированные сообщения затрудняют различение, какие строки являются командами, а какие выводятся.
Обратите внимание на ту часть \u@\h в нем написано "user@host" и номер перед ним \[\033[01;32m\] указывает на цвет. Это то, что вы должны изменить. Например, давайте изменим пользователя на фиолетовый, символ "@" на черный, а хост - на зеленый. Отредактируйте строку так, чтобы она выглядела следующим образом:
Вы можете попробовать Генератор BASHRC. Это, безусловно, самый простой способ получить приглашение, которое вы хотите. Я заметил, что цвета, определенные здесь, могут отличаться от вашей собственной системы, но это небольшая проблема. С помощью сгенерированного кода вы можете самостоятельно изменять цвета.
В этой последней подсказке есть один приятный штрих. Он добавляет новую строку после запроса и пустую новую строку перед ним. Теперь вы можете без проблем отобразить полный путь к каталогу, и это делает более понятным, с чего начинается новая команда, в случае длинного вывода.
Еще одно обновление, поскольку ЗШ теперь это оболочка по умолчанию в Macos. Это должно быть отредактировано в файле .zshrc:
NEWLINE=$'\n'DATE=$( date +"[%Y-%m-%d %H:%M:%S]" )PROMPT="${NEWLINE}%F{yellow}${DATE} %(!.%F{red}.%F{white})%n%F{cyan}@%m %F{yellow}%d${NEWLINE}%F{reset}> "
Короче говоря, вы можете изменить приглашение, отредактировав переменную среды $PS1. Здесь так много нужно сказать, что я просто покажу вам свою подсказку и направлю вас по ссылке выше для получения более подробной информации.
Части, связанные с цветом, находятся в функции setPrompt:
# This function from: https://wiki.archlinux.org/index.php/Color_Bash_Prompt_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#Wolfman.27s################################################### Fancy PWD display function################################################### The home directory (HOME) is replaced with a ~# The last pwdmaxlen characters of the PWD are displayed# Leading partial directory names are striped off# /home/me/stuff -> ~/stuff if USER=me# /usr/share/big_dir_name -> ../share/big_dir_name if pwdmaxlen=20##################################################bash_prompt_shortener() { # How many characters of the $PWD should be kept local pwdmaxlen=25 # Indicate that there has been dir truncation local trunc_symbol=".." local dir=${PWD##*/} pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen )) NEW_PWD=${PWD/#$HOME/\~} local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen )) if [ ${pwdoffset} -gt "0" ] then NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen} NEW_PWD=${trunc_symbol}/${NEW_PWD#*/} fi}function setPrompt { COLOR1="\[\033[1;33m\]" #First color COLOR2="\[\033[0;33m\]" #Second color NO_COLOR="\[\033[0m\]" #Transparent - don't change case $TERM in xterm*) TITLEBAR="\[\033]0;\h - \w\007\]" ;; *) TITLEBAR="" ;; esac local dash_open="${COLOR1}-${COLOR2}-" local dash_close="${COLOR2}-${COLOR1}-" local spacer="${COLOR2}-" local jobs_and_history="${COLOR2}(${COLOR1}\!${COLOR2}:${COLOR1}\j${COLOR2})" local user_host="${COLOR2}(${COLOR1}\u${COLOR2}@${COLOR1}\H${COLOR2})" local host="${COLOR2}(${COLOR1}\H${COLOR2})" local root_or_not="${COLOR2}(${COLOR1}\\\$${COLOR2})" local cwd="${COLOR2}(${COLOR1}\w${COLOR2})" #PS1="${TITLEBAR}${COLOR1}-${COLOR2}-(${COLOR1}\!${COLOR2}:${COLOR1}\j${COLOR2})-(${COLOR1}\w${COLOR2})-${COLOR1}-\n-${COLOR2}-(${COLOR1}\u${COLOR2}@${COLOR1}\H${COLOR2})-(${COLOR1}\\\$${COLOR2})-${COLOR1}- ${NO_COLOR}" #PS1="${TITLEBAR}${dash_open}${cwd}${spacer}${root_or_not}${dash_close}\n${dash_open}${jobs_and_history}${spacer}${host}${dash_close}${NO_COLOR} " #PS2="${COLOR2}--${COLOR1}- ${NO_COLOR}" PS1="${TITLEBAR}${COLOR1}"'${NEW_PWD}'"${COLOR2}:\$${NO_COLOR} " PS2="$spacer$dash_close$NO_COLOR "}bash_prompt_shortenersetPromptunset setPrompt#Determine and display the exit Status of the last command, if non-zero.function checkExitStatus() { local status="$?" local signal="" local COLOR1="\033[0;0;33m" #First color local COLOR2="\033[0;0;36m" #Second color local NO_COLOR="\033[0m" #Transparent - don't change if [ ${status} -ne 0 -a ${status} != 128 ]; then # If process exited by a signal, determine name of signal. if [ ${status} -gt 128 ]; then signal="$(builtin kill -l $((${status} - 128)) 2>/dev/null)" if [ "$signal" ]; then signal="$signal" fi fi echo -e "${COLOR1}[Exit ${COLOR2}${status} ${signal}${COLOR1}]${NO_COLOR}" 1>&2 #echo -ne "${COLOR1}[Exit ${COLOR2}${status}${COLOR1} ${COLOR2}${signal}${COLOR1}]${NO_COLOR} " 1>&2 fi return 0}print_prompt_time() { printf "%*s\r" $(tput cols) "$(date '+%T')"}promptCmd() { checkExitStatus print_prompt_time}PROMPT_COMMAND=promptCmd
В дополнение к цветам, моя подсказка имеет несколько других функций, таких как сокращенные имена каталогов (см. Функцию bash_prompt_shortener), автоматическое отображение статуса завершения последней команды, если оно не равно нулю (функция checkExitStatus) и отображение времени в крайних правых столбцах (функция print_prompt_time).
После получения удовлетворяющих вас результатов bash отредактируйте приглашение, выполнив следующее export командой или путем редактирования ~/.bashrc файл с nano текстовый редактор или vim:
Я написал письмо файл это может помочь вам настроить все
Запустите файл с началом . чтобы заставить его работать на том же терминале, иначе он создаст дочерний терминал, и его результаты не будут видны. Подобный этому:
W - Показывает полный путь до текущего рабочего каталога
h - Отображает имя системы
[\033[01;32m] - Предшествует текстуре текста
01 жирный шрифт
00 не выделено жирным шрифтом
{цвет}m
Black 0;30 Dark Gray 1;30 Blue 0;34 Light Blue 1;34 Green 0;32 Light Green 1;32 Cyan 0;36 Light Cyan 1;36 Red 0;31 Light Red 1;31 Purple 0;35 Light Purple 1;35 Brown 0;33 Yellow 1;33 Light Gray 0;37 White 1;37