<h2>But de ce document</h2>
<p class="spip">Ce document donnera une description et des exemples d’utilisations des commandes systèmes les plus courantes sous Linux.</p>

<h2>df [ -options ] [ nom ] </h2>
<p class="spip">Affiche l’espace libre sur chacun des systèmes de fichiers montés ou sur celui précisé par nom.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-k</strong></td><td>Affiche la taille en blocs de 1 k plutôt qu’en blocs de 512 octets. </td></tr>
<tr class="row_odd"><td><strong class="spip">-t </strong><i class="spip"> type </i></td><td>N’affiche que les systèmes de fichiers de type <i class="spip"> type </i>. </td></tr>
<tr class="row_even"><td><strong class="spip">-x </strong><i class="spip"> type </i></td><td>N’affiche que les systèmes de fichiers de type autre que <i class="spip"> type </i>. </td></tr>
<tr class="row_odd"><td><strong class="spip">-h</strong></td><td>Affiche les tailles dans un format lisible par un humain (i.e. 1K 234M 2G). </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ df -k /home<br />
$ df -x nfs</code></div>
<h2>du [ -options ] [ répertoire ] </h2>
<p class="spip">Affiche la taille du répertoire en cours ou du répertoire précisé.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-h</strong></td><td>Affiche les tailles dans un format lisible par un humain (i.e. 1K 234M 2G). </td></tr>
<tr class="row_odd"><td><strong class="spip">-s</strong></td><td>Affiche le total pour les répertoires donnés en arguments. </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ du -h /home<br />
$ du -hs *</code></div>
<h2>chmod [ -options ] mode fichiers </h2>
<p class="spip">Permet de modifier les droits d’accès (mode) d’un ou plusieurs fichiers. Seul le propriétaire du fichier ou le super utilisateur peut effectuer un changement de mode.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-R</strong></td><td>Effectue les changements de manière récursive. </td></tr>
</tbody>
</table>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Utilisateur</strong></th><th scope='col'><strong class="spip">Commentaire </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">u</strong></td><td>Propriétaire du fichier (user). </td></tr>
<tr class="row_odd"><td><strong class="spip">g</strong></td><td>Groupe du propriétaire (group). </td></tr>
<tr class="row_even"><td><strong class="spip">o</strong></td><td>Tous les autres (other). </td></tr>
<tr class="row_odd"><td><strong class="spip">a</strong></td><td>Tout le monde (all). </td></tr>
</tbody>
</table>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Opérateur</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">+</strong></td><td>Ajoute des permissions. </td></tr>
<tr class="row_odd"><td><strong class="spip">-</strong></td><td>Retire des permissions. </td></tr>
<tr class="row_even"><td><strong class="spip">=</strong></td><td>Redéfinition des permissions (avec suppression de celles qui ne sont pas précisées). </td></tr>
</tbody>
</table>
<p class="spip"><strong class="spip">Permissions </strong> : Il s’agit des permissions (r,w,x,s,t) vues dans un chapitre précédent. Je voudrais préciser ici qu’on peut utiliser le mode octal pour préciser les permissions :</p>

<table class="spip">
<tbody>
<tr class="row_even"><td><strong class="spip">4</strong></td><td>pour la lecture. </td></tr>
<tr class="row_odd"><td><strong class="spip">2</strong></td><td>pour l’écriture. </td></tr>
<tr class="row_even"><td><strong class="spip">1</strong></td><td>pour l’exécution. </td></tr>
</tbody>
</table>
<p class="spip">Pour un fichier dont les droits sont -rwxrw-r&mdash; soit : 
<br /></p>
<li> Le premier triplet concerne les droits du propriétaire du fichier : rwx 
<br /><li> Le deuxième triplet concerne les droits du groupe du propriétaire : rw- 
<br /><li> Le troisième triplet concerne les autres utilisateurs : r&mdash;
<p class="spip">Pour donner tous les droit à tout le monde, on fait :</p>

<p class="spip"><code class='spip_code' dir='ltr'> $ chmod 777 nom_du_fichier </code></p>

<p class="spip">ou bien</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chmod a+rwx </code></p>

