Поиск по сайту:

Как запустить несколько команд Linux одновременно

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

Сейчас большую часть времени я провожу в Linux, используя приложения с графическим интерфейсом. Это не значит, что я могу полностью избежать командной строки. Почему? Частично потому, что я тоже работаю с серверами. Но время от времени я предпочитаю использовать командную строку на рабочем столе. Например, когда мне нужно запустить обновления в системе, я открываю окно терминала и прохожу процесс вручную.

Почему? Потому что это более эффективно.

В системе на базе Ubuntu этот процесс часто требует выполнения нескольких команд. Для этого у меня есть два варианта: я могу запустить одну команду, дождаться ее завершения, запустить следующую команду, дождаться ее завершения, запустить следующую команду… вы поняли.

Однако есть и второй вариант — гораздо более простой метод, который позволяет запускать все эти команды из одной печатной строки.

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

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

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

Итак, как это делается? Это очень просто. Позвольте мне показать вам, как это сделать.

Как объединить команды Linux

Что вам понадобится: Единственное, что вам понадобится для этой демонстрации, — это работающий экземпляр Linux. Не имеет значения, какой дистрибутив вы используете, поскольку этот процесс одинаков для всех версий. Помните, что для запуска определенных команд уровня администратора вам понадобится пользователь с привилегиями sudo.

Подготовив все это, давайте выполним несколько команд. Сначала я буду демонстрировать команды по одной, чтобы вы могли увидеть, как все это работает.

1. Запустите свою первую команду

Давайте сначала запустим простую команду. Мы собираемся создать новый пустой файл. Используемая команда — touch и запускается следующим образом:

touch zdnet_test

Приведенная выше команда создает новый файл с именем zdnet_test.

2. Запустите вторую команду

Следующая команда добавит содержимое в файл. Эта команда выглядит примерно так:

echo "Hello, linux-terminal.com!" > zdnet_test

3. Просмотрите содержимое файла

Теперь вы можете просмотреть содержимое нового файла с помощью команды:

cat zdnet_test

В выводе команды будет написано «Привет, linux-terminal.com!».

4. Запустите их все одновременно

Теперь, когда вы знаете последовательность команд (и что она делает), давайте объединим их все вместе, чтобы создать файл, добавить в него содержимое и просмотреть файл. Команда для этого будет:

touch zdnet_test && echo "Hello, linux-terminal.com!" > zdnet_test && cat zdnet_test

Как видите, && — это трюк для объединения команд. Это действительно настолько просто.

5. Последний трюк

Помните, я говорил, что для некоторых команд вам потребуются права sudo? Допустим, вы хотите обновить apt, запустить его и обновить, а затем очистить свою систему, удалив все неиспользуемые зависимости.

Для этого есть три отдельные команды: sudo apt-get update, sudo apt-get update и sudo apt-get autoremove. Чтобы объединить их вместе, всем трем командам потребуются привилегии sudo, поэтому команда выглядит следующим образом:

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove

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

sudo sh -c 'apt-get update && apt-get upgrade && apt-get autoremove'

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

И это все, что нужно сделать. Хотя этот подход не сэкономит вам кучу времени, он избавит вас от необходимости ждать завершения одной команды перед запуском следующей. Это может быть очень полезно при выполнении группы команд, каждая из которых занимает значительное время (например, резервное копирование).

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

Статьи по данной тематике