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

# Интерфейс терминала LabEx VM

> Интерфейс терминала LabEx предоставляет облегченную, браузерную среду командной строки на базе TTYD. Построенный на Ubuntu 22.04, он предлагает оптимизированный интерфейс для операций командной строки и текстовых задач.

## Предварительный просмотр терминала

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

Среда терминала особенно полезна для:

1. Задач и операций, ориентированных на командную строку
2. Администрирования серверов и настройки системы
3. Текстового программирования и отладки
4. Ресурсоэффективного удаленного доступа, когда графический интерфейс не требуется

## Доступ к терминалу

1. Если инструктор рекомендует использовать среду терминала по умолчанию для лабораторной работы, вы увидите среду терминала при ее запуске.
2. Вы можете создать дополнительные сеансы терминала, нажав кнопку + в верхней части интерфейса.

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

## Функции среды

Интерфейс терминала предоставляет несколько ключевых функций:

1. Несколько сеансов терминала:
   * Создавайте новые сеансы с помощью кнопки +
   * Переключайтесь между сеансами с помощью вкладок
   * Закрывайте сеансы по отдельности по мере необходимости

2. Полная среда Ubuntu:
   * На базе Ubuntu 22.04 LTS
   * Доступ к стандартным репозиториям Ubuntu
   * Поддержка распространенных инструментов и утилит командной строки

3. Текстовые инструменты:
   * Текстовые редакторы Vim/Nano
   * Компиляторы и интерпретаторы командной строки
   * Управление пакетами через apt
   * Git для контроля версий

## Функции TTYD

