Antes de clicar fora, essa não é a pergunta típica "como faço para que meu prompt do bash tenha cor". Eu já personalizei meu prompt do bash para ficar assim:
[user @ host]----[$(pwd)]
$
onde tudo entre parênteses é azul claro e todo o resto (incluindo $) é preto adicionando o seguinte ao meu arquivo ~ / .bashrc
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
O objetivo é torná-lo tal que a única coisa que muda quando uso 'sudo su' é que o $ preto mude para um # vermelho. Procurei em /etc/bash.bashrc e / etc / profile para ver se há apenas uma linha para comentar, mas há um monte de coisas sobre debian_chroot que eu não entendo e não quero estragar alguma coisa. Como posso realizar o que quero?
PS É assim que eu quero que o prompt pareça como root
[user @ host]----[$(pwd)]
(red)#
edit: Marque isso resolvido, acrescentando o código acima a ~ / .bashrc enquanto o root cumpria meu objetivo. Além disso, no código acima, $ (pwd) exibe apenas o diretório inicial (acho que porque esse é o diretório de trabalho quando o terminal é aberto) e nunca é atualizado. Substituir $ (pwd) por \ w corrige isso, mas exibe o diretório inicial como ~
, o que eu estava tentando evitar.
\e[01;31m
, em \[...\]
. Isso é explicado em PROMPTING no manual. Veja também mywiki.wooledge.org/BashFAQ/053
pwd
não funcionou no prompt é que você precisa escapar do cifrão, caso contrário, $(pwd)
será executado antes do conteúdo ser colocado em $ PS1. Você pode testá-lo com esta: PS1="\$(pwd) "
.