> ## Documentation Index
> Fetch the complete documentation index at: https://support.labex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface de Terminal LabEx VM

> A Interface de Terminal LabEx fornece um ambiente de linha de comando leve, baseado em navegador, alimentado por TTYD. Construído no Ubuntu 22.04, ele oferece uma interface simplificada para operações de linha de comando e tarefas baseadas em texto.

## Visualização do Terminal

<img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/terminal.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=2ec4396dab3d6df8b4adce3498c1ad59" alt="Terminal Preview" width="1112" height="404" data-path="images/terminal.png" />

O ambiente do Terminal é particularmente útil para:

1. Tarefas e operações focadas na linha de comando
2. Administração de servidores e configuração do sistema
3. Programação e depuração baseadas em texto
4. Acesso remoto eficiente em termos de recursos quando a GUI não é necessária

## Acesse o Terminal

1. Se o instrutor recomendar o uso do ambiente de terminal por padrão para o Lab, você verá o ambiente de terminal quando o iniciar.
2. Você pode criar sessões de terminal adicionais clicando no botão + na parte superior da interface.

<img src="https://mintcdn.com/huhuhang/lbTGZZG7azHYkwfT/images/screenshot-20241022-CsiJ0RAS@2x.png?fit=max&auto=format&n=lbTGZZG7azHYkwfT&q=85&s=58d906aab3488a173fc84b234470f348" alt="Terminal Tabs" width="1408" height="392" data-path="images/screenshot-20241022-CsiJ0RAS@2x.png" />

## Recursos do Ambiente

A Interface de Terminal oferece vários recursos principais:

1. Múltiplas Sessões de Terminal:
   * Crie novas sessões usando o botão +
   * Alterne entre as sessões usando guias
   * Feche as sessões individualmente conforme necessário

2. Ambiente Ubuntu Completo:
   * Baseado no Ubuntu 22.04 LTS
   * Acesso aos repositórios Ubuntu padrão
   * Suporte para ferramentas e utilitários comuns de linha de comando

3. Ferramentas Baseadas em Texto:
   * Editores de texto Vim/Nano
   * Compiladores e interpretadores de linha de comando
   * Gerenciamento de pacotes via apt
   * Git para controle de versão

## Recursos do TTYD

