Shell, Bash en Scripts: alles over Shell Scripting.

In deze nieuwe mogelijkheid (invoer # 8) op "Leer Shell Scripting" we richten ons meer op theorie dan op praktijk. dat wil zeggen, we zullen geen code installeren of bestuderen of een specifieke software (pakket) installeren, maar we zullen ons verdiepen in de wereld van Shell-scripts Eigenlijk, door middel van de antwoorden op kleine maar directe vragen, die hieronder worden weergegeven, om tot dusver veel te verduidelijken van wat er is geleerd, dat niet rechtstreeks verwijst naar de interne code die is geprogrammeerd:

Shell-scripts

Wat is de shell in een GNU / Linux-besturingssysteem?

Schelp die in het Spaans CONCHA betekent (schaal, hoes, bescherming). Toegepast verwijst deze term in besturingssystemen naar de opdrachtinterpreter van het besturingssysteem. Over het algemeen is het een krachtige tekstinterface, gemanifesteerd in de vorm van een terminal (console) en hoofdzakelijk gebruikt voor 3 belangrijke werkgebieden:

1.- Beheer het besturingssysteem,
2.- Toepassingen uitvoeren en ermee communiceren, en
3.- Dienen als een basis programmeeromgeving.

Veel SO, GNU / Linux ze worden nog efficiënter beheerd door hun configuratiebestanden via Terminal te bewerken. Deze bevinden zich in de regel op het bestemmingspad: «/enzovoort", en binnen specifieke mappen voor elke toepassing. Bijvoorbeeld het programma Lilo (wat staat voor Linux Loader) wordt geconfigureerd door het tekstbestand te bewerken dat zich bevindt en wordt genoemd als "/Etc/lilo/lilo.conf". In het geval van programma's (applicaties), worden deze gestart (uitgevoerd / geactiveerd) door de naam van het uitvoerbare bestand te schrijven, als het wordt gevonden in het pad (standaardpad) voor alle uitvoerbare bestanden, zoals het normaal is "/ Usr / bin" , of door de naam van het uitvoerbare bestand te typen, voorafgegaan door: ./, vanuit de directory waar ze zich bevinden.

Dit alles is goed bekend bij elke Shell-gebruiker. De mogelijkheden als programmeeromgeving zijn echter niet zo bekend en gewaardeerd. Scripts (programma's) die in de Shell zijn gemaakt, hoeven niet te worden gecompileerd. De Shell interpreteert ze regel voor regel. Daarom staan ​​deze bekend of genoemd als Shells-scripts en kunnen ze variëren van eenvoudige opdrachten tot complexe reeksen instructies voor het starten van het besturingssysteem zelf. hebben een redelijk schone (duidelijke) syntaxis (constructie, ordening), waardoor ze een goed startpunt zijn om aan de slag te gaan in de wereld van programmeren.

Wat is Shell-scripts?

Het is de techniek (vaardigheid / vaardigheid) om een ​​script (taakautomatiseringsbestand) te ontwerpen en te creëren met behulp van een shell (bij voorkeur) van een besturingssysteem of een teksteditor (grafisch of terminal). Dit is een type programmeertaal dat over het algemeen wordt geïnterpreteerd. Dat wil zeggen, terwijl de meeste programma's worden gecompileerd (gecodeerd), omdat ze permanent worden geconverteerd naar een specifieke (speciale) code voordat ze kunnen worden uitgevoerd (compilatieproces), blijft een shellscript in zijn oorspronkelijke vorm (de code tekstbron) en worden elke keer dat ze worden uitgevoerd commando voor commando geïnterpreteerd. Hoewel het mogelijk is dat de scripts ook kunnen worden gecompileerd, hoewel dit niet gebruikelijk is.

Wat zijn de kenmerken van programma's die zijn gebaseerd op programmeren onder Shell Scripting?

1.- Ze zijn gemakkelijker te schrijven (programma), maar met hogere verwerkingskosten wanneer ze worden uitgevoerd.

2.- Ze gebruiken tolken in plaats van compilers om te draaien

3.- Ze hebben een communicatierelatie met componenten geschreven in andere programmeertalen.

4.- De bestanden die ze bevatten, worden opgeslagen als platte tekst.

5.- Het uiteindelijke ontwerp (code) is meestal kleiner dan wat het equivalent zou zijn in een gecompileerde programmeertaal.

Wat zijn de meest populaire soorten talen onder Shell Scripting?

1.- Taak- en shell-besturingstaal:

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, onder vele anderen.

2. - GUI-scripting (macro-talen):

a) Autosneltoets,
b) Autoit,
c) Verwacht,
d) Automator, onder anderen.

3. - Scripttaal van specifieke applicaties:

a) ActionScript in Flash,
b) matlab,
c) mIRC-script,
d) QuakeC, onder anderen.

4.- Webprogrammering (voor dynamische pagina's):

a) Aan de serverzijde:

- PHP,
- ASP (Active Server Pages),
- JavaServer-pagina's,
- ColdFusion,
- IPTSCRAE,
- Lasso,
- MIVA-script,
- SMX,
- XSLT, onder anderen.

b) Aan de kant van de klant:

- JavaScript,
- JScript,
- VBScript,
- Tcl, onder anderen.

5.- Tekstverwerkingstalen:

- AWK,
- Perl,
- Dorst,
- XSLT,
- Bash, onder anderen.

6.- Dynamische talen voor algemeen gebruik:

- APL,
- Boe,
- Dylan,
- Feriet,
- Groovy,
- IO,
- Lisp,
- Lua,
- BOOMMEN (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Robijn,
- Regeling,
- Koetjes en kalfjes,
- SuperCard,
- Tcl,
- Revolutie, onder anderen.

Wat is Bash in GNU / Linux?

Het is een computerprogramma dat tot taak heeft bevelen te interpreteren. Het is gebaseerd op de Unix-schaal en is compatibel met POSIX. Het is geschreven voor het GNU-project en is de standaardshell voor de meeste Linux-distributies.

Wat is een Shell-script in GNU / Linux?

De Shell-scripts ze zijn buitengewoon nuttig. Het is een goed idee om die behoeften die we hebben te schrijven en vervolgens scripts te bewerken die dit werk voor ons doen. Nu is het tijd om jezelf af te vragen wat een script precies is. Het is een tekstbestand met een reeks shell-commando's die het systeem ordelijk uitvoert, van boven naar beneden. Om ze te bewerken, heb je alleen een teksteditor nodig, zoals Emacs, Vi, Nano, en de vele bestaande. Ze worden opgeslagen met een ".sh" extensie (of zonder, in sommige gevallen) en worden uitgevoerd vanuit de Shell met behulp van het commando: sh script name.sh. Scripts gedragen zich op dezelfde manier als shell-opdrachten.

De onderwijsaanpak die ik persoonlijk gebruik "Leer Shell Scripting" Het is erg praktisch en direct, dat wil zeggen, om een ​​volledig functioneel script te onderzoeken, het te ontleden, zin voor zin te bestuderen, regel voor regel, commando voor commando, variabele voor variabele, totdat je begrijpt hoe elk element afzonderlijk werkt en hoe het werkt. in de code algemeen. Het is een soort van Reverse engineering of software re-engineering. Dit alles om de kennis toe te eigenen, te verbeteren (optimaliseren) en te delen, voor het collectieve voordeel en een beter beheer en optimalisatie van de gratis Besturingssystemen.

Hoe werkt en werkt het in een GNU / Linux-shell?

De eerste stap bij het werken met een shell is het draaien van een shell. Wat op een waarheid lijkt, heeft zijn reden van bestaan. In sommige zeer op de eindgebruiker gerichte GNU / Linux-distributies is de shell behoorlijk verborgen. Meestal heet het: Konsole, Terminal, X Terminal of iets dergelijks. Een andere optie is om een ​​virtuele console te gebruiken. Gebruiken: Ctrl + Alt + f1, of f2, of f3 tot f7 of f8, afhankelijk van de GNU / Linux-distributie die u gebruikt. De meest gebruikte shell in GNU / Linux is Bash, hoewel er andere zijn, zoals ksh of C Shell. In mijn geval, heel specifiek voor mijn publicaties, gebruik ik Bash Shell.

Gegeven een script gemaakt in Bash Shell genaamd hello_world.sh het volgende kan worden verklaard:

Inhoud:

#! / Bin / bash
echo hallo wereld

Afbreken:

Eerste regel van het script
#! / Bin / bash

Geeft het programma aan dat het script moet uitvoeren. Als het programma niet kan worden gevonden, treedt er een fout op.

Tweede regel van het script
echo hallo wereld

Voer het echo-commando uit met de Hello World-argumenten, zodat ze op het scherm worden weergegeven.

uitvoering: We kunnen het script op twee manieren uitvoeren

De tolk aanroepen om het script uit te voeren:
# bash hello_world.sh

Het kan ook worden uitgevoerd als:
# sh hello_world.sh

Maar aangezien uw juiste Shell niet wordt aangeroepen, werkt deze mogelijk half. Idealiter is de shell die in de eerste regel wordt aangeroepen, degene die wordt gebruikt om deze uit te voeren.

U kunt het script ook rechtstreeks als volgt uitvoeren:
# ./hello_world.sh

Opmerking: ./ geeft run vanaf huidige directory aan.

De rest die nog moet worden geanalyseerd, is de code die u erin invoegt. Ik hoop dat je zoals altijd deze serie leuk vindt (sommige meer dan andere, afhankelijk van leer- en kennisbehoeften) Shell-scripts.

Er zijn veel goede links over dit onderwerp op internet, maar ik laat u deze kleine gids hier op DesdeLinux.net En deze andere Externe gids.

Tot de volgende post!


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   d4ny zei

    Lilo .. Linux Loader .. de rest zeer goede info .. bedankt .. salu2 d4ny.-

  2.   José Albert zei

    Groeten aan allen die de online cursus "Learn Shell Scripting" volgen. We zullen binnenkort doorgaan met andere basisscripts om de kennis verder toe te eigenen en te blijven socialiseren met iedereen.

    Ik hoop dat je op de hoogte blijft, want binnenkort zal ik beginnen met meer geavanceerde codes, maar op een manier die visueel begrijpelijk is, ondanks de complexiteit ervan.

    Onthoud dat u met Shell Scripting veel complexe dingen kunt doen die platformonafhankelijk zijn (Different Distros) met zeer kleine bestanden. Ik zal je deze kleine screencast overlaten van iets dat ik je binnenkort zal leren, aan degenen die de cursus blijven volgen, en dat met slechts 50Kb veel belooft! En het is slechts de helft van wat er met Shell Scripting kan worden gedaan.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALLEREN - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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

    1.    Alberto Cardona zei

      Hallo, je bijdrage is ongelooflijk, heel erg bedankt !!
      Ik twijfel een beetje, kan ik een compiler programmeren met bash?
      Of op zijn minst een lexicale analysator?
      heeft die kracht?

  3.   José Albert zei

    Groeten aan allen die de online cursus "Learn Shell Scripting" volgen. We zullen binnenkort doorgaan met andere basisscripts om de kennis verder toe te eigenen en te blijven socialiseren met iedereen. Ik hoop dat je op de hoogte blijft, want binnenkort zal ik beginnen met meer geavanceerde codes, maar op een manier die visueel begrijpelijk is, ondanks de complexiteit ervan.

    Onthoud dat u met Shell Scripting veel complexe dingen kunt doen die platformonafhankelijk zijn (Different Distros) met zeer kleine bestanden. Ik zal je deze kleine screencast overlaten van iets dat ik je binnenkort zal leren, aan degenen die de cursus blijven volgen, en dat met slechts 50Kb veel belooft! En het is slechts de helft van wat er met Shell Scripting kan worden gedaan.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALLEREN - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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

  4.   Alberto zei

    Hola Jose,
    Allereerst bedankt voor het delen van uw kennis. Uw artikelen zijn erg interessant.

    Twee dingen, ik denk dat het erg belangrijk is om de dubbele aanhalingstekens "Hallo wereld" te gebruiken en om een ​​schone uitvoer van ons script te hebben met uitgang 0

  5.   José Albert zei

    Bedankt voor je bijdragen, in het volgende script zie je het gebruik van exit 0, break en anderen!

  6.   wilskracht zei

    Groeten.
    Heel interessant, je laat het er simpel uitzien; Nu, ik heb ontdekt dat ik niet kan programmeren in Linux met cron of at, afsluiten / opschorten / hiberneren, met de daaruit voortvloeiende automatische start met het rtc wake-commando, ik weet niet of een script met dat commando zou helpen, of ze zouden cron volgen en zonder iets te doen, of het kan gewoon niet, of het wordt anders gedaan, of ik ben erg ambitieus, maar onder Windows is het relatief eenvoudig om het te doen. Ik wil naar Linux gaan, maar het is belangrijk voor mij om het afsluiten / onderbreken / overwinteren te plannen en de pc zelf te laten opstarten. Vriendelijke groeten.

  7.   José Albert zei
  8.   wilskracht zei

    Bedankt, ik zal ze grondig lezen, iets zal me helpen. Vriendelijke groeten.

  9.   Edward Cuomo zei

    Enige tijd geleden ben ik een project begonnen, dat volgens mij uniek is. Het is een prototype voor een Framewok Bash. Het vereist alleen Bash op het systeem.
    Als iemand anders geïnteresseerd is, worden ze uitgenodigd om het te proberen en samen te werken!

    https://github.com/reduardo7/bashx

    Groeten!

    1.    hagedis zei

      Beste Eduardo, Ik vind het een geweldig project, misschien kun je het delen met de hele gemeenschap van desdelinuxVergeet niet dat u een artikel over uw project op onze website kunt publiceren. Als u niet weet hoe u dit moet doen, raad ik u aan dit te lezen https://blog.desdelinux.net/guia-redactores-editores/ waar zijn de best practices voor het maken van artikelen in desdelinux en de te volgen procedure. Mogelijk is het voor de gemeenschap best goed om eerst de voordelen van uw project te kennen en vervolgens te leren hoe u dit soort dingen kunt doen. Wij nodigen u en wij nodigen anderen uit om hun projecten met ons en de grote gemeenschap om ons heen te delen.

  10.   Tijdelijke afbeelding voor Miguel Urosa Ruiz zei

    Hallo, goedemorgen.
    Ik ben nieuw in de wereld van Linux-machinebeheer en ik wilde weten wat je ervoor aanbeveelt: ksh, bash, perl, php, python….
    Hartelijk dank en vriendelijke groeten.
    Miguel.