tuteurs.ens.fr/unix/exercices/solutions/ls-sol.tml

315 lines
8.6 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>ls</title>
</head>
<body>
<h1>Corrigé des exercices sur <code>ls</code></h1>
<p>Ces exercices sont des questions de cours : les solutions se trouvent
toutes dans les pages de man des commandes en question. On suppose donc
connues les commandes de <code>less</code>, qui servent à se déplacer dans les
pages de man... et la commande servant à chercher un mot. Testez les
commandes sur des fichiers et répertoires d'essai pour vous faire la main et
comprendre ce qui se passe.</p>
<ol>
<li><a name="ls1"> <strong>Affichez le contenu de
<code>/usr/local/games/bin</code> </strong> </a>
<pre>
ls /usr/local/games/bin
</pre>
<p>Vous obtenez une liste des jeux installés.</p></li>
<li><a name="ls2"> <strong>Quelle est la taille de votre
<code>.flnewsrc.forum</code></strong> </a> ?
<pre>ls -al .flnewsrc.forum</pre>
<p>
L'option <code>-a</code> fait apparaître les fichiers de configuration, qui
commencent par un point; l'option <code>-l</code> affiche plusieurs
renseignements, en particulier la taille. En fait, si vous indiquez le nom
complet du fichier cherché, avec le point, l'option <code>-a</code> est
inutile; c'est le cas ici.
</p>
<p>
Le <code>.flnewsrc.forum</code> contient la liste de continua de forum avec
des indications sur les contis auxquels vous êtes abonnés et les messages que
vous avez déjà lus. Il est remis à jour à chaque fois que vous lisez
forum : la date indiquée correspond donc à la dernière fois que vous avec
lancé (ou plus précisément, quitté...) forum.
</p></li>
<li><a name="ls3"> <strong>À quoi sert l'option <code>-R</code> de
<code>ls</code> ? </strong> </a>
<p>Cette option permet d'afficher une liste récursive, c'est-à-dire qui indique
le contenu des répertoires listés, ainsi que de leurs sous-répertoires. Si
vous tapez <code>ls -R</code> dans votre répertoire personnel, vous aurez une
liste de tout ce que vous avez chez vous.</p></li>
<li><a name="ls4"> <strong>Dans quel ordre les fichiers et répertoires
sont-ils classés par défaut? Quelles sont les options qui peuvent servir à
modifier ce critère de classement ?</strong> </a>
<p>
Pour savoir cela, il faut chercher le mot <em>sort</em> dans le man de
<code>ls</code>. La première occurence vous dit que par défaut le résultat est
trié par ordre alphabétique, selon la première lettre des fichiers. De façon
plus précise, l'ordre est le suivant : ponctuations, chiffres,
majuscules, minuscules, selon l'ordre défini par la table des caractères
ASCII.</p>
<p>
En continuant à chercher, vous trouvez des options intéressantes :
<code>-r</code> (<em>reverse</em>), qui inverse l'ordre de classement,
<code>-t</code> (<em>time</em>) qui trie en fonction de la date de dernière
modification.</p>
</li>
<li><a name="ls5"> <strong>Affichez le contenu de votre répertoire courant de
telle sorte que les fichiers modifiés récemment apparaissent en
premier.</strong> </a>
<pre>
ls -t
</pre>
<p class="continue">
si vous voulez juste modifier le critère de tri, sans plus de renseignements;
ou encore</p>
<pre>ls -lt</pre>
<p class="continue">
si vous voulez une longue liste.
</p></li>
<li><a name="ls6"> <strong>Quels sont les droits de votre répertoire
<code>Mail</code> ? Qu'est-ce que cela signifie ?</strong> </a>
<p>
La ligne ressemble à ceci :
</p>
<pre>
drwx------ 2 toto litt98 512 Apr 2 19:02 Mail
</pre>
<p>
Le <code>d</code> indique qu'il s'agit d'un répertoire (<em>directory</em>).
Suivent ensuite neuf caractères, allant par trois; <code>r, w, x</code>
correspondent aux droits que vous avez sur le répertoire (ou le
fichier) : <code>r</code> (<em>read</em>) pour le droit de lecture,
<code>w</code> (<em>write</em>) pour le droit d'écriture, <code>x</code>
(<em>execute</em>) pour le droit d'exécution.
</p>
<p>
Les six tirets qui suivent correspondent aux droits qu'ont le groupe (ici
<code>litt98</code>) puis le reste des utilisateurs. Ici il y a des tirets, ce
qui signifie qu'ils n'ont aucun droit sur ce répertoire.
</p>
<p>
Cela veut dire que seul le propriétaire a le droit de lire et écrire dans son
répertoire <code>Mail/</code>, ainsi que d'y accéder. Les répertoires et les
fichiers de courrier sont protégés contre les indiscrétions.
</p>
<p>
Un fichier de texte standard a les droits suivants :
</p>
<pre>
-rw-r--r--
</pre>
<p> Il y a un tiret tout au début, ce qui signifie que c'est un fichier
normal; vous avez le droit d'écrire et de lire (<code>rw-</code>), votre
groupe et les autres utilisateurs ont le droit de lire le fichier
(<code>r--</code>). La commande <a
href="&url.tuteurs;unix/droits.html"><code>chmod</code></a> permet de
changer ces droits, si l'on veut restreindre la lecture, ou rendre un
fichier exécutable. </p>
<p>
Remarque : ne cédez pas à la paranoïa... vos camarades ne passent pas
leur temps à farfouiller sur les comptes des voisins, donc vous n'avez pas
besoin d'interdire à la lecture tout ce que vous avez chez vous.
</p></li>
<li><a name="ls7"> <strong>Décrivez le résultat de la commande
<code>ls -l</code>. </strong> </a>
<ul>
<li>
<pre>
<strong>-rw-r--r--</strong> 1 robin    litt95     754 Mar 22 11:59 projet.aux
</pre>
<p>Les dix premiers caractères détaillent les droits du fichier. Le premier
caratère identifie le type du fichier : ici, rien n'est spécifié, c'est
donc un fichier normal. L'exercice précédent détaille la signification des
lettres suivantes. Ce sont les droits normaux d'un fichier standard :
tout le monde (propriétaire, groupe et autres utilisateurs) peut lire le
fichier, seul le propriétaire peut écrire dedans.
</p>
</li>
<li>
<pre>
-rw-r--r-- <strong>1</strong> robin    litt95     754 Mar 22 11:59 projet.aux
</pre>
<p>
Le chiffre indique le nombre de liens. Nous vous renvoyons aux exercices sur
les liens pour plus d'explications (qui peuvent attendre à un niveau
débutant...).
</p></li>
<li>
<pre>
-rw-r--r-- 1 <strong>robin</strong>    litt95     754 Mar 22 11:59 projet.aux
</pre>
<p>
Le troisième champ donne le nom du propriétaire du fichier. Ici, il s'agit de
l'utilisateur <code>robin</code>.</p></li>
<li>
<pre>
-rw-r--r-- 1 robin    <strong>litt95</strong>     754 Mar 22 11:59 projet.aux
</pre>
<p>
Ce champ indique le groupe de l'utilisateur. Ici, nous apprenons qu'Émilia est
une littéraire de la promotion 1995.
</p></li>
<li>
<pre>
-rw-r--r-- 1 robin    litt95     <strong>754</strong> Mar 22 11:59 projet.aux
</pre>
<p>
Ce chiffre donne la taille en octets du fichier considéré. Ici, le fichier
fait 754 octets, soit moins d'un Ko (1000 octets). C'est un petit fichier.
</p>
<pre>
-rw-r--r-- 1 robin    litt95     754 <strong>Mar 22 11:59</strong> projet.aux
</pre>
<p>Ce champ indique la date de dernière modification du fichier, ici le 22 mars
de l'année courante, à 11h59. Quand le fichier date d'une année antérieure,
celle-ci est indiquée et l'heure ne figure plus.</p>
<pre>
-rw-r--r-- 1 robin    litt95     754 Mar 22 11:59 <strong>projet.aux</strong>
</pre>
<p>
Vient enfin le nom du fichier. Le suffixe <code>.aux</code> montre qu'il s'agit
d'un fichier produit par LaTeX lors de la compilation d'un fichier
<code>projet.tex</code>.</p></li>
</ul></li>
<li><a name="ls8"> <strong> Comment afficher les droits d'un répertoire
donné ? </strong> </a>
<p>
Si on tape
</p>
<pre>
ls -l repertoire/
</pre>
<p>
c'est le contenu du répertoire qui s'affiche, et pas son statut à lui.
L'option <code>-d</code> (<em>directory</em>) permet de lister le répertoire
lui-même.
</p></li>
<li><a name="ls9"> <strong>Caractères identifiant les fichiers </strong> </a>
<p>
Ce sont les caractères suivants :
</p>
<table class="tableau">
<tr>
<td>slash</td>
<td>(<code>/</code>)</td>
<td>pour un répertoire</td>
</tr>
<tr>
<td>arobase</td>
<td>(<code>@</code>)</td>
<td>pour un lien symbolique</td>
</tr>
<tr>
<td>étoile</td>
<td>(<code>*</code>)</td>
<td>pour un exécutable</td>
</tr>
<tr>
<td><em>pipe</em></td>
<td>(<code>|</code>)</td>
<td>pour un <em>pipe</em> nommé</td>
</tr>
<tr>
<td>égal</td>
<td>(<code>=</code>)</td>
<td>pour un socket</td>
</tr>
</table>
<p>
C'est l'option <code>-F</code> qui permet de les afficher.
</p></li>
<li><a name="ls10"> <strong>Droits sur un répertoire </strong> </a>
<p>
Avoir le droit d'«exécuter» un répertoire, c'est avoir le droit d'y accéder,
de s'y déplacer; mais je n'ai pas le droit de «lire» son contenu. Donc, à
moins d'en être propriétaire, je ne peux pas afficher le contenu d'un
répertoire ayant comme droits :
</p>
<pre>
drwx--x--x
</pre>
</li>
</ol>
<div class="metainformation">
Auteur : Émilia Robin, Joël Riou. Dernière modification le 2002-12-08.
</div>
</body>
</html>