Shell, Bash och Scripts: Allt om Shell Scripting.

I den här nya möjligheten (post 8)"Lär dig Shell Scripting" vi kommer att fokusera mer på teori än praktik. vi vill inte installera eller studera en kod eller installera en specifik programvara (paket), men vi kommer att gräva in i vad som är Shell-skript ordentligt sett, genom svaren på små men direkta frågor, som visas nedan, för att klargöra hittills mycket av det som har lärt sig, vilket inte hänvisar direkt till den interna koden som är programmerad:

Shell-skriptVad är skalet i ett GNU / Linux-operativsystem?

Skal som på spanska betyder CONCHA (skal, lock, skydd). Används denna term i operativsystem hänvisar till operativsystemets kommandotolk. I allmänhet är det ett högpresterande textgränssnitt, manifesterat i form av en terminal (konsol) och används i huvudsak för 3 viktiga arbetsområden:

1.- Hantera operativsystemet,
2.- Kör applikationer och interagera med dem, och
3.- Fungera som en grundläggande programmeringsmiljö.

Många så, GNU / Linux de hanteras fortfarande mer effektivt genom att redigera sina konfigurationsfiler via Terminal. Som en allmän regel finns dessa på destinationsvägen: «/etc"och inom specifika kataloger för varje ansökan. Till exempel programmet lilo (som står för Linux Loader) konfigureras genom att redigera den textfil som finns och kallas som "/Etc/lilo/lilo.conf". När det gäller program (applikationer) startas (körs / aktiveras) genom att skriva namnet på den körbara filen, om den finns i sökvägen (standardväg) för alla körbara filer, som det normalt är "/ Usr / bin" , eller genom att skriva namnet på den körbara filen som föregås av: ./, från katalogen där de finns.

Allt detta är välkänt för alla Shell-användare. Men inte så känt och uppskattat är dess förmåga som en programmeringsmiljö. Skript (program) gjorda i Shell behöver inte kompileras. Shell tolkar dem rad för rad. Därför är dessa kända eller namngivna som Shells Scripts och kan sträcka sig från enkla kommandon till komplexa instruktioner för att starta operativsystemet själv. de har en ganska ren syntax (konstruktion, beställning) (uppenbart), vilket gör dem till en bra utgångspunkt för att börja i programmeringsvärlden.

Vad är Shell Scripting?

Det är tekniken (skicklighet / skicklighet) att designa och skapa skript (uppgiftsautomationsfil) med hjälp av en skal (helst) i ett operativsystem eller en textredigerare (grafik eller terminal). Detta är en typ av programmeringsspråk som generellt tolkas. Medan de flesta program är kompilerade (kodade), eftersom de konverteras permanent till en specifik (special) kod innan de kan köras (kompileringsprocess), förblir ett skalskript i sin ursprungliga form (dess kod textkälla) och tolkas kommando för kommando varje gång de körs. Även om det är möjligt att manusen kan kompileras också, även om det inte är vanligt.

Vilka egenskaper kännetecknar program baserat på programmering under Shell Scripting?

1.- De är lättare att skriva (program) men med högre bearbetningskostnad när de körs.

2.- De använder tolkar istället för kompilatorer för att köra

3.- De har ett kommunikationsförhållande med komponenter skrivna på andra programmeringsspråk.

4. - Filerna som innehåller dem lagras som vanlig text.

5.- Den slutliga designen (kod) är vanligtvis mindre än vad som skulle motsvara i ett sammanställt programmeringsspråk.

Vilka är de mest populära typerna av språk under Shell Scripting?

1. - Uppgifts- och skalkontrollsprå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, bland många andra.

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

a) AutoHotkey,
b) AutoIt,
c) Förvänta dig,
d) Bland annat Automator.

3.- Skriptspråk för specifika applikationer:

a) ActionScript i Flash,
b) MATLAB,
c) mIRC-skript,
d) QuakeC, bland andra.

4.- Webbprogrammering (för dynamiska sidor):

a) På serversidan:

- PHP,
- ASP (Active Server Pages),
- JavaServer-sidor,
- Kall fusion,
- IPTSCRAE,
- Lasso,
- MIVA-skript,
- SMX,
- XSLT, bland andra.

b) På klientsidan:

- JavaScript,
- JScript,
- VBScript,
- Tcl, bland andra.

