Шпаргалка по использованию утилиты screen в Linux.
Команда screen
и её аналоги входят в копилку основных используемых программ любого системного администратора.
Screen позволяет переключаться между терминалами с запущенными процессами без необходимости их прерывать. Это очень эффективно при параллельной работе сразу с несколькими задачами. Также утилита позволяет разбить экран на несколько окон.
Дополнительно screen позволяет подключаться к одной сессии нескольким пользователям, что удобно при обучении персонала.
И самое важное, на мой взгляд, утилита позволяет запустить опасный или долгий процесс без опасения, что сессия внезапно оборвётся и процесс прервётся. Оборвётся, да и не страшно, можно подключиться к прерванной сессии снова.
Установка screen
Утилиту screen не входит в список стандартных утилит всех дистрибутивов Linux, иногда её приходится устанавливать.
apt install screen
yum install screen
dnf install screen
aurman -S screen
Использование screen
Запуск первого окна:
screen
Управляющие команды начинаются с сочетания клавиш Ctrl + a
, затем управляющая клавиша или сочетание клавиш. Управляющие клавиши и сочетания можно заменить на двоеточие + текст.
Новое окно:
Ctrl + a, c
Список окон:
Ctrl + a, w
Переход к окну:
Ctrl + a, номер_окна
Интерактивный выбор окна стрелками:
Ctrl + a, "
Следующее окно:
Ctrl + a, n
Предыдущее окно:
Ctrl + a, p
Разделить экран по горизонтали:
Ctrl + a, S
Ctrl + a, :split
Разделить экран по вертикали:
Ctrl + a, |
Ctrl + a, :split -v
Переключение между разделёнными окнами:
Ctrl + a, Tab
Ctrl + a, :focus
Закрыть окно:
Ctrl + a, X
Ctrl + a, :remove
Запустить в окне терминал:
Ctrl + a, c
Ctrl + a, :screen
Закрыть все окна кроме текущего:
Ctrl + a, Q
Ctrl + a, :only
Назвать окно:
Ctrl + a, A
Скрыть все окна сессии:
Ctrl + a, \
Выйти из менеджера окон:
Ctrl + a, d
Полный список команд:
Ctrl + a, ?
Работа с сессиями screen
Создать сессию с определённым именем:
screen -S имя
Посмотреть список сессий:
screen -ls
У сессии есть id, название и статус. Здесь id — идентификатор сессии (процесса). Статус может быть Attached (задействован) и Detached (незадействован).
Перейти к первой сессии:
screen -r
Перейти к определённой сессии:
screen -r идентификатор_сессии
Все команды:
screen -h