Как да стартирате две или повече терминални команди веднъж в Linux
Ако използвате Linux, знаете колко полезна може да бъде командния ред за работа с файлове, инсталиране на софтуер и стартиране на програми. Но може да бъде още по-ефективно, ако стартирате няколко команди едновременно.
Комбинирането на две или повече команди в командния ред е също така известно като "командно веригиране". Ще ви покажем различни начини, по които можете да комбинирате команди в командния ред.
Вариант едно: Операторът с точка и запетая (;)
Операторът с точка и запетая (;) ви позволява да изпълнявате няколко последователни команди, независимо от това дали всяка предишна команда е успешна. Например, отворете терминален прозорец (Ctrl + Alt + T в Ubuntu и Linux Mint). След това въведете следните три команди в един ред, разделени с точка и запетая, и натиснете Enter. Това ще ви даде списък с текущата директория ( LS
), разберете в коя директория сте в момента ( хората с увреждания
) и показва името ви за вход ( кой съм аз
) всичко наведнъж.
ls; pwd; кой съм аз
Не е необходимо да поставяте интервали между точките и командите. Можете да въведете трите команди като LS; хората с увреждания; Whoami
. Независимо от това, интервалите правят комбинираната команда по-разбираема, което е особено полезно, ако поставяте комбинирана команда в шел скрипт.
Вариант 2: Логически И оператор (&&)
Ако искате втората команда да работи само ако първата команда е успешна, разделете командите с логическия оператор AND, който е два амперсанда ( &&
). Например, искаме да направим директория, наречена MyFolder и след това да я променим, ако е създадена успешно. Така че, въведете следното в командния ред и натиснете Enter.
mkdir MyFolder && cd Моята папка
Папката бе създадена успешно, така че 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
В нашия пример файлът не съществува, така че е създаден.
Ето едно полезно резюме на всеки от операторите, използвани за комбиниране на команди:
-
А; B
- Пусни A и B, независимо от успеха или неуспеха на A -
A && B
- Изпълнете B само ако A успя -
A || B
- Изпълнете B само ако A се провали
Всички тези методи за комбиниране на команди могат да се използват и в shell скриптове на Linux и Windows 10.
Можете също така автоматично да коригирате правописа и грешките при използване на "cd" в командния ред в Linux, за да избегнете драстични последствия при комбиниране на команди.