img

Как пользоваться утилитой screen в Linux?

Сейчас вы точно прочувствуете важное команды screen. Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли - CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали - пропало?

Прости, что напомнили. Знаем, это болезненно. Что же, вытрем слезы. Для этих ситуаций есть команда screen о которой мы и поговорим.


Немножко теории

Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно - процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии.


Установка screen в Linux

Вообще, пакет screen предустановлен на большинстве современных Linux - дистров. Проверить можно командой:

screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
screen --version

Если случилось так, что у вас его нет - это можно быстро исправить простой установкой.


Установка screen в Ubuntu и Debian

apt install screen

Установка screen в CentOS и Fedora

yum install screen

Запуск screen в Linux

Чтобы запустить screen в консоли, просто наберите screen. Что может быть проще, не правда ли?

screen

У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так:

Ctrl+a и ?
screen список доступных вам команд
Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a, отпустите, а затем в консоль наберите ? и нажмите Enter

Сессия screen с именем

Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой:

screen -S имя_сессия_скрин

Например, вы можете запустить ping - замер хоста с 1С и назвать сессию так:

screen -S pings_towards_1C

Всегда используйте скрин именно так. Будет значительно удобнее.


Как правильно работать с окнами в Windows

Как мы уже сказали, когда вы создаете новую screen - сессию, вы создадите новое окно с shell оболочкой внутри. И что интересно - внутри скрин сессии вы можете создать множество дополнительных окон. Чтобы это сделать, воспользуйтесь командой (внутри скрина) Ctrl+a и c. Новому окну будет назначен номер от 0 до 9 (первый свободный).

Ниже мы собрали все команды, которые понадобятся вам для управления скринами:

  • 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 - закрыть текущую область;

Выход из screen сессии

Вы можете легко выйти из screen - сессии набрав:

Ctrl+a и d

Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение.


Возврат к screen сессии

Чтобы вернуть к screen - сессии используйте команду:

screen -r

Если у вас запущено больше чем одна screen - сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды:

screen -ls

Вывод этой команды будет выглядеть вот так:

screen -ls
There are screens on:
        32328.pings_towards_1C  (Detached)
        32482.wiki.merionet.ru_is_one_love      (Detached)
2 Sockets in /var/run/screen/S-root.

В выводе выше мы выделили ID - сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду:

screen -r 32328

Немножко кастомизации screen под вас

Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и ~/.screenrc, если файл присутствует. Так вот - мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc.

Посмотрите пример с комментариями, как мы закастомили screen для себя:

# Выключаем приветствие
startup_message off

# включаем визуальный звонок
vbell off

# буфер для сохраненных строк делаем 10000
defscrollback 10000

# кастомим строку состояния
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

Типовой сценарий использования screen

Общий случай, так сказать. Обычно он состоит из следующих шагов:

  1. После SSH подключения к серверу, набираем screen;
  2. Запускаем интересующую нас команду в режиме screen - сессии;
  3. Выполняем команду Ctrl + a и d, чтобы выйти из режима работы с экран-сессией
  4. Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r

Выводы

Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны.

Ах да, ещё мы научились кастомизировать screen под себя. Профит!

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
На базе нашего опыта и статей мы сделалем еще один полезный документ: руководство администратора по Linux/Unix системам. В докум
img
Удаленный доступ к системам давно стал необходимостью, и сейчас с трудом можно представить, что было бы, если бы мы не могли упр
img
Все мы любим компьютеры. Они могут делать столько удивительных вещей. За пару десятилетий компьютеры произвели самую настоящую р
img
Архитектуры х64 и х86 являются одними из наиболее широко используемых типов архитектур системы команд (АСК или ISA – Instr
img
Gzip – один из самых популярных алгоритмов сжатия, который позволяет сократить размер файла, но при этом сохранить исходный файл
img
Интернет может быть опасным. Спросите любого хорошего IT-специалиста, и он вам обязательно расскажет о важности обеспечения безо
Комментарии
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59