Sådan kører du to eller flere terminalkommandoer på en gang i Linux
Hvis du bruger Linux, ved du, hvor nyttigt kommandolinjen kan bruges til at arbejde med filer, installere software og starte programmer. Men det kan være endnu mere effektivt, hvis du kører flere kommandoer på én gang.
Kombination af to eller flere kommandoer på kommandolinjen er også kendt som "command chaining". Vi viser dig forskellige måder, du kan kombinere kommandoer på kommandolinjen.
Mulighed 1: Semikolon (;) Operatør
Operatøren semicolon (;) giver dig mulighed for at udføre flere kommandoer i rækkefølge, uanset om hver foregående kommando lykkes. For eksempel åbne et Terminal vindue (Ctrl + Alt + T i Ubuntu og Linux Mint). Indtast derefter følgende tre kommandoer på en linje, adskilt af semikolon, og tryk på Enter. Dette giver dig en oversigt over den aktuelle mappe ( ls
), find ud af, hvilken mappe du er i øjeblikket ( pwd
), og vis dit login navn ( hvem er jeg
) alt på en gang.
ls; pwd; hvem er jeg
Du behøver heller ikke at placere mellemrum mellem semikolonerne og kommandoerne. Du kan indtaste de tre kommandoer som ls; pwd; whoami
. Men mellemrum gør den kombinerede kommando mere læsbar, hvilket er særligt nyttigt, hvis du lægger en kombineret kommando i et shell script.
Mulighed to: Den logiske og operatør (&&)
Hvis du vil have den anden kommando kun køre, hvis den første kommando er vellykket, skal du adskille kommandoerne med den logiske OG-operatør, som er to ampersands (dvs. &&
). For eksempel ønsker vi at lave en mappe kaldet MyFolder og derefter skifte til den pågældende mappe, forudsat at den blev oprettet. Så skriver vi følgende på kommandolinjen og trykker på Enter.
mkdir MyFolder && cd MyFolder
Mappen blev oprettet, så den cd
kommandoen blev henrettet, og vi er nu i den nye mappe.
Vi anbefaler at bruge den logiske OG-operatør i stedet for semikolonoperatøren det meste af tiden (;
). Dette sikrer, at du ikke gør noget katastrofalt. For eksempel, hvis du kører en kommando for at skifte til en mappe og derefter tvinge fjerne alt i den pågældende mappe rekursivt ( cd / some_directory; rm -Rf *
), kan du ende med at ødelægge dit system, hvis mappeændringen ikke skete. Ikke at vi anbefaler, at du løber en kommando for ubetinget at fjerne alle filer i en mappe på én gang.
Mulighed Tre: Den Logiske ELLER Operatøren (||)
Nogle gange kan du kun udføre en anden kommando, hvis den første kommando gør det ikke lykkes. For at gøre dette bruger vi den logiske OR-operatør eller to vertikale stave ( ||
). Vi ønsker for eksempel at kontrollere, om MyFolder-biblioteket eksisterer ( [-d ~ / MyFolder]
) og opret den, hvis den ikke gør det ( mkdir ~ / MyFolder
). Så vi indtaster følgende kommando ved prompten og trykker på Enter.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Sørg for, at der er plads efter den første beslag og før den anden beslag eller den første kommando, der kontrollerer, om mappen eksisterer, vil ikke virke.
I vores eksempel eksisterer MyFolder-mappen ikke, så den anden kommando opretter mappen.
Kombination af flere operatører
Du kan også kombinere flere operatører på kommandolinjen. For eksempel vil vi først kontrollere, om der findes en fil ( [-f ~ / sample.txt]
). Hvis det gør det, udskriver vi en besked på skærmen og siger det ( ekko "Fil eksisterer."
). Hvis ikke, opretter vi filen ( touch ~ / sample.txt
). Så skriver vi følgende på kommandoprompten og trykker på Enter.
[-f ~ / sample.txt] && echo "Filen eksisterer." || touch ~ / sample.txt
I vores eksempel eksisterede filen ikke, så den blev oprettet.
Her er et nyttigt resumé af hver af de operatører, der bruges til at kombinere kommandoer:
-
A; B
- Kør A og derefter B, uanset succesen eller fejlen i A -
A && B
- Kør kun B, hvis A lykkes -
A || B
- Kør kun B, hvis A mislykkedes
Alle disse metoder til at kombinere kommandoer kan også bruges i shell scripts på både Linux og Windows 10.
Du kan også automatisk korrigere stavning og skrivefelter, når du bruger "cd" på kommandolinjen i Linux for at undgå drastiske konsekvenser, når du kombinerer kommandoer.