A Interface de Terminal é alimentada por [TTYD](https://github.com/tsl0922/ttyd) (Terminal Over HTTP) e oferece vários recursos avançados:

**Usando comandos tmux:**

```bash theme={null}
# Criar divisões
tmux split-window -h     # Dividir verticalmente
tmux split-window -v     # Dividir horizontalmente
tmux split-window -hf    # Divisão vertical em altura total
tmux split-window -vf    # Divisão horizontal em largura total

# Navegar entre painéis
tmux select-pane -L      # Mover para o painel esquerdo
tmux select-pane -R      # Mover para o painel direito
tmux select-pane -U      # Mover para o painel superior
tmux select-pane -D      # Mover para o painel inferior

# Redimensionar painéis
tmux resize-pane -L 10   # Redimensionar 10 células para a esquerda
tmux resize-pane -R 10   # Redimensionar 10 células para a direita
tmux resize-pane -U 5    # Redimensionar 5 células para cima
tmux resize-pane -D 5    # Redimensionar 5 células para baixo

# Operações adicionais
tmux kill-pane          # Fechar o painel atual
tmux select-layout tiled # Balancear tamanhos de painel
```

<img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/screenshot-20241022-Re5eBNxa@2x.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=2f701d9d389320407a15249bcd6a0010" alt="Terminal Split Screen" width="688" height="342" data-path="images/screenshot-20241022-Re5eBNxa@2x.png" />

### Rolagem no tmux

No tmux, **a rolagem com a roda do mouse e a seleção por arrastar para copiar da forma habitual não coexistem** em um único modo. O terminal ou entrega a roda ao tmux (para rolar o histórico) ou deixa os eventos de mouse ao navegador (para destacar e copiar), não os dois ao mesmo tempo com os mesmos gestos.

LabEx mantém o suporte a mouse **desligado** por padrão para que você possa selecionar e copiar no navegador como de costume. Se você ligar o modo mouse, a roda rola dentro do tmux, mas a seleção clássica com clique e arrastar para copiar deixa de ficar disponível até você alterar a configuração novamente.

**Ativar rolagem do mouse temporariamente (apenas a sessão atual):**

```bash theme={null}
tmux set -g mouse on
```

**Ativar rolagem do mouse permanentemente (todas as sessões futuras):**

```bash theme={null}
echo 'set -g mouse on' >> ~/.tmux.conf && tmux source-file ~/.tmux.conf
```

**Quando precisar copiar de novo:**

* Desligue o modo mouse: `tmux set -g mouse off`, ou remova ou comente `set -g mouse on` em `~/.tmux.conf` e execute `tmux source-file ~/.tmux.conf`.
* Alguns clientes permitem ignorar o tratamento de mouse do tmux mantendo **Shift** pressionado ao selecionar; o comportamento depende do navegador e do TTYD. Para restaurar a cópia simples de forma confiável, desligar o modo mouse é o caminho mais seguro.

## Cenários de Uso

<AccordionGroup>
  <Accordion title="Operações Básicas de Linha de Comando" icon="terminal">
    Comandos de terminal comuns que você usará:

    ```bash theme={null}
    # Operações de Arquivos e Diretórios
    ls -la           # Listar todos os arquivos com detalhes
    cd /path/to/dir  # Mudar de diretório
    mkdir new-dir    # Criar diretório
    rm -rf dir       # Remover diretório

    # Informações do Sistema
    uname -a         # Informações do sistema
    df -h            # Uso do disco
    top              # Monitor de processos
    ```
  </Accordion>

  <Accordion title="Edição de Texto" icon="square-pen">
    Você pode usar vários editores de texto:

    1. Vim:

    ```bash theme={null}
    vim filename.txt  # Abrir/criar arquivo no Vim
    ```

    2. Nano:

    ```bash theme={null}
    nano filename.txt # Abrir/criar arquivo no Nano
    ```

    Ambos os editores estão pré-instalados e prontos para uso.
  </Accordion>

  <Accordion title="Gerenciamento de Pacotes" icon="box">
    Instale e gerencie pacotes de software:

    ```bash theme={null}
    # Atualizar lista de pacotes
    sudo apt update

    # Instalar novos pacotes
    sudo apt install package-name

    # Remover pacotes
    sudo apt remove package-name

    # Pesquisar pacotes
    apt search keyword
    ```
  </Accordion>
</AccordionGroup>

## Perguntas Frequentes

<AccordionGroup>
  <Accordion title="Como faço para copiar e colar texto?" icon="clipboard">
    TTYD suporta vários métodos para copiar/colar:

    1. Usando o Mouse:
       * Selecione o texto para copiar
       * Clique com o botão direito para colar

    2. Usando o Teclado:
       * Copiar: Ctrl+Insert ou Ctrl+Shift+C
       * Colar: Shift+Insert ou Ctrl+Shift+V

    Observação: Atalhos reais podem variar dependendo do seu navegador e sistema operacional.
  </Accordion>

  <Accordion title="Posso acessar arquivos da minha máquina local?" icon="upload">
    Sim, você pode transferir arquivos usando ferramentas de linha de comando:

    1. Para conteúdo de texto:
       * Copie e cole diretamente no terminal
       * Use editores de texto para criar e modificar arquivos

    2. Para arquivos binários:
       * Use a interface WebIDE para uploads/downloads de arquivos
       * Mude para a guia WebIDE para operações de gerenciamento de arquivos
             <img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/screenshot-20241022-j7Pl3YZQ@2x.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=ab2b59536671cb0184c1f57d3a981fec" alt="Upload Files" width="1412" height="1250" data-path="images/screenshot-20241022-j7Pl3YZQ@2x.png" />

    Lembre-se de que todos os arquivos são temporários e serão perdidos quando sua sessão terminar.
  </Accordion>

  <Accordion title="Como faço para instalar software adicional?" icon="wrench">
    Você pode instalar software usando apt:

    ```bash theme={null}
    # Atualizar lista de pacotes
    sudo apt update

    # Instalar software
    sudo apt install package-name
    ```

    Observe que:

    1. As instalações são temporárias e serão redefinidas quando sua sessão terminar
    2. Você tem privilégios sudo completos para gerenciamento de pacotes
    3. Instale apenas os pacotes necessários para o seu laboratório atual
  </Accordion>

  <Accordion title="Por que escolher a Interface de Terminal?" icon="circle-question-mark">
    A Interface de Terminal é ideal quando:

    1. Você precisa de um ambiente leve que carregue rapidamente
    2. Suas tarefas são principalmente baseadas em linha de comando
    3. Você deseja se concentrar em comandos de terminal sem distrações da GUI
    4. Você está trabalhando em uma conexão de baixa largura de banda
    5. Você está concluindo laboratórios que não exigem interfaces gráficas

    Considere usar as interfaces Desktop ou WebIDE se precisar de aplicativos GUI ou recursos avançados de IDE.
  </Accordion>

  <Accordion title="O que acontece se minha sessão de terminal congelar?" icon="wind">
    Se o seu terminal ficar sem resposta:

    1. Tente pressionar Ctrl+C para interromper o processo atual
    2. Crie uma nova sessão de terminal usando o botão +
    3. Se necessário, atualize a página do navegador para redefinir todas as sessões

    Observe que a atualização fechará todas as sessões de terminal atuais e iniciará novas.
  </Accordion>
</AccordionGroup>
