La console, ça se mange ?
Nous avons passé la plupart de la première partie du cours à découvrir Linux en douceur, son bureau et son interface graphique. Par rapport à d'autres systèmes d'exploitation comme Windows, c'est un peu dépaysant au début, mais mine de rien on retrouve beaucoup de concepts similaires. Je pense donc que vous n'aurez pas plus besoin de moi pour être capable de manipuler correctement l'interface graphique.
J'aurais très bien pu partir
vraiment de zéro et vous expliquer que pour fermer une fenêtre il faut cliquer sur la croix en haut à droite, mais bon, je pense que vous m'en auriez plus voulu qu'autre chose

J'ai donc volontairement choisi un juste milieu et considéré que vous connaissiez un tout petit peu Windows, ce qui ne me semble pas être trop fou de ma part.
En fait, les choses intéressantes commencent
maintenant. C'est à partir d'ici qu'un utilisateur classique de Windows met les pieds dans un environnement totalement nouveau. Vous ne pouvez pas avoir d'a priori, et il y a de fortes chances que ce soit un domaine de l'informatique que vous n'ayez jamais approché (non non, DOS ça ne compte pas

).
Vous n'avez pas idée de la richesse offerte par la console, qui est quasi-infinie. Personne ne peut d'ailleurs prétendre la maîtriser entièrement, c'est vous dire ! Vous aurez donc toujours quelque chose à découvrir
Avant de vous lancer à corps perdus dans l'océan de la console, ce chapitre va vous enseigner les rudiments de survie pour éviter la noyade. Parce que, bon, ça serait dommage que vous vous arrêtiez avant le meilleur moment
On va commencer par répondre à cette question hautement fondamentale :
Mais pourquoi ont-ils inventé la console d'abord au lieu de l'interface graphique ? C'est quand même plus pratique une interface graphique avec une souris, c'est plus intuitif ! C'est juste pour faire pro, faire compliqué pour faire compliqué et s'assurer que l'informatique reste seulement à la portée de quelques initiés ? Pourquoi ne pas avoir supprimé la console, c'est archaïque !
(que de questions dites-donc !)
Que nenni ! Il y a une explication à tout, voici une réponse question par question :

- Pourquoi avoir inventé la console d'abord, au lieu de l'interface graphique ? Pour ça, je vous ai mis la puce à l'oreille dès le premier chapitre. La réponse est : parce qu'on n'avait de toute façon pas le choix ! Les débuts de l'informatique et de la console remontent aux débuts des années 70, à une époque où un écran 2 couleurs était un luxe inimaginable et où la puissance de calcul de ces ordinateurs était 100 fois plus faible que celle de la calculatrice Casio de ma petite sœur. Bref, vous voyez le genre.
On dirait pas comme ça, mais gérer une interface graphique avec plusieurs couleurs, ainsi qu'une souris et un certain nombre de fonctionnalités avancées qui vous paraissent aujourd'hui "normales", ça demande de la puissance ! La console était donc à cette époque la seule façon d'utiliser un ordinateur.
- L'interface graphique avec la souris c'est quand même plus intuitif ! Alors là, tout à fait d'accord avec vous. On dira ce qu'on voudra, mais la console ce n'est PAS intuitif. Quand on débute en informatique, il est de loin plus simple d'appréhender l'interface graphique. Par contre, je suis aujourd'hui persuadé que l'interface graphique de Linux (que ce soit KDE, Gnome ou une autre) est aussi intuitive que celle de Windows et de Mac OS. Ça n'a pas toujours été forcément le cas, mais un débutant total en informatique n'aura pas plus de mal à appréhender l'interface graphique de Linux que celle de Windows, ça j'en suis totalement convaincu.
- Est-ce que c'est juste pour faire pro, inutilement compliqué ? Les commandes de la console vont peut-être vous paraître du chinois les premiers temps, et vous allez vous demander à coup sûr si cet amas de lettres vide de sens n'est pas là juste pour faire en sorte que le moins de monde possible puisse utiliser la console (sous-entendu "Seuls les programmeurs qui ont inventé la console devraient pouvoir l'utiliser"). Ça par contre c'est totalement faux. Tout a été minutieusement pensé, et ce dès les années 60 :
- Les commandes sont courtes, abrégées ? C'est pour gagner du temps et aller plus vite. Ecrire pwd est moins intuitif que diredansquelrepertoirejesuis, mais après l'avoir écrit 200 fois dans la journée vous bénirez les programmeurs qui ont fait ce choix, croyez-moi !
- Les commandes ne sont pas intuitives ? Faux, bien souvent il s'agit d'une abréviation de termes (en anglais, of course !). Et bien souvent, les lettres qu'il faut taper sont choisies en fonction de leur proximité les unes par rapport aux autres pour que vous ayez le moins possible à déplacer les doigts sur le clavier ! Bon, d'accord, à la base c'est plutôt fait pour les claviers QWERTY anglais qui sont, je le reconnais, plus adaptés pour accéder aux symboles du genre { ] | # etc. Mais vous n'en mourrez pas

