GNU Screen — це програма, яка дозволяє запускати кілька віртуальних терміналів у режимі сесій. Після того, як сесію створено, від неї можна відключитися, а пізніше знову підключитися, причому з будь-якого іншого хоста, на якому встановлений SSH клієнт. Процеси, запущені в Screen, продовжують виконуватися і після того, як користувач відключається від сесії або взагалі від хоста в цілому. Це ще одна причина (крім підвищення зручності роботи в командному рядку внаслідок використання можливості переходу між вікнами), через яку використовується Screen. Якщо з’єднання з інтернетом ненадійне або у користувача немає можливості підтримувати постійне з’єднання, чи існує необхідність запустити виконання процесу в офісі, а зупинити вдома, то використання Screen (або подібних програм, наприклад, Tmux) — спосіб вирішити ці проблеми.
Команди Screen для Linux
Після встановлення програму Screen можна запустити командою screen. При цьому буде створена сесія, назва якої включатиме ідентифікатор процесу самої сесії (PID) та частину назви хостнейму. Для того, щоб надати сесії ім’я, необхідно вказати ключ –S:
screen –S myscreensession01
Після входу в сесію її керування здійснюється шляхом введення комбінацій клавіш. Вступна комбінація для Screen — ctrl + a . Після цього вводиться символ, визначений до виконання тієї чи іншої дії. Наприклад, щоб відключитися від сесії, необхідно вказати символ d, тобто:
ctrl + a d
Для створення нового вікна використовується символ c:
ctrl + a c
Перехід до наступного вікна:
ctrl + a n
Перехід до попереднього вікна:
ctrl + a p
Для вибору конкретного вікна:
ctrl + a “
або
ctrl + a 1 (де 1 – номер вікна)
Для видалення поточного вікна:
ctrl + a k
При видаленні останнього вікна також знищується сама сесія. Для знищення всіх вікон та виходу з Screen:
ctrl + a ctrl \
Для розбиття вікна на два (по горизонталі):
ctrl + a S
Повний список комбінацій можна переглянути у документації за допомогою команди:
man screen
Щоб переглянути список доступних сесій, необхідно використовувати команду:
screen –ls
Для підключення до певної сесії (наприклад, myscreensession01):
screen –x myscreensession01