Як ефективно використовувати команди screen у Linux
Команда screen у Linux - незамінний інструмент для всіх, хто працює з термінальними сесіями. Вона дає змогу запускати кілька вікон термінала в межах однієї термінальної сесії, що значно спрощує одночасне керування кількома процесами. Незалежно від того, чи використовуєте ви команди screen для власних потреб, чи адмініструєте віддалені сервери, розуміння різних команд screen у Linux може суттєво підвищити вашу продуктивність.
У цьому гайді ми розповімо, як ефективно використовувати команди screen, які в них функції, і наведемо практичні приклади керування сесіями, зокрема корисні команди та розширені параметри. Ми також розглянемо перегляд списку сесій screen, прапорці screen і стандартні комбінації клавіш сесії, які допоможуть вам орієнтуватися в терміналі та оптимізувати роботу з ним.
Що таке команда screen у Linux?
Команда screen у Linux - це термінальний мультиплексор, який дає змогу створювати кілька віртуальних терміналів у межах одного фізичного термінала. По суті, вона створює віртуальні термінали, від яких можна будь-коли від'єднатися та знову під'єднатися. Це особливо корисно, коли потрібно запускати тривалі процеси або команди, які мають продовжувати роботу, навіть якщо ви від'єднаєтеся від термінала або вийдете із системи.
Команда screen у Linux дає змогу керувати кількома завданнями або процесами, не відкриваючи кілька вікон термінала. Можливість від'єднатися від сесії, а потім під'єднатися до неї пізніше забезпечує безперервне керування завданнями навіть через віддалені з'єднання.
Утиліта screen дає змогу запускати програми, які продовжують працювати після того, як ви вийдете із системи або з'єднання із сервером буде розірвано. Це надзвичайно корисно в середовищах, де тривалі процеси критично важливі, а переривання трапляються часто, наприклад під час віддаленого адміністрування та налагодження.
Запуск і перегляд списку сесій screen
Одна з найпоширеніших операцій, для яких ви використовуватимете команди screen, - керування кількома сесіями. Щоб запустити нову сесію screen, просто скористайтеся командою:
screen
Відкриється нова сесія, у якій можна виконувати команди. Щоб переглянути список ваших сесій screen, скористайтеся командою:
screen -ls
У виводі буде показано всі ваші запущені сесії screen разом з їхніми унікальними ідентифікаторами, наприклад:
There is a screen on:
2999.pts-6.localhost (Detached)
1920.PTS-6.localhost (Detached)
Щоб знову під'єднатися до сесії, скористайтеся командою screen -r з ID сесії:
screen -r 2999.pts-6.localhost
Так ви знову під'єднаєтеся до сесії та зможете продовжити з того місця, де зупинилися. Якщо сесій кілька, screen запропонує вказати, до якої з них під'єднатися.
Ця команда перегляду списку сесій screen може бути дуже корисною, коли ви керуєте кількома завданнями одночасно й вам потрібно швидко перемикатися між ними. Ви також можете скористатися командою screen -r з ідентифікатором сесії, щоб одразу під'єднатися до активної сесії.
Основні команди screen та їх використання
Тепер, коли ми розібралися, як запускати сесії та переглядати їх список, розгляньмо деякі з найуживаніших команд screen.
1. Створення сесій і керування ними
Щоб створити нову сесію screen із власною назвою:
screen -S MySession
Щоб від'єднатися від сесії, не закриваючи її:
Ctrl+A, D
Щоб знову під'єднатися до сесії після від'єднання:
screen -r
2. Переміщення між сесіями
Щоб перемикатися між різними вікнами screen:
Ctrl+A, N (Next window)
Ctrl+A, P (Previous window)
Щоб вивести список усіх вікон у поточній сесії:
Ctrl+A, W
Щоб перейти до певного вікна:
Ctrl+A, 0-9 (switch to the window with this number)
Окрім цих команд, команда screen у Linux дає змогу безперешкодно перемикатися між кількома сесіями та вікнами. Це особливо корисно, коли потрібно одночасно стежити за кількома процесами, але не хочеться захаращувати термінал окремими вікнами.
Розширені команди screen
Існують різні прапорці screen, які дають змогу налаштувати поведінку команди screen. Ці прапорці допомагають керувати тим, як поводяться ваші команди screen у Linux.
- -d -m: запуск сесії screen у від'єднаному режимі (без під'єднання до неї).
screen -d -m top
- -L: увімкнення журналювання для поточної сесії screen, що зберігатиме вивід сесії у файл.
screen -L
- -S: запуск сесії з власною назвою.
screen -S MySession
Ці прапорці дають змогу автоматизувати такі завдання, як журналювання, виконання команд у фоновому режимі та від'єднання від сесій без впливу на поточні процеси. Команда screen має широкі можливості налаштування для користувачів, яким потрібна гнучкість у керуванні термінальними сесіями.
Керування сесіями screen для кількох користувачів
Ще одна корисна можливість команди screen - спільний доступ до сесії для кількох користувачів. Це зручно для спільної роботи, наприклад коли кільком адміністраторам потрібно стежити за одним сервером.
Щоб увімкнути багатокористувацький режим у screen, виконайте такі кроки:
1. Запустіть сесію screen:
screen -S MySession
- Натисніть Ctrl+A, а потім :, щоб перейти в командний режим.
- Введіть multiuser on і натисніть Enter.
- Тепер ви можете надати доступ іншим користувачам, ввівши:
Ctrl+A, :multiuser on
2. Інший користувач може приєднатися до сесії, ввівши:
screen -x MySession
Так кілька користувачів можуть під'єднатися до однієї сесії, що робить screen корисним для спільних термінальних сесій або спільного усунення несправностей.
Корисні команди screen для керування сесіями
Ось короткий огляд найкорисніших команд screen, які варто знати, щоб максимально ефективно працювати із сесіями screen:
Ctrl+A, C: Create a new screen window.
Ctrl+A, N: Switch to the next screen window.
Ctrl+A, P: Switch to the previous screen window.
Ctrl+A, W: View a list of all screen windows.
Ctrl+A, Ctrl+A: Switch back to the previously viewed window.
Ctrl+A, D: Detach from the current screen session.
screen -R: Reattach to a detached session.
Ctrl+A, ?: Show a list of all available commands.
Ці команди допоможуть вам переміщатися між сесіями та вікнами, перемикатися між процесами й ефективно керувати середовищем screen.
Команди screen для журналювання та збереження виводу
Якщо потрібно записувати вивід сесії в журнал, screen пропонує простий спосіб зберегти все, що відбувається в сесії. Щоб почати журналювання, просто використайте параметр -L під час запуску сесії:
screen -L -S MySession
За замовчуванням увесь вивід сесії зберігатиметься у файл screenlog.0. Ви також можете вказати власну назву файлу:
screen -L -S MySession -Logfile /path/to/mylogfile.txt
Журналювання корисне для ведення записів про тривалі процеси або для документування.
Команди screen для керування процесами
Одна з потужних можливостей screen - запуск команд у фоновому режимі та продовження їх виконання навіть після від'єднання термінала. Ось як можна використовувати команди screen для керування процесами:
- Щоб запустити фоновий процес у сесії screen:
screen -S MySession -d -m long-running-command
- Щоб завершити сесію після завершення процесу:
screen -S MySession -X quit
- Щоб надіслати команду у вікно screen:
screen -S MySession -p 0 -X exec ls /home
Ці команди дають змогу виконувати завдання у фоновому режимі, навіть якщо ви від'єднаєтеся або закриєте термінал.
Прийоми та поради для screen
Є кілька додаткових прийомів і порад, які зроблять роботу зі screen ще зручнішою:
1. Буфер прокручування: за замовчуванням screen дає змогу прокручувати історію сесії назад. Щоб прокрутити вгору, використайте:
Ctrl+A, ESC
Потім за допомогою клавіш зі стрілками прокручуйте історію. Натисніть ESC, щоб вийти з режиму прокручування.
2. Режим розділення екрана: ви можете розділити вікно screen на кілька панелей:
Press Ctrl+A, then S to split the screen.
Press Ctrl+A, then Tab to switch between panes.
3. Надсилання виводу у файл: перенаправте вивід запущеної команди у файл за допомогою команди screen:
screen -S MySession -p 0 -X log
Команди screen у Linux для автоматизації
Команди screen у Linux також можна використовувати для автоматизації повторюваних завдань. Ось кілька прикладів:
1. Запуск фонової сесії з командою:
screen -S MySession -d -m long-running-command
2. Автоматизація керування файлами в сесії screen:
screen -S MySession -p 0 -X exec ls /home/user
3. Запуск скрипту у від'єднаній сесії:
screen -S MySession -d -m /bin/bash /path/to/script.sh
Ці команди особливо корисні, коли потрібно запускати кілька процесів одночасно й автоматизувати їх виконання у фоновому режимі.
Висновок
Команда screen у Linux необхідна для ефективного керування термінальними сесіями. Вона дає змогу виконувати кілька завдань в одній сесії, як на віддаленому сервері, так і в середовищі спільної роботи. Зі screen ви можете безперешкодно перемикатися між процесами, залишатися під'єднаними до тривалих команд і працювати разом у реальному часі. Вона особливо корисна для керування завданнями через нестабільні мережеві з'єднання, оскільки від сесій можна від'єднуватися та знову під'єднуватися без переривання поточних процесів. Крім того, screen підтримує розширені можливості, як-от багатокористувацькі сесії та журналювання, що робить її ідеальною як для індивідуального використання, так і для командних проєктів. Завдяки цій гнучкості та надійності screen є унікальним інструментом для всіх, хто працює в середовищах Linux, надаючи контроль, необхідний для підвищення продуктивності та оптимізації робочих процесів у складних завданнях.
Blog