Shell, Bash et scripts: tout sur les scripts Shell.

Dans cette nouvelle opportunité (entrée # 8) sur "Apprendre le script Shell" nous nous concentrerons davantage sur la théorie que sur la pratique. c'est-à-dire que nous n'installerons ni n'étudierons un code, ni n'installerons un logiciel (package) spécifique, mais nous explorerons ce qu'est le monde Shell Scripting proprement dit, à travers les réponses à des questions petites mais directes, qui sont présentées ci-dessous, pour clarifier une grande partie de ce qui a été enseigné, qui ne renvoie pas directement au code interne qui est programmé:

Shell Scripting

Qu'est-ce que le Shell dans un système d'exploitation GNU / Linux?

Shell qui en espagnol signifie CONCHA (coque, couverture, protection). Appliqué ce terme dans les systèmes d'exploitation se réfère à l'interpréteur de commandes du système d'exploitation. En général, il s'agit d'une interface texte performante, se manifestant sous la forme d'un Terminal (Console) et essentiellement utilisée pour 3 zones de travail importantes:

1.- Gérer l'OS,
2.- Exécutez des applications et interagissez avec elles, et
3.- Servir d'environnement de programmation de base.

Beaucoup de SO, GNU / Linux ils sont toujours gérés plus efficacement en éditant leurs fichiers de configuration, via Terminal. En règle générale, ils se trouvent sur le chemin de destination: «/etc", et dans des répertoires spécifiques pour chaque application. Par exemple, le programme Lilo (qui signifie Linux Loader) est configuré en éditant le fichier texte localisé et appelé comme "/Etc/lilo/lilo.conf". Dans le cas des programmes (applications), ceux-ci sont lancés (exécutés / activés) en écrivant le nom de l'exécutable, s'il se trouve dans le chemin (chemin par défaut) de tous les exécutables, comme c'est normalement le cas "/ Usr / bin" , ou en tapant le nom de l'exécutable précédé de: ./, à partir du répertoire où ils se trouvent.

Tout cela est bien connu de tout utilisateur de Shell. Cependant, ses capacités en tant qu'environnement de programmation ne sont pas aussi bien connues et appréciées. Les scripts (programmes) créés dans le Shell n'ont pas besoin d'être compilés. Le Shell les interprète ligne par ligne. Par conséquent, ceux-ci sont connus ou nommés sous le nom de scripts Shells et peuvent aller de simples commandes à des séries complexes d'instructions pour démarrer le système d'exploitation lui-même. En général, ils ont une syntaxe assez propre (construction, ordonnancement) (évidente), ce qui en fait un bon point de départ pour se lancer dans le monde de la programmation.

Qu'est-ce que le script Shell?

C'est la technique (compétence / dextérité) de conception et de création de Script (fichier d'automatisation de tâches) à l'aide d'un Shell (de préférence) d'un système d'exploitation, ou d'un éditeur de texte (graphique ou terminal). Il s'agit d'un type de langage de programmation généralement interprété. Autrement dit, alors que la plupart des programmes sont compilés (encodés), car ils sont convertis en permanence en un code spécifique (spécial) avant de pouvoir être exécutés (processus de compilation), un script shell reste dans sa forme d'origine (son code source de texte) et sont interprétés commande par commande à chaque exécution. Bien qu'il soit possible que les scripts puissent également être compilés, bien que ce ne soit pas habituel.

Quelles sont les caractéristiques des programmes basés sur la programmation sous Shell Scripting?

1.- Ils sont plus faciles à écrire (programme), mais avec un coût de traitement plus élevé lorsqu'ils sont exécutés.

2.- Ils utilisent des interprètes au lieu de compilateurs pour exécuter

3.- Ils ont une relation de communication avec des composants écrits dans d'autres langages de programmation.

4.- Les fichiers qui les contiennent sont stockés sous forme de texte brut.

5.- La conception finale (code) est généralement plus petite que ce qui serait l'équivalent dans un langage de programmation compilé.

Quels sont les types de langages les plus populaires sous Shell Scripting?

1.- Langage de contrôle des tâches et du shell:

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, parmi tant d'autres.

2.- Scripting GUI (Langages Macros):

a) Touche de raccourci automatique,
b) AutoIt,
c) Attendez-vous,
d) Automator, entre autres.

3.- Langage de script d'applications spécifiques:

a) ActionScript dans Flash,
b) MATLAB,
c) script mIRC,
d) QuakeC, entre autres.

4.- Programmation Web (pour les pages dynamiques):

a) Côté serveur:

- PHP,
- ASP (Active Server Pages),
- Pages JavaServer,
- Fusion froide,
- IPTSCRAE,
- Lasso,
- Script MIVA,
- SMX,
- XSLT, entre autres.

