1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
5 <html xmlns="http://www.w3.org/1999/xhtml" >
7 <title>Systèmes d'exploitation (1/2)</title>
9 <meta http-equiv="Content-Type"
10 content="text/html; charset=utf-8" />
11 <meta name="copyright"
12 content="Copyright © 2013 Kim Nguyễn" />
15 <script src="../jquery-1.9.1.min.js" type="text/javascript" ></script>
16 <!-- Load the library -->
17 <script src="../simpleWebSlides.js" type="text/javascript" ></script>
19 <link rel="stylesheet" href="../simpleWebSlides.css" type="text/css" media="all" />
20 <!-- Load a custom Theme, the class-element marks this style-sheet
21 a "theme" that can be swtiched dynamicaly -->
22 <link class="sws-theme" rel="stylesheet" title="U-Psud style" href="../themes/uPsud.css" type="text/css" />
24 <!-- Customize some templates and initialize -->
26 <script type="text/javascript">
27 SWS.Config['sws-slide-change'] = SWS.Effects.slideChangeFadeOutIn;
28 SWS.Config['sws-object-deactivate'] = SWS.Effects.objectDeactivateFadeOut;
29 SWS.Config['sws-object-activate'] = SWS.Effects.objectActivateFadeIn;
31 $(window).load(SWS.Presentation.init);
37 <div class="sws-slide sws-cover sws-option-nofooter">
38 <h1>Unix et Programmation Web</h1>
40 <a href="mailto:kn@lri.fr">kn@lri.fr</a>
43 <div class="sws-slide" >
44 <h1>Contenu du cours</h1>
46 <li > Comprendre les bases du Web
48 <li>Fonctionnement des ordinateurs Unix (cours 1 et 2) </li>
49 <li>Notions de réseau (cours 3 et 4) </li>
52 <li class="sws-pause" style="padding:20pt 0;" > Programmer (pour) le Web
54 <li>Pages statiques (HTML & CSS cours 5)</li>
55 <li>Pages dynamiques avec PHP (cours 6, 7 et 8)</li>
56 <li>Notions de sécurité des sites Web (cours 9)</li>
57 <li>Bonus (cours 10)</li>
60 <p>Cours disponible en ligne
61 sur <a href="https://www.lri.fr/~kn/teaching_fr.html">https://www.lri.fr/~kn/teaching_fr.html</a>. Les
62 supports de cours seront distribués à partir de la semaine prochaine.</p>
66 <div class="sws-slide" >
67 <h1>Modalités de Contrôle des Connaissances (MCC)</h1>
70 <li > 1<sup>ère</sup> session
72 <li> Contrôle continu (50%):
74 <li> Partiel (fin octobre/début novembre) 25% </li>
75 <li> 1 interro(s) de TP (25 %) </li>
78 <li> Examen (50%) </li>
81 <li class="sws-pause" >
82 2<sup>ème</sup> session (examen 100%)</li>
84 <p class="sws-pause" ><b>Rappel:</b>
85 <i>La défaillance fait obstacle au calcul de la moyenne
86 et implique l'ajournement.
87 La présence de l'étudiant étant obligatoire en TP [...], plus
88 d'une absence injustiée dans un enseignement peut entraîner
89 la défaillance de l'étudiant dans l'enseignement concerné
94 <div class="sws-slide" >
97 <li> 10 semaines de cours :
99 <li> 8/9, 16/9, 23/9, 30/9, 7/9, 14/9 </li>
100 <li> partiel/toussaint </li>
101 <li> 4/11, <em>(pas de cours le 11/11)</em>, 18/11, 25/11, 2/12</li>
104 <li> 10 semaines de TP :
105 <ul><li>18/9, 25/9, 2/10, 9/10, 16/10</li>
106 <li> partiel/toussaint</li>
107 <li>6/11, 13/11, 20/11, 27/11, 4/12</li>
110 <li> examen début Janvier</li>
111 <li> cours tous les mardi (13h30) </li>
112 <li> TP le jeudi (9h) </li>
115 <div class="sws-slide" >
118 <li> Systèmes d'exploitation
120 <li class="hl">1.1 Principes des systèmes
122 <li>1.2 Système de gestion de fichiers</li>
123 <li>1.3 Système de gestion de processus</li>
129 <div class="sws-slide">
130 <h1> Système d'exploitation </h1>
131 <p>Quelques systèmes:</p>
133 <li>Windows XP/NT/2003/7/8, …</li>
134 <li>Linux, FreeBSD, NetBSD, OpenBSD, …</li>
135 <li>MacOS X (basé sur une variante de FreeBSD), …</li>
136 <li>Unix, AIX, Solaris, HP-UX, …</li>
137 <li>Symbian OS (Nokia), iOS, Android, …</li>
141 <div class="sws-slide">
142 <h1> Système d'exploitation </h1>
143 <p>Qu'est-ce qu'un système d'exploitation ?</p>
145 <li class="sws-pause" >c'est un <em>programme</em></li>
146 <li class="sws-pause" > qui <em>organise</em> l'accès aux <em>ressources</em> de la machine</li>
148 <p class="sws-pause"> Quelles sont les ressources d'une machine?</p>
150 <li>Processeur (temps d'exécution)</li>
152 <li>Accès aux périphériques de stockage</li>
153 <li>Accès aux périphériques d'entrées/sorties</li>
157 <div class="sws-slide">
158 <h1> Système d'exploitation </h1>
160 <div style="display:inline-block;vertical-align:middle;width:19%;text-align:center;">
162 <span style="font-size:6cm;">↓</span><br/>
165 <div style="display:inline-block; width:80%;vertical-align:middle;">
167 <li><em>Applications</em>: navigateur Web, éditeur de
168 texte, anti-virus, jeu, compilateur, …</li>
169 <li style="margin-top:2em;" ><em><b>Système d'exploitation</b></em>:
171 <li>Gestion des ressources</li>
172 <li>Interface avec le matériel (pilotes)</li>
175 <li style="margin-top:2em;"><em>Matériel</em>: CPU, mémoire, périphériques, …</li>
179 <div class="sws-slide centerbox">
180 <h1>Le système Unix</h1>
182 <tr><td>1965</td> <td>MultICS: <i>Multiplexed Information and Computing Service</i> (Bell & MIT) </td>
184 <tr><td>1969</td> <td>Unix: 1<sup>ère</sup> version en
185 assembleur (AT&T)</td>
187 <tr><td style="width:4em;">1972-73</td><td> Unix réécrit en C</td></tr>
188 <tr><td>1976</td><td> Invention de TCP/IP</td></tr>
189 <tr><td>1977</td><td> <i>Berkeley Software Distribution</i>
191 <tr><td>1985</td><td>Unix System V</td></tr>
192 <tr><td>1988</td><td>Minix</td></tr>
193 <tr><td>1992</td><td>Linux</td></tr>
196 <div class="sws-slide">
197 <div class="centerbox">
198 <h1>Unix : architecture</h1>
199 <table style="position:relative;left:5%;width:90%;" class="rounded">
200 <tr><td colspan="2" style="background:#ddf;width:100%;">
204 <tr><td style="width:50%;background:#bbf;">
205 Interface utilisateur
207 <td style="width:50%;background:#bbf;">
211 <tr><td colspan="2" style="width:100%;background:#99f;color:white;">
212 Noyau (<i>kernel</i>)
215 <tr><td style="border-style:none;"/> <td style="background:#88f;color:white;">
219 <tr><td colspan="2" style="width:100%;background:#77f;color:white;">
226 <div class="sws-slide">
227 <h1>Zoom sur le noyau</h1>
228 <table style="position:relative;left:5%;width:90%;" class="rounded">
229 <tr> <td style="background:#ddf;width:20%;">
233 <tr><td style="width:20%; border-style:none;" />
234 <td style="width:80%;background:#ddf;">
236 (<tt>libc</tt>, <tt>DirectX</tt>, <tt>OpenGL</tt>, …)
240 <hr style="border-bottom: dashed 1pt #696968; width: 90%;border-top:none;" />
241 <table style="position:relative;left:5%;width:90%;"
242 class="rounded sws-pause">
243 <tr><td style="width:100%;background:#f99;color:white;">
247 <tr> <td style="background:#f66;color:white;">
249 <div style="font-size:smaller">
250 pilotes de périphériques <span style="display:inline-block;width:4em"> </span>
251 ordonnanceur (gestion du temps CPU)<br/>
252 gestionnaire de mémoire <span style="display:inline-block;width:4em"> </span>
253 système de fichier<br/>
257 <tr><td style="width:100%;background:#f33;color:white;">
263 <div class="sws-slide">
264 <h1>Le <i>Shell</i> Unix</h1>
266 <li>Interface utilisateur <em>en mode texte</em><br/>
267 L'utilisateur écrit des commandes dont le résultat est
268 affiché à l'écran</li>
269 <li>Interface « historique » sous Unix</li>
270 <li>Expose à l'utilisateur certains concepts Unix
271 (permissions, propriétaires, processus, …)</li>
272 <li>Ces concepts sont importants pour pouvoir concevoir de
276 <div class="sws-slide">
277 <h1>Le <i>Shell</i> Unix</h1>
278 <p>Exemple de session <i>shell</i>:</p>
282 <span style="color:blue">Documents Downloads Public Person</span>
285 <span style="color:blue">compte_rendu.txt</span>
286 $ mv compte_rendu.txt cr.txt
288 <span style="color:blue">cr.txt</span>
293 <div class="sws-slide" >
296 <li> Systèmes d'exploitation
298 <li >1.1 Principes des systèmes
300 <li class="hl">1.2 Système de gestion de fichiers</li>
301 <li>1.3 Système de gestion de processus</li>
306 <div class="sws-slide">
307 <h1>Système de gestion de fichiers (<i>filesystem</i>)</h1>
309 <li> <em>Organise</em> les données sur le support
311 <li>Protège contre les <em>corruptions de données</em> </li>
312 <li>Gestion optimale de l'espace disponible</li>
313 <li><em>Accès efficace</em> aux données</li>
314 <li><em>Abstraction</em> du support physique (DVD, mémoire
315 flash, disque réseau, …)</li>
316 <li>Enregistrement des <em>méta-données</em> (date de
317 création, propriétaire, taille, …)</li>
320 <div class="sws-slide">
321 <h1>Le concept de <em>fichier</em></h1>
323 Un fichier est une <em>collection d'infromations
324 numériques</em> réunies sous un même <em>nom</em> et
325 enregistrée sur un support de stockage
328 <li>Manipulable comme une unité</li>
329 <li>Selon les systèmes, le <em>nom</em> a plus ou moins
331 <li>possède un type</li>
334 <div class="sws-slide">
335 <h1>Le concept de <em>fichier</em></h1>
336 <p>Ne pas confondre:</p>
338 <li>type du fichier: il influe sur le comportement du système
339 (fichier « normal », répertoire, lien (raccourcis), fichier
340 système, …). C'est une méta-donnée conservée par le système
342 <li>type du contenu: le type des <em>données</em> contenues
345 <li>DOS puis Windows: l'extension (les 3 derniers
346 caractères après le « . ») détermine le type de contenu
348 <li>MacOS puis OS X/iOS: les premiers octets du fichier
351 <li>Premiers octets ou extension, selon les interfaces
357 <div class="sws-slide">
358 <h1>Les attributs d'un fichier</h1>
361 <td style="width:7em;"><em>Nom</em></td> <td/>
364 <td><em>Propriétaire</em></td>
365 <td>utilisateur qui possède ce fichier</td>
368 <td><em>Groupe</em></td>
369 <td>groupe d'utilisateurs qui possède ce fichier</td>
372 <td><em>Emplacement</em></td>
373 <td>localisation du fichier sur le support physique</td>
376 <td><em>Taille</em></td>
377 <td>en octet (peut être la taille réelle ou la taille
378 occupée sur le support)</td>
381 <td><em>Permissions</em></td>
382 <td> « qui a quel droit » sur le fichier (lecture, écriture,
387 <td><em>Type</em></td>
391 <td><em>Dates</em></td>
392 <td>dernier accès, dernière modification, création, …</td>
396 <div class="sws-slide">
397 <h1>Organisation logique des fichiers</h1>
398 <p> Usuellement, les fichiers sont regroupés en <em>répertoires</em>. Les
399 répertoires sont imbriqués les uns dans les autres de manière a former
400 une <em>arborescence</em>.
403 <em>Sous Unix</em> il y a un répertoire racine, « <em>/</em> »
404 (<i>slash</i>) qui contient toute l'arborescence du système.<br/>
405 Chaque utilisateur possède aussi un répertoire personnel
409 <div class="sws-slide">
410 <h1>Noms de fichiers et chemins</h1>
411 <p style="background:white;">
412 Un chemin est une <em>liste de répertoire</em> à traverser pour
413 atteindre un fichier ou répertoire donné.
414 Sous Unix, le séparateur de chemin est le « <em>/</em> » <br/>
415 <em>Les chemins absolus </em> commencent par un <tt>/</tt> et
416 dénotent des fichiers à partir de la racine. Exemple:
418 /home/kim/Documents/ProgInternet/cours01.pdf
420 <em>Les chemins relatifs</em> dénotent des fichiers à partir du
421 répertoire courant. Exemple:<br/>
422 <code> Documents/ProgInternet/cours01.pdf</code>
423 si on se trouve dans le répertoire <tt>/home/kim</tt>
426 <em>Les noms spéciaux</em>: « . » dénote le répertoire
428 « .. » le répertoire parent, « ~ » le répertoire de
429 l'utilisateur et « ~<tt>toto</tt> » le répertoire de l'utilisateur
434 <div class="sws-slide">
435 <h1>Utilisation du <i>Shell</i></h1>
437 Le <em>shell</em> affiche un <em>invite de commande</em>
438 (<i>prompt</i>). Exemple:<br/>
439 <code>kim@machine $ <span class="sws-pause" /></code><br/><br/>
440 <span>On peut alors saisir une commande:</span><br/><br/>
441 <code> kim@machine $ ls *.txt<span class="sws-pause"/></code><br/><br/>
442 <span>Le shell affiche la <em>sortie</em> de la commande:</span><br/><br/>
443 <code> fichier1.txt fichier2.txt</code><br/><br/>
444 <span>Certains caractères doivent être précédés d'un « \ » (échappés):</span><br/><br/>
445 <code> kim@machine $ ls mon\ fichier\#1.txt</code>
448 <div class="sws-slide">
449 <h1>La ligne de commande</h1>
451 Une ligne de commande a la forme:<br/>
452 <code>prog item1 item2 item3 item4 … </code>
455 <li class="sws-pause"> Si <tt>prog</tt> est un chemin il doit
456 dénoter <em>un fichier exécutable </em>
458 <li class="sws-pause"> Si <tt>prog</tt> est un simple nom, il doit dénoter un fichier
459 exécutable se trouvant dans un des <em>répertoires prédéfinis</em>
460 (<tt>/bin</tt>, <tt>/usr/bin</tt>, …)
462 <li class="sws-pause"> Pour chaque <tt>item<sub>i</sub></tt> (séparés par un ou plusieurs espaces
463 non échappés) le <i>shell</i> fait une <em>expansion de nom</em>
465 <li class="sws-pause"> La liste de toutes les chaînes de caractères expansées est
466 passée comme argument au programme <tt>prog</tt>
470 <div class="sws-slide">
471 <h1>Expansion des noms<br/>Expressions régulières glob</h1>
473 Certains caractères sont <em>interprétés</em> de manière spéciale par le
474 <i>shell</i>. Ces caractères sont « expansés » selon des
475 règles. Si la forme <em>expansée</em> correspond a un ou plusieurs fichiers
476 existants, alors leurs noms sont placés sur la ligne de commande. Sinon
477 la chaîne de caractère de départ garde sa valeur textuelle.
480 <div class="sws-slide">
481 <h1>Expressions régulières glob</h1>
482 <p>Règles d'expansion:
483 <tt><em>*</em></tt> n'importe quelle chaîne<br/>
484 <tt><em>?</em></tt> n'importe quel caractère
485 <tt><em>[ab12…]</em></tt> un caractère dans la liste <br/>
486 <tt><em>[^ab12…]</em></tt> un caractère absent de liste<br/>
487 <tt><em>[a-z]</em></tt> un caractère dans l'intervalle<br/>
488 <tt><em>[^a-z]</em></tt> un caractère absent de l'intervalle<br/>
489 <tt><em>{m<sub>1</sub>, m<sub>2</sub>}</em></tt>
490 motif <tt>m<sub>1</sub></tt> ou <tt>m<sub>2</sub></tt> <br/>
491 <tt><em>?(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
492 <span style="display:inline-block;width:2em" />
493 <tt><em>@(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
494 <span style="display:inline-block;width:2em" />
495 <tt><em>*(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
496 <span style="display:inline-block;width:2em" />
497 <tt><em>+(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt><br/>
498 <i>k</i> motifs parmi <tt>m<sub>i</sub></tt> <br/>
499 <tt><em>?</em></tt>: <tt>0 ≤ <i>k</i> ≤ 1</tt>
500 <span style="display:inline-block;width:2em" />
501 <tt><em>@</em></tt>: <tt><i>k</i> = 1</tt>
502 <span style="display:inline-block;width:2em" />
503 <tt><em>*</em></tt>: <tt><i>k</i> ≥ 0</tt>
504 <span style="display:inline-block;width:2em" />
505 <tt><em>+</em></tt>: <tt><i>k</i> ≥ 1</tt>
507 <tt><em>!(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>:
508 ni <tt>m<sub>1</sub></tt>, …, ni <tt>m<sub>n</sub></tt>
511 <div class="sws-slide">
512 <h1>Expressions régulières glob<br/>Exemples</h1>
513 <p><tt><em>ls !(*[aeiouy]?)</em></tt> <span class="sws-pause">
514 La chaine « <tt>!(*[aeiouy]?)</tt> » est remplacée par la liste de tous
515 les fichiers dont l'avant dernière lettre du nom n'est pas une
516 voyelle. S'il n'y a pas de tel fichier, la chaîne
517 « <tt>!(*[aeiouy]?)</tt> » est passée à la commande <tt>ls</tt>.</span><br/><br/>
519 <tt><em>ls [0-9]*</em></tt> affiche la liste des fichiers commençant par un
521 <tt><em>ls +(abc)</em></tt> affiche la liste des fichiers dont le nom est une
522 répétition de « abc ».
526 <div class="sws-slide">
527 <h1>Commandes shell de base</h1>
529 <li><em>cd </em><i>chemin</i>: <i>chemin</i> devient le
530 répertoire courant. Si absent, utilise le répertoire personnel
532 <li><em>ls</em> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>:
533 affiche le nom des <i>n</i> fichiers. Si <i>n=0</i> affiche le contenu du
534 répertoire courant. Avec l'option <tt><em>-l</em></tt> affiche la liste
537 <li><em>cp</em> <i>chemin<sub>1</sub></i> <i>chemin<sub>2</sub></i>:
540 <li><em>mv</em> <i>chemin<sub>1</sub></i> <i>chemin<sub>2</sub></i>:
542 de fichier (et renommage)
544 <li><em>rm</em> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>:
545 supprime les fichiers (définitif)
549 <div class="sws-slide">
550 <h1>Droits et propriétés des fichiers</h1>
552 Sous Unix un utilisateur est identifié par son <em>login</em> (ou nom
553 d'utilisateur). Chaque utilisateur est dans un <em>groupe
555 Chaque fichier appartient à un utilisateur et à un groupe.<br/>
556 Chaque fichier possède 3 permissions pour son propriétaire, son groupe
557 et tous les autres. Les permissions sont lecture, écriture, exécution
558 (plus d'autres non abordées dans ce cours).<br/>
560 <tr><th style="width:20%">Permission</th> <th style="width:40%">fichier</th> <th style="width:40%">répertoire</th> </tr>
561 <tr><td><em>lecture</em> (r)</td> <td>lire le contenu du
563 <td >lister le contenu du répertoire</td></tr>
565 <tr><td style="vertical-align:top;"><em>écriture</em> (w)</td> <td style="vertical-align:top;">écrire dans le fichier</td>
566 <td style="vertical-align:top;">supprimer/renommer/créer des
567 fichiers dans le répertoire</td></tr>
568 <tr><td style="vertical-align:top;"><em>exécution</em>
569 (x)</td> <td style="vertical-align:top;">exécuter le fichier
572 c'est un programme)</td>
573 <td style="vertical-align:top;">rentrer dans le répertoire
577 drwxr-x--- 9 kim prof 4096 Sep 7 21:31 Documents</code>
580 <div class="sws-slide">
581 <h1>La commande <em>chmod</em></h1>
583 chmod <i>permissions</i> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>
585 <p> modifie les permissions des fichiers <i>1</i> à <i>n</i>. La chaîne
586 <i><tt>permissions</tt></i> est soit une suite de modifications de
587 permissions <em>symbolique</em> soit l'ensemble des permissions données
588 de manière <em>numérique</em>: <br/>
590 chmod 755 fichier.txt
591 chmod u-w,a+x,g=w fichier.txt
595 <div class="sws-slide">
596 <h1>Permissions numériques</h1>
598 On groupe les <em>bits</em> de permissions par trois puis on convertit
600 <table style="width:100%;text-align:center;" class="btable">
601 <tr> <th colspan="3" style="width:33%"> Utilisateur </th>
602 <th colspan="3" style="width:33%">
604 <th colspan="3" style="width:33%">Autres</th>
607 <td>r</td> <td>w</td> <td>x</td> <td>r</td> <td>w</td> <td>x</td> <td>r</td> <td>w</td> <td>x</td>
610 <td>1</td> <td>1</td> <td>0</td> <td>1</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td>
613 <td colspan="3"> 6 </td> <td colspan="3">
614 4</td><td colspan="3">0</td>
617 Le fichier est lisible et modifiable mais pas exécutable par son
618 propriétaire, lisible pour le groupe. Les autres ne peuvent ni le lire
621 <div class="sws-slide">
622 <h1>Permissions symboliques</h1>
624 cible modifieur permission
627 <li> <em>cible</em> : u (utilisateur), g (groupe), o (others), a
631 <li> <em>modifieur</em> : + (autorise), - (interdit), = (laisse
635 <li><em>permission</em> : r (lecture), w (écriture), x (exécution)</li>
639 <code> chmod u+rw,u-x,g+r,g-wx,o-rwx fichier.txt </code>
642 <div class="sws-slide">
643 <h1>Liens symboliques (1)</h1>
644 <p>Pour des raisons d'organisation, on veut pouvoir « voir » le même
645 fichier ou répertoire sous deux noms différents (ou à deux endroits
646 différents). Par exemple:
648 <code style="background:white">
649 $ ls -l <mark>Documents/Cours</mark>
651 drwxr-xr-x 3 kim prof 4096 Sep 9 11:30 <mark>Licence</mark>
652 drwxr-xr-x 3 kim prof 4096 Sep 9 11:30 <mark>Master</mark>
654 $ cd <mark>Documents/Cours/Master</mark>; ls
655 <mark>Compilation XMLProgInternet</mark>
657 $ cd <mark>XML_Prog_Internet</mark>; ls
658 <mark>cours01 cours02 cours03 cours04 cours05 cours06</mark> <mark style="color:turquoise">Prereq</mark>
661 lrwxrwxrwx 1 kim prof 28 Sep 9 11:30 <mark style="color:turquoise">Prereq</mark> -> <mark>../../Licence/UnixProgWeb/</mark>
665 <div class="sws-slide">
666 <h1>Liens symboliques (2)</h1>
667 <p>La commande <em><tt>ln</tt></em> permet de créer des <em>liens
668 symboliques</em>. Un lien est un petit fichier qui contient
669 un <em>chemin</em> vers un fichier de destination.
671 <p>Exemple d'utilisation</p>
672 <code> $ ln -s ../foo/bar/baz/toto.txt rep/titi.txt
674 <p class="sws-pause">crée un lien vers le fichier <tt>toto.txt</tt>
675 sous le nom <tt>titi.txt</tt> (chacun placé dans des sous/sur
679 <li>Ouvrir/modifier le lien > ouvre/modifie la cible</li>
680 <li>Supprimer le lien > supprime le lien mais pas la cible</li>
681 <li>Si la cible est un répertoire, faire <tt>cd</tt> nous place «
682 dans » la cible, mais le repertoire parent est celui d'où l'on vient</li>
684 <p>Cela permet de créer l'illusion que la cible a été copiée à
685 l'identique, sans les inconvénients</p>
687 <div class="sws-slide">
688 <h1>À propos de la suppression</h1>
689 <p>La commande <tt>rm fichier</tt> efface un fichier définitivement<br/>
690 La commande <tt>rm -d rep</tt> efface un répertoire s'il est vide<br/>
691 La commande <tt>rm -r rep</tt> efface un répertoire récursivement
692 mais demande confirmation avant d'effacer des éléments<br/>
693 La commande <tt>rm -rf rep</tt> efface un répertoire
694 récursivement et sans confirmation</p>
695 <p><s>Toute suppression est définitive</s></p>
696 <p>Gag classique :</p>
697 <code style="background:white"> $ mkdir <s>\~</s>
700 <mark> Documents Photos Musique ~</mark>
702 <mark style="font-size:200%;"> ☠ ☠ ☠ ☠ ☠ ☠</mark>
705 <div class="sws-slide">
706 <h1>Obtenir de l'aide sur une commande</h1>
707 <p>La commande <em><tt>man</tt></em> permet d'obtenir de l'aide sur
708 une commande. Lors qu'une page d'aide est affichée, on peut la faire
709 défiler avec les touches du clavier, la quitter avec « <tt>q</tt> »
710 et rechercher un mot avec la touch « <tt>/</tt> »</p>
711 <code style="position:relative;left:10%;font-size:70%">
712 LS(1L) Manuel de l'utilisateur Linux LS(1L)
715 <FONT COLOR="#000000"><B>NOM</B></FONT>
716 ls, dir, vdir - Afficher le contenu d'un répertoire.
718 <FONT COLOR="#000000"><B>SYNOPSIS</B></FONT>
719 <FONT COLOR="#000000"><B>ls</B></FONT> <FONT COLOR="#000000"><B>[options]</B></FONT> <FONT COLOR="#000000"><B>[fichier...]</B></FONT>
721 Options POSIX : <FONT COLOR="#000000"><B>[-1acdilqrtuCFR]</B></FONT>
723 Options GNU (forme courte) : <FONT COLOR="#000000"><B>[-1abcdfgiklmnopqrstuxABCD</B></FONT>
724 <FONT COLOR="#000000"><B>FGLNQRSUX]</B></FONT> <FONT COLOR="#000000"><B>[-w</B></FONT> <FONT COLOR="#0000ff"><I>cols<FONT COLOR="#000000"><B>]</B></FONT></I></FONT> <FONT COLOR="#000000"><B>[-T</B></FONT> <FONT COLOR="#0000ff"><I>cols<FONT COLOR="#000000"><B>]</B></FONT></I></FONT> <FONT COLOR="#000000"><B>[-I</B></FONT> <FONT COLOR="#0000ff"><I>motif<FONT COLOR="#000000"><B>]</B></FONT></I></FONT> <FONT COLOR="#000000"><B>[--full-time]</B></FONT>
725 <FONT COLOR="#000000"><B>[--format={long,verbose,commas,across,vertical,single-col</B></FONT>
726 <FONT COLOR="#000000"><B>umn}]</B></FONT> <FONT COLOR="#000000"><B>[--sort={none,time,size,extension}]</B></FONT>
727 <FONT COLOR="#000000"><B>[--time={atime,access,use,ctime,status}]</B></FONT>
728 <FONT COLOR="#000000"><B>[--color[={none,auto,always}]]</B></FONT> <FONT COLOR="#000000"><B>[--help]</B></FONT> <FONT COLOR="#000000"><B>[--version]</B></FONT> <FONT COLOR="#000000"><B>[--]</B></FONT>
730 <FONT COLOR="#000000"><B>DESCRIPTION</B></FONT>
731 La commande <FONT COLOR="#000000"><B>ls</B></FONT> affiche tout d'abord l'ensemble de ses
732 arguments <FONT COLOR="#0000ff"><I>fichiers</I></FONT> autres que des répertoires. Puis <FONT COLOR="#000000"><B>ls</B></FONT>
733 affiche l'ensemble des fichiers contenus dans chaque
734 répertoire indiqué. <FONT COLOR="#000000"><B>dir</B></FONT> et <FONT COLOR="#000000"><B>vdir</B></FONT> sont des versions de <FONT COLOR="#000000"><B>ls</B></FONT>
735 affichant par défaut leurs résultats avec d'autres for
741 <div class="sws-slide">
742 <h1>Recherche de fichiers</h1>
743 <p>La commande <tt>find rep <i>criteres</i></tt> permet de trouver
744 tous les fichiers se trouvant dans le répertoire <tt>rep</tt> (ou un
745 sous répertoire) et répondant à certains critères. Exemples de
748 <li> <tt>-name '*toto*'</tt> dont le nom
749 contient <tt>toto</tt></li>
750 <li> <tt>-size +200M</tt> dont la taille sur le disque est
751 supérieure à 200 Mo</li>
752 <li> <tt> <i>c<sub>1</sub></i> -a <i>c<sub>2</sub></i></tt> pour
753 lesquel les critères <tt> <i>c<sub>1</sub></i></tt>
754 et <tt> <i>c<sub>2</sub></i></tt> sont vrais</li>
755 <li> <tt> <i>c<sub>1</sub></i> -o <i>c<sub>2</sub></i></tt> pour
756 lesquel l'un au moins des critères <tt> <i>c<sub>1</sub></i></tt>
757 et <tt> <i>c<sub>2</sub></i></tt> est vrais</li>
758 <li> <tt>-user toto</tt> qui appartiennent à l'utilisateur <tt>toto</tt></li>
760 <p> Comment trouver toutes les options de la commande <tt>find</tt>
761 ? <span class="sws-pause"><tt><em> man find</em></tt></span></p>
763 <div class="sws-slide">
764 <h1>Quelques commandes utiles</h1>
766 <li> <tt>cat <i>fichier</i></tt> permet d'afficher le contenu d'un fichier dans
768 <li> <tt>less <i>fichier</i></tt> permet de lire le contenu d'un fichier (avec
769 défilement en utilisant les flêches du clavier si le fichier est
771 <li> <tt>sort <i>fichier</i></tt> permet d'afficher les lignes d'un fichier
772 triées (on peut spécifier des options de tri)</li>
773 <li> <tt>file <i>fichier</i></tt> permet de connaître le type d'un
775 <li> <tt>wc <i>fichier</i></tt> permet de compter le nombre de
776 caractères/mots/lignes d'un fichier</li>
777 <li> <tt>head <i>fichier</i></tt> permet de garder les <i>n</i>
778 premières lignes d'un fichier</li>
780 <p>On verra comment composer ces commandes pour exécuter des
781 opérations complexes</p>