Como alterar seu shell padrão no Linux com chsh

O Bash não é o único shell do Linux. É fácil experimentar outros shells, como o Zsh, que é muito popular. Quando encontrar um de que goste, use o comando chsh para torná-lo seu shell padrão. Vamos mostrar como.

Por que um shell é importante

A concha fica entre você e o sistema operacional. Ele fornece o ambiente dentro de uma janela de terminal que permite digitar comandos e executar programas. O shell verifica sua entrada e descobre o que você deseja. Se ele pode executar seu lance por conta própria, ele o faz. Se precisar de ajuda externa, ele pesquisa o caminho e encontra os programas que podem fazer tudo o que você solicitar.

Existem muitos shells diferentes disponíveis no Linux. Todos eles permitem que você execute as mesmas tarefas principais: explorar o sistema de arquivos, trabalhar com arquivos, iniciar programas e executar scripts. No entanto, cada um deles executa essas tarefas à sua maneira e tem seus próprios recursos especiais e idiossincrasias.

Os shells tendem a ser projetados por pessoas que desejam que as coisas se comportem de uma maneira específica. Se o seu pensamento estiver alinhado com o do designer, essa concha pode muito bem ser uma boa opção para você. Além disso, é fácil tentar um novo shell no Linux.

Na maioria das distribuições Linux, incluindo Ubuntu, o shell padrão é bash. Ele faz um ótimo trabalho e é muito capaz. No entanto, outro shell pode oferecer uma diferença de economia de tempo que teria um grande impacto em seu fluxo de trabalho. Você nunca saberá se não olhar!

Um balde cheio de conchas

Já cobrimos os diferentes shells do Linux antes, mas aqui está uma rápida introdução aos mais comuns:

  Como sincronizar o Google Calendar com a área de trabalho do Linux

bash: o Bourne de novo a casca é o padrão em muitas distribuições.
rbash: Este Restrito O shell bash fornece funcionalidade mínima para a pessoa ou script em execução nele.
cinza: o Concha de almquist é uma versão mais leve do bash.
traço: O Debian Alquist Shell é o script de shell padrão no Ubuntu. Enquanto o bash é o login padrão e o shell interativo, o dash é usado para executar processos do sistema porque é muito mais leve do que o bash.
zsh: A concha Z é uma versão moderna da família de conchas bash. Ele oferece melhorias interessantes, como verificações ortográficas de comandos e correções sugeridas.
peixe: este shell interativo amigável foi escrito do zero e não é derivado de nenhuma outra família de shell. Ele foi projetado para ser amigável. Entre suas muitas outras vantagens, o fish oferece sugestões de comandos com base em seu histórico e no conteúdo da pasta atual, semelhantes a texto preditivo.
ksh: The KornShell fornece uma linguagem de script particularmente forte.

Liste os shells instalados

Para ver quais shells estão instalados em seu computador, use este comando. Ele simplesmente lista o conteúdo do arquivo / etc / shells:

cat /etc/shells

Mencionamos bash, dash e rbash, mas o que é sh?

sh é o Thompson shell, escrito em 1971 por Ken Thompson de Bell Labs fama. Ele não é mais mantido e há muito foi substituído por estruturas modernas. Ele é incluído exclusivamente para manter a compatibilidade com scripts mais antigos que ainda têm o seguinte como primeira linha:

#!/bin/sh

Isso instrui o sistema a usar o shell sh para executar o script. Você realmente tem aquele shell antigo em sua máquina e ele está sendo usado para executar seus scripts? O comando which nos dirá qual programa realmente é executado quando você digita um comando.

Vamos ver o que é executado quando você digita sh:

which sh

Isso parece encontrar um binário. se cavarmos um pouco mais fundo, no entanto, veremos que é um link simbólico que na verdade aponta para o traço, o shell leve usado para executar scripts:

ls -l /bin/sh

