<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1></h1>
<nav>
<ul>
<li><a href="/output/README.html">Accueil</a></li>
<li><a href="/output/unix/README.html">UNIX</a></li>
<li><a href="/output/bases/README.html">Bases</a></li>
<li><a href="/output/commandes/README.html">Commandes</a></li>
<li><a href="/output/shell/README.html">Shell</a></li>
<li><a href="/output/sed/README.html">Sed</a></li>
<li><a href="/output/make/README.html">Make</a></li>
</ul>
</nav>
</header>
<div class="content">
<h1 id="autres-commandes-unix">Autres commandes UNIX</h1>
<h2 id="manuels-en-ligne">Manuels en ligne</h2>
<h3 id="man">man</h3>
<p>Cette commande permet d'obtenir le manuel unix en ligne de toute commande unix :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">man</span> [unixCommand]</code></pre></div>
<p>Par exemple, on obtient l'aide en ligne (en anglais) sur la commande <code>ls</code> avec :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">man</span> ls</code></pre></div>
<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 man colors (obsolète)).</p>
<blockquote>
<p>💡 Les <em>mans</em> ont évolué jusqu'à ne presque plus contenir d'exemples, les rendant beaucoup plus hermétiques.<br />
Utilisez <a href="https://tldr.sh/">tldr</a> pour avoir les exemples principaux pour une commande: <a href="https://tldr.sh/" class="uri">https://tldr.sh/</a></p>
</blockquote>
<h2 id="commandes-sur-les-fichiers">Commandes sur les fichiers</h2>
<h3 id="find">find</h3>
<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>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">find</span> . -name table*</code></pre></div>
<p>Pour retrouver un (des) fichier(s) appartenant à un utilisateur particulier ou à un groupe particulier :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">find</span> . -user parmentf
<span class="fu">find</span> . -group dilib</code></pre></div>
<p>Pour afficher la hiérarchie du répertoire courant :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">find</span> .</code></pre></div>
<h3 id="diff">diff</h3>
<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>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">diff</span> File1 File2</code></pre></div>
<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>
<thead>
<tr class="header">
<th style="text-align: center;">File1</th>
<th style="text-align: center;">File2</th>
<th style="text-align: center;">File3</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;">a</td>
<td style="text-align: center;">a</td>
<td style="text-align: center;">a</td>
</tr>
<tr class="even">
<td style="text-align: center;">b</td>
<td style="text-align: center;">b</td>
<td style="text-align: center;">1</td>
</tr>
<tr class="odd">
<td style="text-align: center;">c</td>
<td style="text-align: center;">c</td>
<td style="text-align: center;">b</td>
</tr>
<tr class="even">
<td style="text-align: center;"></td>
<td style="text-align: center;">d</td>
<td style="text-align: center;">e</td>
</tr>
</tbody>
</table>
<p>Les commandes <code>diff</code> qui suivent donneront pour rapports :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">diff</span> File1 File2
<span class="ex">3a4</span>
<span class="op">></span> <span class="ex">d</span>
$ <span class="fu">diff</span> File2 File1
<span class="ex">4d3</span>
<span class="op"><</span> <span class="ex">d</span>
$ <span class="fu">diff</span> File1 File3
<span class="ex">1a2</span>
<span class="op">></span> <span class="ex">1</span>
<span class="ex">3c4</span>
<span class="op"><</span> <span class="ex">c</span>
<span class="ex">---</span>
<span class="op">></span> <span class="ex">e</span></code></pre></div>
<table>
<thead>
<tr class="header">
<th style="text-align: center;">Ligne</th>
<th style="text-align: center;">File1</th>
<th style="text-align: center;">File2</th>
<th style="text-align: center;">File3</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;">1</td>
<td style="text-align: center;">a</td>
<td style="text-align: center;">a</td>
<td style="text-align: center;">a</td>
</tr>
<tr class="even">
<td style="text-align: center;">2</td>
<td style="text-align: center;">b</td>
<td style="text-align: center;">b</td>
<td style="text-align: center;">1</td>
</tr>
<tr class="odd">
<td style="text-align: center;">3</td>
<td style="text-align: center;">c</td>
<td style="text-align: center;">c</td>
<td style="text-align: center;">b</td>
</tr>
<tr class="even">
<td style="text-align: center;">4</td>
<td style="text-align: center;"></td>
<td style="text-align: center;">d</td>
<td style="text-align: center;">e</td>
</tr>
</tbody>
</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>
<h2 id="commandes-sur-les-contenus">Commandes sur les contenus</h2>
<h3 id="cut">cut</h3>
<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>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">echo</span> 54500 <span class="kw">|</span> <span class="fu">cut</span> -c1-2
<span class="ex">54</span></code></pre></div>
<p>Pour récupérer une partie d'une ligne avec un délimiteur, avec une variable <code>ligne="auteur,titre,descripteurs,id"</code> :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">echo</span> <span class="va">$ligne</span> <span class="kw">|</span> <span class="fu">cut</span> -d, -f2,4
<span class="ex">titre</span>,id</code></pre></div>
<p>À noter que si le délimiteur est un caractère spécial du shell, par exemple le pipe <code>|</code> ou le point-virgule, il faut le protéger entre guillemets.</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">echo</span> <span class="va">$ligne</span> <span class="kw">|</span> <span class="fu">cut</span> -d<span class="st">"|"</span> -f2
<span class="ex">titre</span></code></pre></div>
<h3 id="sed">sed</h3>
<p>Sed (pour Stream EDitor) est un éditeur non interactif de texte.<br />
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.<br />
Comme avec toute commande unix, il est possible de rediriger la sortie vers un fichier résultat.</p>
<p>Voir <a href="../sed/README.html">Sed</a>.</p>
<p><a href="../bases/tp.html">Précédent</a> - <a href="droits.html">Suivant</a></p>
</div>
<footer>
<p>© CNRS 2023</p>
</footer>
</body>
</html>