Gérer les fichiers sous Linux

Contexte

Durée : 2h

Environnement de travail : Terminal Linux

Pré-requis : Aucun

Lorsque l'on utilise un ordinateur, on manipule souvent des fichiers. Linux ne fait pas exception, et nous allons voir qu'il existe de nombreux outils en ligne de commande qui permettent de créer, consulter, modifier, et organiser les fichiers et dossiers de l'ordinateur. Nous allons d'abord voir comment ils sont gérés et organisés, puis nous verrons les outils pour les manipuler.

Fonctionnement des fichiers

Objectifs

  • Comprendre l'organisation en fichiers sur Linux

  • Connaître les premières commandes pour naviguer dans les dossiers

SyntaxeLister les fichiers : ls

La commande ls permet de lister les fichiers et dossiers de l'endroit où l'on se trouve dans son terminal. Par défaut, lorsque l'on ouvre la console, on se trouve dans son dossier d'utilisateur. Si on fait un ls on voit donc les fichiers et dossiers classiques de ce répertoire.

kyane@europa:~$ ls
Documents  Images  Musique Téléchargements  Vidéos

Rappel

On peut utiliser l'option -p ou -F pour visualiser les dossiers

kyane@europa:~$ ls -p
Documents/  Images/  Musique/ Téléchargements/  Vidéos/ firefox.config

SyntaxeNaviguer dans le terminal : cd

Si l'on souhaite se rendre dans le dossier Documents on utiliser la commande cd (change directory, changer de dossier) suivi du nom du dossier dans lequel on veut se rendre.

kyane@europa:~$ cd Documents
kyane@europa:~/Documents$ ls
Boulot  Etudes   Finances   Logement  Picasoft

On constate que le prompt est à jour et que l'on est dans le dossier ~/Documents.

FondamentalSéparateur

Sous Linux le caractère de séparation de dossier est /. Ainsi le fichier /home/kyane/firefox.config est le fichier nommé firefox.config se trouvant dans le dossier kyane qui est lui-même dans le dossier home.

SyntaxeFichiers cachés : ls -a

Tout les fichiers dont le nom commence par un "." sont des fichiers cachés : ils ne s'affichent pas par défaut lorsque qu'on utilise la commande ls.

C'est utile pour des fichiers de configuration qui ne sont pas souvent modifiés, pour ne pas "polluer" l'interface avec pleins de fichiers de ce type que l'on ne souhaite pas voir.

Pour lister les fichiers cachés, on utilise l'option -a.

kyane@europa:~$ls -a
.  ..  .bash_logout  .bashrc Documents  Images  Musique .profile Téléchargements  Vidéos firefox.config

On voit ici les fichiers .bash_rc et .profile qui sont des fichiers cachés du répertoire utilisateur (en l’occurrence qui servent à configurer certains éléments du terminal).

RemarqueRaccourcis : . et ..

On constate que la commande ls -a retourne systématiquement deux dossiers nommés "." et "..".

kyane@europa:~/Documents$ ls -a
. .. Boulot  Etudes   Finances   Logement  Picasoft

Ce sont des raccourcis pour désigner :

  • le dossier courant dans le cas de .

  • le dossier parents dans le cas de ..

Par exemple cela nous permet de retourner facilement au dossier parent.

kyane@europa:~$ cd Documents
kyane@europa:~/Documents$ cd ..
kyane@europa:~$

RemarqueDossier utilisateur : ~

Le dossier de base de l'utilisateur (on parle de home directory) est désigné par le caractère "~". Par écrire ~/firefox.config est équivalent à écrire /home/kyane/firefox.config, "~" remplace le nom complet de mon dossier utilisateur, à savoir /home/kyane.

À retenir

Sous Linux le chemin des fichiers utilise le caractère "/" pour séparer les noms de dossier, et les fichiers ayant un "." en début de nom sont considérés comme cachés.

Naviguer avec un terminal est très simple en utilisant la commande cd et en s'appuyant sur des raccourcis comme ".", ".." et "~".

Exercice : Appliquer la notion

