Parties

  1. Table des matières
  2. raccourcis clavier
    1. Raccourcis clavier du shell: touche "tab"
    2. Raccourcis clavier du shell: les flèches
    3. Raccourcis clavier du shell: "control-c"
  3. manipulation de fichiers
    1. Création d'un répertoire pour le TP
    2. Télécharger une archive
    3. Le fichier ".tar.gz"
    4. Désarchivage
    5. Désarchivage (suite)
    6. Décourverte du contenu du répertoire
    7. Analyse du type d'un fichier
    8. Analyse du contenu d'un fichier
    9. Une image
    10. La commande "file"
    11. Le ménage
    12. deplacement d'un fichier
    13. Ménage: les fichiers png
    14. Méta-caractère "*"
    15. Comprendre le "*"
    16. Ménage: les fichiers jpg et gif
    17. Ménage: suite
  4. opérations sur une arborescence
    1. Copier un repertoire
    2. Détruire une arboresence
  5. processus
    1. Processus
    2. Liste des processus
    3. Tuer un processus
    4. Tuer un autre processus
    5. Tuer son propre bash
  6. chemins
    1. Chemins
    2. Chemins
    3. Chemins
    4. Chemins
    5. Chemins
    6. chemins relatifs à partir de répertoires différents
    7. chemins relatifs à partir de répertoires différents -2
    8. chemins relatifs à partir de répertoires différents -3
    9. chemins relatifs à partir de répertoires différents -4
  7. droits d'accès
    1. ls -l - proprietaire
    2. ls -l : groupe
    3. ls -l : droits
    4. Droits d'acces: mise en place
    5. droits d'accès à un fichier
    6. Commande ls
    7. Enlever des droits
    8. Droits d'ecriture
    9. Droits: le menage
  8. exercices divers
    1. Archive code source gzip
    2. Désarchivage
    3. Découverte du contenu
    4. La commande "wc"
    5. commande wc (suite)
    6. commande wc (suite 2)
    7. ls
    8. taille d'un fichier
    9. compression
    10. compression (suite)
    11. Décompression
    12. ls recursif
    13. cp et chemins relatifs
    14. Environement "less"
    15. La commande "tail"
    16. tail (suite)
    17. Le ménage
    18. Sondages

1. Table des matières

1.1 Table des matières


Bienvenue au TP 2.

Avez vous bien fait et fini le TP précèdent?

C'est important d'avoir bien compris les notions du TP précèdent avant de faire ce TP.
Si ce n'est pas fait, finissez d'abord le TP précèdent.

Cliquez sur "début du TP" pour commencer.

2. raccourcis clavier

2.1 raccourcis clavier

2.2 Raccourcis clavier du shell: touche "tab"

Raccourcis clavier de la ligne de commande: touche "tab"


La touche tab est très pratique, elle permet de compléter automatiquement certains mots qu'on vient de commencer à écrire.

La touche tab se trouve tout à gauche de votre clavier:
clavier, touche tab


On va essayer.

Ouvrez une fenêtre shell (un terminal).
Vérifiez que vous êtes bien dans votre répertoire personnel (~).
Nous voulons taper la commande "cd public_html" en s'aidant de la touche "tab".
Sans taper sur entrée, tapez "cd pu" puis appuyez sur la touche tab.
Normalement, le shell devrait compléter le mot "public_html" tout seul.

Le shell a regardé les fichiers et répertoires du répertoire courant dont le nom commençait par "pu".

Quand il y a plusieurs possibilités, le shell ne peut pas deviner laquelle il doit prendre choisir; par exemple s'il y avait à la fois "public_html" et "puriste.txt" dans le répertoire courant. Dans ce cas, vous pouvez appuyer deux fois sur "tab" pour que le shell vous indique toutes les possibilités. Ajoutez alors quelques lettres supplémentaires et re-appuyez sur "tab".

Exercice:
Essayez de taper: "less /usr/bin/evince" en tapant le minimum de lettres possibles:
Commencez par "less /u" puis appuyez sur tab.
Quand ça bloque, appuyez deux fois sur tab, rajoutez une lettre, et re-appuyez sur tab.











2.3 Raccourcis clavier du shell: les flèches

Raccourcis clavier du shell: les flèches

