Утилита Screen — это менеджер окон Linux, который позволяет переключаться между несколькими процессами в одном физическом терминале. Screen предоставляет буфер истории для прокрутки и механизм копирования и вставки текста между окнами.
С помощью Screen можно создавать новые окна с различными программами, закрывать текущие окна, просматривать список активных окон, включать и отключать логирование вывода и переключаться между окнами. Все окна работают независимо друг от друга, и программы продолжают выполняться даже при отключении сеанса от терминала пользователя. Это делает Screen полезным инструментом для эффективного управления несколькими задачами в одном терминале.
❯ Установка утилиты screen
В зависимости от дистрибутива, Screen может быть предустановлен в операционной системе, а может требовать отдельной установки. Чтобы установить Screen, используйте следующую команду:
Для Ubuntu и Debian:
apt install -y screen
Для CentOS, Fedora и AstraLinux:
yum install -y screen
Или:
dnf install -y screen
Основные команды
Рассмотрим основные команды для управления сессиями Screen.
Запуск сессии screen
Чтобы запустить Screen, просто введите команду в своей консоли:
screen
Это откроет сеанс Screen, создаст новое окно, запустит в нем оболочку, и вы увидите следующее окно. Нажмите Enter, чтобы перейти к вводу команд.
❯Создание именованного сеанса
Сеансам можно давать имена, что особенно полезно, когда вы работаете с несколькими сеансами Screen. Чтобы создать именованный сеанс, выполните команду screen
с такими аргументами:
screen -S имя_сеанса
Всегда полезно выбирать описательное имя для сеанса.
Отключение от сеанса Screen в Linux
Чтобы отключиться от сеанса Screen в любой момент, наберите Ctrl+a d.
Программа, запущенная в сеансе Screen, продолжит работу после вашего отключения в фоне.
Повторное подключение к сеансу Screen в Linux
Чтобы возобновить ваш сеанс Screen, используйте команду:
screen -r
Если у вас запущено несколько сеансов Screen, нужно указать ID сеанса или его имя после параметра -r
.
Чтобы узнать ID текущих запущенных сеансов, выполните:
screen -ls
Вы увидите список сеансов:
There are screens on: 1468393.timeweb (07/25/2024 02:07:34 PM) (Detached) 1466624.pts-3.1495851-ralimov (07/25/2024 01:54:05 PM) (Detached) 2 Sockets in /run/screens/S-linuxize.
Чтобы восстановить сеанс с ID 1466624.pts-3.1495851-ralimov
, введите команду:
screen -S 1466624
Чтобы восстановить сеанс, используя его имя, введите:
screen -S имя_сеанса
Список дополнительных опций
Утилита Screen предлагает массу полезных возможностей для удобного управления сессиями в терминале. Вы можете настроить каждое окно под свои нужды, например, изменить его размер в соответствии с параметрами дисплея или настроить параметры утилиты, используя собственный конфигурационный файл. Если необходимо, можно приостановить сессию и вернуться к ней позже, а также запустить Screen в режиме демона, чтобы он работал в фоне. Помимо этого, доступны функции для настройки командных символов, управления потоком данных и ведения логов. Удобно, что можно выбирать нужные окна, менять их заголовки и использовать кодировку UTF-8, что делает работу в терминале более комфортной и адаптируемой под разные задачи.
-
-a
: Включает все возможные функции для каждого окна, делая их максимально функциональными. -
-A -[r|R]
: Автоматически подстраивает все окна под изменившуюся ширину и высоту экрана. -
-c файл
: Позволяет указать альтернативный файл конфигурации вместо стандартного .screenrc. -
-d (-r)
: Отключает текущий сеанс Screen, но не завершает его, так что к нему можно будет вернуться позже. -
-D (-r)
: Завершает активное подключение к удалённой сессии, но сессию можно восстановить. -
-D -RR
: Выполняет все необходимые действия, чтобы подключиться к существующему сеансу Screen, если он есть. Если нет — запускает новый. -
-e xy
: Позволяет изменить стандартные сочетания клавиш для команд Screen на свои собственные. Например, чтобы избежать конфликтов с другими программами. -
-f
: Включает управление потоком данных;-fn
— отключает его;-fa
— включает автоматическое управление. Помогает при работе с большим объемом данных. -
-h строки
: Настраивает размер истории команд, которую можно пролистывать вверх. -
-i
: Прерывает вывод данных на экран, если включено управление потоком, чтобы не перегружать терминал. -
-l
: Включает запись информации о сессии в системный журнал, чтобы можно было отслеживать активные сессии;-ln
— отключает это. -
-ls [шаблон]
: Показывает список всех активных сессий Screen, которые в данный момент подключены. -
-L
: Включает запись всего вывода терминала в лог-файл. -
-p окно
: Автоматически выбирает указанное окно при запуске, если оно существует. -
-q
: Запускает Screen в «тихом» режиме, без вывода лишней информации в случае ошибок. -
-V
: Показывает версию Screen и завершает работу. -
-r [сеанс]
: Повторно подключается к уже запущенному, но временно отключенному сеансу Screen. -
-R
: Если находит существующий сеанс, подключается к нему, если нет — запускает новый. -
-S имя_сеанса
: Устанавливает имя для новой сессии, которое будет использоваться для подключения к ней. -
-t заголовок
: Задает заголовок для окна, который будет отображаться в списке окон. -
-U
: Включает поддержку кодировки UTF-8 для работы с текстом. -
-v
: Показывает текущую версию программы Screen. -
-x
: Подключается к активной сессии, позволяя использовать ее одновременно на нескольких экранах. -
-X
: Выполняет указанную команду внутри активной сессии Screen.
❯ Работа с окнами
Одновременно можно работать с несколькими сеансами screen, причем внутри каждого сеанса может быть запущено несколько окон.
Чтобы создать новое окно с оболочкой, нажмите Ctrl+a c. Окну будет автоматически присвоен номер от 0 до 9.
Ниже приведены некоторые из самых распространенных команд для управления окнами в Screen:
-
Ctrl+a c — Создать новое окно (с оболочкой).
-
Ctrl+a » — Показать список всех окон.
-
Ctrl+a 0 — Переключиться на окно 0 (по номеру).
-
Ctrl+a A — Переименовать текущее окно.
-
Ctrl+a S — Разделить текущую область горизонтально на две области.
-
Ctrl+a | — Разделить текущую область вертикально на две области.
-
Ctrl+a tab — Переключить фокус ввода на следующую область.
-
Ctrl+a Ctrl+a — Переключаться между текущим и предыдущим окнами.
-
Ctrl+a Q — Закрыть все области, кроме текущей.
-
Ctrl+a X — Закрыть текущую область.
Чтобы просмотреть все команды, введите Ctrl+a ?.
Когда Screen запускается, он читает свои конфигурационные параметры из файлов /etc/screenrc
и ~/.screenrc
, если они присутствуют. Мы можем изменить настройки Screen по умолчанию в соответствии с нашими предпочтениями, используя файл .screenrc
.
Вот пример конфигурации ~/.screenrc
с кастомизированной строкой состояния и несколькими дополнительными опциями:
# Отключить приветственное сообщение startup_message off # Автоматически подключаться к последней сессии при запуске autodetach on # Установить буфер прокрутки на 10000 строк defscrollback 10000 # Включить логирование для текущей сессии logfile /path/to/screenlog
Дополнительные рекомендации по кастомизации конфигурационного файла Screen:
-
Автоматическое разделение окон при запуске: Полезно, если вы часто работаете с несколькими окнами и хотите, чтобы они открывались сразу при запуске Screen.
screen -t shell1 split focus screen -t shell2
-
Логирование всех сессий: Полезно для ведения журнала работы.
deflog on logfile $HOME/.screen/screenlog.%t
-
Автоматическое переподключение при обрыве: Полезно при работе с нестабильными соединениями.
autodetach on reattach on
❯ Примеры использования Screen
Пример 1. Чтобы отслеживать изменения файла в реальном времени, можно использовать два окна Screen: в одном редактировать файл, а в другом отображать его содержимое с помощью команды tail -f
. Это позволит вам мгновенно видеть все внесенные изменения без необходимости повторного выполнения команды.
Пример 2. Работа в терминале по SSH с использованием сессии Screen позволяет не потерять данные при разрыве соединения. Даже если соединение будет прервано, вы сможете снова подключиться и возобновить работу с того же места, где остановились, просто переподключившись к сессии Screen.
Пример 3. Выполнение длительных задач, таких как компиляция программного кода или выполнение резервного копирования. Запустив задачу в одной сессии Screen, вы можете отслеживать ее выполнение и в любой момент отключиться, зная, что задача продолжит выполняться. Позже можно вернуться к сессии и проверить результаты выполнения.
❯ Заключение
В этом руководстве мы подробно рассмотрели, как эффективно использовать утилиту Screen для управления вашими терминальными сессиями. Вы научились создавать несколько окон в одном сеансе, переключаться между ними и управлять сеансами, включая их отключение и возобновление. Мы также обсудили, как настроить терминал с помощью конфигурационного файла .screenrc
, чтобы сделать работу более удобной и персонализированной. Освоив эти основные функции, вы теперь можете использовать Screen для более комфортной и продуктивной работе в терминале
Дополнительную информацию о Screen можно найти на странице «Руководство пользователя Screen».
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
📚 Читайте также:
ссылка на оригинал статьи https://habr.com/ru/articles/852370/
Добавить комментарий