Introduction au shell, à Bash et à l’application Terminal de Mac

Cette première leçon va être l’occasion pour nous de définir certains termes clefs comme les termes “shell”, “Bash” ou le “terminal” et de comprendre l’intérêt d’utiliser une interface en ligne de commande plutôt qu’une interface graphique.

 

Shell, GUI et CLI

Un shell (“coque” en français) est une interface système. Le shell nous permet d’accéder à notre système d’exploitation (OS) et d’interagir avec lui. En termes simples, le shell est un programme qui reçoit des commandes qu’on va écrire depuis le clavier et qui les passe au système d’exploitation afin qu’elles soient exécutées.

Le terme shell provient d’une analogie : celle du noyau et de la coque de noix. L’idée ici est qu’un OS est composé de deux parties : le shell (la coque) et le kernel (le coeur). Pour accéder au coeur de la noix, c’est-à-dire à la partie comestible, il faut passer par la coque. De même, pour envoyer nos commandes au coeur de notre OS afin qu’il les exécute nous devons passer par le shell.

Un shell, c’est-à-dire à proprement parler la coque logicielle d’un système d’exploitation peut se présenter sous deux formes : soit une interface en ligne de commande, soit une interface graphique utilisateur. Notez cependant que la plupart des gens utilisent le terme “shell” pour désigner l’interface en ligne de commande uniquement.

L’interface graphique utilisateur ou GUI pour “Graphical User Interface”) est ce que vous voyez lorsque vous utilisez votre ordinateur de manière “classique”. Elle est composée d’un écran d’accueil, d’un bureau, d’icônes pour représenter les fichiers et les dossiers et de champs de recherche, de filtres, etc.

La spécificité des GUI est de présupposer une utilisation de la souris comme moyen premier d’interaction avec l’ordinateur. La plupart des gens utilisent leur interface graphique utilisateur pour effectuer différentes opérations avec leur OS, notamment car les GUI sont aujourd’hui puissantes et bien faites et surtout très intuitives.

Une interface en ligne de commande ou CLI pour “Command Line Interface” est beaucoup plus austère qu’une GUI et peut paraitre primitive par rapport à une interface graphique. Celle-ci se présente sous la forme d’une grande boite noire dans laquelle l’utilisateur va taper des commandes (généralement une commande par ligne) pour interagir avec son OS.

Dans une CLI, il n’y a aucun usage de la souris : tout se fait via l’entrée de commandes tapées au clavier. Nous allons voir ensemble durant ce cours que les CLI sont en fait très puissantes et vont nous permettre de réaliser des opérations complexes beaucoup plus rapidement qu’avec une GUI.

Les shells CLI exigent donc que l’utilisateur connaisse certaines commandes et leur syntaxe et comprenne les concepts relatifs au langage de script spécifique au shell utilisé (comme Bash pour le shell de Mac OS par exemple).

 

Bash et PowerShell

Le shell est la coque logicielle d’un système d’exploitation. Nous allons utiliser le shell pour envoyer des instructions à notre ordinateur.

Lorsqu’on utilise une interface en ligne de commandes, nous allons devoir envoyer nos commandes sous un certain format compréhensible par notre OS. Ce “format” va en fait être un langage de programmation spécifique au shell utilisé. On parle aussi par simplicité de “type de shells”.

Il existe de nombreux shell Unix différents. Le plus utilisé est Bash (“Bourne Again SHell”). Bash est notamment le shell utilisé par défaut par les systèmes OS X (Mac, vrai jusqu’à la mise à jour Calalina prévue fin 2019) et il sera notre langage de commande de référence pour ce cours.

L’équivalent de Bash pour Windows est PowerShell. Ce cours est centré autour de Bash et nous ne parlerons donc pas de PowerShell. La plupart des commandes de base qu’on va pouvoir taper dans le Terminal (Mac) ou dans l’invite de commande (Windows) possèdent cependant une syntaxe similaire.

 

Terminal et invite de commande

Le shell est accessible depuis une console. Différents programmes permettent d’émuler cette console selon que l’on soit sous Mac ou sous Windows.

Le Terminal est l’interface de ligne de commande de Mac. Nous allons utiliser le Terminal pour envoyer nos commandes à notre OS et pour communiquer avec lui. Pour accéder au Terminal, vous devez vous rendre dans votre dossier Application puis Utilitaires et enfin Terminal.

L’invite de commande ou “command prompt” ou CMD est l’interpréteur de ligne de commande Windows. Nous allons utiliser l’invite de commande pour envoyer nos commandes à notre OS et pour communiquer avec lui. Pour accéder à l’invite de commande, tapez simplement CMD ou commande dans votre barre de recherche Windows.

 

Découverte du Terminal Mac

Lorsqu’on ouvre le Terminal, une fenêtre noire ou blanche s’ouvre. Cette fenêtre contient un invite de commande, c’est-à-dire une ligne nous indiquant que le shell attend qu’on lui passe des commandes.

Le langage en ligne de commande shell Bash et le terminal

Par défaut, cette ligne contient le nom de votre machine suivi de deux points suivi du caractère tilde (~) suivi de votre nom d’utilisateur suivi du signe dollar ($).

Le tilde est une abréviation pour indiquer qu’on se situe actuellement dans le dossier “home”, c’est-à-dire dans le répertoire de base lié à notre nom d’utilisateur.

Le signe dollar indique qu’on est connecté en tant qu’utilisateurs classiques avec des privilèges normaux. On va également par la suite pouvoir se connecter en tant que “super utilisateur”. Un super utilisateur dispose de tous les privilèges sur une machine. Attention : ce statut peut être dangereux puisqu’on va pouvoir supprimer définitivement n’importe quel fichier de notre système en tant que super utilisateur.

Lorsque vous êtes connecté en tant que super utilisateur, le dernier signe de votre invite est # plutôt que $.

 

Les commentaires

En programmation, un commentaire est une indication qui ne va pas être exécutée avec le reste du programme mais qui va être ignorée par la machine.

Les commentaires sont utiles pour indiquer ce que fait telle ou telle instruction et nous permettent de documenter notre code, ce qui est très intéressant notamment lorsqu’on souhaite partager notre code avec d’autres développeurs.

Dans le terminal, nous utilisons le signe # pour indiquer le départ d’un commentaire. Tout ce qui se situe après ce signe sur la ligne sera ignoré par le Terminal.

Les commentaires bash

Ici, notre première ligne consiste uniquement en un commentaire. Notre deuxième ligne elle contient notre première commande : la commande pwd suivie d’un commentaire pour expliquer ce qu’elle fait. Nous allons reparler de pwd dès la prochaine leçon.

Laisser un commentaire