Linux

Как использовать многозадачность в терминале Linux: 3 способа использования нескольких оболочек одновременно

image

Терминал Linux обладает богатыми возможностями многозадачности. Вы можете переключаться между виртуальными консолями, уже запущенными в вашей системе, использовать управление заданиями Bash для запуска процессов в фоновом режиме и использовать экран GNU, оконный «оконный менеджер».

Вам не нужно придерживаться одной команды за раз. Если вы хотите запустить процесс в фоновом режиме и периодически его повторять, или одновременно выполнять несколько трудоемких задач, Linux предлагает несколько вариантов.

Виртуальные консоли

По умолчанию большинство систем Linux имеют несколько виртуальных консолей, работающих в фоновом режиме. Переключайтесь между ними, нажимая Ctrl-Alt и нажимая клавишу между F1 и F6 . Ctrl-Alt-F7 обычно возвращает вас на графический X-сервер.

Нажатие комбинации клавиш приведет вас к приглашению войти в систему. Вы можете войти в систему и выполнить команду, а затем отключиться — команда продолжит работать в фоновом режиме, поэтому вы можете одновременно запускать несколько разных сеансов терминала.

image

Текст «tty1» здесь указывает, что это терминал, расположенный в Ctrl-Alt-F1, tty2 будет в F2.

Это только самые распространенные настройки — в разных дистрибутивах Linux может быть меньше виртуальных консолей и X-сервер расположен в другом месте.

Bash Job Control

Оболочка Bash предоставляет свои собственные функции для обработки нескольких процессов. Управление заданиями позволяет запускать процессы, прикреплять и отсоединять их. Присоединенный процесс известен как процесс переднего плана, в то время как отдельный процесс известен как фоновый процесс.

Чтобы запустить процесс в фоновом режиме, добавьте символ & после его команды. Например, чтобы открыть текстовый редактор Nano в качестве фонового задания, введите следующую команду:

нано &

image

[1] указывает, что идентификатор нашей новой работы равен 1. 3751 — это идентификатор процесса.

Каждая работа, которую мы начинаем, получает свой собственный идентификатор работы. Запустите команду jobs, чтобы просмотреть список запущенных в данный момент работ. Знак + указывает на задание, которое было в последний раз связано с оболочкой, а знак — указывает на задание, которое было последним, связанным с оболочкой.

image

Команда fg позволяет вам перенести фоновое задание на передний план, прикрепив его к текущей оболочке. Выполнение команды fg или другой связанной с заданием команды без указания задания будет использовать последнее связанное задание — задание со знаком + в списке заданий. Вы также можете указать номер работы. Например, следующая команда вернет задание 1 на передний план:

фг% 1

image

Завершите процесс как обычно, и он исчезнет из списка запущенных заданий. Если вы хотите отсоединить задание от текущей оболочки, используйте ^ Z — то есть Ctrl-Z — сочетание клавиш.

image

Экран GNU

GNU Screen — это «полноэкранный оконный менеджер», который позволяет вам использовать несколько оболочек в одном терминале. Возможно, он не установлен по умолчанию — его нет в Ubuntu. В Ubuntu или Debian используйте следующую команду для установки Screen:

sudo apt-get установочный экран

После установки запустите команду screen, и вы увидите некоторую информацию о Screen.

image

Нажмите пробел или Enter, и вы увидите нормально выглядящий терминал.

image

Это может не выглядеть особенным, но эта оболочка фактически работает в GNU Screen. Нажмите Ctrl-a, а затем d, чтобы отсоединиться от экрана. Вы вернетесь к обычному терминалу.

image

Для повторного подключения к экрану выполните команду screen -r . Вы вернетесь к тому же терминалу, что и раньше.

image

С экраном можно сделать гораздо больше. Например, создайте новое «окно» (терминал) на экране, нажав Ctrl-a , затем c . Если у вас есть несколько окон, дважды нажмите Ctrl-a для переключения между ними. Вы также можете нажать Ctrl-a , затем «, чтобы увидеть список окон.

image

Выберите окно в списке и нажмите Enter, чтобы переключиться на него.


Ранее мы писали об использовании GNU Screen и перешли на использование Byobu , которое улучшает GNU Screen.

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

LinuxКак сделать

Что такое Swappiness в Linux? (и как это изменить)

LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux