Essa é uma boa pergunta, mas pode ser mais apropriada para o site de controle de qualidade do Linux.
BradleyDotNET
6
configure-o em / etc / passwd
resultsway
Respostas:
415
Tente o comando linux chsh.
O comando detalhada chsh -s /bin/bash. Ele solicitará que você digite sua senha. Seu shell de login padrão é /bin/bashagora. Você deve sair e fazer login novamente para ver esta alteração.
O seguinte é citado na página do manual:
O comando chsh altera o shell de login do usuário. Isso determina o nome do comando de login inicial do usuário. Um usuário normal pode alterar apenas o shell de login para sua própria conta, o superusuário pode alterar o shell de login para qualquer conta
Este comando alterará permanentemente o shell de login padrão.
Nota: Se sua conta de usuário for remota, como na autenticação Kerberos (por exemplo, Enterprise RHEL), você não poderá usá-lo chsh.
chsh: can only change local entries; use ypchsh instead. Então o ypchsh não tem -sopção #
mahmood
10
@ ShaktiMalik Acredito que o arquivo de configuração seja /etc/passwd, mas não o verifiquei duas vezes.
11132 Summer_More_More_Tea
30
Você deve sair e fazer login novamente para ver esta alteração.
Neil Traft
22
No meu caso, eu tinha acesso root, mas não queria mexer com nenhuma configuração no host real. Eu adicionei exec /bin/basha ~/.profilee isso me permitiu entrar directamente para o bash sem fazer quaisquer alterações para o servidor. (O shell padrão original era apenas /bin/sh)
Paul Nelson Baker
2
@BCqrstoO Obrigado por isso. Mas e se você digitar exitbash? Você efetuará logout do servidor diretamente ou simplesmente sairá do bash para o sh e outro exitnecessário para efetuar logout do servidor?
Summer_More_More_Tea
148
Você pode alterar o arquivo passwd diretamente para o usuário específico ou usar o comando abaixo
Provavelmente, é uma boa ideia tentar which bashantes de chamar o comando acima; sua milhagem pode variar de acordo com a localização. No meu caso, foi encontrado em/bin/bash
Martin Haeberli
Também posso acrescentar que, chshcommand faz parte do util-linuxpacote; e chsh -s $(which bash) $USERdeve resultar o mesmo que acima.
Há também a -lopção: "imprimir lista de conchas".
Betlista 04/07/19
3
era chsh -s /bin/bash usernamepara mim #
2984 Salvatorelab
Obrigado! Isso me ajudou ao tentar alterá-lo para outro usuário #
Tobias Feil
18
Você deve ter um 'esqueleto' em algum lugar /etc, provavelmente /etc/skeleton, ou verificar as configurações padrão, provavelmente /etc/defaultou algo assim. Esses são scripts que definem variáveis de ambiente padrão sendo definidas durante um login.
Se for apenas para sua própria conta: verifique o arquivo (oculto) ~/.profilee ~/.login. Ou gere-os, se eles não existirem. Eles também são avaliados pelo processo de login.
Mais 1 por responder especificamente à pergunta (O Shell Padrão). No Red Hat Linux, ele é especificado em/etc/default/useradd
geedoubleya 26/09/14
@geedoubleya Você pode especificar qual é a diferença no shell padrão e de login?
Betlista 04/07/19
1
Oi @Betlista O shell padrão é o shell usado para um novo login de usuário quando eles são criados, a menos que um shell específico seja fornecido como argumento.
Respostas:
Tente o comando linux
chsh
.O comando detalhada
chsh -s /bin/bash
. Ele solicitará que você digite sua senha. Seu shell de login padrão é/bin/bash
agora. Você deve sair e fazer login novamente para ver esta alteração.O seguinte é citado na página do manual:
Este comando alterará permanentemente o shell de login padrão.
Nota: Se sua conta de usuário for remota, como na autenticação Kerberos (por exemplo, Enterprise RHEL), você não poderá usá-lo
chsh
.fonte
chsh: can only change local entries; use ypchsh instead
. Então o ypchsh não tem-s
opção #/etc/passwd
, mas não o verifiquei duas vezes.exec /bin/bash
a~/.profile
e isso me permitiu entrar directamente para o bash sem fazer quaisquer alterações para o servidor. (O shell padrão original era apenas/bin/sh
)exit
bash? Você efetuará logout do servidor diretamente ou simplesmente sairá do bash para o sh e outroexit
necessário para efetuar logout do servidor?Você pode alterar o arquivo passwd diretamente para o usuário específico ou usar o comando abaixo
Depois saia e entre
fonte
which bash
antes de chamar o comando acima; sua milhagem pode variar de acordo com a localização. No meu caso, foi encontrado em/bin/bash
chsh
command faz parte doutil-linux
pacote; echsh -s $(which bash) $USER
deve resultar o mesmo que acima.-l
opção: "imprimir lista de conchas".chsh -s /bin/bash username
para mim #Você deve ter um 'esqueleto' em algum lugar
/etc
, provavelmente/etc/skeleton
, ou verificar as configurações padrão, provavelmente/etc/default
ou algo assim. Esses são scripts que definem variáveis de ambiente padrão sendo definidas durante um login.Se for apenas para sua própria conta: verifique o arquivo (oculto)
~/.profile
e~/.login
. Ou gere-os, se eles não existirem. Eles também são avaliados pelo processo de login.fonte
/etc/default/useradd