5.- Språk för ordbehandling:

- AWK,
- Perl,
- Törst,
- XSLT,
- Bash, bland andra.

6.- Allmänna dynamiska språk:

- APL,
- Boo,
- Dylan,
- Ferite,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPOR (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Schema,
- Småprat,
- SuperCard,
- Tcl,
- Revolution, bland andra.

Vad är Bash i GNU / Linux?

Det är ett datorprogram vars funktion är att tolka order. Den är baserad på Unix skal och det stöder POSIX. Det skrevs för GNU-projektet och är standardskalet för de flesta Linux-distributioner.

Vad är ett Shell-skript i GNU / Linux?

Shell-skript de är extremt användbara. Det är en bra idé att skriva vilka behov vi har och sedan redigera skript som gör detta för oss. Nu är det dags att fråga dig själv vad exakt ett manus är. Det är en textfil som innehåller en serie skalkommandon, som systemet körs på ett ordnat sätt, från topp till botten. För att redigera dem behöver du bara en textredigerare, till exempel Emacs, Vi, Nano, bland många befintliga. De sparas med ett ".sh" -tillägg (eller utan det, i vissa fall) och körs från Shell med kommandot: sh script name.sh. Skript beter sig på samma sätt som skalkommandon.

Den undervisningsmetod som jag personligen använder "Lär dig Shell Scripting" Det är väldigt praktiskt och direkt, det vill säga att undersöka ett fullt fungerande skript, sönderdela det, studera det mening för mening, rad för rad, kommando för kommando, variabel för variabel, tills du förstår hur varje element fungerar separat och hur det engagerar sig i koden allmän. Det är typ av Omvänd teknik eller återutveckling av programvara. Allt detta för att anpassa kunskapen, förbättra den (optimera den) och dela den, för kollektiv nytta och en bättre administration och optimering av de fria operativsystemen.

Hur fungerar och fungerar det i ett GNU / Linux-skal?

Det första steget i att arbeta med en Shell är att köra ett skal. Det som verkar som en truism har sin anledning att vara. I vissa mycket slutanvändarorienterade GNU / Linux-distributioner är skalet ganska dolt. Vanligtvis kallas det: Konsole, Terminal, X Terminal eller något liknande. Ett annat alternativ är att använda en virtuell konsol. Användning: Ctrl + Alt + f1, eller f2, eller f3 till f7 eller f8, beroende på vilken GNU / Linux-distribution du använder. Den mest använda Shell i GNU / Linux är Bash, även om det finns andra, som ksh eller C Shell. I mitt fall, särskilt för mina publikationer, använder jag Bash Shell.

Givet ett skript som gjorts i Bash Shell kallat hej_världen.sh följande kan förklaras:

innehåll:

#! / Bin / bash
eko hej världen

Bryta ner:

Första raden i manuset
#! / Bin / bash

Indikerar programmet som skriptet ska köras. Om programmet inte kan hittas uppstår ett fel.

Andra raden i manuset
eko hej världen

Utför ekokommandot med Hello World-argumenten och få dem att visas på skärmen.

utförande: Vi kan köra skriptet på två sätt

Anropa tolk för att köra manuset:
# bash hello_world.sh

Det kan också köras som:
# sh hej_värld.sh

Men eftersom din korrekta Shell inte åberopas kan det fungera hälften. Helst är det Shell som åberopas i första raden den som används för att utföra den.

Du kan också köra skriptet direkt enligt följande:
# ./hello_world.sh

Obs: ./ indikerar körning från aktuell katalog.

Det som återstår att analysera är koden som du sätter i den. Jag hoppas att du som alltid gillar (vissa mer än andra, beroende på inlärnings- och kunskapsbehoven) denna serie av Shell-skript.

Det finns många bra länkar om detta ämne på nätet, men jag lämnar dig den här lilla guiden här FrånLinux.net Och den här andra Extern guide.

Fram till nästa inlägg!


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

13 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   d4ny sade

    Lilo .. Linux Loader .. resten mycket bra info .. tack .. salu2 d4ny.-

  2.   Ing. Jose Albert sade

    Hälsningar till alla som följer onlinekursen "Lär dig Shell Scripting" snart kommer vi att fortsätta med andra grundläggande skript för att fortsätta att tillämpa kunskapen och fortsätta socialisera den för alla.

    Jag hoppas att du håller dig uppdaterad för snart kommer jag att börja med mer avancerade koder men exponeras på ett sätt som är visuellt förståeligt trots dess komplexitet.

    Kom ihåg att med Shell Scripting kan du göra många komplexa saker som är plattformsplattformar (olika distro) med mycket små filer. Jag lämnar denna lilla skärmdump av något som jag snart kommer att lära dig, till dem som fortsätter att titta på kursen, och det med bara 50 kB lovar mycket! Och det är bara hälften av vad du kan göra 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 sade

      Hej, ditt bidrag är otroligt, verkligen tack så mycket !!
      Jag tvivlar lite, kan jag programmera en kompilator med bash?
      Eller åtminstone en lexikalisk analysator?
      har den makten?

  3.   Ing. Jose Albert sade

    Hälsningar till alla som följer onlinekursen "Lär dig Shell Scripting" snart kommer vi att fortsätta med andra grundläggande skript för att fortsätta att tillämpa kunskapen och fortsätta socialisera den för alla. Jag hoppas att du håller dig uppdaterad för snart kommer jag att börja med mer avancerade koder men exponeras på ett sätt som är visuellt förståeligt trots dess komplexitet.

    Kom ihåg att med Shell Scripting kan du göra många komplexa saker som är plattformsplattformar (olika distro) med mycket små filer. Jag lämnar denna lilla skärmdump av något som jag snart kommer att lära dig, till dem som fortsätter att titta på kursen, och det med bara 50 kB lovar mycket! Och det är bara hälften av vad du kan göra 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 sade

    Hola Jose,
    Först tack för att du delar din kunskap. Dina artiklar är väldigt intressanta.

    Två saker, jag tycker att det är väldigt viktigt att använda de dubbla citaten "Hello World" och ha en ren utskrift av vårt skript med utgång 0

  5.   Ing. Jose Albert sade

    Tack för dina bidrag, i nästa skript ser du användningen av utgång 0, break och andra!

  6.   Willarmand sade

    Hälsningar.
    Mycket intressant, du får det att se enkelt ut; Nu har jag funnit att jag inte kan programmera i Linux med cron eller at, stänga av / stänga av / vila, därmed automatiskt börja använda rtc wake-kommandot, jag vet inte om ett skript med det kommandot skulle hjälpa, eller de skulle följa cron och utan att göra någonting, eller det kan bara inte göras, eller så görs det annorlunda, eller så är jag väldigt ambitiös, men i Windows är det relativt enkelt att göra det. Jag vill flytta till Linux, men det är viktigt för mig att planera avstängning / avstängning / viloläge och låta datorn starta av sig själv. Hälsningar.

  7.   Ing. Jose Albert sade

    Kanske kommer detta att ge dig några innovativa idéer: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   Willarmand sade

    Tack, jag kommer att läsa dem grundligt, något kan hjälpa mig. Hälsningar.

  9.   Eduardo Cuomo sade

    För en tid sedan startade jag ett projekt som jag tror är unikt. Det är en prototyp för en Framewok Bash. Det kräver bara Bash på systemet.
    Om någon annan är intresserad uppmanas de att prova det och samarbeta!

    https://github.com/reduardo7/bashx

    Hälsningar!

    1.    lagarto sade

      Kära Eduardo, jag tycker att det är ett fantastiskt projekt, kanske du kan dela det med hela desdelinux-communityn, kom ihåg att du kan publicera en artikel om ditt projekt på vår webbplats, om du inte vet hur du gör det, rekommenderar jag att du läser https://blog.desdelinux.net/guia-redactores-editores/ var är de bästa metoderna för att skapa artiklar i desdelinux och proceduren att utföra. Möjligen för samhället är det ganska bra att först veta om fördelarna med ditt projekt och för det andra att lära sig hur man gör den här typen av saker. Vi inbjuder dig och vi inbjuder resten att publicera sina projekt med oss ​​och det breda samhället som omger oss.

  10.   Platshållarbild för Miguel Urosa Ruiz sade

    Hej god dag.
    Jag är ny i världen av Linux-maskinadministration, och jag ville veta vad du rekommenderar för det: ksh, bash, perl, php, python ....
    Tack så mycket och hälsningar.
    Miguel.