Unix / Linux - Qu'est-ce que le Shell ?

Bonjour, futurs programmeurs ! Bienvenue dans notre voyage passionnant à travers le monde des shells Unix et Linux. En tant que votre enseignant de science informatique du coin, je suis excité de vous guider à travers ce concept fondamental. Plongeons dedans !

Unix / Linux - What is Shell?

Qu'est-ce qu'un Shell ?

Imaginez que vous essayez de communiquer avec un ami qui parle une langue différente. Vous auriez besoin d'un traducteur, n'est-ce pas ? Eh bien, un shell est comme ce traducteur entre vous et le système d'exploitation de votre ordinateur. C'est un interpréteur de ligne de commande qui prend vos commandes lisibles par des humains et les traduit en quelque chose que l'ordinateur peut comprendre et exécuter.

Dans mes premiers jours d'enseignement, je disais souvent à mes élèves de penser au shell comme une palourde magique qui parle et qui vit à l'intérieur de leur ordinateur. Vous chuchotez des commandes à elle, et elle fait faire à l'ordinateur ce que vous demandez. Ce n'est pas entirely exact, mais ça a vraiment fait coller le concept !

Invite de Shell

Lorsque vous ouvrez un terminal sur votre système Unix ou Linux, vous verrez quelque chose comme ceci :

username@hostname:~$

C'est votre invite de shell. C'est comme si l'ordinateur dit : "Je suis prêt pour votre commande, ô sage utilisateur !" Reprenons :

  • username : C'est vous !
  • @ : Signifie simplement "chez"
  • hostname : Le nom de votre ordinateur
  • ~ : Votre répertoire actuel (~ signifie répertoire personnel)
  • $ : Indique que vous êtes un utilisateur régulier (ce serait # pour l'utilisateur root)

Types de Shells

Il existe plusieurs types de shells disponibles sur les systèmes Unix/Linux. C'est comme avoir différents parfums de glace - ils sont tous délicieux, mais chacun a son goût unique ! Voici quelques-uns des plus courants :

Nom du Shell Description
Shell de Bourne (sh) Le shell original d'Unix
Shell de Bourne Again (bash) Version améliorée de sh, le plus commun sur Linux
Shell C (csh) Syntaxe similaire au langage C
Shell Korn (ksh) Combinaison de caractéristiques de sh et csh
Shell Z (zsh) Version étendue de bash avec de nombreuses améliorations

Bash est le shell le plus commun que vous rencontrerez, donc nous nous concentrerons dessus pour nos exemples.

Scripts Shell

Maintenant, c'est là que la magie opère ! Les scripts shell sont comme des livres de recettes pour votre ordinateur. Au lieu de taper des commandes une par une, vous pouvez écrire une série de commandes dans un fichier et les exécuter toutes d'un coup. C'est comme apprendre à votre ordinateur un nouveau tour !

Script d'Example

Créons notre premier script shell. Nous l'appellerons hello_world.sh :

#!/bin/bash

echo "Hello, World!"
echo "Bienvenue dans le merveilleux monde du scripting shell !"
echo "Aujourd'hui, la date est $(date)"
echo "Votre répertoire actuel est $(pwd)"

Reprenons cela :

  1. #!/bin/bash : On appelle cela un shebang. Il indique au système quel interpréteur utiliser (dans ce cas, bash).
  2. echo : Cette commande affiche du texte à l'écran.
  3. $(date) et $(pwd) : Ceux-ci sont des substitutions de commandes. Ils exécutent les commandes à l'intérieur des parenthèses et insèrent la sortie dans notre instruction echo.

Pour exécuter ce script :

  1. Sauvegardez-le sous hello_world.sh
  2. Rendez-le exécutable : chmod +x hello_world.sh
  3. Exécutez-le : ./hello_world.sh

Vous devriez voir quelque chose comme :

Hello, World!
Bienvenue dans le merveilleux monde du scripting shell !
Aujourd'hui, la date est Lun Mai 15 10:30:45 PDT 2023
Votre répertoire actuel est /home/username

N'est-ce pas génial ? Vous venez de créer votre premier script shell !

Commentaires dans les Scripts Shell

Les commentaires sont comme de petites notes que vous laissez pour vous-même (ou d'autres programmeurs) dans votre code. Dans les scripts shell, les commentaires commencent par un # :

# C'est un commentaire
echo "Cela sera affiché"
# echo "Mais cela ne sera pas affiché"

Je dis toujours à mes élèves : commentez votre code comme si la personne qui le lit est un psychopathe violent qui sait où vous vivez. Des commentaires clairs peuvent sauver des vies ! (Ou au moins prévenir la frustration.)

Scripts Shell Étendus

À mesure que vous vous sentez plus à l'aise avec le scripting shell, vous pouvez créer des scripts plus complexes. Voici un exemple qui montre les variables, l'entrée utilisateur et les instructions conditionnelles :

#!/bin/bash

# Demandez le nom de l'utilisateur
echo "Quel est votre nom ?"
read name

# Saluez l'utilisateur
echo "Bonjour, $name ! Ravi de vous rencontrer."

# Demandez l'âge de l'utilisateur
echo "Combien avez-vous d'années ?"
read age

# Vérifiez si l'utilisateur est assez âgé pour voter
if [ $age -ge 18 ]
then
echo "Vous êtes assez âgé pour voter !"
else
echo "Vous n'êtes pas encore assez âgé pour voter."
years_left=$((18 - age))
echo "Vous pourrez voter dans $years_left ans."
fi

Ce script :

  1. Demande le nom et l'âge de l'utilisateur
  2. Utilise des variables pour stocker et utiliser cette information
  3. Utilise une instruction conditionnelle (if-else) pour vérifier l'âge
  4. Effectue un calcul pour déterminer les années jusqu'à l'âge de vote

Souvenez-vous, apprendre à coder est comme apprendre à faire du vélo. Au début, vous pourriez tomber quelques fois, mais avec de la pratique, vous serez bientôt en train de rouler sans problème !

J'espère que cette introduction aux shells a piqué votre curiosité. Continuez à explorer, continuez à poser des questions, et surtout, continuez à coder ! Qui sait ? Peut-être que vous enseignerez un jour la prochaine génération de programmeurs sur le monde magique des shells !

Credits: Image by storyset