Как использовать экран GNU для управления терминальными сессиями в Linux

Как использовать экран GNU для управления терминальными сессиями в Linux

 

GNU Screen — это терминальный мультиплексор, который позволяет иметь несколько терминальных сессий внутри основного терминала.

Так зачем нам GNU Screen? — Иногда мы можем столкнуться с некоторыми проблемами, такими как автоматическое завершение удаленных ssh-соединений из-за проблем с сетью. Это может быть болезненно, если задача выполняется в производственной среде. Таким образом, для решения таких проблем рекомендуется отдельный сеанс экрана, который не завершается с окончанием сеансов терминала.

В системах Linux и Unix у нас есть инструмент мультиплексора терминала под названием screen, который используется для управления сессиями терминала. В этой статье мы расскажем, как использовать экран GNU в Linux для управления сеансами терминала при работе над важной задачей в производственных системах.

Установка экранных команд GNU

Установка пакета screen в системе Linux проста и легка. Некоторые современные операционные системы поставляются с предустановленными экранными приложениями. Выполните следующую команду, чтобы проверить доступность экрана.

$ screen --version

Вывод:

Screen version 4.08.00 (GNU) 05-Feb-20

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

Ubuntu / Debian

$ sudo apt-get install screen -y

RHEL / CentOS

$ sudo yum installs screen -y        // RHEL 7
$ sudo dnf install screen -y         // RHEL  8

Стартовый экран в Linux

После завершения установки просто запустите командный экран, чтобы начать сеансы экрана.

$ screen

Вывод:

Как использовать экран GNU для управления терминальными сессиями в Linux

Создать сеанс экрана с именем

Используя команду screen, за которой следует опция -S , вы можете создать именованный сеанс экрана. В этом примере я использовал screen-infoit в качестве имени сеанса экрана. Вы можете выбрать желаемое имя.

$ screen -S screen-infoit

Листинг параметров экрана

Экран предоставляет некоторые полезные параметры и команды. Чтобы вывести список доступных параметров, нажмите ctrl-a, а затем ? .

Примечание: screen использует вкачестве префиксаклавишу ctrl + a. Например, чтобы вывести список параметров экрана, вам нужно одновременно нажать ctrl и a , отпустить клавишу и нажать клавишу ? . Таким же образом вы можете использовать другие параметры.

Вывод:

Как использовать экран GNU для управления терминальными сессиями в Linux 1

Список сеансов экрана

Используйте следующую команду для вывода списка доступных сеансов экрана.

$ screen -ls

Вывод:

Как использовать экран GNU для управления терминальными сессиями в Linux 2

Отключить сеанс экрана Linux

Одна из полезных функций, предоставляемых приложением экрана, заключается в том, что вы можете отсоединить сеанс экрана и повторно подключиться при необходимости. Чтобы отключить текущий сеанс экрана, нажмите ctrl-a, а затем d .

Как использовать экран GNU для управления терминальными сессиями в Linux 3

Повторно подключите сеанс экрана Linux

Отсоединенный сеанс экрана можно снова подключить с помощью команды screen с параметром -r, за которым следует имя сеанса экрана. Перечислите сеанс отсоединенного экрана с помощью команды screen -ls , найдите имя сеанса экрана и прикрепите. В этом примере я прикрепил сеанс 25148.pts-0.infoit

$ screen -ls
$ screen -r 25148.pts-0.infoit

Сеансы экрана можно повторно подключить, используя только идентификатор экрана или имя экрана. В приведенном выше примере 25148 — это идентификатор, а pts-0.infoit — это имя экрана 25148.pts-0.infoit.

$ screen -r 25148
$ screen -r pts-0.infoit

Разделение экрана Linux Windows

Иногда вам может потребоваться разделить окна экрана на несколько экранов для выполнения нескольких задач. Разделение можно производить как по горизонтали, так и по вертикали.

Вертикальный

Чтобы разделить окна Linux по вертикали, нажмите ctrl-a, а затем | . Повторяя тот же процесс, вы можете разделить n окон экрана.

Как использовать экран GNU для управления терминальными сессиями в Linux 5

 

 

По горизонтали

Горизонтальное разделение окон экрана можно выполнить, нажав ctrl-a, а затем S (верхний регистр). Повторите тот же процесс, чтобы создать n вертикальных окон.

Как использовать экран GNU для управления терминальными сессиями в Linux 4

 

Создать новый терминал в разделенном сеансе

Независимо от того, разделите ли вы экран по горизонтали или по вертикали, он не создаст новый терминал. Чтобы создать новый терминал на экране, вам нужно переключиться на новые окна с разделенным экраном, используя ctrl-a, а затем Tab . Теперь нажмите ctrl-a и c (нижний регистр), чтобы создать терминал.

 

Как использовать экран GNU для управления терминальными сессиями в Linux 6

Неразбитые окна экрана

Чтобы разделить окна с разделенным экраном, вы можете просто применить ctrl-a с помощью клавиши Q

Сеансы блокировки экрана

Для защиты от несанкционированного доступа сеансы экрана могут быть заблокированы без блокировки обычных пользователей сеанса. Чтобы заблокировать экранный терминал, используйте команду ctrl-a, а затем клавишу x (нижний регистр). Вам будет предложено установить пароль, применить пароль защиты и все.

Как использовать экран GNU для управления терминальными сессиями в Linux 7

Найдите владельцев сеансов экрана

Screen хранит информацию об открытых сеансах экрана в каталоге /var/run/screen. Перечислите содержимое, хранящееся в каталоге, чтобы найти владельца экрана.

$ ls -ltr /var/run/screen

Вывод:

Как использовать экран GNU для управления терминальными сессиями в Linux 8

Завершить сеансы экрана

Как только задача будет завершена, вы можете уничтожить сеансы экрана, используя команду ctrl-a, за которой следует k . Вам будет предложено подтвердить пользователя, введите y, чтобы завершить сеанс.

Как использовать экран GNU для управления терминальными сессиями в Linux 9

Доступ к экранной странице справки

Выполните следующую команду для доступа к странице справки экрана

$ screen --help

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

$ man screen

Некоторые полезные параметры экранных команд

  • Ctrl-a + c  => Создать новое экранное окно с терминалом
  • Ctrl-a +?   => Список параметров экрана
  • Ctrl-a + A => Переименовать текущее окно экрана
  • Ctrl-a + tab => Перейти к следующему окну
  • Ctrl-a + S => Разделить окно по горизонтали
  • Ctrl-a + | => Разделить окно по вертикали
  • Ctrl-a + d => отсоединить экран
  • Ctrl | d => Завершить экран

Заключение

В этой статье мы узнали о различных командах gnu screen для управления сеансами терминала Linux. Если у вас есть предложения и отзывы, оставьте комментарий ниже.