Shell, Bash og Scripts: Alt om Shell Scripting.

I denne nye mulighed (indlæg nr. 8) om "Lær Shell Scripting" vi vil fokusere mere på teori end praksis. Vi vil ikke installere eller studere en kode eller installere en bestemt software (pakke), men snarere vil vi dykke ned i, hvad der er verden af Shell Scripting ordentligt, gennem svarene på små, men direkte spørgsmål, som er vist nedenfor, for at afklare hidtil meget af det, der er blevet undervist, som ikke henviser direkte til den interne kode, der er programmeret:

Shell ScriptingHvad er shell i et GNU / Linux-operativsystem?

Skal, som på spansk betyder CONCHA (skal, låg, beskyttelse). Anvendt dette udtryk i operativsystemer refererer til kommandotolken til operativsystemet. Generelt er det en højtydende tekstgrænseflade, der manifesteres i form af en terminal (konsol), og som i det væsentlige tjener 3 vigtige arbejdsområder:

1. - Administrer operativsystemet,
2.- Kør applikationer og interagere med dem, og
3.- Server som et grundlæggende programmeringsmiljø.

Mange SO, GNU / Linux de administreres stadig mere effektivt ved at redigere deres konfigurationsfiler via Terminal. Disse findes som hovedregel på destinationsstien: «/etc"og inden for specifikke mapper for hver ansøgning. For eksempel programmet Lilo (som står for Linux Loader) konfigureres ved at redigere den lokaliserede tekstfil og kaldes som "/Etc/lilo/lilo.conf". I tilfælde af programmer (applikationer) startes (udføres / aktiveres) disse ved at skrive navnet på den eksekverbare, hvis den findes i stien (standardstien) for alle eksekverbare filer, som det normalt er "/ Usr / bin" , eller ved at skrive navnet på den eksekverbare version, der er forud for: ./, fra det bibliotek, hvor de er placeret.

Alt dette er velkendt for enhver Shell-bruger. Imidlertid er dets evner som programmeringsmiljø ikke så kendt og værdsat. Scripts (programmer) lavet i Shell behøver ikke at blive kompileret. Shell fortolker dem linje for linje. Derfor er disse kendt eller navngivet som Shells Scripts og kan variere fra enkle kommandoer til komplekse serier af instruktioner til start af selve operativsystemet. har en ret ren (åbenbar) syntaks (konstruktion, bestilling), hvilket gør dem til et godt udgangspunkt for at starte i programmeringsverdenen.

Hvad er Shell Scripting?

Det er teknikken (dygtighed / fingerfærdighed) ved at designe og oprette script (opgaveautomatiseringsfil) ved hjælp af en shell (helst) i et operativsystem eller en teksteditor (grafik eller terminal). Dette er en type programmeringssprog, der generelt fortolkes. Mens de fleste programmer er kompileret (kodet), fordi de konverteres permanent til en bestemt (speciel) kode, før de kan udføres (kompileringsproces), forbliver et shell-script i sin oprindelige form (dets kode tekstkilde) og fortolkes kommando for kommando hver gang de udføres. Selvom det er muligt, at scripts også kan kompileres, selvom det ikke er normalt.

Hvad er karakteristika ved programmer baseret på programmering under Shell Scripting?

1.- De er nemmere at skrive (program), men med højere behandlingsomkostninger, når de udføres.

2.- De bruger tolke i stedet for kompilatorer til at køre

3.- De har et kommunikationsforhold til komponenter skrevet på andre programmeringssprog.

4.- De filer, der indeholder dem, gemmes som almindelig tekst.

5.- Det endelige design (kode) er normalt mindre end hvad der svarer til et kompileret programmeringssprog.

Hvad er de mest populære sprogtyper under Shell Scripting?

1.- Opgave- og skalkontrolsprog:

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, blandt mange andre.

2. - GUI-scripting (makrosprog):

a) AutoHotkey,
b) AutoIt,
c) Forvent,
d) Blandt andet Automator.

3.- Skriptsprog for specifikke applikationer:

a) ActionScript i Flash,
b) MATLAB,
c) mIRC-script,
d) QuakeC, blandt andre.

4.- Webprogrammering (til dynamiske sider):

a) På serversiden:

- PHP,
- ASP (Active Server Pages),
- JavaServer-sider,
- ColdFusion,
- IPTSCRAE,
- Lasso,
- MIVA-script,
- SMX,
- XSLT, blandt andre.

