答案1
首先,打开你的 ~/.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退出 nano。
然后,运行以下命令,通过“获取”您的 .bashrc 文件来应用更改:
. ~/.bashrc
这些更改现在应该应用于您的用户下的每个新打开的终端。
答案2
这是我和朋友一直在研究的一个问题。当您是普通用户时,它会显示一条灰色虚线,而如果您以 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
您可以更改上述任何代码以满足您的需求。这是我在工作中实际使用的代码,这样我就可以知道我是否以用户身份输入了root
可能存在危险的命令。此外,时间戳会出现在您输入的每一行上方,如果您向后滚动查看输入该命令的时间,会更容易一些。
希望这有帮助!