Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 1 · 1.4

Explorer la ligne de commande

Module 1: Votre premier serveur · Temps de lecture : 11 minutes

Objectif pédagogique : après cette leçon, vous savez vous orienter sur un serveur Linux : parcourir les dossiers, lire et modifier des fichiers, voir l'espace disque et la mémoire disponibles, et trouver vous-même de l'aide sur une commande.

Notions clés : shell, invite (prompt), dossier et chemin, chemin absolu et relatif, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, complétion par tabulation, uname, df, free, uptime, pipe, grep

Le shell et l'invite

Une fois connecté, vous dialoguez avec le shell : le programme qui lit et exécute vos commandes. Sur Debian et Ubuntu, il s'agit généralement de bash. À gauche du curseur se trouve l'invite (prompt) :

anna@web1:~$
root@web1:~#

Elle vous indique trois choses : qui vous êtes (anna ou root), sur quel serveur (web1) et dans quel dossier vous vous trouvez (~ est votre dossier personnel). Le dernier caractère est important : $ signifie un utilisateur ordinaire, # signifie root. Si vous voyez #, chaque commande s'exécute avec tous les droits. Tapez alors posément.

Dossiers et chemins

Sous Linux, tout est rattaché à une seule arborescence qui commence à / (le dossier racine, à ne pas confondre avec l'utilisateur root). Vous rencontrerez régulièrement quelques dossiers dans cette formation :

DossierContenu
/etcConfiguration : SSH (/etc/ssh), serveur web (/etc/nginx), utilisateurs (/etc/passwd)
/var/logFichiers journaux (en plus du journal systemd, leçon 6.2)
/var/libDonnées des programmes, par exemple les bases de données et Docker
/homeDossiers personnels des utilisateurs ordinaires, comme /home/anna
/rootDossier personnel de root
/usrProgrammes et bibliothèques installés
/tmpFichiers temporaires, nettoyés automatiquement
/srv ou /var/wwwEmplacement habituel des sites web et des services

Un chemin absolu commence à /, par exemple /etc/ssh/sshd_config. Un chemin relatif part de l'endroit où vous vous trouvez : si vous êtes dans /etc, alors ssh/sshd_config désigne le même fichier. .. est le dossier parent, . le dossier courant.

anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli  ssh_config  ssh_config.d  sshd_config  sshd_config.d  ssh_host_ed25519_key  ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$

cd sans rien derrière vous ramène à votre dossier personnel.

Afficher des fichiers

ls -l affiche plus que les noms :

anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root  399 Nov  2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root   91 Nov  2 14:20 ssh_host_ed25519_key.pub

De gauche à droite : les droits, le nombre de liens, le propriétaire, le groupe, la taille en octets, la date et le nom. Notez la différence : la clé d'hôte secrète (-rw-------) n'est lisible que par root, la clé publique (-rw-r--r--) par tout le monde. Dans la leçon 3.1, vous apprendrez à lire ces droits en détail. ls -la affiche aussi les fichiers cachés : les noms qui commencent par un point, comme .ssh.

Pour lire le contenu :

  • cat bestand : tout le fichier d'un coup, pratique pour les fichiers courts ;
  • less bestand : faire défiler avec les flèches et la barre d'espace, rechercher avec /woord, quitter avec q ;
  • head -n 20 bestand et tail -n 20 bestand : les premières ou les dernières lignes ; tail -f continue d'afficher les lignes qui s'ajoutent.

Modifier un fichier avec nano

La configuration se modifie dans un éditeur de texte. nano est le plus simple :

root@web1:~# nano /etc/hosts

Les raccourcis sont affichés en bas ; ^ signifie Ctrl. Enregistrer : Ctrl+O puis Entrée, quitter : Ctrl+X, rechercher : Ctrl+W. Si vous travaillez déjà avec vim, vous pouvez l'utiliser ; sur une installation minimale, vim n'est pas toujours disponible en version complète.

Trois habitudes qui vous éviteront bien des ennuis :

  1. Faites d'abord une copie : cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Testez la configuration avant de redémarrer un service. Beaucoup de programmes ont leur propre commande pour cela : sshd -t, nginx -t (leçons 2.2 et 7.2).
  3. Modifiez une seule chose à la fois, afin de savoir ce qui a provoqué une erreur.

Dans quel état est votre serveur ?

Quelques commandes que vous utiliserez en toute situation :

anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
 10:12:44 up 3 days,  2:10,  1 user,  load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G  3.1G   35G   9% /
anna@web1:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.9Gi       1.0Mi       720Mi       3.4Gi
Swap:             0B          0B          0B
  • uname -a : le noyau (kernel) en cours d'exécution.
  • uptime : depuis combien de temps le serveur est allumé et la load average (charge moyenne) sur 1, 5 et 15 minutes. En gros : une charge durablement supérieure au nombre de cœurs du processeur signifie que des tâches attendent.
  • df -h : espace disque libre (-h signifie « human readable », avec G et M). Un disque plein est l'une des causes les plus fréquentes d'un serveur qui s'arrête « sans raison ».
  • free -h : la mémoire. Regardez la colonne available, pas free : Linux utilise la mémoire libre comme cache (buff/cache) et la restitue dès qu'un programme en a besoin.

Et votre réseau, vu dans la leçon 1.2 : ip -brief address.

Trouver de l'aide

Inutile de retenir toutes les options. Il faut en revanche savoir où les trouver :

  • man ssh ouvre le manuel (manual page) d'une commande. On y navigue comme dans less et on recherche avec /. man sshd_config décrit chaque directive réglable dans ce fichier.
  • ls --help affiche pour la plupart des commandes une courte liste d'options.
  • La touche Tab complète les noms de commandes et de fichiers. Deux appuis sur Tab affichent les possibilités. Cela évite les fautes de frappe dans les chemins longs.
  • La flèche vers le haut rappelle les commandes précédentes ; history les affiche toutes.

Sur une installation minimale, les manuels sont parfois absents. Sur Debian et Ubuntu, vous les installez avec apt install man-db (module 4).

Pipes et grep

Vous pouvez enchaîner des commandes avec un pipe (|) : la sortie de l'une devient l'entrée de la suivante. grep filtre les lignes qui contiennent un mot :

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Les lignes qui commencent par # sont des commentaires : elles n'ont aucun effet et indiquent souvent la valeur par défaut. Dans la leçon 2.2, vous verrez pourquoi cela peut prêter à confusion avec SSH.

Pièges

  • Coller sans lire. Les commandes trouvées sur Internet font exactement ce qui est écrit, même si c'est autre chose que ce que promet le titre de l'article. Lisez chaque commande avant de l'exécuter, surtout si vous êtes root.
  • rm n'a pas de corbeille. Ce qui est supprimé est perdu. Soyez particulièrement prudent avec rm -r (un dossier avec tout son contenu) et avec les caractères génériques comme *.
  • Les majuscules comptent. /etc/SSH n'existe pas ; /etc/ssh, si.
  • Les espaces dans les chemins doivent être entre guillemets : cat "/srv/mijn site/index.html". Mieux : n'utilisez pas d'espaces dans les noms sur un serveur.

Résumé

  • L'invite indique qui vous êtes, sur quel serveur et où ; # signifie root.
  • La configuration se trouve dans /etc, les journaux dans /var/log, les données des programmes dans /var/lib, les dossiers personnels dans /home.
  • Lisez avec cat, less, head et tail ; modifiez avec nano, après une copie, et testez la configuration avant de redémarrer.
  • df -h, free -h, uptime et ip -brief address montrent l'état de votre serveur.
  • L'aide se trouve dans man et --help ; Tab complète ; avec | et grep, vous filtrez la sortie.

Quiz

1. Votre invite est root@web1:/var/log#. Que savez-vous ?



2. Vous êtes dans /etc. Quel chemin désigne le même fichier que /etc/nginx/nginx.conf ?



3. free -h affiche free 120Mi et available 2.9Gi. Le serveur manque-t-il de mémoire ?



4. Quelle est la démarche la plus sage avant de modifier /etc/ssh/sshd_config ?



5. Où trouvez-vous les paramètres que reconnaît sshd_config ?



Exercice

Exercice O1.4: Découvrir votre serveur. Exécutez les commandes de la leçon sur votre propre serveur et indiquez : la distribution et sa version, le noyau, l'espace disque libre, la mémoire disponible, la charge, l'IPv4 et l'IPv6, ainsi que les fichiers de /etc/ssh lisibles uniquement par root. Répondez ensuite à deux questions sur ce que vous avez observé.

Exercice O1.4: Découvrir votre serveur

Cet exercice, vous le faites vous-même ; personne ne le vérifie. Cochez ce que vous avez fait et marquez l'exercice comme terminé.



Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.

Pour aller plus loin

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…