Установка і використання screen на хмарному сервері ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

вступ

Screen - це консольний додаток, що дозволяє використовувати кілька термінальних сесій в одному вікні. Програма діє в рамках сесії оболонки і виступає в якості контейнера і менеджера для інших термінальних сесій, подібно до того, як менеджер вікон управляє вікнами.

У багатьох випадках створення декількох термінальних вікон не представляється можливим. Можливо, знадобиться управляти декількома сесіями консолі, що не запускаючи сервер X; може знадобитися швидкий доступ до кількох віддалених хмарним серверів або висновок на монітор працюючої програми під час роботи над якоюсь іншою завданням. Всі ці потреби легко задовольнити за допомогою консолі Screen.

Даний посібник використовує Ubuntu 12.04; на кожному сучасному дистрибутиві всі команди, крім установки, будуть такими ж.

Щоб встановити консоль на Ubuntu, використовуйте команду «apt-get»:

sudo apt-get update
sudo apt-get install screen

основи використання

Щоб почати сесію screen, просто викличте команду «screen»:

При запуску з'явиться сторінка ліцензування. Для продовження натисніть «Return» або «Enter».

Подальші дії програми можуть бути несподіваними. Надається звичайна командний рядок і, здається, нічого не відбувається. Може, сталася помилка роботи screen? Щоб дізнатися це, використовуйте швидке сполучення клавіш. Натисніть і утримуйте управління (Ctrl), натисніть «а», потім клавішу «v»:

Дана дія запитує у Screen інформацію про версії; виведений результат свідчить про те, що консоль працює.

Тепер потрібно ознайомитися з керуванням консоллю. Screen управляється переважно за допомогою клавішних комбінацій швидкого виклику. Кожній такій комбінації повинна передувати «Ctrl-a» (затисніть клавішу «Ctrl» перед натисканням «а»). Така послідовність натискання клавіш каже Screen звернути увагу на наступні натиснуті клавіші.

Даний принцип вже використовувався при запиті інформації про Screen. Використовуйте його знову, щоб отримати ще трохи корисної інформації.

Це список внутрішніх гарячих клавіш. Варто запам'ятати команду його виклику, так як це відмінний спосіб швидко отримати довідку. Як видно внизу файлу, щоб отримати більше команд, потрібно натиснути пробіл.

Тепер викличте команду «top», яка надає інформацію про процеси.

