Как скрыть screen linux

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

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

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

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

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

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

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

    Читайте также:  Тест по английскому windows

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

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

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

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

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

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

    » data-auto-index=»off» data-searching-settings=»null» data-currency-format=»$1,000.00″ data-head=»» data-foot=»» data-responsive-mode=»0″ data-from-history=»0″ >
    Работа с окнами (псевдотерминалами, PTS)
    с Создать окно с запущенным в нём bash.
    K Закрыть окно
    А Переименовать окно
    r Включение / Выключение переноса строк в терминале
    « Вывести список окон
    Работа с областями экрана (regions)
    s Разбить область на две по горизонтали
    I (pipe) Разбить область на две по вертикали
    Tab Переключиться в следующую область экрана
    Q Закрыть все остальные области и оставить текущую (в которой находится фокус)
    Работа с сессиями Screen
    d Перевести сессию в фоновый режим и вернуться в системную консоль

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

    » data-auto-index=»off» data-searching-settings=»null» data-currency-format=»$1,000.00″ data-head=»» data-foot=»» data-responsive-mode=»0″ data-from-history=»0″ >
    Читайте также:  Ломаный софт для mac os
    mousetrack on Включить поддержку мыши для переключения между областями. При этом блокируется возможность копирования / вставки по правому щелчку мыши в окне ssh-клиента Putty. Эта функция почему-то пропадает после «открепления» сессии Screen и возвращения в неё.
    layout show Просмотреть список разметок экрана, заданных в конфигурационном файле
    layout select [n|title] Выбрать заданную в конфигурационном файле именованную разметку экрана либо по номеру (n) либо по названию (title).
    layout save XXX Эту команду нужно выполнить для сохранения текущего layout-а с именем XXX перед откреплением сессии Screen, если в конфигурационном файле не прописано ни одной именованной разметки (например, вы только установили screen). Только в этом случае последняя разметка восстанавливается при повторном входе в сессию Screen из системной консоли.
    layout autosave on Команда автосохранения разметки обычно записывается в конфигурационном файле. Она запоминает тот именованный layout, который был на экране на момент «открепления» сессии Screen. Команда действует только на разметки, явно указанные в конфигурационном файле. В противном случае текущий layout нужно сохранить командой layout save XXX (см. выше).
    quit Закрыть все окна и завершить сессию

    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. Оставлено одно активное окно и убран нерабочий код функциональных клавиш
    Читайте также:  Настройка mac os teamviewer

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

    Источник

    Оцените статью