На этот вопрос уже есть ответ здесь:
Я следовал инструкциям здесь и в ссылке howto, которая там приведена. Однако нигде не сказано, как я могу изменить цвета различных частей, потому что сейчас я установил:
PS1='${debian_chroot:+($debian_chroot)}[\t] \u@\h:\w\$ '
Но текст все еще белый, как я могу сделать цифры времени зелеными, а имя пользователя и имя компьютера светло-голубыми? Я использую Ubuntu GNOME 15.04.
В первую очередь, откройте свой ~/.bashrc файл и включите цветные подсказки:
nano ~/.bashrc
не прокомментируйте затем строку #force_color_prompt=yes
Затем измените строку PS1 непосредственно под строкой if [ "$color_prompt" = yes ]; then
кому:
PS1='${debian_chroot:+($debian_chroot)}\[\033[00;32m\][\t] \[\033[01;34m\]\u@\h:\w\$ '
Как Вы видите, 01:34m является голубым, и 00:32m является зеленым. Светло-зеленый был бы 01:32m вместо 00:32m.
Нажмите CTRL + o и затем нажмите ENTER, чтобы сохранить файл. Нажмите CTRL + x для выхода из нано.
Затем выполните следующую команду для применения изменений путем "определения источника" bashrc файла:
. ~/.bashrc
Изменения должны теперь относиться к каждому недавно открытому терминалу при Вашем пользователе.
Вот тот, что мой друг и я продолжали работать. Это дает серую пунктирную линию, когда Вы - обычный пользователь, затем при выполнении команд как пользователь root это изменяется на красный и для пунктирной линии и для текста.
В Вашем .bashrc
файл, добавляет следующий код к нижней части файла:
if [ -f "$HOME/.bash_ps1" ]; then
. "$HOME/.bash_ps1"
fi
Править: Кроме того, добавьте его к нижней части /root/.bashrc
также. Это для того, если Вы переключаетесь на root
пользователь путем выдачи команды sudo su -
. (Остальная часть редактирования продолжена ниже кода),
Затем копия и остальная часть вставки этого кода в новый названный файл /home/<username>/.bash_ps1
# Fill with minuses
# (this is recalculated every time the prompt is shown in function prompt_command):
fill="--- "
reset_style='\[\033[00m\]'
# determine if root or not
a=$(id|awk -F\( '{print $1}')
if [ "$a" = "uid=0" ]
then
# for root
status_style=$reset_style'\[\033[1;31m\]' # bold red; use 0;37m for lighter color
command_style=$reset_style'\[\033[1;31m\]' # bold red
else
# for other users
status_style=$reset_style'\[\033[0;90m\]' # gray color; use 0;37m for lighter color
command_style=$reset_style'\[\033[1;29m\]' # bold black
fi
prompt_style=$reset_style
# Prompt variable:
PS1="$status_style"'$fill $(date +"%m/%d/%y ")\t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
# Reset color for command output
# (this one is invoked every time before a command is executed):
trap 'echo -ne "\033[00m"' DEBUG
function prompt_command {
# create a $fill of all screen width minus the time string and a space:
let fillsize=${COLUMNS}-18
fill=""
while [ "$fillsize" -gt "0" ]
do
fill="-${fill}" # fill with underscores to work on
let fillsize=${fillsize}-1
done
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
bname=$(basename "${PWD/$HOME/~}")
echo -ne "\033]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"
;;
*)
;;
esac
}
PROMPT_COMMAND=prompt_command
РЕДАКТИРОВАНИЕ (Часть 2): Теперь создайте ссылку на .bash_ps1
в Вашем /root
папка
sudo -s
cd /root
ln -s /home/<username>/.bash_ps1
Можно изменить любой вышеупомянутый код для установки потребностям. Это - то, которое я использую на самом деле на работе так, чтобы я знал, ввожу ли я в командах как a root
пользователь, который мог быть потенциально опасным. Плюс, метка времени появляется чуть выше каждой строки, которую Вы вводите, делая ее немного легче, если Вы прокручиваете назад для наблюдения, когда Вы ввели в той команде.
Надо надеяться, это помогает!