<p class="spip">puis pour avoir les droits donnés au début de l’exemple, on fait :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chmod g-x,o-wx fichier</code></p>

<p class="spip">ou</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chmod 764 fichier</code></p>

<h2>chgrp [ -options ] group fichiers </h2>
<p class="spip">Permet de modifier le groupe d’un ou plusieurs fichiers. Seul le propriétaire ou le super utilisateur peut effectuer un changement de groupe.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-R</strong></td><td>Effectue les changements de manière récursive. </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ chgrp -R users /home<br />
$ chgrp bin script.pl</code></div>
<h2>chown [ -options ] user [ : group ] fichiers </h2>
<p class="spip">Permet de modifier le propriétaire et le groupe d’un ou plusieurs fichiers. Seuls le propriétaire du fichier ou le super utilisateur peut effectuer une telle opération.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-R</strong></td><td>Effectue les changements de manière récursive. </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ chown -R thierry:users /home/thierry<br />
$ chown thierry:cdwriter fichier1 fichier2</code></div>
<p class="spip"><strong class="spip">Nota</strong> : on peut simplifier la commande dans le cas où le groupe est le groupe natif de l’utilisateur, c’est à dire le groupe créé à l’installation avec l’utilisateur. Donc pour simplifier on écrit :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chown thierry: fichier</code></p>

<p class="spip">on ne précise pas de nom après " :".</p>

<h2>tail [ -options ] [ fichier ] </h2>
<p class="spip">Affiche sur la sortie standard les dernières lignes de « fichier » (10 par défaut).</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-f</strong></td><td>Suit le fichier lorsqu’il croit (Utile pour suivre l’évolution d’un fichier). Taper <i class="spip"> CTRL-C </i> pour y mettre fin. </td></tr>
<tr class="row_odd"><td><strong class="spip">-n </strong><i class="spip"> <strong class="spip">num</strong> </i></td><td>Affiche les <i class="spip"> num </i> dernières lignes. </td></tr>
</tbody>
</table>
<p class="spip">exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ tail -f /var/log/messages<br />
$ tail -n 20 mon_fichier</code></div>
<h2>ln [ -options ] nom_source [ nom_dest ] </h2>
<p class="spip">Crée des liens permettant d’accéder à des fichiers sous différents noms.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire </strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-b</strong></td><td>Sauvegarde les fichiers originaux avant de les écraser par de nouveaux liens. </td></tr>
<tr class="row_odd"><td><strong class="spip">-f</strong></td><td>Force la création du lien sans demander de confirmation. </td></tr>
<tr class="row_even"><td><strong class="spip">-s</strong></td><td>Crée un lien symbolique. La commande ls -l permet de retrouver le fichier source. </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># ln -sf /mnt/cdrom /cdrom<br />
# ln -s /usr/local/bin/ma_commande</code></div>
<h2>tar [ -options ] [ fichier_tar ] [ autre_fichiers ] </h2>
<p class="spip">Permet de copier des fichiers vers une archive ou d’extraire des fichiers d’une archive. Si <i class="spip"> autres_fichiers </i> est un répertoire, tar archive l’ensemble du répertoire et des sous répertoires. Les options sont très nombreuses, voyons les principales.</p>

<p class="spip"><strong class="spip">Options de fonction : </strong></p>

<p class="spip">On ne peut utiliser qu’une seule des options suivantes .</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">c</strong></td><td><strong class="spip">c</strong>reate. Crée une nouvelle archive. </td></tr>
<tr class="row_odd"><td><strong class="spip">t</strong> </td><td>lis<strong class="spip">t</strong>. Liste le contenu d’une archive. </td></tr>
<tr class="row_even"><td><strong class="spip">u</strong></td><td><strong class="spip">u</strong>pdate. Met l’archive à jour en ajoutant de nouveaux fichiers ou met à jour des fichiers modifiés. </td></tr>
<tr class="row_odd"><td><strong class="spip">x</strong></td><td>e<strong class="spip">x</strong>tract. Extrait des fichiers d’une archive. </td></tr>
<tr class="row_even"><td><strong class="spip">r</strong></td><td>Ajoute des fichiers à une archive. </td></tr>
<tr class="row_odd"><td><strong class="spip">d</strong></td><td>Compare les fichiers contenus dans l’archive à ceux présents sur le disque dur. </td></tr>
</tbody>
</table>
<p class="spip"><strong class="spip">Options communes :</strong></p>

