Por que não obtenho minhas personalizações do bash quando efetuo login normalmente?

0

O prompt do shell do meu usuário está preso como

[bash-4.2]$
e muitos comandos úteis como ll não funcionam nesse shell bash-4.2.

Eu tentei os comandos chsh e usermod , mas não consertei isso.

Eu verifiquei no arquivo /etc/passwd , o shell associado ao meu usuário é /bin/bash . Os outros usuários também têm as mesmas linhas, mas esses usuários são apresentados com o prompt bash normal:

[vin@localhost ~]$

Meu ~/.bash_profile é

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

Tenho notado que quando eu faço login no meu usuário vin através da raiz ou de outra conta que tem o bash normal, ele permanece nesse tipo de bash, e não volta ao bash quebrado.

O que poderia estar errado? Alguém sabe como consertar isso?

    
por vin 21.12.2015 / 14:53

1 resposta

0

Isto: [bash-4.2]$ é chamado de "prompt do shell", não o "nome do shell".

O prompt do shell no Bash é armazenado em uma variável de shell comum chamada PS1 . O conteúdo de PS1 é uma cadeia de formato de prompt que consiste em uma mistura de texto comum, além de códigos especiais como \h para inserir o nome do host, \w para inserir o diretório de trabalho ou \$ para inserir o caractere # se o usuário for root ou $ caso contrário. Por exemplo:

PS1='\h:\w\$ '

Agora seu prompt parece:

machinename:/path/to/where/you/are$ _

O sublinhado representa o cursor. De acordo com a página man das versões recentes do Bash, o valor padrão do PS1 é \s-\v\$ , que produz o nome do shell, um traço literal, a versão do shell e um prompt não seguido por um espaço: exatamente o que você está vendo.

Leia a página man do Bash e pule para a seção PROMPTING para ler tudo sobre este tópico.

Os outros usuários têm um prompt melhor por causa de alguma diferença de configuração entre sua conta e a deles. Pode estar faltando alguns arquivos de configuração, como ~/.bash_profile e ~/.bashrc , ou PS1 não está configurado nesses arquivos. Talvez sua conta não tenha um diretório pessoal correto.

O comando chsh altera completamente seu shell de login, como em um programa diferente. Esta é a ferramenta para usar se você não quiser usar o Bash, mas algo como Zsh ou Tcsh. Não ocorrerá na sessão de chamada; isso afeta uma nova sessão de login.

    
por 21.12.2015 / 16:29