Можно ли изменить цвета в командной строке для user@computer
, а также текущий каталог и командные части отображения подсказки?
Я уже видел нечто подобное, сделанное пользователями OSX, но я не знаю, как сделать то же самое в терминале gnome (я могу только менять цвета переднего плана и фона).
Было бы очень полезно, например, пытаться скомпилировать программы с ошибками, поскольку длинные неформатированные сообщения затрудняют различие, какие строки являются командами, а какие выводятся.
በፋይሉ ላይ አርትዖት የማድረግ ቅንብሮችን ማርትዕ ይችላሉ- ~ / .bashrc
.
ፋይሉን ይክፈቱ gedit ~ / .bashrc
።
መስመሩን ይፈልጉ በ # force_color_prompt = አዎ
እና ያልተለመደ (የ #
ን ሰርዝ]።
ከ ["$ color_prompt" = አዎ] ከሆነ ከ በታች ያለውን መስመር ይፈልጉ ፤ ከዚያ
መምሰል ያለበት:
PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
ለጉዳዩ ትኩረት ይስጡ \ u @ \ h
“ተጠቃሚ @ አስተናጋጅ” እያለ ነው ያለው እና ከፊቱ ያለው ቁጥር \ [\ 033 [01; 32m \]
ን ያመለክታል ቀለም. መለወጥ ያለብዎት ይህ ነው ፡፡ ለምሳሌ ፣ ተጠቃሚን ወደ ሐምራዊ ፣ “@” ን ወደ ጥቁር እና አስተናጋጅ ወደ አረንጓዴ እንዲቀይር ያስችለናል። መስመሩን እንዲመስል ያርትዑ
PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 35m \] \ u \ [\ 033 [01; 30m \] @ \ [\ 033 [01; 32m \] \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
ውጤት
ቀለሞቹ ቁጥሮች-
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
Вы можете попробовать BashrcGenerator . Это, безусловно, самый простой способ получить нужное вам приглашение. Я заметил, что определенные здесь цвета могут отличаться от вашей собственной системы, но это небольшая проблема. С помощью сгенерированного кода вы можете сами изменить цвета.
Пользователь сервера:
export PS1="\[\e[01;37m\][\[\e[0m\]\[\e[01;32m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;34m\]\h\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;37m\]\t\[\e[0m\]\[\e[01;37m\] \W]\\$ \[\e[0m\]"
Корень сервера:
export PS1="\[\e[01;37m\][\[\e[0m\]\[\e[01;31m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;34m\]\h\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;37m\]\t\[\e[0m\]\[\e[01;37m\] \W]\\$ \[\e[0m\]"
И при необходимости вы можете изменить цвет имени хоста, чтобы отразить другой тип серверов.
Я использую другой формат для моего локального компьютера:
export PS1="\[\e[01;33m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;36m\]\h\[\e[0m\]\[\e[00;37m\] \t \[\e[0m\]\[\e[01;35m\]\w\[\e[0m\]\[\e[01;37m\] > \[\e[0m\]"
Мой любимый сейчас:
export PS1="\n\[\e[01;33m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;36m\]\h\[\e[0m\]\[\e[00;37m\] \t \[\e[0m\]\[\e[01;35m\]\w\[\e[0m\]\[\e[01;37m\] \[\e[0m\]\n$ "
Это последнее приглашение имеет один приятный штрих. Он добавляет новую строку после приглашения и пустую новую строку перед. Теперь вы можете без проблем отобразить полный путь к каталогу, и это проясняет, где начинается новая команда, в случае длинного вывода.
Еще одно обновление, так как ZSH теперь является оболочкой по умолчанию на 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}> "
ለዝርዝሮች ይህንን ዝርዝር HOWTO ይመልከቱ።
በአጭሩ የ $ 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_shortener
setPrompt
unset 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
ን ይመልከቱ) ያሉ ሌሎች ጥቂት ባህሪያቶች አሉት ፣ nonzero (የ ተግባር CheckExitStatus
ቼክ ) ፣ እና በትክክለኛው አምዶች ውስጥ የጊዜ ማሳያ (ተግባር print_prompt_time
)።
Я написал файл , который может помочь вам настроить все
Выполнить файл с ведущим. чтобы запустить его на том же терминале, иначе он создаст дочерний терминал, и его результаты не будут видны. Как это:
. shorttern_path_terminal.sh
Как это работает:
Переменная PS1 управляет отображением терминала.
PS1 = '\ [\ e] 0; \ u @ \ h: \ w \ a \] \ [ \ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] $ ')
u - Относится к пользователю
w - Относится к текущему рабочему каталогу
W - Показывает полный путь до текущего рабочего каталога
h - Отображает имя системы
[\ 033 [01; 32m] - предшествует текстуре текста
01 жирный
00 не жирный
{color} m
Черный 0; 30 Темно-серый 1; 30
Синий 0; 34 Голубой 1; 34
Зеленый 0; 32 Светло-зеленый 1; 32
Голубой 0; 36 Светло-голубой 1; 36
Красный 0; 31 Светло-красный 1; 31
Фиолетовый 0; 35 Светло-фиолетовый 1; 35
Коричневый 0; 33 Желтый 1; 33
Светло-серый 0; 37 Белый 1; 37