Домашняя » как » Как запустить две или более терминальных команды одновременно в Linux

    Как запустить две или более терминальных команды одновременно в 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, чтобы избежать кардинальных последствий при объединении команд.