Qu'est-ce que Shell Scripting et pourquoi devriez-vous l'utiliser?
Le shell est un programme au sein d’un système d’exploitation Linux ou Unix qui vous permet de saisir des commandes à exécuter par le système. Quand une fenêtre de terminal est ouverte sur un ordinateur Linux, elle lance le programme shell qui présente une interface pour entrer des commandes. Cette interface est appelée interface de ligne de commande. Lorsqu'une commande est entrée, elle est exécutée par le shell et la sortie est affichée à l'écran..
En plus de pouvoir accepter et exécuter des commandes de manière interactive, le shell peut également exécuter des commandes stockées dans un fichier. Ce mode d'exécution est appelé scripts shell, et dans cet article, nous couvrons les bases du script shell. 5 raisons d'utiliser PowerShell au lieu d'un script de traitement par lots quelques fonctionnalités supplémentaires, et fait grimper le tout de plusieurs crans. Voici plusieurs raisons pour lesquelles vous devriez l'essayer. Lire la suite .
1. Histoire de la coquille
À partir d’Unix dans les années 1970, il existait un programme shell appelé Shell V6 développé par Ken Thomson. C'était un shell interactif et manquait de capacité de script.
Il a été suivi par le Bourne Shell en 1977 et reste utilisé aujourd'hui comme shell par défaut pour le racine Compte. Cette coque a ajouté des capacités de script qui se sont avérées extrêmement utiles au fil des ans.
Le développement ultérieur de la coque dans les années 1980 a donné lieu à de nombreuses variantes de coque populaires, dont les plus populaires C-Shell et le Korn Shell. Chacune de ces coquilles avait sa propre syntaxe qui, dans certains cas, était radicalement différente de la coquille originale..
L’un des coquillages les plus populaires aujourd’hui est le Bash Shell. Bash signifie Bourne-Again-Shell et est une variante grandement améliorée de la Bourne Shell d'origine.
Dans cet article, nous décrivons les scripts de shell pour le shell Bash Un guide rapide sur le shell Bash Linux sous Windows 10 Un guide rapide sur le shell Bash Linux dans Windows 10 Vous pouvez maintenant exécuter Linux sur Windows. En savoir plus sur Bash sous Windows, en expliquant comment et pourquoi vous devez l’installer, en passant par des fonctionnalités cachées que vous ne connaissiez probablement pas. Lire la suite .
2. Exécuter un script shell
Comment exécutez-vous un script shell? Simple. Il suffit de transmettre le chemin du script en tant qu’argument au shell:
Un exemple de script shell:
echo "bonjour le monde"
Exécutez-le comme suit:
$ bash hello.sh # affiche hello world
Remarque: Le shell exige que les lignes soient terminées par des caractères LF (saut de ligne). Si vous écrivez votre script shell sous Windows et essayez de l'exécuter directement sur un système Linux, vous risquez de rencontrer des erreurs. Windows utilise la combinaison CR-LF (Carriage-Return-Line-Feed) pour la terminaison de ligne. Ceci doit être converti en LF uniquement. Vérifiez votre éditeur Windows pour savoir comment faire cela..
Il existe un autre moyen d'exécuter un script shell directement en tant que commande. Insérer la ligne suivante (la hashbang déclaration) comme première ligne de votre script shell.
#! / bin / bash
Avec ce changement, notre script shell simple est maintenant:
#! / bin / bash echo "bonjour le monde"
Maintenant, vous devez rendre le fichier de script exécutable comme suit:
$ chmod + x hello.sh
À ce stade, vous pouvez exécuter le fichier de script directement sans avoir à référencer explicitement le shell..
$ hello.sh # affiche hello world
Voyons maintenant quelques avantages de l’utilisation de scripts shell: Que sont les scripts CGI et comment améliorent-ils les sites Web? Que sont les scripts CGI et comment améliorent-ils les sites Web? CGI signifie Common Gateway Interface. C'est un protocole standard permettant aux serveurs Web d'exécuter des programmes et de générer des sorties pour les navigateurs Web. Apprenez tout sur les scripts CGI et sur la manière dont ils peuvent améliorer votre site Web. Lire la suite .
3. Automatisation des tâches
Le premier avantage de l'utilisation de scripts shell est l'automatisation des tâches fréquemment exécutées. 7 tâches quotidiennes que vous ne saviez pas pouvoir automatiser en quelques minutes 7 tâches quotidiennes que vous ne saviez pas que vous pourriez automatiser en quelques minutes Vous pouvez automatiser beaucoup de choses à l'heure actuelle. cela vous fera gagner du temps et vous permettra de vous concentrer sur d'autres choses. Nous vous proposons sept éléments que vous pouvez automatiser dès maintenant avec les bons outils. Lire la suite . Supposons que vous ayez une tâche à accomplir au quotidien. Si vous devez exécuter chaque jour plusieurs commandes sur votre système Linux, vous pouvez stocker ces commandes dans un fichier et exécuter le script. Les exemples comprennent:
- Archivez et téléchargez tous les jours un fichier ou un dossier sur un système de stockage dans le cloud. Dropbox, Google Drive et OneDrive: quel stockage en nuage vous convient le mieux? Dropbox, Google Drive et OneDrive: quel stockage en nuage vous convient le mieux? Avez-vous changé votre vision du stockage en nuage? Les options populaires de Dropbox, Google Drive et OneDrive ont été rejointes par d’autres. Nous vous aidons à déterminer le service de stockage dans le nuage que vous devriez utiliser. Lire plus comme S3.
- Compressez les fichiers journaux qui ont tendance à grandir chaque jour.
- Récupérer les cours des actions, analyser les données récupérées et déclencher un e-mail ou un SMS lorsque certaines conditions sont remplies (prix trop élevés ou trop bas).
4. Combinaison de plusieurs commandes
En plus d'automatiser les tâches fréquentes, vous pouvez également trouver avantageux de combiner plusieurs séquences de commandes en une seule. Se souvenir d'une commande unique est beaucoup plus simple que plusieurs commandes, sans parler de l'ordre dans lequel elles doivent être exécutées.
Un exemple serait la séquence de démarrage du système d'exploitation Linux Guide de démarrage pour Linux Guide de démarrage pour Linux Un guide de démarrage pour débutants sous Linux! Vous avez probablement entendu parler de Linux, le système d’exploitation libre et à code source ouvert qui pousse Microsoft. Lire plus lui-même. Lors du démarrage, le système d'exploitation exécute un certain nombre de commandes pour que le système se trouve dans un état approprié. Ces commandes sont en fait des scripts shell qui vivent sous le /etc annuaire. Si vous jetez un coup d'œil à l'un de ces scripts shell, vous vous rendrez compte de la complexité du démarrage d'un système, que vous devrez peut-être exécuter manuellement en l'absence de scripts shell..
Ce qui suit est un exemple de script shell, / etc / profile, qui est exécuté chaque fois qu'un utilisateur se connecte. Imaginez taper ces commandes à la main!
# / etc / profile: fichier .profile à l'échelle du système pour le shell Bourne (sh (1)) # et les shell compatibles Bourne (bash (1), ksh (1), cendres (1),…). si ["$ PS1"]; alors si ["$ BASH"] && ["$ BASH"! = "/ bin / sh"]; then # Le fichier bash.bashrc définit déjà la valeur par défaut PS1. # PS1 = "\ h: \ w \ $" if [-f /etc/bash.bashrc]; puis . /etc/bash.bashrc fi else if ["'id -u'" -eq 0]; then PS1 = "#" sinon PS1 = "$" fi fi fi # Le umask par défaut est maintenant géré par pam_umask. # Voir pam_umask (8) et /etc/login.defs. if [-d /etc/profile.d]; puis pour i dans /etc/profile.d/*.sh; faire si [-r $ i]; puis . $ i fi fait non défini je fi
5. Plus facile à développer
Il est possible d'effectuer les mêmes actions qu'un script shell dans un programme standard écrit en C / C ++. Cependant, il est beaucoup plus facile d'écrire et de déboguer un script shell qu'un programme C / C ++. Spécialement pour les tâches d'administration système telles que l'exécution de commandes externes, la création et la suppression de fichiers et de répertoires, la redirection des sorties, etc..
Les programmes C / C ++ conviennent mieux à un niveau d'opération beaucoup plus bas, comme appeler des appels système, manipuler des structures de données, etc..
6. Transparence
Un script shell, en tant que fichier texte, peut facilement être visualisé pour vérifier les actions qu’il effectue. En revanche, le seul moyen de savoir ce qu’est un programme écrit dans un langage tel que C / C ++ (et compilé dans un exécutable) consiste à choisir de vous en informer ou si vous avez accès au code source. Par exemple, vous pouvez vérifier si un script shell supprime des fichiers et si vous avez besoin de ces fichiers, vous pouvez les copier dans un autre emplacement..
Il est également beaucoup plus facile de diagnostiquer les problèmes liés aux scripts shell plutôt qu'aux programmes classiques, car vous pouvez consulter le code source. Ce script échoue-t-il car un répertoire n'existe pas? Vous pouvez regarder dans le code du script et créer le répertoire (bien qu'un script shell sage devrait le vérifier et le créer pour éviter de telles erreurs).
7. Portable
Un script shell Guide rapide de Linux Bash Shell sous Windows 10 Guide rapide de Linux Bash Shell sous Windows 10 Vous pouvez maintenant exécuter Linux sous Windows. En savoir plus sur Bash sous Windows, en expliquant comment et pourquoi vous devez l’installer, en passant par des fonctionnalités cachées que vous ne connaissiez probablement pas. Read More peut être transféré vers d'autres systèmes d'exploitation Unix et de type Unix et exécuté (si le shell lui-même est présent). Même lors du transfert d'un script shell d'architectures différentes telles que x86, MIPS, Sparc, etc., les scripts shell sont beaucoup plus portables que les programmes C / C ++..
Le seul moyen de transférer et d'utiliser un programme C / C ++ sur un autre système consiste à copier le code source, à générer le programme et à tenter de l'exécuter. Même dans ce cas, il risque de ne pas fonctionner correctement si le code utilisé est spécifique à l’architecture..
Maintenant que vous avez une idée des scripts shell et de leurs nombreux avantages, ne souhaitez-vous pas les utiliser pour vos tâches? Quels problèmes avez-vous rencontrés lors de leur utilisation? Veuillez nous en informer dans les commentaires ci-dessous.
En savoir plus sur: Linux Bash Shell.