b) Côté client:

- JavaScript,
- JScript,
- VBScript,
- Tcl, entre autres.

5.- Langages de traitement de texte:

- AWK,
- Perl,
- La soif,
- XSLT,
- Bash, entre autres.

6.- Langages dynamiques à usage général:

- APL,
- Boo,
- Dylan,
- Férite,
- Sensationnel,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- NouveauLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Rubis,
- Schéma,
- Smalltalk,
- SuperCard,
- Tcl,
- Révolution, entre autres.

Qu'est-ce que Bash dans GNU / Linux?

C'est un programme informatique dont la fonction est d'interpréter les commandes. Il est basé sur le Shell Unix et est compatible avec POSIX. Il a été écrit pour le projet GNU et est le shell par défaut pour la plupart des distributions Linux.

Qu'est-ce qu'un script Shell dans GNU / Linux?

Les scripts Shell ils sont extrêmement utiles. C'est une bonne idée d'écrire les besoins que nous avons, puis d'éditer les scripts qui font ce travail pour nous. À présent, il est temps de vous demander ce qu'est exactement un script. C'est un fichier texte, contenant une série de commandes shell, que le système exécute de manière ordonnée, de haut en bas. Pour les éditer, vous n'avez besoin que d'un éditeur de texte, tel qu'Emacs, Vi, Nano, parmi beaucoup d'autres. Ils sont enregistrés avec l'extension «.sh» (ou sans elle, dans certains cas) et sont exécutés depuis le Shell en utilisant la commande: sh script name.sh. Les scripts se comportent de la même manière que les commandes shell.

L'approche pédagogique que j'utilise personnellement pour "Apprendre le script Shell" Il est très pratique et direct, c'est-à-dire d'examiner un script entièrement fonctionnel, de le décomposer, de l'étudier phrase par phrase, ligne par ligne, commande par commande, variable par variable, jusqu'à ce que vous compreniez comment chaque élément fonctionne séparément et comment il s'engage dans le code général. Il est une sorte de Ingénierie inverse ou réingénierie logicielle. Tout cela dans le but de s'approprier les connaissances, de les améliorer (les optimiser) et de les partager, pour le bénéfice collectif et une meilleure administration et optimisation des systèmes d'exploitation gratuits.

Comment fonctionne-t-il et fonctionne-t-il dans un shell GNU / Linux?

La première étape du travail avec un shell consiste à exécuter un shell. Ce qui semble être un truisme a sa raison d'être. Dans certaines distributions GNU / Linux très orientées utilisateur final, le shell est assez caché. Normalement, il s'appelle: Konsole, Terminal, Terminal X ou quelque chose de similaire. Une autre option consiste à utiliser une console virtuelle. Utilisation: Ctrl + Alt + f1, ou f2, ou f3 à f7 ou f8, selon la distribution GNU / Linux que vous utilisez. Le Shell le plus utilisé dans GNU / Linux est Bash, bien qu'il y en ait d'autres, comme ksh ou C Shell. Dans mon cas, très particulier pour mes publications, j'utilise Bash Shell.

Étant donné un script créé dans Bash Shell appelé bonjour_world.sh ce qui suit peut être expliqué:

Contenu:

#! / Bin / bash
echo bonjour le monde

Panne:

Première ligne du script
#! / Bin / bash

Indique le programme que le script doit exécuter. Si le programme est introuvable, une erreur se produit.

Deuxième ligne du script
echo bonjour le monde

Exécutez la commande echo avec les arguments Hello World, les faisant s'afficher à l'écran.

Exécution: Nous pouvons exécuter le script de deux manières

Appel de l'interpréteur pour exécuter le script:
# bash hello_world.sh

Il peut également être exécuté comme:
# sh bonjour_world.sh

Mais comme votre shell correct n'est pas appelé, il peut fonctionner à moitié. Idéalement, le Shell invoqué dans la première ligne est celui utilisé pour l'exécuter.

Vous pouvez également exécuter le script directement comme suit:
# ./hello_world.sh

Observation: ./ indique une exécution à partir du répertoire courant.

Le reste qui reste à analyser est le code que vous y insérez. J'espère que comme toujours vous aimez (certains plus que d'autres, selon les besoins d'apprentissage et de connaissances) cette série de Shell Scripting.

Il existe de nombreux bons liens sur ce sujet sur le web, mais je vous laisse ce petit guide situé juste ici à DesdeLinux. Net Et cet autre Guide externe.