top
top - 16:08:07 up 1:44, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 58 total, 1 running, 57 sleeping, 0 stopped, 0 zombie
Cpu (s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st
Mem: 507620k total, 262920k used, 244700k free, 8720k buffers
Swap: 0k total, 0k used, 0k free, 224584k cached
PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
1 root 20 0 3384 1836 1288 S 0.0 0.4 0: 00.70 init
2 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0: 00.11 ksoftirqd / 0
5 root 20 0 0 0 0 S 0.0 0.0 0: 00.12 kworker / u: 0
6 root RT 0 0 0 0 S 0.0 0.0 0: 00.00 migration / 0
7 root RT 0 0 0 0 S 0.0 0.0 0: 00.07 watchdog / 0
8 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 cpuset
9 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 kdevtmpfs
11 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 netns
12 root 20 0 0 0 0 S 0.0 0.0 0: 00.03 sync_supers
13 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 bdi-default
14 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 kintegrityd
15 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 kblockd
16 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 ata_sff
17 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 khubd
18 root 0 -20 0 0 0 S 0.0 0.0 0: 00.00 md

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

Куди пропало це інше вікно? До нього можна повернутися за допомогою команди:

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

Дана послідовність перемикає вікна в зворотному порядку. Якщо, наприклад, запущено три вікна, і третє є поточним, дана команда виведе друге вікно.

При постійному перемиканні між двома вікнами корисно використовувати наступне поєднання клавіш:

Дана послідовність переводить користувача в найбільш часто відвідуване вікно. У попередньому прикладі вона б знову вивела третє вікно.

Зараз відстеження всіх створених вікон може здатися неможливим. На щастя, консоль Screen надає кілька способів управління різними сесіями. Для початку створіть три нових вікна (разом вийде 4 вікна), а потім використовуйте один з найпростіших інструментів управління вікнами - «Ctrl-a w».

Ctrl-a c
Ctrl-a c
Ctrl-a c
Ctrl-a w
0 $ bash 1 $ bash 2- $ bash 3 * $ bash

Дана команда надає корисну інформацію - список відкритих вікон. В даному випадку відкрито 4 вікна. Кожне вікно має свій номер, починаючи з 0. Зірочка поруч з номером вказує на поточне вікно.

Як можна бачити, на даний момент вікно №3 є поточним (по суті, воно четверте, так як нумерація починається з 0). Як швидко перемкнутися на вікно №1?

Порядковий номер можна використовувати для прямого переходу в необхідне вікно. Знову відкрийте список вікон:

Ctrl-a w
0 $ bash 1 * $ bash 2 $ bash 3- $ bash

Як можна бачити, тепер поточним є вікно №1. Спробуйте інший спосіб перемикання між вікнами.

Ctrl-a "
Num Name Flags
0 bash $
1 bash $
2 bash $
3 bash $

Це досить корисно, але на даний момент всі вікна називаються «bash». Це не дуже зручно. Тепер потрібно дати назву сесії. Перейдіть на вікно, яке потрібно назвати, і використовуйте послідовність «Ctrl-a A».

Ctrl-a 0
Ctrl-a A
Set window's title to: bash

За допомогою даної послідовності можна дати сесії назву. За допомогою клавіші «backspace» зітріть «bash» і введіть будь-яке нове ім'я. Для прикладу назвіть вікно №0 «monitoring» і запустіть в ньому команду «top».

Set window's title to: monitoring
Ctrl-a "
Num Name Flags
0 monitoring $
1 bash $
2 bash $
3 bash $

Вікно №0 має більш зручне ім'я.

Тепер можна створювати і перейменовувати вікна; але як позбутися непотрібного вікна?

Використовуйте послідовність «Ctrl-a k», що означає «kill»:

Ctrl-a k
Really kill this window [y / n]

Управління сесіями Screen

Щоб вийти з Screen і закрити всі вікна, використовуйте наступну послідовність команд:

Ctrl-a \
Really quit and kill all your windows [y / n]

Це завершить сесію Screen. Всі створені вікна, а також вся незавершена робота будуть втрачені.

Використання Screen має одну величезну перевагу. Сесію можна не видаляти, а просто зняти. Зняття сесії дозволяє програмам, запущеним в Screen, продовжувати роботу, а також дає доступ до сесії основний консолі (тієї, з якої починається робота зі Screen). Дана сесія Screen все ще існує, просто вона управляється в фоновому режимі.

Ctrl-a d
[Detached from 1835.pts-0.Blank]

Отже, сесія знята. Як повернутися в цю сесію?

Прапор «-r» означає «reattach», або «відновити». Але що якщо існує кілька сесій Screen? Що якщо сесія Screen була створена і знята, а потім створена нова сесія, яка також була знята?

screen
Ctrl-a d
screen
Ctrl-a d

Як сказати Screen, яку сесію потрібно відновити?

Тепер виведений список сесій. Щоб відновити другу сесію, введіть її ідентифікаційний номер після прапора «-r».

Що якщо потрібно відновити сесію на двох віддалених комп'ютерах або термінальних вікнах? Використовуйте прапор «-x», що дозволяє розділити сесію.

Управління терміналами в Screen

Існує ряд команд, що дозволяє управляти сесіями терміналів, запущених в Screen.

Щоб скопіювати текст, використовуйте послідовність:

Ця послідовність надає курсор, який можна пересувати за допомогою клавіш зі стрілками або ж клавіш «h», «j», «k», «l» (як в vi). Переведіть курсор на початок фрагмента тексту, який потрібно скопіювати, і натисніть «Return» або «Enter». Потім переведіть курсор в кінець фрагмента і знову натисніть «Return» або «Enter». Текст буде скопійований в буфер обміну.

Можна вставити скопійований текст за допомогою закриває квадратної дужки

Наприклад, будь-які дані компілюються в одному вікні і необхідно дізнатися, коли процедура завершена. Можна сказати Screen відстежувати бездіяльність цього вікна за допомогою послідовності «Ctrl-a _», яка повідомить, якщо дані перестануть виводитися протягом 30 секунд.

Наведемо більш простий приклад. Скажіть консолі Screen повідомити, коли вікно завершить пінг Google 4 рази.

ping -c 4 www.google.com
Ctrl-a _
The window is now being monitored for 30 sec. silence.

Тепер можна працювати в іншому вікні і чекати сповіщення про завершення завдання в попередньому вікні.

Ctrl-a 1
Window 2: silence for 30 seconds

Можна також, навпаки, запитувати повідомлення про активність певного вікна. Це робиться за допомогою послідовності «Ctrl-a M».

sleep 20 echo "output"
Ctrl-a M
Window 2 (bash) is now being monitored for all activity.

Тепер з'явиться повідомлення при виведенні даних в цьому вікні.

Ctrl-a 1
Activity in window 2

Наприклад, необхідно внести ряд важливих змін, і при цьому потрібно отримати журнал запущених команд. Сесію можна записати за допомогою:

Ctrl-a H
Creating logfile "screenlog.1".

області Screen

При необхідності бачити кілька вікон відразу, можна використовувати так звані «області». Нові області створюються при поділі поточної області. Щоб розділити поточну область по горизонталі, можна ввести:

Це пересуне поточне вікно в верхню частину екрана і відкриє нову порожню область під ним. Щоб перейти в нижню область, використовуйте «tab»:

Тепер в нижній області можна створити нове вікно або ж перейти в інше вікно в звичайному порядку.

При необхідності знищити поточну область використовуйте наступну послідовність:

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

При необхідності зробити вертикальний розділ, можна використовувати послідовність:

Примітка: це не символ 1 (одиниці) або L. Це символ вертикальної риски, який на більшості клавіатур знаходиться на одній клавіші з символом «\». Засоби управління вертикальними областями збігаються з керуванням горизонтальними. При необхідності видалити кілька різних областей і повернутися до однієї області, можна використовувати дану послідовність, яка руйнує всі сфери, крім поточної:

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

Значним поліпшенням для Screen є програма під назвою «byobu». Вона діє як оболонка Screen і надає підвищену зручність користування. В Ubuntu її можна встановити за допомогою:

sudo apt-get install byobu

Перш ніж почати, потрібно сказати byobu використовувати screen як вихідний буфер. Це можна зробити за допомогою команди:

byobu-select-backend
Select the byobu backend:
1. tmux
2. screen
Choose 1-2 [1]:

Тут можна встановити screen як менеджер терміналу за замовчуванням.

Тепер можна ввести «byobu» замість «screen», щоб почати сесію.

Як можна бачити, тепер screen укладений в зручний інтерфейс.

Вперше набравши «Ctrl-a», потрібно сказати byobu розпізнавати цю команду як команду screen, а не Emacs.

Ctrl-a
Configure Byobu's ctrl-a behavior.
When you press ctrl-a in Byobu, do you want it to operate in:
(1) Screen mode (GNU Screen's default escape sequence)
(2) Emacs mode (go to beginning of line)
Note that:
- F12 also operates as an escape in Byobu
- You can press F9 and choose your escape character
- You can run 'byobu-ctrl-a' at any time to change your selection
Select [1 or 2]:

Виберіть 1, щоб використовувати byobu в звичайному режимі.

Інтерфейс надає багато корисної інформації, як, наприклад, список вікон і інформацію про систему. В Ubuntu він навіть повідомляє, скільки пакетів має оновлення безпеки у вигляді номера з подальшим знаком оклику на червоному тлі.

Єдина відмінність між byobu і screen в тому, що byobu управляє сесіями. Якщо після відключення просто знову набрати «byobu», вона відновить попередню сесію замість того, щоб створювати нову.

Щоб створити нову сесію, потрібно набрати:

byobu -S sessionname

Якщо існує декілька сесій, то після введення «byobu» з'явиться меню, в якому можна вибрати, до якої з сесій потрібно підключитися.

Можна вибрати будь-яку з існуючих сесій, створити нову сесію byobu, або навіть нову оболонку, що не використовує byobu.

Одна з дуже корисних для віддаленого хмарного сервера функцій - можливість запускати byobu автоматично при кожному підключенні до сесії. Це означає, що при відключенні сесії робота не буде втрачена, і можна буде без праці підключитися до даної сесії знову.

Щоб активувати автоматичний запуск byobu при кожному вході, введіть в термінал:

byobu-enable
The Byobu window manager will be launched automatically at each text login.
To disable this behavior later, just run:
byobu-disable
Press to continue.

Як зазначено вище, щоб відключити цю функцію, просто введіть:

Тоді вона не буде запускатися автоматично.

Схожі статті