Archi OS

Identification

Infoforall

7 - Système d'exploitation


Vous savez maintenant qu'un ordinateur est composé

  • D'une CPU (central processing unit) comportant notamment
    • UAL (unité arithmétique et logique),
    • UC (unité de contrôle),
    • de registres (de petites mais très rapides mémoires),
    • et d'autres choses encore...
  • D'une mémoire rapide volatile (qui s'efface à l'arrêt, on parle de mémoire vive ou de RAM)
  • D'une mémoire rapide non volatile (rapide) (qui ne s'efface pas à l'arrêt, on parle de mémoire morte ou de ROM)
  • De mémoires lentes de stockage gros volume (dique dur, clé USB...)
  • De périphériques divers et variés (écran, clavier, souris, écran tactile...)

Et le système d'exploitation dans tout ça ?

Evaluation ✎ : questions 03-04-07-12-15-21

Documents de cours :

1 - Démarrage

Que se passe-t-il au démarrage de votre ordinateur ?

L'ordinateur commence par charger un petit programme qui se nomme le chargeur d'amorçage en français ou bootloader en anglais.

Ce programme se charge simplement de charger en mémoire vive un autre programme, qui se trouve être ... le système d'exploitation. En anglais, on parle d'operating system et l'acronyme est donc OS.

Ce système du bootloader permet notamment d'installer plusieurs systèmes d'exploitation sur un ordinateur et de faire ainsi ce qu'on nomme du dual-boot.

Le bootloader va donc aller chercher les parties fondamentales du système d'exploitation dans une mémoire non volatile et va placer le tout dans la mémoire vive de l'ordinateur. Cette partie fondamentale de l'OS se nomme le noyau en français et kernell en anglais.

Le bootloader provoque la mise en mémoire vive du noyau de l'OS
Le bootloader provoque la mise en mémoire vive du noyau de l'OS

Bien. La RAM contient maintenant ce programme (ou plutôt cet ensemble de programmes). Mais à quoi servent-ils ?

2 - Rôles du système d'exploitation

Les systèmes d'exploitation font office de tampon entre les programmes et le matériel technologique physique. Ils permettent :

  1. de garantir l'intégrité du système en vérifiant qu'un programme ne puisse pas provoquer d'erreur fatal pour le système dans son ensemble
  2. de faire communiquer logiciels et périphériques sans que le logiciel n'ai besoin de connaitre exactement le matériel sur lequel il agit
  3. de gérer l'organisation des ressources disponibles sur l'ordinateur

En réalité, les trois sont intimement liés comme nous allons le voir.

Il faut voir le système d'exploitation comme le garant du bon fonctionnement du matériel. Comme il ne peut pas savoir de lui-même comment fonctionne chacun de ses périphériques, certains des programmes qui le compose sont ce qu'on nomme des pilotes / drivers. Comme leur nom l'indique, les programmes-pilotes permettent de piloter (commander et surveiller) les périphériques.

Avec la généralisation du plug-and-play qui se charge de l'installation du pilote ou des OS comme Linux qui embarque la plupart des pilotes libres, pas trop besoin de ce soucier des pilotes du système d'exploitation. Mais ils sont là et font le job.

Et comment fait le système d'exploitation pour permettre d'interagir avec le matériel ?

Il permet d'interagir avec le matériel à l'aide d'appels systèmes, des commandes qu'il reçoit et qu'il exécute lui-même. De cette façon, le système d'exploitation est le seul à interagir réellement avec le matériel.

Imaginons l'une des fonction que vous avez utilisé de nombreuses fois : vous voulez supprimer un fichier présent sur votre clé USB. Un programme va alors envoyer une commande (peut-être nommée remove, delete, del ou encore rm...) au système d'exploitation :

  • Si le programme est une interface graphique : clic-droit sur l'icone, sélection de supprimer
  • Si le programme est une invite de commande : en tapant juste l'instruction (en fonction de l'OS) suivi du nom du fichier
  • Si le programme est un programme réalisé par vos soins : en utilisant une instruction dans un programme Python, C ou autre
Actions de l'OS
Dans les 3 cas, l'action interne est la même !

En réalité, dans les trois cas, le système d'exploitation va réagir de la même manière :

  • Il reçoit la demande
  • Il vérifie la validité : le programme a-t-il des droits suffisants pour détruire ce fichier ? Ce fichier est-il encore utilisé par un autre programme ? ...
  • Il utilise les pilotes qui vont bien pour réaliser l'ordre, si celui-ci est bien valide.

On notera que les programmes de gauche n'ont pas besoin de connaître quoi que ce soit sur la clé USB, à part son identifiant. C'est l'OS qui va utiliser le driver de la clé pour savoir comment la commander.

Les systèmes d'exploitation dispose donc d'un ensemble d'appels systèmes basiques permettant de gérer correctement les périphériques.

Mais, ils ne font pas que ça. Ils gèrent également les CPU, la mémoire... Bref, les ressources.

Imaginons que votre carte mère soit 4 coeurs. 4 coeurs donc 4 processeurs. On peut donc faire tourner 4 programmes en même temps.

Trop de programmes pour 4 processeurs
4 processeurs mais 7 programmes !

Et encore, je n'ai mis que les programmes que j'ai lancé volontairement. Il y a aussi les programmes liés à mon interface graphique, ceux de mon système d'exploitation, et une multitude multiple de programmes qui tournent en tâche de fond.

Quel est le rôle de l'OS là dedans ? Repartir la ressource CPU entre les programmes, et faire de même avec la mémoire vive !

Et oui, en plus des CPU, il faut aussi partager la mémoire vive, qui n'est pas illimitée non plus.

Du coup, l'OS passe son temps à donner la main à un programme, à transférer les données du programme de la mémoire vers la mémoire vive, à vider une partie de la mémoire vive en mémoire s'il faut faire un peu de place pour le nouvel arrivant, à accéder aux demandes d'appels système ect...

OS c'est pas un métier, c'est une vocation. Jamais un instant de calme. Il s'agit du chef d'orchestre de votre ordinateur. Un programme complexe composé de plusieurs autres programmes et en interaction avec tous les autres programmes tournant sur la machine (et sur le réseau, si on tient compte de la gestion de TCP/IP !)

Voilà pour les idées principales d'introduction.

Rôles du système d'exploitation

