Home » Linux » Настройка утилиты screen в Linux

Настройка утилиты screen в Linux

Создатели Screen называют утилиту менеджером (псевдо)терминалов. Идея в том, чтобы вместо нескольких терминалов, открытых для одновременной работы с разными пользовательскими программами например по ssh, обеспечить доступ к этим терминалам из одного единственного терминала, как если бы мы работали в «настоящем» TTY и переключались из одного в другой клавишами Alt-Fn.

На самом деле, Screen умеет гораздо больше. Перечислю два её основных достоинства.

  1. Сессия Screen запускается независимо от login shell (Рис.1), благодаря чему после выхода и повторного входа в командный интерпретатор, например, по ssh мы можем снова «подключиться» к этой сессии со всеми запущенными в ней ранее программами и возможностью вмешаться в ход их выполнения (в отличие от запуска программ в фоновом режиме, когда на их работу обычно уже невозможно влиять). Это очень выручает при нестабильном удалённом подключении по ssh, так как сбой в соединении может привести к аварийному прекращению выполняющейся программы, являющейся дочерним процессом login shell и возникновению системного сбоя. При запуске же внутри Screen программа просто «не заметит» разрыва ssh-сессии и закрытия терминала.
     

    Screen не зависит от login shell
    Рис. 1 Сессия Screen с запущенными в ней tail и htop не зависит от текущей сессии bash (PID=13054), поскольку не является её потомком.

     

  2. В одной сессии Screen на экране можно расположить несколько терминалов одновременно и легко переключаться между ними, чего не позволяет обычный TTY (Рис.2).

01

Описание утилиты screen в Linux
Рис. 2. Оба псевдотерминала в одном окне Screen (вверху) вместо двух отдельно открытых окон (внизу).

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

1. Термины и определения

Окно (window) — псевдотерминал со своим bash (nonlogin). Окна нумеруются от 0 до 9 (номера окон можно переопределить). Им можно (и желательно) присваивать имена.

Область (region) — прямоугольная область экрана, в которой отображается одно из окон. Экран можно разбить на области как вертикально, так и горизонтально.

Разметка экрана (layout). Это набор областей, на которые разбит экран терминала. Каждой разметке можно присвоить имя и внести в конфигурационный файл, чтобы иметь возможность быстро выбирать их внутри сессии Screen с помощью группы команд layout (см. ниже).

2. Описание команд

Управляющие сочетания клавиш. Для перехода в режим ввода управляющих команд в screen по умолчанию используется Ctrl-a. После нажатия этой комбинации вводится собственно управляющий символ или сочетание, например ? (справка по командам) или Ctrl-I (переход в следующую область). Для упрощения изложения в дальнейшем будут упоминаться только сами управляющие сочетания без переключателя Ctrl-a.

 

Внутренние команды Screen. Доступны после ввода управляющего символа : (двоеточие).

3. Пример файла конфигурации .screenrc

Глобальный файл конфигурации screen находится по адресу /etc/screenrc, но для удобства работы лучше написать пользовательский файл, который должен располагаться в домашнем каталоге пользователя ~/.screenrc. Обратите внимание, что в начале имени локального файла присутствует точка.

За основу я взял файл с Github (.screenrc by joaopizani) и подправил под свои нужды:

  1. Оставлена нижняя статусная строка, в которой отображаются все рабочие окна под своими номерами и именами. Нумерация окон для удобства сделана с 1 по 10-е.
  2. Предопределено несколько самых распространённых разметок экрана, которые интуитивно легко выбрать по порядковому номеру:
    0 — one (одна область)
    1 — two-v (две вертикальные области)
    2 — two-h (две горизонтальные области)
    3 — three (три области — две вверху, одна внизу)
    4 — four (четыре области)
  3. По умолчанию открывается разметка с двумя вертикальными областями (two-v)
  4. Оставлено одно активное окно и убран нерабочий код функциональных клавиш

Таким образом, при запуске Screen мы получим экран в стиле Total Commander, который в любое время можно изменить, выбрав другую разметку. После возврата в сессию Screen из системной консоли разметка будет такой же, как на момент «открепления» благодаря функции автосохранения.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Do NOT follow this link or you will be banned from the site!