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 de amostra: chsh -s /bin/bash your_user
Fiquei surpreso por 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 eu mudo desse outro shell para o bash?
Você digita bash
. Se você quiser que isso seja uma permanente, altere o shell padrão para /bin/bash
editando /etc/passwd
.
Veja alguns trechos do meu /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
O último campo contém o shell, Modificando o campo após o último :
para um shell válido ou inválido funcionará. /bin/false
e /sbin/nologin
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 ele não possa fazer login (relatei um erro no Arch Linux, porque você pode logar graficamente sem ter um shell de login). /bin/bash
e /bin/zsh
são ambos shells válidos, consulte /etc/shells
para obter uma lista de shells válidos em seus sistemas. Aqui está o meu /etc/shells
se você estiver interessado.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Sim, você pode usar chsh
ou usermod
para fazer as mesmas coisas, lembre-se que esses são apenas arquivos de texto estruturados e TIMTOWTDI.
Se o chsh ou a edição manual da configuração não funcionar, mas um script ~ / .profile é executado no login, adicione esta linha:
exec /bin/bash --login
Tags shell