Slik kjører du to eller flere terminalkommandoer på en gang i Linux
Hvis du bruker Linux, vet du hvor nyttig kommandolinjen kan være for å jobbe med filer, installere programvare og starte programmer. Men det kan være enda mer effektivt hvis du kjører flere kommandoer samtidig.
Kombinere to eller flere kommandoer på kommandolinjen er også kjent som "command chaining". Vi viser deg forskjellige måter du kan kombinere kommandoer på kommandolinjen.
Alternativ One: Semikolon (;) Operatør
Semikolonen (;) -operatøren lar deg utføre flere kommandoer i rekkefølge, uansett om hver forrige kommando lykkes. Åpne for eksempel et Terminal-vindu (Ctrl + Alt + T i Ubuntu og Linux Mint). Deretter skriver du inn følgende tre kommandoer på en linje, adskilt av semikolon, og trykker på Enter. Dette gir deg en oversikt over gjeldende katalog ( ls
), finn ut hvilken katalog du er i øyeblikket ( pwd
), og vis ditt påloggingsnavn ( hvem er jeg
) alt på en gang.
ls; pwd; hvem er jeg
Du trenger heller ikke å legge mellomrom mellom semikolonene og kommandoene. Du kan skrive inn de tre kommandoene som ls; PWD; whoami
. Men mellomrom gjør den kombinerte kommandoen mer lesbar, noe som er spesielt nyttig hvis du setter en kombinert kommando inn i et shell-skript.
Alternativ to: Den logiske og operatøren (&&)
Hvis du vil at den andre kommandoen bare skal kjøre hvis den første kommandoen er vellykket, skiller du kommandoene med den logiske OG-operatøren, som er to ampersands ( &&
). For eksempel vil vi lage en katalog som heter MyFolder og deretter bytte til den katalogen, forutsatt at den ble opprettet. Så skriver vi inn følgende på kommandolinjen og trykker på Enter.
mkdir MyFolder && cd MyFolder
Mappen ble opprettet, slik at cd
kommandoen ble henrettet og vi er nå i den nye mappen.
Vi anbefaler at du bruker den logiske OG-operatøren i stedet for semikolonoperatøren mesteparten av tiden (;
). Dette sikrer at du ikke gjør noe katastrofalt. Hvis du for eksempel kjører en kommando for å bytte til en katalog, og deretter tvinge alt i katalogen rekursivt til å fjerne ( cd / some_directory; rm -Rf *
), kan du ende opp med å ødelegge systemet hvis katalogen endres ikke skjedde. Ikke at vi anbefaler at du kjører en kommando for ubetinget å fjerne alle filer i en katalog samtidig.
Alternativ Tre: Den Logiske ELLER Operatøren (||)
Noen ganger kan det være lurt å utføre en ny kommando bare hvis den første kommandoen gjør det ikke lykkes. For å gjøre dette bruker vi den logiske OR-operatøren, eller to vertikale stenger ( ||
). Vi vil for eksempel sjekke for å se om MyFolder-katalogen finnes ( [-d ~ / MyFolder]
) og lag det hvis det ikke gjør det ( mkdir ~ / MyFolder
). Så, skriver vi inn følgende kommando ved ledeteksten og trykker på Enter.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Pass på at det er en plass etter den første braketten og før den andre braketten eller den første kommandoen som kontrollerer om katalogen eksisterer, vil ikke fungere.
I vårt eksempel eksisterer ikke MyFolder-katalogen, så den andre kommandoen lager katalogen.
Kombinere flere operatører
Du kan kombinere flere operatører på kommandolinjen også. For eksempel vil vi først sjekke om det finnes en fil ( [-f ~ / sample.txt]
). Hvis det gjøres, skriver vi ut en melding til skjermen som sier det ( ekko "Filen eksisterer."
). Hvis ikke, lager vi filen ( trykk ~ / sample.txt
). Så skriver vi inn følgende på ledeteksten og trykker på Enter.
[-f ~ / sample.txt] && echo "Filen eksisterer." || trykk ~ / sample.txt
I vårt eksempel eksisterte ikke filen, så den ble opprettet.
Her er et nyttig sammendrag av hver av operatørene som brukes til å kombinere kommandoer:
-
A; B
- Kjør A og B, uansett suksess eller fiasko av A -
A && B
- Kjør bare B hvis A lykkes -
A || B
- Kjør bare B hvis A mislyktes
Alle disse metodene for å kombinere kommandoer kan også brukes i shell-skript på både Linux og Windows 10.
Du kan også automatisk korrigere stavemåte og skrivefeil når du bruker "cd" på kommandolinjen i Linux for å unngå drastiske konsekvenser når du kombinerer kommandoer.