tuteurs.ens.fr/www/unix/exercices/enchainer.html

288 lines
14 KiB
HTML
Raw Normal View History

2024-04-02 20:48:26 +02:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pipes</title>
<link rel="stylesheet" href="../../tuteurs.css" type="text/css" />
</head>
<body>
<div class="navigation">
<h1>Tuteurs informatique<br /><a href="../../meta/contact.html">Nous contacter</a></h1>
<hr />
<ul class="menu">
<li>
<a href="../../meta/charte_graphique.html">Utiliser ce site</a>
</li>
<li>
<a href="../../actualite.html">Actu et stages</a>
</li>
<li>
<a href="../../docs/">Docs à imprimer</a>
</li>
<li>
<a href="../../meta/plan_site.html">Plan du site</a>
</li>
<li>
<a href="../../search.html">Rechercher</a>
</li>
</ul>
<hr />
<ul class="arbre">
<li>
<a href="../../">Les tuteurs</a>
<ul class="arbre">
<li>
<a href="../">Unix</a>
<ul class="arbre">
<li>
<a href="./">Exercices</a>
<ul class="arbre">
<li>
<a href="contact.html">Prise de contact</a>
</li>
<li>
<a href="cp_mv.html">cp et mv</a>
</li>
<li>
<a href="enchainer.html" class="actuel">Pipes</a>
</li>
<li>
<a href="find.html">find</a>
</li>
<li>
<a href="grep.html">grep</a>
</li>
<li>
<a href="interface.html">Interface</a>
</li>
<li>
<a href="less.html">less</a>
</li>
<li>
<a href="ls.html">ls</a>
</li>
<li>
<a href="mkdir_cd.html">Répertoires</a>
</li>
<li>
<a href="solutions/">Solutions</a>
</li>
<li>
<a href="systeme.html">Système</a>
</li>
<li>
<a href="unix_deb.html">Commandes Unix</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr />
<ul class="menu">
<li>
<a href="http://www.eleves.ens.fr/">Serveur des élèves</a>
</li>
<li>
<a href="http://www.ens.fr/">ENS</a>
</li>
<li>
<a href="http://www.spi.ens.fr/">SPI</a>
</li>
</ul>
</div>
<div class="corps">
<h1><em>Pipes</em>, jokers et redirections</h1>
<div class="sommaire">
<ul>
<li>
<a href="#cat">La commande <tt>cat</tt></a>
</li>
<li>
<a href="#jokers">Jokers et expressions régulières</a>
</li>
<li>
<a href="#germinal">Exercices sur <em>Germinal</em></a>
</li>
<li>
<a href="#headtail"><tt>head</tt> et <tt>tail</tt></a>
</li>
<li>
<a href="#syst">Filtres et redirections</a>
</li>
<li>
<a href="#yp">Exercices sur les pages jaunes</a>
</li>
<li>
<a href="#divers">Divers</a>
</li>
</ul>
</div>
<h2>
<a name="cat" id="cat">La commande <tt>cat</tt></a>
</h2>
<p>On n'a pas traité de la commande <tt>cat</tt> dans la page consacrée aux
commandes de base, parce que <tt>cat</tt> s'utilise le plus souvent avec des
redirections.</p>
<ol>
<li><a href="solutions/enchainer-sol.html#cat1"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment visualiser deux fichiers l'un après l'autre à l'aide de la commande
<tt>cat</tt> ?</li>
<li><a href="solutions/enchainer-sol.html#cat2"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment faire une copie d'un fichier sans utiliser <tt>cp</tt> ni ouvrir
d'éditeur de texte ?</li>
<li><a href="solutions/enchainer-sol.html#cat3"><img src="../../icones/solution.png" alt="Solution" /></a>
Utiliser <tt>cat</tt> pour écrire un peu de texte et mettre le résultat
dans un fichier <tt>notes</tt>.</li>
<li><a href="solutions/enchainer-sol.html#cat4"><img src="../../icones/solution.png" alt="Solution" /></a>
Quelle différence y a-t-il entre
<pre>
cat bla blo &gt; blu
</pre>
<p class="continue">et</p>
<pre>
cat bla blo &gt;&gt; blu
</pre>
<p>
Que se passe-t-il, pour chaque ligne, selon que le fichier <tt>blu</tt>
existe ou n'existe pas ?</p> </li>
<li><a href="solutions/enchainer-sol.html#cat5"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment obtenir un fichier <tt>blo</tt> qui corresponde à un fichier
<tt>bla</tt> dont les lignes seraient désormais numérotées ?</li>
</ol>
<h2>
<a name="jokers" id="jokers">Jokers et expressions régulières</a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#jokers1"><img src="../../icones/solution.png" alt="Solution" /></a>
Vous avez chez vous des fichiers appelés <tt>essai1</tt>, <tt>essai2</tt>,
<tt>essai3</tt> et <tt>essai4</tt>. Comment les effacer en une seule ligne
de commande ?</li>
<li><a href="solutions/enchainer-sol.html#jokers2"><img src="../../icones/solution.png" alt="Solution" /></a>
Dans mon répertoire d'accueil, j'ai un certain nombre de fichiers avec un
suffixe <tt>.c</tt>. Je désire les regrouper dans un répertoire que
j'appelerai <tt>C/</tt>. Quelles sont les commandes que je dois
taper ?</li>
<li><a href="solutions/enchainer-sol.html#jokers3"><img src="../../icones/solution.png" alt="Solution" /></a>
Vous désirez regrouper dans un répertoire <tt>Rangement</tt> les fichiers
dont le nom contient un caractère minuscule suivi d'un caractère majuscule.
Quelle(s) est/sont la/les commande(s) à donner ?</li>
<li><a href="solutions/enchainer-sol.html#jokers4"><img src="../../icones/solution.png" alt="Solution" /></a>
Même chose avec les fichiers dont le nom contient trois voyelles à la
suite.</li>
<li><a href="solutions/enchainer-sol.html#jokers5"><img src="../../icones/solution.png" alt="Solution" /></a>
En utilisant <tt>ls</tt> et <tt>grep</tt>, affichez la liste des fichiers
dans <tt>/bin</tt> dont le nom :
<ul><li> Commence par «a» et dont la deuxième lettre est «s» ou «t»;</li><li> Contient «un» et se termine par «t»;</li><li> Contient «gre» ou «st».</li><li> Contient exactement deux lettres «m»;</li><li> Contient au moins deux lettres «m»;</li><li> Contient au moins quatre caractères et aucun chiffre;</li><li> Est constitué de deux lettres exactement;</li><li> Commence et finit par un chiffre.</li></ul></li>
<li><a href="solutions/enchainer-sol.html#jokers6"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment éliminer les lignes vides dans un fichier ? Comment éliminer
les lignes ne contenant que des blancs ?</li>
</ol>
<h2>
<a name="germinal" id="germinal">Exercices sur <em>Germinal</em></a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#germinal1"><img src="../../icones/solution.png" alt="Solution" /></a> Combien de
fois le mot «mine» apparaît dans chaque chapitre de la première partie de
<em>Germinal</em> ?</li>
<li><a href="solutions/enchainer-sol.html#germinal2"><img src="../../icones/solution.png" alt="Solution" /></a>Combien y
a-t-il de lignes blanches dans <tt>zola1.txt</tt> ?</li>
</ol>
<h2>
<a name="headtail" id="headtail"><tt>head</tt> et <tt>tail</tt></a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#headtail1"><img src="../../icones/solution.png" alt="Solution" /></a> Affichez
les 15 premières lignes du fichier <tt>/etc/hosts</tt>, les 15 dernières
lignes, toutes les lignes à partir de la quinzième, les lignes 15 à 20.
<div class="attention"><h1><img src="../../icones/panneau_attention.png" alt="/!\" /> Attention <img src="../../icones/panneau_attention.png" alt="/!\" /></h1>
Placez-vous sur sas.eleves pour faire cet exercice. En effet, les
<tt>/etc/hosts</tt> des autres machines sont beaucoup plus petits (en
particulier peuvent faire moins de 15 lignes).
</div></li>
<li><a href="solutions/enchainer-sol.html#headtail2"><img src="../../icones/solution.png" alt="Solution" /></a> Récupérer
les lignes 5 à 9 d'un fichier de 12 lignes.</li>
<li><a href="solutions/enchainer-sol.html#headtail4"><img src="../../icones/solution.png" alt="Solution" /></a> Comment
afficher la cinquième ligne d'un fichier ?</li>
</ol>
<h2>
<a name="syst" id="syst">Filtres et redirections</a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#syst1"><img src="../../icones/solution.png" alt="Solution" /></a>
Créez un fichier dont chaque ligne commence par un chiffre, suivi d'un
slash (<tt>/</tt>), puis d'un ou plusieurs mots.
<ol><li> Affichez les lignes de ce fichier triées en ordre croissant, suivant
le nombre placé en début de ligne;</li><li> Éliminez de chaque ligne le chiffre et le caractère «<tt>/</tt>»;</li><li> Triez ces lignes par ordre alphabétique inverse.</li></ol></li>
<li><a href="solutions/enchainer-sol.html#syst2"><img src="../../icones/solution.png" alt="Solution" /></a> Combien de
fichiers de configuration avez-vous ?</li>
<li><a href="solutions/enchainer-sol.html#syst3"><img src="../../icones/solution.png" alt="Solution" /></a> Combien de
répertoires de configuration avez-vous ?</li>
<li><a href="solutions/enchainer-sol.html#syst4"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment mettre dans un fichier la liste de tous les fichiers de
l'arborescence à partir du répertoire courant ?</li>
<li><a href="solutions/enchainer-sol.html#syst5"><img src="../../icones/solution.png" alt="Solution" /></a> Créez un
fichier <tt>liste</tt> contenant la liste de tous vos fichiers, avec leur
taille, leurs droits, etc.</li>
<li><a href="solutions/enchainer-sol.html#syst6"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment afficher uniquement les fichiers du répertoire courant qui sont des
liens symboliques ?</li>
<li><a href="solutions/enchainer-sol.html#syst7"><img src="../../icones/solution.png" alt="Solution" /></a> Combien de
lignes contiennent le mot «<em>file</em>» dans la page de man de
<tt>syst</tt> ?</li>
<li><a href="solutions/enchainer-sol.html#syst8"><img src="../../icones/solution.png" alt="Solution" /></a> Quels sont les
dix plus gros fichiers de <tt>/usr/bin/</tt> ?</li>
<li><a href="solutions/enchainer-sol.html#syst9"><img src="../../icones/solution.png" alt="Solution" /></a>
Pour chaque ligne du fichier <tt>/etc/hosts</tt>, affichez :
<ul><li> Le cinquième caractère;</li><li> Les caractères 5 à 10, et le treizième;</li><li> Tous les caractères à partir du quinzième.</li></ul></li>
</ol>
<h2>
<a name="yp" id="yp">Exercices sur les pages jaunes</a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#yp2"><img src="../../icones/solution.png" alt="Solution" /></a>Combien de
personnes de la promotion 1996 ont un login commençant par «l» ?</li>
<li><a href="solutions/enchainer-sol.html#yp3"><img src="../../icones/solution.png" alt="Solution" /></a>Est-ce que des
gens des promotions de la décennie 1980 ont encore un compte sur clipper ?</li>
<li><a href="solutions/enchainer-sol.html#yp4"><img src="../../icones/solution.png" alt="Solution" /></a>Combien y a-t-il
de comptes d'élèves, magistériens, etc (appartenant à une promotion) sur
clipper ?</li>
<li><a href="solutions/enchainer-sol.html#yp5"><img src="../../icones/solution.png" alt="Solution" /></a>Classer les
comptes de ces utilisateurs par numéro d'UID.</li>
<li><a href="solutions/enchainer-sol.html#yp6"><img src="../../icones/solution.png" alt="Solution" /></a>
Affichez le login des personnes ayant <tt>zsh</tt> comme shell de login.</li>
<li><a href="solutions/enchainer-sol.html#yp7"><img src="../../icones/solution.png" alt="Solution" /></a>
Affichez le nom et le prénom des personnes ayant un compte sur
<tt>clipper</tt>, et dont le nom de famille contient au moins 2 voyelles
côte à côte. Compter ces personnes.</li>
</ol>
<h2>
<a name="divers" id="divers">Divers</a>
</h2>
<ol>
<li><a href="solutions/enchainer-sol.html#divers1"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment conserver les informations concernant le disque dans un
fichier ?</li>
<li><a href="solutions/enchainer-sol.html#divers3"><img src="../../icones/solution.png" alt="Solution" /></a>
Comment connaître la dernière date de connexion au système d'un utilisateur
de login <tt>martin</tt> ?</li>
<li><a href="solutions/enchainer-sol.html#divers5"><img src="../../icones/solution.png" alt="Solution" /></a>
Affichez le type des fichiers <tt>/etc/passwd</tt>,
<tt>/usr/include/stdio.h</tt>, <tt>/bin/ls</tt> et de votre répertoire de
travail.</li>
</ol>
<div class="metainformation">
Auteur : Anonyme, Joël Riou. Dernière modification : 2013-10-20 par Antoine Amarilli.
</div>
</div>
</body>
</html>