Интерфейс терминала работает на базе [TTYD](https://github.com/tsl0922/ttyd) (Terminal Over HTTP) и предоставляет несколько расширенных функций:

**Использование команд tmux:**

```bash theme={null}
# Create splits
tmux split-window -h     # Split vertically
tmux split-window -v     # Split horizontally
tmux split-window -hf    # Full-height vertical split
tmux split-window -vf    # Full-width horizontal split

# Navigate between panes
tmux select-pane -L      # Move to left pane
tmux select-pane -R      # Move to right pane
tmux select-pane -U      # Move to upper pane
tmux select-pane -D      # Move to lower pane

# Resize panes
tmux resize-pane -L 10   # Resize 10 cells to the left
tmux resize-pane -R 10   # Resize 10 cells to the right
tmux resize-pane -U 5    # Resize 5 cells up
tmux resize-pane -D 5    # Resize 5 cells down

# Additional operations
tmux kill-pane          # Close current pane
tmux select-layout tiled # Balance pane sizes
```

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

### Прокрутка в tmux

В tmux **прокрутка колёсиком мыши и обычное выделение перетаскиванием для копирования не сосуществуют** в одном режиме. Терминал либо отдаёт колёсико tmux (для прокрутки буфера истории), либо оставляет события мыши браузеру (для выделения и копирования) — не оба варианта одновременно с теми же жестами.

По умолчанию LabEx отключает поддержку мыши, чтобы вы могли выделять и копировать в браузере привычным способом. Если включить режим мыши, колёсико прокручивает вывод внутри tmux, но обычное выделение перетаскиванием для копирования снова станет недоступным, пока вы не измените настройку.

**Временно включить прокрутку мышью (только текущий сеанс):**

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

**Постоянно включить прокрутку мышью (все будущие сеансы):**

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

**Когда снова нужно копировать:**

* Выключите режим мыши: `tmux set -g mouse off`, или удалите/закомментируйте `set -g mouse on` в `~/.tmux.conf` и выполните `tmux source-file ~/.tmux.conf`.
* В некоторых клиентах можно обойти обработку мыши в tmux, удерживая **Shift** при выделении; поведение зависит от браузера и TTYD. Надёжный способ вернуть простое копирование — снова выключить режим мыши.

## Сценарии использования

<AccordionGroup>
  <Accordion title="Основные операции командной строки" icon="terminal">
    Общие команды терминала, которые вы будете использовать:

    ```bash theme={null}
    # File and Directory Operations
    ls -la           # List all files with details
    cd /path/to/dir  # Change directory
    mkdir new-dir    # Create directory
    rm -rf dir       # Remove directory

    # System Information
    uname -a         # System information
    df -h            # Disk usage
    top              # Process monitor
    ```
  </Accordion>

  <Accordion title="Редактирование текста" icon="square-pen">
    Вы можете использовать различные текстовые редакторы:

    1. Vim:

    ```bash theme={null}
    vim filename.txt  # Open/create file in Vim
    ```

    2. Nano:

    ```bash theme={null}
    nano filename.txt # Open/create file in Nano
    ```

    Оба редактора предварительно установлены и готовы к использованию.
  </Accordion>

  <Accordion title="Управление пакетами" icon="box">
    Установка и управление пакетами программного обеспечения:

    ```bash theme={null}
    # Update package list
    sudo apt update

    # Install new packages
    sudo apt install package-name

    # Remove packages
    sudo apt remove package-name

    # Search for packages
    apt search keyword
    ```
  </Accordion>
</AccordionGroup>

## Часто задаваемые вопросы

<AccordionGroup>
  <Accordion title="Как скопировать и вставить текст?" icon="clipboard">
    TTYD поддерживает несколько способов копирования/вставки:

    1. С помощью мыши:
       * Выберите текст для копирования
       * Щелкните правой кнопкой мыши, чтобы вставить

    2. С помощью клавиатуры:
       * Копировать: Ctrl+Insert или Ctrl+Shift+C
       * Вставить: Shift+Insert или Ctrl+Shift+V

    Примечание: Фактические сочетания клавиш могут различаться в зависимости от вашего браузера и операционной системы.
  </Accordion>

  <Accordion title="Могу ли я получить доступ к файлам с моего локального компьютера?" icon="upload">
    Да, вы можете передавать файлы с помощью инструментов командной строки:

    1. Для текстового контента:
       * Скопируйте и вставьте непосредственно в терминал
       * Используйте текстовые редакторы для создания и изменения файлов

    2. Для двоичных файлов:
       * Используйте интерфейс WebIDE для загрузки/скачивания файлов
       * Переключитесь на вкладку WebIDE для операций управления файлами
             <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" />

    Помните, что все файлы являются временными и будут потеряны при завершении сеанса.
  </Accordion>

  <Accordion title="Как установить дополнительное программное обеспечение?" icon="wrench">
    Вы можете установить программное обеспечение с помощью apt:

    ```bash theme={null}
    # Update package list
    sudo apt update

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

    Обратите внимание, что:

    1. Установки являются временными и будут сброшены при завершении сеанса
    2. У вас есть полные привилегии sudo для управления пакетами
    3. Устанавливайте только пакеты, необходимые для вашей текущей лабораторной работы
  </Accordion>

  <Accordion title="Почему стоит выбрать интерфейс терминала?" icon="circle-question-mark">
    Интерфейс терминала идеален, когда:

    1. Вам нужна облегченная среда, которая быстро загружается
    2. Ваши задачи в основном основаны на командной строке
    3. Вы хотите сосредоточиться на командах терминала без отвлекающих факторов графического интерфейса
    4. Вы работаете с подключением с низкой пропускной способностью
    5. Вы выполняете лабораторные работы, которые не требуют графических интерфейсов

    Рассмотрите возможность использования интерфейсов Desktop или WebIDE, если вам нужны графические приложения или расширенные функции IDE.
  </Accordion>

  <Accordion title="Что произойдет, если мой сеанс терминала зависнет?" icon="wind">
    Если ваш терминал перестает отвечать:

    1. Попробуйте нажать Ctrl+C, чтобы прервать текущий процесс
    2. Создайте новый сеанс терминала с помощью кнопки +
    3. При необходимости обновите страницу браузера, чтобы сбросить все сеансы

    Обратите внимание, что обновление закроет все текущие сеансы терминала и запустит новые.
  </Accordion>
</AccordionGroup>
