Blog Linux Avante

Como alterar o shell padrão no Linux

26 de janeiro de 2021

mudar o linux do shell padrão

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.

Como alterar o shell de login padrão usando chsh (da linha de comando)

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:

Comandos para usar no terminal

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:

Comandos para usar no terminal

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:

Comandos para usar no terminal

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:

Comandos para usar no terminal

chsh -s

Por exemplo, para mudar o shell para Zsh:

Comandos para usar no terminal

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):

    Comandos para usar no terminal

    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):

Comandos para usar no terminal

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).

Altere o shell para o seu usuário em um aplicativo de terminal

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:

alterar terminal shell gnome

É 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.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.