Question 1Qu'est-ce qui lit la ligne tapée dans le terminal, cherche le programme portant le nom placé au début et le lance ?
Qu'est-ce qu'un environnement de développement — éditeur, terminal et environnement d'exécution
Cet article fait partie du cours Les bases de l'informatique, qui construit depuis zéro les connaissances informatiques pratiques indispensables pour programmer et faire du vibe coding.
Tu écris dans l'éditeur, tu passes le fichier depuis le terminal, et l'environnement d'exécution le lance. Des schémas montrent ces trois rôles, la façon dont le shell lit la ligne que tu tapes et l'endroit où il cherche le fichier.
Cet article porte sur l'environnement de développement.
Un environnement de développement est le nom collectif de trois logiciels : l'éditeur, le terminal et l'environnement d'exécution.
Réunir ces trois éléments dans un seul écran donne un environnement de développement intégré (IDE, Integrated Development Environment), dont Visual Studio Code, IntelliJ IDEA et Xcode sont des exemples connus.
- Ce que fait chacun des trois — l'éditeur, le terminal et l'environnement d'exécution
- Le fait que le nom du terminal change selon l'OS, et comment lire son écran
- Comment le shell lit la ligne que tu tapes, et quel fichier il cherche
- Comment l'environnement d'exécution exécute le fichier app.js qu'on lui remet, ligne par ligne depuis le haut
Qu'est-ce qu'un environnement de développement — l'éditeur, le terminal et l'environnement d'exécution
Un environnement de développement (development environment ; combinaison de logiciels servant à écrire du code source et à le faire tourner par des commandes) est un nom collectif pour trois choses, et non un logiciel unique portant ce nom.
- Tu y tapes le contenu de app.js et tu l'enregistres
- Un logiciel comme Visual Studio Code
- L'écran où tu tapes une ligne comme node app.js
- Installé avec l'OS dès le départ
- Un logiciel qui porte le nom node ou python
- Tu l'installes depuis le site officiel
- app.js — le code source que tu as écrit
- Les fichiers d'images et de configuration vont ici aussi
- Pour une autre application, tu crées un autre dossier
Les trois éléments du cadre du haut se réutilisent une fois installés.
La seule chose que tu crées à chaque fois est un dossier comme my-app, dans le cadre du bas.
Un éditeur n'est pas qu'un écran où écrire du texte : il peut afficher la liste des fichiers et le terminal côte à côte sur le même écran.
Quand une procédure parle d'« éditeur de code » ou d'« IDE », tu peux considérer que c'est la même chose.
- Les fichiers contenus dans my-app y sont listés
- Un clic sur app.js l'ouvre à droite
- Le contenu de app.js apparaît ici
- Le fichier ne change pas tant que tu n'enregistres pas
- Tu peux taper node app.js ici
- La même chose qu'un terminal ouvert à part
Les trois logiciels sont reliés et tournent à l'intérieur d'un seul ordinateur.
Le cadre entier est un seul ordinateur, et les trois se partagent les rôles à l'intérieur.
L'éditeur va jusqu'à la création du fichier ; c'est l'environnement d'exécution qui le lance.
Le terminal est le point d'entrée par lequel tu dis à cet environnement d'exécution d'exécuter ce fichier, et le résultat s'affiche dans ce même terminal.
Un environnement de développement est un ensemble de trois logiciels
Un environnement de développement, c'est le nom donné à trois choses réunies : écrire, taper, exécuter.
L'éditeur sert à écrire, le terminal à taper, l'environnement d'exécution à exécuter, et une fois ces trois logiciels installés tu les réutilises pour l'application suivante.
Le terminal — « Terminal » sur Mac, « Invite de commandes » sur Windows
Le terminal (terminal ; logiciel d'écran où tu tapes des commandes en texte et reçois les résultats en texte) est installé avec l'OS dès le départ.
Son nom, en revanche, change selon l'OS.
Les noms diffèrent, mais tous se présentent de la même façon.
Tu tapes une ligne dans un écran où il n'y a que du texte, tu appuies sur Entrée, et le résultat apparaît sur la ligne juste en dessous.
- Des symboles comme $, # ou >
- Le nom du dossier où tu te trouves apparaît souvent juste avant
- Tu tapes le texte à droite de l'invite
- Rien ne se passe tant que tu n'appuies pas sur Entrée
- Les résultats comme les erreurs apparaissent en texte sur les lignes du dessous
- Une fois l'affichage terminé, l'invite suivante réapparaît
Sur un écran réel, tu tapes une ligne à droite du symbole de début de ligne, comme ci-dessous, et le résultat revient en dessous.
pwd renvoie l'emplacement du dossier où tu te trouves, et ls renvoie ce qu'il contient.
$ pwd
/home/you/my-app
$ ls
app.js package.json
Le terminal est un écran servant à taper du texte et à afficher des résultats.
Ce qui lit réellement la ligne tapée et décide quel programme lancer, c'est le shell (shell ; programme qui lit la ligne tapée, cherche le programme portant le nom placé au début et le lance) qui tourne à l'intérieur de cet écran.
bash et zsh, que tu croises dans les procédures, sont des noms de shells.
Le shell traite la ligne tapée en deux parties : le début et la suite.
Le shell cherche un programme d'après le node placé au début, et remet le fichier app.js qui suit à ce programme.
Il cherche alors app.js uniquement dans le dossier que le shell a ouvert, ce qu'on appelle le répertoire courant (current directory ; le dossier que le shell a ouvert en ce moment).
Son nom apparaît souvent juste avant l'invite (prompt ; symbole indiquant que la saisie est acceptée) en début de ligne.
- my-app s'affiche en début de ligne dans le terminal
- app.js est ici, donc node app.js fonctionne
- Même si app.js est ici, node app.js ne fonctionne pas
- Après cd my-app, c'est le dossier du cadre du haut qui devient le dossier courant
Le même node app.js donne un résultat différent selon le dossier où tu te trouves.
app.js est placé dans my-app.
| Le dossier où se trouve le shell | Où app.js est cherché | Résultat de node app.js |
|---|---|---|
| my-app | Dans my-app → trouvé | app.js s'exécute |
| Téléchargements | Dans Téléchargements → introuvable | Cannot find module |
| Après cd my-app | Dans my-app → trouvé | app.js s'exécute |
Si les procédures placent cd avant une commande, c'est pour changer cet endroit de recherche.
Quand tu écris une destination après cd, la ligne suivante s'exécute dans le dossier où tu es arrivé.
$ cd my-app
$ pwd
/home/you/my-app
Ce qui se produit dépend de ce que tu as écrit au début de la ligne tapée.
Ce qui précède est le minimum pour lire les commandes qui apparaissent dans les procédures.
Pour aller plus loin, le cours Linux pour débutants propose des exercices où tu tapes des commandes dans un terminal ouvert dans le navigateur.
Si tu commences par Chemins et déplacement entre répertoires, tu retrouves directement la suite de ce qui est dit ici sur cd.
C'est le shell qui lit la ligne tapée
Ce qui lit la ligne tapée n'est pas l'écran, mais le shell qui tourne à l'intérieur.
Quand ça ne marche pas, distingue les deux cas : command not found signifie que le nom du début n'a pas été trouvé, et Cannot find module que le fichier qui suit n'est pas dans le dossier où tu te trouves.
L'environnement d'exécution — il exécute le contenu de app.js depuis le haut
L'environnement d'exécution auquel le shell remet app.js lit son contenu ligne par ligne depuis le haut et l'exécute dans l'ordre écrit.
Si tu lances les trois lignes suivantes avec node app.js, seules deux lignes s'affichent.
console.log("Bonjour");
const price = 1200;
console.log(price + " yens");
Seules les lignes qui demandent un affichage apparaissent à l'écran.
L'environnement d'exécution ne fait que lire ligne par ligne depuis le haut
Tout ce que fait l'environnement d'exécution, c'est lire app.js ligne par ligne depuis le haut et faire ce qui y est écrit.
Seules les lignes qui demandent un affichage mettent du texte à l'écran, et la seule chose qu'il lit est le fichier app.js que le shell lui a remis.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Tu as tapé node app.js mais un message dit que app.js est introuvable. Que vérifies-tu en premier ?
Question 3Quand tu tapes node app.js dans le terminal, qu'est-ce qui exécute le contenu de app.js depuis le haut ?