Lær Bash -programmering

Lær Bash -programmering
Hei der. Er du ny i Linuxs verden og prøver å komme deg rundt i skallet? Du vil bli mer effektiv hacking rundt i terminalen? Du vil begynne å skrive og automatisere gjentatte jobber. Du vil lære bash -programmering og bli en guru?

Ok flott! La oss gjøre det.

Begynn med å lære noen av de grunnleggende kommandoene du kan kjøre fra skallet. Noen kommandoer du vil lære inkluderer: Dato, ls For å se på filer og kataloger, RM for å fjerne filer, MKDIR for å lage en ny katalog, hvor du finner et program eller verktøyets bane som du leter etter, chmod for å angi Tillatelser, chown til å sette eierskap, utføre kommandoer på flere mål med jokertegn, og deretter finne filer du leter etter med Find Command.

Å manipulere strenger og tall vil være en vanlig oppgave. Sammenlign strenger med hverandre, tvangsstrenger til små bokstaver og store bokstaver, lær riktig rømming av strenger, strengkoding når det er nødvendig, konverter heksadesimal til desimalformat, globingstrenger for å finne forventede mønstre, aritmetiske operasjoner, sløyfe gjennom en liste over strenger i et skript , og returner en streng som et resultat av en funksjon.

Hvis du nå er klar til å bli skitten med data, kan vi lære noen mer avanserte kommandoer som Cut, Grep, AWK, Uniq og TR for å manipulere datastrømmer. Disse artiklene viser flere eksempler på hvordan disse kommandoene og skifter og siler gjennom det du leter etter i filer.

Du kommer til å gjøre skriptene dine profesjonelle og fancy, du må analysere kommandolinjens argumenter for skriptet. GetOpts kan hjelpe med analysering, du kan opprette profesjonelle menyalternativer med SELECT -kommandoen, og du kan vente på brukerinngang, og lese den fra brukeren med Les -kommandoen. Du kan også gjøre det mer profesjonelt å se med farger i terminalen.

Nå i skriptene dine vil du gjøre noen faktiske koding og programmering for å lage kompleks logikk i skriptet, slik at du trenger noen programmeringskonsepter som lagring av kommandoer i variabler, betingede utsagn som hvis og ellers og sakskommandoen. Løkker i bash lar deg iterere gjennom store handlinger med handlinger. Du kan gjøre for løkker og mens løkker i bash. Arrays brukes ofte i programmeringsspråk for å lagre sekvenser av elementdata. Arrays kan også brukes i bash. Du kan til og med lage bash til et sterkere skrevet programmeringsmiljø ved hjelp av deklar -kommandoen.

Enhver profesjonell bash -person skal også være kjent med miljøvariabler, bash historie og bash alias for å sette opp og bruke skallet mer effektivt. Sørg for å ha den kunnskapen.

Lesing fra filer er kritisk i bashjobber. Noen av oppgavene du kanskje vil lære inkluderer å lese en fillinje for linje eller bruke hode- og halekommandoer for å lese bare begynnelsen eller slutten av en fil. Hvis du har JSON -data i en fil og vil analysere den, kan du bruke JQ -kommandoen for det.

Samhandling med nettsteder og nettressurser Du kan bruke Curl -kommandoen, eller e -postkommandoen for å sende en e -post fra skallet.

Timing og dynamisk interaksjon mellom skript med hendelser i den virkelige verden kan være vanskelig. Det er mange triks, teknikker og kommandoer i bash for å hjelpe deg med å automatisere hendelseshåndtering. For eksempel ja -kommandoen, slik at du ikke trenger å skrive "ja", men la den programmatisk svare på kommandoer som ber om bekreftelse. For å pause eller sove i en skript, mestre søvnkommandoen, eller subtilitet. Hold skalløkter åpne selv om du lukker vinduet med skjermkommandoen eller nohup -kommandoen.

Du vil se en rekke typiske skript i handling, sjekk ut 30 eksempler på bash -skript.

Eller hvis du vil få lyst på disse fancy teknikkene for å imponere sjefen din eller kollegene: iterere over sekvenser generert på skallet, lære om Heredoc, eller bruke inotify og rsync for å lage et live backup -system ved å bruke bare en stundsløyfe i en bash manus.

Endelig ikke glem å legge til kommentarer til bashskriptene dine! Det hjelper andre å lese skriptene dine, og det hjelper deg når du kommer tilbake til dem etter litt tid helt sikkert!