En af de bedste ting om Linux-kommandolinjen er din evne til at sammensætte scripts, der gør dit liv lettere. På sit mest grundlæggende niveau er et shell script en liste over kommandoer udført ene efter den anden, som om du skrev dem selv på kommandolinjen. Mens shell (for eksempel Bash shell) programmering kan være lige så kompleks som programmering på andre sprog, er det lettere at hente nogle få grundlæggende tricks, som du kan bruge til at gøre dig mere effektiv.

Bemærk : Mens du skal kunne bruge disse tips med det samme, har MTE en fremragende Begyndervejledning til Skrivning af Linux Shell Scripts, som du kan henvise til for flere detaljer.

Grundlæggende om det grundlæggende

Du har allerede alt hvad du behøver for at udnytte disse tricks på en hvilken som helst moderne Linux distribution: en tekstredigerer og en skal (vi bruger Bash shell her). Åbn din teksteditor, og du er klar til at skrive væk. Du gemmer scriptene som almindelige tekstfiler ... nogle mennesker foretrækker at bruge en ".sh" filtypenavn for at hjælpe med at identificere scripts.

Du skal også lære lidt om syntaksen eller formatet på shell scripts. En ting du skal huske, er at sætte følgende linje øverst på hvert script:

 #! / Bin / bash 

Når du kører et script ved kommandoprompten, fortæller denne linje din nuværende shell, hvilken anden skal skal bruges til at køre den, hvis de er forskellige. Det andet, du skal huske, er at gøre dit script eksekverbart, hvilket vi vil gøre i et øjeblik. Men nu skal vi lave et nyt, nyttigt script.

Et script til at gøre ting lidt anderledes

Beginners Guide ovenfor gør et godt stykke arbejde med at forklare variabler og viser dig, hvordan man tager argumenter (hvilke ord / sætninger du skriver efter kommandoen) og bruger dem. Men du kan også bruge hvad der kaldes "miljøvariabler" for at ændre tingene om, hvordan dine programmer kører. For eksempel er jeg en japansk højttaler, og mens Linux-programmer kan håndtere indgangen til japansk, får jeg nogle gange nostalgisk til det japanske brugerinterface. Der er miljøvariabler for "Lokale", som definerer i hvilket sprogprogram der vises. Hvis jeg f.eks. Vil gå tilbage til mine websøgningsdage i Japan, vil jeg bruge følgende:

 LANG = "ja_JP" firefox 

Men jeg glemmer ofte, om denne miljøvariabel skal være "LANG", "LC_TYPE" eller en af ​​de andre 10 lokalrelaterede variabler. Jeg vil hellere bare "Japanisere det." Så jeg lavede et Bash-script kaldet "jpit" som følger:

 #! / bin / bash LANG = "ja_JP" $ 1 

Dette vil vise de oversatte japanske menuer og grænsefladen (du kan se det engelske brugergrænseflad nedenfor til venstre og resultatet, når det blev lanceret af "jpit" til højre).

Så gjorde jeg simpelthen scriptet eksekverbar med følgende:

 chmod + x / home / aaron / bin / jpit 

Jeg lagde dette i min ~ / bin- mappe, fordi det er i min PATH, og jeg kan nu udføre dette fra en hvilken som helst terminal eller KRunner, og indsæt et hvilket som helst applikationsnavn, der accepterer variablen "LANG". Du kan bruge et script som dette til at køre et program med et andet sæt valgmuligheder, uanset om de er miljøvariabler, kommandolinjeflagge eller input / output-filer.

Et skript for at gøre dette, så det

Der er nogle gange, jeg finder mig selv at udføre et antal af de samme kommandoer, i samme rækkefølge, i træk. Følgende kommer straks i tankerne:

 sudo apt-get opdatering sudo apt-get opgradering 

Heldigvis er der en måde at udstede disse som en kommando på, så "gå væk", indtil de alle er færdige:

 sudo apt-get opdatering && sudo apt-get opgradering 

&& i denne kommando betyder, at den anden kommando kun skal køres efter den første, og kun hvis den første udfyldes uden fejl. apt-get ovenfor vil nok spørge dig om du vil installere nogle afhængigheder, men hvordan er det så nyttigt?

Lad os gå tilbage til vores gamle ven, Pandoc . Vi har set i tidligere artikler, at Pandoc har muligheder for at konvertere Markdown til andre, forskellige formater. Men hvad hvis du vil gøre det om til HTML, ODT, DOCX og en e-bog alt på én gang? Enkelt: Opret et shell script med følgende:

 #! / bin / bash pandoc -r markdown -w html -o $ 1.html $ 1 && pandoc -r markdown -w docx -o $ 1.docx $ 1 && pandoc -r markdown -w odt -o $ 1.odt $ 1 && pandoc - r markdown -w epub -o $ 1.pub $ 1 

Dette vil tage uanset Markdown-dokument, du giver det som et argument, og generere hvert af de ønskede formater ved at køre Pandoc-kommandoen et format ad gangen. En kommando, fire slutprodukter. Nu er det effektivitet!

Du kan endda kombinere ovenstående til muligheder for at oprette alle mulige nyttige scripts. Fordi selvom vi alle elsker kommandolinjen, er der ingen grund til at bruge mere tid på det end du skal ...