Як багатозадачність у Linux-терміналі 3 способу одночасного використання декількох оболонок
Термінал Linux має багаті можливості багатозадачності. Ви можете перемикатися між віртуальними консолями, які вже працюють у вашій системі, використовувати керування роботою Bash для запуску процесів у фоновому режимі і скористатися перевагами екрану GNU, термінального «менеджера вікон».
Ви не повинні дотримуватися однієї команди за один раз. Якщо ви хочете запустити процес у фоновому режимі і відвідати його іноді або запустити відразу багато завдань, що займають багато часу, Linux пропонує кілька варіантів.
Віртуальні консолі
За замовчуванням у більшості систем Linux є декілька віртуальних консолей, які працюють у фоновому режимі. Перемикайтеся між ними, натискаючи Ctrl-Alt і натискання клавіші між ними F1 і F6. Ctrl-Alt-F7 зазвичай повертає вас до графічного X-сервера.
Натискання комбінації клавіш призведе до підказки для входу. Ви можете увійти в систему і запустити команду, а потім вимкнути - команда продовжуватиме працювати у фоновому режимі, так що ви можете мати кілька різних термінальних сеансів, що відбуваються одночасно.
Текст "tty1" тут вказує, що це термінал, розташований у Ctrl-Alt-F1, tty2 буде у F2.
Це лише найпоширеніші налаштування - різні дистрибутиви Linux можуть мати менше віртуальних консолей і мати X-сервер, розташований в іншому місці.
Контроль роботи Bash
Оболонка Bash надає свої функції для обробки декількох процесів. Контроль роботи дозволяє запускати процеси і приєднувати і від'єднуватися від них. Приєднаний процес відомий як процес на передньому плані, а окремий - як фоновий процес.
Щоб почати процес у фоновому режимі, додайте & після команди. Наприклад, щоб відкрити текстовий редактор Nano як фонове завдання, введіть таку команду:
nano &
[1] вказує, що ідентифікатор завдання нашої нової роботи дорівнює 1. 3751 - це ідентифікатор процесу.
Кожна робота, яку ми починаємо, отримує свій ідентифікатор завдання. Запустіть робочих місць для перегляду списку поточних завдань. Знак + вказує на завдання, яке було останньо пов'язане з оболонкою, тоді як знак - вказує на завдання, яке було друге до останнього, пов'язане з оболонкою.
The fg команда дозволяє привести фонове завдання на передній план, приєднавши його до поточної оболонки. Запуск команди fg або іншої пов'язаної з завданням команди без вказівки завдання виконуватиме останнє пов'язане завдання - одне з знаком + у списку завдань. Також можна вказати номер завдання. Наприклад, наступна команда поверне завдання 1 на передній план:
fg% 1
Завершіть процес нормально, і він зникне зі списку запущених завдань. Якщо ви хочете від'єднати завдання від поточної оболонки, використовуйте ^ Z - це, Ctrl-Z - клавіш.
Екран GNU
Екран GNU - це «повноекранний менеджер вікон», який дозволяє використовувати кілька оболонок в одному терміналі. Він не може бути встановлений за замовчуванням - він не на Ubuntu. На Ubuntu або Debian використовуйте наступну команду для встановлення екрана:
Екран установки sudo apt-get
Після встановлення запустіть екрану і ви побачите інформацію про екран.
Натисніть клавішу пробіл або клавішу Enter, і ви побачите звичайний термінал.
Можливо, він не виглядає особливим, але ця оболонка фактично працює у вікні GNU Screen. Натисніть Ctrl-a і потім d для від'єднання від екрана. Ви повернетеся до нормального терміналу.
Щоб прикріпити до екрана, запустіть екран -r команду. Ви повернетеся до того ж терміналу, що й раніше.
З екраном можна зробити набагато більше. Наприклад, створіть нове вікно (термінал) на екрані, натиснувши Ctrl-a, потім c. Після декількох вікон натисніть Ctrl-a двічі, щоб переключитися між ними. Також можна натиснути Ctrl-a, потім “ , щоб побачити список вікон.
Виберіть вікно у списку та натисніть Enter, щоб перейти до нього.
Ми раніше писали про використання GNU Screen і переходили до використання Byobu, що покращує GNU Screen.