Unix / Linux - Qu'est-ce que Shells?

UNE Shellvous fournit une interface avec le système Unix. Il recueille vos entrées et exécute des programmes basés sur ces entrées. Lorsqu'un programme termine son exécution, il affiche la sortie de ce programme.

Shell est un environnement dans lequel nous pouvons exécuter nos commandes, programmes et scripts shell. Il existe différentes saveurs d'un shell, tout comme il existe différentes saveurs de systèmes d'exploitation. Chaque saveur de shell a son propre ensemble de commandes et de fonctions reconnues.

Invite Shell

L'invite, $, qui s'appelle le command prompt, est émis par le shell. Lorsque l'invite est affichée, vous pouvez taper une commande.

Shell lit votre entrée après avoir appuyé sur Enter. Il détermine la commande que vous voulez exécuter en regardant le premier mot de votre entrée. Un mot est un ensemble ininterrompu de caractères. Les espaces et les tabulations séparent les mots.

Voici un exemple simple de date commande, qui affiche la date et l'heure actuelles -

$date
Thu Jun 25 08:30:19 MST 2009

Vous pouvez personnaliser votre invite de commande à l'aide de la variable d'environnement PS1 expliquée dans le didacticiel Environnement.

Types de coquilles

Sous Unix, il existe deux principaux types de shells -

  • Bourne shell - Si vous utilisez un shell de type Bourne, le $ le caractère est l'invite par défaut.

  • C shell - Si vous utilisez un shell de type C, le caractère% est l'invite par défaut.

Le Bourne Shell comprend les sous-catégories suivantes -

  • Coquille Bourne (sh)
  • Coquille Korn (ksh)
  • Bourne Again shell (bash)
  • Shell POSIX (sh)

Les différents coques de type C suivent -

  • Coquille C (csh)
  • Coquille TENEX / TOPS C (tcsh)

Le shell Unix original a été écrit au milieu des années 1970 par Stephen R. Bourne alors qu'il était aux AT&T Bell Labs dans le New Jersey.

Bourne shell a été le premier shell à apparaître sur les systèmes Unix, il est donc appelé "le shell".

Bourne shell est généralement installé comme /bin/shsur la plupart des versions d'Unix. Pour cette raison, c'est le shell de choix pour écrire des scripts qui peuvent être utilisés sur différentes versions d'Unix.

Dans ce chapitre, nous allons couvrir la plupart des concepts Shell basés sur Borne Shell.

Scripts Shell

Le concept de base d'un script shell est une liste de commandes, qui sont répertoriées dans l'ordre d'exécution. Un bon script shell aura des commentaires, précédés de# signe, décrivant les étapes.

Il existe des tests conditionnels, tels que la valeur A est supérieure à la valeur B, des boucles nous permettant de parcourir d'énormes quantités de données, des fichiers pour lire et stocker des données et des variables pour lire et stocker des données, et le script peut inclure des fonctions.

Nous allons écrire de nombreux scripts dans les sections suivantes. Ce serait un simple fichier texte dans lequel nous placerions toutes nos commandes et plusieurs autres constructions requises qui indiquent à l'environnement shell ce qu'il faut faire et quand le faire.

Les scripts et les fonctions du shell sont tous deux interprétés. Cela signifie qu'ils ne sont pas compilés.

Exemple de script

Supposons que nous créons un test.shscénario. Notez que tous les scripts auraient le.shextension. Avant d'ajouter quoi que ce soit à votre script, vous devez alerter le système qu'un script shell est en cours de démarrage. Ceci est fait en utilisant leshebangconstruction. Par exemple -

#!/bin/sh

Cela indique au système que les commandes qui suivent doivent être exécutées par le shell Bourne. Cela s'appelle un shebang parce que le#le symbole est appelé un hachage, et le! le symbole est appelé un bang .

Pour créer un script contenant ces commandes, placez d'abord la ligne shebang puis ajoutez les commandes -

#!/bin/bash
pwd
ls

Commentaires Shell

Vous pouvez mettre vos commentaires dans votre script comme suit -

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

Enregistrez le contenu ci-dessus et rendez le script exécutable -

$chmod +x test.sh

Le script shell est maintenant prêt à être exécuté -

$./test.sh

Lors de l'exécution, vous recevrez le résultat suivant -

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

Note - Pour exécuter un programme disponible dans le répertoire courant, utilisez ./program_name

Scripts Shell étendus

Les scripts shell ont plusieurs constructions obligatoires qui indiquent à l'environnement shell quoi faire et quand le faire. Bien sûr, la plupart des scripts sont plus complexes que le précédent.

Le shell est, après tout, un véritable langage de programmation, complet avec des variables, des structures de contrôle, etc. Quelle que soit la complexité d'un script, il ne s'agit encore que d'une liste de commandes exécutées séquentiellement.

Le script suivant utilise le read commande qui prend l'entrée du clavier et l'affecte comme valeur de la variable PERSON et finalement l'imprime sur STDOUT.

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

Voici un exemple d'exécution du script -

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$