- Pourquoi ne pas avoir supprimé la console, c'est archaïque ! Depuis l'invention de l'interface graphique, on pourrait se demander pourquoi on n'a pas supprimé la console. Sous-entendu : elle ne sert plus à rien. Et c'est là que vous vous trompez complètement : on met un petit temps à s'y faire, mais quand on sait s'en servir on va beaucoup plus vite avec la console qu'avec l'interface graphique. C'est même pire en fait : vous vous rendrez compte à un moment qu'il y a des choses que seule la console peut faire, et qu'il serait pour d'autres vraiment inutile d'en faire une interface graphique.
Un exemple ? En mode graphique, allez par exemple dans un répertoire qui contient beaucoup de fichiers en tous genre : des fichiers texte, des images, des vidéos... Vous voudriez savoir combien il y a d'images JPEG dans ce dossier... Pas facile hein ? 
En console, en assemblant quelques commandes, on peut obtenir ce résultat sans problème !
Code : Console | ls -l | grep jpg | wc -l
510 |
La première ligne est la commande que j'ai tapée, la seconde le résultat. Il y avait donc 510 images JPEG dans le dossier, et on a obtenu le résultat en moins d'une seconde !
On peut même faire encore plus fort et enregistrer directement ce nombre dans un fichier texte :
Code : Console | ls -l | grep jpg | wc -l > nb_jpg.txt |
... et on peut aussi envoyer le fichier nb_jpg.txt sur internet par FTP ou à un ami par e-mail, le tout en une ligne !
La console n'est pas morte donc, et n'a pas du tout prévu de l'être !
La plupart des commandes de la console de Linux sont des "copies" d'Unix, ce vieil OS dont je vous ai parlé au tout début, ancêtre parmi les ancêtres. N'allez pas croire que les programmes d'Unix ont été copiés ou "piratés" par Linux, c'est juste que leur mode d'emploi est le même. Les programmes ont été réécrits par un groupement de programmeurs, issus de ce qu'on appelle le projet GNU.
Ce projet a fusionné au bout de quelques temps avec le coeur du système d'exploitation Linux pour donner au final GNU/Linux, qu'on écrit en pratique juste "Linux" car c'est plus court. Mais tout ça je vous l'ai déjà dit dans le premier chapitre
L'avantage ? Les commandes n'ont pas bougé et ne bougent pas depuis l'époque d'Unix (soit depuis les années 60). Ce sont les mêmes. Quelqu'un qui utilisait Unix dans les années 60 est capable de se débrouiller avec un Linux d'aujourd'hui. Et il y a fort à parier que ce sera pareil pour les nombreuses années à venir. Vous avez donc juste à apprendre à vous en servir une fois, ok il y aura du boulot, mais après c'est quelque chose qui pourra vous servir toute votre vie !
Bien, il s'agirait maintenant de savoir comment approcher la Bête. La question est donc : comment accède-t-on à la console dans son beau Linux depuis son KDE / Gnome / XFCE /
(insérez le nom de votre gestionnaire de bureau ici) ?
Les moyens sont variés, très variés. Il y a donc le choix, un peu comme partout sous Linux vous me direz
Nous allons commencer par la solution la plus "basique", que vous utiliserez probablement le moins souvent. Elle vous permet d'accéder à la vraie console (si tant est qu'il y a une "vraie" console) en pressant une combinaison de touches.
Lisez bien tous les prochains paragraphes avant d'exécuter les commandes que je vais vous donner. Ce n'est pas dangereux rassurez-vous, mais c'est juste que si vous vous retrouvez en console avant d'avoir lu comment en sortir, vous aurez l'air bien embêté

