Découvrir GNU/Linux épisode 4, la version texte

Bonjour les geeks. Aujourd’hui c’est le quatrième épisode de découvrir GNU/Linux. Vu que c’est l’épisode 4, je vous invite à regarder les épisodes précédents pour bien comprendre celui ci. Je vais mettre les liens dans la description et ici sous la forme d’une fiche si vous souhaitez y accéder.


Si je récapitule ce qu’on a vu dans les vidéos précédentes, on a vu que le terminal me permettait de me connecter et d’intéragir avec mon Linux. Ensuite on  vu comment on entrait des commandes, et comment on leur passait des paramètres.

Aujourd’hui, on va donc commencer à utiliser quelques commandes. Mais pour ça, il va falloir qu’on comprenne bien un concept, qui est un peu difficile au début.

— Ah ben ça va tu encourage bien là !

Ne t’inquiète pas. Tu pourras l’accepter dès le début, mais il ne faudra pas l’oublier.

Et ce concept, c’est celui de l’arborescence et plus particulièrement l’idée de répertoire courant. En elle même l’idée n’est pas compliquée. Même quand on est dans la ligne de commande, comme ici devant le Raspberry-pi, notre shell, et tous les programmes qu’on va lancer sont exécutés depuis un répertoire. C’est ce qu’on appelle le répertoire courant.

— C’est pas lui qui est écrit là, dans l’invite de commande ?

Si si, c’est bien lui, et ici tu vois, il dit tilde. Et tilde ça veut dire qu’on est chez nous, dans un répertoire qui a été créé pour nous, et qui nous appartient. On l’appelle le domicile ! Dans mon cas précis, je peux l’afficher avec la commande pwd. Cette commande veut dire « present working directory » ou en bon français présente le répertoire de travail.

— Heu je croyais que c’était le répertoire courant…

En fait c’est la même chose. Pour être totalement précis, c’est ce qu’on appelle en anglais le current working directory ou répertoire courant de travail. Mais en français on dit soit répertoire courant, soit répertoire de travail. Et ça représente la même chose.

Donc je tape pwd et il me dit que mon répertoire courant c’est /home/pi

— Alors le répertoire courant et le répertoire de travail c’est la même chose, c’est le répertoire domicile !

Ah. Pas tout à fait. Tu as bien le répertoire courant et de travail qui représentent la même chose, mais pas le répertoire domicile, c’est autre chose.

— ??? je comprends pas. Tu viens pas de dire qu’on était dans notre domicile ?

Si si, c’est bien ce que j’ai dit. Mais regarde, quand tu te lèves le matin, tu es à ton domicile.

— Heu oui, en général

Donc le matin quand tu te lèves, l’endroit où tu te trouves, c’est ton domicile. Et là maintenant tout de suite, tu es où ?

— Ben… chez toi ?

Et c’est ton domicile ?

— Ben.. nan

Alors tu peux imaginer que le répertoire courant c’est l’endroit où ton processus se trouve à un instant donné, là tout de suite et maintenant. Et ton domicile c’est là où tu es quand tu te connectes, comme toi quand tu te lèves le matin.

— Oui mais moi je me suis déplacé pour venir chez toi, pour prendre le café et tout

Et ben là ça va être pareil, on va devoir utiliser une commande qui va « déplacer » le processus dans un autre répertoire. C’est fait avec la commande cd qui d’ailleurs veut dire change directory ou change de répertoire ! Et la commande attend que tu lui donnes le nom du répertoire dans lequel tu souhaites aller.

Regarde, là je suis dans /home/pi

— C’est ton domicile !

Ouaip. Et si je fais cd /tmp, tu vois dans l’invite et si je fais pwd que je suis dans le répertoire qui s’appelle..

— /tmp !

Voilà ! Et là mon domicile c’est toujours /home/pi mais mon répertoire courant c’est /tmp

— Ah oui j’ai compris, en fait le courant c’est celui  qui change !

C’est ça ! Et donc chaque fois que tu es dans le shell, ou que tu lances un programme, ce shell ou ce programme s’exécute dans un répertoire.

— Oh ben ça va c’est pas si compliqué

Non c’est pas compliqué en soit, c’est juste qu’il faut se faire une représentation mentale de l’endroit où on est . Et tu ne dois jamais hésiter à taper le pwd pour savoir où tu te trouves.

— Mais ok. Mais. Je veux dire, si je veux lister le contenu du répertoire c’est quoi déjà ?

Ah, c’est la commande ls, dont j’ai un peu parlé la dernière fois. Le rôle de la commande ls c’est d’afficher le contenu d’un répertoire. Si je fais ls espace slash je vais afficher le contenu du répertoire /; de la racine. Si je fais juste ls, et que je ne dis pas le nom du répertoire dont je veux afficher le contenu, il va m’afficher les fichiers du répertoire courant. Bref, de pwd, de l’endroit où je suis.

