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

# Interfaz de Terminal de VM LabEx

> La interfaz de Terminal LabEx proporciona un entorno de línea de comandos ligero basado en navegador, impulsado por TTYD. Construido sobre Ubuntu 22.04, ofrece una interfaz optimizada para operaciones de línea de comandos y tareas basadas en texto.

## Vista previa de la 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" />

El entorno de Terminal es particularmente útil para:

1. Tareas y operaciones centradas en la línea de comandos
2. Administración de servidores y configuración del sistema
3. Programación y depuración basadas en texto
4. Acceso remoto eficiente en recursos cuando no se necesita GUI

## Acceder a la terminal

1. Si el instructor recomienda usar el entorno de terminal de forma predeterminada para el Laboratorio, verá el entorno de terminal cuando lo inicie.
2. Puede crear sesiones de terminal adicionales haciendo clic en el botón + en la parte superior de la interfaz.

<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" />

## Características del entorno

La interfaz de Terminal proporciona varias características clave:

1. Múltiples sesiones de terminal:
   * Cree nuevas sesiones usando el botón +
   * Cambie entre sesiones usando pestañas
   * Cierre sesiones individualmente según sea necesario

2. Entorno Ubuntu completo:
   * Basado en Ubuntu 22.04 LTS
   * Acceso a repositorios Ubuntu estándar
   * Soporte para herramientas y utilidades comunes de línea de comandos

3. Herramientas basadas en texto:
   * Editores de texto Vim/Nano
   * Compiladores e intérpretes de línea de comandos
   * Gestión de paquetes a través de apt
   * Git para el control de versiones

## Características de TTYD