Essa é uma maneira simples e leve de fornecer uma rede de segurança para scripts que esperam encontrar sh em sistemas modernos.

  Como instalar o tema Matcha no Linux

Instalando Outro Shell

Vamos instalar a concha de peixe e defini-la como padrão para dave. No Ubuntu, digitamos o seguinte comando:

sudo apt-get install fish

No Manjaro, use o pacman:

sudo pacman -Sy fish

No Fedora, digite o seguinte:

sudo dnf install fish

Quando a instalação for concluída, você pode verificar os shells instalados mais uma vez:

cat /etc/shells

Nosso novo shell aparece como / usr / bin / fish. Anote esse caminho – você precisará dele em breve.

A variável de ambiente $ SHELL

A variável de ambiente $ SHELL contém o nome do seu shell atual. Podemos verificar para qual está definido com echo:

echo $SHELL

Vamos começar a concha de peixe:

fish

Agora, vamos verificar novamente o que a variável de ambiente $ SHELL diz:

echo $SHELL

A primeira vez que usamos echo $ SHELL, estamos no bash shell. A variável de ambiente contém o caminho para o executável bash, / bin / bash.

Quando lançamos a concha de peixe, recebemos uma mensagem amigável de boas-vindas e o prompt de comando muda. O que pode ser surpreendente é que o ambiente $ SHELL ainda contém o caminho para o executável bash, / bin / bash. Tudo bem – isso é normal.

Quando você inicia um novo shell (ou qualquer outro programa), ele herda o ambiente do shell pai. Portanto, a concha do peixe herda as variáveis ​​de ambiente globais e exportadas da concha do bash. Como o valor na variável de ambiente $ SHELL não foi alterado, ele tem o mesmo valor na concha do peixe que tinha na concha do bash.

Estamos executando peixes como qualquer outro programa. Também podemos usar exit para sair da concha do peixe. Ele fecha como qualquer outro programa e retornamos ao shell bash.

  Como jogar Minecraft no Linux

Isso é ótimo para experimentar novos shells, ver o que eles podem fazer e se você se dá bem com eles. Você pode explorar antes de dar o salto e adotar um como sua concha.

Se você decidir tornar o peixe – ou qualquer outra concha – seu padrão, você precisará usar o comando chsh.

O comando chsh

O comando chsh permite que você altere seu shell padrão. O truque é estar ciente de que isso permite que você altere o login padrão e os shells interativos padrão. Você pode querer mudar um ou outro, ou ambos.

Sempre que você faz login para obter um prompt de comando, usa o shell configurado para ser o seu shell de login. Quando você já estiver conectado e abrir uma janela de terminal, use o shell configurado para ser o seu shell interativo. Podem ser shells iguais ou diferentes.

Para definir seu shell de login, use chsh sem parâmetros:

chsh

Sua senha será solicitada. Em seguida, você deve digitar o caminho para o novo shell e pressionar Enter.

Se fizermos uma conexão remota a este computador de teste de outro, nos encontraremos na concha do peixe assim que fizermos o login.

Para alterar seu shell interativo, use chsh com a opção -s (shell). Passe o caminho para o novo shell na linha de comando:

chsh -s /usr/bin/fish

Sua senha será solicitada e você retornará ao prompt de comando do shell atual. Você precisa fazer logout e login novamente para que a alteração tenha efeito. Ao fazer isso, você verá a saudação e o prompt de comando da concha.

A variável de ambiente $ SHELL agora contém o caminho para seu novo shell padrão:

echo $SHELL

Alterar o shell de outra conta de usuário

Se você tiver privilégios de root e puder usar sudo, poderá alterar os shells de outras contas de usuário. O comando é o mesmo de antes, com a adição do nome de usuário dessa pessoa adicionado à linha de comando:

sudo chsh -s /usr/bin/fish mary

Quando Mary se logar novamente, ela verá o novo shell quando abrir uma janela de terminal.

Todo