<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link REL="STYLESHEET" TYPE="text/css" TITLE="Style DILIB" HREF="../../dilib.css"> <title>Nouvelles commandes - UNIX</title> <style type="text/css"> Q { font-style: italic; } TABLE { text-align: center; } </style> <script type="text/javascript"> function extWindow(url,win) { iwin=window.open(url, win, "height=450,width=600,scrollbars=yes,resizable=yes"); iwin.focus(); } </script> <link rel="copyright" href="http://www.inist.fr/"><link rel="author" href="http://dilib.inist.fr/membres.html"><link rel="chapter" href="caracteristiques.fre.html" title="UNIX"><link rel="chapter" href="X.fre.html" title="X Window"><link rel="chapter" href="redirPipes.fre.html" title="Rappels"><link rel="chapter" href="newCommandsUser.fre.html" title="Commandes UNIX"><link rel="chapter" href="shellVars.fre.html" title="Shell"><link rel="chapter" href="sed.fre.html" title="Sed"><link rel="chapter" href="make.fre.html" title="Make"><link rel="index" href="http://dilib.inist.fr/dilib/v04Main/IndexSite/Server/FR.resource.index.html"><link rel="top" title="Accueil de DILIB" href="http://dilib.inist.fr/dilib/v04Main/"><link rel="alternate" title="English version" href="newCommandsUser.eng.html"><link rel="up" href="index.fre.html" title="Tutorial UNIX / Shell"> <link rel="section" href="newCommandsUser.fre.html" title="Commandes utilisateur"><link rel="section" href="rightsCommands.fre.html" title="Gestion des droits"><link rel="section" href="tarzipCommands.fre.html" title="Archives, compression, décompression"><link rel="section" href="processesCommands.fre.html" title="Gestion des processus"><link rel="section" href="tpNewCommands.fre.html" title="TP"> <link rel="first" href="caracteristiques.fre.html" title="Caractéristiques d'UNIX"> <link rel="previous" href="tpRappels.fre.html" title="Travaux Pratiques"> <link rel="next" href="rightsCommands.fre.html" title="Gestion des droits"> <link rel="last" href="tpNewCommands.fre.html" title="Travaux Pratiques"> </head> <body> <h1>Autres commandes Unix</h1> <div id="navcontainer"> <ul id="navlist"> <li><a href="caracteristiques.fre.html">UNIX</a> </li> <li><a href="redirPipes.fre.html">Bases</a> </li> <li><a>Commandes</a> <ul id="subnavlist"> <li><a href="newCommandsUser.fre.html" id="subcurrent">Complémentaires</a></li> <li><a href="rightsCommands.fre.html">Droits</a></li> <li><a href="tarzipCommands.fre.html">Compression</a></li> <li><a href="processesCommands.fre.html">Processus</a></li> <li><a href="tpNewCommands.fre.html">TP</a></li> </ul> </li> <li><a href="shellVars.fre.html">Shell</a> </li> <li><a href="sed.fre.html">Sed</a> </li> <li><a href="make.fre.html">Make</a> </li> </ul> </div> <div class="content"> <h2>Manuels en ligne</h2> <ul> <li><h4>man</h4> <p> Cette commande permet d'obtenir le manuel unix en ligne de toute commande unix : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>man <i>[unixCommand]</i></td></tr> </table> <p> Par exemple, on obtient l'aide en ligne (en anglais) sur la commande <code>ls</code> avec : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>man ls</td></tr> </table> <p> L'aide qui s'affiche se décompose en plusieurs parties, généralement (mais pas exclusivement) : </p> <ul> <li> NAME : Rappel du nom de la commande et son libellé en clair </li> <li> SYNOPSIS : Modèle générique de l'emploi de la commande </li> <li> DESCRIPTION : Explication du fonctionnement de la commande </li> <li> OPTIONS : Descriptions des différentes options supportées par la commande </li> <li> USAGE : Particularités (par exemple, comportement vis-à-vis de gros fichiers) </li> <li> EXAMPLES : Quelques exemples d'emploi, commentés </li> <li> ENVIRONMENT VARIABLES : Listing des variables d'environnement unix ayant une action sur la commande et devant éventuellement être convenablement positionnées avant emploi de la commande (les variables d'environnement seront traitées dans la partie suivante sur les shells) </li> <li> SEE ALSO : Renvois vers d'autres commandes unix ayant à voir avec la commande documentée </li> <li> NOTES : Commentaires complémentaires </li> </ul> <p><strong>N'oubliez jamais de consulter le man quand vous voulez en connaître plus sur une commande, une fonction C, ou n'importe quoi d'autre </strong> (essayez <code>man colors</code>). </p> </li> </ul> <hr> <h2>Commandes sur les fichiers</h2> <ul> <li><h4>find</h4> <p> Cette commande permet de rechercher un fichier ou un groupe de fichiers dans une arborescence unix. La recherche peut porter sur le nom du fichier, son propriétaire ou un groupe d'utilisateurs (ou bien d'autres critères, voir le man). </p> <p> Pour retrouver un fichier par son nom ou par un masque (pattern) de celui-ci à partir du répertoire courant : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>find . -name table*</td></tr> </table> <p>Pour retrouver un (des) fichier(s) appartenant à un utilisateur particulier ou à un groupe particulier :</p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td style="text-align:left">find . -user parmentf<br>find . -group dilib</td></tr> </table> <p> Pour afficher la hiérarchie du répertoire courant : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>find .</td></tr> </table><br> </li> <li><h4>diff</h4> <p> Cette commande permet de comparer deux fichiers <code>File1</code> et <code>File2</code> et d'afficher leurs différences éventuelles, ligne à ligne. </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>diff File1 File2</td></tr> </table> <p> La commande <code>diff</code> signale les différences qu'elle trouve à l'aide des codes suivants : </p> <ul> <li> <code>a</code> : ligne en ajout dans <code>File2</code> par rapport à <code>File1</code> </li> <li> <code>d</code> : ligne en suppression dans <code>File2</code> par rapport à <code>File1</code> </li> <li> <code>c</code> : lignes changées entre <code>File2</code> et <code>File1</code> </li> <li> <code><</code> : différence constatée dans <code>File1</code> </li> <li> <code>></code> : différence constatée dans <code>File2</code> </li> </ul> <p> À titre d'illustration, soient les fichiers <code>File1</code>, <code>File2</code> et <code>File3</code> suivants : </p> <table bgcolor="white" border="1" class="var" style="margin-left:0;"> <tr> <th>File1</th> <th>File2</th> <th>File3</th> </tr> <tr> <td>a</td> <td>a</td> <td>a</td> </tr> <tr> <td>b</td> <td>b</td> <td>1</td> </tr> <tr> <td>c</td> <td>c</td> <td>b</td> </tr> <tr> <td> </td> <td>d</td> <td>e</td> </tr> </table> <p> Les commandes <code>diff</code> qui suivent donneront pour rapports : </p> <table width="100%"> <tr> <td> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td style="text-align:left">diff File1 File2<br><br>3a4<br>> d</td></tr> </table> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td style="text-align:left">diff File2 File1<br><br>4d3<br>< d</td></tr> </table> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td style="text-align:left">diff File1 File3<br><br>1a2<br>> 1<br>3c4<br>< c<br>---<br>> e</td></tr> </table> </td> <td> <table border="1" class="var"> <tr> <th>Ligne</th> <th>File1</th> <th>File2</th> <th>File3</th> </tr> <tr> <td>1</td> <td>a</td> <td>a</td> <td>a</td> </tr> <tr> <td>2</td> <td>b</td> <td>b</td> <td>1</td> </tr> <tr> <td>3</td> <td>c</td> <td>c</td> <td>b</td> </tr> <tr> <td>4</td> <td> </td> <td>d</td> <td>e</td> </tr> </table> </td> </tr> </table> <p>L'option <code>-c</code> de la commande <code>diff</code> permet d'avoir un rapport plus lisible, notamment dans le cas de comparaison de gros fichiers.</p> </li> </ul> <hr> <h2>Commandes sur les contenus</h2> <ul> <li><h4>cut</h4> <p> Cette commande permet de récupérer une ou plusieurs parties d'une chaîne de caractères, par exemple en précisant le délimiteur séparant les parties à extraire. </p> <p> Pour récupérer le numéro de département d'un code postal : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>echo 54500 | cut -c1-2</td></tr> <tr><td>54</td></tr> </table> <p> Pour récupérer une partie d'une ligne avec un délimiteur, avec une variable ligne="auteur,titre,descripteurs,id" : </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>echo $ligne | cut -d, -f2,4</td></tr> <tr><td>titre,id</td></tr> </table> <p> A noter que si le délimiteur est un caractère spécial du shell, par exemple le pipe | ou le point-virgule, il faut le protéger entre guillemets. </p> <table bgcolor="yellow" border="1" class="commands" style="margin-left:0;"> <tr><td>echo $ligne | cut -d"|" -f2</td></tr> <tr><td>titre</td></tr> </table> <li><h4>sed</h4> <p> Sed (pour Stream EDitor) est un éditeur non interactif de texte. Il permet d'appliquer une certain nombre de commandes à un fichier puis d'en afficher le résultat (sans modifier le fichier de départ) sur la sortie standard. Comme avec toute commande unix, il est possible de rediriger la sortie vers un fichier résultat. </p> <p> Voir Sed dans le menu principal. </p> </li> </ul> </div> <hr> <address><a href="mailto:philippe.houdry@inist.fr">Philippe.Houdry@inist.fr</a></address> </body> </html>