Консольний віконний менеджер Screen. Працюємо в терміналі з зручністю.

Були часи, коли паралельно основним місцем роботи, я підробляв віддалено в техпідтримку у одного хостинг-провайдера (займалися в основному виділеними серверами на FreeBSD). Так ось там я дізнався і став активно використовувати одну чудову консольную програму – screen.

Screen – це повноекранний віконний менеджер, який дозволяє розділити фізичний термінал між декількома незалежними процесами (зазвичай інтерактивними облочки)

Да уж … визначення з man звучить дещо незрозумілою і зовсім не сприяє припливу ентузіазму для вивчення. Значить доведеться самому розкрити деякі принади цієї, без сумніву, потрібною і зручною програми.

Чим може допомогти screen при роботі на віддалених серверах по ssh?

Напевно найзручнішим, особисто для себе, вважаю можливість в будь-який момент покинути активну ssh-сесію і надалі відновити її.

Поясню на прикладі – припустимо ви почали збирати заново ядро, або запустили якийсь тривалий процес, але дочекатися його завершення немає можливості. Screen дозволяє відключитися від поточного сеансу не перериваючи виконуваної роботи. У будь-який момент ви маєте можливість продовжити роботу так, як ніби ви і не відключалися. Крім того, при раптовому розриві ssh з’єднання з сервером screen-сесія не переривається, що дуже зручно при роботі з слабким каналам зв’язку (наприклад GSM модеми).

Другий за значимістю поставлю можливість управління декількома консольними вікнами. Суть в тому, що screen дозволяє, використовуючи єдину ssh сесію, створити кілька вікон терміналів, з легкістю перемикатися між ними і виконувати різні завдання в кожному з них паралельно.

Слід зауважити, що на екрані терміналу відображається тільки одне з вікон (є можливість одночасного відображення більшої кількості – в цьому випадку вікна будуть ділити екран терміналу на частини, що на мій погляд не зручно).

Ну і нарешті третій, досить цікавий момент – одночасне підключення декількох користувачів до однієї активної сесії screen. Де така функція може знадобитися? Наприклад в такому режимі працював консольний icq клієнт служби техпідтримки, де будь-який консультант міг відповідати на питання, підключившись до активної сесії screen. Так само його цілком можна використовувати для навчання нових співробітників.

установка screen

Власне шукати складності тут не варто. Все просто і не вимагає додаткової настройки, хіба що ви захочете якісь екзотичні налаштування під себе зробити – тоді вам в man. Збираємо з портів (природно у мене FreeBSD), у линуксоидов вже буває скомпільована.

# Cd / usr / ports / sysutils / screen
# Make install

Використання screen

$ screen

Screen, як і будь-який додаток, запускається стандартно з shell. Залежно від системи, ви можете отримати повідомлення про запуск, а можете і не отримати … Навіть, якщо термінал на вигляд не змінився, не переживайте. Ви вже всередині терміналу, але тільки запущеного в screen. Переконатися в цьому просто – натисніть Ctrl-a, а потім ?

Всі керуючі команди в screen, починаються з комбінації клавіш Ctrl-a.

Трошки поясню як правильно використовувати комбінації клавіш (в старості напишу книгу Unix для даунів). натиснули Ctrl і не відпускаючи a, тепер залиште Ctrl-a в спокої і натискайте керуючий символ. Наведу комбінації клавіш, які, на мій погляд, прігождаются найчастіше:

код:
Ctrl-a c
Ctrl-a Сtrl-c – створити нове вікно screen’а
Ctrl-a d – від’єднатися від консольної сесії (detach) і залишити
її запущеної в фоновому режимі.
Ctrl-a Ctrl-a – перемикання між двома вікнами (активним і попереднім)
Ctrl-a [0..9, -] – перемкнутися між вікнами, або отримати пусте вікно
Ctrl-a n – наступне (next) вікно
Ctrl-a p – попереднє (prev) вікно
Ctrl-a k – закрити поточне вікно з підтвердженням (kill)
Ctrl-a \ – закрити всі вікна сесії і вийти з Screen
Ctrl-a? – довідка

Щоб приєднатися назад до отсоединенной сесії, або подивитися список доступних сесій, необхідно запустити Screen з одним з наступних ключів:

$ Screen -r приєднатися до отсоединенной сесії
$ Screen -R приєднатися до першої підходящої отсоединенной сесії
$ Screen -x приєднатися до вже працюючої сесії
$ Screen -ls виводить список доступних сесій

Метою статті не ставилося дати повний опис всіх можливих функції цієї замечальной програми, для цього є man, тут лише хотілося дати уявлення про такому цікавому иструменте. Будуть питання – пишіть.

Якщо вважаєте статтю корисною, не лінуйтеся ставити лайки і ділитися з друзями.

Ссылка на основную публикацию