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.
fonte
\e[01;31m
, em\[...\]
. Isso é explicado em PROMPTING no manual. Veja também mywiki.wooledge.org/BashFAQ/053pwd
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) "
.Respostas:
Também dependerá de como você se torna o usuário root. Você precisa fazer a alteração no .bashrc do usuário raiz se estiver usando algo como
su - root
ousudo -i
, onde você lê no ambiente.Com
sudo -s
, você deve ler seu próprio .bashrc.Considere adicionar algumas instruções printf ou echo para depurar seu código, para informar quando ele foi executado.
Use o
id
comando para garantir que você é quem você pensa que é:fonte
sudo su
sudo su
lê ~ root / .bashrc (pelo menos como atualmente implementado no meu sistema 13.04).Para alterar a cor do prompt para vermelho como raiz, modifiquei o
.bashrc
arquivo, seguindo os exemplos neste segmento.Em seguida, no vim, procure a aparência final da
PS1
atribuição e adicione-a a seguir (observe que ele atualiza o valor de$PS1
modo que outras linhas anteriores não precisem ser modificadas e a alteração seja facilmente revertível):fonte
Após a resposta válida do belacqua /ubuntu//a/305053/12218 , emitindo sudo su, o .bashrc da raiz é carregado.
Você pode verificar isso emitindo
sudo su
seguido decd ~
você verá que está no diretório inicial do root.Usando
sudo su
o login como root (su = alternar usuário), ao contrário desudo do some administrative task
como usuário com privilégios elevados.Então, usando
sudo su
você se torna a raiz real e as alterações feitas no ambiente são feitas especificamente na raiz, ou seja:sudo su
seguidas porvim .bashrc
.fonte
A seguir pode ajudar
Isso será exibido
'> '
para o usuário normal e'# '
para o root. Isso ainda precisa estar na raiz.bashrc
também.fonte