Skip to main content

Slik kjører du to eller flere terminalkommandoer på en gang i Linux

Slik kjører du to eller flere terminalkommandoer på en gang i Linux

Geoffrey Carr

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

Operatøren somicolon (;) lar deg utføre flere kommandoer i rekkefølge, uavhengig av om hver forrige kommando lykkes. Åpne for eksempel et Terminal-vindu (Ctrl + Alt + T i Ubuntu og Linux Mint). Skriv deretter inn følgende tre kommandoer på en linje, skilt av semikolon, og trykk 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 ( whoami ) alt på en gang.

ls ; pwd ; whoami

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 det 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 ikkelykkes. For å gjøre dette bruker vi den logiske OR-operatøren, eller to vertikale stenger ( || ). For eksempel vil vi 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 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ør det, skriver vi ut en melding til skjermen som sier det ( echo “File exists.” ). Hvis ikke, lager vi filen ( touch ~/sample.txt ). Så, skriver vi inn følgende på ledeteksten og trykker på Enter.

[ -f ~/sample.txt ] && echo “File exists.” || touch ~/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 kun 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.

Link
Plus
Send
Send
Pin