Aqui está um que um amigo meu e eu estamos trabalhando. Ele dá uma linha pontilhada cinza quando você é um usuário normal e, em seguida, se você estiver executando comandos como usuário root, ele mudará para vermelho tanto para a linha tracejada como para o texto.
Noseuarquivo.bashrc
,adicioneoseguintecódigoaofinaldoarquivo:
if[-f"$HOME/.bash_ps1" ]; then
. "$HOME/.bash_ps1"
fi
EDIT: Além disso, adicione-o à parte inferior do /root/.bashrc
também. Isto é para se você mudar para o usuário root
emitindo o comando sudo su -
. (o restante da edição continua abaixo do código)
Copie e cole o restante deste código em um novo arquivo chamado /home/<username>/.bash_ps1
# Fill with minuses
# (this is recalculated every time the prompt is shown in function prompt_command):
fill="--- "
reset_style='\[3[00m\]'
# determine if root or not
a=$(id|awk -F\( '{print $1}')
if [ "$a" = "uid=0" ]
then
# for root
status_style=$reset_style'\[3[1;31m\]' # bold red; use 0;37m for lighter color
command_style=$reset_style'\[3[1;31m\]' # bold red
else
# for other users
status_style=$reset_style'\[3[0;90m\]' # gray color; use 0;37m for lighter color
command_style=$reset_style'\[3[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 "3[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 "3]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}sudo -s
cd /root
ln -s /home/<username>/.bash_ps1
7"
;;
*)
;;
esac
}
PROMPT_COMMAND=prompt_command
EDIT (Parte 2): Agora crie um link para o .bash_ps1
na sua pasta /root
if [ -f "$HOME/.bash_ps1" ]; then
. "$HOME/.bash_ps1"
fi
Você pode alterar qualquer um dos códigos acima para atender às suas necessidades. Este é um que eu uso realmente no trabalho para que eu saiba se estou digitando comandos como um root
user que poderia ser potencialmente perigoso. Além disso, o registro de data e hora aparece logo acima de cada linha que você digita, facilitando um pouco se você rolar de volta para ver quando digitou o comando.
Espero que isso ajude!