Je vais supposer que vous vous êtes connecté, c'est-à-dire que vous avez rentré votre login et votre mot de passe. Vous êtes donc sur votre gestionnaire de bureau (ici KDE) :
Vous trouvez qu'il y a trop de couleurs ? Que ça manque de mots compliqués ?
Pas de problème ! Voici les raccourcis à connaître pour accéder à la console :
- Ctrl + Alt + F1 : terminal 1 (tty1)
- Ctrl + Alt + F2 : terminal 2 (tty2)
- Ctrl + Alt + F3 : terminal 3 (tty3)
- Ctrl + Alt + F4 : terminal 4 (tty4)
- Ctrl + Alt + F5 : terminal 5 (tty5)
- Ctrl + Alt + F6 : terminal 6 (tty6)
- Ctrl + Alt + F7 : retour au mode graphique (ouf !)
Terminal est un autre nom pour "Console".
Pour tester, tapez Ctrl + Alt + F1 pour voir

Votre écran va peut-être clignoter quelques instants, ne paniquez pas. Vous allez ensuite voir ceci :
Vous êtes en plein écran en mode console. C'est beau hein ?
Le login
Vous ne pouvez pas utiliser de suite la console : il faut d'abord vous logger. C'est ce que vous demande la dernière ligne :
Code : Console
mateo21-desktop : c'est le nom que vous avez donné à votre ordinateur lors de l'installation. Votre ordinateur se présente et vous rappelle où vous êtes en quelque sorte.
Ça a l'air inutile comme ça, mais avec Linux on peut se connecter à un autre PC facilement en console (on en parlera plus loin) et parfois on ne sait plus si on est dans la console de son PC ou de celle d'un autre PC
Bon, rentrez votre login, dans mon cas c'est mateo21.
On vous demande ensuite votre mot de passe :
Code : Console
Là, vous rentrez votre mot de passe, dans mon cas c'est
ooops euh j'ai rien dit
Ne soyez pas étonné si les lettres que vous tapez n'apparaissent pas. En fait, il n'y a même pas d'étoiles qui apparaissent à l'écran. Ça permet d'éviter qu'une personne derrière vous compte le nombre de caractères de votre mot de passe. Euh oui, sous Linux on est un peu parano
Si tout va bien, vous devriez voir l'écran suivant :
La console devrait afficher en bas une ligne similaire à :
Code : Console | mateo21@mateo21-desktop:~$ _ |
C'est bon, vous y êtes
Les différentes consoles
Sous toute machine Linux, il y a donc non pas une mais 6 consoles qui fonctionnent en simultané (d'où les 6 raccourcis différents de Ctrl + Alt + F1 à Ctrl + Alt + F6).
Vous pouvez savoir dans quel terminal vous êtes lors du chargement. Il y a en effet marqué "tty1" si vous êtes sur le terminal n°1, regardez de plus près mon screenshot de tout à l'heure :
L'information est un peu cachée mais elle est là

Au pire, vous changez de terminal jusqu'à retrouver celui où vous êtes. Et dès que vous en avez marre, vous pouvez retourner au mode graphique avec
Ctrl + Alt + F7.
Bon, la console en plein écran c'est bien joli mais pas franchement folichon. Je voulais vous montrer ça parce que c'est la vieille technique qui marche partout, même quand il n'y a pas d'interface graphique installée (c'est le cas sur la plupart des serveurs tournant sous Linux par exemple).
Mais dans le cas qui nous intéresse, c'est-à-dire le vôtre, croyez-moi il y a bien mieux. Même les plus fous de Linux préfèrent ouvrir une console dans le mode graphique. Les raisons sont multiples :
- Déjà parce que c'est plus sympa et que vous pouvez en même temps continuer à utiliser d'autres applications graphiques, tout en discutant avec vos amis en ligne...
- Mais aussi parce que la résolution de l'écran est plus grande et qu'on peut afficher plus de choses à la fois dans la console...
- Parce qu'on peut personnaliser l'apparence de la console et mettre, pourquoi pas, une image de fond...
- Et qu'on peut aussi utiliser la souris pour copier / coller du texte dans la console (comme quoi, la souris sert quelques rares fois en console !).
Je vous conseille donc fortement d'utiliser cette console en mode graphique autant que possible, notamment pendant toute la durée du cours. C'est juste plus confortable
Comment accéder à la console en mode graphique ? Tout dépend de votre gestionnaire de bureau, chacun propose un programme de console différent (mais tous se valent globalement).
Sous KDE
Pour KDE, il faut se rendre dans le menu K / Système / Konsole :
La console de KDE ressemble à ceci :
Vous pouvez vous amuser à changer la couleur de fond ou à mettre une image de fond, vous trouverez ça quelque part dans les menus. Personnellement, je suis un adepte de la console en blanc sur fond noir, le plus sobre et le plus agréable pour une utilisation hmmm... prolongée
Sous Gnome
Si vous êtes sous Gnome, rendez-vous dans Applications / Accessoires / Terminal :
Et voilà la console de Gnome :
Là encore, les couleurs se changent. J'ai d'ailleurs vite fait de mettre un fond noir à la place du fond blanc par défaut, je trouve ça plus reposant
Vous noterez que les 2 types de console permettent d'ouvrir plusieurs onglets. Pour celle de KDE, il y a une petite icône en bas à gauche, et pour celle de Gnome il y a le menu Fichier / Ouvrir un onglet.
Les onglets sont très pratiques en général car ils permettent de multiplier les consoles et donc de faire plusieurs choses en même temps.
Cette partie sur l'accès à distance en SSH avec Putty ne sert qu'à vous montrer les possibilités d'utilisation de la console. N'essayez pas de faire ça pour le moment, car il y a des détails un peu compliqués.
En clair : lisez ce que j'ai à vous dire, c'est pour votre culture. Pour que vous sachiez que ça existe. On verra SSH en pratique un peu plus tard dans le cours.
Une des grosses forces de la console, c'est d'être accessible à distance par internet. Il suffit que votre machine soit connectée à internet pour que vous puissiez vous logger de n'importe quel ordinateur dans le monde et faire comme si vous étiez chez vous !
Ça peut être pratique pour une foule de choses, comme surveiller l'état d'un téléchargement un peu long, lancer l'exécution d'un programme pour qu'il soit prêt lorsque vous serez rentré chez vous... mais surtout, c'est comme ça que l'on administre un serveur sous Linux.
Un serveur est, pour faire simple, un ordinateur tout le temps connecté à internet. Il permet d'offrir des services divers et variés aux internautes. Par exemple, il y a des serveurs web dont le rôle est de... distribuer des pages web. Si vous voyez cette page, c'est que le serveur du Site du Zéro vous l'a envoyée.
La grande majorité des serveurs tournent sous Linux. Lorsque vous allez sur un site, il y a de très fortes chances pour que ce soit un serveur Linux qui vous ait répondu. Les serveurs Windows existent aussi, mais ils sont plus rares et on apprécie en général la stabilité de Linux ainsi que la possibilité de l'administrer à distance en ligne de commande.
On aura l'occasion de reparler de serveurs Linux plus tard (c'est un vaste sujet), mais je souhaite déjà vous montrer rapidement comment on fait pour se connecter à distance.
Telnet et SSH
Pour communiquer entre votre ordinateur et le serveur, il faut un
protocole. C'est un ensemble de règles pour que 2 ordinateurs puissent discuter entre eux... un peu comme si 2 personnes devaient parler la même langue pour avoir une conversation
Il existe des tonnes et des tonnes de protocoles pour communiquer par internet, mais pour ce qui est d'accéder à la ligne de commande à distance, c'est-à-dire à la console, il y a 2 principaux protocoles :
- Telnet : le protocole le plus basique, qui présente le gros défaut de ne pas crypter les données échangées entre vous et le serveur. Si un pirate "écoute" vos échanges par un moyen ou un autre, il pourrait récupérer des informations sensibles, en particulier votre mot de passe lorsque vous l'envoyez à la connexion. Ce moyen de connexion reste utilisé mais peu par rapport à SSH.
- SSH : c'est le protocole le plus utilisé car il permet de crypter les données et de sécuriser ainsi la connexion avec le serveur. C'est de très loin celui que l'on préfère utiliser en général.
Vous l'aurez compris, vous entendrez donc plus parler de SSH que d'autre chose

.
PuTTY
Pour accéder à distance à un ordinateur sous Linux connecté à internet, vous avez besoin d'un programme spécial capable de restituer la ligne de commande à distance. Ce qui est bien, c'est que vous n'avez pas forcément besoin d'être sous Linux pour vous connecter à un autre ordinateur sous Linux. On peut très bien le faire depuis Windows, c'est d'ailleurs la procédure que je vais vous montrer ici.
Il existe plusieurs programmes capables de se connecter en SSH à un serveur Linux. Le plus célèbre sous Windows est sûrement PuTTY : il est gratuit, léger, et ne nécessite même pas d'installation (juste un exécutable à lancer).
Vous pouvez aller sur le site web du logiciel à l'adresse suivante :
http://www.chiark.greenend.org.uk/~sgtatham/putty/
Vous pouvez aussi télécharger directement le logiciel via ce lien :
Lorsque vous le lancez, la fenêtre de configuration s'affiche :
Il y a beaucoup de pages d'options, comme le montre la section à gauche de la fenêtre. Dans la majeure partie des cas, vous n'aurez pas besoin d'y aller, heureusement

Seule la première page est en fait vraiment importante : vous devez indiquer dans le champ
Host Name en haut le nom d'hôte du serveur (dans mon cas bart.siteduzero.com) ou encore l'adresse IP de l'ordinateur, ça marche aussi bien (c'est juste plus difficile à retenir). Vérifiez que le type de connexion sélectionné en-dessous est bien SSH, puis cliquez sur le bouton
Open tout en bas.
Si vous avez l'habitude de vous connecter à plusieurs serveurs différents, sachez qu'il est possible de sauvegarder les IP et configurations pour se connecter à chacun de ces serveurs. Utilisez la section "Saved sessions" au centre pour enregistrer ou ouvrir des connexions pré-enregistrées.
Après avoir cliqué sur Open, une fenêtre vous demandera lors de la première connexion au serveur si vous voulez stocker l'empreinte du serveur. C'est une sécurité pour vérifier que le serveur n'a pas changé depuis la dernière connexion et donc pour éviter que quelqu'un se fasse passer pour le serveur auquel vous avez l'habitude de vous connecter (le monde des pirates est sans pitié !

).
On ne vous embêtera normalement plus jamais avec cette fenêtre ensuite.
La fenêtre principale de PuTTY s'affiche alors :
Voilà, vous n'avez plus qu'à vous connecter

