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

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


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

Объединение двух или более команд в командной строке также известно как «цепочка команд». Мы покажем вам различные способы объединения команд в командной строке.

Вариант первый: оператор точки с запятой (;)

Оператор точки с запятой (;) позволяет последовательно выполнять несколько команд, независимо от того, была ли выполнена каждая предыдущая команда. Например, откройте окно терминала (Ctrl+Alt+T в Ubuntu и Linux Mint). Затем введите следующие три команды в одну строку, разделенные точкой с запятой, и нажмите Enter. Это даст вам список текущего каталога ( ls ), узнает, в каком каталоге вы сейчас находитесь ( pwd ), и отобразит ваше имя для входа ( whoami ) все сразу.

ls ; pwd ; whoami

Вам также не нужно ставить пробелы между точкой с запятой и командами. Вы можете ввести три команды как ls;pwd;whoami . Однако пробелы делают комбинированную команду более читаемой, что особенно полезно, если вы помещаете комбинированную команду в сценарий оболочки.

Второй вариант: логический оператор И (&&)

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

mkdir MyFolder && cd MyFolder

Папка была успешно создана, поэтому была выполнена команда cd, и теперь мы находимся в новой папке.

В большинстве случаев мы рекомендуем использовать логический оператор И, а не оператор точки с запятой (;). Это гарантирует, что вы не сделаете ничего катастрофического. Например, если вы запускаете команду для перехода в каталог, а затем рекурсивно удаляете все в этом каталоге ( cd /some_directory ; rm -Rf * ), вы можете разрушить свою систему, если каталог изменения не произошло. Не то чтобы мы рекомендовали запускать команду для безоговорочного удаления сразу всех файлов в каталоге.

Вариант третий: логический оператор ИЛИ (||)

Иногда вам может понадобиться выполнить вторую команду только в том случае, если первая команда не не выполнена успешно. Для этого мы используем логический оператор ИЛИ или две вертикальные черты ( || ). Например, мы хотим проверить, существует ли каталог MyFolder ( [ -d ~/MyFolder ] ), и создать его, если это не так ( mkdir ~/MyFolder ). Итак, мы вводим следующую команду в командной строке и нажимаем Enter.

[ -d ~/MyFolder ] || mkdir ~/MyFolder

Убедитесь, что после первой скобки и перед второй скобкой есть пробел, иначе первая команда, которая проверяет, существует ли каталог, не будет работать.

В нашем примере каталог MyFolder не существует, поэтому вторая команда создает каталог.

Объединение нескольких операторов

Вы также можете комбинировать несколько операторов в командной строке. Например, мы хотим сначала проверить, существует ли файл ( [ -f ~/sample.txt ] ). Если это так, мы выводим на экран сообщение об этом ( echo \Файл существует.\ ). Если нет, мы создаем файл ( touch ~/sample.txt ). Итак, мы вводим в командной строке следующее и нажимаем Enter.

[ -f ~/sample.txt ] && echo "File exists." || touch ~/sample.txt

В нашем примере файла не существовало, поэтому он был создан.

Вот полезный обзор каждого из операторов, используемых для объединения команд:

  •  А ; B  – запустить A, а затем B, независимо от успеха или неудачи A
  •  A && B — Запустить B только в случае успеха A
  •  А || B  — запускать B только в случае сбоя A

Все эти методы объединения команд также можно использовать в сценариях оболочки как в Linux, так и в Windows 10.

Вы также можете автоматически исправлять орфографию и опечатки при использовании «cd» в командной строке в Linux, чтобы избежать серьезных последствий при объединении команд.

RELATED: Best Linux Laptops for Developers and Enthusiasts