<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>