b) På klientsiden:

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

5.- Sprog til tekstbehandling:

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

6.- Generelle dynamiske sprog:

- APL,
- Boo,
- Dylan,
- Ferite,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPER (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Ordning,
- Småsnak,
- SuperCard,
- Tcl,
- Revolution blandt andre.

Hvad er Bash i GNU / Linux?

Det er et computerprogram, hvis funktion er at fortolke ordrer. Det er baseret på Unix skal og det understøtter POSIX. Det blev skrevet til GNU-projektet og er standardskallen til de fleste Linux-distributioner.

Hvad er et Shell Script i GNU / Linux?

Shell-manuskripterne de er ekstremt nyttige. Det er en god ide at skrive de behov, vi har, og derefter redigere scripts, der gør dette for os. Nu er det tid til at spørge dig selv, hvad et script er. Det er en tekstfil, der indeholder en række shell-kommandoer, som systemet udfører på en ordnet måde fra top til bund. For at redigere dem behøver du kun en teksteditor, såsom Emacs, Vi, Nano, blandt mange eksisterende. De gemmes med en “.sh” -udvidelse (eller uden i nogle tilfælde) og køres fra Shell ved hjælp af kommandoen: sh script name.sh. Scripts opfører sig på samme måde som shell-kommandoer.

Den undervisningsmetode, som jeg personligt bruger til "Lær Shell Scripting" Det er meget praktisk og direkte, det vil sige at undersøge et fuldt funktionelt script, nedbryde det, studere det sætning for sætning, linje for linje, kommando for kommando, variabel for variabel, indtil du forstår, hvordan hvert element fungerer separat, og hvordan det engagerer sig i koden generelt. Det er sådan Omvendt teknik eller genudvikling af software. Alt dette for at tilpasse viden, forbedre den (optimere den) og dele den til kollektiv fordel og en bedre administration og optimering af de gratis operativsystemer.

Hvordan kører og fungerer det i en GNU / Linux Shell?

Det første skridt i at arbejde med en Shell er at køre en shell. Hvad der virker som en truisme har sin grund til at være. I nogle meget slutbrugerorienterede GNU / Linux-distributioner er skallen ganske skjult. Normalt kaldes det: Konsole, Terminal, Terminal X eller noget lignende. En anden mulighed er at bruge en virtuel konsol. Brug: Ctrl + Alt + f1 eller f2 eller f3 til f7 eller f8 afhængigt af den GNU / Linux-distribution, du bruger. Den mest anvendte Shell i GNU / Linux er Bash, selvom der er andre, såsom ksh eller C Shell. I mit tilfælde, meget specielt for mine publikationer, bruger jeg Bash Shell.

Givet et script lavet i Bash Shell kaldet hej_verden.sh følgende kan forklares:

Indhold:

#! / Bin / bash
ekko hej verden

Sammenbrud:

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

Angiver det program, som scriptet skal køre. Hvis programmet ikke kan findes, vil der opstå en fejl.

Anden linje i scriptet
ekko hej verden

Udfør ekkokommandoen med Hello World-argumenterne, hvilket får dem til at blive vist på skærmen.

udførelse: Vi kan køre scriptet på to måder

Påkalder tolken til at køre scriptet:
# bash hello_world.sh

Det kan også køres som:
# sh hello_world.sh

Men da din korrekte Shell ikke påberåbes, fungerer den muligvis halvt. Ideelt set er den shell, der påberåbes i første linje, den, der bruges til at udføre den.

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

Bemærk: ./ angiver kørsel fra det aktuelle bibliotek.

Resten, der stadig skal analyseres, er den kode, du indsætter i den. Jeg håber, at du som altid kan lide (nogle mere end andre, alt efter lærings- og videnbehov) denne serie af Shell Scripting.

Der er mange gode links om dette emne på nettet, men jeg efterlader dig denne lille guide, der ligger lige her FraLinux.net Og denne anden Ekstern guide.

Indtil næste post!


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

13 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   d4ny sagde han

    Lilo .. Linux Loader .. resten meget god info .. tak .. salu2 d4ny.-

  2.   Ing. José Albert sagde han

    Hilsen til alle dem, der følger Online-kurset "Lær Shell Scripting" snart vil vi fortsætte med andre grundlæggende scripts for at fortsætte med at tilegne sig viden og fortsætte med at socialisere den til alle.

    Jeg håber, at du holder øje med, for snart begynder jeg med mere avancerede koder, men udsat på en måde, der er visuelt forståelig på trods af dens kompleksitet.

    Husk, at med Shell Scripting kan du gøre mange komplekse ting, der er på tværs af platforme (Different Distros) ved hjælp af meget små filer. Jeg vil efterlade dig denne lille screencast af noget, som jeg snart vil lære dig, til dem, der fortsætter med at se kurset, og det med kun 50 KB lover meget! Og det er kun halvdelen af, hvad der kan gøres med Shell Scripting.

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

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

    1.    Alberto cardona sagde han

      Hej, dit bidrag er utroligt, meget tak !!
      Jeg er lidt i tvivl, kan jeg programmere en compiler med bash?
      Eller i det mindste en leksikalsk analysator?
      har den magt?

  3.   Ing. José Albert sagde han

    Hilsen til alle dem, der følger Online-kurset "Lær Shell Scripting" snart vil vi fortsætte med andre grundlæggende scripts for at fortsætte med at tilegne sig viden og fortsætte med at socialisere den til alle. Jeg håber, at du holder øje med, for snart begynder jeg med mere avancerede koder, men udsat på en måde, der er visuelt forståelig på trods af dens kompleksitet.

    Husk, at med Shell Scripting kan du gøre mange komplekse ting, der er på tværs af platforme (Different Distros) ved hjælp af meget små filer. Jeg vil efterlade dig denne lille screencast af noget, som jeg snart vil lære dig, til dem, der fortsætter med at se kurset, og det med kun 50 KB lover meget! Og det er kun halvdelen af, hvad der kan gøres med Shell Scripting.

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

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

  4.   Alberto sagde han

    Hola Jose,
    Først tak for at dele din viden. Dine artikler er meget interessante.

    To ting, jeg synes det er meget vigtigt at bruge de dobbelte citater "Hello World" og have en ren output af vores script med exit 0

  5.   Ing. José Albert sagde han

    Tak for dine bidrag. I det næste script vil du se brugen af ​​exit 0, break og andre!

  6.   Willarmand sagde han

    Greetings.
    Meget interessant, du får det til at se simpelt ud; Nu er jeg stødt på, at jeg ikke kan programmere i Linux med cron eller at, shutdown / suspend / dvale, med den deraf følgende automatiske start med at bruge rtc wake-kommandoen, jeg ved ikke, om et script med den kommando ville hjælpe, eller de ville følge cron og t uden at gøre noget, eller det kan bare ikke gøres, eller det gøres på en anden måde, eller jeg er meget ambitiøs, men i Windows er det relativt simpelt at gøre det. Jeg vil flytte til Linux, men det er vigtigt for mig at planlægge nedlukning / suspendering / dvale og få pc'en til at starte af sig selv. Hilsen.

  7.   Ing. José Albert sagde han
  8.   Willarmand sagde han

    Tak, jeg vil læse dem grundigt, noget vil hjælpe mig. Hilsen.

  9.   Edward Cuomo sagde han

    For nogen tid siden startede jeg et projekt, som jeg synes er enestående. Det er en prototype til en Framewok Bash. Det kræver kun Bash på systemet.
    Hvis en anden er interesseret, opfordres de til at prøve det og samarbejde!

    https://github.com/reduardo7/bashx

    Greetings!

    1.    firben sagde han

      Kære Eduardo, jeg synes, det er et godt projekt, måske kan du dele det med hele desdelinux-samfundet, husk at du kan offentliggøre en artikel om dit projekt på vores hjemmeside, hvis du ikke ved hvordan man gør det, anbefaler jeg, at du læser https://blog.desdelinux.net/guia-redactores-editores/ hvor er de bedste fremgangsmåder til at oprette artikler i desdelinux og proceduren, der skal udføres. Muligvis for samfundet er det ganske godt at først vide om fordelene ved dit projekt og for det andet at lære at gøre denne type ting. Vi inviterer dig, og vi inviterer resten til at offentliggøre deres projekter hos os og det brede samfund, der omgiver os.

  10.   Billede af Miguel Urosa Ruiz sagde han

    Hej Goddag.
    Jeg er ny inden for Linux-maskinadministrationsverdenen, og jeg ville gerne vide, hvad du anbefaler til det: ksh, bash, perl, php, python….
    Mange tak og hilsner.
    Michael.