Har du nogensinde ønsket at lære at scripte i Linux? Det er nemmere end du tror. Nogle gange er scripts (ofte omtalt som shell- eller bash-scripts) faktiske programmer med kompleks kode indeni. Andre gange er de bare en lang liste af opgaver, som brugerne har sammensat for at gøre det hurtigere og nemmere at få tingene gjort på Linux. Her er den bedste begynderguide til shell-scripting i Linux.
Hvorfor laver du et manuskript?
Scripting i Linux er en meget nyttig færdighed. Du kan automatisere nogle gentagne opgaver ved hjælp af bash-scripts. Hvis det gøres godt, kan det gøre dig meget produktiv og give dig mulighed for at udrette mere på kortere tid.
For eksempel har du måske lige oprettet et Arch Linux-system fra bunden. Operativsystemet, sammen med alle nødvendige pakker, er installeret og kan starte på maskinen, når operativsystemet starter. Opsætning af Arch Linux tager tid, så processen er ikke færdig.
På dette tidspunkt kan brugeren skrive et Bash-script og få alt gjort samtidigt. Intet af dette er programmering – eller avanceret for den sags skyld. Men givet brugerens tilstrækkelige forståelse af, hvordan Arch Linux fungerer, vil de være i stand til at automatisere næsten hele processen efter installationen (skrivebordsmiljø, drivere, brugeropsætning osv.).
Den eneste begrænsning for dit bash-program er din viden om Linux og Bash! Det er nemmere at oprette et, end du tror.
Start
Objekter skal defineres, og ressourcer skal indlæses, når man skriver kode. Nogle objekter skal også defineres, når man programmerer med shell'en. I Bash-programmering kaldes dette en "shebang". De "shebangs", der bruges i scripts, fortæller scriptet, hvilken fortolker det skal udføre under. Dette kan være Bash eller ethvert andet script, der er tilgængeligt på dit system. Bemærk, at forskellige sprog har deres egne sproggrænseflader.
For eksempel: Når du skriver en tekst medPython-sprog Så ville ordet shebang være
#!/usr/bin/python
Bash har mange forskellige ting, der kan bruges, men de fleste brugere har sandsynligvis kun set
#!/bin/bash
Som en generel regel bør du bruge #!/bin/bash, når du skriver et simpelt script, og du bør ikke planlægge at fjerne det fra Linux. Alle moderne Linux-distributioner er baseret på den samme version af bash, og bash-shell'en er normalt placeret samme sted.
En anden ting, der viser sig at være nyttig, er
#!/usr/bin/env bash
Det er designet til bærbarhed og bør bruges, hvis scriptet er designet til at køre på andre Unix-lignende operativsystemer (BSD'er, macOS osv.).
Bedste praksis
At skrive scripts i Bash kan være en kompleks proces – hvis forfatteren gør det. Oftest er scripts blot en samling af forskellige handlinger: overføre en fil, downloade noget, installere software og så videre.
- Husk på, at Bash er et sprog designet til at håndtere filer og systemoperationer. Hvis Bash opfylder dine behov, er det fint. Forstå dog, at Bash ikke er det rigtige valg til avanceret programmering, og du ville være bedre stillet ved at skifte til noget som Python.
- Sørg for, at dine scripts er "SH"-kompatible og i ".sh"-format, hvis du planlægger at bruge scripts på mere end blot Linux. Mens andre UNIX-lignende operativsystemer kan have "bash-lignende" shells, har nogle slet ikke bash, og det er en god idé at være forberedt på det.
- Lær om Bash-shell'en og hvordan den fungerer. Det vil hjælpe dig med at skrive bedre scripts.
- Brug altid nørd, og vigtigst af alt, brug den rigtige. Det kan være forskellen på et godt manuskript og et dårligt, der ikke fungerer ordentligt.
- Kommentér altid hver proces. Om seks måneder vender du måske tilbage til din udskrift og undrer dig over, hvad alting betyder, så det er afgørende, at udskriftet er veldokumenteret og let at forstå (for dig og alle andre, der måtte se det).
Gør din kode læsbar. Selv hvis din kode ikke er kompleks, skal den stadig give mening og gøre det nemmere, end du tror. - Test dit script for fejl, før du giver det til andre. Lad ikke andre teste for fejl for dig. Ideelt set bør dine scripts virke, før du sender dem ud til andre.
Opret et script
For at komme i gang med scripting behøver du kun en teksteditor. Enhver simpel teksteditor er tilstrækkelig. Den behøver ikke at være kompleks eller omfattende. I dette eksempel opretter vi en simpel velkomsttekst ved hjælp af Gedit.
Opret og åbn scriptet i Gedit
Opret en tekst med navnet hilsener.sh Åbn den i Gedit-editoren. Denne første del af scriptet er den egentlige del, som vi nævnte tidligere. Dette giver scriptet mulighed for at fortælle fortolkeren, hvad den skal bruge for at forstå koden.
#! / Bin / bash
Lad os nu skrive en kommentar. Dette vil give alle, der bruger scriptet, mulighed for at forstå, hvad koden er beregnet til at gøre. Kommentarer kan tilføjes til et script ved at tilføje #-tegnet. Intet vil blive registreret af scriptet efter dette.
# Mit første Linux-script
Udskriv et simpelt velkomstord
For at udskrive output bruger vi echo-kommandoen i bash. Hvis du vil udskrive "Hello world", skal kommandoen se sådan ud:
ekko "Hej verden"
Gør scriptet eksekverbart
For at gøre scriptet eksekverbart bruger vi chmod-kommandoen.
chmod +x hilsener.sh
+x betyder at tilføje udførelsestilladelse til scriptfilen. For at køre scriptet skal du kalde scriptnavnet med dets relative sti.
./hilsener.sh
Modtager brugerinput
At modtage brugerinput er en kernefunktion i et bash-script, og du bør forstå konceptet med variabler i bash. Variabler er som lager, hvor du kan gemme værdier. I dette tilfælde gemmer vi brugerinput i en bash-variabel. For at give input stiller vi brugeren et spørgsmål.
echo -e "Hvad er dit navn:"
Når brugeren indtaster sit navn, kan vi læse inputtet ved hjælp af en bash-variabel kaldet inputname.
echo -e "Hvad er dit navn:" læs inputnavn
Du kan bruge et hvilket som helst variabelnavn, men sørg for at tilføje read-kommandoen lige efter echo-kommandoen.
Udskriv velkomstbesked
Det gemte brugernavn er inputnavnvariablen. For at hilse på brugeren bruger vi echo-kommandoen igen.
echo "Godmorgen $inputname"
Vi bruger $-tegnet til at repræsentere en variabel i en streng. Gem scriptet og kør det med kommandoen ./greetings.sh.
Nu kan du lave dine egne hilsner og dele dem med dine venner.
Vedhæftede filer
Der er ingen forskel på filtypenavne for scripts. Navngivning af en fil med filtypenavnet ".sh" påvirker ikke programmets kørsel væsentligt. Et Bash-script uden filtypenavn – tomme tekstfiler og alt derimellem – vil fortsætte med at køre, så længe de korrekte kommandoer og argumenter er til stede.
Selvom Bash-shellen ignorerer filtypenavne, betyder det ikke, at en scriptforfatter skal gøre det. Nogle skrivebordsmiljøer, der giver dig mulighed for at indstille shell-scripts til at køre ved opstart, er afhængige af, at scriptet har den korrekte ".sh"-filtypenavn. Dette hjælper også med organiseringsformål.
Når det kommer til dette, gemmes de fleste shell-scripts som ".sh"-filer for at gøre dem nemme at bruge. "sh" har intet at gøre med Bash i sig selv, og scriptet kan køres med enhver kompatibel shell.
Alternativt kan scripts gemmes som .bash, .ksh (Unix korn shell) osv. Disse filtypenavne er af dårligere kvalitet og begrænser faktisk scriptets anvendelighed. Dette skyldes, at de kun er designet til shells, der bruger disse filtypenavne.
Ofte stillede spørgsmål
Q1. Er Bash-scripting let at lære?
svar. Hvis du er bekendt med programmeringssprog, vil Bash-programmering virke ret let. Det deler nogle af de samme programmeringskoncepter, såsom variabler, løkker osv. Men hvis du ikke ved noget om programmering, anbefaler jeg at starte med Python. Python er meget nemt at lære, og du kan endda oprette scripts ved hjælp af det.
Q2. Er Bash værd at lære?
svar. Hvis du bruger Linux dagligt eller bruger Linux i dit arbejdsmiljø, bør du lære Bash-scripting. Du kan også lære Bash til at automatisere dine daglige opgaver. Derudover ser jeg ingen brug for Bash i softwareudviklingsbranchen.
Q3. Hvordan kan jeg lære Bash-scripting i Windows?
svar. Der er ingen indbygget måde at lære bash i Windows, men du kan bruge Windows Subsystem for Linux (WSL) til at køre det. Linux-distribution på din Windows-maskine og brug den til at køre bash-kommandoer.