Module 1 · 1.4
Français
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 :
| Dossier | Contenu |
|---|---|
/etc | Configuration : SSH (/etc/ssh), serveur web (/etc/nginx), utilisateurs (/etc/passwd) |
/var/log | Fichiers journaux (en plus du journal systemd, leçon 6.2) |
/var/lib | Données des programmes, par exemple les bases de données et Docker |
/home | Dossiers personnels des utilisateurs ordinaires, comme /home/anna |
/root | Dossier personnel de root |
/usr | Programmes et bibliothèques installés |
/tmp | Fichiers temporaires, nettoyés automatiquement |
/srv ou /var/www | Emplacement 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.pubDe 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 avecq;head -n 20 bestandettail -n 20 bestand: les premières ou les dernières lignes ;tail -fcontinue 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/hostsLes 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 :
- Faites d'abord une copie :
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - 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). - 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 0Buname -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 (-hsignifie « 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 colonneavailable, pasfree: 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 sshouvre le manuel (manual page) d'une commande. On y navigue comme danslesset on recherche avec/.man sshd_configdécrit chaque directive réglable dans ce fichier.ls --helpaffiche 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 ;
historyles 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 | lessLes 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.
rmn'a pas de corbeille. Ce qui est supprimé est perdu. Soyez particulièrement prudent avecrm -r(un dossier avec tout son contenu) et avec les caractères génériques comme*.- Les majuscules comptent.
/etc/SSHn'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,headettail; modifiez avecnano, après une copie, et testez la configuration avant de redémarrer. df -h,free -h,uptimeetip -brief addressmontrent l'état de votre serveur.- L'aide se trouve dans
manet--help; Tab complète ; avec|etgrep, vous filtrez la sortie.
Quiz
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é.
available compte aussi la mémoire cache que Linux libère au besoin. Le fichier .pub est la partie publique que chaque client voit ; le fichier sans .pub est secret (600, root), car celui qui le possède peut se faire passer pour votre serveur.
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
- Augmenter l'espace disque de votre VPS
- Accès SSH et le Terminal dans DirectAdmin : quels forfaits et comment se connecter
- Référence Debian, chapitre 1 (tutoriel sur la ligne de commande) : https://www.debian.org/doc/manuals/debian-reference/ch01.en.html
- Filesystem Hierarchy Standard 3.0 : https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
