Skip to main content

Como alterar o shell em um codespace

Você pode alterar o shell em um codespace para manter a configuração com a qual está acostumado.

Ao trabalhar em um codespace, você pode abrir uma nova janela de terminal com um shell da sua escolha, alterar o shell padrão para novas janelas de terminal ou instalar um novo. Você também pode usar dotfiles para configurar o shell.

Os codespaces que usam a imagem de contêiner de desenvolvedor padrão vêm com os shells bash, zshe fish instalados. Se você abrir um novo codespace no cliente Web do VS Code ou se conectar a um codespace por SSH, o terminal será aberto com uma sessão bash em execução por padrão. No aplicativo da área de trabalho VS Code, o shell padrão depende das configurações locais e do sistema operacional. Para obter mais informações, confira Perfis de Terminal na documentação do VS Code.

Como fazer a alteração do shell padrão em VS Code

Se você não quiser usar o shell padrão, poderá abrir uma nova sessão de terminal com um shell diferente.

  1. Se você não conseguir ver o terminal integrado no VS Code, pressione Ctrl+`.

  2. À direita do ícone para abrir uma nova janela do terminal, selecione o ícone suspenso.

    Captura de tela do terminal integrado no VS Code. Ao lado do ícone de adição, uma seta voltada para baixo tem um contorno laranja.

  3. No menu suspenso, clique no nome do shell que você deseja usar.

Como instalar um novo firewall

Se você quiser usar um shell que ainda não esteja instalado na configuração de imagem base ou contêiner de desenvolvimento para um codespace, poderá instalar um novo shell.

Se você estiver usando a imagem de contêiner de desenvolvedor padrão, procure as instruções de instalação do Ubuntu Linux. Se você quiser usar apenas um shell diferente para uma sessão, poderá usar a linha de comando para instalar o shell no codespace no qual está trabalhando. No entanto, você poderá perder programas instalados se fizer o rebuild do contêiner no codespace. Para obter mais informações, confira "Aprofundamento de GitHub Codespaces".

Uma opção mais robusta para instalar novos shells é incluir os comandos de instalação em um repositório dotfiles ou como um comando de ciclo de vida, como postCreateCommand em um arquivo devcontainer.json. Você deve usar um repositório dotfiles para instalar um shell que deseja usar em todos os próprios codespaces e um arquivo devcontainer.json para um shell que os colaboradores de um repositório específico devem ter instalado. Para obter mais informações, confira "Como personalizar o GitHub Codespaces para sua conta" e "Introdução aos contêineres de desenvolvimento."

Como adicionar um perfil de terminal do VS Code para um novo shell

O VS Code detecta automaticamente os shells mais padrão e os adiciona como um perfil de terminal. Assim, você pode abrir facilmente as novas janelas do terminal usando o shell que instalou.

Se o shell instalado não for detectado automaticamente, você poderá adicionar um novo perfil de terminal às configurações do usuário. Essa configuração depende do sistema operacional. Portanto, você deve usar linux para o cliente Web VS Code e seu sistema operacional local para o aplicativo da área de trabalho.

  1. Para abrir a Visual Studio Code Command Palette, pressione Command+Shift+P (Mac) ou Ctrl+Shift+P (Windows).

  2. Comece a digitar "configurações do usuário" e clique em Preferências: Abrir Configurações do Usuário (JSON) .

  3. No arquivo settings.json, dentro do objeto JSON, adicione uma nova propriedade como a descrita a seguir. Substitua OPERATING-SYSTEM pelo sistema operacional relevante (como linux, windows ou osx) e SHELL pelo shell instalado.

    JSON
    "terminal.integrated.profiles.OPERATING-SYSTEM": {
      "SHELL": {
        "path": "SHELL"
      }
    }
    

    Por exemplo:

    "terminal.integrated.profiles.linux": {
     "csh": {
       "path": "csh"
     }
    }
    
  4. Salve o arquivo.

Você pode usar a Sincronização de Configurações para compartilhar essas configurações em todos os codespaces abertos no cliente Web VS Code e no aplicativo da área de trabalho. Se você estiver trabalhando no cliente Web, a Sincronização de Configurações será desabilitada por padrão e você deverá habilitar a Sincronização de Configurações para enviar alterações às suas configurações ou trazer novas alterações feitas em outro lugar. Para obter mais informações, confira "Como personalizar o GitHub Codespaces para sua conta".

Como configurar o shell padrão em VS Code

Você pode definir um perfil de terminal padrão para escolher o shell padrão usado para todas as novas janelas de terminal abertas em VS Code. O perfil de terminal padrão depende do sistema operacional. Portanto, você pode definir um perfil padrão para Linux, se estiver usando o cliente Web VS Code ou para o sistema operacional local, se estiver usando o aplicativo da área de trabalho.

Nota: independentemente do perfil padrão, os codespaces abertos no cliente Web sempre são abertos com uma sessão bash em execução inicialmente.

  1. Para abrir a Visual Studio Code Command Palette, pressione Command+Shift+P (Mac) ou Ctrl+Shift+P (Windows).

  2. Comece a digitar "configurações do usuário" e clique em Preferências: Abrir Configurações do Usuário (JSON) .

  3. Dentro do objeto JSON, para definir o shell padrão para o sistema operacional relevante, adicione linhas ou edite as existentes como descrito a seguir.

    "terminal.integrated.defaultProfile.OPERATING-SYSTEM": "SHELL"
    

    Por exemplo:

    JSON
    {
       "terminal.integrated.defaultProfile.osx": "zsh",
       "terminal.integrated.defaultProfile.linux": "bash",
       "terminal.integrated.defaultProfile.windows": "PowerShell"
    }
    
  4. Salve o arquivo settings.json.

Você pode usar a Sincronização de Configurações para compartilhar essas configurações em todos os codespaces abertos no cliente Web VS Code e no aplicativo da área de trabalho. Se você estiver trabalhando no cliente Web, a Sincronização de Configurações será desabilitada por padrão e você deverá habilitar a Sincronização de Configurações para enviar alterações às suas configurações ou trazer novas alterações feitas em outro lugar. Para obter mais informações, confira "Como personalizar o GitHub Codespaces para sua conta".

Como definir o shell padrão por SSH

Ao se conectar a um codespace da linha de comando por SSH, você se conecta a uma sessão bash no codespace por padrão.

Se você tiver habilitado um repositório dotfiles para GitHub Codespaces, poderá alterar o shell padrão ao qual se conecta adicionando um comando a um script de instalação, como install.sh em seus dotfiles. Para obter mais informações, confira "Como usar o GitHub Codespaces com a CLI do GitHub" e "Como personalizar o GitHub Codespaces para sua conta." Por exemplo, o comando a seguir altera o shell padrão para zsh.

Shell
sudo chsh "$(id -un)" --shell "/usr/bin/zsh"

Se você quiser usar um shell padrão que não esteja instalado em seu codespace por padrão ou verificar se tem a versão mais recente do shell, instale o shell primeiro.

Shell
sudo apt-get update -y
sudo apt-get install -y csh
sudo chsh "$(id -un)" --shell "/usr/bin/csh"

Nota: se você criar um codespace (por exemplo, usando gh codespace create), deverá aguardar tempo suficiente para garantir que o script tenha terminado de ser executado antes de se conectar ao codespace por SSH. Se o script ainda não sido totalmente executado, você se conectará a uma sessão padrão bash.

Ao se conectar ao codespace, na maioria dos shells, você pode usar o comando readlink /proc/$$/exe para verificar se o shell correto está em execução.

Como configurar seu shell

Com a maioria dos shells, você tem a opção de usar um arquivo de configuração, como .bashrc, para definir o shell com suas configurações preferenciais. Essas configurações podem incluir itens como alias e variáveis de ambiente.

Por padrão, os codespaces contêm uma configuração predefinida para os shells pré-instalados. Por exemplo, o diretório inicial em um codespace contém os arquivos .bashrc e .zshrc. Você pode alterar o conteúdo desses arquivos e, em seguida, usar um comando como source ~/.bashrc para atualizar a configuração do shell. No entanto, você perderá todas as alterações nesses arquivos se fizer o rebuild do contêiner em um codespace. Para obter mais informações, confira "Aprofundamento de GitHub Codespaces".

Em geral, você deve usar um repositório dotfiles para definir shells com suas configurações preferenciais. A configuração em seus dotfiles se aplica a todos os codespaces que você cria e persiste sobre os rebuilds do contêiner. Para obter mais informações, confira "Como personalizar o GitHub Codespaces para sua conta".

Como solucionar problemas do shell fish

O shell fish inclui uma interface de configuração baseada na Web. Você pode usar o comando fish_config para iniciar um servidor Web local e iniciar essa interface e, em seguida, fazer coisas como alterar o prompt do terminal ou exibir suas variáveis de ambiente.

Você pode usar a interface baseada na Web para fish em um codespace. No entanto, as configurações de cor no terminal integrado do VS Code dependem do tema VS Code escolhido, e você não pode substituir essas configurações definindo um novo tema na interface fish_config.

Quando fish inicia o servidor local, o link padrão que GitHub Codespaces fornece à porta encaminhada não funciona. Por exemplo, se você clicar em Abrir no Navegador na mensagem pop-up, uma página de erro será aberta.

Para acessar a interface baseada na Web para fish_config:

  1. Em um terminal que executa uma sessão fish, insira fish_config.

  2. Na saída do terminal, use Command + clique ou Ctrl + clique para abrir o link para o arquivo HTML web_config.

    $ fish_config
    Web config started at file:///tmp/web_config60rc9tr3.html
    Hit ENTER to stop.
    
  3. No arquivo web_config, use Command + clique ou Ctrl + clique para abrir o link para a porta encaminhada.

    <body>
      <p><a href="http://localhost:8000/1b9411c2469e392b96df5e5b28da485b/">Start the Fish Web config</a></p>
    </body>
    

Leitura adicional