Sur votre machine, rendez vous dans le dossier nommé log qui se trouve lui-même dans le dossier nommé /var.

On utilise la commande cd

kyane@europa:~$ cd /var/log/

Une fois dans le dossier en question, listez les fichiers qui s'y trouve. Les dossier doivent être facilement identifiables.

L'option -p ou -F de ls devrait aider.

kyane@europa:/var/log$ ls -F
alternatives.log        apache2/         btmp             debug          mail.err       auth.log       dpkg.log          lastlog  messages   syslog

Bien entendu les fichiers affichés peuvent varier en fonction de la machine.

Arborescence des fichiers

Objectifs

  • Savoir ce qu'est la racine

  • Savoir faire la différence entre un chemin relatif et absolu

  • Comprendre l'arborescence classique sous Linux

DéfinitionLa racine

La racine dans un système de fichier est le dossier de base qui contient tout les autres dossiers, toute l'arborescence. Le cas de de Linux, la racine est le dossier /. Il n'y a rien au dessus, aucun dossier ne contient la racine, et tout les fichiers, dossiers et sous-dossiers sont contenus dans /.

Exemple

Dans n'importe quel dossier, je peux utiliser la commande pwd pour connaître l'endroit où je me trouve.

kyane@europa:~$ pwd
/home/kyane

Ici c'est le dossier de l'utilisateur (on le remarque grâce au "~" dans le prompt), c'est à dire /home/kyane. Si l'on veut se rendre à la racine, on peut donc remonter 2 dossiers en arrière.

kyane@europa:~$ cd ../..
kyane@europa:/$ pwd
/
kyane@europa:/$ ls
bin   dev  home        lib    lib64   media  opt   root  sbin  sys  usr  vmlinuz
boot  etc  initrd.img  lib32  libx32  mnt    proc  run   srv   tmp  var

Chemin absolu ou relatif

Dans l'exemple précédent on a utilisé cd ../.. pour se rendre à la racine, mais ça ne fonctionne que parce que l'on avait besoin de remonter 2 dossiers en arrière pour atteindre la racine. Si on avait été dans le dossier /var/log/docker on aurait eu besoin de faire cd ../../.., ou alors simplement cd /. Il y a donc 2 manières de se déplacer d'un dossier à l'autre.

DéfinitionChemin absolu

Un chemin absolu est un chemin qui permet de désigner un fichier (ou dossier) en fonction de sa localisation par rapport à la racine. On le reconnaît car il commence tout le temps par la caractère "/", la racine. Par exemple /etc/cron.d est un chemin absolu : quelque soit le dossier dans lequel je me trouve initialement je peux m'y déplacer en faisant cd /etc/cron.d.

DéfinitionChemin relatif

Un chemin relatif est un chemin qui permet de désigner un fichier (ou dossier) en fonction de sa localisation par rapport au dossier dans lequel on se trouve actuellement. Par exemple cd ../etc/cron.d permet de se rendre, à l'aide d'un chemin relatif, dans le dossier /etc/cron.d si l'on se trouve dans le dossier /home.

L'arborescence Linux

À la racine se trouve une grande quantité de dossiers différents, comme nous avons pu le voir.

kyane@europa:/etc/cron.d$ ls /
bin   dev  home        lib    lib64   media  opt   root  sbin  sys  usr
boot  etc  lib32  libx32  mnt   proc  run   srv   tmp  var

Ces dossiers sont souvent les mêmes d'une machine ou d'une distribution à une autre. En effet Linux a tendance à suivre une certaine logique d'organisation des fichiers et sous-dossiers, chaque dossier présent à la racine va contenir des fichiers selon certaines thématiques. Par exemple :

  • bin est un dossier qui va contenir beaucoup de programmes et commandes qui peuvent s’exécuter (des fichiers BINaires donc) ;

  • dev va contenir des dossiers particuliers qui vont permettre de gérer les périphériques : disque, clef USB, écran, etc ;

  • home va contenir les dossiers d'utilisateurs. Par exemple /home/kyane est le dossier d'utilisateur de kyane, tandis que /home/clement est celui de clement ;

  • var va contenir tout un tas de données variables : des messages du système (logs), du cache pour certains logiciels, etc.

  • etc contient la plupart des fichiers de configurations.

