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

  1. 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).

  1. 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.

  1. (*)

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.

  1. 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.

  1. 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.

  1. 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.

  1. 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 &
  1. Ouvrez le fichier réponses avec atom et écrivez votre nom, prénom et une brève description de ce que font les programmes ls, cd, mkdir. Enregistrez bien les modification. Vous pouvez utiliser le raccourci Ctrl+s.

  2. Affichez dans le terminal le contenu du fichier réponses à l’aide de la commande cat (concatenate)

  3. 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"
  1. 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.

  1. La commande echo Positionnez-vous dans votre répertoire personnel à l’aide de la commande cd. 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.

  1. (*)

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 /.

  1. Indiquez dans le fichier réponse ce que contient le dossier /.

  2. Alias et ~ Le caractère ~ (réalisé avec ALTGr+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 >>.

  1. Chemin relatif, chemin absolu

Indiquez dans le fichier réponses:

  1. 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.

  1. Dans le dossier TD1, à l’aide de la commande echo, écrire dans un fichier nommé alphabet la chaîne de caractères “abcdefghijklmnopqrstuvwxyz”.

  2. 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)

  1. 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.

  1. (*)

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: dim. 07 janv. 2024 23:18:52 CET