Newer
Older
cours-unix-shell / UnixShell_cours2018 / newCommandsUser.fre.html
<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&eacute;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&eacute;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&eacute;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&nbsp;:
	</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&nbsp;:
	</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&eacute;compose en plusieurs parties,
	  g&eacute;n&eacute;ralement (mais pas exclusivement)&nbsp;:
	</p>
	<ul>
	  <li>
	    NAME&nbsp;: Rappel du nom de la commande et son
	    libell&eacute; en clair
	  </li>
	  <li>
	    SYNOPSIS&nbsp;: Mod&egrave;le g&eacute;n&eacute;rique de
	    l'emploi de la commande
	  </li>
	  <li>
	    DESCRIPTION&nbsp;: Explication du fonctionnement de la
	    commande
	  </li>
	  <li>
	    OPTIONS&nbsp;: Descriptions des diff&eacute;rentes options
	    support&eacute;es par la commande
	  </li>
	  <li>
	    USAGE&nbsp;: Particularit&eacute;s (par exemple,
	    comportement vis-&agrave;-vis de gros fichiers)
	  </li>
	  <li>
	    EXAMPLES&nbsp;: Quelques exemples d'emploi, comment&eacute;s
	  </li>
	  <li>
	    ENVIRONMENT VARIABLES&nbsp;: Listing des variables
	    d'environnement unix ayant une action sur la commande et
	    devant &eacute;ventuellement &ecirc;tre convenablement
	    positionn&eacute;es avant emploi de la commande (les
	    variables d'environnement seront trait&eacute;es dans la
	    partie suivante sur les shells)
	  </li>
	  <li>
	    SEE ALSO&nbsp;: Renvois vers d'autres commandes unix ayant
	    &agrave; voir avec la commande document&eacute;e
	  </li>
	  <li>
	    NOTES&nbsp;: Commentaires compl&eacute;mentaires
	  </li>
	</ul>

	<p><strong>N'oubliez jamais de consulter le man quand vous
	voulez en conna&icirc;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&eacute;taire ou un
	  groupe d'utilisateurs (ou bien d'autres crit&egrave;res,
	  voir le man).
	</p>
	<p>
	  Pour retrouver un fichier par son nom ou par un masque
	  (pattern) de celui-ci &agrave; partir du r&eacute;pertoire
	  courant&nbsp;:
	</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 &agrave; un
	utilisateur particulier ou &agrave; un groupe
	particulier&nbsp;:</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&eacute;rarchie du r&eacute;pertoire
	  courant&nbsp;:
	</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&eacute;rences &eacute;ventuelles, ligne &agrave; 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&eacute;rences
	  qu'elle trouve &agrave; l'aide des codes suivants&nbsp;:
	</p>
	<ul>
	  <li>
	    <code>a</code>&nbsp;: ligne en ajout dans
	    <code>File2</code> par rapport &agrave; <code>File1</code>
	  </li>
	  <li>
	    <code>d</code>&nbsp;: ligne en suppression dans
	    <code>File2</code> par rapport &agrave; <code>File1</code>
	  </li>
	  <li>
	    <code>c</code>&nbsp;: lignes chang&eacute;es entre
	    <code>File2</code> et <code>File1</code>
	  </li>
	  <li>
	    <code>&lt;</code>&nbsp;: diff&eacute;rence
	    constat&eacute;e dans <code>File1</code>
	  </li>
	  <li>
	    <code>&gt;</code>&nbsp;: diff&eacute;rence
	    constat&eacute;e dans <code>File2</code>
	  </li>
	</ul>

	<p>
	  &Agrave; titre d'illustration, soient les fichiers
	  <code>File1</code>, <code>File2</code> et <code>File3</code>
	  suivants&nbsp;:
	</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>&nbsp;</td>
	<td>d</td>
	<td>e</td>
	</tr>
	</table>

	<p>
	  Les commandes <code>diff</code> qui suivent donneront pour
	  rapports&nbsp;:
	</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>&gt; 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>&lt; 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>&gt; 1<br>3c4<br>&lt; c<br>---<br>&gt; 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>&nbsp;</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&eacute;cup&eacute;rer une ou plusieurs parties 
    d'une cha&icirc;ne de 
    caract&egrave;res, par exemple en pr&eacute;cisant le d&eacute;limiteur 
    s&eacute;parant les parties &agrave; extraire.
	</p>
	<p>
    Pour r&eacute;cup&eacute;rer le num&eacute;ro de d&eacute;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&eacute;cup&eacute;rer une partie d'une ligne avec un d&eacute;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 &eacute;diteur non interactif de texte. 
    Il permet d'appliquer une certain nombre de commandes &agrave; un fichier 
    puis d'en afficher le r&eacute;sultat (sans modifier le fichier de 
    d&eacute;part) sur la sortie standard. Comme avec toute commande unix, 
    il est possible de rediriger la sortie vers un fichier r&eacute;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>