<p class="spip"><strong class="spip">f </strong><i class="spip"> <strong class="spip">archive	</strong> </i>Sauvegarde les fichiers dans <i class="spip"> archive </i> ou les extrait de <i class="spip"> archive </i>. Archive peut être de la forme <i class="spip"> host:file </i>.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">h</strong></td><td>Sauvegarde le fichier auquel un lien fait référence et non le lien. </td></tr>
<tr class="row_odd"><td><strong class="spip">l</strong></td><td>N’archive pas les fichiers situés sur d’autres systèmes de fichiers. </td></tr>
<tr class="row_even"><td><strong class="spip">p</strong></td><td>Préserve les attributs originaux des fichiers sauvegardés. </td></tr>
<tr class="row_odd"><td><strong class="spip">v</strong></td><td>Mode verbeux. </td></tr>
<tr class="row_even"><td><strong class="spip">Z</strong></td><td>Utilise <strong class="spip">compress</strong> pour compacter les fichiers. </td></tr>
<tr class="row_odd"><td><strong class="spip">z</strong></td><td>Utilise <strong class="spip">gzip</strong> pour compacter les fichiers. </td></tr>
<tr class="row_even"><td><strong class="spip">j</strong></td><td>Utilise <strong class="spip">bzip2</strong> pour compacter les fichiers. </td></tr>
<tr class="row_odd"><td><strong class="spip">k</strong></td><td>Conserve tout fichier existant avant l’extraction, aucun fichier ne sera écrasé par un autre portant le même nom dans l’archive. </td></tr>
</tbody>
</table>
<p class="spip">exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ tar cvfz /dev/rmt0 /home /usr/local<br />
$ tar xvf MonFichier.tar<br />
$ tar cvf - $(find . -print) > copie.tar<br />
$ gzip -cd MonFichier.tgz | tar xvf -</code></div>
<h2>diff [ -options ] [ fichier1 ] [ fichier2 ] </h2>
<p class="spip">Compare deux fichiers et affiche les différences. Chaque paire de lignes est précédée de la commande <i class="spip"> ed </i> qui permettrait de rendre fichier 1 identique à fichier 2.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-a</strong></td><td>Tous les fichiers seront considérés comme du texte. Utile pour comparer 2 fichiers binaires. </td></tr>
<tr class="row_odd"><td><strong class="spip">-c</strong></td><td>Comparaison contextuelle. </td></tr>
</tbody>
</table>
<p class="spip">exemples :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ diff -c /etc/bashrc /home/.bashrc</code></p>

<h2>gzip [ -options ] [ fichier ], gunzip [ -options ] [ fichier ] </h2>
<p class="spip">Compresse ou décompresse les fichiers donnés en arguments selon l’algorithme LZ77. Les fichiers sont renommés <i class="spip"> nom_fichier.gz </i>. On décompacte les fichiers avec la commande gunzip.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-num</strong></td><td>Contrôle le taux de compression de 1 à 9 (9 est le taux de compression le plus haut mais aussi le plus lent). </td></tr>
<tr class="row_odd"><td><strong class="spip">-c</strong></td><td>Affiche sur la sortie standard mais ne modifie pas le fichier. </td></tr>
<tr class="row_even"><td><strong class="spip">-d</strong></td><td>Décompresse le fichier (Identique à gunzip). </td></tr>
<tr class="row_odd"><td><strong class="spip">-r</strong></td><td>Récursif. Lorsqu’un répertoire est donné en argument, compacte tous les fichiers qui s’y trouve de façon récursive. </td></tr>
</tbody>
</table>
<p class="spip">exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ gzip -r /home/thierry<br />
$ gzip -d fichier.gz</code></div>
<h2>bzip2 [ -options ] [ fichier ], bunzip2 [ -options ] [ fichier ] </h2>
<p class="spip">Identique à gzip mais l’algorithme permet une meilleure compression. Le suffixe de fichier standard est <strong class="spip">.bz2</strong></p>