L'OS (operating system, système d'exploitation)

  • Fait interface entre le matériel et les autres programmes : l'OS commande les périphériques via les pilotes et accepte (ou pas) d'exécuter les appels systèmes que les programmes lui demandent d'effectuer.
  • Fait interface entre l'ordinateur et les réseaux extérieurs, il gère donc les cartes réseaux.
  • Partage les ressources de l'ordinateurs entre les différents programmes :
    • Puissance de calculs : il gère la répartition d'utilisation des processeurs entre les différents programmes qui tournent sur l'ordinateur
    • Mémoire vive : il s'occupe de fournir des espaces de mémoire réservée aux applications (on parle de mémoire virtuelle) : cela évite aux applications d'écraser la mémoire des autres
Rôles de l'OS
Schéma global de la place de l'OS dans l'ensemble de la structure

Les premiers systèmes d'exploitation ne comportaient pas d'interface graphique. On passait donc nécessairement par des commandes textuelles via une console d'interfacage.

Nous allons voir aujourd'hui des commandes qui provoquent quelques appels-systèmes de ce type.

3 - Accès à un terminal Linux

Comme vous n'avez pas nécessairement une version de Linux sous la main, vous allez travailler avec votre OS et avec une serveur distant permettant d'accèder à un terminal Linux.

