ГлавнаяОперационные системыLinuxБудьте более эффективными, выполняя несколько команд в Linux одновременно

Будьте более эффективными, выполняя несколько команд в Linux одновременно

Хотите сэкономить массу времени? Попробуйте выполнить несколько команд одновременно в терминале Linux. Это позволяет запускать простые последовательные команды выполнять команды в фоновом режиме и даже обрабатывать условные команды вместе.

В этой статье мы рассмотрим различные методы последовательного и параллельного выполнения нескольких команд на терминале Linux.

Зачем запускать несколько команд одновременно?

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

Зачем запускать несколько команд одновременно?

.ru/2023/10/06/luchshee-programmnoe-obespechenie-dlya-rezervnogo-kopirovaniya-linux/" title="резервное копирование нескольких папок">резервное копирование нескольких папок используете команды, вы можете объединить их вместе вместо того, чтобы запускать каждую команду отдельно и ждать завершения одной, прежде чем вводить следующую.

Лично я объединяю команды, когда установка любого пакета Linux требует нескольких модулей. Объединяя команды, я устанавливаю конкретный инструмент и его зависимости за один раз, не вводя каждую команду отдельно.

Выполнение нескольких команд подряд

Я использую этот метод большую часть времени при работе в терминале. В этом методе мы объединяем команды так, чтобы они выполнялись одна за другой, независимо от успеха предыдущей команды.

Чтобы выполнить команды последовательно, просто разделите их точкой с запятой ;. Когда вы нажимаете Enter, ваш терминал запускает первую команду, ждет ее завершения, затем переходит ко второй и так далее.

Например, если вы хотите одновременно выполнить обновите свою систему и очистить ненужные файлы, запустите это:

sudo apt update; sudo apt upgrade -y; sudo apt autoremove
Обновление, обновление и очистка системы Ubuntu с помощью менеджера пакетов apt.

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

Выполнение нескольких команд в зависимости от условия

А что, если вы хотите, что

Выполнение нескольких команд подряд

е успеха первой? Или, может быть, вы хотите, чтобы вторая команда выполнялась только в случае сбоя первой. Здесь на помощь приходит условное выполнение команды. Для этого можно использовать операторы &&и ||.

Выполнить, если первая команда выполнена успешно

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

Например, если вы хотите создать новую папку, а затем менять каталоги к ней, только если создание папки прошло успешно, запустите:

mkdir new_folder && cd new_folder
Создание и изменение каталога одновременно.

Однако если первая команда не выполнена, дальнейшие действия не предпринимаются.

Выполнить, если сначала не удалось

С другой стороны, если вы хотите, чтобы вторая команда выполнялась только в случае сбоя первой, используйте оператор ||. Это полезно для регистрации или резервных команд, если что-то пойдет не так.

Я считаю, что это особенно полезно при операциях с файлами, например, копирование файла в папку резервного копирования. Если копирование не удалось, вы хотите узнать об этом, не прерывая работу. Этого можно добиться, используя оператор ||между двумя такими командами:

cp file_name /backup || echo "Failed!" >> error_log.txt

Здес

Выполнение нескольких команд в зависимости от условия

ервного копирования. Однако если копирование не удалось, символ ||(или) указывает системе выполнить следующую команду, которая регистрирует ошибку с помощью команды эхо . Таким образом, вы сможете продолжить работу, даже если копирование не удастся, и у вас будет запись об ошибке, которую можно будет просмотреть позже.

Выполнить команду в фоновом режиме

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

Выполнить, если первая команда выполнена успешно

добавив амперсанд &в конце команды.

Например, если вы хотите загрузить большой файл с определенного URL-адреса и чтобы процесс загрузки происходил в фоновом режиме, выполните:

sudo wget https://example.com/large-file.zip &

Это позволит вам продолжать использовать терминал для других задач, пока загрузка еще продолжается.

Трубы и фон — вторая команда

А что, если вы хотите объединить две команды, но чтобы вторая выполнялась в фоновом режиме, пока первая завершается? Для этого используйте оператор вертикальной черты |и символ амперсанда &.

Канал |отправляет выходные данные первой команды в качестве входных данных для второй команды, а амперсанд &позволяет второй команде работать в фоновом режиме.

Давайте разместим внутри него прочитать большой файл и Выполнить, если сначала не удалосьi-opredelennoe-slovo-v-fayle-linux/" title="искать конкретные слова">искать конкретные слова . Затем сохранить результаты в отдельный файл с помощью оператора перенаправления >:

cat samplefile.txt | grep "Project" > output.txt &
Поиск большого файла и сохранение указанных результатов отдельно.

Здесь процесс поиска и сохранения будет происходить в фоновом режиме. Более того, пока выполняется поиск, вы можете одновременно продолжать работу над другими командами.

Параллельное выполнение нескольких команд с помощью Xargs

Хотите вывести многозадачность на новый уровень? Попробуйте параллельный запуск команд с помощью команды xargs. Это позволяет запускать несколько команд параллельно, а не одну за другой.

Команда xargsтакже разбивает список аргументов на фрагменты и запускает команду для каждого фрагмента параллельно.

Например, если у вас есть список URL-адресов в текстовом файле, который вы хотите загрузить все сразу. Вместо того, чтобы загружать их последовательно, вы можете загрузить их параллельно с помощью этой команды:

cat urls_file.txt | xargs -n 1 -P 4 wget

Здесь -n 1сообщает xargsиспользовать один аргумент для каждой команды, а -P 4указывает ему выполнять четыре команды параллельно. Команда Выполнить команду в фоновом режимеle="wget">wget загружает каждый URL одновременно, что значительно ускоряет процесс по сравнению с последовательной загрузкой.

Примечание. Одновременное выполнение слишком большого количества команд может перегрузить вашу систему. Всегда следите за загрузкой вашей системы, поскольку попытка запустить слишком много процессов может привести к ее сбою.

Подведение итогов

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

Изображение предоставлено: Unsplash . Все изменения и скриншоты сделаны Харуном Джаведом.

Трубы и фон — вторая команда

Параллельное выполнение нескольких команд с помощью Xargs

Подведение итогов

ПОХОЖИЕ СТАТЬИ

Популярные записи