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