Il n'est pas nécessaire de connaître tout les dossiers, mais il est important de savoir qu'il y a une logique d'organisation. Avec l'habitude, cela permettra d'identifier rapidement si un fichier est de la configuration ou un programme, en fonction de là où on le trouve.

À retenir

Sous Linux les fichiers et dossiers sont organisés selon une certaine logique et forment une arborescence. Celle-ci commande à la racine, qui est le dossier parent de tout le système de fichier. Pour désigner un fichier, on utilise son chemin, soit absolu (à partir de la racine), soit relatif (en fonction du dossier courant).

Exercice : Appliquer la notion

Exécutez la commande cd sans paramètres, dans quel dossier est-ce que l'on se retrouve ?

On utilise la commande pwd

On se retrouve dans son dossier d'utilisateur.

kyane@europa:/etc/cron.d$ cd
kyane@europa:~$ pwd
/home/kyane

On se rend dans le dossier /var/log puis on lance la commande cd ../cache/apt/. Quel est le chemin absolu du dossier dans lequel on se retrouve ?

Le dossier dans lequel on se retrouve est /var/cache/apt, car on remonte d'un dossier puis on descend dans cache/apt.

On commence par se positionner dans le dossier de départ.

kyane@europa:~$ cd /var/log

Puis on se rend dans le dossier de destination.

kyane@europa:/var/log$ cd ../cache/apt/
kyane@europa:/var/cache/apt$ 

On constate dans le prompt (mais on peut utiliser la commande pwd) que le chemin absolu est bien /var/cache/apt.

Éditer des fichiers

Objectifs

  • Savoir créer un fichier ou un dossier

  • Savoir modifier un fichier texte dans son terminal

Mise en situation

Sous Linux, la quasi-totalité des fichiers de configuration sont de simples fichiers textes. Sur un serveur par exemple, on créé et modifie quotidiennement des fichiers permettant de configurer les différents logiciels de celui-ci. Il est donc particulièrement important de savoir comment faire ceci dans un terminal.

MéthodeCréer un fichier

Créer un fichier est très simple avec la commande touch.

kyane@europa:~/librecours$ touch roman.txt
kyane@europa:~/librecours$ ls
roman.txt

La commande a bien créé un fichier nommé roman.txt dans le dossier où je me trouve (en l’occurrence ~/librecours).

Remarque

Si on regarde le manuel de la commande touch, on constate qu'il est indiqué « touch - change file timestamps », ce qui veut dire que c'est une commande qui permet de changer la date de modification d'un fichier. On pourrait se demander pourquoi on utilise cette commande pour créer un fichier dans ce cas, mais la suite du manuel nous indique « A FILE argument that does not exist is created empty, unless -c or -h is supplied. ». Si le fichier n'existe pas, il est donc créé, c'est pour cela que cette commande est celle utilisée pour créer un fichier sous Linux.

MéthodeCréer un dossier

Créer un dossier est tout aussi simple qu'un fichier, on utilise simplement la commande mkdir.

kyane@europa:~/librecours$ mkdir photos
kyane@europa:~/librecours$ ls -F
photos/  roman.txt
kyane@europa:~/librecours$ cd photos/
kyane@europa:~/librecours/photos$ 

Il est aussi possible de créer plusieurs dossiers en même temps, en spécifiant plusieurs arguments.

kyane@europa:~/librecours$ mkdir films musiques

Ou encore de créer une arborescence de sous-répertoires d'un seul coup.

kyane@europa:~/librecours$ mkdir -p documents/factures/gaz

Nano, un éditeur de texte en console

Un éditeur de texte est un programme qui permet de modifier des fichiers texte, on connaît par exemple le fameux Bloc-Notes sous Windows. À la différence du traitement de texte, qui est un logiciel qui édite des fichiers aux formats complexes, l'éditeur de texte est très léger, à tel point qu'il en existe de nombreux disponibles directement dans le terminal. Le plus simple pour débuter est sans doute Nano.

Méthode