Trois solutions donc :

  1. Option A : Vous avez déjà une version exploitable de Linux. Bravo. + 12 points.
  2. Option B : Vous voulez bien vous créer un compte chez un hébergeur Web et je vais alors vous montrer comment contrôler votre configuration.
  3. Option C : Vous ne voulez pas créer de compte (et c'est votre droit), vous vous propose un site permettant néanmoins de taper quelques commandes dans un terminal. Mais c'est lent.

Les trois sections sont à lire. La fiche de connexion à Alwaysdata vous permettra de vous créer un compte chez un hébereur pour réaliser votre première page réellement accessible sur Internet. L'option C vous permettra d'un peu travailler si vous n'avez pas accès à vos mails. Mais vous ne pourrez pas réellement faire tourner les scripts ou autres. Trop lent.

Option a - Votre installation Linux

Bon, si vous avez accès à votre propre installation Linux, il est probable que vous sachiez déjà où se trouve votre terminal.

Sous Linux-Ubuntu, vous le trouverez dans les applications. Son icône est un petit écran noir.

Icône du terminal

Sinon, le raccourci clavier est  CTRL+ALT+T .

Si vous avez une version plus purement Linux-Debian, vous pouvez accéder à l'un des terminaux avec par exemple  CTRL+ALT+F3 ,  CTRL+ALT+F4 ... Ca fonctionne bien entendu aussi sur Ubuntu puisqu'il est basé sur la Debian.

Bref, en fonction de votre variation de Linux, vous devriez être capable de trouver un vrai terminal ou une émulation graphique d'un terminal : ce qu'on nomme une console.

Résultat :

Exemple de terminal

Cette console est donc bien une application graphique (il y a des icônes cliquables et une fenêtre aux dimensions visibles) qui émule un terminal.

rv@rv-HP2:~$ _

On voit que l'utilisateur se nomme rv et qu'il est connecté (@) sur un ordinateur qui se nomme rv-HP2.

Le caractère tilde ~ veut dire que la console pointe pour l'instant à la racine du répertoire personnel de l'utilisateur.

Enfin le signe dollar $ est l'invite de commande. Avec Windows, c'est le signe mathématique supérieur >.

01° Sur l'exemple ci-dessous :

totolasticot@monordi:/bin$ _

Comment se nomme l'utilisateur ?

Sur quel poste est-il connecté ?

Sur quel répertoire pointe le terminal pour l'instant ?

...CORRECTION...

Il s'agit de l'utilisateur totolasticot.

Il est connecté sur la machine monordi.

Et le terminal pointe à ce moment sur le répertoire /div.

02° Voici un apercu de deux appels systèmes :

  • La commande whoami (qui suis-je en français) affiche le nom de l'utilisateur ayant lancé cette commande.
  • La commande pwd (print working directory, affiche le répertoire courant en français) provoque l'affichage du répertoire sur lequel pointe actuellement ce terminal.
rv@rv-HP2:~$ whoami rv rv@rv-HP2:~$ pwd /home/rv

Question 1 : les réponses fournies sont-elles bien compatibles avec l'étude de la ligne décrivant l'utilisateur ?

Question 2 : à quel endroit se trouve le répertoire personnel de l'utilisateur, celui symbolisé par le tilde ?

...CORRECTION...

Oui, il s'agit de bien l'utilisateur rv.

Et le terminal pointe bien à ce moment sur le répertoire /home/rv qui est le répertoire personnel de l'utilisateur. Répertoire qu'on représente plus simplement par ~.

Option B - Passer par un hébergeur

Passer par un hébergeur peut être un bon choix puisqu'à partir de là, vous aurez un compte actif gratuit et vous pourrez commencer à y placer des pages et applications Web qui seront vraiment accessibles depuis un accès Internet. Pour l'instant, vous n'avez créer que des pages Web locales à votre ordinateur.

Je vous présente ici une manière d'accéder à une telle console en passant par l'hébergeur alwaysdata qui provoque des interfaces très configurables et qui permet surtout d'installer plein de choses basées sur Python.

Si vous choississez cette solution (ce n'est pas long, il vous faut juste un e-mail valide), directement la fiche qui va bien.

ACCESS SSH VIA LE WEB CHEZ ALWAYSDATA

✎ 03° Vous avez le résultat d'une connexion réussi en SSH avec alwaysdata ci-dessous

testprofad@ssh1:~$ _

Comment se nomme l'utilisateur ?

Sur quel poste est-il connecté ?

Sur quel répertoire pointe le terminal pour l'instant ?

✎ 04° Observer les réponses fournies lors de l'utilisation du terminal. Répondre ensuite aux questions (les explications se trouvent question 2 si vous les avez zappé...)

testprofad@ssh1:~$ whoami testprofad testprofad@ssh1:~$ pwd /home/testprofad

Question 1 : les réponses fournies sont-elles bien compatibles avec l'étude de la ligne décrivant l'utilisateur ?

Question 2 : à quel endroit se trouve le répertoire personnel de l'utilisateur, celui symbolisé par le tilde ?

Option C - Passer par un site proposant ce service

Certains sites proposent de simuler un compte sur leur propre machine.

On en trouve plusieurs. Par exemple, ce site https://www.offidocs.com/index.php/, qui propose cet accès, en installant quelques cookies sur votre ordinateur en lien avec google...

Si vous cliquez sur le lien, vous allez aboutir à une page vous montrant la mise en place d'une machine virtuelle Linux.

Il faut suffit d'appuyer sur le bouton ENTER et de fournir un nom d'utilisateur.

Après la multitude de lignes descriptives, on arrive enfin à ceci :

~ $ whoami user ~ $ pwd /home/user ~ $ _

05° comment se nomme ici l'utilisateur ? A quel endroit se trouve le répertoire personnel de l'utilisateur, celui symbolisé par le tilde ?

...CORRECTION...

Il s'agit juste de user.

Le terminal pointe bien à ce moment sur le répertoire /home/user qui est le répertoire personnel de l'utilisateur. Répertoire qu'on représente plus simplement par ~.

Où se situe votre terminal dans la structure de l'ordinateur ? Ce n'est pas le noyau (kernell), c'est un programme juste au dessus. Comme une coquille autour du noyau. Et comment dit-on coquille en anglais ? Shell.

Le Shell constitue donc un programme d'interface qui permet à l'utilisateur de communiquer avec le noyau.

Utilisateur - Shell - Kernell

Et il existe plusieurs types de programmes jouant ce rôle d'interface textuelle entre l'utilisateur et le noyau : CSH, ZSH, sh, bash, dash, ash ...

Maintenant que vous avez au moins une solution valide, passons aux choses sérieuses.

4 - Inspection de contenu

Le programme de NSI vous demande de connaître les commandes de base. Il ne reste plus qu'à les voir à travers différents exemples d'utilisation.

Dans cette partie, nous allons voir comment naviguer dans les OS Linux, dérivés des systèmes Unix. La plupart des commandes vont donc fonctionner également si vous avez un Mac puisque le MacOS dérive également des Unix.

A - Voir le contenu d'un répertoire

Commençons par voir comment on peut regarder le contenu du répertoire courant, le répertoire sur lequel le terminal pointe.

Il faut utiliser la commande  ls  qui veut dire list. Cela permet d'obtenir la liste des choses contenues dans le répertoire.

Que peut contenir un répertoire ? des fichiers et d'autres répertoires.

Exemple chez alwaysdata :

06° Suivre les exemples ci-dessous en utilisant les commandes sur votre propre système au fur et à mesure. Bien entendu, les réponses ne seront pas les mêmes.

  • Commençons par juste voir ce que contient le répertoire courant avec la commande  ls . On voit qu'il contient deux répertoires nommés admin et www :
  • testprofad@ssh1:~$ ls admin www
  • On peut rajouter des options courtes à une commande en utilisant un tiret et une lettre représentant l'option. Ici  ls -a  veut dire d'afficher le contenu du répertoire, Pourquoi a ? Pour all. On affiche donc également les fichiers ou répertoires cachés :
  • testprofad@ssh1:~$ ls -a . .. admin .bash_history www

      On observe donc qu'il existe plusieurs choses cachées dans ce répertoire :

      • Un simple fichier nommé .bash_history
      • Un répertoire nommé .
      • Un répertoire nommé ..
  • Il existe également des options plus longues qu'une simple lettre à taper. Dans ce cas, on doit placer deux tirets devant le nom de l'option. A titre d'exemple, voici la version longue de la commande all.
  • testprofad@ssh1:~$ ls --all . .. admin .bash_history www
  • Et comment est-ce que je sais que ce sont des fichiers ou des répertoires ? C'est facile, il y a la couleur. Sinon, il suffit de lui demander avec l'option  -l  qui fournit un plus long descriptif du contenu.
  • testprofad@ssh1:~$ ls -l total 0 drwxr-xr-x 5 root root 69 May 31 12:46 admin drwxr-xr-x 2 testprofad testprofad 24 May 31 12:46 www

      Chaque objet présent est décrit par une ligne que nous détaillerons dans l'activité suivante. Aujourd'hui, je ne m'intéresse qu'au premier caractére :

      • C'est un  d  s'il s'agit d'un répertoire
      • C'est un  -  s'il s'agit d'un fichier

      La première ligne, total, fournit le nombre de blocs-mémoires utilisés par le contenu visible du répertoire. Chaque bloc-mémoire représente un nombre précis d'octets en fonction du système : 512, 1024 ou plus... Ne rentrons pas dans les détails pour l'instant.

  • Pour observer le type des objets cachés, il suffit donc d'utiliser les deux options courtes à la fois en les plaçant derrière le même tiret :
  • testprofad@ssh1:~$ ls -la total 4 drwxrwx--- 4 root testprofad 51 May 31 18:29 . drwxr-x--x 826 root root 0 May 31 22:06 .. drwxr-xr-x 5 root root 69 May 31 12:46 admin -rw------- 1 testprofad testprofad 18 May 31 18:29 .bash_history drwxr-xr-x 2 testprofad testprofad 24 May 31 12:46 www

      C'est l'avantage des options courtes. On peut les regrouper pour obtenir un effet global. Par exemple, si on veut la taille mémoire en octets plutôt qu'en blocs, il suffit de rajouter l'option  h . Ci-dessous, vous pourrez constater que le contenu affiché occupe 4 ko.

      testprofad@ssh1:~$ ls -lah total 4.0K drwxrwx--- 4 root testprofad 51 May 31 18:29 . drwxr-x--x 823 root root 0 May 31 22:27 .. drwxr-xr-x 5 root root 69 May 31 12:46 admin -rw------- 1 testprofad testprofad 18 May 31 18:29 .bash_history drwxr-xr-x 2 testprofad testprofad 24 May 31 12:46 www
  • Nous n'allons pas faire le tour de toutes les options de la commande ls. Mais comment obtenir de l'aide si l'accès Internet est en rade ? En utilisant l'option longue  --help .
  • testprofad@ssh1:~$ ls --help

B - Voir le contenu d'un fichier

Comme nous sommes en mode texte, on ne peut pas faire ce que vous avez l'habitude de faire : un double-clic sur le fichier.

  • Pour afficher sur votre terminal le contenu d'un fichier, on peut utiliser la commande cat, pour concaténation. Comme la concaténation des strings : on rajoute l'entrée fournie dans une sortie (un fichier, un terminal, une connexion réseau...) Regardons par exemple ce que contient le fichier caché .bash_history ou .ash_history en fonction de votre système.
  • Utilisation de cat sans sortie définie
    Commande cat avec .bash_history en entrée mais rien d'indiqué en sortie
  • L'argument fourni juste après la commande correspond à l'entrée (ce que nous voulons lire). Par défaut, le contenu lu va être envoyé sur la sortie par défaut, le terminal.
  • testprofad@ssh1:~$ cat .bash_history ls ls -a ls --all ls -l ls -la ls -lah ls --help

      Comme vous pouvez le voir, ce fichier contient donc l'historique de toutes les commandes qui ont été utilisé sur le terminal. C'est très pratique dans le cadre d'un service en ligne : vous avez installé quelque chose et plusieurs mois plus tard, vous voulez faire pareil sans vous souvenir de la démarche à suivre. Il suffit d'aller voir l'historique.

    Comme vous pouvez le voir, le print de Python provoquait sans que vous le sachiez un appel système.

C - Création rapide d'un fichier

On peut créer très facilement un fichier depuis le terminal en utilisant encore une fois la commande cat. Cette fois, nous allons indiquer une sortie : le fichier de destination !

  • On l'indique avec le signe  > . Par contre, l'entrée va provenir de la console : c'est vous qui allez taper le texte. On ne donnera donc rien en indication d'entrée et il choisira l'entrée par défaut, à savoir le terminal.
  • Utilisation de cat sans entrée définie
    Commande cat avec la sortie orientée vers un fichier
  • Voici un exemple de commandes où on crée un fichier et on le lit juste après. On notera que si le fichier n'existe pas au préalable, il va être créé. Si le fichier existe déjà, son contenu va être remplacé, attention. Pour passer à la ligne, on appuie sur ENTREE et pour sortir du mode "saisie", on appuie simultanément sur  CTRL + C .
  • testprofad@ssh1:~$ cat > fichier_magique Bonjour. Je viens de créer mon premier fichier texte ^C <-- Ceci n'est pas à taper : c'est CTRL+C pour sortir testprofad@ssh1:~$ cat fichier_magique Bonjour. Je viens de créer mon premier fichier texte

    Attention à bien vous placer dans un répertoire où vous avez les droits : ne restez pas à la racine du serveur !

    Votre répertoire personnel ~ semble un bon choix

  • On retrouve donc un effet proche de la fonction input de Python.
  • Le plus beau dans l'histoire, c'est qu'on peut rajouter des choses à la suite, puisque c'est le principe de la concaténation. Par contre, il faut lui dire de ne pas écraser le contenu initialement présent en utilisant On l'indique avec deux fois signes  >> . Sinon, on remplace, point barre.
  • testprofad@ssh1:~$ cat >> fichier_magique Et encore une ligne de plus, rajouté bien après les premières ! ^C testprofad@ssh1:~$ cat fichier_magique Bonjour. Je viens de créer mon premier fichier texte Et encore une ligne de plus, rajouté bien après les premières !

✎ 07° Créer deux fichiers comportant deux lignes, nommées fichier1 et fichier2.

Placer dans la copie numérique les codes nécessairement à cette création.

Il ne s'agit pas de Python mais bien d'un code Bash : le code sur votre copie markdown devra donc commencer par cela :

#!bash

08° A votre avis, que va contenri fichier3 après les commandes suivantes ?

testprofad@ssh1:~$ cat fichier1 Je suis le contenu du fichier 1 Pas grand chose à dire... testprofad@ssh1:~$ cat fichier2 Moi, je suis le deuxième. Je n'ai pas pour autant plus de choses à dire. testprofad@ssh1:~$ cat fichier1 > fichier3 testprofad@ssh1:~$ cat fichier2 >> fichier3 testprofad@ssh1:~$ cat fichier3 ??? on obtient quoi ???

...CORRECTION...

La première commande cat fichier1 > fichier3 place le contenu du fichier1 dans un nouveau fichier3 en écrasant l'éventuel contenu précédent puisqu'il n'y a qu'un seul signe supérieur.

Par contre, dans la deuxième concaténation, cat fichier2 >> fichier3, on précise bien qu'on ne veut pas écraser le contenu. On va donc placer le contenu de fichier2 à la suite du contenu déjà présent.

On obtient donc cela :

testprofad@ssh1:~$ cat fichier3 Je suis le contenu du fichier 1 Pas grand chose à dire... Moi, je suis le deuxième. Je n'ai pas pour autant plus de choses à dire.

Avec Linux (et Unix), les répertoires et fichiers cachés sont simplement ceux dont le nom commence par un point.

Nous verrons par contre dans la prochaine activité qu'on peut réellement totalement rendre invisible et innaccessible certains répertoires et fichiers pour certains utilisateurs. C'est l'une des puissances d'Unix par rapport à MS-DOS.

5 - Se déplacer dans l'arborescence

S'il y a des répertoires, c'est bien qu'on doit pouvoir s'y "rendre". C'est ce que nous allons voir.

Voici l'arborescence visible que nous avions lorsqu'on avait fait une liste de contenu lorsque le terminal pointait sur le répertoire personnel chez alwaysdata :

testprofad@ssh1:~$ ls admin www

Pour rappel, ce répertoire personnel, noté par un tilde  ~  possède lui même une adresse dans la structure globale du serveur :

testprofad@ssh1:~$ pwd /home/testprofad

Cela veut dire que les codeurs du terminal aurait pu les demander d'afficher la ligne suivante plutôt :

testprofad@ssh1:/home/testprofad$ _

Comme nous passons souvent beaucoup de temps dans ce répertoire spécifique à l'utilisateur, une version plus courte ~ a été adoptée.

Si on devait représenter cela sous la forme d'une vraie structure de type dossiers imbriqués les uns dans les autres, ça donnerait donc ceci :

📁 / (la racine de l'ordinateur)

📁 home

📁 testprofad

📁 admin

📄 fichier_magique

📄 fichier1

📄 fichier2

📄 fichier3

📁 www

D - Changer de répertoire (adresse relative)

  • Pour changer de répertoire, il faut utiliser la commande cd pour change directory en anglais. Si vraiment j'ai besoin de traduire ça, ben...
  • Il y a deux façons d'utiliser la commande : on peut lui fournir une adresse relative au répertoire courant (celui sur lequel pointe le terminal) ou on peut lui fournir une adresse absolue sur l'ordinateur.
  • Pour "rentrer" dans l'un des répertoires visibles depuis le répertoire courant, il suffit de taper son nom derrière cd !
  • testprofad@ssh1:~$ ls admin www testprofad@ssh1:~$ cd admin testprofad@ssh1:~/admin$ _
  • On remarque immédiatement que le terminal pointe maintenant sur ~/admin. On peut donc regarder ce qui s'y trouve.
  • testprofad@ssh1:~/admin$ ls backup config logs mail tmp
  • Vous y trouverez donc les sauvegardes de vos projets, les fichiers de configuration, les fichiers de logs qui stockent tout ce qui se passe sur vos sites... Imaginons que nous voulions voir les connexions effectuées en http sur votre site, il faudra aller dans le répertoire log jusqu'à trouver un fichier texte d'extension .log qui contiendra toutes ses informations. Voici une simulation de ce cheminement.
  • testprofad@ssh1:~/admin$ cd logs testprofad@ssh1:~/admin/logs$ ls apache http sites testprofad@ssh1:~/admin/logs$ cd http testprofad@ssh1:~/admin/logs/http$ ls 2020 testprofad@ssh1:~/admin/logs/http/2020$ cd 2020 testprofad@ssh1:~/admin/logs/http/2020$ ls http-2020-06-01.log testprofad@ssh1:~/admin/logs/http/2020$ cat http-2020-06-01.log testprofad.alwaysdata.net 2a01:cb0c:96c:d400:2123:f77f:eff6:f1fab - - [01/Jun/2020:21:01:21 +0200] "GET / HTTP/1.1" 200 82 "-" "Mozil la/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
  • C'est malin, nous sommes maintenant au plus bas de l'arborescence... Comment remonter dans le répertoire situé juste au dessus ? C'est là qu'intervient le fameux répertoire caché qui portait un nom bizarre ... Cet alias désigne simplement le répertoire parent. Voici donc un exemple pour voir comment on peut remonter :
  • testprofad@ssh1:~/admin/logs/http/2020$ cd .. testprofad@ssh1:~/admin/logs/http$ cd .. testprofad@ssh1:~/admin/logs$ cd .. testprofad@ssh1:~/admin$ cd .. testprofad@ssh1:~$

    Nous allons remplir le répertoire www dans la partie finale de cette activité : c'est là qu'il faut placer vos fichiers statiques html, css, javascript et autres fichiers images.

    Nous y revenons donc bientôt.

    Nous voici donc revenus dans notre répertoire personnel qu'on note ~ mais dont l'adresse absolue est en réalité /home/testprofad sur notre exemple.

    📁 / (la racine de l'ordinateur)

    📁 home

    📁 testprofad

    📁 admin

    📄 fichier_magique

    📄 fichier1

    📄 fichier2

    📄 fichier3

    📁 www

09° Avec une commande, remonter dans le dossier parent de votre répertoire personnel quelque soit votre configuration de connexion (personnel, chez alwaysdata ou sur le terminal virtuel de www.offidocs.com). Examiner alors son contenu. Il devrait vous paraître vide. Tenter avec un affichage des fichiers cachés.

Quelque chose devrait vous surprendre chez alwaysdata...

...CORRECTION...

Pour remonter, un simple cd .. suffit.

Pour observer le contenu, on utilisera un ls.

Pour observer même les contenus cachés, on utilisera ls -a.

    Voici ce qu'on obtient sur mon système

    rv@rv-HP2:~$ cd .. rv@rv-HP2:/home$ ls rv totolasticot rv@rv-HP2:/home$ ls -a . .. rv totolasticot

    Rien de particulier donc. Visiblement, il y a deux utilisateurs sur cette machine.

    Vous devriez obtenir quelque chose de similaire sur le site www.offidocs.com, si ce n'est que vous ne devriez avoir qu'un seul utilisateur qui se nomme user.

    Voici ce qu'on obtient chez alwaysdata

    testprofad@ssh1:~$ cd .. testprofad@ssh1:/home$ ls ls: cannot open directory '.': Permission denied testprofad@ssh1:/home$ ls -a ls: cannot open directory '.': Permission denied

    Comme vous le voyez, vous n'avez pas le droit en tant que simple utilisateur de pouvoir visualiser les noms des autres utilisateurs. D'ailleurs, même votre compte n'est pas visualisable. Par contre, vous avez le droit de l'ouvrir... C'est ce qui fait la force en terme de sécurité de Linux et l'une des raisons qui ont propulsé cet OS en tête des OS placés sur les ordinateurs-serveurs.

10° Regarder le message d'interdiction. Nous avons vu que le code  ..  signifiait le répertoire-parent. Que semble signifier le simple point . ?

Vous pouvez tenter des commandes comme ls . ou cd ....

...CORRECTION...

Il s'agit du nom du répertoire courant. Celui dans lequel le terminal pointe.

Actuellement, vous êtes dans /home. Il s'agit donc du nom de répertoire qui sera fourni par la commande pwd.

11° Remonter encore dans le dossier parent qui se trouve être la racine du système.

Questions

  • Quels sont les éléments présents dans ce répertoire ?
  • Lancer une commande de type ls . pour vous convaincre que le point symbolise bien le répertoire courant.
  • Peut-on encore remonter plus haut avec un cd .. ou est-on bien à la racine de l'arborescence de la machine ?

Résultats chez alwaysdata

testprofad@ssh1:/home$ cd .. testprofad@ssh1:/$ ls alwaysdata boot etc lib lib64 media nfs proc run srv tmp var bin dev home lib32 libx32 mnt opt root sbin sys usr testprofad@ssh1:/$ ls -a . alwaysdata boot etc lib lib64 .local mnt opt root sbin sys usr .. bin dev home lib32 libx32 media nfs proc run srv tmp var testprofad@ssh1:/$ ls -al total 60 drwxr-xr-x 20 root root 4096 May 19 09:29 . drwxr-xr-x 20 root root 4096 May 19 09:29 .. drwxr-xr-x 7 root root 4096 May 29 09:12 alwaysdata lrwxrwxrwx 1 root root 7 Mar 23 14:16 bin -> usr/bin drwx------ 3 root root 4096 Apr 16 08:41 boot drwxr-xr-x 13 root root 13160 May 19 09:29 dev drwxr-xr-x 128 root root 12288 May 29 09:12 etc drwxr-x--x 979 root root 0 Jun 1 22:57 home lrwxrwxrwx 1 root root 7 Mar 23 14:16 lib -> usr/lib lrwxrwxrwx 1 root root 9 Mar 23 14:16 lib32 -> usr/lib32 lrwxrwxrwx 1 root root 9 Mar 23 14:16 lib64 -> usr/lib64 lrwxrwxrwx 1 root root 10 Mar 23 14:16 libx32 -> usr/libx32 drwxr-xr-x 3 root root 4096 Mar 23 14:24 .local drwxr-xr-x 2 root root 4096 Mar 23 14:16 media drwxr-xr-x 2 root root 4096 Mar 23 14:16 mnt drwxr-xr-x 2 root root 0 Jun 1 21:53 nfs drwxr-xr-x 2 root root 4096 Mar 23 14:16 opt dr-xr-xr-x 177 root root 0 May 19 09:29 proc drwx------ 5 root root 4096 Jun 1 12:03 root drwxr-xr-x 25 root root 900 Jun 1 22:12 run lrwxrwxrwx 1 root root 8 Mar 23 14:16 sbin -> usr/sbin drwxr-xr-x 2 root root 4096 Mar 23 14:16 srv dr-xr-xr-x 12 root root 0 May 19 09:29 sys drwxrwxrwt 98 root root 2500 Jun 1 22:17 tmp drwxr-xr-x 15 root root 4096 Apr 16 08:39 usr drwxr-xr-x 12 root root 4096 Apr 13 2016 var

Nous remarquerons qu'il y a un nouveau type de fichiers.

Nous avions les fichiers, codifiés par un tiret -.

Nous avions les répertoires, codifiés par un D minisucule d.

Vous avez maintenant sous les yeux, des liens, codifiés par un L minuscule l.

Vous pouvez les voir comme des sortes d'alias.

Je prends le premier qui apparaît :

lrwxrwxrwx 1 root root 7 Mar 23 14:16 bin -> usr/bin

Cela veut dire que même si je demande cd bin, la machine va en réalité aller physiquement pointer sur le répertoire /usr/bin.

Deux noms mais une même entité.

Comme vous pouvez le voir, il y a une multitude de répertoires différents, chacun ayant son rôle en terme de classificiation.

Inutile d'appendre par coeur ce qui suit. C'est juste pour vous donner une idée de la structure sous-jacente. Et c'est pratique lorsqu'on tente de localiser un fichier.

Signification et rôles des différents répertoires

Ceci est à savoir :

Racine du système :  / 

Répertoire personnel des utilisateurs :  /home/NOM  avec comme raccourci le fameux tilde  ~ 

Répertoire personnel du super-administrateur :  /root . Il s'agit de l'administrateur de la machine, celui qui a tous les droits sur celle-ci. On le place dans un répertoire séparé des autres et pas dans  /home/root  pour des raisons de sécurité.

Répertoire courant :  . 

Répertoire parent du répertoire courant :  .. 


Ceci est pour votre culture générale, rien à apprendre :

Le répertoire  /bin  contient les exécutables binaires de base.

Le répertoire  /sbin  contient un peu la même chose, si ce n'est que ce sont des binaires vraiment fondamentaux (liés au partitionnement ou au réseau).

Les répertoires  /lib ,  /lib32  et  /lib64  contiennent les bibliothèques regroupant des fonctions utilisées par plusieurs des binaires présents dans /bin ou /sbin. Cela permet d'alléger la taille des fichiers exécutables présents dans ces deux répertoires.

Pour ceux qui ont un système Windows, ces répertoires correspondent en gros au répertoire  C:\windows  avec les bibliothèques .dll se trouvant dans  C:\windows\system.32  ou  C:\windows\SysWOW64 .

Le répertoire  /usr  contient les exécutables des utilisateurs (ceux qui ne vont pas nécessairement partis du noyau ou des fichiers critiques), ainsi que les programmes que l'utilisateur installe lui-même. Comme les jeux par exemple. Son équivalent Windows est un peu  C:\program files .

Le répertoire  /boot  contient le noyau Linux, les fonctionnalités basiques qui forment le coeur du système, ainsi que quelques autres fichiers lancés à l'amorçage du système.

Le répertoire  /dev  est le répertoire-racine de tous les périphériques comme les CD-ROm, les clés USB...

Avec Windows, on a des noms de disques différents (comme C:, G: ...). Avec Linux, tout est regroupé dans la même arborescence commençant par  / . Lorsqu'on branche un périphérique, il faut donc le monter (mount en anglais) sur votre arborescence et le début de son adresse absolue sera donc une variante de ce type  /dev/NOM_PERIPHERIQUE .

Plus plein d'autres comme vous l'avez vu. Si vous voulez vous renseigner plus avant, vous devriez trouver votre bonheur sur le Web.

E - Localiser un programme

  • Avec une telle arborescence, tout est bien rangé. Mais parfois, on ne sait pas où ! Et parfois, en débutant, on finit même par installer plusieurs fois le même programme sans savoir exactement quelle version on utilise...
  • Pour connaître la localisation d'une commande ou d'un programme qui pourrait être présent en plusieurs exemplaires, il existe la commande which, lequel ou laquelle en français.
  • testprofad@ssh1:/$ which python /usr/bin/python testprofad@ssh1:/$ which python3 /usr/bin/python3 testprofad@ssh1:/$ which pwd /usr/bin/pwd

    Cette commande which vous donne la version vers lequel le système se tourne lorsqu'on lui demande d'exécuter le programme.

    Nous avions parlé en début d'activité des appels-systèmes et des commandes qui sont donc réellement intégrées de base au noyau, les commandes fondamentales sur lesquelles sont baties les autres fonctionnalités. Mais, comment savoir si un programme est en réalité une commande interne au Shell ou une commande externe ?

    Pour cela, il existe la commande type qui vous permet de savoir qui est quoi.

  • Exemple avec which qui s'avère être une commande externe au Shell.
  • rv@srv-HP2:~$ type which which est /usr/bin/which
  • Exemple avec cd qui s'avère être une commande interne au Shell.
  • rv@srv-HP2:~$ type cd cd est une primitive du Shell

✎ 12° Fournir les commandes qui vous permettent de répondre à ces questions ?

  1. Vers quelle version de fichier pointe le système lorsqu'on lui demande d'exécuter ping (commande qui permet de tester la connectivité entre deux machines) ?
  2. La commande ping est-elle une commande interne au Shell ?
  3. La commande exit qui permet d'arrêter la liaison avec le terminal est-elle une commande interne au Shell ou externe au noyau ?

F - Changer de répertoire (adresse absolue)

  • Votre terminal pointe donc normalement sur la racine  / . Comment faire pour atteindre rapidement un répertoire sans avoir à faire tous les cd à la suite ?
  • Derrière votre commande cd (change directory) vous pouvez fournir
    • soit une adresse relative (une adresse qui ne commence pas  / ). Cela peut être le nom d'un sous-répertoire visible depuis le répertoire courant, un .. ... C'est que nous avons fait partie D.
    • soit fournir une adresse absolue partant de la racine  / .

    Quelques exemples d'utilisation : on part de la racine, on atteint le répertoire  www  situé dans le répertoire de l'utilisateur puis directement le répertoire  /sbin .

  • 1 - Retour à la racine :
  • testprofad@ssh1:~$ cd / testprofad@ssh1:/$ _
  • 2 - Déplacement direct dans le répertoire www :
  • testprofad@ssh1:/$ cd /home/testprofad/www testprofad@ssh1:~/www$ _

    On remarquera que le système note encore ~ plutôt que /home/testprofad.

  • 3 - Déplacement direct dans le répertoire /sbin :
  • testprofad@ssh1:~/www$ cd /sbin testprofad@ssh1:/sbin$ _
  • 4 - Déplacement dans le répertoire /home/testprofad/admin en utilisant le tilde :
  • testprofad@ssh1:/sbin$ cd ~/admin testprofad@ssh1:~/admin$ _

13° Déplacer le terminal pour qu'il pointe dans le répertoire /usr/bin.

...CORRECTION...

On fournit l'adresse absolue, il suffit de taper cd /usr/bin.

G - Lister le contenu d'un répertoire sans y aller

  • Pour voir le contenu d'un répertoire, on peut se déplacer dans ce répertoire et faire un ls. Mais on peut faire mieux : on peut faire un ls en fournissant comme argument l'adresse du répertoire à étudier.
  • Un exemple en étant au départ du dossier personnel (tilde) qui contient deux autres répertoires.
  • testprofad@ssh1:~$ ls admin www
  • La commande suivante est possible en adresse relative car admin est bien un sous-répertoire du répertoire courant. On parvient donc à oberserver le contenu du répertoire admin tout en "restant" dans le répertoire ~ :
  • testprofad@ssh1:~$ ls admin backup config logs mail tmp
  • Idem avec le répertoire www qui est bien un répertoire contenu dans le répertoire courant.
  • testprofad@ssh1:~$ ls www index.html <-- nous allons créer ce fichier ensemble, juste après
  • Par contre, si on demande à visualiser usr/bin, cela ne fonctionne pas car on fournit une adresse relative au répertoire courant : le système va chercher s'il existe un répertoire usr dans ~. Et la réponse est non.
  • testprofad@ssh1:~$ ls usr/bin ls: cannot access 'usr/bin': No such file or directory
  • Pour que ça fonctione, il suffit de fournir une adresse absolue précisant qu'on cherche à partir de la racine, à partir de  / . Ne lancez pas cette dernière commande : il y a beaucoup beaucoup de fichiers à cet endroit ! Depuis la version Web, ça peut être long de tout afficher !
  • testprofad@ssh1:~$ ls /usr/bin '[' gv2gxl ppmdim 2to3 gvcolor ppmdist 2to32 gvgen ppmdither 2to32.4 gvmap ... ... ...
  • Ca marche aussi avec la commande cat pour afficher le contenu d'un fichier.

14° Je vous fournis l'arborescence théorique suivante. Le répertoire courant est testprofad, surligné et cela apparaît bien devant l'invite de commande $.

📁 / (la racine de l'ordinateur)

📁 bin

📁 fichierA

📁 home

📁 testprofad

📁 admin

📄 fichierB

📁 www

📁 repC

Questions

  1. Comment afficher le contenu du fichier fichierA sans bouger et avec une adresse absolue ?
  2. Comment lister le contenu de repC sans bouger et avec une adresse absolue ?
  3. Comment afficher le contenu du fichier fichierA sans bouger et avec une adresse relative ? On rappelle que .. permet de trouver le dossier parent.
  4. Comment lister le contenu de repC sans bouger et avec une adresse relative ?

...CORRECTION...

  1. L'adresse absolue est une adresse qui part de la racine ( / ). C'est donc simple : il suffit d'écrire cat /bin/fichierA.
  2. L'adresse absolue est une adresse qui part de la racine ( / ). Il suffit d'écrire ls /home/testprofad/www/repC.
  3. L'adresse relative demande de partir du répertoire courant, dans notre cas /home/testprofad qu'on symbolise par ~. Pour atteindre le fichier fichierA, il faut donc remonter dans le dossier parent ( home ), remonter encore dans le dossier parent ( / , la racine). Une fois à la racine, il faut redescendre dans l'arborescence et aller dans bin pour y trouver, enfin, le fichier voulu.
  4. Du coup, ça donne cat ../../bin/fichierA.

  5. L'adresse relative demande de partir du répertoire courant, dans notre cas /home/testprofad qu'on symbolise par ~. Pour atteindre le répertoire repC depuis ~, c'est facile : ls www/repC.

✎ 15° Je vous fournis l'arborescence théorique suivante. Le répertoire courant est www, surligné et cela apparaît bien devant l'invite de commande $.

📁 / (la racine de l'ordinateur)

📁 bin

📁 fichierA

📁 home

📁 testprofad

📁 admin

📄 fichierB

📁 www

📁 repC

Questions

  1. Comment afficher le contenu du fichier fichierA sans bouger et avec une adresse absolue ?
  2. Comment afficher le contenu du fichier fichierA sans bouger et avec une adresse relative ? On rappelle que .. permet de trouver le dossier parent.
Récapitulatif des notions et commandes

Les notions abordées :

Notion Explication
Racine  /  La racine est le point de départ de l'arborescence.
Adresse absolue Il s'agit d'une adresse dont le point de départ est la racine.
L'adresse commence donc par  / .
Utilisateur root Le super-administrateur de la machine. Il a tous les droits sur la machine. Son répertoire personnel est situé à l'adresse absolue /root.
Répertoire personnel d'un utilisateur Il s'agit du répertoire qui appartient à un utilisateur. Il est situé à l'adresse absolue /home/NOM_UTILISATEUR. Il peut être adressé plus facilement en utilisant le raccourci Tilde  ~ .
Adresse relative Une adresse qui prend comme point de départ le répertoire courant, le répertoire sur lequel pointe actuellement le terminal.
Répertoire parent  ..  Il s'agit du répertoire "contenant" le répertoire courant. Par définition, seule la racine ne possède pas de parent.

Les commandes à connaître :

Commande Explication
ls Liste le contenu du répertoire dont l'adresse (relative ou absolue) est fournie juste après.
ls www : liste le contenu d'un répertoire www contenu dans le répertoire courant.
ls /home/utilisateur/www : idem mais avec une adresse absolue.
Si on ne fournit rien(ls), il s'agira du répertoire courant.
Quelques options :
ls -a pour afficher les objets cachés (ceux qui commencent par un point)
ls -l pour afficher des informations plus longues
cd Change directory : permet de changer de repertoire.
cd ~ permet d'atteindre son propre répertoire.
cd / permet d'atteindre la racine.
cd .. permet de remonter d'un cran dans l'arborescence.
cat Permet de concaténer une entrée vers une sortie.
La forme générale pour écraser l'ancien contenu est cat entree > sortie
La forme générale pour rajouter du contenu est cat entree >> sortie
Si on omet l'entrée, il s'agit par défaut du terminal.
Si on omet la sortie, il s'agit par défaut du terminal.

Les commandes qui ne sont pas à connaître mais que nous avons vu :

Commande Explication
which Permet d'obtenir l'adresse absolue du fichier qui est reconnu comme étant l'exécutable d'une commande. Exemple which python3
type Permet d'obtenir le type d'une commande (interne ou externe au Shell-Noyau)
whoami Permet de récupérer le nom de l'utilisateur du terminal
pwd Print working directory, permet de récupérer le répertoire sur lequel pointe actuellement le terminal.

6 - Mise en production d'un site

Nous avons maintenant tous les outils pour parvenir à publier votre première page HTML en production.

Si vous n'avez pas créé de compte chez alwaysdata, vous ne pourrez pas placer votre page en ligne bien entendu. Vous pourrez par contre tester l'utilisation des commandes.

16° Se connecter à votre compte alwaysdata via ssh (comme expliqué sur cette fiche ACCESS SSH VIA LE WEB CHEZ ALWAYSDATA).

Le terminal pointe par défaut sur votre dossier personnel (~).

📁 / (la racine de l'ordinateur)

📁 home

📁 votrecompte

📁 admin

📁 www

Aller dans le répertoire www en utilisant la commande suivante :

votrecompte@ssh1:~$ cd www votrecompte@ssh1:~/www$ _

Votre terminal pointe maintenant sur le dossier www qui est par défaut le dossier devant contenir vos fichiers accessibles par Internet.

📁 / (la racine de l'ordinateur)

📁 home

📁 votrecompte

📁 admin

📁 www

17° Créer un petit fichier HTML en suivant l'exemple des commandes suivantes :

votrecompte@ssh1:~/www$ cat > index.html <!DOCTYPE html> <html> <p>Bonjour ! Voici la page d'accueil</p> </html> ^C

18° Créer un deuxième petit fichier HTML en suivant l'exemple des commandes suivantes :

votrecompte@ssh1:~/www$ cat > nouveau.html <!DOCTYPE html> <html> <p style="color: red;">Une nouvelle page</p> </html> ^C votrecompte@ssh1:~/www$ exit

Maintenant, vous devriez avoir ceci :

📁 / (la racine de l'ordinateur)

📁 home

📁 votrecompte

📁 admin

📁 www

📄 index.html

📄 nouveau.html

Il vous reste à activer l'accès à votre site en vous connectant à votre compte chez Alwaysdata.

19° Se connecter sur https://www.alwaysdata.com/fr/ pour atteindre le menu suivant :

Le menu de configuration des sites
Menu de configuration des sites

Appuyer sur l'icone Engrenage pour aller dans la configuration de votre site par défaut (vous pouvez en créer d'autres en utilisant AJOUTER UN SITE si vous voulez).

Le site créé pour la démonstration est accessible par testprofad.alwaysdata.net).

Ici, je tente de rendre le site accessible également via le sous-domaine www : en tapant le nouveau nom : www.testprofad.alwaysdata.net. Ca ne marchera pas car le nom de domaine alwaysdata.net ne m'appartient pas. Par contre, si vous achetez un nom de domaine un jour (comme infoforall.fr), vous pourrez rajouter ce que vous voulez à gauche (comme www.infoforall.fr).

Par contre, vous pouvez rajouter un complément d'accès via l'URL en le plaçant à droite. Par exemple : testprofad.alwaysdata.net/rajout

Le début du menu de configuration
Configuration de l'URL ou des URLS du site

Il reste à configurer le type de site, en allant un peu plus bas.

La fin du menu de configuration
Configuration du type de site

Comme vous pouvez le voir, on peut choisir le type de site créé. Pour ajourd'hui, choisir un site statique : de simples pages HTML, CSS et JS à distribuer au client. Les autres possibilités permettent de créer un site dynamique (créant notamment les pages à la volée).

On remarquera également qu'on peut choisir le répertoire qui devra contenir les pages à distribuer. Par défaut, il s'agit de /www. La racine / n'est pas ici la racine du serveur distant mais la racine de votre compte (le tilde ~). Laisser le dossier par défaut, c'est clair au moins.

Appuyer sur Valider pour que vos modifications soient prises en compte.

20° Tapez les adresses voulues dans votre barre d'adresse. Tester le site de test ou vos propres pages.

Quelques exemples :

  • Page d'accueil (index.html par défaut) : http://testprofad.alwaysdata.net/
  • Page d'accueil explicitement : http://testprofad.alwaysdata.net/index.html
  • Deuxième page : http://testprofad.alwaysdata.net/nouvelle.html

Mais on peut aussi passer par la deuxième adresse, celle avec /rajout.

  • Page d'accueil (index.html par défaut) : http://testprofad.alwaysdata.net/rajout
  • Page d'accueil explicitement : http://testprofad.alwaysdata.net/rajout/index.html
  • Deuxième page : http://testprofad.alwaysdata.net/rajout/nouvelle.html

Comme vous le voyez, les pages sont stockés sur le serveur dans un répertoire bien précis (/home/testprofad/www mais ça n'apparaît absolument pas dans les URL que tapent l'utilisateur.

Les exemples visuels des requêtes HTTP :

Page de test Page de test Page de test Page de test Page de test

Maintenant que vous avez réussi à publier votre première page, un monde s'offre à vous.

Nous verrons dans une autre activité comment publier un site dynamique avec Flask, un framework Python. Mais, vous pourrez publier facilement du PHP sur votre compte et plein de tutos existent sur le Web.

Dernière chose : on n'écrit évidemment pas les pages directement en liaison SSH. Il faudra que vous installer un logiciel de transfert de fichiers vers les serveurs distants. Ces logiciels sont basés sur le protocole FTP (File Transfert Protocol).

Un bon logiciel gratuit et libre est FileZilla. Une fiche de configuration FileZilla-Alwaysdata est disponible en suivant le lien suivant: UTILISER FTP FILEZILLA et ALWAYSDATA

✎ 21° Envoyez moi quelques adresses de votre petit bout de site Internet si vous avez bien voulu vous créer un compte chez un hébergeur.

7 - Commandes Windows

Pour que vous puissiez voir un peu comment marche votre console si vous êtes chez Microsoft avec Windows, voilà quelques commandes équivalentes. Sur MacOS, vous devriez pouvoir utiliser la majorité des commandes présentées pour Linux, puisque MacOS est basé également sur UNIX.

Voici un tableau d'équivalence approximative. Toutes les commandes Linux ne sont pas disponibles avec Windows.

Linux Windows
Racine  /  Racine  C:\ .
cd (change directory) cd aussi.
ls (list) dir
cat (concaténation) edit ou editln pour le créer, type pour lire le contenu d'un fichier texte.

8 - FAQ

Ca marche comment le transfert FTP ?

Dans la prochaine activité, nous verrons un petit historique des systèmes d'exploitation, histoire de pouvoir placer Linux, Windows, macOS et Android par exemple dans les bonnes cases.

Activité publiée le 01 06 2020
Dernière modification : 01 06 2020
Auteur : ows. h.