Fiquei surpreso por ainda não encontrar essa pergunta no site. Então, hoje $
surgiu depois que eu entrei como um novo usuário. Isso foi inesperado porque o prompt do meu usuário principal começa com username@computername:~$
.
Então, como alterno desse outro shell para o bash?
$
surgiu eusername@computername:~$
não significa que não foi uma festa. A formatação exata do prompt é definida pela variável PS1, que pode ser configurada ou personalizada de maneira diferente para diferentes usuários.echo $SHELL
para descobrir qual é o seu shell atual./bin/sh
geralmente não significa muito que geralmente é um link simbólico para outra coisa. Digiteils -l /bin/sh
para ver o que é um link simbólico. Em alguns casos, ser um link simbólico para algo muda seu comportamento, não acho que o bash seja assim.bash
como/bin/sh
desativa muitos recursos do bash (entra no modo de conformidade com POSIX).Respostas:
Supondo que o shell desconhecido suporte a execução de um comando absoluto, você pode tentar:
/bin/bash
Para alterar o shell padrão, eu usaria
chsh(1)
. Uso da amostra:chsh -s /bin/bash $USER
fonte
/etc/passwd
chsh(1)
permitirá apenas mudar para um shell listado em/etc/shells
(e disponível, presumivelmente).chsh -l
lista as alternativas. Tenha cuidado, alguns (comonologin
) são definidos para contas que nunca devem ser usadas para fazer login (boa maneira de se bloquear), pode haver adições locais para usos especiais.Você digita
bash
. Se você quiser que isso seja permanente, altere o shell padrão para/bin/bash
edição/etc/passwd
.Aqui estão alguns trechos do meu
/etc/passwd
:O último campo contém o shell. A modificação do campo após o último
:
para um shell válido ou inválido funcionará./bin/false
e/sbin/nologin
ambos significam que o usuário não possui um shell de login real, embora se o pam não estiver configurado corretamente, isso não significa que eles não podem fazer login (eu relatei um bug sobre isso no Arch Linux, porque você pode fazer login graficamente sem ter um shell de login)./bin/bash
e/bin/zsh
são ambos shells válidos, consulte/etc/shells
uma lista de shells válidos em seus sistemas. Aqui está o meu,/etc/shells
se você estiver interessado.Sim, você pode usar
chsh
ouusermod
fazer as mesmas coisas, lembre-se de que estes são apenas arquivos de texto estruturados e TIMTOWTDI.fonte
chsh
vez de editar manualmente #passwd
/etc/passwd
Eu não queria listar nenhum deles, porque sempre o faço manualmente. O chsh e o usermod podem fazer isso.Se chsh ou editar manualmente a configuração não funcionar, mas um script ~ / .profile for executado no login, adicione esta linha:
fonte
touch ~/.bash_profile
ou, caso contrário, o bash se executará em um loop: o bash ocorre~/.profile
caso~/.bash_profile
não exista.