— Et pour retourner dans mon domicile je fais cd /home/pi, c’est ça ?

Oui oui c’est ça, c’est totalement juste. Mais y’a une astuce, c’est que si je veux retourner dans mon domicile, il suffit que je fasse juste cd. Sans rien derrière ça me déplace dans mon répertoire domicile.

— Ah ouais c’est cool ça va vite ! C’est pratique ça. Mais moi y’a rien dans mon domicile ! Comment je fais pour créer un fichier ?

Tiens, alors c’est un des trucs les plus marrants sous Linux, c’est que il n’y a pas de commande qui a pour rôle de créer un fichier !

— Marrant ? T’as un humour bizarre des fois…

Je sais…

— Mais comment on le crée alors…

Ben en fait, le système fera un fichier quand il en a besoin. La création d’un fichier, c’est le résultat d’une autre action en général. Par exemple tu as édité un fichier texte et tu l’as sauvegardé. Ben si il n’existait pas ça le crée. Pareil tu as la commande touch qui permet de changer les dates des fichiers. Ben si je fais touch monfichier ça va en même temps le créer pour pouvoir y mettre la bonne date !

— Han c’est pratique, on n’a pas à se poser trop de questions… Mais pour les répertoires on fait comment ?

Alors pour les répertoires il faudra les créer explicitement. Et pour ça je vais utiliser la commande mkdir qui veut dire make directory ou fait un répertoire

— C’est vraiment bien qu’ils aient utilisé des mots qui disent ce que ça fait !

Ah ça oui ! Mais faut comprendre un peu l’anglais quoi. Donc regarde je crée monrep en faisant mkdir monrep. Et si je veux l’effacer, je fais rmdir comme Remove directory ou efface le répertoire ! Mais attention ça n’efface un répertoire que si il est déjà vide !

— Et pour effacer le fichier ?

C’est juste rm comme Remove. Mais regarde on va aussi voir comment copier des fichiers !

— C’est la commande copy ?

Ahah, presque ! En fait c’est cp, mais c’est bien pour dire copy. Et ils ont choisit une commande très courte, sur deux caractères, car le Télétype sur lequel le système a été développé avait des touches super dures. Et du coup, ils ont cherché à être économe en caractères tapés !

— Wow sérieux ?

Oui oui c’est pour ça. Je te mettrai le lien d’une vidéo en anglais dans la description qui raconte cette histoire ! (ici: https://www.youtube.com/watch?v=boahlBmc-NY )

Mais regardons comment elle marche. Si je fais cp monfichier macopie il va alors créer le fichier macopie qui va être une copie du fichier monfichier. Si je fais ls je les vois les deux !

Et si je veux copier ces deux fichiers dans monrep à ton avis je fais comment ?

— Heuuuuu, peut être que tu fais cp monfichier monrep et cp macopie monrep

Oui ça va marcher, mais tu dois te douter que y’a une astuce pour aller plus vite. Si tu fais cp monfichier macopie monrep ça va copier tous les fichiers dans le répertoire qui est en dernier. Mais il faut juste pas oublier que le dernier nom doit être un répertoire pour que ça marche !

— Et si c’est pas le cas ?

Ben tu auras une erreur qui te dit que le dernier n’est pas un répertoire !

— Ha, mais ça marche pas avec les répertoires !

Ah non, pour les répertoires c’est un peu différent. Il faut faire une copie récursive. Et pour ça on peut passer l’option -r pour …

— Récursif !

Yep ! Du coup si tu fais cp -r monrep lerepcopie ça va le faire. Mais un conseil. Utilise plutôt l’option -a que l’option -r

— Ah oui ? Pourquoi ?

En fait, quand tu fais -r, il fait une copie mais il ne copie pas toujours tous les attributs comme les droits par exemple. Ou alors quand tu as un lien symbolique, on en reparlera, le -r va faire une copie du fichier, mais ne va pas recréer un lien. Ça peut être embêtant.

— Bon, j’ai pas tout compris à part que -a c’est mieux !

Oui beaucoup mieux ! Et maintenant si tu veux effacer le répertoire copié tu fais comment ?

— Ah, rmdir ça marche pas, mais t’as raison c’est qu’il est pas vide

Oui, et tu peux le faire avec une des commandes les plus dangereuses qui soient ! Tu fais rm -r lerepcopie et il va l’effacer. Et si tu veux qu’il ne te demande pas confirmation pour chaque fichier trouvé dedans, tu fais rm -rf lerepcopie.

— Oula faut que je note tout ça

Oui ça commence à faire pas mal de choses. D’ailleurs, je te propose qu’on continue à bosser sur l’arborescence la prochaine fois, car il y a encore beaucoup à dire !

— Oui, je veux bien, car je vais avoir mal à la tête !!