Shell, Bash og Scripts: Alt om Shell Scripting.

I denne nye muligheten (oppføring nr. 8)"Lær Shell Scripting" vi vil fokusere mer på teori enn praksis. det vil si at vi ikke vil installere eller studere en kode eller installere en spesifikk programvare (pakke), men vi vil fordype oss i hva som er verden av Shell-skripting ordentlig, gjennom svarene på små, men direkte spørsmål, som er vist nedenfor, for å avklare så langt mye av det som er blitt lært, som ikke refererer direkte til den interne koden som er programmert:

Shell-skripting

Hva er skallet i et GNU / Linux-operativsystem?

Skall som på spansk betyr CONCHA (skall, deksel, beskyttelse). Brukes denne betegnelsen i operativsystemer refererer til kommandotolken til operativsystemet. Generelt er det et høyt ytende tekstgrensesnitt, manifestert i form av en terminal (konsoll) og hovedsakelig brukt til 3 viktige arbeidsområder:

1. - Administrer operativsystemet,
2.- Kjør applikasjoner og samhandle med dem, og
3.- Server som et grunnleggende programmeringsmiljø.

Mange SO, GNU / Linux de administreres fortsatt mer effektivt ved å redigere konfigurasjonsfilene sine via Terminal. Disse er som hovedregel på destinasjonsstien: «/etc", og innenfor spesifikke kataloger for hver søknad. For eksempel programmet Lilo (som står for Linux Loader) konfigureres ved å redigere tekstfilen som er lokalisert og kalt som "/Etc/lilo/lilo.conf". Når det gjelder programmer (applikasjoner), blir disse lansert (utført / aktivert) ved å skrive navnet på den kjørbare filen, hvis den finnes i banen (standardbane) for alle kjørbare filer, som det vanligvis er "/ Usr / bin" , eller ved å skrive navnet på den kjørbare filen foran: ./, fra katalogen der de ligger.

Alt dette er kjent for alle Shell-brukere. Imidlertid er dens evner som programmeringsmiljø mindre kjent og verdsatt. Skript (programmer) laget i Shell trenger ikke å kompileres. Shell tolker dem linje for linje. Derfor er disse kjent eller kalt Shells Scripts, og kan variere fra enkle kommandoer til kompliserte instruksjonsserier for å starte operativsystemet selv. ha en ganske ren (åpenbar) syntaks (konstruksjon, bestilling), noe som gjør dem til et godt utgangspunkt for å komme i gang i verden av programmering.

Hva er Shell Scripting?

Det er teknikken (dyktighet / fingerferdighet) for å designe og lage skript (oppgaveautomatiseringsfil) ved hjelp av et skall (helst) av et operativsystem, eller en teksteditor (grafikk eller terminal). Dette er en type programmeringsspråk som generelt tolkes. Det vil si at mens de fleste programmer er kompilert (kodet), fordi de konverteres permanent til en bestemt (spesiell) kode før de kan kjøres (kompileringsprosess), forblir et skallskript i sin opprinnelige form (dets kode tekstfont) og tolkes kommando for kommando hver gang de kjøres. Selv om det er mulig at manusene også kan kompileres, selv om det ikke er vanlig.

Hva kjennetegner programmer basert på programmering under Shell Scripting?

1.- De er lettere å skrive (program), men med høyere prosesseringskostnader når de blir utført.

2.- De bruker tolker i stedet for kompilatorer til å kjøre

3.- De har et kommunikasjonsforhold med komponenter skrevet på andre programmeringsspråk.

4.- Filene som inneholder dem lagres som ren tekst.

5.- Det endelige designet (koden) er vanligvis mindre enn det som tilsvarer i et kompilert programmeringsspråk.

Hva er de mest populære typene språk under Shell Scripting?

1.- Oppgave- og skallkontrollspråk:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c) csh, Bash, AppleScript, sh,
d) JScript via Windows Script Host,
e) VBScript via Windows Script Host,
f) REXX, blant mange andre.

2. - GUI-skripting (makrospråk):

a) Autohurtigtast,
b) AutoIt,
c) Forvent,
d) Blant annet Automator.

3.- Skriptspråk for spesifikke applikasjoner:

a) ActionScript i Flash,
b) MATLAB,
c) mIRC-skript,
d) QuakeC, blant andre.

4.- Nettprogrammering (for dynamiske sider):

a) På serversiden:

- PHP,
- ASP (Active Server Pages),
- JavaServer-sider,
- Kald fusjon,
- IPTSCRAE,
- Lasso,
- MIVA-skript,
- SMX,
- XSLT, blant andre.

b) På klientsiden:

- JavaScript,
- JScript,
- VBScript,
- Tcl, blant andre.

5.- Språk for tekstbehandling:

- AWK,
- Perl,
- Tørst,
- XSLT,
- Bash, blant andre.

6.- Generelle dynamiske språk:

- APL,
- Boo,
- Dylan,
- Ferite,
- Groovy,
- IO,
- Lisp,
- Lua,
- KOPPER (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Ordning,
- Småprat,
- SuperCard,
- Tcl,
- Revolusjon, blant andre.

Hva er Bash i GNU / Linux?

Det er et dataprogram hvis funksjon er å tolke ordrer. Den er basert på Unix skall og det støtter POSIX. Den ble skrevet for GNU-prosjektet og er standardskallet for de fleste Linux-distribusjoner.

Hva er et Shell Script i GNU / Linux?

Shell-skriptene de er ekstremt nyttige. Det er en god ide å skrive de behovene vi har, og deretter redigere skript som gjør dette for oss. Nå er det på tide å spørre hva et skript egentlig er. Det er en tekstfil som inneholder en rekke skallkommandoer, som systemet utfører på en ryddig måte, fra topp til bunn. For å redigere dem trenger du bare en tekstredigerer, for eksempel Emacs, Vi, Nano, blant mange eksisterende. De lagres med utvidelsen ".sh" (eller uten den, i noen tilfeller) og kjøres fra Shell ved hjelp av kommandoen: sh script name.sh. Skript oppfører seg på samme måte som skallkommandoer.

Undervisningsmetoden som jeg personlig bruker "Lær Shell Scripting" Det er veldig praktisk og direkte, det vil si å undersøke et fullt funksjonelt skript, spalte det, studere det setning for setning, linje for linje, kommando for kommando, variabel for variabel, til du forstår hvordan hvert element fungerer separat og hvordan det engasjerer seg i koden generell. Det er liksom Omvendt engineering eller programvareutvikling. Alt dette for å tilpasse kunnskapen, forbedre den (optimalisere den) og dele den, til kollektiv fordel og for bedre administrasjon og optimalisering av de gratis operativsystemene.

Hvordan fungerer og fungerer det i et GNU / Linux-skall?

Det første trinnet i å jobbe med et Shell er å kjøre et skall. Det som virker som en truisme har sin grunn til å være. I noen veldig sluttbrukerorienterte GNU / Linux-distribusjoner er skallet ganske skjult. Vanligvis kalles det: Konsole, Terminal, X Terminal, eller noe lignende. Et annet alternativ er å bruke en virtuell konsoll. Bruker: Ctrl + Alt + f1, eller f2, eller f3 til f7 eller f8, avhengig av GNU / Linux-distribusjonen du bruker. Den mest brukte Shell i GNU / Linux er Bash, selv om det er andre, for eksempel ksh eller C Shell. I mitt tilfelle, veldig spesielt for publikasjonene mine, bruker jeg Bash Shell.

Gitt et skript laget i Bash Shell som heter hallo_verden.sh kan følgende forklares:

Innhold:

#! / Bin / bash
ekko hei verden

Sammenbrudd:

Første linje i manuset
#! / Bin / bash

Indikerer programmet som skriptet skal kjøre. Hvis programmet ikke blir funnet, vil det oppstå en feil.

Andre linje i manuset
ekko hei verden

Utfør ekkokommandoen med Hello World-argumentene, og få dem til å vises på skjermen.

Henrettelse: Vi kan kjøre skriptet på to måter

Påkalle tolk for å kjøre skriptet:
# bash hallo_verden.sh

Den kan også kjøres som:
# sh hallo_verden.sh

Men siden riktig Shell ikke blir påkalt, kan det fungere halvparten. Ideelt sett er Shell påberopt i første linje den som brukes til å utføre den.

Du kan også kjøre skriptet direkte som følger:
# ./hello_world.sh

Merk: ./ indikerer kjøring fra gjeldende katalog.

Resten som gjenstår å analysere er koden du setter inn i den. Jeg håper at du som alltid liker (noen mer enn andre, i henhold til lærings- og kunnskapsbehov) denne serien Shell-skripting.

Det er mange gode lenker om dette emnet på nettet, men jeg lar deg denne lille guiden du finner her DesdeLinux. Net Og denne andre Ekstern guide.

Fram til neste innlegg!


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   d4ny sa

    Lilo .. Linux Loader .. resten veldig bra info .. takk .. salu2 d4ny.-

  2.   Ing. José Albert sa

    Hilsen til alle som følger online-kurset "Lær Shell Scripting" snart, vil vi fortsette med andre grunnleggende skript for å fortsette å tilegne seg kunnskapen og fortsette å sosialisere den for alle.

    Jeg håper du holder deg oppdatert, for snart vil jeg begynne med mer avanserte koder, men eksponert på en måte som er visuelt forståelig til tross for kompleksiteten.

    Husk at du med Shell Scripting kan gjøre mange komplekse ting som er plattformoverskridende (Different Distros) ved hjelp av veldig små filer. Jeg vil gi deg denne lille skjermsendingen av noe som jeg snart vil lære deg, til de som fortsetter å se på kurset, og som med bare 50Kb lover mye! Og det er bare halvparten av det som kan gjøres med Shell Scripting.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisuell_2016.sh / 43Kb)

    Se Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Alberto cardona sa

      Hei, ditt bidrag er utrolig, tusen takk !!
      Jeg er litt i tvil, kan jeg programmere en kompilator med bash?
      Eller i det minste en leksikalsk analysator?
      har den makten?

  3.   Ing. José Albert sa

    Hilsen til alle som følger kurset "Lær Shell Scripting" på nettet, snart vil vi fortsette med andre grunnleggende skript for å fortsette å tilegne oss kunnskapen og fortsette å sosialisere den for alle. Jeg håper du holder deg oppdatert, for snart vil jeg starte med mer avanserte koder, men eksponert på en måte som er visuelt forståelig til tross for kompleksiteten.

    Husk at du med Shell Scripting kan gjøre mange komplekse ting som er plattformoverskridende (Different Distros) ved hjelp av veldig små filer. Jeg vil gi deg denne lille skjermsendingen av noe som jeg snart vil lære deg, til de som fortsetter å se på kurset, og som med bare 50Kb lover mye! Og det er bare halvparten av det som kan gjøres med Shell Scripting.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisuell_2016.sh / 43Kb)

    Se Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Alberto sa

    Hola Jose,
    Først takk for at du delte din kunnskap. Artiklene dine er veldig interessante.

    To ting, jeg synes det er veldig viktig å bruke de dobbelte anførselstegnene "Hello World" og å ha en ren utskrift av skriptet vårt med exit 0

  5.   Ing. José Albert sa

    Takk for dine bidrag. I neste skript vil du se bruken av avkjørsel 0, pause og andre!

  6.   willarmand sa

    Hilsener.
    Veldig interessant, du får det til å se enkelt ut; Nå har jeg kommet over at jeg ikke kan programmere i Linux med cron eller at, shutdown / suspend / dvalemodus, med den påfølgende automatiske begynnelsen av å bruke rtc wake-kommandoen, jeg vet ikke om et skript med den kommandoen ville hjelpe, eller de ville følge cron og t uten å gjøre noe, eller det kan bare ikke gjøres, eller det gjøres annerledes, eller jeg er veldig ambisiøs, men i Windows er det relativt enkelt å gjøre det. Jeg vil flytte til Linux, men det er viktig for meg å planlegge nedleggelse / suspendering / dvale og få PC-en til å starte av seg selv. Hilsen.

  7.   Ing. José Albert sa
  8.   willarmand sa

    Takk, jeg vil lese dem grundig, noe vil hjelpe meg. Hilsen.

  9.   Edward Cuomo sa

    For en tid siden startet jeg et prosjekt, som jeg synes er enestående. Det er en prototype for en Framewok Bash. Det krever bare Bash på systemet.
    Hvis noen andre er interessert, blir de invitert til å prøve det og samarbeide!

    https://github.com/reduardo7/bashx

    Greetings!

    1.    øgle sa

      Kjære Eduardo, jeg synes det er et flott prosjekt, kanskje du kan dele det med hele samfunnet desdelinux, husk at du kan publisere en artikkel om prosjektet ditt på nettsiden vår, hvis du ikke vet hvordan du gjør det anbefaler jeg å lese https://blog.desdelinux.net/guia-redactores-editores/ hvor er de beste fremgangsmåtene for å lage artikler i desdelinux og prosedyren som skal utføres. Muligens for fellesskapet er det ganske bra først å vite om fordelene med prosjektet ditt og for det andre å lære hvordan man gjør denne typen ting. Vi inviterer deg og vi inviterer andre til å dele sine prosjekter med oss ​​og det store fellesskapet som omgir oss.

  10.   Miguel Urosa Ruiz plassholderbilde sa

    Hei, god dag.
    Jeg er ny i verden av Linux-maskinadministrasjon, og jeg ønsket å vite hva du anbefaler for det: ksh, bash, perl, php, python….
    Tusen takk og hilsen.
    Michael.