Pour lancer l'édition d'un texte avec Nano, il suffit d'utiliser la commande du même nom et de spécifier le fichier.

kyane@europa:~/librecours$ nano roman.txt

Une fenêtre s'ouvre alors dans le terminal, c'est l'éditeur de texte.

MéthodeÉcrire du texte

Pour écrire dans notre fichier, rien de plus simple, il suffit de taper au clavier. La touche entrée permet d'aller à la ligne, et les flèches directionnelles de se déplacer dans le texte.

Extrait du roman Traces (Stéphane Crozat, Framabook, 2018)

MéthodeLes raccourcis

Pour effectuer les opérations principales (enregistrer le fichier, copier/coller du texte, etc.) Nano s'appuie sur des raccourcis clavier qui sont, en partie, spécifiés en bas de la fenêtre.

Le symbole ^ désigne la touche Ctrl. Pour enregistrer le fichier on fera donc Ctrl + o. Nano propose ensuite, en bas de fenêtre, de confirmer le nom du fichier.

De la même manière on peut utiliser Ctrl + x pour fermer la fenêtre.

À retenir

Les commandes touch et mkdir permettent très simplement de créer fichiers et dossier. Les fichiers peuvent ensuite être édités directement en console à l'aide de Nano, qui est un éditeur particulièrement adapté pour débuter, avec son interface minimaliste et ses raccourcis explicitement indiqués dans la fenêtre.

Exercice : Appliquer la notion

Dans le dossier de votre choix, on souhaite créer des sous-dossiers qui vont contenir des fichiers.

Créez 3 dossiers en utilisant une seule commande

  • documents

  • documents/finances

  • images

L'option -p de la commande mkdir devrait permettre de tout faire en une fois.

mkdir -p documents/finances images

Dans le dossier documents, créez 2 fichiers vides nommés todo.txt et cv.tex. Listez ensuite le contenu du dossier pour que l'on fasse la différence entre les dossiers et fichiers.

On créé les 2 fichiers

kyane@europa:~/librecours$ touch documents/todo.txt
kyane@europa:~/librecours$ touch documents/cv.tex

Puis on liste le contenu du dossier.

kyane@europa:~/librecours$ ls -F documents/
cv.tex  finances/  todo.txt

Dans un fichier documents/finances/compta.txt écrivez quelques lignes de texte.

Le texte en lui même n'est pas important, l'essentiel est d'utiliser l'outil Nano correctement.

On utilise Nano pour créer et ouvrir le fichier

kyane@europa:~/librecours$ nano documents/finances/compta.txt

Après avoir écrit quelques lignes, on utilise Ctrl + o pour enregistrer le fichier, et Ctrl + x pour quitter Nano

Déplacer des fichiers

Objectifs

  • Savoir copier un fichier

  • Savoir déplacer un fichier

  • Savoir supprimer un fichier

MéthodeCopier un fichier

Pour copier un fichier on utilise la commande cp (abréviation de copy). Elle prend en paramètre le fichier source puis le fichier (ou dossier) de destination.

kyane@europa:~/librecours$ cp documents/compta-2019.txt archives/

Cette commande va copier le fichier documents/compta-2019.txt dans le dossier archives.

kyane@europa:~/librecours$ ls archives/
compta-2019.txt

MéthodeCopier un dossier

Pour copier un dossier on utilise la même commande, mais il est nécessaire d'utiliser le paramètre -r (pour recursive). Cela permet d'indiquer que l'on souhaite copier le répertoire, mais aussi tout les fichiers et sous-dossiers qu'il contient

kyane@europa:~/librecours$ ls images/
photo.png
kyane@europa:~/librecours$ cp -r images/ archives/
kyane@europa:~/librecours$ ls -F archives/
compta-2019.txt  images/
kyane@europa:~/librecours$ ls -F archives/images/
photo.png

Ici tout le dossier images et son contenu sont copiés dans le dossier archives.

MéthodeDéplacer un fichier

La commande mv est utilisée pour déplacer un fichier ou un dossier, et donc indirectement aussi pour les renommer. Elle s'utilise de la même manière que la commande cp.

