Por que a cor do nome do usuário @ host muda após o fornecimento de um arquivo?

3

Eu percebi sempre que eu forneço um arquivo, a cor do usuário @ hostname muda:

Por quê?

    
por Billal Begueradj 09.06.2018 / 19:05

3 respostas

6

Porque ele carrega as configurações de usuário especificadas no arquivo /etc/bash.bashrc . E as configurações de prompt podem ser diferentes do contexto real do terminal. Para mais detalhes, veja as outras respostas com votos. :)

    
por COil 09.06.2018 / 19:11
6

Isso ocorre porque /etc/bash.bashrc define um novo valor para o seu prompt:

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
    
por muclux 09.06.2018 / 19:11
6

A aparência do prompt (a user@host thing) é controlada pela variável PS1 . Provavelmente você tem algo parecido com

PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]\$ '

no seu arquivo ~/.bashrc . Os caracteres estranhos \[3[00m\] etc. são usados para colorir o prompt. \u é o nome de usuário ( h4ck3r ), \h é o nome do host ( h4ck3rE780 ) e \w é o nome atual diretório ( ~ que denota seu diretório HOME).

Quando você seleciona /etc/bash.bashrc , a variável PS1 é definida para algum outro valor (sem cores) e você recebe um prompt diferente. É bem simples.

Tente

PS1='user=\u, host=\h, directory=\w $'

em uma janela de terminal e veja o resultado. A terceirização /etc/bash.bashrc não faz nada diferente (além dos parâmetros reais).

    
por PerlDuck 09.06.2018 / 19:29