Show node2.html syntax highlighted
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 99.2beta8 (1.42)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Début</TITLE>
<META NAME="description" CONTENT="Début">
<META NAME="keywords" CONTENT="talk_bash">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="LaTeX2HTML v99.2beta8">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="talk_bash.css">
<LINK REL="next" HREF="node3.html">
<LINK REL="previous" HREF="node1.html">
<LINK REL="up" HREF="talk_bash.html">
<LINK REL="next" HREF="node3.html">
</HEAD>
<BODY >
<A NAME="tex2html140"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="./icons/next.png"></A>
<A NAME="tex2html136"
HREF="talk_bash.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="./icons/up.png"></A>
<A NAME="tex2html130"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="./icons/prev.png"></A>
<A NAME="tex2html138"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="./icons/contents.png"></A> <BR>
<B> Next:</B> <A NAME="tex2html141"
HREF="node3.html">Comment fait-on ??</A>
<B>Up:</B> <A NAME="tex2html137"
HREF="talk_bash.html">La console - version</A>
<B> Previous:</B> <A NAME="tex2html131"
HREF="node1.html">Table des matières</A>
<BR> <HR> <P>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Sous-sections</STRONG></A>
<UL>
<LI><A NAME="tex2html142"
HREF="node2.html#SECTION00021000000000000000">La ligne de commande, l'invite</A>
<LI><A NAME="tex2html143"
HREF="node2.html#SECTION00022000000000000000">Sur la sécurité de votre ordinateur</A>
<UL>
<LI><A NAME="tex2html144"
HREF="node2.html#SECTION00022010000000000000">Comment tuer une commande ou un shell en entier</A>
</UL>
<LI><A NAME="tex2html145"
HREF="node2.html#SECTION00023000000000000000">La completion</A>
<LI><A NAME="tex2html146"
HREF="node2.html#SECTION00024000000000000000">Le bon usage des flèches</A>
<LI><A NAME="tex2html147"
HREF="node2.html#SECTION00025000000000000000">La redirection et le <I>pipe</I></A>
<LI><A NAME="tex2html148"
HREF="node2.html#SECTION00026000000000000000">Conventions d'écriture</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<H1><A NAME="SECTION00020000000000000000">
Début</A>
</H1>
<P>
Entre l'utilisateur et l'ordinateur -- le système d'exploitation, les applications et les utilitaires -- se trouve un intermédiaire.
Ce dernier est le shell, l'utilitaire le plus important selon certains, lisant et éxécutant les commandes, les requêtes, tapées au clavier.
<P>
Une connaissance minimale du terminal demeure indispensable: accès direct et toujours présent à l'interpréteur shell, aux
utilitaires et commandes disponibles. Par modem, par réseau, devant n'importe quelle
distribution de Linux, avec la famille Unix et cie: toutes ces situations ont
en commun la console, le shell et quelques commandes de base.
<P>
Je présente ici une très brève initiation au terminal (console), qui servira j'espère aux premières fois. Il sera question de quelques commandes de base, et de l'environnement du shell BASH.
Il en existe plusieurs, mais le BASH (Bourne Again SHell) est offert par défaut sur la plupart des Linux.
<P>
<H2><A NAME="SECTION00021000000000000000"></A>
<A NAME="sub:invite"></A>
<BR>
La ligne de commande, l'invite
</H2>
Le terminal est l'environnement texte dans lequel l'utilisateur fait ses requêtes, demande l'éxécution de programmes. Le shell interprète
la ligne de commande tapée à la suite de l'invite (prompt).
<P>
L'invite (prompt),
<BR><code>utilisateur@ordinateur ~/rep></code>
<BR>
se décode ainsi:
<DL>
<DT><STRONG>utilisateur</STRONG></DT>
<DD>y figure le login de l'utilisateur.
</DD>
<DT><STRONG>ordinateur</STRONG></DT>
<DD>c'est le nom de l'hôte, la machine fournissant les éxécutables, utilitaires, etc.
</DD>
<DT><STRONG>~/rep</STRONG></DT>
<DD>le répertoire de travail actuel (NB: ~ est un symbole signifiant "répertoire racine de l'utilisateur (home)".
</DD>
<DT><STRONG>></STRONG></DT>
<DD>l'invite elle même, suivront les requêtes.
</DD>
</DL>
<P>
Tant mieux si c'était très évidant. Mais moi, à mes très débuts (j'y suis encore et j'en profite pour faire mes excuses pour les inexactitudes et omissions), même ce genre de banalités m'intéressaient.
<P>
<H2><A NAME="SECTION00022000000000000000"></A>
<A NAME="sub:securite"></A>
<BR>
Sur la sécurité de votre ordinateur
</H2>
<P>
Le shell n'est pas votre ordinateur. Étrange. Et un usager n'est pas
administrateur de son ordinateur. Hum !
<P>
Côté protection, c'est un grand avantage. Le coeur de votre ordinateur est
protégé de vous par une coquille -- le shell -- . Ce dernier n'est qu'un accès.
Il peut subir les pires fléaux de l'usager sans que le coeur en soit
atteint. La coquille peut se figer ou faire "kaput", et l'ordinateur
fonctionne toujours.
<P>
En tant qu'usager, vous ne pourrez détruire les
fonctions vitales de l'ordinateur. C'est un superusager qui le peut, car c'est
lui et uniquement lui qui a tous les droits. À la maison, l'un et l'autre occupent le même corps de chair, le propriétaire.
Mais pour l'ordinateur, ces entités sont distinctes. Donc pour ses essais et son
travail quotidien, c'est la peau de l'usager que l'on revêt.
<P>
Pourquoi le mentionner dès maintenant: pour enlever la peur d'essayer
N'IMPORTE QUOI sur la console.
<P>
J'invite à la prudence car les données de l'usager peuvent tout de même être effacées.
<P>
<H4><A NAME="SECTION00022010000000000000">
Comment tuer une commande ou un shell en entier</A>
</H4>
<P>
Sauf si l'administrateur est sadique, ces commandes sont universelles aux
Linux (à mon expérience).
<P>
<DL>
<DT><STRONG>exit</STRONG></DT>
<DD>Quand on veut quitter la console, on écrit <code>exit</code> à l'invite.
</DD>
<DT><STRONG>CTRL-C</STRONG></DT>
<DD>Cela peut être taper n'importe quand: termine une commande en cours. Utile pour une boucle
infini, par exemple.
</DD>
</DL>
<P>
<H2><A NAME="SECTION00023000000000000000"></A>
<A NAME="sub:completion"></A>
<BR>
La completion
</H2>
<P>
Une joie incommensurable du BASH. En appuyant sur TAB (très très généralement), le shell complète, s'il peut, le nom demandé (commande, fichier, répertoire). S'il y a plusieurs possibilités, il les énumère.
<PRE>
utilisateur@ordi ~/rep> ls
allo.tex bidon bleuet patate.txt obj.o
utilisateur@ordi ~/rep> less b
</PRE>
(NB: la commande <A HREF="node4.html#sub:ls">ls</A> donne le contenu du répertoire: donc <code>rep</code> contient cinq fichiers; <A HREF="node4.html#sub:less">less</A> permet de lire un fichier texte.) À ce moment, si on appuie sur TAB(ulation), "bidon" et "bleuet" sont possibles
<A NAME="tex2html1"
HREF="#foot396"><SUP>1</SUP></A>. Si on tape "l" puis TAB, les lettres "euet" viendront compléter le nom du fichier "bleuet".
<P>
La complétion fonctionne aussi pour les commandes, toutes celles qui sont accessibles
et reconnues par le shell
.
<P>
<H2><A NAME="SECTION00024000000000000000"></A>
<A NAME="sub:fleches"></A>
<BR>
Le bon usage des flèches
</H2>
<P>
Le shell se souvient des commandes tapées
. Avec les flèches UP et DOWN, on déambule dans l'historique des commandes.
<P>
Ces mêmes flèches, cette fois en appuyant sur MAJ(uscule) en même temps, permettent aussi de monter et descendre dans le long défilement de requêtes et réponses laissé dans la console.
<P>
<H2><A NAME="SECTION00025000000000000000"></A>
<A NAME="sub:redirection"></A>
<BR>
La redirection et le <I>pipe</I>
</H2>
<P>
Le résultat des requêtes, par exemple énumérer le contenu d'un répertoire,
apparaît à la suite de la commande, dans le terminal. C'est la sortie
standard.
<P>
Il est possible de diriger ces informations dans un fichier. Cette
"redirection" -- <code>></code> -- s'obtient ainsi:
<PRE>
utilisateur@ordi ~/rep> COMMANDE > FICHIER_CIBLE
</PRE>
<P>
<BR>
<BR>
<P>
Le <I>pipe</I> (pipeline en français) -- <code>|</code> -- dirige quant à lui le résultat d'une
commande non pas à un fichier, mais à une seconde commande. Pour comprendre,
rien comme un exemple. Je veux savoir le nombre de fichiers dans un répertoire
en contenant trop pour être comptés. Il faut énumérer (<A HREF="node4.html#sub:ls">ls</A>) le contenu du répertoire
et compter (wc -w, pour <I>word count</I> et l'option "-w" pour compter les
mots):
<PRE>
utilisateur@ordi ~/rep> ls
allo.tex bidon bleuet patate.txt obj.o
utilisateur@ordi ~/rep> ls | wc -c
5
utilisateur@ordi ~/rep>
</PRE>
Il y a effectivement 5 fichiers dans le répertoire.
<P>
<BR>
<BR>
<P>
J'en donne un autre exemple d'ulilisation lors de l'énumération du contenu d'un répertoire <A HREF="node3.html#sub:q4">ici</A>.
<P>
<H2><A NAME="SECTION00026000000000000000"></A>
<A NAME="sub:conventions"></A>
<BR>
Conventions d'écriture
</H2>
<P>
Je suis le plus possible des conventions utilisées dans la documentation Linux. Ainsi, par exemple, lors de l'énoncé de la façon dont on doit se servir des commandes (l'usage), les arguments optionnels figurent entre crochets "[" et "]".
<P>
Les exemples sont pris tels quels de mon ordi, dans la forme qu'ils prendraient si vous-mêmes les auriez fait.
<BR><HR><H4>Notes</H4>
<DL>
<DT><A NAME="foot396">... possibles </A><A NAME="foot396"
HREF="node2.html#tex2html1"><SUP>1</SUP></A>
<DD>Plus avancé: on peut ajuster le shell pour qu'il énumère toutes les possibilités en cas d'ambiguité du premier coup ou qu'il faille appuyer de nouveau pour qu'il le fasse. La variable de Bash "show-all-if-ambiguous" règle cela. Voir le <A HREF="node9.html#sub:bashrc">~/.bashrc</A> à ce sujet.
</DL><HR>
<A NAME="tex2html140"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="./icons/next.png"></A>
<A NAME="tex2html136"
HREF="talk_bash.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="./icons/up.png"></A>
<A NAME="tex2html130"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="./icons/prev.png"></A>
<A NAME="tex2html138"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="./icons/contents.png"></A> <BR>
<B> Next:</B> <A NAME="tex2html141"
HREF="node3.html">Comment fait-on ??</A>
<B>Up:</B> <A NAME="tex2html137"
HREF="talk_bash.html">La console - version</A>
<B> Previous:</B> <A NAME="tex2html131"
HREF="node1.html">Table des matières</A>
<!--End of Navigation Panel-->
<ADDRESS>
<I>Xavier Barnabe-Theriault <BR>
2001-09-20</I>
</ADDRESS>
</BODY>
</HTML>
See more files for this project here