Jusqu'au prochain post!


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   d4ny dit

    Lilo .. Linux Loader .. le reste très bonne info .. merci .. salu2 d4ny.-

  2.   Ing. José Albert dit

    Salutations à tous ceux qui suivent le cours en ligne "Apprendre les scripts Shell" bientôt, nous continuerons avec d'autres scripts de base pour continuer à s'approprier les connaissances et continuer à les socialiser avec tous.

    J'espère que vous resterez à l'écoute car bientôt je commencerai avec des codes plus avancés mais exposés d'une manière visuellement compréhensible malgré sa complexité.

    N'oubliez pas qu'avec Shell Scripting, vous pouvez effectuer de nombreuses opérations complexes multiplateformes (Différents Distros) en utilisant de très petits fichiers. Je vais vous laisser ce petit screencast de quelque chose que je vous apprendrai bientôt, à ceux qui continuent à regarder le cours, et qui avec seulement 50Ko promet beaucoup! Et ce n'est que la moitié de ce qui peut être fait avec Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisuel_2016.sh / 43Ko)

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

    1.    Alberto cardona dit

      Bonjour, votre contribution est incroyable, vraiment merci beaucoup !!
      J'ai un petit doute, puis-je programmer un compilateur avec bash?
      Ou au moins un analyseur lexical?
      a ce pouvoir?

  3.   Ing. José Albert dit

    Salutations à tous ceux qui suivent le cours en ligne "Apprendre les scripts Shell" bientôt, nous continuerons avec d'autres scripts de base pour continuer à s'approprier les connaissances et à les socialiser avec tous. J'espère que vous restez à l'écoute car bientôt je commencerai avec des codes plus avancés mais exposés d'une manière visuellement compréhensible malgré sa complexité.

    N'oubliez pas qu'avec Shell Scripting, vous pouvez effectuer de nombreuses opérations complexes multiplateformes (Différents Distros) en utilisant de très petits fichiers. Je vais vous laisser ce petit screencast de quelque chose que je vous apprendrai bientôt, à ceux qui continuent à regarder le cours, et qui avec seulement 50Ko promet beaucoup! Et ce n'est que la moitié de ce qui peut être fait avec Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisuel_2016.sh / 43Ko)

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

  4.   Alberto dit

    Salut Jose,
    Tout d'abord merci de partager vos connaissances. Vos articles sont très intéressants.

    Deux choses, je pense qu'il est très important d'utiliser les doubles guillemets "Hello World" et d'avoir une sortie propre de notre script avec la sortie 0

  5.   Ing. José Albert dit

    Merci pour vos contributions, dans le prochain script, vous verrez l'utilisation de la sortie 0, pause et autres!

  6.   willarmand dit

    Salutations.
    Très intéressant, vous le faites paraître simple; Maintenant, j'ai trouvé que je ne peux pas programmer sous Linux avec cron ou at, shutdown / suspend / hibernate, avec le démarrage automatique conséquent en utilisant la commande rtc wake, je ne sais pas si un script avec cette commande aiderait, ou ils suivraient cron et t sans rien faire, ou cela ne peut tout simplement pas être fait, ou cela se fait différemment, ou je suis très ambitieux, mais sous Windows, c'est relativement simple de le faire. Je veux passer à Linux, mais il est important pour moi de planifier l'arrêt / la suspension / la mise en veille prolongée et le démarrage du PC par lui-même. Cordialement.

  7.   Ing. José Albert dit

    Peut-être que cela vous donnera des idées innovantes: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   willarmand dit

    Merci, je vais les lire attentivement, quelque chose va m'aider. Cordialement.

  9.   Edouard Cuomo dit

    Il y a quelque temps, j'ai lancé un projet qui, je pense, est unique en son genre. C'est un prototype pour un Framewok Bash. Il ne nécessite que Bash sur le système.
    Si quelqu'un d'autre est intéressé, il est invité à l'essayer et à collaborer!

    https://github.com/reduardo7/bashx

    Salutations!

    1.    lézard dit

      Cher Eduardo, je pense que c'est un projet formidable, peut-être pourriez-vous le partager avec toute la communauté de desdelinux, n'oubliez pas que vous pouvez publier un article sur votre projet sur notre site, si vous ne savez pas comment faire, je vous recommande de lire https://blog.desdelinux.net/guia-redactores-editores/ où sont les meilleures pratiques pour créer des articles dans desdelinux et la procédure à suivre. Peut-être que pour la communauté, il est bon de connaître d'abord les avantages de votre projet et ensuite d'apprendre comment faire ce genre de choses. Nous vous invitons et nous invitons les autres à partager leurs projets avec nous et la grande communauté qui nous entoure.

  10.   Image de balise Miguel Urosa Ruiz dit

    Bonjour, bonjour.
    Je suis nouveau dans le monde de l'administration des machines Linux, et je voulais savoir ce que vous recommandez pour cela: ksh, bash, perl, php, python….
    Merci beaucoup et meilleures salutations.
    Miguel.