mv vieuxfichier nouveaufichier

Par exemple pour déplacer un fichier dans un autre dossier

kyane@europa:~/librecours$ mv roman.txt archives/

MéthodeSupprimer un fichier

Enfin, la commande rm (abréviation de remove) permet de supprimer un fichier sur la machine.

kyane@europa:~/librecours$ ls archives/
compta-2019.txt  images  roman.txt
kyane@europa:~/librecours$ rm archives/roman.txt 
kyane@europa:~/librecours$ ls archives/
compta-2019.txt  images

Certains fichiers sont protégés en écriture, de telle sorte qu'il est nécessaire de confirmer la suppression, pour éviter les erreurs.

kyane@europa:~/librecours$ rm protected.txt 
rm : supprimer 'protected.txt' qui est protégé en écriture et est du type « fichier vide » ? y

RemarqueForcer la suppression

Pour éviter de devoir confirmer la suppression d'un fichier il est possible d'ajouter l'option -f à la commande, pour forcer la suppression du fichier. Mais attention, si le fichier est protégé en écriture c'est peut-être qu'il y a une bonne raison...

AttentionSuppression définitive

Il est très important de noter que rm est une commande qui supprime définitivement le fichier de la machine. Il n'y a pas de système de corbeille ou de sauvegarde que l'on peut restaurer lorsque l'on utilise cette commande. Il est donc important de réfléchir avant de lancer cette commande.

MéthodeSupprimer un dossier

Pour supprimer un dossier, on utilise la même commande mais il est nécessaire d'utiliser le paramètre -r (comme avec cp)

kyane@europa:~/librecours$ rm -r archives/

À retenir

Avec nos 3 nouvelles commandes, on sait désormais comment copier, déplacer, renommer ou supprimer des fichiers et dossiers sur notre ordinateur. Elles sont simple d'utilisation, et généralement la différence entre fichiers et dossiers se traduit simplement par l'utilisation de l'option -r. On prend garde cependant à la commande rm, qui supprime de manière définitive.

MéthodeMétacaractère

Un métacaractère est un caractère qui peut être substitué par une sélection de motifs, vous donnant plus de flexibilité dans la recherche. Vous pouvez utiliser des métacaractères, dans les commandes que nous avons vu, pour plus de flexibilité, par exemple pour copier plusieurs fichiers en même temps. Il en existe plusieurs :

  • * le métacaractère des métacaractères, il est utilisé pour représenter n'importe quel caractère ou n'importe quelle chaîne de caractères ;

  • ? utilisé pour représenter un unique caractère ;

  • [] utilisé pour représenter n'importe caractère dans les crochets.

Le plus courant est d'utiliser *, par exemple pour copier tout mes fichiers images dans un autre dossier.

