En av de bästa sakerna med Linux-kommandoraden är din förmåga att sätta samman skript som gör ditt liv enklare. På sin mest grundläggande nivå är ett skalskript en lista över kommandon som exekveras en efter en, som om du skrev dem själv på kommandoraden. Medan Shell (till exempel, Bash Shell) programmering kan vara lika komplicerat som programmering på andra språk är det lättare att hämta några grundläggande tricks som du kan använda för att göra dig effektivare.

Obs! Medan du ska kunna använda dessa tips omedelbart har MTE en utmärkt nybörjarhandledning för att skriva Linux Shell-skript som du kan referera till för mer detaljer.

Grunderna i grunderna

Du har redan allt du behöver för att utnyttja dessa tricks på någon modern Linux-distribution: en textredigerare och ett skal (vi använder Bash-skalet här). Öppna din textredigerare, och du är redo att skriva bort. Du sparar skript som vanliga textfiler ... vissa personer föredrar att använda en ".sh" filtillägg för att hjälpa till att identifiera skript.

Du behöver också lära dig lite om syntaxen eller formatet på skalskript. En sak du behöver komma ihåg är att lägga följande rad högst upp på varje skript:

 #! / Bin / bash 

När du kör ett skript vid kommandotolken berättar den här raden om ditt nuvarande skal vilket annat skal som ska användas för att köra det, om de är annorlunda. Det andra du behöver komma ihåg är att göra ditt manus exekverbart, vilket vi gör på ett ögonblick. Men för nu, låt oss skapa ett nytt, användbart skript.

Ett manus för att göra saker lite annorlunda

Beginners Guide ovan gör ett bra jobb med att förklara variabler och visar dig hur man tar argument (alla ord / fraser du skriver efter kommandans namn) och använder dem. Men du kan också använda det som kallas "miljövariabler" för att ändra saker om hur dina program körs. Jag är till exempel en japansk talare, och medan Linux-program kan hantera inmatningen av japanska, får jag ibland nostalgisk för det japanska användargränssnittet. Det finns en miljövariabler för "Lokal", som definierar i vilket språkprogram som visas. Om jag till exempel vill återvända till mina webbläsningsdagar i Japan använder jag följande:

 LANG = "ja_JP" firefox 

Men jag glömmer ofta om den omgivande variabeln ska vara "LANG, " "LC_TYPE" eller en av de andra 10 lokalrelaterade variablerna. Jag skulle hellre bara "Japanisera det". Så skapade jag ett Bash-skript som heter "jpit" enligt följande:

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

Detta visar de översatta japanska menyerna och gränssnittet (du kan se det engelska användargränssnittet nedanför till vänster och resultatet när det startas av "jpit" till höger).

Sedan gjorde jag helt enkelt manuset körbart med följande:

 chmod + x / home / aaron / bin / jpit 

Jag placerade detta i min ~ / bin- katalog eftersom det här är i min PATH, och jag kan nu exekvera det från en terminal eller KRunner, och sätt in ett programnamn som accepterar variabeln "LANG". Du kan använda ett skript så här för att köra ett program med en annan uppsättning alternativ, oavsett om det är miljövariabler, kommandoradsflaggor eller inmatnings- / utdatafiler.

Ett skript för att göra detta, då det

Det finns några gånger jag befinner mig själv att utföra ett antal av samma kommandon, i samma ordning, i rad. Följande kommer omedelbart i åtanke:

 sudo apt-få uppdatering sudo apt-get uppgradering 

Lyckligtvis finns det ett sätt att utfärda dessa som ett kommando, sedan "gå bort" tills de alla slutför:

 sudo apt-get uppdatering && sudo apt-get uppgradering 

&& i det här kommandot innebär att det andra kommandot endast ska köras efter det första, och endast om det första fylls utan fel. Kommandona apt-get ovan kommer troligen att fråga dig om du vill installera några beroenden, men hur är det så användbart?

Låt oss gå tillbaka till vår gamla vän, Pandoc . Vi har sett i tidigare artiklar att Pandoc har alternativ att konvertera Markdown till andra, olika format. Men vad om du vill göra konvertera det till HTML, ODT, DOCX och en e-bok på en gång? Enkelt: Skapa ett skalskript med följande:

 #! / 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 

Detta kommer att ta allt Markdown-dokument du ger det som ett argument och generera var och en av de önskade formaten genom att köra Pandoc-kommandot ett format åt gången. Ett kommando, fyra slutprodukter. Nu är det effektivitet!

Du kan även kombinera ovanstående till alternativ för att skapa alla typer av användbara skript. För även om vi alla älskar kommandoraden är det ingen anledning att spendera mer tid på det än du måste ...