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

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

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

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

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

 ls; pwd; Whoami 

Вам также не нужно ставить пробелы между точками с запятой и командами. Вы можете ввести три команды как 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 «Файл существует.» ). Если нет, мы создаем файл ( touch ~/sample.txt ). Итак, мы вводим следующее в командной строке и нажимаем Enter.

 [-f ~/sample.txt] && echo «Файл существует.» || коснитесь ~/sample.txt 

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

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

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

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

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

Оцените статью
TutoryBird.Ru
Добавить комментарий