Як використовувати screen linux-адміністратору

Є така чудова утиліта screen. про яку я раніше взагалі не знав! Тепер же намагаюся постійно використовувати. І, сподіваюся, після прочитання цієї статті, будете використовувати її і ви.

Отже, для чого вона потрібна?

Подивимося, як це працює:

Утиліта у мене була вже встановлена, про що радісно повідомила мені команда:

# Dpkg info | grep screen

Ну от і все! Тепер можна починати роботу.

Робота з сесіями Screen

Запускати screen можна набравши в консолі назва цієї програми. Ви відразу потрапите або в термінал, або на вікно запрошення, звідки після натискання пробілу або введення знову ж в термінал.

Подивитися всі сесії screen-а можна так:

Якщо сесії відкриті, то підключитися до них можна так:

або без імені, якщо сесія одна.

Створити сесію з певним ім'ям можна так:

Крім того, можна відразу запускати програми в Screen-сесію, набираючи їх:

Попрацювали ми зі скрін, тепер можемо або вбити сесію (вийшовши з оболонки), або відключитися від неї (Ctrl + D). При цьому все, що було в сесії продовжить виконуватися і далі.

Крім того в одному вікні screen можна використовувати кілька консолей.

Вбити сесію можна командою [Ctrl + a] і потім k.

Управління Screen-му

У screen-а вельми специфічне управління. Програмі, запущеної всередині нього передаються всі натискання клавіш, крім тих, що передує поєднанням Ctrl + a (за замовчуванням). Тобто щоб управляти screen-му - потрібно спершу натиснути цю комбінацію, а потім набрати керуючу клавішу.

Отже, створюємо нове вікно всередині сесії screen:

Чи можемо перейменувати це вікно, для того, щоб мати можливість швидко його знайти:

Як використовувати screen linux-адміністратору

Набрали текст, тиснемо Enter.

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

Як використовувати screen linux-адміністратору

Є варіанти вибрати не інтерактивний список [Ctrl + a] w. а так же перемикатися на наступне [Ctrl + a] n або на попереднє вікно [Ctrl + a] p. Або відразу на заздалегідь відомий номер вікна [Ctrl + a] 2. Зверніть увагу, що нумерація ведеться з нуля.

Це може бути дуже зручно ось для чого: припустимо, нам потрібно в реально часу моніторити будь-який процес. Припустимо, потрібно слухати log-файл постійно. Для цього нам потрібна команда

# Tail -f / path / to / log

яка буде в реальному часі забирати 10 останніх записів і виводити їх на екран. Створимо нову консоль screen так:

# Screen -d -m -S tail-log tail -f /var/log/nginx/error.log

- це створить нову сесію screen-а, тобто коли скріни поки не запущені взагалі. При наборі цієї команди, на перший погляд, нічого не відбувається. Насправді так і є. Створюється (-m) новий сеанс по імені "tail-log", в якому виконується команда "tail -f /var/log/nginx/error.log" (виводить 10 останніх записів лог-файлу в реальному часі), і цей сеанс запускається вже згорнутим (-d).

Якщо ж скрін у вас вже запущений, то можна створити нове вікно:

Перейменувати його в tail-log

І запустити там потрібну нам команду:

# Tail -f /var/log/nginx/error.log

Моніторинг змін вікна

Але і це ще не все. Зручності ще тільки починаються. Є ситуації, коли висновок будь-якого вікна довго залишається незмінним. Наприклад чекати, поки в логи потрапить будь-яка інформація може бути дуже довго. І screen дещо має на цей рахунок!

Запустили ми два вікна LOG в якому прослуховується лог-файл, і USER в якому наша консоль. Чекаємо поки в консолі. Реагувати будемо тоді, коли в прослуховується LOG щось прийде. Але не перемикатися ж постійно туди-сюди, з метою вловити зміни?

і включаємо моніторинг активності вікна. Тепер якщо текст вікна зміниться, то в списку вікон біля його імені буде відображено символ "@", а внизу вікна на декілька секунд з'явиться напис "Активність у вікні № ..."!

Як використовувати screen linux-адміністратору

Так само є зворотна можливість моніторити "тишу", для цього використовується команда: [Ctrl + a] _.

Два вікна відразу

А чи можна відкрити два консольних вікна відразу? Звичайно можна! Screen дозволяє розділити вікно. Ось як ми це зробимо.

Поділяємо вікно на частини:

При цьому поточне вікно піде в верхню частину.

Перемикання на нижчий регіон (на перший, якщо вже на самому нижньому) здійснюється так:

Відкриваємо там іншу консоль:

і вибираємо її по імені. Імена вікон підсвічуються (0 LOG, 1 USER) щоб ми не заплутали між ними.

Як використовувати screen linux-адміністратору

2 вікна відразу? легко

Переміщаючи фокус введення по Tab-у, як описано вище, ми, нарешті, награлися. Закриваємо вікна.

# [Ctrl + a] X - закриває поточний регіон, [Ctrl + a] Q закриває всі інші, крім поточного. Дивлячись що вам потрібно.

Для цього є команда

# [Ctrl + a] [. при цьому можна переміщатися по вікну курсорними клавішами, для визначення початку текстового фрагмента тиснемо пробіл. Рухаючи стрілочками курсор, відзначаємо кінець виділення і знову тиснемо пробіл. Все, фрагмент скопійовано. Вставляється він в цей же або інше вікно натисканням [Ctrl + a]]. Все просто!

Ведення логу і принт-скрін

Так само можна вести трасування всього тексту, що видається в вікно в особливий файл screenlog. де N - номер вікна.

Тепер все результати вашої роботи будуть Залогуватися і можна подивитися історію не тільки введення, а й виведення.

Так само команда для зняття поточного вікна

конфігурація

Для себе можна конфігурувати Screen дуже гнучко. Після запуску виконуються команди в конфігах / etc / screenrc і персональні .screenrc в каталозі користувача.

У кожної клавіатурній команди є і текстовий варіант для конфіга, який можна подивитися в довідці.

Але для прикладу ось такий конфіг, в якому відключаємо вітання, створюємо заголовок і рядок статусу, створюємо два вікна USER і LOG, в яких відкриваємо відповідні каталоги, робимо активним перше вікно USER.
startup_message off
caption always "%% Screen:% n |% h% =% t% c"
hardstatus alwayslastline "% -Lw %% 50>% n% f *% t %% + Lw%<"
chdir / root /
screen -t USER
chdir / var / log / nginx /
screen -t LOG
select 0

Тепер при простому запуску скрін у нас буде наступне:

Як використовувати screen linux-адміністратору

Зручний робочий стіл

Схожі статті