Codage et Représentation de l’information, année 2019
Rappel
Les TD sont a rendre via Moodle avant mercredi soir à minuit pour les groupes 1, 2 et 3 et jeudi soir à minuit pour les 4 et 5. Une fraction des TDs seront notés chaque semaine. Tout TD non rendu entraîne un 0 immédiatement.
Ces TDs sont à réaliser sous linux. Il faut donc
allumer (ou redémarrer) votre machine de TP et la faire redémarrer sous
Linux. Les TDs sont à retourner via Moodle sous forme
d’une archive tar.gz
. Pour comprimer un
dossier dans ce format il faut executer la commande:
tar cvf name_archive.tar.gz /chemin/vers/lerepretoire
Vous devez faire le maximum du TP dans le terminal, la liste des commandes tapées seront accessibles pour les correcteurs (si tout se passe bien).
Les questions avec une étoile (*
) sont facultatives est
bien plus difficiles.
À tout moment vous pouvez consulter le manuel d’une commande en
tapant man nom_de_commande
.
Attention
À chaque fois que vous quittez votre poste de travail, avant d’avoir rendu le TD vous devait éxecutez les deux commandes suivantes:
date >> ~/CRI/TD1/commandes
cat ~/.bash_history >> ~/CRI/TD1/commandes
Sans ces commandes, nous ne pourrons corriger votre TP et vous aurez 0.
À la fin du TD, pour pouvoir le rendre, vous devez éxecuter les commandes suivantes depuis votre répertoire personnel:
tar cvf ~/TD1.tar.gz ~/CRI/TD1
Puis vous devez déposez le fichier TD1.tar.gz
présent
dans votre répertoire personnel sur Moodle.
Manipulation via le terminal
- Ouvrir un terminal. Vous pouvez utiliser le
raccourci clavier
Ctrl+Alt+T
ou les menus de l’interface graphique.
Le terminal est un programme qui permet d’exécuter des programmes les uns à la suite des autres. Les programmes exécutés prennent des entrées et produisent des sorties. Il y a plusieurs sources d’entrées et de sorties : environnement, clavier, souris, fichiers, écran,… et plus types d’information dans les entrées et sorties : texte, valeur numérique, erreurs,… Toutes ces notions peuvent être compliquées et le but est d’apprendre petit à petit à les maîtriser.
Les chemins d’accès
Une première commande mkdir
(make directory)
permet de créer un répertoire à la position courante du
terminal, qui est par défaut votre répertoire personnel. (Cette
“position courante” ou répertoire de travail fait partie de
l’environnement d’un programme).
- Créer des répertoires:
mkdir CRI
Ici, CRI est une entrée du programme mkdir
.
Vérifiez que votre répertoire contient un dossier nommé
CRI
. Créez un sous répertoire à ce répertoire nommé
TD1
à l’aide de la commande:
mkdir CRI/TD1
Créez maintenant un répertoire tmp
dans votre répertoire
personnel et un répertoire test
dans ce répertoire
tmp
.
(*)
Essayez de créez directement le répertoire
CRI/notes/cours1/
. Vous devriez avoir un message d’erreur.
Lisez le manuel:
man mkdir
Trouvez l’option permettant de créer ce répertoire ainsi que son répertoire parent.
- Afficher le contenu d’un dossier
À l’aide de la commande ls
(list) nous allons
afficher le contenu d’un dossier. Le résultat est affiché sur la
sortie standard qui apparaît sous la ligne où vous avez entré la
commande. Il s’agit donc d’une sortie du programme.
Exécutez la commande
ls
Vérifiez que les fichiers et dossiers présent sont bien ceux de votre répertoire personnel.
La commande ls
accepte aussi des entrées qui spécifient
quels sont les répertoires dont on veut voir le contenu. Affichez le
contenu du répertoire CRI
à l’aide de la commande:
ls CRI
Créez un répertoire TD2
dans le répertoire
TD1
à l’aide de la commande mkdir
. Vérifier
que le répertoire est bien crée à l’aide de la commande
ls
.
- Supprimer des répertoire
À l’aide de la commande rmdir
qui fonctionne de manière
similaire à mkdir
il est possible de supprimer des
répertoires. Supprimer les répertoires TD1
et
TD2
.
- Se déplacer dans la hiérarchie
La commande cd
, change directory permet de
changer de répertoire de travail. Déplacer vous dans le répertoire
CRI
à l’aide de la commande:
cd CRI
Utilisez la commande pwd
(print working directory) qui
permet d’afficher le chemin correspondant au répertoire de travail.
Créez encore une fois les répertoires TD1
et
TD2
. Attention, cette fois ci, vous n’avez pas besoin
d’utiliser CRI/
dans la commande puisque vous êtes déjà
dans le répertoire CRI
.
Déplacez vous dans le répertoire TD1
. Vérifiez que vous
êtes dans le bon répertoire à l’aide de la commande
pwd
.
- Créez des fichiers textes
Les noms de fichier n’ont pas forcément d’extension (comme
.txt
dans un nom_fichier.txt
). Par défaut, les
fichiers sont dans un format texte. Vous pouvez créer un fichier vide à
l’aide de la commande touch
. Créez un fichier de réponses
dans le répertoire TD1
à l’aide de:
touch réponses
Supprimez ce fichier à l’aide de la commande rm
(remove).
rm réponses
Revenez dans votre répertoire personnel en utilisant la commande
cd
sans aucun argument. Vous pouvez
recréer le fichier réponses en utilisant cette fois ci son chemin dans
l’arborescence.
touch CRI/TD1/réponses
Vérifiez à l’aide de la commande ls
que ce fichier est
bien présent.
Exécuter des programmes
Nous aurons besoin très souvent de créer, lire et modifier des
fichiers texte sur le système de fichiers. Pour cela on peut utiliser
des éditeurs de textes adaptés. L’un des plus simples d’utilisation est
atom
. Vous pouvez l’ouvrir en exécutant la commande
atom
dans le terminal.
Attention, tant que la fenêtre est ouverte, vous n’aurez plus la main
sur le terminal (le terminal est occupé et n’est plus disponible pour
exécuter vos commandes). Pour reprendre la main, vous pouvez envoyer à
atom
un signal. Pour tuer brutalement une
commande lancée dans le terminal, il suffit d’utiliser le raccourci
Ctrl+C
.
Pour éviter de perdre la main sur le terminal, vous pouvez exécuter
atom
en tâche de fond à l’aide du symbole
&
:
atom &
Ouvrez le fichier
réponses
avecatom
et écrivez votre nom, prénom et une brève description de ce que font les programmesls
,cd
,mkdir
. Enregistrez bien les modification. Vous pouvez utiliser le raccourciCtrl+s
.Affichez dans le terminal le contenu du fichier réponses à l’aide de la commande
cat
(concatenate)Exécutez la commande
date
:
date
Le format de sortie peut être paramétré finement en fonction de vos besoins. Exécutez la commande:
date +"Le %x à %X"
- Consultez l’aide à l’aide de la commande
man
et indiquez dans le fichier réponses comment afficher uniquement le jour de la semaine.
Entrées, sorties, redirections
Il est possible de prendre le résultat d’une commande et de l’écrire dans un fichier.
- La commande
echo
Positionnez-vous dans votre répertoire personnel à l’aide de la commandecd
. Exécutez la commande.
echo "Ceci est affiché sur la sortie standard"
Puis la commande:
echo "Ceci est écrit dans le fichier pouet" >> CRI/TD1/pouet.
Affichez le contenu du fichier CRI/TD1/pouet
à l’aide de
la commande cat
. Créez un fichier date
dans le
dossier TD1
qui contient uniquement la date et l’heure à
l’aide de la commande date
.
(*)
En lisant la page web,
expliquez dans le fichier réponses
la différence entre le
symbole >
et le symbole >>
.
Illustrez-la avec un exemple de votre choix que vous placerez dans le
fichier réponses
.
Les chemins relatifs et absolus.
Le système de fichiers est une manière de ranger les
fichiers du système et des personnes l’utilisant. Le terminal permet de
lancer des commandes à partir d’un répertoire : le répertoire
courant (ou répertoire de travail). Lorsqu’on lance un nouveau
terminal le répertoire courant est votre répertoire personnel (dont
l’alias est ~
). Chaque commande cd
permet de
changer de répertoire courant. Un chemin relatif est un chemin
qui s’interprète à partir du répertoire courant (il ne commence pas par
/
). Un chemin absolu est un chemin qui s’interprète à
partir du répertoire racine (il commence par le répertoire racine
/
).
Sa racine est le dossier /
. Un chemin dans le
système de fichiers est une suite de répertoires séparés par des
/
.
Indiquez dans le fichier réponse ce que contient le dossier
/
.Alias et
~
Le caractère~
(réalisé avecALTGr+2
), désigne le chemin absolu vers votre répertoire personnel.
Exécutez la commande
echo ~
À l’aide de la commande touch
et en utilisant l’alias
~
créez un fichier rep_pers
dans le répertoire
TD1
.
Redirigez le résultat de la commande echo ~
vers ce
fichier à l’aide d’une redirection >>
.
- Chemin relatif, chemin absolu
Indiquez dans le fichier réponses
:
- le chemins absolu du fichier réponses
- le chemin relatif du fichier réponses depuis votre répertoire
personnel et depuis le dossier
CRI
.
- Les macros ../ et ./
Placez vous dans votre répertoire personnel et exécutez la commande:
cd ../../
Puis afficher le répertoire courant à l’aide de la commande
pwd
.
Placez vous dans le répertoire TD1
et réexécutez ces
deux commandes dans le même ordre.
Proposez une explication dans le fichier réponses
sur ce
que désigne ../
.
Recommencez avec la macro ./
.
Représentation des chaînes de caractères
Comme vu en cours magistral, les fichiers sur disque ne sont qu’une succession d’octets. Pour afficher ces octets et non pas le contenu d’un fichier, on peut utiliser un programme spécial.
Dans le dossier
TD1
, à l’aide de la commandeecho
, écrire dans un fichier nomméalphabet
la chaîne de caractères “abcdefghijklmnopqrstuvwxyz”.Explorez le contenu du fichier alphabet à l’aide de la commande:
od -c -t d1 o1 alphabet
Proposez une explication pour le résultat de cette commande.
(Si la commande xxd
est présente)
- Explorez cette fois ci le fichier avec à l’aide de la commande
xxd -c1 -b alphabet
Le résultat affiche le contenu binaire du fichier. Vérifiez brièvement que les encodages décimaux et binaires correspondent.
(*)
Ajoutez au fichier alphabet
des lettres accentuées :
“âîô”. En utilisant les commandes ci-dessus, faites une proposition
expliquant comment sont représentés ces caractères dans le fichier.
Compiled the: mer. 04 sept. 2024 12:49:38 CEST