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
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59