kyane@europa:~/librecours$ cp images/*.png archives/

Cela copie tout les fichiers terminant par .png depuis le dossier images vers le dossier archives.

Attention

L'utilisation de métacaractères peut être dangereuse. On suppose qu'il existe un fichier appelé -R.

Si on exécute rm *, la commande construite sera rm -R *, qui efface récursivement tous les fichiers.

Pour prévenir ce comportement, on peut séparer explicitement les options des arguments en utilisant l'option -- :

rm * exécutera rm -- -R * et l'argument -R sera bien interprété comme un nom de fichier et non comme une option.

Exercice : Appliquer la notion

Créez un dossier vide dans lequel réaliser l'exercice. Une fois placé dans ce dossier, copiez/collez les commandes suivantes pour préparer "l'environnement".

mkdir -p imgaes/vacances-2019 imgaes/noel-2018 imgaes/a-developper
touch imgaes/vacances-2019/photo1.jpg imgaes/vacances-2019/photo2.jpg imgaes/vacances-2019/photo3.jpg imgaes/noel-2018/cadeau-papa.png imgaes/noel-2018/cadeau-sarah.png imgaes/noel-2018/cadeau-jonathan.png

Pour commencer on constate que le dossier imgaes porte un nom un peu bizarre, sans doute une faute de frappe. Renommez-le correctement.

$ mv imgaes images

On souhaite développer toutes les photos de Noël 2018, ainsi que la "photo 1" des vacances de 2019. Pour cela on veut les copier dans le dossier images/a-developper/ que l'on va envoyer au développeur de photos.

Il y a plusieurs manières de procéder, mais il est possible de tout faire en une seule commande.

La méthode la plus rapide est d'indiquer plusieurs paramètres à la commande cp : le premier pour récupérer toutes les photos de Noël, le second pour prendre la "photo 1" des vacances, le dernier pour spécifier la destination des 2 premiers paramètres.

$ cp images/noel-2018/*.png images/vacances-2019/photo1.jpg images/a-developper/

Mais il était aussi possible de déplacer les fichiers un par un, c'est beaucoup plus fastidieux et c'est là qu'on voit la puissance de la ligne de commande (et des métacaractères).

Afficher des fichiers

Objectifs

  • Savoir afficher tout ou partie des fichiers dans la console

Afficher des fichiers

Nous savons comment ouvrir des fichiers avec Nano pour les éditer directement dans la console. On pourrait donc se demander l'intérêt d'utiliser d'autres commandes pour afficher le contenu d'un fichier dans la console, puisque l'on peut le consulter avec Nano. Cependant cet outil reste un éditeur de texte, il est prévu pour éditer des fichiers et possède une interface qui lui est propre. Avoir une commande pour afficher le contenu d'un fichier et c'est tout permet de facilement récupérer le contenu d'un fichier pour le manipuler (même si l'on ne sait pas encore comment faire des scripts).

MéthodeLa commande cat

On peut utiliser cat (abréviation de concatenate) pour afficher le contenu d'un fichier dans le terminal.

kyane@europa:~/librecours$ cat roman.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ornare vitae sem sed cursus. Maecenas sed mi eget ligula ullamcorper dapibus. 
Nullam eu elit non dui maximus vulputate. Ut dolor est, commodo eu finibus nec, imperdiet et lacus. Morbi at mauris eros. Nullam pharetra aliquet mauris id finibus. 

Comme son nom l'indique, la commande peut servir à afficher (et donc concaténer) plusieurs fichiers.

kyane@europa:~/librecours$ cat roman.txt suite.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ornare vitae sem sed cursus. Maecenas sed mi eget ligula ullamcorper dapibus. 
Nullam eu elit non dui maximus vulputate. Ut dolor est, commodo eu finibus nec, imperdiet et lacus. Morbi at mauris eros. Nullam pharetra aliquet mauris id finibus. 
Pellentesque lectus dui, iaculis ac lorem in, vehicula porttitor urna. Mauris tincidunt, neque et rutrum placerat, leo dolor tempus felis, ac accumsan odio lacus nec nisl. 
Nullam vulputate mattis aliquam. Vestibulum cursus dictum metus. 
In iaculis orci eget mauris maximus, non mollis augue lacinia. Nulla viverra lorem lectus, vel cursus odio mollis quis. Aenean iaculis dui pellentesque, gravida turpis at, porta nibh. 

Exemple

On se rend compte cependant que cat est adapté lorsque l'on veut visualiser de petits fichiers. Essayons avec le fichier /var/log/syslog qui contient des messages d'information du système d'exploitation.

cat /var/log/syslog

Énormément de texte s'affiche dans notre console, ce n'est pas pratique à lire puisque qu'il faut remonter tout en haut du fichier.

MéthodeLa commande less

Pour nous aider à visualiser le fichiers qui sont très grand, on utilise la commande less. Cet outil ouvre une interface très basique qui permet de visualiser le fichier et de se déplacer dedans.

On peut utiliser quelques commandes :

  • parcourir le fichier à l'aide des flèches Haut/Bas, mais aussi faire de plus grand sauts avec les flèches Page Up/Page Down ;

  • quitter l'interface avec la touche q;

  • g permet de se rendre au début du fichier ;

  • G permet de se rendre en fin de fichier ;

  • écrire / suivi d'un mot permet de rechercher le mot dans le document.

Récupérer des portions de fichier

Afficher un fichier dans sa totalité c'est bien, mais dans certains cas on ne souhaite pas forcément récupérer tout le fichier. Par exemple pour notre fichier de log /var/log/syslog, on pourrait ne vouloir consulter que les 20 dernières lignes, pour voir les 20 événements les plus récents (chaque message supplémentaire de l'OS est inscrit à la fin du fichier). On peut utiliser cat et ne regarder que la fin, mais ce n'est pas très pratique si le fichier est très gros cat mettra du temps à l'afficher, et si l'on ne veut consulter que les premières lignes à l'inverse on est toujours embêté.

Méthodetail

La commande tail (qui signifie queue en anglais), permet justement de n'afficher que les dernières lignes d'un fichier.

kyane@europa:~/librecours$ tail /var/log/syslog
Nov 27 14:40:42 europa org.freedesktop.thumbnails.Thumbnailer1[20118]: Registered thumbnailer evince-thumbnailer -s %s %u %o
Nov 27 14:40:42 europa org.freedesktop.thumbnails.Thumbnailer1[20118]: Registered thumbnailer dia -t png -e %o -s %s %i
Nov 27 14:40:42 europa org.freedesktop.thumbnails.Thumbnailer1[20118]: Registered thumbnailer /usr/bin/gdk-pixbuf-thumbnailer -s %s %u %o
Nov 27 14:40:42 europa org.freedesktop.thumbnails.Thumbnailer1[20118]: Registered thumbnailer atril-thumbnailer -s %s %u %o
Nov 27 14:40:42 europa org.freedesktop.thumbnails.Thumbnailer1[20118]: Registered thumbnailer /usr/bin/gdk-pixbuf-thumbnailer -s %s %u %o
Nov 27 14:40:43 europa dbus-daemon[1976]: [session uid=1000 pid=1976] Successfully activated service 'org.freedesktop.thumbnails.Cache1'
Nov 27 14:40:43 europa dbus-daemon[1976]: [session uid=1000 pid=1976] Successfully activated service 'org.freedesktop.thumbnails.Thumbnailer1'
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Cache1 lost on the message dbus, exiting.
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Manager1 lost on the message dbus, exiting.
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Thumbnailer1 lost on the message dbus, exiting.

Par défaut la commande ne retourne que les 10 dernières lignes, mais on peut utiliser le paramètre -n pour en obtenir un nombre précis.

kyane@europa:~/librecours$ tail -n 5 /var/log/syslog
Nov 27 14:40:43 europa dbus-daemon[1976]: [session uid=1000 pid=1976] Successfully activated service 'org.freedesktop.thumbnails.Cache1'
Nov 27 14:40:43 europa dbus-daemon[1976]: [session uid=1000 pid=1976] Successfully activated service 'org.freedesktop.thumbnails.Thumbnailer1'
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Cache1 lost on the message dbus, exiting.
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Manager1 lost on the message dbus, exiting.
Nov 27 14:40:43 europa tumblerd[20118]: Name org.freedesktop.thumbnails.Thumbnailer1 lost on the message dbus, exiting.

Méthodehead

L'opposée de tail est la commande head (qui signifie tête) qui peut-être utilisée de la même manière, mais pour afficher le début d'un fichier.

kyane@europa:~/librecours$ head -n 5 /var/log/syslog
Nov 27 08:14:53 europa blueman-mechanism[701]: Unable to init server: Could not connect: Connection refused
Nov 27 08:14:53 europa systemd[1]: logrotate.service: Succeeded.
Nov 27 08:14:53 europa systemd[1]: Finished Rotate log files.
Nov 27 08:14:53 europa containerd[858]: time="2020-11-27T08:14:53.758802087+01:00" level=info msg="loading plugin \"io.containerd.content.v1.content\"..." type=io.containerd.content.v1
Nov 27 08:14:53 europa systemd[1]: Started User Login Management.

À retenir

Pour afficher des fichiers dans la console, on utilise des commandes dédiées plutôt que d'ouvrir le fichier avec Nano. On utilise cat plutôt pour les petits fichiers, et less pour les plus grands. Pour récupérer uniquement le début ou la fin d'un fichier, on s'appuie sur les commandes head et tail.

Exercice : Appliquer la notion

Nous allons manipuler un fichier texte contenant un Lorem ipsum : un texte latin aléatoire utilisé par organiser le texte d'une page Web lors des phases de développement. Pour cela téléchargez le fichier suivant et placez le dans un dossier de votre choix.

Sans utiliser Nano, visualisez le fichier et trouvez la première occurrence du mot bibendum.

On va s'appuyer sur la commande less.

On ouvre le fichier avec less pour le visualiser.

$ less loremipsum.txt

Une fois dans l'interface, on tape /bibendum pour trouver les occurrences du mot.

Comment récupérer les 2 dernières lignes du fichier dans notre terminal ?

On utilise la commande tail.

$ tail -n 2 loremipsum.txt 
Pellentesque quis blandit erat. Proin elit urna, imperdiet a vehicula non, consectetur eget urna. Aenean sit amet nunc leo. Etiam in porta orci, quis condimentum justo. Pellentesque pulvinar facilisis odio, sed posuere nunc porttitor at. Praesent vitae urna at arcu malesuada finibus. Mauris pulvinar lectus eu venenatis laoreet. Praesent nec nisl nec lectus ornare consectetur. Nunc id augue sit amet enim gravida pellentesque. Cras porttitor ornare varius. Cras blandit velit nec mi tempus luctus a eu lectus. Sed id ex sed augue convallis consectetur at at nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus imperdiet libero et suscipit auctor

Quiz

Quiz - Culture

Sous Linux, quel est le caractère utilisé comme séparateur pour les chemins de fichier ?

/

\

$

~

Qu'est-ce que la racine du système de fichier sous Linux ?

C'est le disque dur principal utilisé pour stocker les fichiers

C'est le nom du dossier le plus haut dans l'arborescence, le dossier / qui contient tout les autres dossiers.

C'est la langue utilisée dans le terminal

Parmi ces propositions, lesquelles sont des chemin relatifs ?

photos/vacances

/etc/ssh

/var/log

../var/log

Sous Linux, quel est le caractère utilisé pour désigner le dossier de l'utilisateur courant ?

/

\

$

~

Quiz - Méthode

Quelle commande devriez vous utiliser pour voir les fichiers cachés ?

Comment créer un fichier avec le nom "monfichier" ?

Comment créer un dossier nommé "photos" ?

Quelle est la touche à utiliser pour quitter l'interface de less ?

Quel paramètre utiliser avec la commande cp pour copier un répertoire entier ?

Comment renommer le dossier "photos" en "images" ?

Quiz - Culture

Sous Linux, quel est le caractère utilisé comme séparateur pour les chemins de fichier ?

/

\

$

~

En effet on écrit les chemins sous la forme /home/kyane/hello.txt

Qu'est-ce que la racine du système de fichier sous Linux ?

C'est le disque dur principal utilisé pour stocker les fichiers

C'est le nom du dossier le plus haut dans l'arborescence, le dossier / qui contient tout les autres dossiers.

C'est la langue utilisée dans le terminal

Parmi ces propositions, lesquelles sont des chemin relatifs ?

photos/vacances

/etc/ssh

/var/log

../var/log

Les chemins relatifs sont ceux qui dépendent du contexte, et qui ne commence donc pas à la racine (donc pas par un "/")

Sous Linux, quel est le caractère utilisé pour désigner le dossier de l'utilisateur courant ?

/

\

$

~

En effet on utilise le "~", par exemple ~/Documents désigne le dossier Documents qui se trouve dans mon dossier d'utilisateur.

Quiz - Méthode

Quelle commande devriez vous utiliser pour voir les fichiers cachés ?

ls -a

Comment créer un fichier avec le nom "monfichier" ?

touch monfichier

Comment créer un dossier nommé "photos" ?

mkdir photos

Quelle est la touche à utiliser pour quitter l'interface de less ?

q

Quel paramètre utiliser avec la commande cp pour copier un répertoire entier ?

-r

Comment renommer le dossier "photos" en "images" ?

mv photos images
Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.