September 22

Введение в Screen


Введение

Утилита Screen — это мощный терминальный мультиплексор, который позволяет пользователям Ubuntu управлять несколькими сессиями терминала в рамках одного окна. Она особенно полезна при работе с удаленными серверами или при запуске длительных процессов, так как позволяет отсоединяться и снова подключаться к сессиям без прерывания запущенных процессов.

Что такое Screen и для чего он нужен

Screen предоставляет возможность:

  • Запускать несколько сессий терминала одновременно.
  • Отсоединяться от сессий и возвращаться к ним позже.
  • Запускать длительные процессы без опасения, что они прервутся при потере соединения.
  • Управлять окнами и разделять экран для одновременной работы с несколькими задачами.

Установка Screen

В большинстве случаев Screen уже предустановлен в Ubuntu. Чтобы проверить, установлен ли он, введите в терминале:

screen --version

Если утилита не установлена, вы можете установить ее с помощью команды:

sudo apt update
sudo apt install screen

Основные команды и использование

Запуск новой сессии

Чтобы запустить новую сессию Screen, просто введите:

screen

Вы попадете в новую сессию терминала. Теперь вы можете выполнять команды как обычно.

Отсоединение и восстановление сессии

Просмотр всех активных сессий:

screen -ls 

При работе с Screen вы можете столкнуться с терминами Detached и Attached, которые описывают состояние сессий.

Detached (Отсоединена)

  • Описание: Сессия находится в состоянии Detached, когда она запущена в фоне без активного подключения пользователя. Процессы внутри сессии продолжают выполняться, но вы не взаимодействуете с ними напрямую.
  • Как происходит отсоединение:
    • Явное отсоединение с помощью комбинации клавиш: находясь внутри сессии, нажмите Ctrl + A, затем D.
    • Неявное отсоединение при разрыве соединения с сервером или закрытии терминала.
  • Как узнать статус:При выполнении команды screen -ls вы увидите список сессий со статусом (Detached).

Attached (Подключена)

  • Описание:Сессия находится в состоянии Attached, когда к ней подключен пользователь, и вы активно взаимодействуете с процессами внутри сессии.
  • Как подключиться к сессии:
    • Используйте команду screen -r для восстановления последней отсоединенной сессии.
    • Если у вас несколько сессий, укажите имя или ID: screen -r my_session или screen -r 233708.test
  • Особенности:Если вы пытаетесь подключиться к сессии, которая уже подключена (то есть кто-то другой в данный момент с ней работает), вы получите сообщение об ошибке.

Принудительное подключение к сессии

Если вы уверены, что нужно подключиться к уже подключенной сессии (например, при зависании сессии), вы можете использовать флаги -d -r:

screen -d -r my_session
  • -d: принудительно отсоединяет сессию, если она подключена.
  • -r: подключается к указанной сессии.

Именованные сессии

Именованные сессии упрощают управление, особенно когда у вас запущено несколько сессий.

Создание именованной сессии:

screen -S имя_сессии 

Пример:

screen -S my_session 

Восстановление именованной сессии:

screen -r имя_сессии

Закрытие сессии:

screen -XS my_session quit

-XS: сочетание флагов:

  • -X: позволяет отправить команду в указанную сессию Screen.
  • -S: указывает на конкретную сессию по имени или идентификатору (ID).

my_session: имя или ID сессии, к которой вы хотите обратиться.

quit: команда, которую вы отправляете в сессию. В данном случае это команда для завершения сессии.

Управление окнами внутри сессии

  • Создание нового окна:Нажмите Ctrl + A, затем C.
  • Переключение между окнами:
    • Следующее окно: Ctrl + A, затем N.
    • Предыдущее окно: Ctrl + A, затем P.
    • Выбор окна по номеру: Ctrl + A, затем номер окна (например, 0, 1, 2).
  • Список открытых окон:Нажмите Ctrl + A, затем " (двойные кавычки).

Примеры использования

Запуск длительного процесса:

screen -S update_session sudo apt update && sudo apt upgrade 

Вы можете отсоединиться от сессии и вернуть к ней позже, не прерывая процесс обновления.

Одновременная работа с несколькими задачами:

Создайте сессию:

screen -S multitask 

Создайте новое окно для каждой задачи, используя Ctrl + A, затем C.

Переключайтесь между задачами, используя Ctrl + A, затем N или P.

Полезные сочетания клавиш

  • Ctrl + A, затем D — отсоединиться от сессии.
  • Ctrl + A, затем C — создать новое окно.
  • Ctrl + A, затем N — перейти к следующему окну.
  • Ctrl + A, затем P — перейти к предыдущему окну.
  • Ctrl + A, затем " — показать список окон.
  • Ctrl + A, затем K — закрыть текущее окно.
  • Ctrl + A, затем ? — показать справку по сочетаниям клавиш.

Заключение

Screen — незаменимый инструмент для пользователей, работающих с терминалом в Ubuntu. Он обеспечивает гибкость и надежность при выполнении задач, позволяя продолжать работу даже после отключения от сервера или закрытия терминала. Освоив основные команды и возможности Screen, вы значительно повысите эффективность работы в командной строке.

Наш телеграмм канал по нодам — https://t.me/g7monitor
Наш чат по нодам — https://t.me/g7team_chat