Como Mudar o Shell Padrão no Linux

Um shell é a interface através da qual você pode se comunicar com seu sistema Linux. Ele permite que você digite comandos e controle seu computador. Todo usuário Linux tem um shell padrão, que é o bash na maioria dos casos. Também existem muitas outras opções disponíveis, incluindo Zsh, ksh, rc e fish. Aqui mostramos os vários métodos para mudar seu shell padrão no Linux.
Índice
- Como Encontrar o Nome do Seu Shell Atual
- Listar Todos os Shells Instalados
- Mudar o Shell Padrão no Linux Usando Chsh
- Mudando o Shell de Outro Usuário
- Mudar o Shell Padrão no Linux Usando Usermod
- Mudando Manualmente o Shell Padrão no Linux
- Alternativa ao Seu Shell Padrão
Como Encontrar o Nome do Seu Shell Atual
Antes de mergulharmos na mudança do shell padrão, é bom saber qual shell você está usando atualmente. Você pode descobrir isso verificando a variável de ambiente do sistema usando o seguinte comando echo:
echo $SHELL
Este comando imprimirá o caminho do seu shell atual, como /bin/bash ou /bin/zsh.
O arquivo /etc/passwd contém informações importantes sobre a conta do usuário. Você também pode usar este arquivo para encontrar seu shell atual:
grep "^${USER}" /etc/passwd
Você também pode encontrar mais informações sobre o shell atual verificando o ID do processo (PID), usando o comando ps:
ps -p $$
Esta saída confirma que o shell atual é bash.
Listar Todos os Shells Instalados
Agora que você sabe qual é o seu shell atual, pode querer ver quais outras opções estão disponíveis em seu sistema. Para localizar todos os shells instalados em seu sistema, você precisa dar uma olhada no arquivo /etc/shells.
Vamos usar o comando cat para visualizar uma lista de todos os shells disponíveis em seu sistema:
cat /etc/shells

Isso lhe dará uma ideia de quais shells você pode alternar. Você também pode instalar qualquer novo shell usando seu gerenciador de pacotes e usá-lo como seu shell padrão.
Além disso, você pode experimentar esses shells listados temporariamente sem mudar seu shell padrão. Para iniciar uma nova sessão de shell, basta digitar o nome do shell no terminal.
Por exemplo, para experimentar o shell Zsh, digite:
zsh
Isso permite que você experimente diferentes shells antes de decidir fazer uma mudança permanente.
Mudar o Shell Padrão no Linux Usando Chsh
A maneira mais direta de mudar o shell padrão no Linux é usar o comando chsh. O comando chsh significa “mudar shell”, e é usado junto com a opção -s seguida pelo caminho do seu shell.
Se você não souber o caminho do seu shell, execute type zsh no terminal para obter o caminho desejado. Depois de obter o caminho do seu shell, você pode mudar seu shell padrão para seu shell específico.
Por exemplo, se você quiser mudar para Zsh, precisará usar chsh -s com o caminho do shell Zsh:
chsh -s /bin/zsh
Você será solicitado a inserir sua senha. Depois de fazer isso, você precisará sair e entrar novamente para confirmar as alterações.
O comando chsh mudará o shell de login padrão permanentemente. Você pode verificar as alterações executando este comando:
grep "^${USER}" /etc/passwd
Mudando o Shell de Outro Usuário
Se você tiver privilégios de root e a capacidade de usar o comando sudo, pode mudar o shell padrão para outras contas de usuário. Isso pode ser útil se você quiser fornecer um ambiente de shell diferente, como fish, para outro usuário.
Você pode usar a mesma sintaxe do comando chsh com um parâmetro adicional especificando o nome de usuário da conta que deseja modificar.
Por exemplo, para mudar o shell de outro usuário para Zsh, execute este comando no terminal:
sudo chsh -s /bin/zsh user
Este comando informa ao sistema para mudar o shell padrão para o usuário específico para o shell Zsh, que está localizado em /bin/zsh.
Mudar o Shell Padrão no Linux Usando Usermod
Outro método para mudar de shell é usando o comando usermod. Este comando é usado para modificar contas de usuário, e também pode ser usado para mudar o shell padrão.
Para mudar seu shell padrão usando usermod, abra um terminal com privilégios de root e digite este comando:
sudo usermod -s /path/to/new/shell seu_nome_de_usuario
Aqui, você precisa substituir /path/to/new/shell pelo caminho do shell desejado e seu_nome_de_usuario pelo seu nome de usuário real.
Por exemplo, vamos mudar o shell padrão bash para zsh:
sudo usermod -s /bin/zsh user
Assim como antes, saia e entre novamente em seu sistema Linux para que essas alterações tenham efeito.
Você pode verificar a mudança para o novo shell olhando os detalhes da conta do usuário com o seguinte comando:
getent passwd user
Mudando Manualmente o Shell Padrão no Linux
Você também pode mudar o shell padrão manualmente editando o arquivo /etc/passwd. Você pode fazer isso substituindo o caminho do shell padrão pelo novo shell. No entanto, tenha cuidado com esta técnica, pois pode levar a problemas se não for feita corretamente.
Para mudar seu shell manualmente, abra o arquivo /etc/passwd usando seu editor de texto favorito (como nano ou vim) com privilégios de root:
sudo nano /etc/passwd
Procure seu nome de usuário no arquivo. O último campo na entrada do seu usuário mostrará seu shell atual. Mude-o para o caminho do shell desejado.
Por exemplo, vamos mudar nosso caminho de shell padrão /bin/bash para /bin/zsh:

Por fim, salve o arquivo pressionando Ctrl + S e saia do editor com Ctrl + X. Novamente, saia e entre novamente para aplicar as alterações.
Alternativa ao Seu Shell Padrão
Embora o Bash seja uma ferramenta de script ótima e poderosa, existem vários outros shells que podem melhorar sua experiência na linha de comando e fornecer melhores opções de personalização:
Fish
fish refere-se ao Friendly Interactive Shell. Este shell tem uma interface de linha de comando intuitiva, com destaque de sintaxe, sugestões automáticas e autocompletar que tornam a digitação de comandos muito fácil.
fish também inclui uma ferramenta de configuração baseada na web. Isso significa que você pode ajustar configurações e criar funções sem precisar mexer em arquivos de configuração.
Zsh
Zsh, ou Z shell, é altamente personalizável e possui muitos recursos úteis. Alguns de seus melhores recursos incluem globbing, autocorreção, configurações personalizadas e autocompletar avançado.
Zsh também suporta plugins e temas, facilitando a personalização da sua experiência no shell. Com Zsh, você também pode mostrar seu branch do Git e realizar manipulações complexas de arquivos com padrões simples.
Ksh
ksh, ou KornShell, pega os melhores recursos do C shell e do Bourne shell, tornando-o um shell poderoso e fácil de usar com capacidades avançadas de script. Alguns recursos do ksh incluem funções matemáticas embutidas, edição de linha de comando, scripting de shell e extensibilidade.
Conclusão
Mudar seu shell padrão no Linux é um processo simples que pode melhorar sua experiência na linha de comando. Se você é um usuário avançado, definitivamente deve experimentar outros shells alternativos do Linux.
Crédito da imagem: Lukas via Unsplash. Todas as capturas de tela por Haroon Javed.