Как запустить две или более терминальных команды одновременно в Linux
Если вы используете Linux, вы знаете, насколько полезной может быть командная строка для работы с файлами, установки программного обеспечения и запуска программ. Но это может быть еще более эффективным, если вы запускаете несколько команд одновременно.
Объединение двух или более команд в командной строке также называется «объединением команд». Мы покажем вам различные способы объединения команд в командной строке..
Вариант первый: оператор с запятой (;)
Оператор точки с запятой (;) позволяет вам выполнять несколько команд подряд, независимо от того, была ли успешной каждая предыдущая команда. Например, откройте окно терминала (Ctrl + Alt + T в Ubuntu и Linux Mint). Затем введите следующие три команды в одну строку, разделенные точкой с запятой, и нажмите Enter. Это даст вам список текущего каталога ( Ls
), выясните, в каком каталоге вы сейчас находитесь ( PWD
) и отобразите ваше имя для входа ( кто я
) все сразу.
лс; pwd; кто я
Вам также не нужно ставить пробелы между точками с запятой и командами. Вы можете ввести три команды как Ls; PWD; Whoami
. Однако пробелы делают комбинированную команду более читабельной, что особенно полезно, если вы помещаете комбинированную команду в сценарий оболочки.
Вариант второй: логический оператор И (&&)
Если вы хотите, чтобы вторая команда выполнялась только в том случае, если первая команда выполнена успешно, разделите команды с помощью логического оператора AND, который является двумя амперсандами ( &&
). Например, мы хотим создать каталог с именем MyFolder, а затем перейти в этот каталог при условии, что он был успешно создан. Итак, мы вводим следующее в командной строке и нажимаем Enter.
mkdir MyFolder && cd MyFolder
Папка была успешно создана, поэтому CD
команда была выполнена и мы теперь в новой папке.
Мы рекомендуем использовать логический оператор AND, а не точку с запятой большую часть времени (;
). Это гарантирует, что вы не делаете ничего катастрофического. Например, если вы запустите команду, чтобы перейти в каталог, а затем принудительно рекурсивно удалить все содержимое в этом каталоге ( cd / some_directory; rm -Rf *
), вы можете в конечном итоге разрушить вашу систему, если не произойдет смена каталога. Не рекомендуется запускать команду для безоговорочного удаления всех файлов в каталоге сразу.
Вариант третий: оператор логического ИЛИ (||)
Иногда вам может понадобиться выполнить вторую команду, только если первая команда выполняет не добиться успеха. Для этого мы используем логический оператор ИЛИ или две вертикальные черты ( ||
). Например, мы хотим проверить, существует ли каталог MyFolder ( [-d ~ / MyFolder]
) и создайте его, если это не так ( mkdir ~ / MyFolder
). Итак, мы вводим следующую команду в командной строке и нажимаем Enter.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Убедитесь, что после первой скобки и перед второй скобкой есть пробел или первая команда, которая проверяет, существует ли каталог, не будет работать.
В нашем примере каталог MyFolder не существует, поэтому вторая команда создает каталог.
Объединение нескольких операторов
Вы также можете объединить несколько операторов в командной строке. Например, мы хотим сначала проверить, существует ли файл ( [-f ~ / sample.txt]
). Если это произойдет, мы выводим на экран сообщение о том, что echo «Файл существует»
). Если нет, мы создаем файл ( коснитесь ~ / sample.txt
). Итак, мы вводим следующее в командной строке и нажимаем Enter.
[-f ~ / sample.txt] && echo «Файл существует.» || коснитесь ~ / sample.txt
В нашем примере файл не существует, поэтому он был создан.
Вот полезная сводка по каждому из операторов, используемых для объединения команд:
-
А; В
- Запустите A, а затем B, независимо от успеха или неудачи A -
A && B
- Запускайте B, только если успешно -
A || В
- Запустите B только в случае сбоя
Все эти методы объединения команд также можно использовать в сценариях оболочки как в Linux, так и в Windows 10..
Вы также можете автоматически исправлять орфографию и опечатки при использовании «cd» в командной строке в Linux, чтобы избежать кардинальных последствий при объединении команд.