Indiquez votre login (par exemple mateo21), puis tapez Entrée.
On vous demande ensuite votre mot de passe, tapez-le puis faites Entrée.
Encore une fois, il est normal de ne pas voir d'étoiles lorsque vous tapez votre mot de passe. C'est une sécurité supplémentaire pour éviter que quelqu'un derrière vous ne compte le nombre de caractères.
Soyez donc rassuré, le serveur reçoit bien votre mot de passe. Tapez-le comme si de rien n'était.
Si le login et le mot de passe sont bons, vous avez accès à la console du serveur sous Linux comme si vous étiez devant !
Dans l'immédiat, vous ne devriez pas avoir à vous connecter en SSH à votre ordinateur à distance. Tout ce qu'on va faire, on va plutôt le faire en local, c'est-à-dire directement sur votre machine. On utilisera la méthode décrite plus haut, à savoir la console en mode graphique.
Au moins, vous savez désormais qu'il est aussi possible de communiquer à distance. Nous reparlerons plus en détail du protocole SSH plus tard dans ce cours, lorsque nous nous intéresserons à l'administration de serveurs.
Vous avez réussi à approcher la console ? Bravo ! C'est un premier pas
Le plus intéressant reste à venir. Nous allons dès le prochain chapitre taper nos premières lignes de commande dans la console de Linux.
Je suis prêt à parier que dans quelques heures vous aurez l'impression d'avoir appris une nouvelle langue
Au fait, je vous conseille de prendre une feuille de papier et un crayon pour prendre des notes. Ca ne mange pas de pain, et ça risque de vous être sacrément utile par la suite. Vous allez en effet devoir retenir pas mal de commandes qui seront pour vous totalement nouvelles !
Informations sur le tutoriel
Retour en haut
Créé : Le 08/06/2006 à 19:20:01
Modifié : Le 17/06/2009 à 11:22:05
Avancement : 100%
Licence : Copie non autorisée
38 commentaires