Ajout de quelques corrigés d'exercices
This commit is contained in:
parent
67e9b0cd55
commit
e0d48b0917
4 changed files with 534 additions and 22 deletions
|
@ -24,7 +24,7 @@ docs/hublot/hublot04/hublot4.ps.gz
|
|||
docs/hublot/hublot03/hublot3.ps.gz
|
||||
docs/hublot/hublot02/hublot2.ps.gz
|
||||
docs/hublot/hublot01/hublot1.ps.gz
|
||||
#À écrire, sinon il y a vraiment beaucoup de liens cassés...
|
||||
#Les pages suivantes sont à écrire...
|
||||
actualite.html
|
||||
meta/plan_site.html
|
||||
meta/charte_graphique.html
|
||||
|
|
|
@ -930,7 +930,7 @@ lignes voulues. Finalement, on
|
|||
Sa syntaxe est la</p> <pre>s/<em>regexp</em>/<em>remplacement</em>/</pre> <p
|
||||
class="continue">où <em>regexp</em> est une <a
|
||||
href="&url.tuteurs;unix/exercices/grep.html">expression régulière</a> et
|
||||
<em>remplacement</em> un chaîne devant la remplacer.</p>
|
||||
<em>remplacement</em> une chaîne devant la remplacer.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
|
|
527
unix/exercices/solutions/systeme-sol.tml
Normal file
527
unix/exercices/solutions/systeme-sol.tml
Normal file
|
@ -0,0 +1,527 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Système</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Solutions des exercices sur le système</h1>
|
||||
|
||||
|
||||
|
||||
<h2><a name="droits">Les droits </a> </h2>
|
||||
|
||||
|
||||
<ol>
|
||||
|
||||
<li><strong> <a name="droits1">
|
||||
|
||||
Changez les droits d'un fichier <tt>fic1</tt> pour que tous ceux de votre
|
||||
groupe puissent écrire dedans.</a></strong>
|
||||
<pre>
|
||||
chmod g+w fic1
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="droits2">
|
||||
|
||||
Donnez en une seule ligne le droit d'exécution à tous les utilisateurs d'un
|
||||
fichier <tt>script</tt> qui n'a jusqu'alors que des droits standards
|
||||
(<tt>-rw-r--r--</tt>).</a></strong>
|
||||
|
||||
<pre>
|
||||
chmod uog+x script
|
||||
</pre></li>
|
||||
|
||||
<li><strong> <a name="droits3">
|
||||
|
||||
Le fichier <tt>toto</tt> a les droits suivants : <tt>-rwxr--r--</tt>.
|
||||
Modifiez-en les droits en une ligne de commande de sorte que le
|
||||
propriétaire n'ait plus que le droit de lecture.</a></strong>
|
||||
<pre>
|
||||
chmod u-wx toto
|
||||
</pre></li>
|
||||
|
||||
|
||||
<li><strong> <a name="droits4">
|
||||
|
||||
Modifier les droits du fichier <tt>toto</tt> (<tt>-rwxr--r--</tt>) de sorte
|
||||
que le groupe et les autres utilisateurs aient les mêmes droits que le
|
||||
propriétaire.</a></strong>
|
||||
<pre>
|
||||
chmod og+wx toto
|
||||
</pre></li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="droits5">
|
||||
|
||||
Quelle option permet de modifier récursivement les droits d'un répertoire
|
||||
et des fichiers qu'il contient ?</a></strong>
|
||||
|
||||
<p>
|
||||
C'est l'option <code>-R</code>. Par exemple, pour interdire tous les
|
||||
droits aux fichiers présents dans une branche du répertoire
|
||||
<code>confidentiel</code>, on peut faire :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
chmod -R og-rwx confidentiel
|
||||
</pre></li>
|
||||
|
||||
|
||||
<li><strong> <a name="droits6">
|
||||
|
||||
Quelle option de <tt>mkdir</tt> permet de créer un répertoire en spécifiant
|
||||
les droits sur ce répertoire ?</a></strong>
|
||||
|
||||
<p>
|
||||
C'est l'option <code>-m</code> qui permet de le faire. Par exemple, pour
|
||||
créer un répertoire en lecture interdite aux autres :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
mkdir -m og-r repertoire
|
||||
</pre></li>
|
||||
|
||||
|
||||
<li><strong> <a name="droits7">
|
||||
|
||||
Affichez et interprétez les droits de <tt>/usr/sbin/mount</tt>.
|
||||
</a></strong>
|
||||
|
||||
<pre>
|
||||
<span class="prompt">bireme ~ $</span> ll /usr/sbin/mount
|
||||
-r-xr-xr-x 1 root bin 27208 Jan 9 2000 /usr/sbin/mount*
|
||||
</pre>
|
||||
Il s'agit d'un fichier éxécutable par tout utilisateur.</li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a name="liens"> Les liens</a> </h2>
|
||||
<!-- ################################# !-->
|
||||
|
||||
<ol>
|
||||
|
||||
<li><strong> <a name="liens1">
|
||||
|
||||
Vous avez chez vous un répertoire <tt>tmp/</tt> qui contient un fichier
|
||||
<tt>bidon</tt>. Créez un lien physique sur <tt>tmp/bidon</tt> appelé
|
||||
<tt>blo</tt>, dans votre répertoire d'accueil (<tt>HOME</tt>). Comparez
|
||||
les contenus de <tt>tmp/bidon</tt> et de <tt>blo</tt>. Que contient
|
||||
<tt>blo</tt> ?</a></strong>
|
||||
|
||||
<pre>
|
||||
ln tmp/bidon blo
|
||||
</pre>
|
||||
|
||||
Les contenus sont identiques. Les noms de fichiers <code>tmp/bidon</code>
|
||||
et <code>blo</code> renvoient au même endroit sur le disque dur.
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="liens2">
|
||||
|
||||
Même question avec un lien symbolique.</a></strong>
|
||||
|
||||
<pre>
|
||||
ln -s tmp/bidon blo
|
||||
</pre>
|
||||
|
||||
Le contenu <em>semble</em> être identique, cependant, à propos du
|
||||
<code>blo</code>, le disque dur ne contient comme information que le nom
|
||||
du fichier vers lequel le lien pointe (<code>tmp/bidon</code>).
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="liens3">
|
||||
|
||||
Quelles sont les différences entre les liens durs et les liens
|
||||
symboliques ?</a></strong>
|
||||
|
||||
<p> On vient d'en voir une. On en déduit que le temps d'accès au contenu
|
||||
d'un lien dur est plus rapide que pour un lien symbolique. Une autre
|
||||
différence notable est que, contrairement aux liens symboliques, un lien
|
||||
dur ne peut pas pointer vers un répertoire. </p>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="liens4">
|
||||
|
||||
Dans quel cas ne peut-on pas faire de lien physique ? Que faut-il
|
||||
faire ?</a></strong>
|
||||
|
||||
<p>On ne peut pas faire de lien dur vers un répertoire. Dans ce cas, il faut
|
||||
donc utiliser un lien symbolique.</p>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="liens5">
|
||||
|
||||
Quel est l'effet de <tt>chmod</tt> sur un lien ?</a></strong>
|
||||
|
||||
<p>
|
||||
S'il s'agit d'un lien dur, les droits des <em>deux</em> fichiers liés
|
||||
sont modifiés. En revanche, s'il s'agit d'un lien symbolique, les deux
|
||||
fichiers peuvent avoir des droits différents.
|
||||
</p>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a name="processus"> Les processus </a></h2>
|
||||
|
||||
<ol>
|
||||
|
||||
<li><strong> <a name="processus1">
|
||||
|
||||
Affichez la liste des processus associés à votre terminal. Affichez la
|
||||
liste des processus dont vous êtes propriétaire. Recommencez en utilisant
|
||||
l'option <tt>-l</tt>. À quoi correspondent les colonnes
|
||||
<tt>PID</tt> et <tt>PPID</tt> ?</a></strong>
|
||||
|
||||
<pre>
|
||||
<span class="prompt">bireme ~ $</span> ps
|
||||
PID TT S TIME COMMAND
|
||||
16970 pts/2 S 0:00 /usr/local/util/bin/zsh4
|
||||
16992 pts/2 S 0:07 vim systeme-sol.tml
|
||||
17382 pts/3 R 0:00 /usr/local/util/bin/zsh4
|
||||
<span class="prompt">bireme ~ $</span> ps -l
|
||||
F UID PID PPID %C PRI NI SZ RSS WCHAN S TT TIME COMMAND
|
||||
8 9625 16970 16967 0 48 20 4032 3152 mutex_ex S pts/2 0:00 /usr/local/u
|
||||
8 9625 16992 16970 1 58 20 4312 3760 mutex_ex S pts/2 0:07 vim systeme-
|
||||
8 9625 17382 17379 0 48 20 3912 2840 mutex_ex S pts/3 0:00 /usr/local/u
|
||||
</pre>
|
||||
<p>Les numéros apparaissant dans la colonne <tt>PID</tt> sont les numéros
|
||||
des différents processus. Le <tt>PPID</tt> désigne lui le numéro du
|
||||
processus père du processus en question. Par exemple, ici, le processus
|
||||
16992 (<tt>vim</tt>) est un fils du processus 16970 (<tt>zsh</tt>).
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li><strong> <a name="processus2">
|
||||
|
||||
Lancez une commande longue en arrière plan. Quel est le comportement du
|
||||
processus associé lorsqu'il reçoit les signaux suivants :</a></strong>
|
||||
|
||||
<p>
|
||||
Pour envoyer un signal à un processus, on peut faire :
|
||||
</p>
|
||||
<pre>
|
||||
<span class="prompt">bireme ~ $</span> kill -23 17382
|
||||
</pre>
|
||||
<p class="continue">
|
||||
17382 désignant un numéro de processus (PID) et 23 le numéro d'un signal
|
||||
(SIGSTOP).
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <tt>sigkill</tt> (9)
|
||||
<p>Le processus est tué sans pouvoir de défendre.</p></li>
|
||||
|
||||
<li> <tt>sigstop</tt> (23)
|
||||
<p>
|
||||
Le processus s'interrompt.
|
||||
</p></li>
|
||||
|
||||
|
||||
<li> <tt>sigcont</tt> (25)
|
||||
<p>
|
||||
Le processus interrompu redémarre.
|
||||
</p></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
<li><strong> <a name="processus3">
|
||||
|
||||
Utilisez la commande <tt>nice</tt> pour lancer des commandes ayant une
|
||||
faible priorité.</a></strong>
|
||||
|
||||
<pre>
|
||||
<span class="prompt">bireme ~ $</span> nice -19 ./calcul
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="processus4">
|
||||
|
||||
Interprétez la hiérarchie des processus qui vous appartiennent.
|
||||
</a></strong>
|
||||
|
||||
<p> Pour vous aider à comprendre, vous pouvez afficher un arbre en
|
||||
lançant la commande <tt>pstree</tt> (FreeBSD) ou <tt>ptree</tt>
|
||||
(Solaris). </p>
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="processus5">
|
||||
|
||||
La commande <tt>ps | wc</tt> compte deux processus en plus de ceux qui
|
||||
existent réellement lorsqu'on lance la commande. Pourquoi ?</a></strong>
|
||||
|
||||
<p>
|
||||
Ce sont les processus associés aux commandes <tt>ps</tt> et <tt>wc</tt>
|
||||
que vous venez de lancer !
|
||||
</p>
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="processus6">
|
||||
|
||||
Donner deux commandes pour reprendre l'exécution d'une instruction
|
||||
interrompue par un <tt>^Z</tt>.</a></strong>
|
||||
|
||||
<p>
|
||||
Vous disposez des commandes <tt>fg</tt> et <tt>bg</tt>. <tt>fg</tt>
|
||||
permet de poursuivre le déroulement du programme. <tt>bg</tt> le fait
|
||||
aussi mais il relance le programme <em>en tâche de fond</em>.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a name="shell">Programmation du shell</a></h2>
|
||||
|
||||
|
||||
|
||||
|
||||
<ol>
|
||||
<li><strong> <a name="shell2">
|
||||
|
||||
Faites deux scripts qui vous disent bonjour en affichant votre login
|
||||
(«Bonjour, toto») :</a></strong>
|
||||
|
||||
<ul>
|
||||
<li> Quand vous tapez <tt>saluer [votre-login]</tt></li>
|
||||
<li> Quand vous tapez juste <tt>saluer</tt></li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Il faut éditer un fichier <tt>saluer</tt> et le rendre ensuite
|
||||
éxécutable :</p>
|
||||
<pre>
|
||||
#!/bin/sh
|
||||
if [ -n "$1" ]; then LOGIN=$1; else LOGIN=`whoami`; fi
|
||||
echo "Bonjour, $LOGIN"
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell4">
|
||||
|
||||
Faire un script qui affiche la phrase : <tt>Le script [params] a [n]
|
||||
paramètre(s), que voici : [paramètres]</tt>, en remplaçant les mots entre
|
||||
crochets par leur valeur; par exemple :</a></strong>
|
||||
|
||||
|
||||
<pre>
|
||||
<span class="prompt">chaland ~ $</span>params bla ble bli blo blu
|
||||
La commande params a 5 paramètre(s), que voici : bla ble bli blo blu
|
||||
</pre></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell5">
|
||||
|
||||
Créez une commande qui, lorsqu'elle est appelée, renvoie le nombre
|
||||
d'arguments qui lui ont été fournis, ainsi que le premier de ces
|
||||
arguments.</a></strong></li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell6">
|
||||
|
||||
Vous voulez écrire un script qui vous dit combien de personnes sont loguées
|
||||
sur une machine donnée; par exemple : </a></strong>
|
||||
|
||||
<pre>
|
||||
<span class="prompt">drakkar ~ $</span> combien galion
|
||||
Il y a 5 personne(s) loguées sur galion en ce moment.
|
||||
<span class="prompt">drakkar ~ $</span>
|
||||
</pre></li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell7">
|
||||
On veut remplacer
|
||||
le suffixe <tt>.htm</tt> d'un ensemble de fichiers en
|
||||
<tt>.html</tt>.</a></strong></li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell8">
|
||||
Un ensemble de
|
||||
noms de fichiers sont en majuscules. On veut tout basculer en minuscules.</a></strong></li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell9">
|
||||
|
||||
Créez un script <tt>indice</tt> qui affiche l'indice de son premier
|
||||
argument dans la liste des arguments suivants. Par exemple, </a></strong>
|
||||
<pre>
|
||||
indice toto tata titi toto tutu
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
renvoie l'indice de <tt>toto</tt> dans la liste <tt>tata titi toto
|
||||
tutu</tt>, c'est-à-dire 3.</p></li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell10">
|
||||
|
||||
On ne s'intéresse ici qu'à des fichiers contenant un mot par ligne. Écrire
|
||||
un script qui compte le nombre de mots contenant une des lettres «r», «s»
|
||||
ou «t», et parmi eux, ceux qui ont au moins deux telles lettres. On
|
||||
donnera aussi le nombre de mots ne contenant aucune voyelle. Cela donnera
|
||||
par exemple :</a></strong>
|
||||
|
||||
<pre>
|
||||
Dans ce fichier, vous avez :
|
||||
45 mots contenant «r», «s» ou «t», et parmi eux,
|
||||
12 contiennent deux de ces lettres au moins.
|
||||
Il y a aussi 10 mots ne contenant aucune voyelle.
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell11">
|
||||
|
||||
On veut chercher toutes les occurences des quatre éléments (terre, air, eau,
|
||||
feu) dans la première partie de <em>Germinal</em>. </a></strong>
|
||||
|
||||
<p>
|
||||
On veut aussi que le résultat soit placé dans un fichier, et que le résultat
|
||||
soit classé : toutes les lignes qui contiennent «air», puis toutes celles qui
|
||||
contiennent «eau», etc. </p></li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell12">
|
||||
|
||||
Chercher le mot «mine» dans les chapitres 3, 4 et 5 de la première partie de
|
||||
<em>Germinal</em>, et obtenir un fichier dans lequel figure le nombre
|
||||
d'occurences du mot dans les fichiers, avec le numéro des lignes.</a></strong></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell13">
|
||||
|
||||
Créez un script <tt>coupe</tt> qui prend trois arguments, le premier étant
|
||||
un nom de fichier et les deux autres des entiers <em>l</em> et <em>l'</em>,
|
||||
et qui affiche les lignes comprises entre <em>l</em> et <em>l'</em> dans le
|
||||
fichier. Par exemple, </a></strong>
|
||||
<pre>
|
||||
coupe fic 4 8
|
||||
</pre>
|
||||
<p class="continue">
|
||||
affichera les lignes 4 à 8 du fichier <tt>fic</tt>. Affichez des messages
|
||||
en cas d'erreur (nombre de paramètres incorrect, fichier inexistant, etc).
|
||||
</p></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell14">
|
||||
|
||||
Pour transformer une arborescence en un seul fichier compressé, on utilise
|
||||
l'instruction</a></strong> <pre>tar zcvf nouveaunom fichiersaregrouper</pre>
|
||||
|
||||
|
||||
<p>
|
||||
Avant d'envoyer des fichiers <tt>tar</tt>, on utilise <tt>uuencode</tt>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Écrivez une commande <tt>tarmail</tt> qui prend deux arguments, une
|
||||
adresse et un nom de répertoire, et qui envoie par mail le contenu de
|
||||
l'arborescence du répertoire précédée d'un message expliquant comment la
|
||||
récupérer.</p>
|
||||
|
||||
|
||||
<p>
|
||||
Note : pour récupérer un fichier uuencodé, on tape <tt>uudecode</tt> et
|
||||
pour reconstruire l'arborescence, on utilise <tt>tar zxvf fichier</tt>.
|
||||
</p></li>
|
||||
|
||||
|
||||
<li><strong> <a name="shell15">
|
||||
|
||||
La commande suivante affiche le path complet de tous les fichiers finissant
|
||||
par <tt>~</tt> (tilde) dans la sous-arborescence du répertoire
|
||||
courant.</a></strong>
|
||||
|
||||
<pre>
|
||||
find . -name \( '*~' -0 'core' \) -print
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Écrivez un script qui prend en argument un nom de répertoire et qui
|
||||
détruit tous les fichiers :</p>
|
||||
|
||||
<ol>
|
||||
|
||||
<li>Finissant par <tt>~</tt>;</li>
|
||||
|
||||
<li>Commençant et finissant par un dièse;</li>
|
||||
|
||||
<li>S'appelant <tt>core</tt>;</li>
|
||||
|
||||
<li>S'appelant <tt>a.out</tt>.</li> </ol></li>
|
||||
|
||||
|
||||
|
||||
<li><strong> <a name="shell16">
|
||||
|
||||
Écrire un sript permettant d'appliquer divers filtres sur un fichier. Ce
|
||||
script est lancé avec un argument, qui doit être un nom de fichier appelé
|
||||
fichier de travail; dans le cas contraire, on afficher un message d'erreur.
|
||||
On attend ensuite une commande en mode interactif, qui peut
|
||||
être :</a></strong>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <tt>end</tt> : le programme s'arrête;</li>
|
||||
|
||||
<li> <tt>cherche</tt> : le programme lit alors une ligne au clavier
|
||||
contenant un motif et une autre contenant un nom de fichier, puis écrit
|
||||
dans ce fichier les lignes du fichier de travail contenant le motif;</li>
|
||||
|
||||
<li><tt>tete</tt> ou<tt>fin</tt> : le programme lit une ligne au clavier
|
||||
contenant un entier <em>n</em> puis une ligne contenant un nom de fichier.
|
||||
Il écrit ensuite les <em>n</em> premières (resp. dernières) lignes du
|
||||
fichier de travail dans le fichier précisé;</li>
|
||||
|
||||
<li> autre chose : message d'erreur.</li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<div class="metainformation">
|
||||
Auteur : Joël Riou. Dernière modification le 2002-12-08.
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -64,7 +64,7 @@ les droits sur ce r
|
|||
|
||||
<li> <a href="solutions/systeme-sol.html#droits7">&icone.solution;
|
||||
</a>
|
||||
Affichez et interprétez les droits de <tt>/bin/mount</tt>. </li>
|
||||
Affichez et interprétez les droits de <tt>/usr/sbin/mount</tt>. </li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
@ -147,9 +147,7 @@ faible priorit
|
|||
|
||||
<li> <a href="solutions/systeme-sol.html#processus4">&icone.solution;
|
||||
</a>
|
||||
Interprétez la hiérarchie des processus qui vous appartiennent. Quelle est
|
||||
la hiérarchie des processus communiquant par un tube ? Utilisez par
|
||||
exemple <tt>ls -R / | grep 'a' | cut -c1-3</tt>.</li>
|
||||
Interprétez la hiérarchie des processus qui vous appartiennent. </li>
|
||||
|
||||
|
||||
<li> <a href="solutions/systeme-sol.html#processus5">&icone.solution;
|
||||
|
@ -164,12 +162,6 @@ Donner deux commandes pour reprendre l'ex
|
|||
interrompue par un <tt>^Z</tt>.</li>
|
||||
|
||||
|
||||
<li> <a href="solutions/systeme-sol.html#processus7">&icone.solution;
|
||||
</a>
|
||||
À quoi correspondent les colonnes <tt>PID</tt> et <tt>PPID</tt> qui
|
||||
apparaissent après l'exécution de la commande <tt>ps</tt> ?</li>
|
||||
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
|
@ -191,23 +183,16 @@ Faites deux scripts qui vous disent bonjour en affichant votre login
|
|||
</ul></li>
|
||||
|
||||
|
||||
<li> <a href="solutions/systeme-sol.html#shell3">&icone.solution;
|
||||
</a>
|
||||
Faites un script qui vous dit «Bonjour, [toto]», que vous indiquiez ou
|
||||
non votre login.</li>
|
||||
|
||||
|
||||
|
||||
<li> <a href="solutions/systeme-sol.html#shell4">&icone.solution;
|
||||
</a>
|
||||
Faire un script qui affiche la phrase : <tt>Le script [script] a [n]
|
||||
Faire un script qui affiche la phrase : <tt>Le script [params] a [n]
|
||||
paramètre(s), que voici : [paramètres]</tt>, en remplaçant les mots entre
|
||||
crochets par leur valeur; par exemple :
|
||||
|
||||
|
||||
<pre>
|
||||
<span class="prompt">chaland ~ $</span>script bla ble bli blo blu
|
||||
La commande script a 5 paramètre(s), que voici : bla ble bli blo blu
|
||||
<span class="prompt">chaland ~ $</span>params bla ble bli blo blu
|
||||
La commande params a 5 paramètre(s), que voici : bla ble bli blo blu
|
||||
</pre></li>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue