Як виконати багатозадачність у терміналі Linux з екраном

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

Але що станеться, якщо вам потрібно запустити кілька команд одночасно? GNU Screen робить термінальну багатозадачність такою простою; давайте почнемо використовувати його.


Що таке екран GNU?

GNU Screen - це інструмент для терміналу Linux, який розділяє один термінал на кілька. Це означає, що ви можете запустити одну команду, скажімо, завантаження wget файла зображення, при перемиканні на запуск другої, такої як systemctl, щоб перевірити стан SMART вашого диска.

Це дозволяє вам запускати незалежні команди, подібні цим, в окремих сеансах, які ви можете підключати і вимикати за бажанням.

Це не просто корисно для вашого ПК; це майже необхідно, якщо ви керуєте віддаленим сервером. Якщо ви виконуєте команди на сервері через SSH, що станеться, якщо ви вимкнете? Команда все ще може виконуватися, але ви не зможете легко контролювати або взаємодіяти з нею.

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

Як встановити екран

Screen не входить до більшості дистрибутивів Linux, але оскільки він передує Linux, він добре підтримується.

Якщо ви бажаєте встановити його у дистрибутив Ubuntu або Debian, виконайте наступне:


sudo apt-get update sudo apt-get install screen

Так само, якщо ви використовуєте Arch, відкрийте вікно оболонки і запустите:

sudo pacman -Syu sudo pacman -S screen

Якщо ви використовуєте Fedora, запустіть це:

sudo yum update sudo yum install screen

Початок сеансу екрана

Почати сеанс екрана просто. Відкрийте термінал або встановіть з'єднання SSH і введіть screen. Ви побачите вікно введення екрана; натисніть пробіл або клавішу вводу, щоб закрити його.

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


Перегляд та від "єднання екранів

Ви хочете знати, як з'єднатися і відключитися від сеансу екрана, якщо ви плануєте використовувати його знову. Якщо ви вже знаходитеся в сеансі екрана, натисніть Ctrl + A, а потім літеру d (нижній регістр).

Сеанс і всі команди, які зараз виконуються всередині нього, від'єднаються для виконання у фоновому режимі і будуть готові для повторного з'єднання пізніше. Припускаючи, що у вас є лише один сеанс Screen, введіть:

screen -r

Це приєднає вашу сесію і дозволить вам продовжити. Якщо вам потрібно примусово вимкнути сеанс, а потім знову з'єднатися з ним, введіть:

screen -rd


Ви можете запустити більше одного сеансу екрана. Якщо ви бажаєте з "єднатися з певним сеансом, вам слід дізнатися ідентифікаційний номер процесу сеансу. Введіть screen -ls або screen -r, щоб вивести їх.

Як показано на зображенні вище, введіть screen -r а потім початковий ідентифікаційний номер на початку кожного сеансу. Наприклад:

screen -r 25407

Якщо ви хочете закрити сеанс і скасувати всі команди, що виконуються в ньому, з'єднайтеся з ним і введіть exit.

Інші команди екранного термінала, які потрібно запам'ятати

Screen має кілька хитрощів для користувачів, які хочуть отримати максимальну віддачу від нього. Ось кілька найбільш поширених команд терміналу, які ви повинні запам'ятати.


Комбінації клавіш на екрані списку

Як і у всіх хороших термінальних програмах, Screen має поєднання клавіш для використання. Ви вже використовуєте Ctrl + A і d, щоб від'єднати існуючі екрани.

Якщо ви хочете побачити все інше, просто натисніть Ctrl + A, а потім? щоб дати вам список, з яким ви можете працювати.

Створення та переключення між Windows у сеансі

Вам не потрібно перемикатися між сесіями для запуску команд; Ви також можете перемикатися між вікнами в одному сеансі.

Натисніть Ctrl + A і відфільтруйте числа 0-9. Щоб показати кожен з них, скористайтеся Ctrl + A, а потім w (рядкові літери), щоб побачити список сеансів з однозначним ідентифікатором.

Створити сеанс з назвою

Випадково створений ідентифікатор важко запам'ятати; присвоєння вашій сесії назви може спростити завдання. Якщо ви бажаєте розпочати сеанс з назвою, введіть:


screen -S examplename

Якщо ви бажаєте з "єднатися з цим сеансом за назвою, введіть:

screen -X examplename

Поділитися сеансом екрана

Хочете поділитися термінальною сесією з колегою або другом? Завдяки Screen ви можете. Тип:

screen -rx

Замість того, щоб вимикати будь-кого, підключеного до цього сеансу, ви просто приєднуєтеся до нього. Інші користувачі побачать, що ви вводите, і які команди ви запускаєте; ви також зможете спостерігати за іншими користувачами, якщо вони зроблять те ж саме.

Записати ваш вивід до файла

Вам може знадобитися записати вивід на екран у файл для обслуговування або аудиту. Для цього введіть:

screen -L

Сеанс почнеться з можливості входу до файлу з назвою screenlog.x (де X - число, починаючи з нуля) у вашій домашній теці. Щоб почати журнал у сеансі, введіть Ctrl + A, а потім H (Shift + h).

Блокування сеансу екрана

Якщо ви хочете захистити сеанс екрана, ви можете заблокувати сеанс за допомогою вашого існуючого пароля Linux.

Введіть Ctrl + A, а потім x (нижній регістр), щоб заблокувати сеанс, поки ви в даний момент з'єднані до нього.

Це блокує його у вашому поточному вікні термінала; введіть пароль свого облікового запису, щоб розблокувати.

Термінальна багатозадачність не може бути простішою

Завдяки GNU Screen вам не потрібно турбуватися про завершення команди терміналу. Це корисно, якщо ви хочете керувати віддаленими серверами, але це також відмінний інструмент для домашнього комп'ютера, якщо вам потрібно запустити кілька команд з одного вікна.

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

COM_SPPAGEBUILDER_NO_ITEMS_FOUND