Du kan använda verktygsprogram och ett skal (som bash, zsh eller fisk) för att skapa applikationer genom att kombinera och kedja tillsammans mindre, specialiserade verktyg för att utföra mer komplexa uppgifter. Detta kallas ofta
skalskript eller bygga en
pipeline . Det är ett kraftfullt sätt att automatisera uppgifter och skapa enkla kommandoradsapplikationer utan behov av ett fullständigt programmeringsspråk som Python eller C ++.
Så här kan du göra det:
1. Använda verktygsprogram:
* Textbehandling: Verktyg som `grep`,` sed`, `awk` och` cut` är ovärderliga för att manipulera textfiler. Du kan filtrera, extrahera, transformera och omformatera data inom filer effektivt. Till exempel kan du använda "grep" för att hitta specifika rader, "sed" för att ersätta text och "awk" för att utföra beräkningar på fält inom en rad.
* filmanipulation: `cp`,` mv`, `rm`,` mkdir`, `rmdir`,` find`, `lokaliserad 'gör att du kan hantera filer och kataloger. Du kan automatisera uppgifter som att skapa kataloger, kopiera filer och ta bort gamla loggfiler. "Find" är särskilt kraftfullt för att söka filer baserat på olika kriterier.
* datakomprimering/arkivering: `GZIP`,` BZIP2`, `TAR`,` ZIP 'låter dig komprimera filer och hantera arkiv. Detta är användbart för att hantera stora datasätt eller distribuera applikationer.
* Nätverksverktyg: `Wget`,` curl`, `netcat` låter dig interagera med nätverksresurser, ladda ner filer och skicka data över nätverket. Detta öppnar dörren för att skapa applikationer som interagerar med webbservrar eller andra fjärrsystem.
* Systemadministration: `Ps`,` TOP ', `KILL',` DF ', `DU' Ge information om systemet och tillåter kontroll över processer. Du kan skapa applikationer som övervakar systemprestanda eller hanterar processer.
2. Skalet som orkestrator:
Skalet fungerar som limet som binder dessa verktygsprogram tillsammans. Det ger:
* sekventiell exekvering: Du kan lista kommandon efter varandra, med utgången från ett kommando som matas in i ingången till nästa.
* piping (`|`): Detta gör att du kan ansluta standardutgången (STDOUT) för ett kommando till standardingången (STDIN) för en annan, vilket skapar en dataflödesrörledning.
* Input/output -omdirigering (`>`, `<`, `>>`): Du kan omdirigera utgången från ett kommando till en fil eller läsa input från en fil.
* Kontrollstrukturer: De flesta skal stöder kontrollstrukturer som "if", "annars", "för" och "medan" slingor, vilket möjliggör villkorad logik och iteration.
* variabler: Du kan lagra värden i variabler för att göra dina skript mer flexibla och återanvändbara.
* Funktioner: Du kan definiera återanvändbara kodblock för att modulera dina skript.
Exempel:Skapa en enkel applikation
Låt oss säga att du vill skapa en applikation som hittar alla ".log" -filer i en katalog, extraherar linjer som innehåller "fel" och räknar sedan antalet fellinjer.
`` `bash
#!/bin/bash
hitta/sökväg/till/loggar -name "*.log" -print0 | xargs -0 grep -i "fel" | wc -l
`` `
Det här skriptet använder:
* `Hitta`:för att hitta alla filer. Log". `-Print0` och` xargs -0` hanteras filnamn med mellanslag korrekt.
* `grep`:för att filtrera linjer som innehåller" fel "(fallkänsliga).
* `wc -l`:för att räkna linjerna.
Begränsningar:
* Skalskript är inte lika kraftfullt eller effektivt som fullfjädrade programmeringsspråk för komplexa applikationer.
* Felhantering kan vara mer utmanande.
* Felsökning kan vara svårare.
När man ska använda skriftskript:
Skalskript är idealisk för:
* Automatisering av enkla till måttligt komplexa uppgifter.
* Skapa små kommandoradsverktyg.
* Prototypningsapplikationer snabbt.
* Uppgifter som involverar textbehandling och filmanipulation.
Genom att smart kombinera dessa verktygsprogram och skalfunktioner kan du skapa förvånansvärt sofistikerade kommandoradsapplikationer. Kom ihåg att göra dina skript läsbara och välkommenterade för underhåll.