En utilisant les flèches du clavier, on peut réutiliser une commande qu'on a déjà tapé.
La flèche vers le haut permet de remonter dans l'historique des commandes et la flèche vers le bas permet de redescendre.

Dans un terminal, tapez plusieurs fois sur la flèche vers le haut, puis celle vers le bas, pour voir comment ça marche.

On peut ensuite changer la commande commande choisie en se déplaçant avec les flèches droite et gauche.

2.4 Raccourcis clavier du shell: "control-c"

Le raccourci "control-c" (ctrl-c) permet de tuer un processus lancé. C'est très pratique lorsqu'une commande prend trop de temps ou qu'elle est bloquée.

Nous allons essayer avec la commande "sleep". Celle-ci ne fait rien, elle attend juste un certain temps. Par exemple, "sleep 10" attend 10 secondes (regardez "man sleep").

Tapez "sleep 100", puis faites "control-c" après quelques secondes. Vous verrez que la commande s'arrête dès que vous tapez control-c (avant les 100 secondes).

Deuxième essai.
Tapez la commande "gedit". Une fenêtre s'ouvre. Revenez à la fenêtre terminal, sans fermer la nouvelle fenêtre. Vous verrez que vous n'avez plus la main. Tapez "control-c" dans la fenêtre shell. La fenêtre "gedit" disparaît. Vous l'avez tué!


3. manipulation de fichiers

3.1 manipulation de fichiers

3.2 Création d'un répertoire pour le TP

Nous allons créer un répertoire pour travailler pendant ce TP.

Au dernier TP nous avons crée un répertoire appelé "systeme".
Dans une fenêtre shell (un terminal), entrez dans ce répertoire à l'aide de la commande "cd systeme".

