Як запустити дві або більше команд терміналу в раз в Linux
Якщо ви використовуєте Linux, ви знаєте, наскільки корисним може бути командний рядок для роботи з файлами, встановлення програмного забезпечення та запуску програм. Але це може бути ще більш ефективним, якщо виконувати кілька команд одночасно.
Об'єднуючи дві або більше команд у командному рядку, також називають «командним ланцюгом». Ми покажемо вам різні способи комбінування команд у командному рядку.
Варіант 1: Оператор з комою (;)
Оператор з комою (;) дозволяє виконувати безліч команд поспіль, незалежно від того, чи успішно виконується кожна попередня команда. Наприклад, відкрийте вікно Терміналу (Ctrl + Alt + T у Ubuntu та Linux Mint). Потім введіть наступні три команди на один рядок, розділені крапкою з комою, і натисніть клавішу Enter. Це надасть вам список поточного каталогу ( ls
), дізнайтеся, у якому каталозі ви зараз перебуваєте ( pwd
) і відобразити своє ім’я для входу ( хто я
) відразу.
ls; pwd; хто я
Не потрібно розміщувати пробіли між комою та командами. Можна ввести три команди як ls; pwd;
. Проте пробіли роблять комбіновані команди більш читабельними, що особливо корисно, якщо ви покладете комбіновані команди на скрипт оболонки.
Варіант 2: Логічний оператор І (&&)
Якщо ви хочете, щоб друга команда виконувалася тільки, якщо перша команда успішна, поділіть команди на логічний оператор AND, що є двома амперсандами ( &&
). Наприклад, ми хочемо створити каталог з назвою MyFolder, а потім змінити на цей каталог, якщо він був успішно створений. Отже, вводимо наступне в командному рядку і натискаємо Enter.
mkdir MyFolder && cd MyFolder
Папку було успішно створено, тому cd
команда була виконана, і ми зараз знаходимося в новій папці.
Ми рекомендуємо використовувати логічний оператор AND, а не оператор з крапкою з комою, більшу частину часу (;
). Це гарантує, що ви не робите нічого згубного. Наприклад, якщо ви виконуєте команду для переходу до каталогу, а потім змушуєте рекурсивно видалити все в цьому каталозі ( cd / some_directory; rm -Rf *
), ви можете в кінцевому підсумку зіпсувати вашу систему, якщо зміна каталогу не відбулося. Не те, що ми рекомендуємо вам запустити команду для безумовного видалення всіх файлів у каталозі одночасно.
Варіант три: Логічний оператор АБО (||)
Іноді вам може знадобитися виконати другу команду, лише якщо виконує перша команда ні досягати успіху. Для цього ми використовуємо оператор логічного оператора OR або дві вертикальні смуги ( ||
). Наприклад, ми хочемо перевірити, чи існує каталог 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, а потім B, незалежно від успіху або невдачі A -
& & B
- Запустіть B, лише якщо A виконано -
A || B
- Запустіть B, лише якщо A не вдалося
Всі ці способи комбінування команд можна також використовувати в сценаріях оболонки як на Linux, так і на Windows 10.
Ви також можете автоматично виправляти орфографічні помилки під час використання "cd" в командному рядку в Linux, щоб уникнути різких наслідків під час комбінування команд.