Onde eu mudo meu shell? [duplicado]

19

Se eu quisesse usar zsh , por exemplo, em vez de bash , onde eu faria essa alteração para o usuário atual?

    
por Naftuli Kay 17.10.2011 / 00:44

5 respostas

21

A resposta de Chris Browne funciona bem se você não tem acesso ao usuário e tem privilégios de root.

Se você quiser alterar o shell padrão do seu usuário atual, você também pode usar:

chsh -s /bin/ksh

Mais informações

O shell de login de um usuário é definido em um arquivo ( /etc/passwd no Debian). Esses arquivos têm uma entrada para cada usuário com as informações inseridas na criação.

rahmu:x:1000:1000:My Nameisrahmu,,,:/home/rahmu:/bin/bash
anotheruser:x:1001:1001:,,,:/home/anotheruser:/bin/ksh

A última coluna é o shell de login. Ele será bifurcado pelo programa de login se for bem-sucedido.

No entanto, é altamente recomendável que você não modifique esse arquivo manualmente. Você deve usar chsh ou usermod sempre que possível.

    
por 17.10.2011 / 00:58
22

usermod -s /bin/zsh <username>

Veja man usermod para mais opções.

    
por 17.10.2011 / 00:52
5

Você pode alterar seu shell de login com o comando chsh . Como observa man chsh , um usuário normal só pode alterar o shell para sua própria conta, enquanto o root pode alterar o shell para todas as contas.

/etc/shells contém os nomes de caminho dos shell de login válidos. Este arquivo é consultado por chsh quando é invocado.

As instruções para usar chsh variam de acordo com o seu sabor do UNIX:

Linux:

chsh -s newshell

Solaris:

chsh newshell

HP-UX

chsh username newshell

AIX

chsh

Isso iniciará uma sessão interativa na qual será solicitado o caminho completo para o novo shell.

Referência: link

    
por 17.10.2011 / 01:33
1

Em sistemas onde você não tem acesso ao sudo ou permissão adequada para usar o chsh (por exemplo, se você não pode adicionar / bin / zsh a / etc / shell), então você pode fazê-lo da maneira antiga:

$ mv ~/.bash_profile ~/.bash_profile.old
$ (echo :; echo exec /bin/zsh -il) > ~/.bash_profile
$ source ~/.bash_profile

Isso substituirá o shell bash por um login zsh no login.

    
por 17.10.2011 / 01:47
0

Eu estava tentando fazer isso em um dispositivo Synology executando o DSM 5.1 com shell ash em execução. Por algum motivo, o comando chsh não estava disponível. Eu tive que editar o arquivo /etc/passwd , colocando o caminho completo para o executável shell que eu queria.

    
por 29.01.2016 / 22:13

Tags