Pourquoi est-ce important de savoir comment les fichiers de son ordinateur sont organisés ? Plusieurs stratégies permettent de les manipuler plus facilement, et même créer des liens si besoin. Nous proposerons une douce introduction au terminal.
Chaire de recherche du Canada sur les écritures numériques, Bibliothèque des lettres et des sciences humaines, Ouvroir d'histoire de l'art et de muséologie numérique. — giulia.ferretti@umontreal.ca ; louis-olivier.brassard@umontreal.ca
3 questions :
3. Origines de l’informatique
Tout d’abord il faut écarter l’idée que l’ordinateur serait une boîte noire, ou une machine dont le comportement serait aussi incompréhensible qu’imprévisible. L’informatique s’est fortement complexifiée depuis une trentaine d’années, sans parler du fait que la plupart des terminaux sont désormais connectés à Internet, mais ce n’est pas pour cela qu’il faut considérer un ordinateur comme une chose mystérieuse.
Cela ne veut pas pour autant dire que je pourrais vous expliquer simplement comment fonctionne un ordinateur, mais déjà les distinctions que Michel Serres vous a présenté sont utiles :
4. Principes du numérique
Représentation de la réalité via des éléments discrets et atomiques qui correspondent à des nombres naturels.
S’oppose à analogique: représentation du réel via un signal continu, “analogue” au réel.
4. Principes du numérique
Les trois étapes ne sont pas étanches!
4. Principes du numérique
Pour pouvoir implémenter l’approche numérique dans une machine avec 2 symboles disponibles (plein vide, noir/blanc, +/-…).
Base 10 | Base 2 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
4. Principes du numérique
Base 10 | Base 2 |
---|---|
8 | 1000 |
9 | 1001 |
10 | 1010 |
11 | 1011 |
12 | 1100 |
13 | 1101 |
14 | 1110 |
15 | 1111 |
4. Principes du numérique
4. Principes du numérique
Série finie et exacte d’instructions permettant de résoudre un problème ou d’effectuer des calculs, à partir des données initiales (input). Les algorithmes respectent deux conditions:
4. Principes du numérique
Jouez avec une machine de Turing virtuelle
Un terminal est une interface graphique (graphical user interface, ou GUI) qui émule une console. Il nous permet d’exécuter un shell.
— Source
6. Usages basiques d’un terminal
Le shell est un interpréteur de commandes. Il s’agit d’un programme qui transmet les commandes entrées par l’utilisateur au système d’exploitation pour qu’il les exécute.
Des exemples de programmes shell sont bash
(qui est aussi un langage de commande) et zsh
(Z shell).
6. Usages basiques d’un terminal
Les autres interfaces graphiques nous offrent une série d’options et nous orientent vers un parcours d’action. Grâce au terminal, nous pouvons construire nos propres commandes, adaptées à nos besoins. En apprenant à bien utiliser le terminal, nous pouvons exécuter des commandes complexes très rapidement.
6. Usages basiques d’un terminal
Sous Linux ou Mac, chercher « Terminal » parmi les applications.
Sous Windows, chercher « Windows Power Shell » ; dans le menu déroulant en haut sélectionner « Ubuntu » ; écrire dans le terminal :
# Windows PowerShell
cd /c/Users/votre-nom-sur-Windows
Sinon suivre ces instructions ou celles-ci.
6. Usages basiques d’un terminal
pwd
# exemple de réponse: /home/nom-d-utilisateur
À noter ici qu’il s’agit d’un chemin absolu puisque l’adresse/chemin
indiquée commence par une barre oblique /
.
6. Usages basiques d’un terminal
ls
ou
ls -a
pour voir aussi les fichiers cachés (dont le nom débute par un .
).
Pourquoi vouloir voir les fichiers cachés ? Ce sera utile pour la suite.
6. Usages basiques d’un terminal
Pour changer de dossier, utiliser la commande cd
, suivi du chemin. Exemple :
cd Document/Photos
mène au dossier Photos
dans le dossier Documents
.
6. Usages basiques d’un terminal
TAB
pour compléter une commande↑
pour parcourir les dernières commandes utiliséesCTRL + R
pour rechercher une commande en tapant les premières lettres (faites à nouveau CTRL + R
autant de fois que nécessaire pour parcourir l’historique à partir des lettres que vous avez tapées)CTRL + L
ou commande clear
pour repartir sur un nouveau terminal
Nous avons plusieurs dizaines de photographies en très haute résolution. Du fait de leur résolution élevée (plusieurs mégapixels), la taille de fichier est également très élvée.
Pour ne pas alourdir le document numérique dans lequel nous souhaitons les incorporer (comme un diaporama ou un document PDF), il faudrait les redimensionner (par exemple, passer de 6000px
sur le long côté à au plus 600px
).
Comment faire?
Il serait possible d’importer chaque image dans un logiciel de traitement d’image (avec une interface graphique) et de renommer le fichier ainsi transformé.
Toutefois, pour une masse de plusieurs dizaines images, cela s’avérerait fastidieux et chronophage.
Cette tâche triviale pourrait être facilement automatisée grâce à une seule (!) instruction en ligne de commande.
Avec le logiciel ImageMagick (attention, il s’agit d’un logiciel sans interface graphique !), on pourrait utiliser l’utilitaire convert
qu’il propose :
#!/bin/bash
convert Photo1.jpg Photo1.redim.jpg -resize 600
Résultat : on obtiendrait ainsi un fichier Photo1.redim.jpg
qui ferait 600 px sur le plus long côté, sans écraser l’image originale.
Décortiquons la commande :
convert
: la commande que nous souhaitons exécuter. Il faudra l’accompagner d’arguments, un peu comme les paramtètres x, y, … d’une fonction mathématique.Photo1.jpg
: premier argument. Pour la commande convert
, il s’agit du fichier en entrée, qu’on souhaitera convertir.Photo1.redim.jpg
: deuxième argument. Il s’agit du fichier en sortie, résultant de la transformation, qu’on a choisi de renommer avec le suffixe .redim
.-resize 600
: il s’agit d’une option (ou « drapeau ») qui précise la conversion. Ici, le drapeau -resize
indique que la largeur maximale sur le plus long côté doit être d’au plus 600 px. Il faut toujours se référer à la documentation du logiciel pour connaître les options disponibles. Il est d’ailleurs courant d’avoir plusieurs drapeaux pour une seule commande (pour une image, on pourrait également spécifier, en plus de la résolution maximale, le ratio, la compression, la palette de couleurs, etc.).Là encore, on pourrait procéder une image à la fois… Ce qui n’est guère plus viable dès lors qu’on a plusieurs fichiers à redimensionner. Ne pourrait-on pas gagner du temps ?
Grâce aux connaissances acquises dans la section précédente, nous pourrons, au saupoudrant un petit peu de bash
, généraliser notre commande.
Considérant un dossier dans lequel il y a plusieurs images dont l’extension est .jpg
:
# Dans un répertoire ~/projet/avec/images
Photo1.jpg
Photo2.jpg
Photo3.jpg
Photo_x.jpg
# et ainsi de suite...
…on pourrait recourir à une boucle (pour chaque image .jpg
, effectuer le redimensionnement avec le suffixe .jpg
) :
#!/bin/bash
for i in *.jpg; do
convert $i.jpg $i.redim.jpg -resize 600
done
Résultat : chaque image a été redimensionnée sans écraser l’originale !
6. Usages basiques d’un terminal
touch
mon-fichier.txtmkdir
mon-dossier.txtgrep -ri mot-recherche
pour trouver tous les fichiers contenant le terme qui nous intéressefind . -type f -name "*.txt"
pour trouver tous les fichiers qui se terminent par l’extension .txt
6. Usages basiques d’un terminal
La commande mv
permet de renommer ou de déplacer un fichier (dans le terminal, c’est la même chose!).
Deux exemples :
# Pour renommer le fichier "mon-fichier.md" => "fichier.md"
mv mon-fichier.md fichier.md
# Pour déplacer le fichier "mon-fichier.md" dans le dossier "Documents/"
# Attention! On suppose que ce dossier existe déjà
mv /home/utilisateur/mon-fichier.md /home/utilisateur/Documents/mon-fichier.md
6. Usages basiques d’un terminal
# Pour supprimer uniquement un fichier
rm mon-fichier.md
# L'option -R permet de supprimer les sous-répertoires, récursivement.
# (Par défaut, la commande `rm` refusera de supprimer les sous-répertoires,
# au cas où on aurait oublié qu'il y en avait d'autres dans ce dossier.)
rm -R mon-dossier
6. Usages basiques d’un terminal
cat mon-fichier.md
Avec les logiciels nano
ou vim
:
# avec nano
nano mon-fichier.md
# avec vim
vim mon-fichier.md
6. Usages basiques d’un terminal
livre
contenant un sous-dossier chapitre01
, contenant lui-même un fichier texte.txt
chapitre01
livre
texte.txt
dans le dossier livre
texte.txt
dans le dossier livre
chapitre01
6. Usages basiques d’un terminal
man nom-commande