La interfaz de Terminal está impulsada por [TTYD](https://github.com/tsl0922/ttyd) (Terminal Over HTTP) y proporciona varias características avanzadas:

**Usando comandos tmux:**

```bash theme={null}
# Crear divisiones
tmux split-window -h     # Dividir verticalmente
tmux split-window -v     # Dividir horizontalmente
tmux split-window -hf    # División vertical de altura completa
tmux split-window -vf    # División horizontal de ancho completo

# Navegar entre paneles
tmux select-pane -L      # Mover al panel izquierdo
tmux select-pane -R      # Mover al panel derecho
tmux select-pane -U      # Mover al panel superior
tmux select-pane -D      # Mover al panel inferior

# Redimensionar paneles
tmux resize-pane -L 10   # Redimensionar 10 celdas a la izquierda
tmux resize-pane -R 10   # Redimensionar 10 celdas a la derecha
tmux resize-pane -U 5    # Redimensionar 5 celdas hacia arriba
tmux resize-pane -D 5    # Redimensionar 5 celdas hacia abajo

# Operaciones adicionales
tmux kill-pane          # Cerrar el panel actual
tmux select-layout tiled # Equilibrar los tamaños de los paneles
```

<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" />

### Desplazamiento en tmux

En tmux, **el desplazamiento con la rueda del ratón y la selección arrastrando para copiar de forma habitual no conviven** en un solo modo. El terminal debe ceder la rueda a tmux (para el historial) o dejar los eventos del ratón al navegador (para resaltar y copiar), no ambas cosas a la vez con los mismos gestos.

LabEx mantiene el soporte de ratón **desactivado** por defecto para que pueda seleccionar y copiar en el navegador con normalidad. Si activa el modo ratón, la rueda se desplaza dentro de tmux, pero la selección clásica arrastrando para copiar deja de estar disponible hasta que cambie la configuración de nuevo.

**Activar temporalmente el desplazamiento con el ratón (solo la sesión actual):**

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

**Activar de forma permanente el desplazamiento con el ratón (todas las sesiones futuras):**

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

**Cuando necesite copiar de nuevo:**

* Desactive el modo ratón: `tmux set -g mouse off`, o elimine o comente `set -g mouse on` en `~/.tmux.conf` y ejecute `tmux source-file ~/.tmux.conf`.
* Algunos clientes permiten omitir el manejo del ratón de tmux manteniendo pulsada **Mayús** al seleccionar; el comportamiento depende del navegador y de TTYD. La forma fiable de recuperar la copia sencilla es desactivar el modo ratón.

## Escenarios de uso

<AccordionGroup>
  <Accordion title="Operaciones básicas de línea de comandos" icon="terminal">
    Comandos de terminal comunes que usará:

    ```bash theme={null}
    # Operaciones de archivos y directorios
    ls -la           # Listar todos los archivos con detalles
    cd /path/to/dir  # Cambiar de directorio
    mkdir new-dir    # Crear directorio
    rm -rf dir       # Eliminar directorio

    # Información del sistema
    uname -a         # Información del sistema
    df -h            # Uso del disco
    top              # Monitor de procesos
    ```
  </Accordion>

  <Accordion title="Edición de texto" icon="square-pen">
    Puede usar varios editores de texto:

    1. Vim:

    ```bash theme={null}
    vim filename.txt  # Abrir/crear archivo en Vim
    ```

    2. Nano:

    ```bash theme={null}
    nano filename.txt # Abrir/crear archivo en Nano
    ```

    Ambos editores están preinstalados y listos para usar.
  </Accordion>

  <Accordion title="Gestión de paquetes" icon="box">
    Instale y gestione paquetes de software:

    ```bash theme={null}
    # Actualizar la lista de paquetes
    sudo apt update

    # Instalar nuevos paquetes
    sudo apt install package-name

    # Eliminar paquetes
    sudo apt remove package-name

    # Buscar paquetes
    apt search keyword
    ```
  </Accordion>
</AccordionGroup>

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Cómo copio y pego texto?" icon="clipboard">
    TTYD admite varios métodos para copiar/pegar:

    1. Usando el ratón:
       * Seleccione el texto para copiar
       * Haga clic con el botón derecho para pegar

    2. Usando el teclado:
       * Copiar: Ctrl+Insert o Ctrl+Shift+C
       * Pegar: Shift+Insert o Ctrl+Shift+V

    Nota: Los atajos reales pueden variar según su navegador y sistema operativo.
  </Accordion>

  <Accordion title="¿Puedo acceder a archivos desde mi máquina local?" icon="upload">
    Sí, puede transferir archivos usando herramientas de línea de comandos:

    1. Para contenido de texto:
       * Copie y pegue directamente en la terminal
       * Use editores de texto para crear y modificar archivos

    2. Para archivos binarios:
       * Use la interfaz WebIDE para subir/descargar archivos
       * Cambie a la pestaña WebIDE para operaciones de gestión de archivos
             <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" />

    Recuerde que todos los archivos son temporales y se perderán cuando finalice su sesión.
  </Accordion>

  <Accordion title="¿Cómo instalo software adicional?" icon="wrench">
    Puede instalar software usando apt:

    ```bash theme={null}
    # Actualizar la lista de paquetes
    sudo apt update

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

    Tenga en cuenta que:

    1. Las instalaciones son temporales y se restablecerán cuando finalice su sesión
    2. Tiene privilegios sudo completos para la gestión de paquetes
    3. Solo instale los paquetes necesarios para su laboratorio actual
  </Accordion>

  <Accordion title="¿Por qué elegir la interfaz de Terminal?" icon="circle-question-mark">
    La interfaz de Terminal es ideal cuando:

    1. Necesita un entorno ligero que se cargue rápidamente
    2. Sus tareas se basan principalmente en la línea de comandos
    3. Quiere concentrarse en los comandos de la terminal sin distracciones de la GUI
    4. Está trabajando en una conexión de bajo ancho de banda
    5. Está completando laboratorios que no requieren interfaces gráficas

    Considere usar las interfaces de Escritorio o WebIDE si necesita aplicaciones GUI o funciones IDE avanzadas.
  </Accordion>

  <Accordion title="¿Qué pasa si mi sesión de terminal se congela?" icon="wind">
    Si su terminal deja de responder:

    1. Intente presionar Ctrl+C para interrumpir el proceso actual
    2. Cree una nueva sesión de terminal usando el botón +
    3. Si es necesario, actualice la página del navegador para restablecer todas las sesiones

    Tenga en cuenta que la actualización cerrará todas las sesiones de terminal actuales e iniciará otras nuevas.
  </Accordion>
</AccordionGroup>
