Домашня » як » Як багатозадачність у Linux-терміналі 3 способу одночасного використання декількох оболонок

    Як багатозадачність у 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.