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

316 lines
8.8 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!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. <date value="from git" />
</div>
</body>
</html>