Een van de beste dingen van de Linux-opdrachtregel is uw vermogen om scripts samen te stellen die uw leven gemakkelijker maken. Op het meest basale niveau is een shellscript een lijst met opdrachten die na elkaar worden uitgevoerd, alsof u ze zelf hebt getypt op de opdrachtregel. Hoewel het programmeren van een shell (bijvoorbeeld Bash-shell) net zo ingewikkeld kan zijn als programmeren in andere talen, is het eenvoudiger om enkele basistrucs op te pikken die u kunt gebruiken om uzelf efficiënter te maken.

Opmerking : hoewel u deze tips onmiddellijk zou moeten kunnen gebruiken, heeft MTE een uitstekende beginnershandleiding voor het schrijven van Linux-shellscripts waarnaar u kunt verwijzen voor meer informatie.

De basisprincipes van de basis

Je hebt al alles wat je nodig hebt om te profiteren van deze trucs op elke moderne Linux-distributie: een teksteditor en een shell (we gebruiken de Bash-shell hier). Open je teksteditor en je bent klaar om weg te schrijven. U slaat de scripts op als gewone tekstbestanden ... sommige mensen geven de voorkeur aan het gebruik van een ".sh" -bestandsextensie om scripts te helpen identificeren.

U zult ook een beetje meer te weten moeten komen over de syntaxis of het formaat van shellscripts. Een ding dat je moet onthouden is om de volgende regel bovenaan elk script te plaatsen:

 #! / Bin / bash 

Wanneer u een script uitvoert bij de opdrachtprompt, vertelt deze regel uw huidige shell welke andere shell moet worden gebruikt om deze uit te voeren, als ze anders zijn. Het andere dat je moet onthouden is om je script uitvoerbaar te maken, wat we in een oogwenk zullen doen. Maar laten we voor nu een nieuw, nuttig script maken.

Een script om iets anders te doen

De Beginners Guide hierboven geeft een geweldige uitleg van variabelen en laat zien hoe je argumenten (alle woorden / zinsdelen die je typt achter de naam van het commando) gebruikt en gebruikt. Maar u kunt ook 'omgevingsvariabelen' gebruiken om dingen te veranderen over hoe uw programma's worden uitgevoerd. Ik ben bijvoorbeeld een Japanse spreker en hoewel Linux-programma's de invoer van Japans kunnen verwerken, word ik soms nostalgisch voor de Japanse gebruikersinterface. Er zijn omgevingsvariabelen voor "Locale", die bepalen in welke taalprogramma's worden weergegeven. Als ik bijvoorbeeld terug wil gaan naar mijn dagen voor surfen op het internet in Japan, zou ik het volgende gebruiken:

 LANG = "ja_JP" firefox 

Maar ik vergeet vaak of die omgevingsvariabele "LANG", "LC_TYPE" of een van de andere 10 lokaal gerelateerde variabelen zou moeten zijn. Ik wil liever gewoon "Japanize it". Dus ik creëerde een Bash-script genaamd "jpit" als volgt:

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

Dit toont de vertaalde Japanse menu's en interface (u kunt de Engelse UI hieronder links zien en het resultaat wanneer gestart door "jpit" aan de rechterkant).

Vervolgens heb ik het script eenvoudig uitvoerbaar gemaakt met het volgende:

 chmod + x / home / aaron / bin / jpit 

Ik plaatste dit in mijn ~ / bin map omdat dit in mijn PATH staat, en ik kan dit vanaf elk terminal of KRunner uitvoeren en elke applicatienaam invoegen die de "LANG" -variabele accepteert. U kunt een script als dit gebruiken om een ​​programma met een andere reeks opties uit te voeren, ongeacht of het om omgevingsvariabelen, opdrachtregelvlaggen of invoer- / uitvoerbestanden gaat.

Een script voor het doen van dit, dan dat

Soms zie ik mezelf een aantal van dezelfde opdrachten uitvoeren, in dezelfde volgorde, achter elkaar. Het volgende komt onmiddellijk in gedachten:

 sudo apt-get update sudo apt-get upgrade 

Gelukkig is er een manier om deze uit te geven als één opdracht en vervolgens "weg te lopen" totdat ze allemaal zijn voltooid:

 sudo apt-get update && sudo apt-get-upgrade 

De && in deze opdracht betekent dat de tweede opdracht alleen na de eerste moet worden uitgevoerd, en alleen als de eerste opdracht zonder fouten wordt voltooid. De apt-get opdrachten hierboven zullen u waarschijnlijk vragen of u sommige afhankelijkheden wilt installeren, dus hoe is dit nuttig?

Laten we teruggaan naar onze oude vriend, Pandoc . In eerdere artikelen hebben we gezien dat Pandoc opties heeft om Markdown in andere, andere indelingen te converteren. Maar wat als je het in één keer wilt converteren naar HTML, ODT, DOCX en een e-boek? Eenvoudig: maak een shellscript met het volgende:

 #! / 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.epub $ 1 

Dit neemt elk Markdown-document dat u het als een argument geeft, en genereert elk van de gewenste formaten door de Pandoc-opdracht één formaat per keer uit te voeren. Eén opdracht, vier eindproducten. Dat is efficiëntie!

Je kunt zelfs het bovenstaande combineren tot opties om allerlei handige scripts te maken. Want hoewel we allemaal dol zijn op de opdrachtregel, is er geen reden om er meer tijd aan te besteden dan om ...