Este artigo explica como alterar o shell padrão no Linux. Usando isso, você pode definir Bash, sh, Zsh, Csh, Fish, etc. como seu shell.
O artigo inclui instruções para alterar o shell de login a partir da linha de comando usando chsh ou alterar o shell apenas para um aplicativo de terminal específico. Embora o artigo seja direcionado a usuários Linux, ele também deve funcionar em outros sistemas semelhantes ao Unix.
Para alterar o shell de login padrão, usaremos chsh
, uma ferramenta de linha de comando para alterar o shell de login.
Este programa altera o shell de login modificando o arquivo /etc/passwd
e definindo a variável de ambiente $SHELL
. Você pode substituir o shell padrão em um aplicativo de terminal, definindo o shell nas configurações do terminal - consulte a segunda parte deste artigo para obter detalhes.
Uma nota para usuários do Fedora. O Fedora não tem chsh instalado por padrão e para usá-lo, você deve instalar um pacote chamado util-linux-user
. Se você deseja pular a instalação deste pacote, você pode usar lchsh
em vez de alterar o shell de login, que está disponível por padrão:
sudo lchsh $USER
É importante notar que usando chsh, um usuário normal pode apenas alterar o shell de login para a conta atual, enquanto o superusuário pode alterar o shell de login para qualquer conta, incluindo a conta root. Além disso, o comportamento padrão para usuários não root é aceitar apenas shells listados no arquivo /etc/shells
e emitir um aviso para o usuário root.
Portanto, antes de alterar seu shell, liste todos os shells listados no arquivo /etc/shells
de seu sistema Linux usando o seguinte comando:
cat /etc/shells
Exemplo com saída:
$ cat /etc/shells# /etc/shells: valid login shells/bin/sh/bin/bash/bin/rbash/bin/dash/usr/bin/tmux/bin/zsh
Se o shell que você deseja usar não estiver listado aqui, ele pode não estar instalado em seu sistema. Portanto, instale-o (por exemplo, instale Zsh no Debian/Ubuntu/Linux Mint/Pop!_OS usando: sudo apt install zsh
) e verifique novamente.
Para alterar o shell para seu usuário, execute:
chsh
Isso executa o chsh
em um modo interativo, solicitando a senha e, em seguida, listando seu shell atual (a maioria das distribuições Linux usa Bash como o shell padrão) e solicitando que você insira um valor para seu novo shell. Aqui está o comando com sua saída:
$ chshPassword:Changing the login shell for logixEnter the new value, or press ENTER for the default Login Shell [/bin/bash]:
Para alterar seu shell, digite o caminho para o novo shell (que existe em /etc/shells
) e pressione a tecla Enter
.
Por exemplo, para alterar o shell do usuário atual de Bash para Zsh:
$ chshPassword:Changing the login shell for logixEnter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/zsh
Caso você esteja usando uma versão chsh que não inicia com um prompt interativo após a execução de chsh
, altere o shell de login de seu usuário diretamente:
chsh -s
Por exemplo, para mudar o shell para Zsh:
chsh -s /bin/zsh
Depois de alterar o shell de sua conta, saia e faça login novamente para usar o novo shell.
Para alterar o shell de login de outro usuário ou usuário root, faça login no prompt do shell como root usando su -
, sudo -i
, sudo su
, etc., e execute:
Para alterar o shell da conta root (e quando solicitado, insira o shell de login que deseja usar, com seu caminho completo):
chsh
Para alterar o shell de outro usuário (isso também funciona para o usuário root, usando root
como nome de usuário):
chsh -s
Desta vez, usamos chsh com a opção -s
, que altera o shell de login diretamente (não é executado em modo interativo). Aqui, SHELL
é o novo shell (por exemplo, /bin/zsh
) e NOMEDEUSUARIO
é o usuário para o qual você está alterando o shell; por exemplo, para alterar o shell para /bin/zsh
para o usuário Logix
, você usaria: chsh -s /bin/zsh Logix
).
Você também pode gostar de: Starship é um prompt de shell mínimo e rápido escrito em Rust
Você pode usar um shell diferente do shell de login ($SHELL
) para um aplicativo de terminal específico, se esse aplicativo permitir definir um shell personalizado ou executar um comando personalizado em vez do shell padrão.
Como observação lateral, você também pode alterar o shell atual (alteração não permanente) digitando o comando do shell que deseja usar em um terminal (por exemplo, se digitar "zsh", você passará a usar Zsh para essa sessão; saia digitando "sair".).
Pegue o Terminal GNOME por exemplo (usado nos desktops GNOME e Cinnamon como o terminal padrão). Abra seu Preferences
, clique no perfil ativo atual (geralmente denominado Padrão ou Sem nome, se você não o alterou ou adicionou novos perfis) na barra lateral esquerda e, em seguida, clique na guia Command
:
É aqui que você pode definir um shell personalizado para ser usado apenas com este aplicativo. Ative a opção Run a custom command instead of my shell
e, no campo Custom command
, insira o caminho completo para o shell que deseja usar, por exemplo, /bin/zsh
, /bin/bash
, etc.
No Terminal Xfce4, abra Preferences
e na guia General
você precisará habilitar uma opção chamada Run a custom command instead of my shell
, em seguida, digite o comando personalizado abaixo (sendo este o shell que deseja usar com este terminal, por exemplo, /bin/zsh
/usr/bin/fish
, etc.).
Usando o Konsole do KDE Plasma, vá para Settings -> Edit Current Profile
e na guia General
, altere o campo Command
para o caminho completo do shell que deseja usar (mais uma vez, algo como: /bin/zsh
, /bin/bash
, /usr/bin/fish
, etc.) .
Usando Guake, você pode alterar o shell do usuário de seu Preferences
, na guia Shell
, onde você encontrará uma opção chamada Default interpreter
que permite escolher qualquer shell listado em /etc/shells
.
Para terminais que permitem executar um shell personalizado, você também deve encontrar uma opção que permite executar o comando como um shell de login (geralmente chamado apenas assim: "Executar o comando como um shell de login"). Para ler sobre as diferenças entre um shell de login e um shell interativo, consulte esta página.
Definir isso é o mesmo na maioria dos casos, então não darei mais exemplos. No entanto, é importante notar que nem todos os aplicativos de terminal têm opções que permitem o uso de um shell personalizado - em tais casos, use o comando chsh
para alterar o shell de login, conforme explicado acima.
Você pode gostar de: 179 Esquemas de cores para o terminal Linux baseado em Gtk (Terminal Gnome, Tilix, Terminal Xfce, mais)
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Change The Default Shell In Linux