Screen — это мощный консольный менеджер сессий в Linux, позволяющий создавать, управлять и отключаться от терминальных сессий, не теряя при этом запущенные в них процессы. Это особенно полезно при работе с удаленными серверами, когда вам нужно запустить длительный процесс и отключиться от терминала, не прерывая его выполнение. Вот подробное руководство по использованию screen:
Основные понятия:
Сессия (Session): Экземпляр screen, в котором можно запускать команды и приложения. Окно (Window): Виртуальный терминал внутри сессии screen. Одна сессия может содержать несколько окон. Отключение (Detach): Отключение от сессии screen, сохраняя все запущенные процессы. Подключение (Attach): Подключение к существующей сессии screen.
Установка:
В большинстве дистрибутивов Linux screen можно установить из репозиториев:
Debian/Ubuntu:
· sudo apt update
· sudo apt install screen
CentOS/RHEL:
· sudo yum install screen
Fedora:
· sudo dnf install screen
Arch Linux:
· sudo pacman — S screen
Основные команды и комбинации клавиш:
Запуск Screen:
2. screen
Эта команда запустит новую сессию screen и откроет новое окно терминала внутри нее.
Создание именованной сессии:
4. screen -S <имя_сессии>
Замените <имя_сессии> на желаемое имя сессии (например, screen — S mylongtask). Именование сессий упрощает их поиск и подключение к ним позже.
Отключение от сессии (Detach):
Находясь внутри сессии screen, нажмите сочетание клавиш:
Ctrl + a (затем отпустите клавиши)
D
Это отключит вас от сессии, но все запущенные процессы продолжат выполняться в фоновом режиме. Вы увидите сообщение, указывающее, что сессия отключена.
Подключение к существующей сессии (Attach):
7. screen -r
Эта команда подключится к последней отключенной сессии.
Если у вас несколько отключенных сессий, используйте:
Screen — r <имя_сессии>
Замените <имя_сессии> на имя сессии, к которой вы хотите подключиться. Если вы не помните имя сессии, используйте screen — ls (см. ниже).
Список сессий:
9. screen -ls
Эта команда отобразит список всех активных и отключенных сессий screen.
Пример вывода:
There are screens on:
1234.mylongtask (10/27/23 14:00:00) (Detached)
5678.another_session (10/27/23 14:15:00) (Detached)
2 Sockets in /run/screen/S-user1.
В этом примере 1234 и 5678 — это идентификаторы сессий, а mylongtask и another_session — их имена.
Завершение сессии (Kill):
Внутри сессии: Завершите все процессы, запущенные в сессии, и выйдите из screen.
O exit
Снаружи сессии (если вы отключены от нее):
O screen — X — S <имя_сессии> quit
Или
Screen — X — S <идентификатор_сессии> quit
Замените <имя_сессии> или <идентификатор_сессии> на соответствующие значения. Эта команда отправит команду quit в указанную сессию, завершив ее.
Создание нового окна внутри сессии:
Находясь внутри сессии screen, нажмите сочетание клавиш:
Ctrl + a (затем отпустите клавиши)
C
Это создаст новое окно терминала внутри текущей сессии.
Переключение между окнами:
Перейти к следующему окну:
O Ctrl + a (затем отпустите клавиши)
O n
Перейти к предыдущему окну:
O Ctrl + a (затем отпустите клавиши)
O p
Перейти к окну по номеру:
O Ctrl + a (затем отпустите клавиши)
O ‘<номер_окна> ’
Замените <номер_окна> на номер окна (начиная с 0). Например, Ctrl+a 0 переключит вас в первое окно.
Переименование окна:
14. Ctrl + a (затем отпустите клавиши)
15. A
В появившейся строке введите новое имя и нажмите Enter.
Отображение списка окон:
17. Ctrl + a (затем отпустите клавиши)
18. "
Основные комбинации клавиш (префиксные команды):
Все команды screen начинаются с префиксной комбинации клавиш: Ctrl + a. Затем, отпустив эти клавиши, вы нажимаете одну из командных клавиш. Вот некоторые наиболее полезные комбинации:
Ctrl + a c: Создать новое окно. Ctrl + a d: Отключиться от сессии (Detach). Ctrl + a n: Перейти к следующему окну. Ctrl + a p: Перейти к предыдущему окну. Ctrl + a <номер_окна> : Перейти к окну по номеру. Ctrl + a A: Переименовать текущее окно. Ctrl + a ": Показать список окон. Ctrl + a?: Показать справку (список всех команд). Ctrl + a k: Закрыть текущее окно (Kill). Ctrl + a \: Закрыть все окна и завершить сессию (Quit). Ctrl + a a: Отправить Ctrl + a в текущее окно (если вам нужно использовать эту комбинацию клавиш в приложении). Ctrl + a |: Разделить окно по вертикали. Ctrl + a S: Разделить окно по горизонтали. Ctrl + a Tab: Переключаться между областями разделенного экрана. Ctrl + a Ctrl+a: Переключиться в предыдущее окно.
Файл конфигурации ~/.screenrc:
Вы можете настроить screen, создав файл конфигурации ~/.screenrc в вашем домашнем каталоге. Этот файл позволяет изменять различные параметры screen, такие как:
Изменение префиксной клавиши (по умолчанию Ctrl + a). Настройка отображения статусной строки. Автоматический запуск определенных программ при запуске screen. Настройка цветовой схемы.
Пример файла ~/.screenrc:
# Set a different escape key
Escape ^Tt
# Always show a status line
Hardstatus alwayslastline
Hardstatus string ‘%{gk} %{wk}%?%-w%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+w%? %{g}%H %{y}%l %{b}%d %{w}%c’
# Start with a new window
Screen — t shell 0
# Set a default terminal type
Term xterm-256color
Полезные примеры использования:
Запуск длительных процессов на удаленном сервере: Подключитесь к удаленному серверу по SSH, запустите screen, запустите длительный процесс и отключитесь от сессии. Процесс продолжит выполняться, даже если вы закроете SSH-соединение. Работа с несколькими проектами одновременно: Создайте отдельные сессии screen для каждого проекта и переключайтесь между ними по мере необходимости. Запуск нескольких программ в одном терминале: Используйте окна screen для запуска нескольких программ в одном терминале. Текстовый интерфейс для нескольких терминалов: screen позволяет работать в текстовом режиме как в графической среде с несколькими окнами.
Альтернативы Screen:
Tmux (Terminal Multiplexer): Более современный и мощный менеджер сессий, чем screen. Многие пользователи предпочитают tmux из-за его гибкости и расширенных возможностей. Настройка tmux сложнее, чем screen. Byobu: Текстовый менеджер окон, разработанный на основе tmux или screen. Он предоставляет удобный интерфейс и предустановленные настройки.
Советы:
Запомните основные комбинации клавиш. Настройте ~/.screenrc в соответствии со своими потребностями. Используйте именованные сессии для упрощения управления. Попробуйте tmux, если вам нужны более продвинутые функции.
Использование screen может значительно повысить вашу производительность при работе в терминале. Экспериментируйте с различными командами и комбинациями клавиш, чтобы освоить этот мощный инструмент.