Quelle commande faut-il taper pour créer un répertoire appelé tp2?
(on l'a utilisé cette commande plusieurs fois au dernier TP)

3.3 Télécharger une archive

Nous allons télécharger une archive, l'enregistrer et la désarchiver. Cela nous permettra de manipuler ensuite une arborescence de fichiers.

Tout d'abord, allez dans votre répertoire personnel (cd ~) et vérifiez (ls) que vous avez bien un répertoire appelé "Téléchargements". S'il n'existe pas, créez le: "mkdir ~/Téléchargements"

Téléchargement et enregistrement

Cliquez sur fichiers-tp2.tar.gz pour télécharger l'archive (en cas de problème, ouvre une nouvelle fenetre sur la page principale de ce cours et cliquez sur le fichier). Le navigateur va vous demander ce que vous voulez faire avec. Cliquez sur l'option "enregistrer dans un fichier" ("save to disk") puis sur le bouton "ok".

Ouvrez une fenêtre shell et tapez la commande suivante.

[dupond@r10102 ~]# ls Téléchargements

Vous devriez voir un fichier appelé "fichiers-tp2.tar.gz".

Est-ce que c'est bien le cas?

3.4 Le fichier ".tar.gz"

En cours nous avons vu différents types de fichiers et les extensions qu'ils portent habituellement.

En regardant votre cours, d'après son extension, quel est le format du fichier :
fichiers-tp2.tar.gz


3.5 Désarchivage

Rentrez dans le sous-répertoire tp2 du répertoire systeme (commande "cd").

Quel est le chemin complet du fichier que nous avons téléchargé?

indications:
- vous utiliserez "~" pour indiquer votre répertoire personnel
- on inclura le nom de fichier "fichiers-tp2.tar.gz" dans le chemin

3.6 Désarchivage (suite)

Vérifiez que vous vous trouvez bien dans le répertoire "~/systeme/tp2"
Ca se voit sur la partie en vert de l'invite de la ligne de commandes. Vous pouvez aussi utiliser la commande "pwd".

Pour désarchiver vous devez taper la commande suivante:

tar xzvf ~/Téléchargements/fichiers-tp2.tar.gz

Lors de l'exécution de la commande, vous devez voir défiler tous les noms des fichiers contenus dans l'archive.

Avec la commande "ls" vérifiez qu'il s'est bien crée un nouveau répertoire appelé "fichiers-tp2".

3.7 Décourverte du contenu du répertoire

Rentrez dans le nouveau répertoire qui a été crée (utilisez la commande "cd" avec les arguments qu'il faut).
Tapez la commande "ls" pour voir les fichiers qui s'y trouvent.

Il y en a beaucoup!

Dans les questions suivantes on va essayer de comprendre de quoi il s'agit et de faire un peu le ménage.

On va utiliser la commande "ls" avec des options particulières pour afficher les fichier par taille croissante:
tapez la commande: "ls -lSrh"
(ça fait beaucoup d'options! attention seul le "S" est en majuscule)

Vous pouvez voir la taille des fichiers sur la colonne du centre:
par exemple 1,6K ça veut dire "1,6 kilo octets"

Quel est le fichier le plus gros du répertoire?

3.8 Analyse du type d'un fichier

Analyse du type d'un fichier


On va regarder le fichier "home.png" pour essayer de comprendre de quoi il s'agit.

Regardez dans votre cours, dans la partie sur les formats de fichier (cours-2), pour savoir à quoi correspond l'extension ".png".

Il s'agit de?

3.9 Analyse du contenu d'un fichier

Analyse du contenu d'un fichier


D'après votre cours, s'agit-il d'un fichier texte ou binaire?

On va essayer de regarder ce qu'il y a dedans avec la commande "cat".

La commande "cat nom-de-fichier" affiche le contenu brut du fichier dans votre terminal.
Si le contenu brut du fichier est directement lisible par un être humain, c'est qu'il s'agit d'un fichier texte.
Si le contenu brut du fichier est incompréhensible, il s'agit probablement d'un fichier binaire.

Tapez la commande "cat robots.txt"
Essayez de comprendre ce qui est affiché.
C'est du texte... (en anglais).

Tapez la commande "cat home.png"
Essayez de comprendre ce qui est affiché. Dur, non?

Si votre terminal est brouillé après cette commande, fermez le et ouvrez en un autre.
Vous pouvez aussi essayer de taper à l'aveugle la commande "reset" suivie d'entrée.

3.10 Une image

Le fichier "home.png" représente une image, c'est un fichier binaire. Pour l'utiliser un éditeur de texte n'est pas très approprié. Il faut donc utiliser un logiciel spécifique.

Tapez la commande "ristretto home.png" pour visualiser cette image dans le logiciel "ristretto" de visualisation d'images.
Dans ristretto, vous pouvez agrandir l'image avec la molette de la souris.

3.11 La commande "file"

tapez les commandes suivantes et essayez de comprendre le résultat:

file robots.txt
file home.png
file home.gif
file home.jpg
file documentation.pdf
file index.html

En utilisant ces résultats, votre cours, et la commande "man file", quels sont les types de ces fichiers ?

3.12 Le ménage

Nous allons faire le ménage dans ce répertoire. Il contient beaucoup trop de fichiers.

Quelle commande faut-il taper pour créer un sous répertoire appelé "images"?
(tapez là et verifiez que le répertoire est bien crée)

3.13 deplacement d'un fichier

Reverifiez que le répertoire "images" est bien crée.
En vous inspirant du TP précèdent utilisez la commande "mv" pour déplacer le fichier "home.png" dans le répertoire "images".

(rappel de la syntaxe: "mv fichier-source répertoire-destination")

Quelle est la commande à taper?
(vérifiez dans votre terminal avant de répondre)

Après chaque opération utilisez la commande "ls" dans chaque répertoire pour vérifier que tout s'est bien passé.

3.14 Ménage: les fichiers png

Nous venons de déplacer un seul fichier avec la commande "mv".
Maintenant nous allons déplacer deux fichiers d'un coup.

Dans ce cas la syntaxe de la commande "mv" est la suivante:
"mv fichier-source1 fichier-source2 répertoire-destination"

Quelle commande faut-il taper pour déplacer le fichier "share.png" et le fichier "server.png" d'un seul coup dans le répertoire "images"?
(essayez d'abord dans votre terminal avant de répondre)

3.15 Méta-caractère "*"

On veut déplacer tous les fichier dont l'extension est ".png" dans le répertoire "images".

Ça va être très long de taper le nom de tous les fichiers...triste

Pour aller plus vite on va utiliser la commande "mv" avec un argument contenant le méta-caractère "*".

En vous inspirant de votre cours sur le méta-caractère "*", quelle commande faut-il taper, pour déplacer en une seule fois, tous les fichiers ".png" dans le répertoire "images"?

3.16 Comprendre le "*"

On va essayer de comprendre ce que le shell a fait à la commande précédente.
Pour ça on va utiliser la commande "echo".

La commande "echo" est très simple, elle ne fait que répéter ses arguments.

Tapez la commande "echo bonjour toto" pour voir ce qui se passe.
La commande affiche "bonjour toto"... elle ne fait que répéter ce qu'elle à reçu en arguments.

Tapez la commande "echo .gif".
La commande affiche ".gif"... elle ne fait que répéter ce qu'elle à reçu en arguments.

Tapez la commande "echo *.gif".
La commande affiche une longue liste de noms de fichier se terminant par ".gif".
Comme précédemment, elle ne fait que répéter ce qu'elle à reçu en arguments. MAIS, avant d'appeler la commande "echo", le shell a remplacé "*.gif" par une liste de tous les fichiers se terminant par ".gif"

3.17 Ménage: les fichiers jpg et gif

Comme on l'a vu, la commande "mv" peut déplacer plusieurs fichier d'un coup.
La syntaxe de la commande est alors: "mv fichier-1 fichier-2 fichier-3 fichier-4 ... fichier-n répertoire-destination"
le dernier argument c'est le répertoire vers lequel on veut déplacer les fichiers.

On a vu à l'exercice précèdent que le shell remplace:
"*.jpg" par une longue liste de noms de fichier terminant par ".jpg"
"*.gif" par une longue liste de noms de fichier terminant par ".gif"

Pour obtenir une liste de tous les fichiers terminant par "*.gif" ou par "*.jpg" , il suffit de mettre une liste après l'autre (séparées par un espace): "*.jpg *.gif"

Quelle commande, faut-il taper pour déplacer, en une seule fois, tous les fichier ".jpg" et ".gif" dans le répertoire "images".

3.18 Ménage: suite

Voyons si vous avez bien compris.

Créez un répertoire nommé "html" et déplacez-y tous les fichiers d'extension ".html"

Regardez, avec la commande "ls", ce qui reste dans le répertoire d'origine.
Combien de fichiers est-ce qu'il y a? (on ne compte pas les répertoires)

4. opérations sur une arborescence

4.1 opérations sur une arborescence

4.2 Copier un repertoire

Revenez dans le répertoire ~/systeme/tp2
Essayez de faire une copie du répertoire fichiers-tp2 avec la commande:
"cp fichiers-tp2 copie-fichiers"

Que se passe-il?

La commande "cp" ne copie pas, par défaut, les répertoires.
Si on le lui dit pas explicitement, la commande "cp" ignore les répertoires.

Pour que "cp" copie toute une arborescence (répertoires et les fichiers et sous répertoires contenus), il faut lui dire de copier récursivement.

En regardant votre cours et le manuel de "cp", trouvez l'option de la commande "cp" qui permet de copier des répertoires.

La syntaxe de la commande cp sera alors: "cp [option] répertoire-source répertoire-destination"
Ici "[option] " c'est l'option qui permet de copier récursivement.

Quelle commande faut-il taper pour effectuer la copie du répertoire "fichiers-tp2" en "copie-fichiers"?


4.3 Détruire une arboresence

Rentrez dans le répertoire "copie-fichiers".

Regardez le contenu (commande "ls").

Normalement vous devez y trouvez un répertoire appelé "images".

Essayez de supprimer ce répertoire en tapant "rm images".

Que se passe-il?

Comme pour la commande "cp", la commande "rm" ne fonctionne pas, par défaut, sur les répertoires.
Il faut le lui demander explicitement en utilisant une option.

On utilisera aussi une deuxième option pour éviter que "rm" ne demande une confirmation d'effacement pour chaque fichier.

La syntaxe de la commande "rm" est alors:
"rm [option-récursif] [option-pas-confirmation] nom-répertoire"

Utilisez la commande "man rm" pour trouver les bonnes options.

Quelle commande faut-il utiliser pour qu'il détruise tout le répertoire "images" sans poser de questions?
(on métra en deuxième l'option pour empêcher les questions)

5. processus

5.1 processus

5.2 Processus

Comme on l'a fait au début du TP, tapez la commande "sleep 1000" puis arrêtez-la avec "control-c".
Vous venez de créer un processus, puis vous l'avez tué.

Maintenant, tapez la commande "sleep 1000 &" et notez le numéro qui s'affiche.
(le "&" est un et-commercial, il se trouve sous la touche "1")

A quoi sert le caractère "&" dans la commande "sleep 1000&"? (regardez votre cours)

5.3 Liste des processus

Agrandissez (ou maximisez) votre fenêtre terminal pour qu'elle soit à peu près aussi grande que l'écran.

Maintenant nous allons regarder la liste de tous les processus qui tournent sur votre machine.
tapez la commande: "ps -ef"

Il y en-a beaucoup!

Regardez les commandes sur la colonne de droite pour essayer de voir si vous en reconnaissez quelques-unes ("firefox": votre navigateur web, "bash": votre shell...).

La colonne de gauche est intitule "PID" (process-identification):
ce sont les numéros d'identification de chaque processus.

On va maintenant se limiter a quelques processus intéressants.

Tapez la commande "ps" sans options.

Est-ce que vous-y retrouvez le processus "sleep" que vous avez lancé tout à l'heure?
A quoi correspond le numéro que vous avez noté en lançant la commande "sleep"?

5.4 Tuer un processus

On veut utiliser la commande "kill" pour tuer le processus "sleep" qu'on a lancé tout à l'heure.

La syntaxe de la commande "kill" est la suivante: "kill numero-du-processus"
Tapez la commande qu'il faut.

Verifiez avec la commande "ps" que vous avez bien tué ce pauvre processus. mort

5.5 Tuer un autre processus

On va recommencer l'opération pour un autre processus.

Tapez la commande "gedit &".

Une fenêtre s'ouvre. Sans fermer la fenêtre, revenez au terminal.

Retenez le numéro du processus. (pas le numéro entre crochets [], qui correspond à autre chose).

Maintenant tapez la commande "ps" et vérifiez que vous y trouvez bien, dans la liste, "gedit" avec son numéro de processus correspondant.

Maintenant, tuez gedit avec la commande "kill". La fenêtre doit disparaître.


5.6 Tuer son propre bash

Tapez la commande "ps".

Vous constaterez qu'il y a un processus appelé "bash".
Bash est le shell dans le quel vous travaillez. C'est le programme qui fait fonctionner la ligne de commande.

Regardez son numéro de processus sur la colonne de gauche (affiché par "ps").

Tuez le processus "bash" en tapant la commande "kill numéro-du-processus-bash"

Retapez la commande "ps". Vous constaterez que le processus "bash" est toujours la.
C'est qu'il est coriace ... il ne se laisse pas tuer aussi facilement! sourire

Maintenant, tapez la commande "kill -9 numéro-du-processus-bash"

Votre fenêtre disparaît!

A votre avis, que s'est-il passé?


6. chemins

6.1 chemins

6.2 Chemins

On va faire quelques exercices sur les chemins.

Souvenez vous du premier cours. Un chemin est une suite de noms de répertoires séparés par des "/".
Le chemin peut se finir par un nom de fichier (c'est alors le chemin d'un fichier).

Il y a deux types de chemins:
- les chemins relatifs, qui partent de l'endroit ou vous êtes (répertoire courant)
- les chemins absolus qui commencent à la racine "/" ou bien par un raccourci "~"

Par exemple:

"/usr/include" est un chemin absolu, qui commence à la racine du système de fichiers ("/").
Le répertoire "usr" se trouve à la racine et "include" est un sous-répertoire de "usr".

"tp1/essai.txt" est un chemin relatif. Il indique que le répertoire courant contient un sous répertoire appelé "tp1" dans lequel il y a un fichier appelé "essai.txt"

"../public_html" est un chemin relatif. Il indique qu'il faut remonter d'un répertoire et redescendre dans le répertoire "public_html".
(illustration url relatifs et absolus)


(Attention: les chemins ci-dessous n'ont rien à voir avec la figure)
Indiquez les types des chemins suivants:

6.3 Chemins

r
Dans ces exercices, on utilisera le raccourci "~" si nécessaire.

Supposons qu'on se trouve dans votre répertoire personnel (~).

Quel est le chemin absolu du fichier README.html qui se trouve dans le sous-répertoire public_html de votre répertoire personnel?
(y compris le nom du fichier)

6.4 Chemins

r
Dans ces exercices, on utilisera le raccourci "~" si nécessaire (important!).

Supposons qu'on se trouve dans votre répertoire personnel (~).

Quel est le chemin relatif du fichier README.html qui se trouve dans le sous-répertoire public_html de votre répertoire personnel?
(y compris le nom du fichier)

6.5 Chemins

r
Dans ces exercices, on utilisera le raccourci "~" si nécessaire.

Supposons qu'on se trouve dans le répertoire ~/systeme

Quel est le chemin absolu du fichier README.html qui se trouve dans le sous-répertoire public_html de votre répertoire personnel?
(y compris le nom du fichier)

6.6 Chemins

r
Dans ces exercices, on utilisera le raccourci "~" si nécessaire.

Supposons qu'on se trouve dans le répertoire ~/systeme

Quel est le chemin relatif du fichier README.html qui se trouve dans le sous-répertoire public_html de votre répertoire personnel?
(y compris le nom du fichier)

6.7 chemins relatifs à partir de répertoires différents

Chemins relatifs à partir de répertoires différents

Dans les exercices suivants nous allons faire à chaque fois la même opération : lire le contenu du fichier exemple.txt à l'aide de la commande less.

La seule chose qui changera c'est le répertoire courant (le répertoire ou on se trouve). Nous utiliserons à chaque fois un chemin relatif. Comme un chemin relatif dépend du répertoire ou on se trouve, le chemin changera à chaque fois.

r


Supposons qu'on tape:
cd ~/systeme/tp2/exo2

Que faut-il ensuite taper pour lire le fichier exemple.txt


6.8 chemins relatifs à partir de répertoires différents -2

Ex.2
r


Supposons qu'on tape:
cd ~/systeme/tp2

Que faut-il ensuite taper pour lire le fichier exemple.txt

6.9 chemins relatifs à partir de répertoires différents -3

Ex.3
r


Supposons qu'on tape:
cd ~/systeme/tp2/exo1

Que faut-il ensuite taper pour lire le fichier exemple.txt

6.10 chemins relatifs à partir de répertoires différents -4

Ex.4
r


Supposons qu'on tape:
cd ~

Que faut-il ensuite taper pour lire le fichier exemple.txt

7. droits d'accès

7.1 droits d'accès

Les exercices suivants porteront sur les droits d'accès.

Rappel de cours:

rrr

7.2 ls -l - proprietaire

Comme nous l'avons vu en cours, on peut utiliser la commande ls avec l'option "-l" pour connaitre les droits d'accès d'un fichier.

Par exemple supposons que la commande "ls -l" affiche ceci:
-rw-r--r-- 1 toto titi 4664083 2010-08-24 17:44 exemple.txt

Quel est le nom du propriétaire de ce fichier?

7.3 ls -l : groupe

En considérant le même fichier que la question précédente:
-rw-r--r-- 1 toto titi 4664083 2010-08-24 17:44 exemple.txt

A quel groupe appartient ce fichier?

7.4 ls -l : droits

En considérant le même fichier que la question précédente:
-rw-r--r-- 1 toto titi 4664083 2010-08-24 17:44 exemple.txt

Quels affirmations sont justes?

7.5 Droits d'acces: mise en place

Droits d'accès: mise en place


Nous allons maintenant expérimenter la manipulation des droits d'accès.
Pour cela vous devez travailler avec votre voisin.

Tapez les commandes suivantes:
chmod o+x ~
chmod o+x ~/systeme
chmod o+rx ~/systeme/tp2

A partir de maintenant, vos camarades peuvent lire le contenu de votre répertoire ~/systeme/tp2

Tapez "pwd".

Demandez à votre voisin de taper la commande:
"ls /home/usager/XXXXXXXX/systeme/tp2"
où "XXXXXXX" est votre nom de login.

Normalement, votre voisin devrait pouvoir afficher le contenu de votre répertoire sans message d'erreur.





7.6 droits d'accès à un fichier

Ouvrez un éditeur de texte, écrivez quelques mots et enregistrez le avec dans le répertoire "~/systeme/tp2" avec le nom "essai-droits.txt"

Retournez à la fenêtre terminal et vérifiez que vous vous trouvez bien dans votre répertoire "~/systeme/tp2" et que le fichier "essai-droits.txt" s'y trouve bien.

On va utiliser la commande "chmod" pour permettre à votre voisin de lire ce fichier.

Quelle commande faut-il écrire pour ajouter aux autres ("others" en anglais) le droit de lire le fichier "essai-droits.txt"?
(regardez votre cours et essayez avant de répondre)


7.7 Commande ls

La commande "ls" permet aussi d'afficher des informations détaillés sur un fichier.
Quelle commande faut-il taper pour afficher toutes les informations sur le fichier "essai-droits.txt"?
(et uniquement de ce fichier)
(regardez votre cours, ou utilisez la commande "ls --help" et cherchez "utiliser le format long d'affichage")

7.8 Enlever des droits

Demandez à votre voisin de lire le contenu de votre fichier à l'aide de la commande "less".

Quelle commande faut-il taper pour enlever le droit de lecture sur le fichier "essai-droits.txt" à la fois aux autres ("others") et à votre groupe?

essayez et verifiez en demandant à votre voisin de relire le contenu du fichier avec la commande "less".

7.9 Droits d'ecriture

Redonnez les droits de lecture aux autres ("others") sur le fichier "essai-droits.txt".
Vérifiez que votre voisin arrive bien à le lire avec la commande "less".
Demandez à votre voisin d'ouvrir votre fichier dans un éditeur de texte.

Est-ce que vôtre voisin arrive à changer le contenu? Et à l'enregistrer?

Quelle commande faut-il taper pour ajouter aux autres ("others") le droit d'écriture sur ce fichier?

( Essayez, puis demandez a votre voisin de fermer son éditeur, puis de relancer un éditeur et ouvrir votre fichier.
Vérifiez qu'il arrive bien a modifier et enregistrer. Vérifiez avec la commande "less" que le fichier a bien été modifié. )

7.10 Droits: le menage

Le ménage


On a fini d'expérimenter avec les droits d'accès.
On va donc faire le ménage dans les droits, pour éviter des problèmes par la suite.
Supprimez le fichier "essai-droits.txt"

Tapez les commandes suivantes:

chmod o-x ~
chmod o-x ~/systeme
chmod o-rx ~/systeme/tp2


8. exercices divers

8.1 exercices divers

8.2 Archive code source gzip

Nous allons télécharger le code source d'un programme appelé "gzip".
Comme on l'a vu en cours, le programme gzip sert à compresser des fichiers.
Ici nous allons juste regarder et manipuler les fichier de l'archive.

Vous trouverez l'archive "gzip-1.2.4.tar.gz" à l'adresse suivante http://ftp.gnu.org/pub/gnu/gzip/

Téléchargez là.

8.3 Désarchivage

Vérifiez que le fichier gzip-1.2.4.tar.gz se trouve bien dans votre répertoire "~/Téléchargements"

Allez dans votre répertoire "~/systeme/tp2" et désarchivez-y l'archive avec la commande suivante:
"tar xzvf ~/Téléchargements/gzip-1.2.4.tar.gz"

Vérifiez qu'un répertoire nommé "gzip-1.2.4" s'est bien crée, et rentrez dedans.

Tapez la commande "ls" pour voir ce qu'il y a dedans.

8.4 Découverte du contenu

Le répertoire contient un fichier appelé README
"README" ca veut dire "lisez-moi" en anglais.
Prenez l'habitude de toujours lire les fichiers appelés README (commande "less README")

Dans le répertoire Il y a aussi plusieurs fichiers ".c" et ".h"

Quel est le type de ces fichiers?



8.5 La commande "wc"

La commande "wc" (word count) permet d'afficher le nombre de lignes contenues dans un fichier.
Regardez la page man de "wc" (commande: "man wc")

Combien de lignes contient le fichier gzip.c ?


8.6 commande wc (suite)

Combien de mots est-ce qu'il y a dans le fichier "gzip.c"

8.7 commande wc (suite 2)

Tapez la commande "wc util.c zip.c"

Les deux premières lignes correspondent aux deux fichiers "util.c zip.c" et la dernière donne le total.

En utilisant le méta-caractère "*", combien de lignes est-ce qu'il y a au total dans tous les fichiers de type ".c"

8.8 ls

En quelle année a été modifié le fichier gzip.c pour la dernière fois?

8.9 taille d'un fichier

Quelle est la taille (en octets) du fichier "texinfo.tex"?

8.10 compression

Comme on l'a vu en cours, la commande "gzip" permet de compresser un fichier.

Tapez la commande "gzip texinfo.tex"

Affichez le contenu du répertoire avec la commande "ls".

Est-ce que le fichier "texinfo.tex" existe encore?

Quel est son nouveau nom?

8.11 compression (suite)

Quelle est la taille du nouveau fichier?

8.12 Décompression

Nous allons décompresser le fichier, pour retrouver l'original:

Tapez la commande "gunzip texinfo.tex.gz"
Vérifiez que le fichier "texinfo.tex" est retourné et qu'il a la bonne taille.

8.13 ls recursif

Tapez la commande "ls -R" (le R est en majuscule!)

qu'est-ce qui se passe?

8.14 cp et chemins relatifs

Vérifiez que vous êtes bien dans le répertoire "~/systeme/tp2/gzip-1.2.4"

Dans le répertoire "primos" il y a un répertoire appelé "include". Dans ce répertoire il y a un fichier appelé "errno.h".

Tout en restant dans le répertoire "~/systeme/tp2/gzip-1.2.4" (pas de commande "cd"),
quelle commande faut-il taper pour copier le fichier "errno.h" dans le répertoire "~/systeme/tp2/gzip-1.2.4" ?

Vous utiliserez des chemins relatifs pour le fichier source et pour le répertoire destination.

8.15 Environement "less"

La commande "less" fournit un environnement d'affichage temporaire qui disparaît lorsqu'on quitte en appuyant sur la touche "q". C'est très pratique pour jeter un coup d'oeil rapide dans un fichier texte, sans avoir à ouvrir un éditeur de texte.

On va voir quelques touches importantes.

Tapez la commande "less trees.c"

Essayez d'utiliser les différentes flèches de votre clavier pour parcourir le fichier.

Essayez d'utiliser les les touches "page-up, page-down" (Pg.Prec Pg.Suiv) pour parcourir le fichier.

Appuyez sur "q" pour quitter.

Re-tapez la commande "less trees.c"

Tapez "/include" et appuyez sur entrée.

Dans l'environnement "less" la touche "/" permet de rechercher un texte. Ici on a recherché le terme "include".

Appuyez à nouveau sur "/" suivi d'entrée. Cela vous permet d'aller à la prochaine occurrence du terme "include".

Recommencez au moins 7 fois. Puis quittez avec "q".

Combien de fois apparaît le terme "include" dans ce fichier?


8.16 La commande "tail"

Tapez la commande "tail trees.c"

En vous aidant de la commande "less", à quoi correspond l'affichage de la commande "tail trees.c"?

8.17 tail (suite)

tapez les commandes suivantes:
(pensez à utiliser les fleches pour réutiliser les commandes déjà tapés)

tail -n 1 trees.c
tail -n 2 trees.c
tail -n 3 trees.c
tail -n 4 trees.c
tail -n 5 trees.c

head trees.c
head -n 1 trees.c
head -n 2 trees.c
head -n 3 trees.c
head -n 4 trees.c

A quoi sert la commande "head"?

8.18 Le ménage

Les concepteurs de la commande "gzip" sont un peu désordonnés.
On va faire le ménage dans leur logiciel.

Créez un répertoire appelé "sources" et déplacez y tous les fichiers ".c", ".h" et ".S"
Créez un répertoire appelé "documentation" et déplacez y tous les fichiers ".1", ".tex", ".texi", ".texinfo", ".doc" et ".info"
Créez un répertoire appelé "scripts" et déplacez y tous les fichiers ".in" sauf "configure.in" et "Makefile.in"

Combien de fichiers reste-il dans le répertoire?


8.19 Sondages

Sondages


Onglets

Cliquez avec le bouton du milieu de la souris (la molette), sur le le lien "intro-système" (en haut à gauche de cette page: "dept INFO » intro-système"). Vous devez voir un nouveau onglet apparaître dans votre navigateur.

L'utilisation de ce bouton est très pratique pour naviguer. Par exemple, dans la page des résultats d'une recherche google, vous pouvez cliquer sur plusieurs liens avec le bouton du milieu. Vous aurez plusieurs nouveaux onglets que vous pouvez visiter ensuite.

Sondages et forums

Allez dans le nouveau onglet "intro-système" et répondez aux différentes questions posées par le sondage.
Prenez l'habitude de répondre régulièrement à ces sondages. Ça nous permet de mieux adapter les enseignements à vos besoins. Prenez aussi le temps de lire et de participer aux forums de discussion. N'hésitez pas à intervenir et à poser des questions!