<h2>su [ -options ] [ utilisateur ] </h2>
<p class="spip">Permet de changer d’utilisateur, pour effectuer des tâches qui nécessitent des droits différents de l’utilisateur actuel. Lorsque <i class="spip"> utilisateur </i> n’est pas précisé, c’est <i class="spip"> root </i> qui est utilisé.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-</strong></td><td>L’environnement <i class="spip"> utilisateur </i> est alors chargé. </td></tr>
<tr class="row_odd"><td><strong class="spip">-c </strong><i class="spip"> <strong class="spip">commande</strong> </i></td><td>Lance <i class="spip"> commande </i> dans un nouveau shell et le quitte immédiatement. </td></tr>
</tbody>
</table>
<p class="spip">exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ su -<br />
$ su oracle -c dbshut</code></div>
<h2>ps [ options ] </h2>
<p class="spip">Affiche la liste des processus en cours d’exécution. Il n’est pas nécessaire d’introduire les options par un tiret.</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">a</strong></td><td>Affiche tous les processus. </td></tr>
<tr class="row_odd"><td><strong class="spip">e</strong></td><td>Affiche aussi les processus système. </td></tr>
<tr class="row_even"><td><strong class="spip">f</strong></td><td>Affiche la sortie sous forme d’arborescence. </td></tr>
<tr class="row_odd"><td><strong class="spip">h</strong></td><td>Supprime l’affichage de l’en-tête. </td></tr>
<tr class="row_even"><td><strong class="spip">j</strong></td><td>Affiche en format <i class="spip"> tâches </i>. </td></tr>
<tr class="row_odd"><td><strong class="spip">l</strong></td><td>Affiche en format <i class="spip"> étendu </i>. </td></tr>
<tr class="row_even"><td><strong class="spip">m</strong></td><td>Affiche en format <i class="spip"> mémoire </i>. </td></tr>
<tr class="row_odd"><td><strong class="spip">u</strong></td><td>Inclut le nom d’utilisateur et l’heure de lancement du processus. </td></tr>
<tr class="row_even"><td><strong class="spip">w</strong></td><td>Affiche chaque entrée sur plusieurs lignes si elle est plus large que l’écran. </td></tr>
<tr class="row_odd"><td><strong class="spip">x</strong></td><td>Affiche les processus non rattachés à un terminal. </td></tr>
<tr class="row_even"><td><strong class="spip">-C </strong><i class="spip"> <strong class="spip">programme</strong> </i></td><td>Permet de connaître le PID d’un programme connu </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ ps faux<br />
$ ps fjx<br />
$ ps eux | sort -n -k4 <br />
$ ps -C firefox</code></div>
<h2>kill [ -options ] PID </h2>
<p class="spip">Envoie un signal à un ou plusieurs processus identifiés par leur numéro (PID).</p>

<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Option</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td><strong class="spip">-l</strong></td><td>Affiche la liste des signaux. </td></tr>
<tr class="row_odd"><td><strong class="spip">-s </strong><i class="spip"> <strong class="spip">signal</strong> </i></td><td>Signal à envoyer au processus. Il doit être précisé par son nom ou son numéro </td></tr>
<tr class="row_even"><td><strong class="spip">-3/-6/-9</strong></td><td>Lors de la tentative pour <i class="spip"> tuer </i> le processus, vous pouvez lui spécifier une force (3 est la plus faible et 9 la plus puissante). </td></tr>
</tbody>
</table>
<p class="spip">Exemples :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ kill -SIGHUP xinetd <br />
$ kill -9 id_processus_fou</code></div>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>2002</td><td><strong class="spip">Thierry COLAS</strong>, auteur original du document « Lignes de commandes - le pense bête de COAGUL »</td></tr>
<tr class="row_odd"><td>0.2</td><td>2004</td><td><strong class="spip">Marc P</strong><strong class="spip">OIROUD</strong> pour la conversion en LATEX , PDF et HTML. <strong class="spip">Gnunux</strong>, pour sa relecture</td></tr>
<tr class="row_even"><td>0.3</td><td>18/03/05</td><td><strong class="spip">Tony</strong> pour la conversion au format OOo / Spip et le découpage en 7 articles.</td></tr>
</tbody>
</table>