<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Bienvenue sur le site admin-sys</title>
	<link>http://www.admin-sys.org/</link>
	<description>Bienvenu sur le site admin-sys.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Bienvenue sur le site admin-sys</title>
		<url>https://admin-sys.org/local/cache-vignettes/L144xH55/siteon0-02f93.png?1694605449</url>
		<link>http://www.admin-sys.org/</link>
		<height>55</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>Intro R&#233;seaux </title>
		<link>https://admin-sys.org/?intro-reseaux</link>
		<guid isPermaLink="true">https://admin-sys.org/?intro-reseaux</guid>
		<dc:date>2008-09-16T09:41:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;XV. INTRODUCTION AUX RESEAUX TCP/IP &lt;br class='autobr' /&gt;
A. TERMINOLOGIE DE BASE &lt;br class='autobr' /&gt;
Le terme TCP/IP fait r&#233;f&#233;rence a une s&#233;rie compl&#232;te de protocoles de &lt;br class='autobr' /&gt;
transmission de donn&#233;es. &lt;br class='autobr' /&gt;
Le nom provient de deux des protocoles les plus importants : &lt;br class='autobr' /&gt;
&#8211; TCP ( Transmission Control Protocol ) &lt;br class='autobr' /&gt;
&#8211; IP ( Internet Protocol ) &lt;br class='autobr' /&gt;
Ils sont utilis&#233;s dans le contexte du plus grand r&#233;seau public mondial Internet. &lt;br class='autobr' /&gt;
Ils se sont d&#233;velopp&#233;s historiquement sur des plateformes Unix et sont &lt;br class='autobr' /&gt;
impl&#233;ment&#233;s aujourd'hui sur la (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h1&gt;XV. &lt;u&gt;INTRODUCTION AUX RESEAUX TCP/IP&lt;/u&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. TERMINOLOGIE DE BASE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le terme TCP/IP fait r&#233;f&#233;rence a une s&#233;rie compl&#232;te de protocoles de&lt;br class=&#034;autobr&#034; /&gt;
transmission de donn&#233;es.&lt;/p&gt;
&lt;p&gt;Le nom provient de deux des protocoles les plus importants :&lt;/p&gt;
&lt;p&gt;- &lt;b&gt;TCP&lt;/b&gt; ( Transmission Control Protocol )&lt;/p&gt;
&lt;p&gt;- &lt;b&gt;IP&lt;/b&gt; ( Internet Protocol )&lt;/p&gt;
&lt;p&gt;Ils sont utilis&#233;s dans le contexte du plus grand r&#233;seau public mondial &lt;b&gt;Internet&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Ils se sont d&#233;velopp&#233;s historiquement sur des plateformes Unix et sont&lt;br class=&#034;autobr&#034; /&gt;
impl&#233;ment&#233;s aujourd'hui sur la quasi-totalit&#233; des systa&#238;mes d'exploitation.&lt;br /&gt;
&lt;b&gt;TCP/IP constitue donc un standard de fait pour interconnecter des&lt;br class=&#034;autobr&#034; /&gt;
plates-formes h&#233;t&#233;roga&#238;nes&lt;/b&gt;&lt;br /&gt;
( Unix, Windows 3.1x, Windows 95, Windows NT, NetWare, Syst&#232;mes propri&#233;taires,&lt;br class=&#034;autobr&#034; /&gt;
etc... ).&lt;/p&gt;
&lt;p&gt;Une des caract&#233;ristiques importantes de TCP/IP est son &lt;b&gt;ind&#233;pendance par&lt;br class=&#034;autobr&#034; /&gt;
rapport aux solutions physiques de r&#233;seau&lt;/b&gt;. Des applications TCP/IP&lt;br class=&#034;autobr&#034; /&gt;
fonctionnent donc indiff&#233;remment sur les solutions classiques de r&#233;seau local&lt;br class=&#034;autobr&#034; /&gt;
ou distant ( Ethernet, Token Ring, FDDI, X25, etc ... ).&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Adresses IP&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Toute interface physique connect&#233;e au r&#233;seau ( baptis&#233;e &lt;b&gt;&#034;host&#034;&lt;/b&gt;&lt;br class=&#034;autobr&#034; /&gt;
) se voit attribuer une adresse logique dite &lt;b&gt;&#034;Adresse IP&#034;,&lt;/b&gt; du&lt;br class=&#034;autobr&#034; /&gt;
nom du protocole fondamental responsable de l'acheminement et du routage de ce&lt;br class=&#034;autobr&#034; /&gt;
que l'on appelle des &lt;b&gt;datagrammes&lt;/b&gt; ( paquets de donn&#233;es ).&lt;/p&gt;
&lt;p&gt;Ces adresses logiques sont cod&#233;es sur &lt;b&gt;32 bits&lt;/b&gt; ( version actuelle : IP&lt;br class=&#034;autobr&#034; /&gt;
version 4 ). Une nouvelle version du protocole ( Ipv6 ou IPnG ( next generation)&lt;br class=&#034;autobr&#034; /&gt;
) codera ces adresses sur 128 bits pour prendre en charge les &#233;volutions&lt;br class=&#034;autobr&#034; /&gt;
techniques rapides du r&#233;seau Internet.&lt;/p&gt;
&lt;p&gt;Les adresses sont exprim&#233;es sous la forme de quatre valeurs d&#233;cimales : &lt;b&gt;n1.n2.n3.n4&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;oa&#185; chaque nombre repr&#233;sente la valeur d'un octet [ 0 , 255 ] .&lt;/p&gt;
&lt;p&gt;L'adresse IP contient une partie &#034;Adresse r&#233;seau&#034; et une partie&lt;br class=&#034;autobr&#034; /&gt;
&#034;Adresse host&#034;.&lt;/p&gt;
&lt;p&gt;Historiquement, plusieurs &lt;b&gt;classes d'adresses&lt;/b&gt; ont &#233;t&#233; d&#233;finies pour&lt;br class=&#034;autobr&#034; /&gt;
d&#233;limiter la fronti&#232;re entre la partie r&#233;seau et la partie &#034;host&#034;&lt;br class=&#034;autobr&#034; /&gt;
de cette adresse.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;A notre niveau de discours, nous ne d&#233;taillerons pas cet aspect.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Exemples d'adresses IP&lt;/p&gt;
&lt;p&gt;105.1.2.10 ( classe A , r&#233;seau 105 , host 1.2.10 )&lt;/p&gt;
&lt;p&gt;128.1.1.1 ( classe B , r&#233;seau 128.1 , host 1.1 )&lt;/p&gt;
&lt;p&gt;193.9.200.10 ( classe C , r&#233;seau 193.9.200 , host 10 )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Applications et services disponibles&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le terme &#034;Application&#034; est assez large dans le mod&#232;le fonctionnel&lt;br class=&#034;autobr&#034; /&gt;
TCP/IP.&lt;/p&gt;
&lt;p&gt;Il regroupe a la fois des applications classiques ( commandes pour&lt;br class=&#034;autobr&#034; /&gt;
l'utilisateur ) et des services qui doivent &#234;tre configur&#233;s au niveau de&lt;br class=&#034;autobr&#034; /&gt;
l'administrateur syst&#232;me.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On peut citer quelques applications ou services parmi les plus utilis&#233;s :&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;Applications standards&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;- &lt;i&gt;telnet&lt;/i&gt; ( connexion distante ) &lt;p&gt;- &lt;i&gt;ftp&lt;/i&gt; ( transfert de fichiers )&lt;br /&gt; - &lt;i&gt;&#034;Remote commands&#034;&lt;/i&gt; ( rlogin ( remote login) , rsh (&lt;br class=&#034;autobr&#034; /&gt; remote shell ) , rcp ( remote copy ) )&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;DNS &lt;/b&gt;( Domain Name Service )&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;Service de correspondance : Noms - Adresses r&#233;seau ( dites Adresses IP )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;NFS&lt;/b&gt; ( Network File System )&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;Service de partage de fichiers&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;NIS&lt;/b&gt; ( Network Information Service )&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;Service de centralisation de fichiers administratifs Unix&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;SNMP&lt;/b&gt; ( Simple Network Management Protocol )&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;Protocole pour ba&#162;tir des logiciels de &#034;supervision r&#233;seau&#034;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;SMTP&lt;/b&gt; ( Simple Mail Transfer Protocol )&lt;/td&gt; &lt;td rowspan=&#034;3&#034; width=&#034;60%&#034;&gt;Protocoles pour ba&#162;tir des solutions de messagerie&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;POP&lt;/b&gt; ( Post Office Protocol )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;MIME&lt;/b&gt; ( Multipurpose Internet Mail Extensions )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;&lt;b&gt;HTTP&lt;/b&gt; ( HyperText Transfer Protocol )&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt;Protocole utilis&#233; dans le dialogue : Navigateur - Serveur Web.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;etc ...&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;b&#034;&gt;B. CONFIGURATION DE BASE SOUS UNIX&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Les systa&#238;mes se voient attribuer un nom&lt;/b&gt; en clair pour les utilisateurs&lt;br class=&#034;autobr&#034; /&gt;
du r&#233;seau. Bien entendu, &lt;b&gt;ce nom est associ&#233; a une adresse IP&lt;/b&gt; pour la&lt;br class=&#034;autobr&#034; /&gt;
mise en &#197;&#8220;uvre effective.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Plusieurs possibilit&#233;s existent pour &#233;tablir cette correspondance :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;1) Organisation plate&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Sur chaque machine, on renseigne un &lt;b&gt;fichier /etc/hosts&lt;/b&gt; avec les&lt;br class=&#034;autobr&#034; /&gt;
coordonn&#233;es des autres machines.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Syntaxe&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Adresse_IP Nom_du_systa&#238;me Alias # Commentaire&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple de fichier&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;127.0.0.1 localhost&lt;/p&gt;
&lt;p&gt;128.1.1.1 sun.admin-sys.com unixware # solaris x86&lt;/p&gt;
&lt;p&gt;128.1.1.10 aix5.admin-sys.com aix4 # RS6000 AIX 5L&lt;/p&gt;
&lt;p&gt;128.1.1.40 hpux11.admin-sys.com hpux11 # HP9000 HP/UX 11.x&lt;/p&gt;
&lt;p&gt;128.1.1.101 pc1.admin-sys.com pc1&lt;/p&gt;
&lt;p&gt;128.1.1.102 pc2.admin-sys.com pc2&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;2) Organisation DNS&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Quand le r&#233;seau est plus vaste et/ou reli&#233; au r&#233;seau mondial Internet,&lt;br /&gt;
il doit prendre en compte l'&lt;b&gt;organisation en une arborescence de domaines&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Le nom complet d'une machine prend alors en compte la hi&#233;rarchie des&lt;br class=&#034;autobr&#034; /&gt;
domaines.&lt;/p&gt;
&lt;p&gt;( &lt;i&gt;Exemples&lt;/i&gt; : unixware.oriaform.fr , &lt;a class=&#034;spip_url spip_out auto&#034; href='http://www.linux.org' rel=&#034;nofollow external&#034;&gt;www.linux.org&lt;/a&gt; , sunsite.unc.edu ,&lt;br class=&#034;autobr&#034; /&gt;
etc ... )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;DNS&lt;/b&gt; ( &lt;b&gt;D&lt;/b&gt;omain &lt;b&gt;N&lt;/b&gt;ame &lt;b&gt;S&lt;/b&gt;ervice ) est un service&lt;br class=&#034;autobr&#034; /&gt;
permettant, d'une part, de centraliser les informations concernant les noms et&lt;br class=&#034;autobr&#034; /&gt;
adresses IP des machines d'un domaine et, d'autre part, de partager ces&lt;br class=&#034;autobr&#034; /&gt;
informations avec d'autres domaines.&lt;/p&gt;
&lt;p&gt;DNS s'impl&#233;mente sur un &lt;b&gt;ensemble de serveurs&lt;/b&gt; de noms ex&#233;cutant&lt;br class=&#034;autobr&#034; /&gt;
chacun le d&#233;mon &lt;b&gt;&#034;named&#034;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;En ce qui concerne &lt;b&gt;l'aspect client DNS&lt;/b&gt;, il se traduit tout simplement&lt;br class=&#034;autobr&#034; /&gt;
par la cr&#233;ation d'un fichier&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;/etc/resolv.conf&lt;/b&gt; permettant d'indiquer a quel domaine appartient le&lt;br class=&#034;autobr&#034; /&gt;
systa&#238;me et quels sont les serveurs DNS disponibles pour effectuer les&lt;br class=&#034;autobr&#034; /&gt;
r&#233;solutions de noms.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple de fichier /etc/resolv.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;domain admin-sys.com&lt;/p&gt;
&lt;p&gt;nameserver 128.1.1.1&lt;/p&gt;
&lt;p&gt;nameserver 128.1.1.5&lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;nslookup&lt;/b&gt; permet d'interroger les serveurs de noms.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;font color=&#034;#007f00&#034;&gt; &lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. MANIPULATION DES COMMANDES DE BASE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name=&#034;1&#034;&gt;1. COMMANDE DE TEST&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;ping&lt;/b&gt; permet de savoir si une machine du r&#233;seau est&lt;br class=&#034;autobr&#034; /&gt;
accessible.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;ping [ -s ] host [ timeout ]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;host Nom ou Adresse IP de la machine concern&#233;e timeout D&#233;lai maximum de&lt;br class=&#034;autobr&#034; /&gt;
tentative d'acca&#238;s ( 20s par d&#233;faut )&lt;/p&gt;
&lt;p&gt;-s Essais successifs ( fin par interruption clavier )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemples&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ping pc1&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;pc1.admin-sys.com is alive&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font face=&#034;Courier New&#034;&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ping -s sun&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;PING sun.admin-sys.com : 56 data bytes&lt;/dt&gt; &lt;dt&gt;64 bytes from sun.admin-sys.com (128.1.1.1) : icmp_seq=0. time=10. ms&lt;/dt&gt; &lt;dt&gt;64 bytes from sun.admin-sys.com (128.1.1.1) : icmp_seq=1. time=6. ms&lt;/dt&gt; &lt;dt&gt;64 bytes from sun.admin-sys.com (128.1.1.1) : icmp_seq=2. time=6. ms&lt;/dt&gt; &lt;dt&gt;&lt;b&gt;^&lt;i&gt;C&lt;/i&gt;&lt;/b&gt;&lt;i&gt; Interruption clavier&lt;/i&gt;&lt;/dt&gt; &lt;dt&gt;----unixware.oriaform.fr PING Statistics----&lt;/dt&gt; &lt;dt&gt;3 packets transmitted, 3 packets received, 0% packet loss&lt;/dt&gt; &lt;dt&gt;round-trip (ms) min/avg/max = 6/7/10&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ping 128.1.1.1&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;128.1.1.1 is alive&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ping titi&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;ping : unknown host titi&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ping hpux10&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;no answer from hpux10.admin-sys.com&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;&lt;font color=&#034;#7f007f&#034;&gt; &lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;br class=&#034;autobr&#034; /&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name=&#034;2&#034;&gt;2. TERMINAL VIRTUEL&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;telnet&lt;/b&gt; permet d'&#233;tablir une connexion sur une machine&lt;br class=&#034;autobr&#034; /&gt;
distante.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;telnet host&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;&lt;b&gt;telnet&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;telnet&gt;&lt;/i&gt;&lt;b&gt; open host&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;D&#233;connexion&lt;/i&gt; &lt;b&gt;exit ou Ctrl d&lt;/b&gt; ( depuis le login )&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;Caracta&#238;re d'&#233;chappement ( Ctrl ] ) puis &lt;b&gt;quit&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Invoqu&#233;e sans argument, &#194;&#171; telnet&#194; &#187; pr&#233;sente un prompt et permet un certain&lt;br class=&#034;autobr&#034; /&gt;
nombre de commandes :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt; ?&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;Aide en ligne&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt;open host&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt; Ouverture d'une connexion sur la machine &#194;&#171; host&#194; &#187;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt;close&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt; Arra&#170;t de toutes les connexions et sortie de &#194;&#171; telnet&#194; &#187;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt;quit&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt; Synonyme de &#194;&#171; close&#194; &#187;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt;status&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt; Affichage de l'&#233;tat actuel de &#194;&#171; telnet&#194; &#187;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;b&gt;&lt;i&gt;set argument valeur&lt;/i&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;72%&#034;&gt;&lt;b&gt;Positionnement des valeurs des variables telnet &lt;/b&gt; &lt;p&gt;&lt;b&gt;( Exemple : set escape ^] )&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan=&#034;2&#034; width=&#034;100%&#034;&gt;&lt;b&gt;&lt;i&gt;etc...&lt;/i&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple de connexion&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;telnet unixware&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;Trying 128.1.1.20...&lt;/dt&gt; &lt;dt&gt;Connected to unixware.&lt;/dt&gt; &lt;dt&gt;Escape character is '^]'.&lt;/dt&gt; &lt;dt&gt;UNIX System V Release 4.2 (unixware) (pts/2)&lt;/dt&gt; &lt;dt&gt;login : &lt;b&gt;&lt;i&gt;stage1&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;UNIX System V/386 Release 4.2 Version 1.1&lt;/dt&gt; &lt;dt&gt;Last login : Wed Sep 14 10:06:42 on pts002&lt;/dt&gt; &lt;dt&gt;unixware./home/stage1&gt;&lt;/dt&gt; &lt;dt&gt;...................&lt;/dt&gt; &lt;dt&gt;...................&lt;/dt&gt; &lt;dt&gt;unixware./home/stage1&gt; &lt;b&gt;&lt;i&gt;exit&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;Connection closed by foreign host.&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name=&#034;3&#034;&gt;3. LES &#194;&#171; REMOTE COMMANDS&#194; &#187;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;La commande rlogin&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Elle permet la connexion sur une machine Unix distante, par d&#233;faut sous le&lt;br class=&#034;autobr&#034; /&gt;
ma&#170;me compte.&lt;/p&gt;
&lt;p&gt;L'obligation de fournir ou non un mot de passe est li&#233;e a un fichier&lt;br class=&#034;autobr&#034; /&gt;
d'autorisation situ&#233; sur la machine distante : &lt;b&gt;$HOME/.rhosts&lt;/b&gt; .&lt;/p&gt;
&lt;p&gt;On y indique les noms des machines depuis lesquelles on peut se connecter&lt;br class=&#034;autobr&#034; /&gt;
sans devoir fournir de mot de passe.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;rlogin [ options ] host&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Options&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;401&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;53&#034;&gt;&lt;i&gt;-8&lt;/i&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;332&#034;&gt;Transmission en mode 8 bits&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;53&#034;&gt;&lt;i&gt;-l login&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;332&#034;&gt;&lt;b&gt; &lt;/b&gt;Connexion sous un login diff&#233;rent&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;53&#034;&gt;&lt;i&gt;-e car&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;332&#034;&gt;&lt;b&gt; &lt;/b&gt;Red&#233;finition de la s&#233;quence d'&#233;chappement&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;D&#233;connexion&lt;/i&gt; &lt;b&gt;exit &lt;/b&gt;ou &lt;b&gt;Ctrl d &lt;/b&gt;ou &lt;b&gt; .&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple de connexion rlogin&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt;$ &lt;b&gt;&lt;i&gt;rlogin unixware&lt;/i&gt;&lt;/b&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;&lt;b&gt;&lt;i&gt;unixware&lt;/i&gt;&lt;/b&gt; &gt; &lt;b&gt;&lt;i&gt;exit&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;Connection closed.&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt;&lt;dl&gt; &lt;dt&gt;Password :&lt;/dt&gt; &lt;dt&gt;UNIX System V/386 Release 4.0 Version 3.0&lt;/dt&gt; &lt;dt&gt;Last login : Wed Sep 14 12:40:00 from unixware&lt;/dt&gt; &lt;dt&gt;+--------------------------------------+&lt;/dt&gt; &lt;dt&gt; ! BIENVENUE CHEZ Lunixform ! !&lt;/dt&gt; &lt;dt&gt;+--------------------------------------+&lt;/dt&gt; &lt;dt&gt;&lt;b&gt;&lt;i&gt;unixware&lt;/i&gt;&lt;/b&gt; &gt;&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;La commande rsh&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Cette commande signifie &#194;&#171; &lt;b&gt;remote &lt;/b&gt;&lt;b&gt;shell&lt;/b&gt;&#194; &#187;.&lt;/p&gt;
&lt;p&gt;Sous certaines versions, elle peut s'appeler &lt;b&gt;remsh&lt;/b&gt; ou &lt;b&gt;rcmd&lt;/b&gt; .&lt;/p&gt;
&lt;p&gt;Elle permet d'ex&#233;cuter une commande sur une machine distante.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;rsh host [ -n ] commande&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&#194;&#171; rsh&#194; &#187; effectue une connexion sur la machine distante pour ex&#233;cuter la&lt;br class=&#034;autobr&#034; /&gt;
commande demand&#233;e.&lt;/p&gt;
&lt;p&gt;Elle consulte le fichier &lt;b&gt;$HOME/.rhosts&lt;/b&gt; pour v&#233;rifier les&lt;br class=&#034;autobr&#034; /&gt;
autorisations.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;L'entr&#233;e standard de &#194;&#171; rsh&#194; &#187; devient l'entr&#233;e standard de la commande a &lt;br class=&#034;autobr&#034; /&gt;
lancer. La sortie et l'erreur standard de la commande deviennent celles de &#194;&#171; rsh&#194; &#187;.&lt;br class=&#034;autobr&#034; /&gt;
L'ex&#233;cution des commandes distantes s'inta&#238;gre donc parfaitement dans des&lt;br class=&#034;autobr&#034; /&gt;
&#194;&#171; pipelines Unix&#194; &#187;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Les caracta&#238;res sp&#233;ciaux non banalis&#233;s sont trait&#233;s au niveau de la&lt;br class=&#034;autobr&#034; /&gt;
machine locale.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;L'option &lt;b&gt;-n&lt;/b&gt; est a utiliser quand &#194;&#171; rsh&#194; &#187; se trouve en premier membre&lt;br class=&#034;autobr&#034; /&gt;
d'un &#194;&#171; pipeline&#194; &#187; ou lors d'un lancement en arria&#238;re-plan.&lt;/p&gt;
&lt;p&gt;Elle redirige l'entr&#233;e standard de &#194;&#171; rsh&#194; &#187; vers /dev/null &#233;vitant ainsi un&lt;br class=&#034;autobr&#034; /&gt;
conflit de descripteur entre &#194;&#171; rsh&#194; &#187; et le processus shell initial.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemples&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh sun date&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;Permission denied.&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh unixware uname -a&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;unixware unixware 4.0 3.0 EISA i386&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; cal 1996 &gt; toto&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Fichier cr&#233;&#233; sur la machine locale&lt;/i&gt;&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; &#034; cal 1996 &gt; toto &#034;&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Fichier cr&#233;&#233; sur la machine distante&lt;/i&gt;&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt; &lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;cat toto | rsh &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; lp&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;request id is impr-989 (standard input)&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; lpstat&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;impr-989 root 75 Sep 14 20:10&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;La commande rcp&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Elle permet le transfert de fichiers entre systa&#238;mes d'exploitation Unix. La&lt;br class=&#034;autobr&#034; /&gt;
commande utilise le ma&#170;me algorithme d'autorisation que &#194;&#171; rsh&#194; &#187;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;rcp [ -p ] fichier1 fichier2&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;rcp [ -pr ] fichiers... r&#233;pertoire&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;394&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;52&#034;&gt;&lt;i&gt;-p&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;326&#034;&gt;Conservation des dates et permissions des fichiers&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;52&#034;&gt;&lt;i&gt;-r&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;326&#034;&gt; Copie r&#233;cursive&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Les noms de fichiers sur la machine distante sont d&#233;sign&#233;s par :&lt;/p&gt;
&lt;p&gt;&lt;b&gt;host:fichier&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;&lt;b&gt;username@host:fichier&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemples&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rcp /tmp/toto unixware :/tmp&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rsh &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; ls -al /tmp/toto&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root other 1264 Sep 14 18:45 toto&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rcp -r &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; :/manip /tmp&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;ls -al&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;total 58&lt;/dt&gt; &lt;dt&gt;drwxrwxrwt 3 bin bin 1024 sept 14 14:41 .&lt;/dt&gt; &lt;dt&gt;drwxr-xr-x 25 root sys 1024 sept 14 12:08 ..&lt;/dt&gt; &lt;dt&gt;drwxr-xr-x 2 root sys 96 sept 14 14:41 manip&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rcp &lt;/i&gt;&lt;/b&gt;unixware&lt;b&gt;&lt;i&gt; :&#034;/home/stage1/.??*&#034; /tmp&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;ls -al&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;total 20&lt;/dt&gt; &lt;dt&gt;drwxrwxrwt 2 bin bin 1024 sept 14 14:43 .&lt;/dt&gt; &lt;dt&gt;drwxr-xr-x 25 root sys 1024 sept 14 12:08 ..&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 196 sept 14 14:43 .cshrc&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 232 sept 14 14:43 .kshrc&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 241 sept 14 14:43 .login&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 6 sept 14 14:43 .logout&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 368 sept 14 14:43 .profile&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root sys 33 sept 14 14:43 .rhosts&lt;/dt&gt; &lt;dt&gt;-rw------- 1 root sys 8 sept 14 14:43 .sh_history&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rcp /tmp/toto hpux11 :/tmp&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;Permission denied&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ &lt;b&gt;&lt;i&gt;rcp toto stage1@hpux11 :/tmp/titi&lt;/i&gt;&lt;/b&gt;&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt; &lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name=&#034;4&#034;&gt;4. TRANSFERTS DE FICHIERS&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;ftp &lt;/b&gt;permet d'effectuer des copies de fichiers entre&lt;br class=&#034;autobr&#034; /&gt;
machines du r&#233;seau.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;ftp host&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La commande effectue une &lt;b&gt;connexion vers un compte avec mot de passe&lt;/b&gt; de&lt;br class=&#034;autobr&#034; /&gt;
la machine cible.&lt;/p&gt;
&lt;p&gt;Apra&#238;s cette connexion, la commande s'ex&#233;cute en mode interactif.&lt;/p&gt;
&lt;p&gt;Elle affiche le prompt &lt;i&gt;ftp&gt;&lt;/i&gt; et propose un large &#233;ventail de&lt;br class=&#034;autobr&#034; /&gt;
fonctionnalit&#233;s.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Commandes de base de ftp&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;help ou ?&lt;/i&gt; Aide en ligne&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;status&lt;/i&gt; Affiche l'&#233;tat courant de ftp&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;ascii&lt;/i&gt; Transferts des fichiers en mode texte&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;binary &lt;/i&gt;Transferts des fichiers en mode binaire ou &#194;&#171; image&#194; &#187;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;pwd&lt;/i&gt; Affichage du nom du r&#233;pertoire courant sur la machine distante&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd rep_distant&lt;/i&gt;&lt;b&gt; &lt;/b&gt;Changement de r&#233;pertoire sur la machine distante&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;ls&lt;/i&gt; Liste des noms de fichiers sur la machine distante&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt; !pwd&lt;/i&gt; Affichage du nom du r&#233;pertoire courant sur la machine locale&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;lcd rep_local &lt;/i&gt;Changement de r&#233;pertoire sur la machine locale&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt; !ls&lt;/i&gt; Liste des noms de fichiers sur la machine locale&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;get fic_distant fic_local&lt;/i&gt; R&#233;cup&#233;ration d'un fichier&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;recv fic_distant fic_local&lt;/i&gt; R&#233;cup&#233;ration d'un fichier ( synonyme de get&lt;br class=&#034;autobr&#034; /&gt;
)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;put fic_local fic_distant&lt;/i&gt; Emission d'un fichier&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;send fic_local fic_distant&lt;/i&gt; Emission d'un fichier ( synonyme de put )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;glob&lt;/i&gt; R&#233;active ou inhibe la r&#233;solution des caracta&#238;res sp&#233;ciaux&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;prompt&lt;/i&gt; Activation du mode interactif pour un transfert multiple&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;mget fic_distants&lt;/i&gt; R&#233;cup&#233;ration de multiples fichiers ( vers le&lt;br class=&#034;autobr&#034; /&gt;
r&#233;pertoire local courant )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;mput fic_locaux&lt;/i&gt; Emission de multiples fichiers ( vers le r&#233;pertoire&lt;br class=&#034;autobr&#034; /&gt;
distant courant )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;bye&lt;/i&gt; Sortie de ftp&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;quit&lt;/i&gt; Sortie de ftp ( synonyme de bye )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;( NB&lt;/b&gt; : Le caracta&#238;re d'interruption clavier met fin imm&#233;diatement au&lt;br class=&#034;autobr&#034; /&gt;
transfert en cours. )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple de session ftp&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;$ ftp unixware&lt;/p&gt;
&lt;p&gt;Connected to unixware.&lt;/p&gt;
&lt;p&gt;220 unixware FTP server (UNIX(r) System V Release 4.0) ready.&lt;/p&gt;
&lt;p&gt;Name (unixware:root) :&lt;/p&gt;
&lt;p&gt;331 Password required for root.&lt;/p&gt;
&lt;p&gt;Password :&lt;/p&gt;
&lt;p&gt;230 User root logged in.&lt;/p&gt;
&lt;p&gt;ftp&gt; ?&lt;/p&gt;
&lt;p&gt;Commands may be abbreviated. Commands are :&lt;/p&gt;
&lt;p&gt; ! debug mget pwd status&lt;/p&gt;
&lt;p&gt;$ dir mkdir quit struct&lt;/p&gt;
&lt;p&gt;account disconnect mls quote system&lt;/p&gt;
&lt;p&gt;append form mode recv sunique&lt;/p&gt;
&lt;p&gt;ascii get modtime reget tenex&lt;/p&gt;
&lt;p&gt;bell glob mput rstatus trace&lt;/p&gt;
&lt;p&gt;binary hash newer rhelp type&lt;/p&gt;
&lt;p&gt;bye help nmap rename user&lt;/p&gt;
&lt;p&gt;case idle nlist reset umask&lt;/p&gt;
&lt;p&gt;cd image ntrans restart verbose&lt;/p&gt;
&lt;p&gt;cdup lcd open rmdir ?&lt;/p&gt;
&lt;p&gt;chmod ls prompt runique&lt;/p&gt;
&lt;p&gt;close macdef proxy send&lt;/p&gt;
&lt;p&gt;cr mdelete sendport site&lt;/p&gt;
&lt;p&gt;delete mdir put size&lt;/p&gt;
&lt;p&gt;ftp&gt; status&lt;/p&gt;
&lt;p&gt;Connected to unixware.&lt;/p&gt;
&lt;p&gt;No proxy connection.&lt;/p&gt;
&lt;p&gt;Mode : stream ; Type : ascii ; Form : non-print ; Structure : file&lt;/p&gt;
&lt;p&gt;Verbose : on ; Bell : off ; Prompting : on ; Globbing : on&lt;/p&gt;
&lt;p&gt;Store unique : off ; Receive unique : off&lt;/p&gt;
&lt;p&gt;Case : off ; CR stripping : on&lt;/p&gt;
&lt;p&gt;Ntrans : off&lt;/p&gt;
&lt;p&gt;Nmap : off&lt;/p&gt;
&lt;p&gt;Hash mark printing : off ; Use of PORT cmds : on&lt;/p&gt;
&lt;p&gt;ftp&gt; get /etc/inittab /tmp/tutu&lt;/p&gt;
&lt;p&gt;local : /tmp/tutu remote : /etc/inittab&lt;/p&gt;
&lt;p&gt;200 PORT command successful.&lt;/p&gt;
&lt;p&gt;150 ASCII data connection for /etc/inittab (192.9.200.130,1085) (1264 bytes).&lt;/p&gt;
&lt;p&gt;226 ASCII Transfer complete.&lt;/p&gt;
&lt;p&gt;1290 bytes received in 0.01 seconds (1.3e+02 Kbytes/s)&lt;/p&gt;
&lt;p&gt;ftp&gt; binary&lt;/p&gt;
&lt;p&gt;200 Type set to I.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;ftp&gt; get /etc/inittab /tmp/toto&lt;/p&gt;
&lt;p&gt;local : /tmp/toto remote : /etc/inittab&lt;/p&gt;
&lt;p&gt;200 PORT command successful.&lt;/p&gt;
&lt;p&gt;150 Binary data connection for /etc/inittab (192.9.200.130,1069) (1264&lt;br class=&#034;autobr&#034; /&gt;
bytes).&lt;/p&gt;
&lt;p&gt;226 Binary Transfer complete.&lt;/p&gt;
&lt;p&gt;1264 bytes received in 0.03 seconds (41 Kbytes/s)&lt;/p&gt;
&lt;p&gt;ftp&gt; mget /home/stage1/.??*hrc&lt;/p&gt;
&lt;p&gt;mget /home/stage1/.cshrc ? y&lt;/p&gt;
&lt;p&gt;200 PORT command successful.&lt;/p&gt;
&lt;p&gt;150 Binary data connection for /home/stage1/.cshrc (192.9.200.130,1073) (196&lt;br class=&#034;autobr&#034; /&gt;
byt&lt;/p&gt;
&lt;p&gt;es).&lt;/p&gt;
&lt;p&gt;226 Binary Transfer complete.&lt;/p&gt;
&lt;p&gt;196 bytes received in 0 seconds (0.19 Kbytes/s)&lt;/p&gt;
&lt;p&gt;mget /home/stage1/.kshrc ? n&lt;/p&gt;
&lt;p&gt;ftp&gt; quit&lt;/p&gt;
&lt;p&gt;221 Goodbye.&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Imprimante </title>
		<link>https://admin-sys.org/?imprimante</link>
		<guid isPermaLink="true">https://admin-sys.org/?imprimante</guid>
		<dc:date>2008-09-16T09:40:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;XIV. Commandes d&#226;&#8364;&#8482;impression &lt;br class='autobr' /&gt; A. Description &lt;br class='autobr' /&gt;
Le syst&#195;&#168;me Unix est dot&#195;&#169; d&#226;&#8364;&#8482;un service &#194;&#171; spouleur&#194; &#187; permettant l&#226;&#8364;&#8482;acc&#195;&#168;s &#195; des imprimantes locales ( sur port s&#195;&#169;rie ou parall&#195;&#168;le ), des imprimantes distantes ( imprimante locale &#195; une autre machine jouant le r&#195;&#180;le de serveur d&#226;&#8364;&#8482;imprimantes ), des imprimantes &#194;&#171; r&#195;&#169;seau&#194; &#187; ( diverses solutions logicielles et mat&#195;&#169;rielles sont disponibles et, de plus en plus souvent, multi-protocoles ( TCP/IP, IPX, etc... ) ). &lt;br class='autobr' /&gt;
Une imprimante est (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;h1&gt;XIV. &lt;u&gt;Commandes d&#226;&#8364;&#8482;impression &lt;/u&gt;&lt;/h1&gt;&lt;h2&gt;&lt;a name=&#034;a&#034;&gt; A. &lt;u&gt;Description&lt;/u&gt;
&lt;/a&gt;&lt;/h2&gt;&lt;/b&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le syst&#195;&#168;me Unix est dot&#195;&#169; d&#226;&#8364;&#8482;un service &lt;b&gt;&#194;&#171; spouleur&#194; &#187;&lt;/b&gt;&lt;br class='autobr' /&gt;
permettant l&#226;&#8364;&#8482;acc&#195;&#168;s &#195; des &lt;i&gt;imprimantes locales &lt;/i&gt;( sur port s&#195;&#169;rie ou&lt;br class='autobr' /&gt;
parall&#195;&#168;le ), des &lt;i&gt;imprimantes distantes&lt;/i&gt; ( imprimante locale &#195; une autre&lt;br class='autobr' /&gt;
machine jouant le r&#195;&#180;le de serveur d&#226;&#8364;&#8482;imprimantes ), des &lt;i&gt;imprimantes&lt;br class='autobr' /&gt;
&#194;&#171; r&#195;&#169;seau&#194; &#187;&lt;/i&gt; ( diverses solutions logicielles et mat&#195;&#169;rielles sont&lt;br class='autobr' /&gt;
disponibles et, de plus en plus souvent, multi-protocoles ( TCP/IP, IPX, etc...&lt;br class='autobr' /&gt;
) ).&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;Une imprimante est connue par un nom logique de file d&#226;&#8364;&#8482;attente&lt;/b&gt;&lt;br class='autobr' /&gt;
attribu&#195;&#169;e par l&#226;&#8364;&#8482;administrateur. Une &lt;b&gt;imprimante par d&#195;&#169;faut&lt;/b&gt; est pr&#195;&#169;vue&lt;br class='autobr' /&gt;
lorsque les requ&#195;&#170;tes d&#226;&#8364;&#8482;impression sont effectu&#195;&#169;es sans option explicite de&lt;br class='autobr' /&gt;
destination.&lt;/p&gt;
&lt;p&gt;Trois services d&#226;&#8364;&#8482;impression coexistent dans le monde Unix :&lt;/p&gt;
&lt;p&gt;- Le &lt;i&gt;spouleur &#194;&#171; System V&#194; &#187;&lt;/i&gt; ( &lt;b&gt;lpsched &lt;/b&gt;, le plus r&#195;&#169;pandu )&lt;/p&gt;
&lt;p&gt;- Le &lt;i&gt;spouleur &#194;&#171; Berkeley&#194; &#187;&lt;/i&gt; ( &lt;b&gt;lpd&lt;/b&gt; , sur les versions SunOs ,&lt;br class='autobr' /&gt; Ultrix ... )&lt;/p&gt;
&lt;p&gt;- Le &lt;i&gt;spouleur &#194;&#171; Aix&#194; &#187;&lt;/i&gt; ( &lt;b&gt;qdaemon&lt;/b&gt; )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img SRC=&#034;/base/spool1.gif&#034; WIDTH=&#034;604&#034; HEIGHT=&#034;299&#034;&lt;/p style='max-width: 500px;max-width: min(100%,500px); max-height: 10000px'&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Nous &#195;&#169;voquons ici les commandes accessibles &#195; l&#226;&#8364;&#8482;utilisateur&lt;br class='autobr' /&gt;
lorsque les diff&#195;&#169;rents services sont configur&#195;&#169;s. Sur une version donn&#195;&#169;e, les&lt;br class='autobr' /&gt;
commandes d&#226;&#8364;&#8482;impression des autres services sont souvent simul&#195;&#169;es en ce qui&lt;br class='autobr' /&gt;
concerne les options courantes. Si ce n&#226;&#8364;&#8482;est pas le cas, l&#226;&#8364;&#8482;administrateur&lt;br class='autobr' /&gt;
pourra, via quelques utilitaires &#194;&#171; shell&#194; &#187;, reproduire les habitudes des&lt;br class='autobr' /&gt;
utilisateurs.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Tableau r&#195;&#169;sum&#195;&#169; des commandes pour les trois services&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;25%&#034;&gt;System V&lt;/td&gt;&lt;td width=&#034;25%&#034;&gt; Berkeley&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; Aix&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;Requ&#195;&#170;tes d&#226;&#8364;&#8482;impression &lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt;lp&lt;/b&gt;
&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt; lpr
&lt;/b&gt; &lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt; qprt
&lt;/b&gt; &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;Etat des files d&#226;&#8364;&#8482;attente&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt;lpstat &lt;/b&gt; &lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt; lpq
&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt;qchk&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;Annulation de requ&#195;&#170;tes&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt;cancel
&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt;lprm &lt;/b&gt; &lt;/td&gt; &lt;td width=&#034;25%&#034;&gt; &lt;b&gt; qcan&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;
B. &lt;u&gt;Imprimer : la commande &lt;i&gt;lp&lt;/i&gt;&lt;/u&gt;
&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;lp &lt;/b&gt;Envoie un ou plusieurs&lt;br class='autobr' /&gt;
fichier(s) dans la file d'attente d'impression. Le r&#195;&#169;sultat imm&#195;&#169;diat est un num&#195;&#169;ro de requ&#195;&#170;te form&#195;&#169; &#195; &lt;br class='autobr' /&gt;
partir du nom de l'imprimante.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les principales options sont :&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-d&lt;/b&gt;&lt;i&gt;nom imprimante &#034;nom&#034; au lieu de&lt;br class='autobr' /&gt; l'imprimante par d&#195;&#169;faut&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-n&lt;/b&gt;&lt;i&gt;x&lt;/i&gt; &lt;i&gt;imprime en x exemplaires&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-onb&lt;/b&gt; &lt;i&gt;supprime la page d'en t&#195;&#170;te (&lt;b&gt;n&lt;/b&gt;o &lt;b&gt;b&lt;/b&gt;anner)&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;br class='autobr' /&gt; &lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ lp lettre &lt;i&gt;imprimante par d&#195;&#169;faut&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ lp -dlaser fic1 &lt;i&gt;impression sur l'imp de nom&lt;br class='autobr' /&gt; &#034;laser&#034;&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;request id is laser-124&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;p&gt; &lt;a NAME=&#034;c&#034;&gt;C. &lt;u&gt;G&#195;&#169;rer ses jobs : les commandes &lt;i&gt;lpstat&lt;/i&gt;&lt;br class='autobr' /&gt; et&lt;i&gt; cancel&lt;br class='autobr' /&gt; &lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/h2&gt;&lt;/b&gt;
&lt;p&gt;$ &lt;b&gt;lpstat&lt;/b&gt; permet de suivre ses propres jobs.&lt;/p&gt;
&lt;p&gt;$ lpstat -t configuration du syst&#195;&#168;me d'impression + liste de tous les jobs.&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;cancel&lt;/b&gt; laser-124 annule la requ&#195;&#170;te sp&#195;&#169;cifi&#195;&#169;e.&lt;/p&gt;
&lt;p&gt;$ cancel laser -a annule toutes les requ&#195;&#170;tes sur l'imprimante sp&#195;&#169;cifi&#195;&#169;e.&lt;/p&gt;
&lt;p&gt;Selon le degr&#195;&#169; de protection de la machine, un utilisateur pourra ou non&lt;br class='autobr' /&gt;
consulter les jobs des autres utilisateurs ; de la m&#195;&#170;me mani&#195;&#168;re, il sera ou&lt;br class='autobr' /&gt;
non autoris&#195;&#169; &#195; supprimer des jobs qui ne lui appartiennent pas.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt; &lt;a NAME=&#034;d&#034;&gt;D. &lt;u&gt;Mise en page : le filtre &lt;i&gt;pr&lt;/i&gt;&lt;/u&gt;&lt;/a&gt; &lt;/h2&gt;
&lt;p&gt;pr&lt;/b&gt; formate un fichier texte.&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;br class='autobr' /&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;pr&lt;/b&gt; est un filtre : il est donc possible de le placer&lt;br class='autobr' /&gt; &#195; gauche ou &#195; droite d'un &#034;pipe&#034;.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;Principales options de pr&lt;/u&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;RIGHT&#034;&gt; &lt;/p&gt;
&lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;2&#034; CELLPADDING=&#034;4&#034; WIDTH=&#034;567&#034;&gt; &lt;tr&gt;&lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-&lt;i&gt;N&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;produit une sortie sur N colonnes&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt;
&lt;p&gt;-a&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;multi-colonnes &#195; travers la page&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-t&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;supprime les messages d'en-t&#195;&#170;te et de fin (5 + 5&lt;br class='autobr' /&gt; lignes)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-d&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;interlignes doubles&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-hTitre&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;indique le libell&#195;&#169; de l'ent&#195;&#170;te (Header)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-w&lt;i&gt;N&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Fixe la taille des lignes &#195; N caract&#195;&#168;res (72 par&lt;br class='autobr' /&gt; d&#195;&#169;faut)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt;
&lt;p&gt;-l&lt;i&gt;N&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Fixe la taille des pages &#195; N lignes (66 par d&#195;&#169;faut)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;15%&#034; VALIGN=&#034;TOP&#034;&gt;&lt;b&gt; &lt;p&gt;-n&lt;i&gt;CK&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td WIDTH=&#034;85%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Num&#195;&#169;rote les lignes sur K caract&#195;&#168;res et C=caract&#195;&#168;re&lt;br class='autobr' /&gt; de s&#195;&#169;paration (Tab par d&#195;&#169;faut)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;br class='autobr' /&gt; &lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Remarque :&lt;/i&gt; La combinaison de certaines options&lt;br class='autobr' /&gt; donne parfois des r&#195;&#169;sultats &#195;&#169;tranges ; plusieurs essais sont souvent&lt;br class='autobr' /&gt; n&#195;&#169;cessaires pour arriver au r&#195;&#169;sultat escompt&#195;&#169;.&lt;/p&gt;
&lt;p&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;br class='autobr' /&gt; &lt;u&gt;&lt;br class='autobr' /&gt; &lt;/u&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ pr &lt;b&gt;-3&lt;/b&gt; -t fic1 &lt;i&gt; &lt;/i&gt; #&lt;i&gt;affiche&lt;br class='autobr' /&gt; le fichier sur &lt;b&gt;3 colonnes&lt;/b&gt; sans en-t&#195;&#170;te ni blanc terminal&lt;/p&gt;
&lt;/i&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ pr -h&#034;Ca roule&#034; -l 84 | lp&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Exemples de requ&#195;&#170;tes d&#226;&#8364;&#8482;impression ( lp , lpr , qprt )&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;$ &lt;b&gt;&lt;i&gt;lp .profile /etc/group&lt;/i&gt;&lt;/b&gt;
&lt;p&gt;request id is impr-242 (2 files)&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Requ&#195;&#170;te vers l&#226;&#8364;&#8482;imprimante
par d&#195;&#169;faut
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lp -n2 /etc/passwd&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;request id is impr-243 (1 file)&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Deux exemplaires
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lp -d impr2 main.c&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;request id is impr2-244 (1 file)&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Requ&#195;&#170;te vers l&#226;&#8364;&#8482;imprimante
&#194;&#171; impr2&#194; &#187;
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lpr /etc/group&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;request id is 64&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Commande Berkeley
&lt;/i&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;qprt /etc/group&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;/td&gt;&lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Commande Aix
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Etat des files d&#226;&#8364;&#8482;attente ( lpstat , lpq , qchk )&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;546&#034;&gt; &lt;tr&gt;&lt;td width=&#034;323&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lpstat&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;impr-242 stage1 727 Jan 3 09:52&lt;/p&gt;
&lt;p&gt;impr-243 stage1 2394 Jan 3 09:52&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;207&#034;&gt;&lt;i&gt; Liste de ses propres requ&#195;&#170;tes
&lt;/i&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;323&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lpstat -o&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;impr-242 stage1 727 Jan 3 09:52&lt;/p&gt;
&lt;p&gt;impr-243 stage1 2394 Jan 3 09:52&lt;/p&gt;
&lt;p&gt;impr2-244 stage2 2052580 Jan 3 09:56&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;207&#034;&gt;&lt;i&gt; Liste de toutes les requ&#195;&#170;tes
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;323&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lpq&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;Rank Owner Job Files Total Size&lt;/p&gt;
&lt;p&gt;1st root 64 /etc/group 188 bytes&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;207&#034;&gt;&lt;i&gt; Commande Berkeley
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td width=&#034;323&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;qchk&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Queue Dev Status Job Files User PP %&lt;br class='autobr' /&gt;
Blks Cp Rnk&lt;/p&gt;
&lt;p&gt;lp0 lp0 DOWN&lt;/p&gt;
&lt;p&gt;QUEUED 543 /etc/group root 1 1 1&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;207&#034;&gt;&lt;i&gt; Commande Aix&lt;/i&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Annulations de requ&#195;&#170;tes d&#226;&#8364;&#8482;impression ( cancel , lprm , qcan )&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;cancel impr2-244&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Request &#034;impr2-244&#034; canceled.&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Annulation d&#226;&#8364;&#8482;une requ&#195;&#170;te
&lt;/i&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;cancel -u stage1&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Request &#034;impr-242&#034; canceled.&lt;/p&gt;
&lt;p&gt;Request &#034;impr-243&#034; canceled.&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Annulation des requ&#195;&#170;tes d&#226;&#8364;&#8482;un
utilisateur
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;lprm 64&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;dfA064arc dequeued&lt;/p&gt;
&lt;p&gt;cfA064arc dequeued&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Commande Berkeley
&lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td width=&#034;50%&#034;&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;qcan -x 543&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Message from qdaemon :&lt;/p&gt;
&lt;p&gt;Job number 543 has been deleted from the queue.&lt;EOT&gt;&lt;/p&gt;
&lt;/td&gt; &lt;td width=&#034;50%&#034;&gt;&lt;i&gt; Commande Aix&lt;/i&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Communication </title>
		<link>https://admin-sys.org/?communication</link>
		<guid isPermaLink="true">https://admin-sys.org/?communication</guid>
		<dc:date>2008-09-16T09:40:04Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;XIII. Communication entre utilisateurs &lt;br class='autobr' /&gt; A. Commande news &lt;br class='autobr' /&gt;
news affiche les nouvelles du syst&#195;&#168;me (c'est &#195; dire les contenus des fichiers ajout&#195;&#169;s depuis la derni&#195;&#168;re consultation dans le r&#195;&#169;pertoire /var /news). &lt;br class='autobr' /&gt;
Exemple : $ news &lt;br class='autobr' /&gt; B. Commande write &lt;br class='autobr' /&gt;
write nom_de_login [ ligne ] &lt;br class='autobr' /&gt;
Cette commande permet de dialoguer avec un utilisateur connect&#195;&#169;. L'argument optionnel &#194;&#171; ligne&#194; &#187; est utile si le destinataire se trouve connect&#195;&#169; sur plusieurs terminaux simultan&#195;&#169;ment. Les textes des (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;h1&gt;XII&lt;/font&gt;&lt;font COLOR=&#034;#00007f&#034;&gt;I. &lt;a NAME=&#034;_Toc379028588&#034;&gt;&lt;u&gt;Communication
entre utilisateurs&lt;/u&gt;&lt;/a&gt;&lt;/h1&gt;&lt;h2&gt;&lt;a NAME=&#034;a&#034;&gt;A. &lt;u&gt;Commande &lt;i&gt;news&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;news&lt;/b&gt; affiche les nouvelles du syst&#195;&#168;me (c'est &#195; dire les&lt;br class='autobr' /&gt;
contenus des fichiers ajout&#195;&#169;s depuis la derni&#195;&#168;re consultation dans le&lt;br class='autobr' /&gt;
r&#195;&#169;pertoire &lt;i&gt;/var /news&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt; $ news&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. &lt;u&gt;Commande &lt;i&gt;write&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;write nom_de_login [ ligne ]&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Cette commande permet de dialoguer avec un utilisateur connect&#195;&#169;. L'argument&lt;br class='autobr' /&gt;
optionnel &#194;&#171; ligne&#194; &#187; est utile si le destinataire se trouve connect&#195;&#169; sur&lt;br class='autobr' /&gt;
plusieurs terminaux simultan&#195;&#169;ment. Les textes des messages doivent &#195;&#170;tre&lt;br class='autobr' /&gt;
fournis sur l&#226;&#8364;&#8482;entr&#195;&#169;e standard de la commande.&lt;/p&gt;
&lt;p&gt;A l&#226;&#8364;&#8482;appel de la commande, le destinataire est averti de l'identit&#195;&#169; de&lt;br class='autobr' /&gt;
l'&#195;&#169;metteur.&lt;/p&gt;
&lt;p&gt;S'il souhaite r&#195;&#169;pondre, il doit invoquer &#195; son tour la commande et le&lt;br class='autobr' /&gt;
dialogue peut commencer.&lt;/p&gt;
&lt;p&gt;Chaque ligne valid&#195;&#169;e par &lt;i&gt;&lt;Return&gt;&lt;/i&gt; est affich&#195;&#169;e sur le terminal&lt;br class='autobr' /&gt;
de l&#226;&#8364;&#8482;interlocuteur, d&#226;&#8364;&#8482;o&#195;&#185; la n&#195;&#169;cessit&#195;&#169; d&#226;&#8364;&#8482;un protocole pour &#195;&#169;viter la&lt;br class='autobr' /&gt;
confusion des messages respectifs.&lt;/p&gt;
&lt;p&gt;La frappe du caract&#195;&#168;re &lt;i&gt;Ctrl d&lt;/i&gt; en d&#195;&#169;but de ligne met fin &#195; la&lt;br class='autobr' /&gt;
conversation.&lt;/p&gt;
&lt;p&gt;Si un utilisateur est connect&#195;&#169; sur plusieurs terminaux, on peut pr&#195;&#169;ciser&lt;br class='autobr' /&gt;
sur quel terminal envoyer le message en indiquant celui-ci apr&#195;&#168;s le nom&lt;br class='autobr' /&gt;
d'utilisateur.&lt;/p&gt;
&lt;p&gt;Si une des lignes du message commence par le caract&#195;&#168;re ! , elle sera alors&lt;br class='autobr' /&gt;
interpr&#195;&#169;t&#195;&#169;e par le shell.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ write betty tty02&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;hello betty&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;Ctrl-d&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. &lt;u&gt;La commande talk&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;talk nom_de_login [ ligne ]&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Cette commande permet &#195;&#169;galement de dialoguer avec un utilisateur connect&#195;&#169;&lt;br class='autobr' /&gt;
mais de fa&#195;&#167;on plus agr&#195;&#169;able puisque l&#226;&#8364;&#8482;&#195;&#169;cran est divis&#195;&#169; en deux parties (&lt;br class='autobr' /&gt;
textes &#195;&#169;mis et textes re&#195;&#167;us ).&lt;/p&gt;
&lt;p&gt;La frappe du caract&#195;&#168;re d&#226;&#8364;&#8482;interruption clavier met fin &#195; la conversation.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. &lt;u&gt;La commande wall :&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;/b&gt;
&lt;p&gt;La commande &lt;b&gt;wall&lt;/b&gt; permet d&#226;&#8364;&#8482;envoyer le message fourni sur son entr&#195;&#169;e&lt;br class='autobr' /&gt;
standard, vers tous les utilisateurs connect&#195;&#169;s.&lt;/p&gt;
&lt;p&gt;Cette commande n&#226;&#8364;&#8482;est pas toujours autoris&#195;&#169;e aux utilisateurs ordinaires.&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;font COLOR=&#034;#007f00&#034;&gt;&lt;a NAME=&#034;e&#034;&gt;E. &lt;u&gt;Commande &lt;i&gt;mesg&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;mesg &lt;/b&gt;autorise/interdit aux autres utilisateurs les&lt;br class='autobr' /&gt; envois de messages vers votre terminal&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;La commande &lt;b&gt;mesg&lt;/b&gt; permet d&#226;&#8364;&#8482;autoriser ou non l&#226;&#8364;&#8482;arriv&#195;&#169;e de messages&lt;br class='autobr' /&gt;
via les commandes pr&#195;&#169;c&#195;&#169;dentes.&lt;/p&gt;
&lt;p&gt;Sans argument, la commande donne l'&#195;&#169;tat courant ( y(es) ou n(o) ) .&lt;/p&gt;
&lt;p&gt;Avec un argument ( y ou n ), elle positionne l'autorisation ou&lt;br class='autobr' /&gt;
l'interdiction.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;101&#034;&gt; &lt;tr&gt; &lt;td width=&#034;91&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;is n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg y&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;NB : &lt;/i&gt;Il est possible de v&#195;&#169;rifier l'&#195;&#169;tat (y ou n) d'un&lt;br class='autobr' /&gt;
terminal en tapant :&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;who -T&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le signe (+ ou -) indique si le terminal est accessible ou&lt;br class='autobr' /&gt;
non avec &lt;b&gt;write&lt;/b&gt;.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;f&#034;&gt;F. &lt;u&gt;Commandes &lt;i&gt;mail&lt;/i&gt; et &lt;i&gt;mailx&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;mail &amp; mailx&lt;/b&gt; envoi et r&#195;&#169;ception de courrier. Le&lt;br class='autobr' /&gt;
message sera stock&#195;&#169; par le syst&#195;&#168;me destinataire en attendant que l'utilisateur&lt;br class='autobr' /&gt;
le lise.&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Les commandes &lt;b&gt;mail&lt;/b&gt; ou &lt;b&gt;mailx&lt;/b&gt; permettent l'envoi de courrier &#195; &lt;br class='autobr' /&gt;
des utilisateurs qui ne sont pas n&#195;&#169;cessairement connect&#195;&#169;s. Ces courriers sont&lt;br class='autobr' /&gt;
stock&#195;&#169;s dans des fichiers &#194;&#171; bo&#195;&#174;te aux lettres&#194; &#187; associ&#195;&#169;s &#195; chaque&lt;br class='autobr' /&gt;
utilisateur.&lt;/p&gt;
&lt;p&gt;L&#226;&#8364;&#8482;arriv&#195;&#169;e de nouveaux courriers est signal&#195;&#169;e &#195; chaque connexion et, la&lt;br class='autobr' /&gt;
plupart du temps,&#195; intervalles r&#195;&#169;guliers lors des connexions actives.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&lt;/b&gt; &#8212;&gt; affiche le message de num&#195;&#169;ro n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;h&lt;/b&gt; &#8212;&gt; affiche les ent&#195;&#170;tes (headers) des&lt;br class='autobr' /&gt; messages.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;q&lt;/b&gt; &#8212;&gt; quit. ...&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;s&lt;/b&gt; fic1 &#8212;&gt; sauvegarde le message courant dans le&lt;br class='autobr' /&gt; fichier fic1&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;w&lt;/b&gt; fic1 &#8212;&gt; sauvegarde le message courant dans le&lt;br class='autobr' /&gt; fichier fic1&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;d&lt;/b&gt; 1&lt;b&gt;-&lt;/b&gt;8 &#8212;&gt; efface les messages de 1 &#195; 8&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;d *&lt;/b&gt; &#8212;&gt; efface tous les messages.&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;On pr&#195;&#169;f&#195;&#169;rera utiliser &lt;b&gt;mailx&lt;/b&gt;, qui est beaucoup plus&lt;br class='autobr' /&gt;
confortable d'utilisation.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;Exemple : &lt;/dt&gt;
&lt;/dl&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ mailx&lt;/dt&gt;&lt;dt&gt;1 &gt; Message in the bottle subject : SOS&lt;/dt&gt; &lt;dt&gt;2 &gt; Message from Johny subject : Coucou&lt;/dt&gt; &lt;dt&gt;$ mailx john [ user2 .... userN ]&lt;/dt&gt; &lt;dt&gt;Subject : Party&lt;/dt&gt; &lt;dt&gt;Don't forget the party this evening !&lt;/dt&gt;&lt;dt&gt;&lt;ctrl-d&gt;&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;L'option &lt;b&gt;-s&lt;/b&gt; permet de pr&#195;&#169;ciser directement le sujet du courrier :&lt;/p&gt;
&lt;p&gt;$ mailx &lt;b&gt;-s&lt;/b&gt;Party2 john&lt;/p&gt;
&lt;p&gt;Bring your own&lt;/p&gt;
&lt;p&gt;&lt;ctrl-d&gt;&lt;/p&gt;
&lt;p&gt;L'option &lt;b&gt;-f&lt;/b&gt; nomfic sp&#195;&#169;cifie le nom du fichier (contenant du courrier)&lt;br class='autobr' /&gt;
&#195; charger, en lieu et place de la bo&#195;&#174;te &#195; lettres.&lt;/p&gt;
&lt;p&gt;$ mailx -f /home/user1/Mail/monCourrier&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;h1&gt;&lt;font color=&#034;#00007F&#034;&gt;XII&lt;/font&gt;&lt;font COLOR=&#034;#00007f&#034;&gt;I. &lt;a NAME=&#034;_Toc379028588&#034;&gt;&lt;u&gt;Communication
entre utilisateurs&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;a NAME=&#034;a&#034;&gt;A. &lt;u&gt;Commande &lt;i&gt;news&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;news&lt;/b&gt; affiche les nouvelles du syst&#195;&#168;me (c'est &#195; dire les&lt;br class='autobr' /&gt;
contenus des fichiers ajout&#195;&#169;s depuis la derni&#195;&#168;re consultation dans le&lt;br class='autobr' /&gt;
r&#195;&#169;pertoire &lt;i&gt;/var /news&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &gt;&lt;br class='autobr' /&gt; &lt;i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt; $ news&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. &lt;u&gt;Commande &lt;i&gt;write&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;write nom_de_login [ ligne ]&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Cette commande permet de dialoguer avec un utilisateur connect&#195;&#169;. L'argument&lt;br class='autobr' /&gt;
optionnel &#194;&#171; ligne&#194; &#187; est utile si le destinataire se trouve connect&#195;&#169; sur&lt;br class='autobr' /&gt;
plusieurs terminaux simultan&#195;&#169;ment. Les textes des messages doivent &#195;&#170;tre&lt;br class='autobr' /&gt;
fournis sur l&#226;&#8364;&#8482;entr&#195;&#169;e standard de la commande.&lt;/p&gt;
&lt;p&gt;A l&#226;&#8364;&#8482;appel de la commande, le destinataire est averti de l'identit&#195;&#169; de&lt;br class='autobr' /&gt;
l'&#195;&#169;metteur.&lt;/p&gt;
&lt;p&gt;S'il souhaite r&#195;&#169;pondre, il doit invoquer &#195; son tour la commande et le&lt;br class='autobr' /&gt;
dialogue peut commencer.&lt;/p&gt;
&lt;p&gt;Chaque ligne valid&#195;&#169;e par &lt;i&gt;&lt;Return&gt;&lt;/i&gt; est affich&#195;&#169;e sur le terminal&lt;br class='autobr' /&gt;
de l&#226;&#8364;&#8482;interlocuteur, d&#226;&#8364;&#8482;o&#195;&#185; la n&#195;&#169;cessit&#195;&#169; d&#226;&#8364;&#8482;un protocole pour &#195;&#169;viter la&lt;br class='autobr' /&gt;
confusion des messages respectifs.&lt;/p&gt;
&lt;p&gt;La frappe du caract&#195;&#168;re &lt;i&gt;Ctrl d&lt;/i&gt; en d&#195;&#169;but de ligne met fin &#195; la&lt;br class='autobr' /&gt;
conversation.&lt;/p&gt;
&lt;p&gt;Si un utilisateur est connect&#195;&#169; sur plusieurs terminaux, on peut pr&#195;&#169;ciser&lt;br class='autobr' /&gt;
sur quel terminal envoyer le message en indiquant celui-ci apr&#195;&#168;s le nom&lt;br class='autobr' /&gt;
d'utilisateur.&lt;/p&gt;
&lt;p&gt;Si une des lignes du message commence par le caract&#195;&#168;re ! , elle sera alors&lt;br class='autobr' /&gt;
interpr&#195;&#169;t&#195;&#169;e par le shell.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ write betty tty02&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;hello betty&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;Ctrl-d&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. &lt;u&gt;La commande talk&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;talk nom_de_login [ ligne ]&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Cette commande permet &#195;&#169;galement de dialoguer avec un utilisateur connect&#195;&#169;&lt;br class='autobr' /&gt;
mais de fa&#195;&#167;on plus agr&#195;&#169;able puisque l&#226;&#8364;&#8482;&#195;&#169;cran est divis&#195;&#169; en deux parties (&lt;br class='autobr' /&gt;
textes &#195;&#169;mis et textes re&#195;&#167;us ).&lt;/p&gt;
&lt;p&gt;La frappe du caract&#195;&#168;re d&#226;&#8364;&#8482;interruption clavier met fin &#195; la conversation.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. &lt;u&gt;La commande wall :&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;/b&gt;
&lt;p&gt;La commande &lt;b&gt;wall&lt;/b&gt; permet d&#226;&#8364;&#8482;envoyer le message fourni sur son entr&#195;&#169;e&lt;br class='autobr' /&gt;
standard, vers tous les utilisateurs connect&#195;&#169;s.&lt;/p&gt;
&lt;p&gt;Cette commande n&#226;&#8364;&#8482;est pas toujours autoris&#195;&#169;e aux utilisateurs ordinaires.&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;e&#034;&gt;E. &lt;u&gt;Commande &lt;i&gt;mesg&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;mesg &lt;/b&gt;autorise/interdit aux autres utilisateurs les&lt;br class='autobr' /&gt; envois de messages vers votre terminal&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;La commande &lt;b&gt;mesg&lt;/b&gt; permet d&#226;&#8364;&#8482;autoriser ou non l&#226;&#8364;&#8482;arriv&#195;&#169;e de messages&lt;br class='autobr' /&gt;
via les commandes pr&#195;&#169;c&#195;&#169;dentes.&lt;/p&gt;
&lt;p&gt;Sans argument, la commande donne l'&#195;&#169;tat courant ( y(es) ou n(o) ) .&lt;/p&gt;
&lt;p&gt;Avec un argument ( y ou n ), elle positionne l'autorisation ou&lt;br class='autobr' /&gt;
l'interdiction.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;101&#034;&gt; &lt;tr&gt; &lt;td width=&#034;91&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;is n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mesg y&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;NB : &lt;/i&gt;Il est possible de v&#195;&#169;rifier l'&#195;&#169;tat (y ou n) d'un&lt;br class='autobr' /&gt;
terminal en tapant :&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;who -T&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le signe (+ ou -) indique si le terminal est accessible ou&lt;br class='autobr' /&gt;
non avec &lt;b&gt;write&lt;/b&gt;.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;f&#034;&gt;F. &lt;u&gt;Commandes &lt;i&gt;mail&lt;/i&gt; et &lt;i&gt;mailx&lt;/i&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;mail &amp; mailx&lt;/b&gt; envoi et r&#195;&#169;ception de courrier. Le&lt;br class='autobr' /&gt;
message sera stock&#195;&#169; par le syst&#195;&#168;me destinataire en attendant que l'utilisateur&lt;br class='autobr' /&gt;
le lise.&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Les commandes &lt;b&gt;mail&lt;/b&gt; ou &lt;b&gt;mailx&lt;/b&gt; permettent l'envoi de courrier &#195; &lt;br class='autobr' /&gt;
des utilisateurs qui ne sont pas n&#195;&#169;cessairement connect&#195;&#169;s. Ces courriers sont&lt;br class='autobr' /&gt;
stock&#195;&#169;s dans des fichiers &#194;&#171; bo&#195;&#174;te aux lettres&#194; &#187; associ&#195;&#169;s &#195; chaque&lt;br class='autobr' /&gt;
utilisateur.&lt;/p&gt;
&lt;p&gt;L&#226;&#8364;&#8482;arriv&#195;&#169;e de nouveaux courriers est signal&#195;&#169;e &#195; chaque connexion et, la&lt;br class='autobr' /&gt;
plupart du temps,&#195; intervalles r&#195;&#169;guliers lors des connexions actives.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&lt;/b&gt; &#8212;&gt; affiche le message de num&#195;&#169;ro n&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;h&lt;/b&gt; &#8212;&gt; affiche les ent&#195;&#170;tes (headers) des&lt;br class='autobr' /&gt; messages.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;q&lt;/b&gt; &#8212;&gt; quit. ...&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;s&lt;/b&gt; fic1 &#8212;&gt; sauvegarde le message courant dans le&lt;br class='autobr' /&gt; fichier fic1&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;w&lt;/b&gt; fic1 &#8212;&gt; sauvegarde le message courant dans le&lt;br class='autobr' /&gt; fichier fic1&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;d&lt;/b&gt; 1&lt;b&gt;-&lt;/b&gt;8 &#8212;&gt; efface les messages de 1 &#195; 8&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;d *&lt;/b&gt; &#8212;&gt; efface tous les messages.&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;On pr&#195;&#169;f&#195;&#169;rera utiliser &lt;b&gt;mailx&lt;/b&gt;, qui est beaucoup plus&lt;br class='autobr' /&gt;
confortable d'utilisation.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;Exemple : &lt;/dt&gt;
&lt;/dl&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ mailx&lt;/dt&gt;&lt;dt&gt;1 &gt; Message in the bottle subject : SOS&lt;/dt&gt; &lt;dt&gt;2 &gt; Message from Johny subject : Coucou&lt;/dt&gt; &lt;dt&gt;$ mailx john [ user2 .... userN ]&lt;/dt&gt; &lt;dt&gt;Subject : Party&lt;/dt&gt; &lt;dt&gt;Don't forget the party this evening !&lt;/dt&gt;&lt;dt&gt;&lt;ctrl-d&gt;&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;L'option &lt;b&gt;-s&lt;/b&gt; permet de pr&#195;&#169;ciser directement le sujet du courrier :&lt;/p&gt;
&lt;p&gt;$ mailx &lt;b&gt;-s&lt;/b&gt;Party2 john&lt;/p&gt;
&lt;p&gt;Bring your own&lt;/p&gt;
&lt;p&gt;&lt;ctrl-d&gt;&lt;/p&gt;
&lt;p&gt;L'option &lt;b&gt;-f&lt;/b&gt; nomfic sp&#195;&#169;cifie le nom du fichier (contenant du courrier)&lt;br class='autobr' /&gt;
&#195; charger, en lieu et place de la bo&#195;&#174;te &#195; lettres.&lt;/p&gt;
&lt;p&gt;$ mailx -f /home/user1/Mail/monCourrier&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Sauvegarde </title>
		<link>https://admin-sys.org/?sauvegarde-12</link>
		<guid isPermaLink="true">https://admin-sys.org/?sauvegarde-12</guid>
		<dc:date>2008-09-16T09:39:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;XII. Sauvegarde utilisateur &lt;br class='autobr' /&gt;
A. Introduction : &lt;br class='autobr' /&gt;
Une bande magn&#195;&#169;tique est un support (m&#195;&#169;dia) structur&#195;&#169; en blocs &#195; acc&#195;&#168;s s&#195;&#169;quentiel (et non direct comme pour les disques durs par exemple). Les donn&#195;&#169;es y sont simplement plac&#195;&#169;es (ou extraites) s&#195;&#169;quentiellement. &lt;br class='autobr' /&gt;
Pour utiliser une bande magn&#195;&#169;tique, on a donc besoin d'un fichier sp&#195;&#169;cial fonctionnant en mode caract&#195;&#168;re (type c). &lt;br class='autobr' /&gt;
Le fichier sp&#195;&#169;cial correspondant au lecteur de DAT est g&#195;&#169;n&#195;&#169;ralement : &lt;br class='autobr' /&gt;
/dev/rmt/0m sous HP-UX (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h1&gt;XII. &lt;u&gt;Sauvegarde utilisateur&lt;/u&gt;&lt;/h1&gt; &lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. &lt;u&gt;Introduction :&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Une bande magn&#195;&#169;tique est un support (m&#195;&#169;dia) structur&#195;&#169; en&lt;br class='autobr' /&gt;
blocs &#195; acc&#195;&#168;s s&#195;&#169;quentiel (et non direct comme pour les disques durs par&lt;br class='autobr' /&gt;
exemple). Les donn&#195;&#169;es y sont simplement plac&#195;&#169;es (ou extraites)&lt;br class='autobr' /&gt;
s&#195;&#169;quentiellement.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Pour utiliser une bande magn&#195;&#169;tique, on a donc besoin d'un&lt;br class='autobr' /&gt;
fichier sp&#195;&#169;cial fonctionnant en mode caract&#195;&#168;re (type c).&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le fichier sp&#195;&#169;cial correspondant au lecteur de DAT est&lt;br class='autobr' /&gt;
g&#195;&#169;n&#195;&#169;ralement :&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;/dev/rmt/0m sous HP-UX&lt;/p&gt;
&lt;/li&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;/dev/rm0 sous AIX&lt;/p&gt;
&lt;/li&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;/dev/.... sous SCO-UNIX&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;u&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Deux commandes sont standard sous UNIX :&lt;/u&gt; tar &amp; cpio .&lt;/p&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Elles permettent de cr&#195;&#169;er et de relire une archive sur une&lt;br class='autobr' /&gt;
bande magn&#195;&#169;tique (ce qui est aussi possible sur le file system).&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Une archive est un &#195;&#169;norme fichier d'un format tr&#195;&#168;s sp&#195;&#169;cial&lt;br class='autobr' /&gt;
qui contient :&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La liste de ce qui a &#195;&#169;t&#195;&#169; sauvegard&#195;&#169; (chemins d'acc&#195;&#168;s&lt;br class='autobr' /&gt; menant aux fichiers),&lt;/p&gt;
&lt;/li&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les contenus de tous les fichiers sauvegard&#195;&#169;s.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Attention :&lt;/p&gt;
&lt;p&gt;On ne peut r&#195;&#169;cup&#195;&#169;rer le contenu d'une archive qu'en employant la m&#195;&#170;me&lt;br class='autobr' /&gt;
commande que celle qui a &#195;&#169;t&#195;&#169; utilis&#195;&#169;e pour effectuer la sauvegarde.&lt;/p&gt;
&lt;p&gt;Ne pas confondre archivage et compression de donn&#195;&#169;es ; ce sont deux notions&lt;br class='autobr' /&gt;
ind&#195;&#169;pendantes.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La commande tar, la plus ancienne, d'emploi ais&#195;&#169;, est&lt;br class='autobr' /&gt;
notamment utilis&#195;&#169;e sur le r&#195;&#169;seau internet&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La commande cpio, plus complexe &#195; utiliser, permet&lt;br class='autobr' /&gt;
d'effectuer des sauvegardes partielles sur des crit&#195;&#168;res tr&#195;&#168;s fins. La&lt;br class='autobr' /&gt;
restauration est aussi plus ais&#195;&#169;e.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. &lt;u&gt;Commande tar&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;u&gt;Quelques caract&#195;&#169;ristiques&lt;/u&gt;&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;Commande d&#226;&#8364;&#8482;origine Berkeley&lt;/li&gt; &lt;li&gt;Traitement r&#195;&#169;cursif des r&#195;&#169;pertoires ( sauvegarde de toute la&lt;br class='autobr' /&gt;
sous-arborescence )&lt;/li&gt; &lt;li&gt;&#195;&#8240;crase le support de sauvegarde ( possibilit&#195;&#169; de cr&#195;&#169;er l&#226;&#8364;&#8482;archive sur un&lt;br class='autobr' /&gt;
fichier disque )&lt;/li&gt; &lt;li&gt;Commande de transfert ( bonne portabilit&#195;&#169; entre machines Unix )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Comportements par d&#195;&#169;faut en restauration ( modifiables par options )&lt;/p&gt;
&lt;p&gt;- Ecrasement des fichiers existants du disque dur&lt;/p&gt;
&lt;p&gt;- Restauration avec la date de sauvegarde et les propri&#195;&#169;taires et&lt;br class='autobr' /&gt;
permissions d&#226;&#8364;&#8482;origine&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;/p&gt;
&lt;p&gt;syntaxe :&lt;/u&gt; tar cl&#195;&#169; f fichier_sp&#195;&#169;cial [fichiers ou r&#195;&#169;pertoire]&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt;$ tar -cvf /dev/rmt/0m &lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; Cr&#195;&#169;e une archive &#195; partir des fichiers du r&#195;&#169;pertoire courant et des sous-r&#195;&#169;pertoires. Les chemins d'acc&#195;&#168;s m&#195;&#169;moris&#195;&#169;s le sont en relatif (.)&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;33%&#034;&gt;$ tar -rvf /dev/rmt/0m *.c &lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; Rajoute tous les fichiers .c &#195; la fin de l'archive existante.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt;$ tar -tvf /dev/rmt/0m&lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; affiche la Table des entr&#195;&#169;es de l'archive.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt;$ tar -xvf /dev/rmt/0m&lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; eXtrait les fichiers de l'archive.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt;$ tar -xvf /dev/rmt/0m &#034;/home/*&#034;&lt;/td&gt;&lt;td width=&#034;67%&#034;&gt; eXtrait l'arborescence situ&#195;&#169;e sous /home de l'archive.&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;
&lt;/font&gt;
&lt;p&gt;Si le dernier argument est un nom de fichier ou un masque tel que&lt;br class='autobr' /&gt;
&#034;*.c&#034; , la sauvegarde se fait alors sur un seul niveau dans&lt;br class='autobr' /&gt;
l'arborescence du file system.&lt;/p&gt;
&lt;p&gt;Si par contre on indique un nom de r&#195;&#169;pertoire en tant qu'objet &#195; &lt;br class='autobr' /&gt;
sauvegarder, la commande tar sauvegardera &#195;&#169;galement toute l&#226;&#8364;&#8482;arborescence se&lt;br class='autobr' /&gt;
trouvant sous le r&#195;&#169;pertoire pr&#195;&#169;cis&#195;&#169;.&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Autres options : &lt;/p&gt;
&lt;ul&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; u (Update) : les fichiers sont&lt;br class='autobr' /&gt; ajout&#195;&#169;s &#195; la fin de l'archive s'ils sont nouveaux ou modifi&#195;&#169;s.&lt;/p&gt;
&lt;/li&gt; &lt;li&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;r (Rajoute) : les fichiers sp&#195;&#169;cifi&#195;&#169;s sont&lt;br class='autobr' /&gt; ajout&#195;&#169;s &#195; la fin de l'archive.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Lors d'une restauration, si un fichier est d&#195;&#169;j&#195; &lt;br class='autobr' /&gt; pr&#195;&#169;sent sur le disque dur, il est &#195;&#169;cras&#195;&#169;.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Exemple&lt;br class='autobr' /&gt;
de sauvegarde des fichiers du r&#195;&#169;pertoire courant&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt;
&lt;p&gt;$ tar cvf /tmp/archive .&lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;a ./ 0 tape blocks&lt;/dt&gt; &lt;dt&gt;a ./.profile 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./.rhosts 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./.exrc 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./.mwmrc 4 tape blocks&lt;/dt&gt;&lt;dt&gt;a ./.xsession 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./.xresources 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./.sh_history 7 tape blocks&lt;/dt&gt; &lt;dt&gt;a ./rep/ 0 tape blocks&lt;/dt&gt; &lt;dt&gt;a ./rep/fic2 1 tape block&lt;/dt&gt; &lt;dt&gt;a ./rep/fic1 1 tape block&lt;/dt&gt;&lt;dt&gt;a ./main.c 3 tape blocks&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;On utilise, dans cet exemple, un fichier disque comme destination de la&lt;br class='autobr' /&gt;
sauvegarde. Dans la pratique, on utilisera le nom d&#226;&#8364;&#8482;un p&#195;&#169;riph&#195;&#169;rique ( fichier&lt;br class='autobr' /&gt;
sp&#195;&#169;cial ).&lt;/p&gt;
&lt;p&gt;On fait le choix d&#226;&#8364;&#8482;une sauvegarde en nom relatif, ce qui donne plus de&lt;br class='autobr' /&gt;
possibilit&#195;&#169;s en restauration puisque les fichiers sont recr&#195;&#169;&#195;&#169;s avec le nom&lt;br class='autobr' /&gt;
enregistr&#195;&#169; sur le support de sauvegarde.&lt;/p&gt;
&lt;p&gt;Liste du contenu de l&#226;&#8364;&#8482;archive&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt;
&lt;p&gt;$ tar tvf /tmp/archive&lt;/p&gt;
&lt;dl&gt; &lt;dt&gt;drwxr-xr-x1001/1000 0 Dec 18 16:51 1995 .&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x1001/1000 390 Oct 17 10:49 1995 ./.profile&lt;/dt&gt;&lt;dt&gt;-rwxr-xr-x1001/1000 187 Oct 16 18:52 1995 ./.rhosts&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212;1001/1000 38 Oct 16 18:51 1995 ./.exrc&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x1001/1000 1966 Jan 3 11:03 1995 ./.mwmrc&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x1001/1000 408 Sep 29 16:31 1995 ./.xsession&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x1001/1000 185 Jan 3 11:03 1995 ./.xresources&lt;/dt&gt; &lt;dt&gt;-rw-------1001/1000 3578 Dec 18 16:52 1995 ./.sh_history&lt;/dt&gt;&lt;dt&gt;drwxr-xr-x1001/1000 0 Dec 18 16:51 1995 ./rep&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212;1001/1000 75 Dec 18 14:32 1995 ./rep/fic2&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212;1001/1000 29 Dec 18 14:32 1995 ./rep/fic1&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212;1001/1000 1271 Dec 18 14:47 1995 ./main.c&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Restauration compl&#195;&#168;te&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ pwd #S&#226;&#8364;&#8482;assurer d&#226;&#8364;&#8482;&#195;&#170;tre au bon endroit&lt;/dt&gt;&lt;dt&gt;/home/stage1&lt;/dt&gt; &lt;dd&gt; &lt;/dd&gt; &lt;dt&gt;$ tar xvf /tmp/archive&lt;/dt&gt; &lt;dt&gt;x ., 0 bytes, 0 tape blocks&lt;/dt&gt; &lt;dt&gt;x ./.profile, 390 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./.rhosts, 187 bytes, 1 tape block&lt;/dt&gt;&lt;dt&gt;x ./.exrc, 38 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./.mwmrc, 1966 bytes, 4 tape blocks&lt;/dt&gt; &lt;dt&gt;x ./.xsession, 408 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./.xresources, 185 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./.sh_history, 3578 bytes, 7 tape blocks&lt;/dt&gt; &lt;dt&gt;x ./rep, 0 bytes, 0 tape blocks&lt;/dt&gt;&lt;dt&gt;x ./rep/fic2, 75 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./rep/fic1, 29 bytes, 1 tape block&lt;/dt&gt; &lt;dt&gt;x ./main.c, 1271 bytes, 3 tape blocks&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Restauration d&#226;&#8364;&#8482;un fichier individuel&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 14:47 main.c&lt;/dt&gt;&lt;dt&gt;$ $ rm main.c&lt;/dt&gt; &lt;dt&gt;$ tar xvf /tmp/archive main.c&lt;/dt&gt; &lt;dt&gt;UX:tar : INFO : 1 file not extracted&lt;/dt&gt; &lt;dt&gt;$ tar xvf /tmp/archive ./main.c #Donner le nom exact sur l&#226;&#8364;&#8482;archive&lt;/dt&gt; &lt;dt&gt;x ./main.c, 1271 bytes, 3 tape blocks&lt;/dt&gt;&lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 14:47 main.c&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. &lt;u&gt;Commande cpio&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;u&gt;Quelques caract&#195;&#169;ristiques&lt;/u&gt;&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;Commande d&#226;&#8364;&#8482;origine System V&lt;/li&gt; &lt;li&gt;Ecrase le support de sauvegarde ( possibilit&#195;&#169; de cr&#195;&#169;er l&#226;&#8364;&#8482;archive sur un&lt;br class='autobr' /&gt;
fichier disque )&lt;/li&gt;&lt;li&gt;N&#226;&#8364;&#8482;est pas une commande de transfert ( mauvaise portabilit&#195;&#169; entre machines&lt;br class='autobr' /&gt;
Unix )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Comportements par d&#195;&#169;faut en restauration ( modifiables par options )&lt;/p&gt;
&lt;p&gt;- Refus d&#226;&#8364;&#8482;&#195;&#169;crasement des fichiers existants du disque dur&lt;/p&gt;
&lt;p&gt;- Restauration avec la date courante et propri&#195;&#169;taires et permissions du&lt;br class='autobr' /&gt;
login courant&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On doit alimenter l&#226;&#8364;&#8482;entr&#195;&#169;e standard de la commande avec des noms de&lt;br class='autobr' /&gt;
fichiers,la commande &#194;&#171; find&#194; &#187; est souvent la plus appropri&#195;&#169;e.&lt;/p&gt;
&lt;p&gt;La commande fabrique une archive r&#195;&#169;sultat qu&#226;&#8364;&#8482;elle &#195;&#169;crit sur sa sortie&lt;br class='autobr' /&gt;
standard.&lt;/p&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;img src='https://admin-sys.org/base/cpio.gif' width='168' height='411' &gt;
&lt;p&gt; &lt;u&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La commande cpio comporte trois options fondamantales (et&lt;br class='autobr' /&gt; exclusives) :&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-i Input : Restitution des fichiers sauvegard&#195;&#169;s&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-o Output : Sauvegarde sur bande magn&#195;&#169;tique&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;-p Restitution imm&#195;&#169;diate vers un autre endroit du file&lt;br class='autobr' /&gt; system (Copie de branches)&lt;/p&gt;
&lt;p&gt; &lt;u&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Autres options :&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;/font&gt;
&lt;center&gt;
&lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;2&#034; CELLPADDING=&#034;4&#034; WIDTH=&#034;552&#034;&gt;&lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;-o&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;-I&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;Fonctionnalit&#195;&#169; de l'option&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-c&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-c&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Ecrit un en-t&#195;&#170;te ASCII en d&#195;&#169;but d'archive ( si utilis&#195;&#169; avec -o ,&lt;br class='autobr' /&gt; doit &#195;&#170;tre utilis&#195;&#169; avec -i)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-x&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-x&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Permet de manipuler les fichiers sp&#195;&#169;ciaux (/dev/...)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-u&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Restitution inconditionnelle (Si le fichier existe d&#195;&#169;j&#195; il l'&#195;&#169;crase)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-m&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;maintient les infos de dates&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-d&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Recr&#195;&#169;er les structures des (sous)r&#195;&#169;pertoires si n&#195;&#169;cessaire&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt;
&lt;p&gt;-v&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;8%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;-v&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;86%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Affiche la liste des fichiers copi&#195;&#169;s&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;/center&gt;&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;$ find . -print | cpio -ocx &gt; /dev/rmt/0m&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; Cr&#195;&#169;e l'archive (Output)&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;$ cpio -icudmx &lt; /dev/rmt/0m&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; Restitue l'archive (Input)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;$ cpio -ict &lt; /dev/rmt/0m &lt;/td&gt; &lt;td width=&#034;60%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; Affiche la Table des mati&#195;&#168;res&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;$ cpio -icudm &#034;*.c&#034; &lt; /dev/rmt/0m&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; Extrait des fichiers de l'archive&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40%&#034;&gt;$ find . -print | cpio -pvd /users/newU&lt;/td&gt; &lt;td width=&#034;60%&#034;&gt; &lt;p&gt; Recopie&lt;br class='autobr' /&gt; d'une branche, avec conservation des attributs.&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;&lt;/table&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Lors d'une restauration, si un fichier existe d&#195;&#169;j&#195; cpio&lt;br class='autobr' /&gt; conserve le plus r&#195;&#169;cent.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;Exemple de sauvegarde des fichiers du r&#195;&#169;pertoire courant&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt;&lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ find . -print | cpio -ov &gt; /tmp/archive&lt;/dt&gt; &lt;dt&gt;.&lt;/dt&gt; &lt;dt&gt;.profile&lt;/dt&gt; &lt;dt&gt;.rhosts&lt;/dt&gt;&lt;dt&gt;.exrc&lt;/dt&gt; &lt;dt&gt;.mwmrc&lt;/dt&gt; &lt;dt&gt;.xsession&lt;/dt&gt; &lt;dt&gt;.xresources&lt;/dt&gt; &lt;dt&gt;.sh_history&lt;/dt&gt; &lt;dt&gt;main.c&lt;/dt&gt;&lt;dt&gt;rep&lt;/dt&gt; &lt;dt&gt;rep/fic2&lt;/dt&gt; &lt;dt&gt;rep/fic1&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Liste du contenu de l&#226;&#8364;&#8482;archive&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt;&lt;dt&gt;$ cpio -itv &lt; /tmp/archive&lt;/dt&gt; &lt;dt&gt;drwxr-xr-x 3 stage1 stage 0 Dec 18 16:54 1995, .&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x 1 stage1 stage 390 Oct 17 10:49 1995, .profile&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x 1 stage1 stage 187 Oct 16 18:52 1995, .rhosts&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 38 Oct 16 18:51 1995, .exrc&lt;/dt&gt;&lt;dt&gt;-rwxr-xr-x 1 stage1 stage 1966 Jan 3 11:03 1995, .mwmrc&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x 1 stage1 stage 408 Sep 29 16:31 1995, .xsession&lt;/dt&gt; &lt;dt&gt;-rwxr-xr-x 1 stage1 stage 185 Jan 3 11:03 1995, .xresources&lt;/dt&gt; &lt;dt&gt;-rw------- 1 stage1 stage 3578 Dec 18 16:52 1995, .sh_history&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 14:47 1995, main.c&lt;/dt&gt; &lt;dt&gt;drwxr-xr-x 2 stage1 stage 0 Dec 18 16:53 1995, rep&lt;/dt&gt;&lt;dt&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 75 Dec 18 14:32 1995, rep/fic2&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 29 Dec 18 14:32 1995, rep/fic1&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;u&gt;Restauration d&#226;&#8364;&#8482;un fichier individuel&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 14:47 main.c&lt;/dt&gt; &lt;dt&gt;$ cpio -iv &lt; /tmp/archive main.c&lt;/dt&gt;&lt;dt&gt;Existing &#034;main.c&#034; same age or newer&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ rm main.c&lt;/dt&gt; &lt;dt&gt;$ cpio -iv &lt; /tmp/archive main.c&lt;/dt&gt;&lt;dt&gt;main.c&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 17:09 main.c&lt;/dt&gt; &lt;/dl&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;Restauration d&#226;&#8364;&#8482;un fichier individuel en for&#195;&#167;ant l&#226;&#8364;&#8482;&#195;&#169;crasement du fichier&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 17:09 main.c&lt;/dt&gt;&lt;dt&gt;$ cpio -iuv &lt; /tmp/archive main.c&lt;/dt&gt; &lt;dt&gt;main.c&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;$ ls -l main.c&lt;/dt&gt; &lt;dt&gt;-rwxr&#8212;r&#8212; 1 stage1 stage 1271 Dec 18 17:22 main.c&lt;/dt&gt;&lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Restauration d&#226;&#8364;&#8482;un fichier individuel n&#195;&#169;cessitant de recr&#195;&#169;er un&lt;br class='autobr' /&gt;
sous-r&#195;&#169;pertoire&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt;&lt;td width=&#034;100%&#034;&gt; &lt;dl&gt; &lt;dt&gt;$ rm -r rep&lt;/dt&gt; &lt;dt&gt;$ cpio -iv &lt; /tmp/archive rep/fic1&lt;/dt&gt; &lt;dt&gt;cpio : ERROR : Missing -d option.&lt;/dt&gt; &lt;dt&gt;cpio : ERROR : Cannot create directory for &#034;rep/fic1&#034; : No such file
or directory&lt;/dt&gt;&lt;dt&gt;48 blocks&lt;/dt&gt; &lt;dt&gt;2 errors&lt;/dt&gt; &lt;dt&gt;$ cpio -idv &lt; /tmp/archive rep/fic1&lt;/dt&gt; &lt;dt&gt;rep/fic1&lt;/dt&gt; &lt;dt&gt;48 blocks&lt;/dt&gt;&lt;dt&gt;$&lt;/dt&gt; &lt;/dl&gt; &lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;font FACE=&#034;Courier New&#034; SIZE=&#034;2&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. &lt;u&gt;Commande dd&lt;/u&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il s&#226;&#8364;&#8482;agit d&#226;&#8364;&#8482;une commande de copie physique avec &#195;&#169;ventuelle conversion de&lt;br class='autobr' /&gt;
formats. La commande peut traiter des fichiers sp&#195;&#169;ciaux, permettant, par exemple, la&lt;br class='autobr' /&gt;
duplication de supports ( disquettes, bandes ... ) ou le positionnement &#195; un endroit pr&#195;&#169;cis ( sauts&lt;br class='autobr' /&gt;
de blocs ou de fichiers ... ).&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;Syntaxes simples&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;dd if=fic1 of=fic2 conv=mode&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;dd &lt; fic1 &gt; fic2 conv=mode&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Quelques conversions possibles&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;424&#034;&gt; &lt;tr&gt; &lt;td width=&#034;90&#034;&gt;conv=swab&lt;/td&gt; &lt;td width=&#034;318&#034;&gt;
&lt;p&gt; Permutation des paires d&#226;&#8364;&#8482;octets&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;90&#034;&gt;conv=ascii&lt;/td&gt; &lt;td width=&#034;318&#034;&gt;
&lt;p&gt; EBCDIC -&gt; ASCII&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td width=&#034;90&#034;&gt;conv=ebcdic&lt;/td&gt; &lt;td width=&#034;318&#034;&gt;
&lt;p&gt; ASCII -&gt; EBCDIC&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;90&#034;&gt;conv=ucase&lt;/td&gt;&lt;td width=&#034;318&#034;&gt;
&lt;p&gt; minuscules -&gt; MAJUSCULES&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;90&#034;&gt;conv=lcase&lt;/td&gt; &lt;td width=&#034;318&#034;&gt;
&lt;p&gt; MAJUSCULES -&gt; minuscules&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;Exemples d&#226;&#8364;&#8482;utilisation&lt;/u&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt;&lt;dl&gt; &lt;dt&gt;$ dd &lt; /dev/fd0 &gt; /tmp/manip Copie physique de disquette&lt;/dt&gt; &lt;dt&gt;2880+0 records in&lt;/dt&gt; &lt;dt&gt;2880+0 records out&lt;/dt&gt; &lt;dt&gt;$ dd &lt; /tmp/manip &gt; /dev/fd0 Changement de disquette et duplication&lt;/dt&gt;&lt;dt&gt;2880+0 records in&lt;/dt&gt; &lt;dt&gt;2880+0 records out&lt;/dt&gt; &lt;dt&gt;$ file fic1&lt;/dt&gt; &lt;dt&gt;fic1 : ascii text&lt;/dt&gt; &lt;dt&gt;$ dd if=fic1 of=fic2 conv=ebcdic&lt;/dt&gt; &lt;dt&gt;5+1 records in&lt;/dt&gt;&lt;dt&gt;5+1 records out&lt;/dt&gt; &lt;dt&gt;$ file fic2&lt;/dt&gt; &lt;dt&gt;fic2 : data or International Language text&lt;/dt&gt; &lt;dt&gt;$&lt;/dt&gt; &lt;dt&gt;$ ls -l fic*&lt;/dt&gt; &lt;dt&gt;-rw-r&#8212;r&#8212; 1 root system 2808 Jan 3 11:09 fic1&lt;/dt&gt;&lt;dt&gt;-rw-r&#8212;r&#8212; 1 root system 2808 Jan 3 11:09 fic2&lt;/dt&gt; &lt;dt&gt;$ ls -l fic* | dd conv=ucase&lt;/dt&gt; &lt;dt&gt;-RW-R&#8212;R&#8212; 1 ROOT SYSTEM 2808 JAN 3 11:09 FIC1&lt;/dt&gt; &lt;dt&gt;-RW-R&#8212;R&#8212; 1 ROOT SYSTEM 2808 JAN 3 11:09 FIC2&lt;/dt&gt; &lt;dt&gt;0+1 records in&lt;/dt&gt; &lt;dt&gt;0+1 records out&lt;/dt&gt;&lt;dt&gt;$ ls -l fic* | dd conv=swab&lt;/dt&gt; &lt;dt&gt;r&#8212;w-rr--- 1 r oo t ystsme 8280J na 3110 : 9if1c-&lt;/dt&gt; &lt;dt&gt;wrr----r - 1orto s syet m 2 08 8aJ n3 1 :190f ci&lt;/dt&gt; &lt;dt&gt;20+1 records in&lt;/dt&gt; &lt;dt&gt;0+1 records out&lt;/dt&gt; &lt;/dl&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Planification </title>
		<link>https://admin-sys.org/?planification</link>
		<guid isPermaLink="true">https://admin-sys.org/?planification</guid>
		<dc:date>2008-09-16T09:38:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;XI. Planifications des commandes : &lt;br class='autobr' /&gt; A. commande crontab &lt;br class='autobr' /&gt;
crontab planifie des commandes &#195; ex&#195;&#169;cuter r&#195;&#169;guli&#195;&#168;rement &lt;br class='autobr' /&gt;
Il est possible de programmer des commandes que le syst&#195;&#168;me lancera au moment demand&#195;&#169;, sans que l'utilisateur n'ai besoin d'&#195;&#170;tre connect&#195;&#169;. Il est n&#195;&#169;cessaire de proc&#195;&#169;der en plusieurs &#195;&#169;tapes (si l'utilisateur est autoris&#195;&#169; &#195; l'utiliser) : &lt;br class='autobr' /&gt;
Les cinq premiers champs sont num&#195;&#169;riques et d&#195;&#169;crivent les dates et heures souhait&#195;&#169;es pour le lancement des commandes. &lt;br class='autobr' /&gt;
&#8211; (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;font SIZE=&#034;3&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;h1&gt;XI. Planifications des commandes :&lt;/h1&gt;
&lt;font SIZE=&#034;3&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. commande crontab&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;crontab&lt;/b&gt; planifie des commandes &#195; ex&#195;&#169;cuter&lt;br class='autobr' /&gt; r&#195;&#169;guli&#195;&#168;rement&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Il est possible de programmer des commandes que le syst&#195;&#168;me lancera au moment&lt;br class='autobr' /&gt;
demand&#195;&#169;, sans que l'utilisateur n'ai besoin d'&#195;&#170;tre connect&#195;&#169;. Il est&lt;br class='autobr' /&gt;
n&#195;&#169;cessaire de proc&#195;&#169;der en plusieurs &#195;&#169;tapes (si l'utilisateur est autoris&#195;&#169; &#195; &lt;br class='autobr' /&gt;
l'utiliser) :&lt;/p&gt;
&lt;p&gt;Les &lt;b&gt;cinq&lt;/b&gt; premiers champs sont &lt;b&gt;num&#195;&#169;riques&lt;/b&gt; et d&#195;&#169;crivent les&lt;br class='autobr' /&gt;
dates et heures souhait&#195;&#169;es pour le lancement des commandes.&lt;/p&gt;
&lt;p&gt;-1) Minutes ( 0 &#195; 59 )&lt;/p&gt;
&lt;p&gt;-2) Heures ( 0 &#195; 23 )&lt;/p&gt;
&lt;p&gt;-3) Jours du mois ( 1 &#195; 31 )&lt;/p&gt;
&lt;p&gt;-4) Mois ( 1 &#195; 12 )&lt;/p&gt;
&lt;p&gt;-5) Jours de la semaine ( 0 &#195; 6, avec 0 = Dimanche , 6 = Samedi )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Conventions de notation&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;*&lt;/b&gt; Toutes les valeurs possibles&lt;/p&gt;
&lt;p&gt;&lt;b&gt;, &lt;/b&gt;( virgule ) Liste de valeurs&lt;/p&gt;
&lt;p&gt;&lt;b&gt;-&lt;/b&gt; ( signe moins ) Intervalle de valeurs&lt;/p&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;1&#194;&#176;) Ecrire une table de &lt;i&gt;planification&lt;/i&gt; au&lt;br class='autobr' /&gt; format suivant (fichier texte &#195; &#195;&#169;diter avec vi) :&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;# Minutes Hour MonthDay Month WeekDay Commande&lt;/p&gt;
&lt;p&gt;# 0-&gt;59 0-&gt;23 1-&gt;31 1-&gt;12 0(sunday)-&gt;6 script unix&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;0 19 * * 5 /users/jean/sauvegarde&lt;/p&gt;
&lt;p&gt;30 12 * * 1-5 /users/gourmand/messageDejeuner&lt;/p&gt;
&lt;p&gt;45 9 1 4 * /users/farceur/poissonAvril&lt;/p&gt;
&lt;p&gt;15 10,16 * * 1-5 /users/jean/messagePause&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;3&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;br class='autobr' /&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le caract&#195;&#168;re &lt;b&gt;&#034;*&#034;&lt;/b&gt; correspond &#195; &lt;br class='autobr' /&gt; &#034;n'importe quel&#034; ou &#034;tous les&#034; ...&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;NB :&lt;/i&gt; les scripts qui servent &#195; lancer des&lt;br class='autobr' /&gt; commandes unix doivent &#195;&#170;tre soignement &#195;&#169;crits et test&#195;&#169;s.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;2&#194;&#176;) Enregistrer les planifications en utilisant la&lt;br class='autobr' /&gt; commande &lt;b&gt;crontab&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ crontab fichier ajoute les planifications stock&#195;&#169;es&lt;br class='autobr' /&gt; dans le fichier&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ crontab -r suppression des planifications de&lt;br class='autobr' /&gt; l'utilisateur que vous &#195;&#170;tes&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ crontab -l liste vos planifications&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les commandes sont ex&#195;&#169;cut&#195;&#169;es par d&#195;&#169;faut dans le shell &lt;b&gt;/usr/bin/sh&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt; &lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ crontab -l &lt;i&gt;&gt;&gt; &lt;/i&gt;planification&lt;br class='autobr' /&gt; &lt;i&gt;ajoute les anciennes planifications &#195; votre table.&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ crontab planification&lt;i&gt; enregistre&lt;br class='autobr' /&gt; la nouvelle table , l'ancienne est &#195;&#169;cras&#195;&#169;e.&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les autorisations/interdictions relatives &#195; &lt;br class='autobr' /&gt; l'utilisation de crontab sont plac&#195;&#169;es dans les fichiers &lt;i&gt;/usr/lib/cron/cron.allow&lt;/i&gt;&lt;br class='autobr' /&gt; et &lt;i&gt;/usr/lib/cron/cron.deny&lt;/i&gt;. Ces fichiers sont mis &#195; jour par le&lt;br class='autobr' /&gt; Super Utilisateur ( voir &lt;i&gt;man crontab&lt;/i&gt; pour les d&#195;&#169;tails ).&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le d&#195;&#169;mon (processus syst&#195;&#168;me) &lt;b&gt;crond&lt;/b&gt; g&#195;&#168;re les&lt;br class='autobr' /&gt; planifications enregistr&#195;&#169;es , il utilise des fichiers &#034;cron&#034; du&lt;br class='autobr' /&gt; nom des utilisateurs qu'il place dans le r&#195;&#169;pertoire /usr/spool/cron/crontabs.&lt;/p&gt;
&lt;p&gt;Le d&#195;&#169;mon &lt;b&gt;crond&lt;/b&gt; envoie un mail &#195; l&#226;&#8364;&#8482;utilisateur lors de la&lt;br class='autobr' /&gt; terminaison d&#226;&#8364;&#8482;une t&#195;&#162;che, si celle-ci a &#195;&#169;crit sur l'une de ses sorties.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. La commande at&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt;at&lt;/b&gt; [-f script] [-m] time [ date ] [+ increment]&lt;/p&gt;
&lt;p&gt;at -l [job...]&lt;/p&gt;
&lt;p&gt;at -r job...&lt;/p&gt;
&lt;p&gt;Cette commande permet de demander l'ex&#195;&#169;cution de commandes en diff&#195;&#169;r&#195;&#169; (&lt;br class='autobr' /&gt;
g&#195;&#169;r&#195;&#169;es par &#194;&#171; cron&#194; &#187; ). Il faut fournir les &lt;b&gt;commandes sur l&#226;&#8364;&#8482;entr&#195;&#169;e&lt;br class='autobr' /&gt;
standard&lt;/b&gt; de &#194;&#171; at&#194; &#187;. Un fichier contenant la requ&#195;&#170;te est copi&#195;&#169; vers le r&#195;&#169;pertoire &lt;b&gt;/var/spool/cron/atjobs&lt;br class='autobr' /&gt;
&lt;/b&gt;. Les processus seront ex&#195;&#169;cut&#195;&#169;s avec les droits du login courant.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Options&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;354&#034;&gt; &lt;tr&gt;&lt;td width=&#034;68&#034;&gt;
&lt;i&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; f script
&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;270&#034;&gt;
&lt;p&gt; Commandes pr&#195;&#169;par&#195;&#169;es dans un fichier&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td width=&#034;68&#034;&gt;-m &lt;/td&gt; &lt;td width=&#034;270&#034;&gt;
&lt;p&gt; Message par &#194;&#171; mail&#194; &#187; en fin de traitement&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;68&#034;&gt;-l &lt;/td&gt;&lt;td width=&#034;270&#034;&gt;
&lt;p&gt; Liste des travaux en attente&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;68&#034;&gt;-r&lt;/td&gt; &lt;td width=&#034;270&#034;&gt;
&lt;p&gt; Annulation de travaux&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;L'argument &lt;b&gt;time&lt;/b&gt; indique l'heure &#195; laquelle doit &#195;&#170;tre lanc&#195;&#169;e la&lt;br class='autobr' /&gt;
commande.Il peut s'exprimer de plusieurs fa&#195;&#167;ons :&lt;/p&gt;
&lt;p&gt;- Une heure sur 1 ou 2 chiffres&lt;/p&gt;
&lt;p&gt;- Heure et minutes sur 4 chiffres&lt;/p&gt;
&lt;p&gt;- Heure et minutes sous la forme HH:MM&lt;/p&gt;
&lt;p&gt;- Une des trois formes ci-dessus avec les suffixes &lt;i&gt;am&lt;/i&gt; ou &lt;i&gt;pm&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;- Un des mots cl&#195;&#169;s : &lt;i&gt;now&lt;/i&gt; , &lt;i&gt;midnight&lt;/i&gt; , &lt;i&gt;next&lt;/i&gt; ou &lt;i&gt;noon&lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;Le deuxi&#195;&#168;me argument optionnel &lt;b&gt;date&lt;/b&gt; peut &#195;&#170;tre utilis&#195;&#169; pour&lt;br class='autobr' /&gt;
sp&#195;&#169;cifier un mois, un jour de la semaine, une ann&#195;&#169;e ...&lt;/p&gt;
&lt;p&gt;Les mots cl&#195;&#169;s &lt;i&gt;today&lt;/i&gt; et t&lt;i&gt;omorrow&lt;/i&gt; sont reconnus. &lt;/p&gt;
&lt;p&gt;Le troisi&#195;&#168;me argument &lt;b&gt;incr&#195;&#169;ment&lt;/b&gt; est un nombre suivi d'un des mots&lt;br class='autobr' /&gt;
cl&#195;&#169;s :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;minutes hours days weeks months ou years&lt;/i&gt; .&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;br class='autobr' /&gt; &lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple&lt;/i&gt; : &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt;&lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ &lt;b&gt;at&lt;/b&gt; 15:30&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;echo &#034;ok&#034;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;mailx -s&#034;essai&#034; userX &lt; /tmp/message&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;^D&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les utilisateurs autoris&#195;&#169;s/non autoris&#195;&#169;s &#195; utiliser &lt;b&gt;at&lt;/b&gt;&lt;br class='autobr' /&gt;
sont g&#195;&#169;r&#195;&#169;s par le root, ind&#195;&#169;pendamment du cron.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Un utilisateur peut sp&#195;&#169;cifier plusieurs &#034;jobs&#034;&lt;br class='autobr' /&gt;
(ensemble de commandes).&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Filtres </title>
		<link>https://admin-sys.org/?filtres</link>
		<guid isPermaLink="true">https://admin-sys.org/?filtres</guid>
		<dc:date>2008-09-16T09:37:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;X. Commandes et filtres &lt;br class='autobr' /&gt; A. Introduction &lt;br class='autobr' /&gt;
Un filtre est une commande qui lit des informations sur l'entr&#195;&#169;e standard, les traite par ligne, puis qui affiche ses r&#195;&#169;sultats sur la sortie standard : &lt;br class='autobr' /&gt;
En aucun cas le contenu du fichier d'origine n'est modifi&#195;&#169; ! &lt;br class='autobr' /&gt;
Nous connaissons d&#195;&#169;j&#195; des filtres : cat, more. &lt;br class='autobr' /&gt;
Nous allons &#195;&#169;tudi&#195;&#169;s quelques autres, la plupart en partie seulement : n'h&#195;&#169;sitez pas &#195; consulter la man page associ&#195;&#169;e. &lt;br class='autobr' /&gt; B. les commandes head et tail (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt; &lt;/p&gt; &lt;h1&gt;X. Commandes et filtres&lt;/h1&gt; &lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. Introduction&lt;/a&gt;&lt;/h2&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Un filtre est une commande qui lit des informations sur l'entr&#195;&#169;e standard, les traite par ligne, puis qui affiche ses r&#195;&#169;sultats sur la sortie standard :&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;img border=&#034;0&#034; src='https://admin-sys.org/base/pipe.gif' width='79' height='312' &gt;&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;i&gt; &lt;p ALIGN=&#034;left&#034;&gt;En aucun cas le contenu du fichier d'origine n'est modifi&#195;&#169; !&lt;/p&gt; &lt;p ALIGN=&#034;left&#034;&gt;&lt;/i&gt;Nous connaissons d&#195;&#169;j&#195; des filtres : &lt;b&gt;cat&lt;/b&gt;,&lt;b&gt; more&lt;/b&gt;.&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Nous allons &#195;&#169;tudi&#195;&#169;s quelques autres, la plupart en partie seulement : n'h&#195;&#169;sitez pas &#195; consulter la &lt;i&gt;man page&lt;/i&gt; associ&#195;&#169;e.&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. les commandes head et tail&lt;/a&gt;&lt;/h2&gt; &lt;b&gt; &lt;table border=&#034;1&#034; width=&#034;425&#034;&gt; &lt;tr&gt; &lt;td width=&#034;83&#034;&gt;&lt;b&gt;head &lt;/b&gt;&lt;i&gt;-N&lt;/i&gt; fic&lt;/td&gt; &lt;td width=&#034;326&#034;&gt;&lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/b&gt; affiche les &lt;i&gt;N&lt;/i&gt; premi&#195;&#168;res lignes de &lt;i&gt;fic&lt;/i&gt;.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;83&#034;&gt;&lt;b&gt;tail&lt;/b&gt; &lt;i&gt;-N&lt;/i&gt; fic&lt;/td&gt; &lt;td width=&#034;326&#034;&gt;&lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/b&gt; affiche les &lt;i&gt;N&lt;/i&gt; derni&#195;&#168;res lignes de &lt;i&gt;fic&lt;/i&gt;.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;83&#034;&gt;&lt;b&gt;tail&lt;/b&gt; +&lt;i&gt;N&lt;/i&gt; fic&lt;/td&gt; &lt;td width=&#034;326&#034;&gt;&lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/b&gt; affiche de la ligne &lt;i&gt;N&lt;/i&gt; &#195; la fin de &lt;i&gt;fic&lt;/i&gt;.&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Par d&#195;&#169;faut, &lt;i&gt;N&lt;/i&gt; vaut 10.&lt;/p&gt; &lt;b&gt;&lt;i&gt;&lt;p&gt; &lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. La commandes wc&lt;/a&gt;&lt;/h2&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;wc &lt;/i&gt;&lt;/b&gt;&lt;i&gt;Compter les lignes, mots et caract&#195;&#168;res d&#226;&#8364;&#8482;un fichier&lt;/p&gt; &lt;p&gt;wc [ -lwc ] fichier&lt;/i&gt;&lt;/p&gt; &lt;p&gt;-l nombre de lignes&lt;/p&gt; &lt;p&gt;-w nombre de mots&lt;/p&gt; &lt;p&gt;-c nombre de caract&#195;&#168;res&lt;/p&gt; &lt;p&gt;&lt;i&gt;exemple:&lt;/i&gt;&lt;/p&gt; &lt;table border=&#034;1&#034; width=&#034;174&#034;&gt; &lt;tr&gt; &lt;td width=&#034;164&#034;&gt; &lt;p&gt;$ &lt;i&gt;wc fic&lt;/p&gt; &lt;/i&gt; &lt;p&gt;45 440 3053 fic&lt;/p&gt; &lt;p&gt;$ &lt;i&gt;wc -l fic&lt;/p&gt; &lt;/i&gt; &lt;p&gt;45 fic&lt;/p&gt; &lt;p&gt;$ &lt;i&gt;wc -cw fic&lt;/p&gt; &lt;/i&gt; &lt;p&gt;3053 440 fic&lt;/p&gt; &lt;p&gt;$ &lt;i&gt;wc toto tutu titi&lt;/p&gt; &lt;/i&gt; &lt;p&gt;1 6 29 toto&lt;/p&gt; &lt;p&gt;46 448 3105 tutu&lt;/p&gt; &lt;p&gt;40 462 1773 titi&lt;/p&gt; &lt;p&gt;87 916 4907 total&lt;/p&gt; &lt;p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. La commande find&lt;/a&gt; &lt;/h2&gt; &lt;p&gt;Elle permet la recherche de fichiers, suivant de multiples crit&#195;&#168;res, &#195; partir d&#226;&#8364;&#8482;un (ou plusieurs) r&#195;&#169;pertoire(s). La recherche a lieu dans toute la sous-arborescence. Des notations compl&#195;&#169;mentaires permettent d&#226;&#8364;&#8482;effectuer des recherches compos&#195;&#169;es ( ET , OU ).&lt;/p&gt; &lt;i&gt; &lt;p&gt;&lt;b&gt;find r&#195;&#169;pertoire options actions&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Quelques options&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;621&#034;&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-name fichier&lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt; Recherche sur le nom ( prot&#195;&#169;ger les caract&#195;&#168;res sp&#195;&#169;ciaux vis &#195; vis du shell )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-perm mode&lt;/td&gt; &lt;td width=&#034;460&#034;&gt; Recherche sur les permissions ( masque en octal )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-newer fichier&lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt; Recherche des fichiers plus r&#195;&#169;cents qu&#226;&#8364;&#8482;un fichier donn&#195;&#169;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-user login&lt;/td&gt; &lt;td width=&#034;460&#034;&gt; Recherche sur le propri&#195;&#169;taire&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-mtime +n&lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt;Fichiers modifi&#195;&#169;s depuis plus de n jours&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-mtime -n&lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt; Fichiers modifi&#195;&#169;s depuis moins de n jours&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-atime +n&lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt; Fichiers consult&#195;&#169;s depuis plus de n jours&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt;-atime -n &lt;/td&gt; &lt;td width=&#034;460&#034;&gt;&lt;p&gt; Fichiers consult&#195;&#169;s depuis moins de n jours&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;145&#034;&gt; &lt;p align=&#034;center&#034;&gt;&lt;b&gt;etc ...&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;460&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;&lt;b&gt;Actions ( exclusives )&lt;/b&gt;&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;608&#034;&gt; &lt;tr&gt; &lt;td width=&#034;75&#034;&gt;&lt;i&gt;-print&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;517&#034;&gt; &lt;p&gt; Afficher les r&#195;&#169;sultats&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;75&#034;&gt;&lt;i&gt;-exec&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;517&#034;&gt; &lt;p&gt; Lancer une commande pour chaque fichier trouv&#195;&#169;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;75&#034;&gt;&lt;i&gt;-ok&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;517&#034;&gt; &lt;p&gt; Lancer une commande pour chaque fichier trouv&#195;&#169;, apr&#195;&#168;s demande de confirmation&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt; &lt;p&gt;Exemples de manipulation de la commande find&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find . -name .??*rc -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;UX:find: ERROR: Illegal option -- .mwmrc&lt;/p&gt; &lt;p&gt;UX:find: TO FIX: Usage: find path-list predicate-list&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find . -name '.??*rc' -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;./.exrc&lt;/p&gt; &lt;p&gt;./.mwmrc&lt;/p&gt; &lt;p&gt;./.cshrc&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find /home -user stage1 -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;/home/stage1&lt;/p&gt; &lt;p&gt;/home/stage1/.profile&lt;/p&gt; &lt;p&gt;/home/stage1/.rhosts&lt;/p&gt; &lt;p&gt;/home/stage1/.exrc&lt;/p&gt; &lt;p&gt;/home/stage1/.mwmrc&lt;/p&gt; &lt;p&gt;/home/stage1/.xsession&lt;/p&gt; &lt;p&gt;/home/stage1/.sh_history&lt;/p&gt; &lt;p&gt;/home/stage1/toto&lt;/p&gt; &lt;p&gt;/home/stage1/tutu&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/usr: Permission denied&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/etc: Permission denied&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/dev: Permission denied&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;i&gt; &lt;p&gt;Exemples de manipulation de la commande find ( suite )&lt;/p&gt; &lt;/i&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find /home -user stage1 -name '.??*rc' -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;/home/stage1/.exrc&lt;/p&gt; &lt;p&gt;/home/stage1/.mwmrc&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/usr: Permission denied&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/etc: Permission denied&lt;/p&gt; &lt;p&gt;UX:find: ERROR: Cannot read dir /home/ftp/dev: Permission denied&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find . \( -name '.??*rc' -o -mtime -1 \) -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;.&lt;/p&gt; &lt;p&gt;./.exrc&lt;/p&gt; &lt;p&gt;./.mwmrc&lt;/p&gt; &lt;p&gt;./.sh_history&lt;/p&gt; &lt;p&gt;./main.c&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find /home/stage1 /home/stage2 -name '*toto*' -print&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;/home/stage1/toto&lt;/p&gt; &lt;p&gt;/home/stage2/toto&lt;/p&gt; &lt;p&gt;/home/stage2/toto1&lt;/p&gt; &lt;p&gt;/home/stage2/toto2&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find /home -name .profile -ok wc {} \;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;&lt; wc ... /home/boss/.profile &gt;? y&lt;/p&gt; &lt;p&gt;20 124 660 /home/boss/.profile&lt;/p&gt; &lt;p&gt;&lt; wc ... /home/stage1/.profile &gt;? n&lt;/p&gt; &lt;p&gt;&lt; wc ... /home/stage2/.profile &gt;? n&lt;/p&gt; &lt;p&gt;&lt; wc ... /home/stage3/.profile &gt;? y&lt;/p&gt; &lt;p&gt;25 39 390 /home/stage3/.profile&lt;/p&gt; &lt;p&gt;&lt; wc ... /home/stage4/.profile &gt;? n&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find /home -name .profile -exec wc {} \;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;20 124 660 /home/boss/.profile&lt;/p&gt; &lt;p&gt;25 39 390 /home/stage1/.profile&lt;/p&gt; &lt;p&gt;25 39 390 /home/stage2/.profile&lt;/p&gt; &lt;p&gt;25 39 390 /home/stage3/.profile&lt;/p&gt; &lt;p&gt;25 39 390 /home/stage4/.profile&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;find . -name core -ok rm {} \;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;&lt; rm ... ./core &gt;? y&lt;/p&gt; &lt;p&gt;&lt; rm ... ./rep/core &gt;? y&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;h2&gt;&lt;a name=&#034;e&#034;&gt;E. la commande sort&lt;/a&gt;&lt;/h2&gt; &lt;b&gt; &lt;p&gt;sort [options] [ +pos1 [ -pos2 ] ] fichiers...&lt;/p&gt; &lt;/b&gt;&lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ sort &lt;b&gt;-d&lt;/b&gt; fic &lt;i&gt;tri suivant l'ordre du dictionnaire.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ sort &lt;b&gt;-n&lt;/b&gt; fic &lt;i&gt;tri num&#195;&#169;rique.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ sort &lt;b&gt;-r&lt;/b&gt; fic &lt;i&gt;tri en ordre d&#195;&#169;croissant.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ sort &lt;b&gt;-u&lt;/b&gt; fic &lt;i&gt;conserve une seule occurrence de lignes identiques.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ sort &lt;b&gt;-t&lt;/b&gt;: &lt;b&gt;-k3&lt;/b&gt; fic &lt;i&gt;tri sur le troisi&#195;&#168;me champ (s&#195;&#169;parateur &lt;b&gt;:&lt;/b&gt;)&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt;&lt;/i&gt; &lt;p&gt;L&#226;&#8364;&#8482;unit&#195;&#169; de traitement est la ligne ou le mot ( champ ). Le crit&#195;&#168;re de tri par d&#195;&#169;faut est le code Ascii. De multiples options permettent de choisir des crit&#195;&#168;res plus r&#195;&#169;alistes ( alphab&#195;&#169;tique, num&#195;&#169;rique ... ). Si aucun fichier n'est donn&#195;&#169; en argument ou si on utilise le caract&#195;&#168;re - ( signe moins ), la commande traite son entr&#195;&#169;e standard. Le r&#195;&#169;sultat du tri est &#195;&#169;crit sur la sortie standard.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Options usuelles&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-u &lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; Suppression de lignes multiples dans le r&#195;&#169;sultat&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-o fichier&lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt;Sauvegarde du r&#195;&#169;sultat dans le fichier sp&#195;&#169;cifi&#195;&#169; ( Ce fichier peut &#195;&#170;tre un des fichiers d'entr&#195;&#169;e )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-d &lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt; Seuls les lettres, chiffres, espaces et tabulations sont significatifs pour le tri&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-f &lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt; Minuscules et MAJUSCULES sont confondues&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-n&lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt; Tri num&#195;&#169;rique&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-r&lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt; R&#195;&#169;sultat en ordre d&#195;&#169;croissant&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-t&lt;i&gt;car &lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;90%&#034;&gt;&lt;p&gt;&lt;i&gt; &lt;/i&gt;Red&#195;&#169;finition du caract&#195;&#168;re s&#195;&#169;parateur&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt;-b &lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;p&gt; &lt;b&gt;Option quasi-indispensable&lt;/b&gt; dans les tris alphab&#195;&#169;tiques ( pour une bonne gestion du nombre variable d'espaces entre les champs )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;10%&#034;&gt; &lt;p align=&#034;center&#034;&gt;&lt;b&gt;etc...&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;90%&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Utilisation des champs&lt;/p&gt; &lt;/i&gt; &lt;p&gt;Les notations &lt;b&gt;+pos1 [ -pos2 ]&lt;/b&gt; permettent d&#226;&#8364;&#8482;indiquer que le tri doit s&#226;&#8364;&#8482;effectuer uniquement sur certains champs de la ligne. Il est possible d&#226;&#8364;&#8482;indiquer plusieurs couples de position pour op&#195;&#169;rer un tri &#195; plusieurs passes.&lt;/p&gt; &lt;p&gt;Ces positions s&#226;&#8364;&#8482;expriment sous la forme &lt;b&gt;m.n&lt;/b&gt; &#195;&#169;ventuellement suivie d'une ou plusieurs options parmi &lt;i&gt;b , d , f , i , n ou r&lt;/i&gt; .&lt;/p&gt; &lt;p&gt;m Nombre de champs &#195; sauter depuis le d&#195;&#169;but de la ligne&lt;/p&gt; &lt;p&gt;n Nombre de caract&#195;&#168;res &#195; sauter depuis le d&#195;&#169;but du champ&lt;/p&gt; &lt;i&gt; &lt;p&gt;Quelques exemples&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;i&gt; sort +1 -2 fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Tri ( crit&#195;&#168;re Ascii ) sur le deuxi&#195;&#168;me champ&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;i&gt; sort -rn -o fichier +4 -5 fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Tri ( crit&#195;&#168;re num&#195;&#169;rique, ordre d&#195;&#169;croissant ) sur le cinqui&#195;&#168;me champ et r&#195;&#169;sultat dans le fichier d&#226;&#8364;&#8482;entr&#195;&#169;e&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;i&gt; sort -t: +2n -3 /etc/passwd&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Tri du fichier /etc/passwd selon le num&#195;&#169;ro de &#194;&#171;login&#194;&#187; ( red&#195;&#169;finition du s&#195;&#169;parateur de champs )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;i&gt; sort +3.0bf -3.2bf fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Tri sur les deux premiers caract&#195;&#168;res du quatri&#195;&#168;me champ ( minuscules et majuscules confondues )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt;&lt;i&gt; sort +3n -4 +0fb -1 fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Tri sur le quatri&#195;&#168;me champ ( crit&#195;&#168;re num&#195;&#169;rique ) puis deuxi&#195;&#168;me passe sur le premier champ ( minuscules et majuscules confondues )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt; &lt;b&gt; &lt;p&gt; &lt;/p&gt; &lt;/b&gt;&lt;/i&gt; &lt;h2&gt;&lt;font COLOR=&#034;#007f00&#034;&gt;&lt;a NAME=&#034;f&#034;&gt;F. &lt;/a&gt; &lt;/font&gt;&lt;a NAME=&#034;f&#034;&gt;&lt;font COLOR=&#034;#007f00&#034;&gt;la commande cut&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt; &lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;cut&lt;/b&gt; extrait certains champs ou certaines colonnes&lt;i&gt;(1 caract&#195;&#168;re de large)&lt;/i&gt; d'un fichier texte&lt;/p&gt; &lt;p&gt;La commande &lt;b&gt;cut &lt;/b&gt;extrait des sous-parties verticales d'un fichier texte.&lt;/p&gt; &lt;b&gt; &lt;p&gt;cut&lt;/b&gt; peut travailler sur des champs (s&#195;&#169;par&#195;&#169;s par le caract&#195;&#168;re suivant l'option &lt;b&gt;-d&lt;/b&gt; ou par d&#195;&#169;faut par une tabulation). La plupart des fichiers syst&#195;&#168;mes d'Unix contiennent des champs s&#195;&#169;par&#195;&#169;s par le caract&#195;&#168;re&lt;b&gt; &lt;/b&gt;'&lt;b&gt;:&lt;/b&gt;'&lt;/p&gt; &lt;p&gt;&lt;i&gt;cut [ options ] fichiers&lt;/p&gt; &lt;/i&gt; &lt;p&gt;&lt;i&gt;Options&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;538&#034;&gt; &lt;tr&gt; &lt;td width=&#034;65&#034;&gt;-d &lt;i&gt;car&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;457&#034;&gt; &lt;p&gt; D&#195;&#169;finition du s&#195;&#169;parateur de champs ( l'espace devra &#195;&#170;tre d&#195;&#169;fini entre &#034;&#034; )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;65&#034;&gt;-f &lt;i&gt;liste&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;457&#034;&gt; &lt;p&gt; Liste des num&#195;&#169;ros des champs &#195; extraire&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;65&#034;&gt;-c &lt;i&gt;liste&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;457&#034;&gt; &lt;p&gt; Liste des positions des caract&#195;&#168;res &#195; extraire&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Dans certains cas (tel que la sortie de la commande &lt;b&gt;who&lt;/b&gt;) les diff&#195;&#169;rentes informations ne sont pas s&#195;&#169;par&#195;&#169;es par un caract&#195;&#168;re sp&#195;&#169;cial mais par un nombre variable de blancs. On est donc amen&#195;&#169; &#195; utiliser la commande&lt;b&gt; cut&lt;/b&gt; sur des colonnes (1 caract&#195;&#168;re de large).&lt;/p&gt; &lt;i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; &lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;30%&#034;&gt; $ cut &lt;b&gt;-c&lt;/b&gt;12-18,20-25 fich&lt;/td&gt; &lt;td width=&#034;70%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;i&gt;r&#195;&#169;cup&#195;&#168;re les colonnes 12 &#195; 18 et 20 &#195; 25&lt;/p&gt; &lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;30%&#034;&gt;$ cut &lt;b&gt;-f&lt;/b&gt;1,6 &lt;b&gt;-d&lt;/b&gt;: /etc/passwd &lt;/td&gt; &lt;td width=&#034;70%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;i&gt;extrait les champs 1 et 6 d&#195;&#169;limit&#195;&#169;s par :&lt;/p&gt; &lt;/i&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt; &lt;/font&gt;&lt;b&gt; &lt;p&gt;a) Num&#195;&#169;rotation des colonnes ou des champs&lt;/p&gt; &lt;/b&gt;&lt;/i&gt;&lt;p ALIGN=&#034;left&#034;&gt; &lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;2&#034; CELLPADDING=&#034;4&#034; WIDTH=&#034;321&#034;&gt; &lt;tr&gt; &lt;td WIDTH=&#034;25%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;A-B&lt;/td&gt; &lt;td WIDTH=&#034;75%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;de A &#195; B inclus&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;25%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;A-&lt;/td&gt; &lt;td WIDTH=&#034;75%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;de A &#195; la fin (dernier)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;25%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;-B&lt;/td&gt; &lt;td WIDTH=&#034;75%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;du d&#195;&#169;but (premier) &#195; B&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;25%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;A,B&lt;/td&gt; &lt;td WIDTH=&#034;75%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p ALIGN=&#034;left&#034;&gt;A et B&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;i&gt;Exemple :&lt;/i&gt;&lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;cut -d: -f 1,3,6-7 /etc/passwd&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;root:0:/:/sbin/ksh&lt;/p&gt; &lt;p&gt;daemon:1:/:&lt;/p&gt; &lt;p&gt;bin:2:/usr/bin:&lt;/p&gt; &lt;p&gt;sys:3:/:&lt;/p&gt; &lt;p&gt;..............&lt;/p&gt; &lt;p&gt;stage1:1001:/home/ecole1:/usr/bin/ksh&lt;/p&gt; &lt;p&gt;stage2:1002:/home/ecole2:/usr/bin/ksh&lt;/p&gt; &lt;p&gt;..............&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo Bonjour cher ami | cut -d&#034; &#034; -f 1,3&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Bonjour ami&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo Bonjour cher ami | cut -c 1-3,14-16&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Bonami&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo Bonjour cher ami | cut -c 8-&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;cher ami&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;h2&gt;&lt;font COLOR=&#034;#007f00&#034;&gt;&lt;a name=&#034;g&#034;&gt;G. la commande grep&lt;/a&gt;&lt;/font&gt;&lt;/h2&gt; &lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;grep&lt;/b&gt; recherche des lignes dans un fichier texte et les affiche sur la sortie standard&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt;&lt;i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;syntaxe :&lt;/i&gt; &lt;b&gt;grep motifRecherch&#195;&#169; fichier [ fichier2 ...]&lt;/p&gt; &lt;/b&gt;&lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Le motif est une expression r&#195;&#169;guli&#195;&#168;re. Sans autre option , grep retourne l'ensemble des lignes contenant le motif indiqu&#195;&#169; (m&#195;&#170;me s'il n'est qu'une partie d'un mot).&lt;/p&gt; &lt;p&gt;Ces filtres permettent de rechercher des &lt;b&gt;expressions litt&#195;&#169;rales ou &#194;&#171;r&#195;&#169;guli&#195;&#168;res&#194;&#187;&lt;/b&gt; dans des fichiers.&lt;/p&gt; &lt;p&gt;Les expressions r&#195;&#169;guli&#195;&#168;res consistent en un vocabulaire permettant d&#226;&#8364;&#8482;exprimer une s&#195;&#169;mantique puissante de recherche ( voir une premi&#195;&#168;re pr&#195;&#169;sentation dans le chapitre 3 ).&lt;/p&gt; &lt;p&gt;Les lignes comportant les expressions recherch&#195;&#169;es sont affich&#195;&#169;es sur la sortie standard.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Il y a trois filtres :&lt;/p&gt; &lt;i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt; &lt;i&gt; grep&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;85%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Recherche d'expressions litt&#195;&#169;rales et/ou r&#195;&#169;guli&#195;&#168;res&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt; &lt;i&gt; egrep&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;85%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Accepte des expressions plus riches que &#194;&#171;grep&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt; &lt;i&gt; fgrep&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;85%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Ne traite que des expressions litt&#195;&#169;rales mais est plus compact et performant&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/i&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Quelques Options&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;739&#034;&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-i &lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; MAJUSCULES et minuscules sont confondues&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-v&lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Les lignes ne comportant pas l'expression&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-x &lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Les lignes exactement identiques &#195; l'expression ( &#194;&#171;fgrep&#194;&#187; seulement )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-c&lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Afficher le nombre de lignes trouv&#195;&#169;es&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-l &lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Afficher uniquement les noms des fichiers&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-n&lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Chaque ligne est pr&#195;&#169;c&#195;&#169;d&#195;&#169;e de son num&#195;&#169;ro dans le fichier&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-e expr &lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Permet de chercher une expression commen&#195;&#167;ant par - ( signe moins )( ne fonctionne pas avec &#194;&#171;grep&#194;&#187; )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;80&#034;&gt;-f fichier &lt;/td&gt; &lt;td width=&#034;643&#034;&gt; &lt;p&gt; Les expressions cherch&#195;&#169;es sont d&#195;&#169;crites dans un fichier ( une par ligne )( ne fonctionne pas avec &#194;&#171;grep&#194;&#187; )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Quelques Expressions R&#195;&#169;guli&#195;&#168;res&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;^ &lt;/td&gt; &lt;td width=&#034;452&#034;&gt; &lt;p&gt; D&#195;&#169;but de ligne&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;$&lt;/td&gt; &lt;td width=&#034;452&#034;&gt; &lt;p&gt; Fin de ligne ( se place en fin d'expression )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;.&lt;/td&gt; &lt;td width=&#034;452&#034;&gt; Pr&#195;&#169;sence d&#226;&#8364;&#8482;un caract&#195;&#168;re quelconque&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;[&lt;i&gt;caract&#195;&#168;res&lt;/i&gt;]&lt;/td&gt; &lt;td width=&#034;452&#034;&gt; Un caract&#195;&#168;re parmi un ensemble&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;[^&lt;i&gt;caract&#195;&#168;res&lt;/i&gt;] &lt;/td&gt; &lt;td width=&#034;452&#034;&gt;&lt;p&gt; Un caract&#195;&#168;re ne figurant pas dans l&#226;&#8364;&#8482;ensemble&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;&lt;p&gt;&lt;i&gt;car&lt;/i&gt;*&lt;/p&gt; &lt;/td&gt; &lt;td width=&#034;452&#034;&gt; &lt;p&gt; Un nombre quelconque d'apparitions du caract&#195;&#168;re ( &#195;&#169;ventuellement 0 )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;103&#034;&gt;&lt;i&gt;exp1&lt;/i&gt;|&lt;i&gt;exp2&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;452&#034;&gt; &lt;p&gt; Le caract&#195;&#168;re | signifie OU et relie deux expressions ( &lt;b&gt;egrep&lt;/b&gt; )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt; &lt;p&gt;Notations fr&#195;&#169;quentes et utiles&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;454&#034;&gt; &lt;tr&gt; &lt;td width=&#034;49&#034;&gt;^$&lt;/td&gt; &lt;td width=&#034;389&#034;&gt; &lt;p&gt; Ligne vide ( un d&#195;&#169;but et une fin )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49&#034;&gt;.&lt;/td&gt; &lt;td width=&#034;389&#034;&gt; &lt;p&gt;&lt;b&gt; &lt;/b&gt;Ligne non vide&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49&#034;&gt;.*&lt;/td&gt; &lt;td width=&#034;389&#034;&gt; &lt;p&gt; &#194;&#171;Reste de la ligne&#194;&#187; ou &#194;&#171;ligne compl&#195;&#168;te&#194;&#187; suivant le contexte&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt;&lt;font SIZE=&#034;3&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;/font&gt; &lt;p&gt;Quelques exemples&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034; width=&#034;875&#034;&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt; grep '^abc' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Lignes commen&#195;&#167;ant par la cha&#195;&#174;ne &#194;&#171;abc&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt;grep '^[abc]' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Lignes commen&#195;&#167;ant par a ou b ou c&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt; grep &#226;&#8364;&#732;^[^0-9]&#226;&#8364;&#8482; fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Lignes ne commen&#195;&#167;ant pas par un chiffre&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt; grep 'abc.$' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Lignes se terminant par la cha&#195;&#174;ne &#194;&#171;abc&#194;&#187; suivie d&#226;&#8364;&#8482;un caract&#195;&#168;re quelconque&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt; fgrep -f motifs fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Recherche des expressions litt&#195;&#169;rales indiqu&#195;&#169;es dans le fichier &#194;&#171;motifs&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt; &lt;i&gt; grep -n '^' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Num&#195;&#169;roter toutes les lignes ( toutes les lignes ont un d&#195;&#169;but )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt;&lt;i&gt; grep -i 'toto *$' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt; &lt;p&gt; Lignes se terminant par la cha&#195;&#174;ne &#194;&#171;toto&#194;&#187; ( minuscules ou majuscules ) suivie d&#226;&#8364;&#8482;un nombre quelconque d&#226;&#8364;&#8482;espaces&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;177&#034;&gt; &lt;i&gt; egrep '^abc|ef *$' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;682&#034;&gt;&lt;font SIZE=&#034;3&#034;&gt; &lt;p&gt;&lt;/font&gt; Lignes commen&#195;&#167;ant par la cha&#195;&#174;ne &#194;&#171;abc&#194;&#187; ou bien se terminant par la cha&#195;&#174;ne &#194;&#171;ef&#194;&#187; suivie d&#226;&#8364;&#8482;un nombre quelconque d&#226;&#8364;&#8482;espaces ( Penser &#195; invoquer &#034;egrep&#034; , grep ne conna&#195;&#174;t pas le signe | )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;font SIZE=&#034;3&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;/font&gt; &lt;h2&gt;&lt;a name=&#034;h&#034;&gt;H. La commande tr&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Ce filtre &lt;b&gt;lit l'entr&#195;&#169;e standard&lt;/b&gt; pour effectuer des substitutions ou des suppressions de caract&#195;&#168;res.&lt;/p&gt; &lt;p&gt;Les r&#195;&#169;sultats sont &#195;&#169;crits sur la sortie standard.&lt;/p&gt; &lt;b&gt; &lt;p&gt;tr [options] [ chaine1 [ chaine2 ] ]&lt;/p&gt; &lt;/b&gt; &lt;p&gt;Dans la syntaxe de base, les caract&#195;&#168;res mentionn&#195;&#169;s dans &#194;&#171;chaine1&#194;&#187; sont remplac&#195;&#169;s par ceux de m&#195;&#170;me position dans &#194;&#171;chaine2&#194;&#187;.&lt;/p&gt; &lt;p&gt;Des abr&#195;&#169;viations sont possibles pour d&#195;&#169;signer des ensembles de caract&#195;&#168;res :&lt;/p&gt; &lt;table border=&#034;1&#034; width=&#034;460&#034;&gt; &lt;tr&gt; &lt;td width=&#034;46&#034; height=&#034;19&#034;&gt;&lt;i&gt;[a-z] &lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;398&#034; height=&#034;19&#034;&gt;&lt;i&gt; &lt;/i&gt;Les lettres minuscules ( intervalle )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;46&#034; height=&#034;6&#034;&gt;&lt;i&gt;[a*n]&lt;/i&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;398&#034; height=&#034;6&#034;&gt;n fois le caract&#195;&#168;re a ( * seul signifie : &#194;&#171;un nombre quelconque&#194;&#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;46&#034; height=&#034;19&#034;&gt;&lt;i&gt;\xyz &lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;398&#034; height=&#034;19&#034;&gt; &lt;p&gt;Code Ascii en octal du caract&#195;&#168;re&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Options&lt;/p&gt; &lt;table border=&#034;1&#034; width=&#034;533&#034;&gt; &lt;tr&gt; &lt;td width=&#034;39&#034;&gt; &lt;i&gt; -d&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;478&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt;Supprimer les caract&#195;&#168;res apparaissant dans &#194;&#171;chaine1&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;39&#034;&gt;&lt;i&gt;-s&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;478&#034;&gt; &lt;p&gt;Les caract&#195;&#168;res cons&#195;&#169;cutifs identiques sont r&#195;&#169;duits &#195; un seul exemplaire&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;39&#034;&gt;&lt;i&gt;-c&lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;478&#034;&gt; &lt;p&gt;N&#195;&#169;gation -&gt; Les caract&#195;&#168;res n'apparaissant pas dans &#194;&#171;chaine1&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Quelques exemples&lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt; &lt;i&gt; tr &#034;[a-z]&#034; &#034;[A-Z]&#034; &lt; fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Transformer les minuscules en MAJUSCULES.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt; &lt;i&gt; tr -sc &#034;[A-Z][a-z]&#034; &#034;[\012*]&#034; &lt; fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Les caract&#195;&#168;res non alphab&#195;&#169;tiques sont transform&#195;&#169;s en un saut de ligne. Les sauts de ligne cons&#195;&#169;cutifs sont &#195;&#169;limin&#195;&#169;s. On obtient un mot alphab&#195;&#169;tique par ligne.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;33%&#034;&gt; &lt;i&gt; tr -d &#034;abcd&#034; &lt; fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;67%&#034;&gt; &lt;i&gt; &lt;p&gt;&lt;/i&gt; Les caract&#195;&#168;res a , b , c et d sont supprim&#195;&#169;s.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/i&gt; &lt;font SIZE=&#034;3&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;/font&gt; &lt;h2&gt;&lt;a name=&#034;i&#034;&gt;I. La commande sed&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Ce filtre est un &#195;&#169;diteur non interactif qui copie les fichiers d'entr&#195;&#169;e sur la sortie standard apr&#195;&#168;s leur avoir appliqu&#195;&#169; un certain nombre de commandes.&lt;/p&gt; &lt;b&gt; &lt;p&gt;sed [-n] 'commandes_sed' fichiers...&lt;/p&gt; &lt;/b&gt; &lt;p&gt;ou&lt;/p&gt; &lt;b&gt; &lt;p&gt;sed [-n] -f fichier_commandes fichiers...&lt;/p&gt; &lt;/b&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Syntaxe des commandes sed et principe de fonctionnement&lt;/p&gt; &lt;/i&gt; &lt;p&gt;[ adresse1 [,adresse2] ] action [ arguments ]&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Les crochets indiquent un aspect facultatif et n&#226;&#8364;&#8482;apparaissent pas dans les commandes. Tous ces &#195;&#169;l&#195;&#169;ments ne sont s&#195;&#169;par&#195;&#169;s par aucun espace. &lt;/i&gt; En l&#226;&#8364;&#8482;absence d&#226;&#8364;&#8482;adresses de s&#195;&#169;lection, l&#226;&#8364;&#8482;action a lieu sur toutes les lignes des fichiers d&#226;&#8364;&#8482;entr&#195;&#169;e. L&#226;&#8364;&#8482;action par d&#195;&#169;faut est d&#226;&#8364;&#8482;afficher la ligne sur la sortie standard.&lt;/p&gt; &lt;p&gt;L'option &lt;i&gt;-n&lt;/i&gt; permet de supprimer cette sortie syst&#195;&#169;matique des lignes.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Une &lt;b&gt;adresse&lt;/b&gt; peut &#195;&#170;tre, entre autres :&lt;/p&gt; &lt;p&gt;- Un &lt;i&gt;num&#195;&#169;ro de ligne&lt;/p&gt; &lt;/i&gt; &lt;p&gt;- Le &lt;i&gt;caract&#195;&#168;re $ &lt;/i&gt;d&#195;&#169;signant la derni&#195;&#168;re ligne&lt;/p&gt; &lt;p&gt;- Le &lt;i&gt;caract&#195;&#168;re .&lt;/i&gt; ( point ) d&#195;&#169;signant la ligne courante&lt;/p&gt; &lt;p&gt;- Une &lt;i&gt;expression litt&#195;&#169;rale ou r&#195;&#169;guli&#195;&#168;re entre deux caract&#195;&#168;res /&lt;/i&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;b&gt; &lt;p&gt;Quelques actions usuelles&lt;/p&gt; &lt;/b&gt; &lt;table border=&#034;1&#034; width=&#034;647&#034;&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;&lt;i&gt;d&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Ne pas afficher la ligne&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;&lt;i&gt;p&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Afficher la ligne ( s&#226;&#8364;&#8482;utilise souvent avec l'option -n )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;&lt;i&gt;q&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Abandonner le traitement&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;s/expr1/expr2/&lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Remplacer la premi&#195;&#168;re expression par la seconde,une seule fois par ligne&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;s/expr1/expr2/g &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Remplacer la premi&#195;&#168;re expression par la seconde, plusieurs fois par ligne si n&#195;&#169;cessaire&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;s/expr1// &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Supprimer l'expression&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;s/expr1/...&amp;.../ &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Remplacer la premi&#195;&#168;re expression par elle-m&#195;&#170;me plus &#194;&#171;quelque chose&#194;&#187; ( La notation &amp; signifie : &#194;&#171;reprendre la premi&#195;&#168;re expression&#194;&#187; )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;97&#034;&gt;= &lt;/td&gt; &lt;td width=&#034;534&#034;&gt; &lt;p&gt; Afficher le num&#195;&#169;ro de ligne&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;etc...&lt;/p&gt; &lt;i&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Quelques exemples&lt;/p&gt; &lt;/i&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed 's/monsieur/madame/g' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Remplacer une cha&#195;&#174;ne par une autre plusieurs fois par ligne&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed 's/^/ /' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; D&#195;&#169;caler le d&#195;&#169;but de chaque ligne par des espaces&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed '/./s/^/ /' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Idem uniquement sur les lignes non vides&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed -n '/expression/!p' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; Afficher les lignes ne contenant pas l&#226;&#8364;&#8482;expression ( Le ! indique la n&#195;&#169;gation de l&#226;&#8364;&#8482;expression )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed -n '20,30p' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Afficher les lignes de num&#195;&#169;ro 20 &#195; 30&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed '1,10d' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Ne pas afficher les 10 premi&#195;&#168;res lignes&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed -n '/./p' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Afficher uniquement les lignes non vides&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed '/^$/d' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; M&#195;&#170;me traitement&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed '/expression/q' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Afficher jusqu&#226;&#8364;&#8482;&#195; une expression donn&#195;&#169;e&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed -n '/expression/=' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Afficher les num&#195;&#169;ros des lignes contenant une expression donn&#195;&#169;e&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;28%&#034;&gt; &lt;i&gt; sed 's/toto/bonjour &amp;/g' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;72%&#034;&gt; &lt;p&gt; Remplacer la cha&#195;&#174;ne &#194;&#171;toto&#194;&#187; par &#194;&#171;bonjour toto&#194;&#187;,&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;h2&gt;&lt;a name=&#034;j&#034;&gt;J. La commande awk&lt;/a&gt;&lt;/h2&gt; &lt;font SIZE=&#034;3&#034;&gt; &lt;/font&gt; &lt;p&gt;Cet utilitaire &lt;b&gt;awk&lt;/b&gt; tire son nom de ceux de ses concepteurs. ( Alfred &lt;b&gt;A&lt;/b&gt;HO , Peter &lt;b&gt;W&lt;/b&gt;EINBERGER , Brian &lt;b&gt;K&lt;/b&gt;ERNIGHAN )&lt;/p&gt; &lt;p&gt;C'est un outil tr&#195;&#168;s adapt&#195;&#169; pour r&#195;&#169;aliser des t&#195;&#162;ches de &lt;b&gt;manipulation de donn&#195;&#169;es&lt;/b&gt; sans avoir &#195; les programmer dans un langage classique comme le C. En effet, beaucoup de choses sont implicitement r&#195;&#169;solues. ( les entr&#195;&#169;es, la gestion des &#194;&#171;champs&#194;&#187;, la gestion m&#195;&#169;moire, les d&#195;&#169;clarations, les initialisations ... )&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Syntaxe et principe de fonctionnement&lt;/p&gt; &lt;/i&gt;&lt;b&gt; &lt;p&gt;awk 'liste-de-commandes' fichiers...&lt;/p&gt; &lt;/b&gt; &lt;p&gt;ou&lt;/p&gt; &lt;b&gt; &lt;p&gt;awk -f fichier_commandes fichiers...&lt;/p&gt; &lt;/b&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Une commande est constitu&#195;&#169;e ainsi : &lt;b&gt;motif { action }&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Le &#194;&#171;&lt;b&gt;motif&lt;/b&gt;&#194;&#187; sert d&#226;&#8364;&#8482;expression de s&#195;&#169;lection des lignes pour y appliquer l&#226;&#8364;&#8482;action associ&#195;&#169;e. Si le motif est absent, toutes les lignes sont concern&#195;&#169;es par l&#226;&#8364;&#8482;action. L&#226;&#8364;&#8482;action par d&#195;&#169;faut consiste &#195; afficher la ligne.&lt;/p&gt; &lt;p&gt;Chaque ligne d'entr&#195;&#169;e est automatiquement divis&#195;&#169;e en &#194;&#171;&lt;b&gt;champs&lt;/b&gt;&#194;&#187;. Les diff&#195;&#169;rents champs sont nomm&#195;&#169;s respectivement : &lt;b&gt;$1 $2 $3 ... $NF&lt;/p&gt; &lt;p&gt;NF&lt;/b&gt; repr&#195;&#169;sente le nombre de champs de la ligne en cours de traitement. Le s&#195;&#169;parateur de champs peut &#195;&#170;tre positionn&#195;&#169; &#195; un caract&#195;&#168;re particulier.&lt;/p&gt; &lt;p&gt;Pour ce faire, on peut proc&#195;&#169;der de deux fa&#195;&#167;ons :&lt;/p&gt; &lt;p&gt;1) On utilise comme premi&#195;&#168;re commande : BEGIN { FS = &#034;&lt;i&gt;caract&#195;&#168;re&lt;/i&gt;&#034; }&lt;/p&gt; &lt;p&gt;ou&lt;/p&gt; &lt;p&gt;2) A l'appel de &#194;&#171;awk&#194;&#187;, on utilise l'option -F&lt;i&gt;caract&#195;&#168;re&lt;/p&gt; &lt;/i&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;D&#226;&#8364;&#8482;autres variables int&#195;&#169;ressantes sont pr&#195;&#169;d&#195;&#169;finies :&lt;/p&gt; &lt;p&gt;&lt;b&gt;$0&lt;/b&gt; La ligne enti&#195;&#168;re&lt;/p&gt; &lt;p&gt;&lt;b&gt;NR&lt;/b&gt; Num&#195;&#169;ro de la ligne courante&lt;/p&gt; &lt;p&gt;&lt;b&gt;FILENAME&lt;/b&gt; Nom du fichier courant d'entr&#195;&#169;e&lt;/p&gt; &lt;p&gt;etc...&lt;/p&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;Les motifs&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Les programmes peuvent souvent se r&#195;&#169;sumer &#195; une suite de motifs puisque l'action par d&#195;&#169;faut est l'impression des lignes s&#195;&#169;lectionn&#195;&#169;es.&lt;/p&gt; &lt;p&gt;&#194;&#171;awk&#194;&#187; est donc un outil tr&#195;&#168;s puissant de s&#195;&#169;lection.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;i&gt; &lt;p&gt;Quelques motifs possibles&lt;/p&gt; &lt;/i&gt; &lt;p&gt;- &lt;i&gt;Expression b&#195;&#162;tie avec des op&#195;&#169;rateurs&lt;/i&gt; tr&#195;&#168;s proches de ceux du langage C&lt;/p&gt; &lt;p&gt;$3 &lt; 10&lt;/p&gt; &lt;p&gt;$3 &lt; $2 + 10 &amp;&amp; $4 == &#034;dupont&#034;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;- &lt;i&gt;Expression litt&#195;&#169;rale ou r&#195;&#169;guli&#195;&#168;re entre deux caract&#195;&#168;res /&lt;/i&gt;&lt;/p&gt; &lt;p&gt;/dupont/&lt;/p&gt; &lt;p&gt;/^[0-9]/&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;- &lt;i&gt;Intervalle de num&#195;&#169;ros de lignes&lt;/p&gt; &lt;/i&gt; &lt;p&gt;NR == 10 , NR == 15&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;- Le motif &lt;i&gt;BEGIN&lt;/p&gt; &lt;/i&gt; &lt;p&gt;L&#226;&#8364;&#8482;action associ&#195;&#169;e est ex&#195;&#169;cut&#195;&#169;e avant le traitement des fichiers d&#226;&#8364;&#8482;entr&#195;&#169;e&lt;/p&gt; &lt;p&gt;- Le motif &lt;i&gt;END&lt;/p&gt; &lt;/i&gt; &lt;p&gt;L&#226;&#8364;&#8482;action associ&#195;&#169;e est ex&#195;&#169;cut&#195;&#169;e apr&#195;&#168;s le traitement des fichiers d&#226;&#8364;&#8482;entr&#195;&#169;e&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;Les actions&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Une action est une &lt;b&gt;suite d'instructions&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;Chaque instruction est termin&#195;&#169;e par un ; ( point-virgule ) ou un saut de ligne.&lt;/p&gt; &lt;i&gt; &lt;p&gt;Instructions disponibles&lt;/p&gt; &lt;/i&gt; &lt;p&gt;- Les fonctions d'affichage &#194;&#171;&lt;i&gt;print&lt;/i&gt;&#194;&#187; ( affichage brut ) et &#194;&#171;&lt;i&gt;printf&lt;/i&gt;&#194;&#187; ( affichage format&#195;&#169; )&lt;/p&gt; &lt;p&gt;- &lt;i&gt;Instruction b&#195;&#162;tie avec des op&#195;&#169;rateurs&lt;/i&gt; tr&#195;&#168;s proches de ceux du langage C&lt;/p&gt; &lt;p&gt;- &lt;i&gt;Instructions de contr&#195;&#180;le&lt;/i&gt; ( tests, boucles, fonctions int&#195;&#169;gr&#195;&#169;es ... )&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;Quelques exemples&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; awk ' $3 &gt; 1000 { print $1 , $2 , $3 } ' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt; Pour toutes les lignes o&#195;&#185; le troisi&#195;&#168;me champ est sup&#195;&#169;rieur &#195; mille, on affiche la valeur des trois premiers champs&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; awk ' { print NR , $0 } ' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt; Num&#195;&#169;roter les lignes d&#226;&#8364;&#8482;un fichier&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; awk ' { printf &#034;%4d %s\n&#034; , NR , $0 } ' fichier&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt; M&#195;&#170;me traitement avec formatage&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; &lt;p&gt;awk &#226;&#8364;&#732;&lt;/p&gt; &lt;p&gt;$3 &gt; 1000 { val++ }&lt;/p&gt; &lt;p&gt;END { print val }&lt;/i&gt; &lt;/p&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt; Afficher le nombre de lignes o&#195;&#185; le &lt;i&gt;&#226;&#8364;&#732; fichier&lt;/i&gt; troisi&#195;&#168;me champ est sup&#195;&#169;rieur &#195; 1000&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; &lt;p&gt;awk &#226;&#8364;&#732;&lt;/p&gt; &lt;p&gt;$3 &gt; max { max = $3 ; maxnom = $2 }&lt;/p&gt; &lt;p&gt;END { print max , maxnom }&lt;/i&gt; &lt;/p&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt; Afficher la valeur maximum &lt;i&gt;&#226;&#8364;&#732; fichier&lt;/i&gt; du troisi&#195;&#168;me champ ainsi que celle du deuxi&#195;&#168;me champ associ&#195;&#169;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; &lt;p&gt;awk &#226;&#8364;&#732;&lt;/p&gt; &lt;p&gt;{ noms = noms $2 &#034; &#034; }&lt;/p&gt; &lt;p&gt;END { print noms } &lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;p&gt;Afficher la concat&#195;&#169;nation &lt;i&gt;&#226;&#8364;&#732; fichier&lt;/i&gt; de tous les deuxi&#195;&#168;mes champs ( L&#226;&#8364;&#8482;espace est l&#226;&#8364;&#8482;op&#195;&#169;rateur de concat&#195;&#169;nation )&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;49%&#034;&gt; &lt;i&gt; &lt;p&gt;awk &#226;&#8364;&#732;&lt;/p&gt; &lt;p&gt;BEGIN { printf &#034;Calcul du maximum et de la moyenne\n&#034; }&lt;/p&gt; &lt;p&gt;{ somme += $3 }&lt;/p&gt; &lt;p&gt;$3 &gt; max { max = $3 }&lt;/p&gt; &lt;p&gt;END { printf &#034;Maximum = %10.2f Moyenne = %10.2f \n&#034; , max , somme / NR }&lt;/p&gt; &lt;p&gt;&#226;&#8364;&#732; fichier&lt;/p&gt; &lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;51%&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Redirection </title>
		<link>https://admin-sys.org/?redirection</link>
		<guid isPermaLink="true">https://admin-sys.org/?redirection</guid>
		<dc:date>2008-09-16T09:35:17Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;IX. Les redirections : &lt;br class='autobr' /&gt;
Chaque commande dispose de trois descripteurs de fichiers, ouverts d&#195;&#168;s le d&#195;&#169;but du programme. &lt;br class='autobr' /&gt;
&#8211; Entr&#195;&#169;e standard Possibilit&#195;&#169; d&#226;&#8364;&#8482;y lire des donn&#195;&#169;es &lt;br class='autobr' /&gt;
&#8211; Sortie standard Possibilit&#195;&#169; d&#226;&#8364;&#8482;y &#195;&#169;crire des r&#195;&#169;sultats &lt;br class='autobr' /&gt;
&#8211; Erreur standard Possibilit&#195;&#169; d&#226;&#8364;&#8482;y &#195;&#169;crire ce qui sera consid&#195;&#169;r&#195;&#169; comme des erreurs &lt;br class='autobr' /&gt;
Toutes les commandes n&#226;&#8364;&#8482;exploitent pas syst&#195;&#169;matiquement ces trois descripteurs. &lt;br class='autobr' /&gt;
Le concepteur d&#226;&#8364;&#8482;une nouvelle commande est encourag&#195;&#169; &#195; suivre les &#194;&#171; (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;h1&gt;IX. &lt;u&gt;Les redirections :&lt;/u&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Chaque commande dispose de &lt;b&gt;trois descripteurs de fichiers&lt;/b&gt;, ouverts&lt;br class='autobr' /&gt;
d&#195;&#168;s le d&#195;&#169;but du programme.&lt;/p&gt;
&lt;p&gt;- &lt;i&gt;Entr&#195;&#169;e standard&lt;/i&gt; Possibilit&#195;&#169; d&#226;&#8364;&#8482;y lire des donn&#195;&#169;es&lt;/p&gt;
&lt;p&gt;- &lt;i&gt;Sortie standard&lt;/i&gt; Possibilit&#195;&#169; d&#226;&#8364;&#8482;y &#195;&#169;crire des r&#195;&#169;sultats&lt;/p&gt;
&lt;p&gt;- &lt;i&gt;Erreur standard&lt;/i&gt; Possibilit&#195;&#169; d&#226;&#8364;&#8482;y &#195;&#169;crire ce qui sera consid&#195;&#169;r&#195;&#169;&lt;br class='autobr' /&gt;
comme des erreurs&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Toutes les commandes n&#226;&#8364;&#8482;exploitent pas syst&#195;&#169;matiquement ces trois&lt;br class='autobr' /&gt;
descripteurs.&lt;/p&gt;
&lt;p&gt;Le concepteur d&#226;&#8364;&#8482;une nouvelle commande est encourag&#195;&#169; &#195; suivre les&lt;br class='autobr' /&gt;
&#194;&#171; traditions Unix&#194; &#187;. Si une commande attend des arguments ( par exemple, des noms de fichiers ) et&lt;br class='autobr' /&gt;
si on ne lui fournit pas ces arguments, elle peut d&#195;&#169;cider de lire des donn&#195;&#169;es&lt;br class='autobr' /&gt;
sur le descripteur &#194;&#171; entr&#195;&#169;e standard&#194; &#187;.&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;Il ne faut donc pas confondre &#194;&#171; arguments&#194; &#187; et &#194;&#171; entr&#195;&#169;e standard&#194; &#187;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Les commandes exploitent, en g&#195;&#169;n&#195;&#169;ral, les deux possibilit&#195;&#169;s pour&lt;br class='autobr' /&gt;
b&#195;&#169;n&#195;&#169;ficier pleinement des fonctionnalit&#195;&#169;s du shell.&lt;/p&gt;
&lt;p&gt;Une commande effectuant un traitement de type proc&#195;&#169;dural n&#226;&#8364;&#8482;&#195;&#169;crit rien sur&lt;br class='autobr' /&gt;
le descripteur &#194;&#171; sortie standard&#194; &#187; quand le traitement s&#226;&#8364;&#8482;est bien d&#195;&#169;roul&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Elle pr&#195;&#169;f&#195;&#168;re positionner un code retour. Par contre, dans un cas anormal,&lt;br class='autobr' /&gt;
elle pourra d&#195;&#169;cider de compl&#195;&#169;ter ce code retour par un message sur le&lt;br class='autobr' /&gt;
descripteur &#194;&#171; erreur standard&#194; &#187;.&lt;/p&gt;
&lt;p&gt;Une commande dont le r&#195;&#180;le est d&#226;&#8364;&#8482;afficher des r&#195;&#169;sultats exploite, bien&lt;br class='autobr' /&gt;
entendu, le descripteur &#194;&#171; sortie standard&#194; &#187; mais profite du descripteur &#194;&#171; erreur&lt;br class='autobr' /&gt;
standard&#194; &#187; pour s&#195;&#169;parer r&#195;&#169;sultats proprement dits et messages d&#226;&#8364;&#8482;erreur.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le processus shell de connexion a pour terminal de contr&#195;&#180;le celui de l&#226;&#8364;&#8482;utilisateur.&lt;/p&gt;
&lt;p&gt;Par d&#195;&#169;faut, tous les processus g&#195;&#169;n&#195;&#169;r&#195;&#169;s par le shell et, par cons&#195;&#169;quent,&lt;br class='autobr' /&gt;
les trois descripteurs de fichiers, sont associ&#195;&#169;s &#195; ce m&#195;&#170;me terminal :&lt;/p&gt;
&lt;ul&gt; &lt;li&gt; &lt;i&gt;
&lt;p&gt;Entr&#195;&#169;e standard Donn&#195;&#169;es entr&#195;&#169;es au clavier ( Fin de fichier quand on saisit un &lt;b&gt;&#194;&#171; Ctrl d&#194; &#187; en d&#195;&#169;but de&lt;br class='autobr' /&gt; ligne&lt;/b&gt; ) &lt;/p&gt;
&lt;/li&gt; &lt;/i&gt;
&lt;li&gt; &lt;i&gt;
&lt;p&gt;Sortie standard Affichage &#195; l&#226;&#8364;&#8482;&#195;&#169;cran&lt;/p&gt;
&lt;/li&gt; &lt;li&gt;Erreur standard Affichage &#195; l&#226;&#8364;&#8482;&#195;&#169;cran&lt;br class='autobr' /&gt; &lt;/i&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Redirections&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Une redirection consiste &#195; changer l&#226;&#8364;&#8482;association : &#194;&#171; Descripteur de&lt;br class='autobr' /&gt;
fichier - Fichier physique&#194; &#187;&lt;/i&gt; Une redirection peut s'effectuer vers&lt;/p&gt;
&lt;p&gt;- Un &lt;i&gt;fichier ordinaire&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;- Un &lt;i&gt;fichier sp&#195;&#169;cial&lt;/i&gt; ( p&#195;&#169;riph&#195;&#169;rique )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt; &lt;a NAME=&#034;a&#034;&gt; A. Redirection en entr&#195;&#169;e&lt;/a&gt;
&lt;/h2&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;elle s'effectue au moyen du caract&#195;&#169;re sp&#195;&#169;cial &#034;&lt;b&gt;&lt;&lt;/b&gt;&#034;.&lt;/p&gt;
&lt;p&gt;Toute commande devant lire des donn&#195;&#169;es depuis l'entr&#195;&#169;e standard peut aller&lt;br class='autobr' /&gt;
les chercher dans un fichier.&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;/u&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/i&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ mail user3 &lt; fic&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/b&gt;
&lt;h2&gt;
&lt;a NAME=&#034;b&#034;&gt;
B. Redirection
de sortie&lt;/a&gt;&lt;/h2&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;Elle s'effectue au moyen des caract&#195;&#168;res sp&#195;&#169;ciaux &#034;&lt;b&gt;&gt;&lt;/b&gt;&#034; et&lt;br class='autobr' /&gt;
&#034;&lt;b&gt;&gt;&gt;&lt;/b&gt;&#034;.&lt;/p&gt;
&lt;p&gt;Toute commande devant &#195;&#169;crire des donn&#195;&#169;es vers la sortie standard peut aller&lt;br class='autobr' /&gt;
les &#195;&#169;crire dans un fichier.&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/u&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ find . -name toto &gt; /tmp/fics.toto&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ ls &gt;&gt; fichierSortie&lt;/p&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Si le fichier sp&#195;&#169;cifi&#195;&#169; en sortie n'existe pas, le syst&#195;&#168;me va tenter de le&lt;br class='autobr' /&gt;
cr&#195;&#169;er ; s'il existe d&#195;&#169;j&#195; , il y aura soit &#195;&#169;crasement (avec &gt;) au lancement&lt;br class='autobr' /&gt;
de la commande, soit concat&#195;&#169;nation sans &#195;&#169;craser l'ancien contenu (avec&lt;br class='autobr' /&gt;
&gt;&gt;).&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;p&gt; &lt;a NAME=&#034;c&#034;&gt;&lt;br class='autobr' /&gt; C. Redirection&lt;br class='autobr' /&gt; de sortie erreur&lt;/a&gt;&lt;/p&gt;
&lt;/h2&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;Elle s'effectue au moyen des s&#195;&#169;quences de caract&#195;&#168;res &#034;&lt;b&gt;2&gt;&lt;/b&gt;&#034;&lt;br class='autobr' /&gt;
et &#034;&lt;b&gt;2&gt;&gt;&lt;/b&gt; &#034;.&lt;/p&gt;
&lt;p&gt;Le principe est exactement le m&#195;&#170;me que pr&#195;&#169;c&#195;&#169;demment.&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;/u&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ cp 2&gt; cp.erreurs&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ find / -name fich1 -print 2&gt; /dev/null&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;a NAME=&#034;d&#034;&gt;
D. Redirections entre
processus : les tubes (pipes)&lt;/a&gt;
&lt;/h2&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt;cmd1 | cmd2&lt;/b&gt; redirige la sortie standard de &lt;b&gt;cmd1&lt;/b&gt; vers l'entr&#195;&#169;e&lt;br class='autobr' /&gt;
standard de &lt;b&gt;cmd2&lt;/b&gt;.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La sortie d'un processus est redirig&#195;&#169;e vers l'entr&#195;&#169;e du&lt;br class='autobr' /&gt; suivant&lt;i&gt; &lt;/i&gt;&#195; travers un tube.&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;img border=&#034;0&#034; src='https://admin-sys.org/base/redirect1.gif' width='70' height='645' &gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Un encha&#195;&#174;nement de processus s&#195;&#169;par&#195;&#169;s par des tubes&lt;br class='autobr' /&gt; forme un pipe-line au bout duquel sort un r&#195;&#169;sultat bien travaill&#195;&#169;.&lt;/p&gt;
&lt;p&gt; &lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemple :&lt;/p&gt;
&lt;/i&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ banner bonjour | write usery&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;i&gt;&lt;u&gt;La redirection peut aussi porter sur les unit&#195;&#169;s (files&lt;br class='autobr' /&gt;
descriptors).&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;1&#034; CELLPADDING=&#034;4&#034;&gt; &lt;tr&gt;&lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&gt; fichier&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige stdout vers le fichier&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&gt; fichier&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige l'unit&#195;&#169; n vers le fichier&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&gt;&gt; fichier&lt;/p&gt;
&lt;/td&gt;&lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige l'unit&#195;&#169; n en fin de fichier&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&gt;&amp;m&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige stdout vers l'unit&#195;&#169; m&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&gt;&amp;m&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige l'unit&#195;&#169; n vers l'unit&#195;&#169; m&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt; fichier&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige le fichier vers stdin&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&lt; fichier&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige le fichier vers l'unit&#195;&#169; n&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;&lt; script&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;stdin est remplac&#195;&#169; par le script&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;&amp;n&lt;/p&gt;
&lt;/td&gt;&lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige l'unit&#195;&#169; n vers stdin&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;42%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;n&lt;&amp;m&lt;/p&gt;
&lt;/td&gt; &lt;td WIDTH=&#034;58%&#034; VALIGN=&#034;TOP&#034; align=&#034;left&#034;&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;redirige l'unit&#195;&#169; m vers l'unit&#195;&#169; n&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;i&gt;Exemples :&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;295&#034;&gt; &lt;tr&gt; &lt;td width=&#034;285&#034;&gt;
&lt;p&gt;$ ( who ; date ; ls) &gt; fsortie 2&gt; ferreur&lt;/p&gt;
&lt;p&gt;$ find / -name passwd -print 1&gt; resultat 2&gt;&amp;1&lt;/p&gt;
&lt;p&gt;$ find / -name passwd -print 2&gt;&amp;1 1&gt; resultat&lt;/p&gt;
&lt;p&gt;$ exec 5&lt; donnees&lt;/p&gt;
&lt;p&gt;$ exec 7&gt; resultat&lt;/p&gt;
&lt;p&gt;$ wc -l &lt;&amp;5 &gt;&amp;7&lt;/p&gt;
&lt;p&gt;$ cat resultat&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;font COLOR=&#034;#007f00&#034;&gt; &lt;a name=&#034;e&#034;&gt; E. Redirection sur place d'une commande&lt;/a&gt;&lt;/font&gt;&lt;/h2&gt; &lt;font FACE=&#034;Tms Rmn&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Une commande est substitu&#195;&#169;e par son r&#195;&#169;sultat.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;commande&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font FACE=&#034;Tms Rmn&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;p&gt;$ echo &#034;aujourd'hui,&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date&lt;/code&gt;, il g&#195;&#168;le&#034;&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;font FACE=&#034;Courier New&#034;&gt;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;/b&gt;aujourd'hui, Mon Apr 29 16:45:34 MDT&lt;br class='autobr' /&gt;
2001, il g&#195;&#168;le&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Shell </title>
		<link>https://admin-sys.org/?shell</link>
		<guid isPermaLink="true">https://admin-sys.org/?shell</guid>
		<dc:date>2008-09-16T09:33:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;VIII. Le shell : &lt;br class='autobr' /&gt;
Les Shells sont des interpr&#195;&#169;teurs de commandes qui permettent &#195; un utilisateur de &#034;dialoguer&#034; avec le syst&#195;&#168;me d'exploitation de la machine (donner des ordres et r&#195;&#169;cup&#195;&#169;rer les r&#195;&#169;sultats). &lt;br class='autobr' /&gt;
Il existe plusieurs shells standards sous UNIX : &lt;br class='autobr' /&gt;
sh (Bourne Shell) le shell de r&#195;&#169;f&#195;&#169;rence &lt;br class='autobr' /&gt;
csh (C Shell ) syntaxe proche du langage C (+ alias + historique des commandes) &lt;br class='autobr' /&gt;
ksh (Korn Shell) (alias + historique) avec compatibilit&#195;&#169; sh &lt;br class='autobr' /&gt;
sh (Posix Shell) standard - peu (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h1&gt;VIII. &lt;a NAME=&#034;_Toc347634149&#034;&gt;Le shell :&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Les Shells sont des interpr&#195;&#169;teurs de commandes qui permettent &#195; un utilisateur de &#034;dialoguer&#034; avec le syst&#195;&#168;me d'exploitation de la machine (donner des ordres et r&#195;&#169;cup&#195;&#169;rer les r&#195;&#169;sultats).&lt;/p&gt; &lt;u&gt; &lt;p&gt;Il existe plusieurs shells standards sous UNIX:&lt;/p&gt; &lt;i&gt; &lt;/i&gt;&lt;/u&gt; &lt;p&gt;sh (Bourne Shell) l&lt;i&gt;e shell de r&#195;&#169;f&#195;&#169;rence&lt;/p&gt; &lt;/i&gt; &lt;p&gt;csh (C Shell ) &lt;i&gt;syntaxe proche du langage C (+ alias + historique des commandes)&lt;/p&gt; &lt;/i&gt; &lt;p&gt;ksh (Korn Shell) &lt;i&gt;(alias + historique) avec compatibilit&#195;&#169; sh&lt;/p&gt; &lt;/i&gt; &lt;p&gt;sh (Posix Shell) s&lt;i&gt;tandard - peu de diff&#195;&#169;rence avec le ksh&lt;/p&gt; &lt;/i&gt; &lt;p&gt;les shells restreints, d&#195;&#169;riv&#195;&#169;s des pr&#195;&#169;c&#195;&#169;dents mais poss&#195;&#169;dant des fonctionnalit&#195;&#169;s fortement limit&#195;&#169;es (par exemple, la commande &lt;b&gt;cd&lt;/b&gt; n'existe plus).&lt;/p&gt; &lt;p&gt;Lorsqu'il ex&#195;&#169;cute une ligne de commande, un shell travaille en deux &#195;&#169;tapes : il interpr&#195;&#168;te d'abord les caract&#195;&#168;res sp&#195;&#169;ciaux, puis il cherche la commande qu'il doit ex&#195;&#169;cuter.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. Les variables&lt;/a&gt; &lt;/h2&gt; &lt;p&gt;Une variable est une cha&#195;&#174;ne de caract&#195;&#168;re (d&#195;&#169;finie dans l'espace de donn&#195;&#169;es d'un processus) &#195; laquelle est associ&#195;&#169;e une valeur.&lt;/p&gt; &lt;p&gt;Le shell utilise un certain nombre de variables qui d&#195;&#169;terminent en partie son comportement.&lt;/p&gt; &lt;p&gt;Le shell est dans sa configuration standard non d&#195;&#169;claratif, c'est-&#195;&#160;-dire qu'il n'est pas n&#195;&#169;cessaire de d&#195;&#169;clarer une variable avant de l'utiliser.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;&lt;a NAME=&#034;1&#034;&gt;1. Initialiser/&#195;&#169;valuer une variable&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Par d&#195;&#169;faut, les variables sont de type cha&#195;&#174;ne ; elles peuvent n&#195;&#169;anmoins &#195;&#170;tre interpr&#195;&#169;t&#195;&#169;es comme des entiers dans certains cas (par exemple lors de calculs).&lt;/p&gt; &lt;p&gt;On peut les cr&#195;&#169;er ou modifier leurs valeurs en utilisant l'op&#195;&#169;rateur d'affectation &#034;&lt;b&gt;=&lt;/b&gt;&#034;. &lt;i&gt;Il ne faut surtout pas mettre de blanc de chaque cot&#195;&#169; du caract&#195;&#168;re &#034;&lt;b&gt;=&lt;/b&gt;&#034; .&lt;/p&gt; &lt;/i&gt; &lt;p&gt;La valeur (ou le contenu) d'une variable peut &#195;&#170;tre r&#195;&#169;cup&#195;&#169;r&#195;&#169;(e) en pr&#195;&#169;fixant le nom de la variable par le symbole &lt;b&gt;$&lt;/b&gt;. On parle de substitution de variable.&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/p&gt; &lt;/i&gt; &lt;p&gt;$ VAR=&#034;Unix est beau&#034; # ' NE PAS METTRE D'ESPACE AUTOUR du &#034;=&#034; '&lt;/p&gt; &lt;p&gt;$ echo $VAR&lt;/p&gt; &lt;p&gt;Unix est beau&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;&lt;a NAME=&#034;2&#034;&gt;2. Variables locales / d&#226;&#8364;&#8482;environnement&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Comme tout processus Unix un shell poss&#195;&#168;de un espace m&#195;&#169;moire contenant entre autres des variables.&lt;/p&gt; &lt;p&gt;Ces variables sont rang&#195;&#169;es dans diff&#195;&#169;rents ensembles :&lt;/p&gt; &lt;p&gt;l'ensemble des &lt;i&gt;variables locales&lt;/i&gt;, propres au processus,&lt;/p&gt; &lt;p&gt;l'ensemble des &lt;i&gt;variables d'environnement&lt;/i&gt; : &lt;b&gt;il s&#226;&#8364;&#8482;agit de l&#226;&#8364;&#8482;ensemble des variables qui seront h&#195;&#169;rit&#195;&#169;es par les &#195;&#169;ventuels processus fils&lt;/b&gt;.&lt;/p&gt; &lt;p class=&#034;MsoNormal&#034;&gt; &lt;o:p&gt; &lt;/o:p&gt; &lt;/p&gt; &lt;p&gt;&lt;img border=&#034;0&#034; src='https://admin-sys.org/base/variabl1.gif' width='500' height='604' &gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;a NAME=&#034;_Toc370286591&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;3. &lt;/a&gt;&lt;a NAME=&#034;3&#034;&gt;Manipulation de variables : les commandes set, unset et env&lt;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ &lt;b&gt;unset&lt;/b&gt; VAR &lt;i&gt;d&#195;&#169;truit la variable VAR.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ &lt;b&gt;set&lt;/b&gt; &lt;i&gt;affiche toutes les variables (priv&#195;&#169;e + env) du shell.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ &lt;b&gt;env&lt;/b&gt; &lt;i&gt;affiche les variables de l'environnement.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ &lt;b&gt;export&lt;/b&gt; Toto &lt;i&gt;transf&#195;&#168;re la variable Toto dans l'environnement.&lt;/i&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;h3&gt;&lt;a NAME=&#034;4&#034;&gt;4. Les principales variables du shell&lt;/a&gt;&lt;/h3&gt; &lt;p&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Certaines variables du shell sont pr&#195;&#169;positionn&#195;&#169;es. Voici les principales, ainsi que leur signification :&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;RIGHT&#034;&gt; &lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;2&#034; CELLPADDING=&#034;4&#034; WIDTH=&#034;585&#034;&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;TMOUT&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;si &#194;&#185; de 0, nombre de secondes avant logout automatique&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;HOME&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;r&#195;&#169;pertoire de connexion&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;TZ&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;fuseau horaire&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;MANPATH&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;r&#195;&#169;pertoires o&#195;&#185; &lt;b&gt;man&lt;/b&gt; cherche les fichiers d'aides&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;LINES&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nombre de lignes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;COLUMNS&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nombre de colonnes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;MAIL&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nom du fichier de stockage du courrier&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;MAILCHECK&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;fr&#195;&#169;quence (en secondes) de v&#195;&#169;rification de la bo&#195;&#174;te aux lettres&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;HISTFILE&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nom du fichier de stockage des commandes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;HISTSIZE&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nombre de lignes de HISTSIZE&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;IFS&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;s&#195;&#169;parateurs de mots de la ligne de commande&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;SHELL&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;nom du shell de connexion&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;LOGNAME&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;login de connexion&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;PS1&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;prompt primaire (invite du shell) (# pour root=super user)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;PS2&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;prompt secondaire (suite commande incomplete)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;PWD&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;r&#195;&#169;pertoire courant (mis &#195; jour pour chaque &lt;i&gt;cd&lt;/i&gt; avec ksh)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;PATH&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;r&#195;&#169;pertoires d'acc&#195;&#168;s aux commandes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;TERM&lt;/td&gt; &lt;td WIDTH=&#034;5%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;74%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;type de terminal&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Pour conna&#195;&#174;tre la signification des autres variables du shell telles que LANG , DISPLAY , TMOUT , ... , il suffit d'activer l'aide en ligne sur le shell (&lt;i&gt;man sh-posix&lt;/i&gt;).&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;h3&gt;&lt;a name=&#034;5&#034;&gt;5. Caract&#195;&#168;res de protections&lt;/a&gt;&lt;/h3&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;13%&#034;&gt;&lt;i&gt;\&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;87%&#034;&gt; &lt;p&gt; Le caract&#195;&#168;re qui suit perd son r&#195;&#180;le fonctionnel&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;13%&#034;&gt;&lt;i&gt;' '&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;87%&#034;&gt; &lt;p&gt; Tous les caract&#195;&#168;res situ&#195;&#169;s entre les simples quotes perdent leur r&#195;&#180;le fonctionnel&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;13%&#034;&gt;&lt;i&gt;&#034; &#034;&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;87%&#034;&gt; &lt;p&gt; Tous les caract&#195;&#168;res situ&#195;&#169;s entre les doubles quotes perdent leur r&#195;&#180;le fonctionnel sauf :&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;13%&#034;&gt;$&lt;/td&gt; &lt;td width=&#034;87%&#034;&gt; &lt;p&gt; Valeur de variable&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;13%&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;commande&lt;/code&gt;&lt;/td&gt; &lt;td width=&#034;87%&#034;&gt; &lt;p&gt; Substitution de commande&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;i&gt;Exemples:&lt;/i&gt;&lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo *&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;fifi loulou rep repbis riri&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo \*&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;*&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo &#034;Type de terminal : $TERM &#034;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Type de terminal : vt220&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo 'Type de terminal : $TERM '&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Type de terminal : $TERM&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo &#034;Type de terminal : \$ $TERM \$&#034;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;Type de terminal : $ vt220 $&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo &#034;La date est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date&lt;/code&gt;&#034;&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;La date est Sat Dec 16 15:58:39 GMT 1995&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo 'La date est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date&lt;/code&gt;'&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;La date est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date&lt;/code&gt;&lt;/p&gt; &lt;p&gt;$&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;font FACE=&#034;Courier New&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;/font&gt; &lt;b&gt;&lt;i&gt; &lt;h3&gt;&lt;a NAME=&#034;6&#034;&gt;6. &lt;u&gt;Affectation du r&#195;&#169;sultat d'une commande&lt;/u&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Substitutions de commandes&lt;/i&gt;&lt;/b&gt; peut-&#195;&#170;tre utile de r&#195;&#169;cup&#195;&#169;rer le r&#195;&#169;sultat d'une commande dans une variable ; deux syntaxes sont possibles :&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;i&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;commande&lt;/code&gt;&lt;/i&gt; Le r&#195;&#169;sultat de la commande est ins&#195;&#169;r&#195;&#169; dans la liste d'arguments&lt;/li&gt; &lt;li&gt;&lt;i&gt;$(commande) &lt;/i&gt;Autre notation possible en Korn-shell. Permet les imbrications&lt;/li&gt; &lt;/ul&gt; &lt;p&gt; &lt;/p&gt; &lt;u&gt; &lt;p&gt;L'ancienne :&lt;/u&gt; utilisation de &lt;b&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Exemple : $ CPATH=&lt;/code&gt;pwd&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;/p&gt; &lt;p&gt;$ echo $CPATH&lt;/p&gt; &lt;p&gt;/users/user1&lt;/p&gt; &lt;u&gt; &lt;p&gt;La &#034;nouvelle&#034;&lt;/u&gt; (d&#195;&#169;coulant des normes POSIX) : utilisation de &lt;b&gt;$( )&lt;/p&gt; &lt;/b&gt; &lt;p&gt;Exemple : $ CPATH=&lt;b&gt;$(&lt;/b&gt;pwd&lt;b&gt;) &lt;/b&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h2&gt;&lt;a NAME=&#034;b&#034;&gt;B. Evaluation d&#226;&#8364;&#8482;expressions math&#195;&#169;matiques&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;La commande &lt;b&gt;let&lt;/b&gt; permet d&#226;&#8364;&#8482;effectuer des calculs, en utilisant les op&#195;&#169;rateurs suivants :&lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;27&#034;&gt;+&lt;/td&gt; &lt;td width=&#034;96&#034;&gt; addition&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;27&#034;&gt;-&lt;/td&gt; &lt;td width=&#034;96&#034;&gt; soustraction&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;27&#034;&gt;\*&lt;/td&gt; &lt;td width=&#034;96&#034;&gt; multiplication&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;27&#034;&gt;/&lt;/td&gt; &lt;td width=&#034;96&#034;&gt; division&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Les syntaxes:&lt;/p&gt; &lt;p&gt;&lt;b&gt;let&lt;/b&gt; &lt;i&gt;expression&lt;/i&gt; est &#195;&#169;quivalent &#195; &lt;b&gt;((&lt;/b&gt; &lt;i&gt;expression&lt;/i&gt; &lt;b&gt;))&lt;/p&gt; &lt;/b&gt; &lt;p&gt;sont strictement &#195;&#169;quivalents.&lt;/p&gt; &lt;i&gt; &lt;p&gt;Exemples :&lt;/p&gt; &lt;/i&gt; &lt;p&gt;$ x=4&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;let&lt;/b&gt; x=x+1 &lt;i&gt;# pas d'utilisation du &#034;$&#034;&lt;/p&gt; &lt;/i&gt; &lt;p&gt;$ echo $x&lt;/p&gt; &lt;p&gt;5&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ (( y = x / 2 )) ; echo $y&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;2&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ let &#034;z = x %2&#034; ; echo $z&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;1&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. Fonctionnalit&#195;&#169;s du Korn Shell&lt;/a&gt;&lt;/h2&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;a NAME=&#034;1-&#034;&gt;1. Substitution du &#034;tilde&#034;&lt;/a&gt;&lt;/font&gt;&lt;/h3&gt; &lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;~&lt;/b&gt; est remplac&#195;&#169; par le r&#195;&#169;pertoire de connexion,&lt;/p&gt; &lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;~user&lt;/b&gt; est remplac&#195;&#169; par le r&#195;&#169;pertoire de connexion de l'utilisateur &lt;i&gt;user&lt;/i&gt;.&lt;/p&gt; &lt;i&gt; &lt;b&gt;&lt;u&gt;&lt;font SIZE=&#034;4&#034; COLOR=&#034;#7f007f&#034;&gt; &lt;p&gt;&lt;a NAME=&#034;_Toc379030953&#034;&gt;&lt;/p&gt; &lt;/a&gt;&lt;/font&gt;&lt;/u&gt;&lt;/b&gt; &lt;/i&gt; &lt;h3&gt;&lt;a NAME=&#034;2-&#034;&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;2. Les alias&lt;/font&gt;&lt;/a&gt;&lt;/h3&gt; &lt;b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;alias&lt;/b&gt; permet de d&#195;&#169;finir simplement de nouvelles commandes (abr&#195;&#169;g&#195;&#169;es)&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt;&lt;i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; &lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; $ alias qui=&#226;&#8364;&#8482;who | cut -c-8&#226;&#8364;&#8482; &lt;i&gt;d&#195;&#169;finit un nouvel alias&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ alias h=history&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ alias del='rm -i'&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ unalias h &lt;i&gt;d&#195;&#169;truit l'alias h&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ alias &lt;i&gt;affiche la liste des alias&lt;/p&gt; &lt;/i&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;i&gt; &lt;b&gt; &lt;p&gt; &lt;/p&gt; &lt;/b&gt;&lt;/i&gt; &lt;h3&gt;&lt;a NAME=&#034;3-&#034;&gt;3. Fichiers d'initialisation&lt;/a&gt;&lt;/h3&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Lors de la connexion d'un utilisateur utilisant un Korn shell, les fichiers lus successivement sont :&lt;/p&gt; &lt;i&gt; &lt;ul&gt; &lt;li&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;/etc/profile&lt;/i&gt;, contenant la configuration commune aux utilisateurs,&lt;/li&gt; &lt;i&gt; &lt;li&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$HOME/.profile&lt;/i&gt;, o&#195;&#185; l'utilisateur peut personnaliser son environnement (umask, modification de PS1, ...)&lt;/li&gt; &lt;/ul&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;De plus, si la variable &lt;b&gt;ENV&lt;/b&gt; contient un nom de fichier lisible, ce dernier sera lu (ainsi qu'au lancement de shells fils). Conventionnellement, il s'agit de &lt;i&gt;$HOME/.kshrc&lt;/i&gt;.&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;&lt;img SRC=&#034;/base/shell1.gif&#034; width=&#034;357&#034; height=&#034;377&#034; &gt;&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;connect&#195;&#169;...&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;h3&gt;&lt;a NAME=&#034;4-&#034;&gt;4. Historique des commandes&lt;/a&gt;&lt;/h3&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;a) Utilisation de la variable EDITOR&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;La variable &lt;b&gt;EDITOR&lt;/b&gt; peut contenir le nom d'un &#195;&#169;diteur (vi, emacs, ...) ; dans ce cas, le fichier &lt;i&gt;.sh_history &lt;/i&gt;est &#195;&#169;dit&#195;&#169; &#195; l'aide d'une version mono-ligne de l'&#195;&#169;diteur sp&#195;&#169;cifi&#195;&#169; apr&#195;&#168;s avoir appuy&#195;&#169; sur la touche ESC. Cette &#195;&#169;dition s'effectue &#195; partir de la derni&#195;&#168;re ligne de &lt;i&gt;.sh_history&lt;/i&gt; (c'est-&#195;&#160;-dire en rappelant les commandes les plus r&#195;&#169;centes d'abord). On utilise en g&#195;&#169;n&#195;&#169;ral EDITOR=vi&lt;/p&gt; &lt;font SIZE=&#034;4&#034;&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt; &lt;/font&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ &lt;b&gt;ESC&lt;/b&gt; &lt;i&gt;Edite le fichier .sh_history ligne par ligne avec &lt;b&gt;vi&lt;/b&gt;. L'utilisation des commandes de cet &#195;&#169;diteur permet de modifier une ligne de commande.&lt;/p&gt; &lt;/i&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;b&gt;k &lt;/b&gt;&lt;i&gt;r&#195;&#169;cup&#195;&#169;rer les commande &#195; partir de la plus r&#195;&#169;cente,&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/i&gt;&lt;b&gt;l,h&lt;/b&gt; &lt;i&gt;d&#195;&#169;placement sur la ligne&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/i&gt;&lt;b&gt;a, i&lt;/b&gt; &lt;i&gt;passage en mode insertion&lt;/p&gt; &lt;p ALIGN=&#034;JUSTIFY&#034;&gt;&lt;/i&gt;...&lt;/p&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;font SIZE=&#034;4&#034; COLOR=&#034;#7f007f&#034;&gt; &lt;p&gt; &lt;/p&gt; &lt;/font&gt;&lt;/u&gt; &lt;/i&gt;&lt;/b&gt; &lt;h3&gt;&lt;a name=&#034;5-&#034;&gt;5. Les m&#195;&#169;ta caract&#195;&#168;res :&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Une des premi&#195;&#168;res fonctions du shell est d'&lt;b&gt;interpr&#195;&#169;ter un certain nombre de caract&#195;&#168;res&lt;/b&gt; &lt;b&gt;avant l'appel des commandes&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;Il est &#195; noter que &lt;b&gt;les commandes Unix ne traitent pas les caract&#195;&#168;res sp&#195;&#169;ciaux&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;Elles h&#195;&#169;ritent d'une liste de param&#195;&#168;tres d&#195;&#169;j&#195; r&#195;&#169;solue et ne se pr&#195;&#169;occupent pas de m&#195;&#169;canismes comme les redirections ou le &#194;&#171;pipeline&#194;&#187;.&lt;/p&gt; &lt;p&gt;Ce principe de base favorise grandement l&#226;&#8364;&#8482;activit&#195;&#169; de programmation et s&#226;&#8364;&#8482;inscrit parfaitement dans la d&#195;&#169;marche &#194;&#171;bo&#195;&#174;te &#195; outils&#194;&#187; modulaire voulue par les concepteurs du syst&#195;&#168;me.&lt;/p&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;Rappel des caract&#195;&#168;res d&#195;&#169;j&#195; &#195;&#169;voqu&#195;&#169;s&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;table border=&#034;1&#034; width=&#034;311&#034;&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;&lt;&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; Redirection de l'entr&#195;&#169;e standard&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;&gt; et &gt;&gt;&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; Redirections de la sortie standard&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;2&gt; et 2&gt;&gt;&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; Redirections de l'erreur standard&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;; &lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; Processus s&#195;&#169;quentiels&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;| &lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; M&#195;&#169;canisme du &#194;&#171;pipeline&#194;&#187;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;&amp;&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; Mode arri&#195;&#168;re-plan&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;( )&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; Grouper des commandes&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;=&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; &lt;p&gt; Affectation de variable&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;67&#034;&gt;$&lt;/td&gt; &lt;td width=&#034;228&#034;&gt; Contenu d'une variable&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;b&gt;&lt;i&gt; &lt;p&gt;D&#195;&#169;signations abr&#195;&#169;g&#195;&#169;es de noms de fichiers&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;21%&#034;&gt;&lt;i&gt;* &lt;/i&gt;&lt;/td&gt; &lt;td width=&#034;79%&#034;&gt;N'importe quelle cha&#195;&#174;ne dans un nom de fichier Utilis&#195;&#169; seul, signifie : &#194;&#171;Tous les fichiers du r&#195;&#169;pertoire courant&#194;&#187; ( Ne s&#195;&#169;lectionne pas les fichiers commen&#195;&#167;ant par . ( point ) )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;21%&#034;&gt;&lt;i&gt;?&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;79%&#034;&gt; Pr&#195;&#169;sence d&#226;&#8364;&#8482;un caract&#195;&#168;re quelconque dans un nom de fichier&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;21%&#034;&gt;&lt;i&gt;[ensemble_caract&#195;&#168;res]&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;79%&#034;&gt; Pr&#195;&#169;sence d&#226;&#8364;&#8482;un caract&#195;&#168;re de l&#226;&#8364;&#8482;ensemble&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;21%&#034;&gt; &lt;p&gt;&lt;i&gt;[!ensemble_caract&#195;&#168;res]&lt;/i&gt; &lt;/p&gt; &lt;/td&gt; &lt;td width=&#034;79%&#034;&gt;&lt;p&gt; Pr&#195;&#169;sence d&#226;&#8364;&#8482;un caract&#195;&#168;re ne figurant pas dans l&#226;&#8364;&#8482;ensemble&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Exemple :&lt;/p&gt; &lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;100%&#034;&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo *&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;fifi loulou rep repbis riri&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;echo .??*&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;.exrc .profile .sh_history&lt;/p&gt; &lt;p&gt;$ &lt;b&gt;&lt;i&gt;ls -l .[!.]*&lt;/p&gt; &lt;/i&gt;&lt;/b&gt; &lt;p&gt;-rw-r--r-- 1 stage1 stage 38 Oct 16 18:51 .exrc&lt;/p&gt; &lt;p&gt;-rwxr-xr-x 1 stage1 stage 390 Oct 17 10:49 .profile&lt;/p&gt; &lt;p&gt;-rw------- 1 stage1 stage 2736 Dec 16 15:27 .sh_history&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;R&#195;&#169;sum&#195;&#169; :&lt;/p&gt; &lt;table BORDER=&#034;1&#034; CELLSPACING=&#034;1&#034; CELLPADDING=&#034;4&#034; WIDTH=&#034;614&#034;&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt;&lt;i&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;Caract&#195;&#168;res&lt;/i&gt;&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034; BGCOLOR=&#034;#ffffff&#034;&gt;&lt;i&gt; &lt;p ALIGN=&#034;CENTER&#034;&gt;Signification&lt;/i&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;&#034; ' \&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;D&#195;&#169;sp&#195;&#169;cialisation des caract&#195;&#168;res interpr&#195;&#169;t&#195;&#169;s par le shell.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;&lt; espace&gt; &lt; tab&gt;&lt;/p&gt; &lt;p&gt;&lt; retour chariot &gt;&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;S&#195;&#169;parateurs de mots.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;; &amp;&amp; ||&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Encha&#195;&#174;nement de commandes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;* ? [! - ]&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;G&#195;&#169;n&#195;&#169;ration automatique de noms de fichiers.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;&lt; &lt;&lt; &gt; &gt;&gt; &gt;|&lt;/p&gt; &lt;p&gt;&lt;&amp; &lt;- &gt;&amp; &gt;-&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Redirection et duplication des entr&#195;&#169;es / sorties.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;$ ${ }&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Substitution de variable.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;$( )&lt;/code&gt;&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Substitution de commande.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;&amp;&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Lancement de commande en arri&#195;&#168;re plan&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;#&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Commentaire.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;( )&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Sous-environnement.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td WIDTH=&#034;21%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;~ ~login ~+ ~-&lt;/td&gt; &lt;td WIDTH=&#034;7%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;/td&gt; &lt;td WIDTH=&#034;72%&#034; VALIGN=&#034;TOP&#034;&gt; &lt;p&gt;Substitution de r&#195;&#169;pertoire.&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Les processus </title>
		<link>https://admin-sys.org/?les-processus</link>
		<guid isPermaLink="true">https://admin-sys.org/?les-processus</guid>
		<dc:date>2008-09-16T09:32:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;VII. Les processus et m&#195;&#169;canismes de base d'Unix &lt;br class='autobr' /&gt; A. D&#195;&#169;finitions et attributs &lt;br class='autobr' /&gt;
Un programme est une suite d'instructions stock&#195;&#169;es dans un fichier (binaire ou contenant des commandes). Une fois lanc&#195;&#169;, un programme donne naissance &#195; une entit&#195;&#169; appel&#195;&#169;e processus (un m&#195;&#170;me programme peut &#195;&#170;tre ex&#195;&#169;cut&#195;&#169; simultan&#195;&#169;ment par plusieurs utilisateurs &#194;&#174; plusieurs processus distincts). &lt;br class='autobr' /&gt;
La notion de programme est statique ; celle de processus &lt;br class='autobr' /&gt;
est dynamique : un processus est l'ex&#195;&#169;cution (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h1&gt; VII. Les processus et m&#195;&#169;canismes de base d'Unix
&lt;/h1&gt; &lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. D&#195;&#169;finitions et attributs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un &lt;b&gt;programme&lt;/b&gt; est une suite d'instructions stock&#195;&#169;es dans un fichier&lt;br class='autobr' /&gt;
(binaire ou contenant des commandes). Une fois lanc&#195;&#169;, un programme donne&lt;br class='autobr' /&gt;
naissance &#195; une entit&#195;&#169; appel&#195;&#169;e &lt;b&gt;processus&lt;/b&gt; (un m&#195;&#170;me programme peut&lt;br class='autobr' /&gt;
&#195;&#170;tre ex&#195;&#169;cut&#195;&#169; simultan&#195;&#169;ment par plusieurs utilisateurs &#194;&#174;&lt;br class='autobr' /&gt;
plusieurs processus distincts).&lt;/p&gt;
&lt;p&gt;La notion de &lt;b&gt;programme&lt;/b&gt; est &lt;b&gt;statique&lt;/b&gt; ; celle de &lt;b&gt;processus&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;est &lt;b&gt;dynamique&lt;/b&gt; &lt;i&gt; : un processus &lt;b&gt;est&lt;/b&gt; l'ex&#195;&#169;cution d'un programme&lt;/i&gt;.&lt;br class='autobr' /&gt;
Il est cr&#195;&#169;&#195;&#169; &#195; un certain moment, a une certaine dur&#195;&#169;e de vie, puis meurt.&lt;/p&gt;
&lt;p&gt;Un processus est caract&#195;&#169;ris&#195;&#169; par un num&#195;&#169;ro, son &lt;b&gt;PID. &lt;/b&gt;Ce num&#195;&#169;ro est&lt;br class='autobr' /&gt;
unique sur le syst&#195;&#168;me &#195; un instant donn&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Un Shell en fonctionnement est un exemple de processus.&lt;/p&gt;
&lt;p&gt;L&#226;&#8364;&#8482;activit&#195;&#169; du syst&#195;&#168;me se traduit par la pr&#195;&#169;sence simultan&#195;&#169;e de nombreux&lt;br class='autobr' /&gt;
processus dans une politique de &lt;b&gt;temps partag&#195;&#169;&lt;/b&gt; dans laquelle le noyau&lt;br class='autobr' /&gt;
g&#195;&#168;re le partage des ressources ( acc&#195;&#168;s &#195; la m&#195;&#169;moire, au(x) processeur(s)&lt;br class='autobr' /&gt;
etc... ).&lt;/p&gt;
&lt;p&gt;Chaque processus pr&#195;&#169;sent dans le syst&#195;&#168;me occupe diff&#195;&#169;rentes r&#195;&#169;gions en&lt;br class='autobr' /&gt;
m&#195;&#169;moire. Du &lt;b&gt;point de vue de leur fonctions&lt;/b&gt;, on peut distinguer :&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;une &lt;i&gt;zone de texte&lt;/i&gt; (code de la commande),&lt;/li&gt; &lt;li&gt;une &lt;i&gt;zone de donn&#195;&#169;es statiques&lt;/i&gt;, contenant les donn&#195;&#169;es du&lt;br class='autobr' /&gt; programme connues d&#195;&#168;s sa compilation (variables globales ou statiques&lt;br class='autobr' /&gt; du C par exemple),&lt;/li&gt;&lt;li&gt;une &lt;i&gt;pile utilisateur&lt;/i&gt; r&#195;&#169;serv&#195;&#169;e aux variables dynamiques cr&#195;&#169;es&lt;br class='autobr' /&gt; au moment de l'ex&#195;&#169;cution (variables locales en C),&lt;/li&gt; &lt;li&gt;une &lt;i&gt;pile syst&#195;&#168;me&lt;/i&gt;, utilis&#195;&#169;e lors de l'ex&#195;&#169;cution de fonctions&lt;br class='autobr' /&gt; syst&#195;&#168;me,&lt;/li&gt; &lt;li&gt;une &lt;i&gt;zone de tas&lt;/i&gt; r&#195;&#169;serv&#195;&#169;e &#195; l'allocation dynamique (par&lt;br class='autobr' /&gt; exemple, la fonction new() en C++),&lt;/li&gt;&lt;li&gt;un &lt;i&gt;bloc de contr&#195;&#180;le&lt;/i&gt; r&#195;&#169;unissant l'ensemble des informations&lt;br class='autobr' /&gt; concernant le processus&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;u&gt;&lt;/p&gt;
&lt;/u&gt;
&lt;p&gt;Une m&#195;&#170;me zone de texte peut-&#195;&#170;tre partag&#195;&#169;e par plusieurs processus (un tel&lt;br class='autobr' /&gt;
programme est qualifi&#195;&#169; de &lt;i&gt;r&#195;&#169;entrant&lt;/i&gt;). Les autres zones m&#195;&#169;moires sont&lt;br class='autobr' /&gt;
en revanche propres &#195; un processus.&lt;/p&gt;
&lt;p&gt;Du &lt;b&gt;point de vue de l'emplacement physique en m&#195;&#169;moire&lt;/b&gt;, on distingue :&lt;/p&gt;
&lt;p&gt;La &lt;i&gt;zone utilisateur&lt;/i&gt; : c'est la zone m&#195;&#169;moire que le processus peut&lt;br class='autobr' /&gt; adresser lorsqu'il s'ex&#195;&#169;cute en &lt;i&gt;mode utilisateur&lt;/i&gt;, c'est-&#195; -dire tant&lt;br class='autobr' /&gt; qu'il n'ex&#195;&#169;cute pas d'appel-syst&#195;&#168;me. Cette r&#195;&#169;gion contient les &lt;b&gt;zones&lt;br class='autobr' /&gt; de texte, de pile et de tas&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;La &lt;i&gt;zone syst&#195;&#168;me&lt;/i&gt; : C'est la zone m&#195;&#169;moire suppl&#195;&#169;mentaire que peut&lt;br class='autobr' /&gt; adresser le processeur lorsqu'il est en &lt;i&gt;mode noyau&lt;/i&gt;, c'est-&#195; -dire&lt;br class='autobr' /&gt; lorsqu'il ex&#195;&#169;cute un appel-syst&#195;&#168;me. Cette zone contient le &lt;i&gt;noyau&lt;/i&gt;,&lt;br class='autobr' /&gt; c'est-&#195; -dire le code de tous les appels-syst&#195;&#168;me, les &lt;i&gt;tables du syst&#195;&#168;me&lt;/i&gt;&lt;br class='autobr' /&gt; (i-noeud en m&#195;&#169;moire, fichiers ouverts, processus, ...) et la &lt;i&gt;pile&lt;br class='autobr' /&gt; syst&#195;&#168;me&lt;/i&gt; de chaque processus (pile allou&#195;&#169;e aux processus s'ex&#195;&#169;cutant&lt;br class='autobr' /&gt; en mode noyau).&lt;/p&gt;
&lt;p&gt;Unix est un syst&#195;&#168;me &#194;&#171; classique&#194; &#187; &#195; &lt;b&gt;m&#195;&#169;moire virtuelle&lt;/b&gt;. Le noyau&lt;br class='autobr' /&gt;
g&#195;&#168;re un espace m&#195;&#169;moire constitu&#195;&#169; de la m&#195;&#169;moire physique et de l&#226;&#8364;&#8482;espace de&lt;br class='autobr' /&gt;
pagination ( &#194;&#171; zone(s) de swap&#194; &#187; ).&lt;/p&gt;
&lt;p&gt;Un processus en erreur ne peut pas compromettre l&#226;&#8364;&#8482;int&#195;&#169;grit&#195;&#169; du syst&#195;&#168;me.&lt;/p&gt;
&lt;p&gt;En effet, dans cette situation, le noyau met fin au processus via une&lt;br class='autobr' /&gt;
interruption ( &#194;&#171; signal&#194; &#187; ) qui,&lt;/p&gt;
&lt;p&gt;dans la plupart des cas, provoque la g&#195;&#169;n&#195;&#169;ration d&#226;&#8364;&#8482;un &#194;&#171; dump&#194; &#187; de l&#226;&#8364;&#8482;image&lt;br class='autobr' /&gt;
m&#195;&#169;moire du processus&lt;/p&gt;
&lt;p&gt;sous la forme d&#226;&#8364;&#8482;un &lt;b&gt;fichier &#194;&#171; core&#194; &#187;&lt;/b&gt; cr&#195;&#169;&#195;&#169; dans le r&#195;&#169;pertoire&lt;br class='autobr' /&gt;
courant.&lt;/p&gt;
&lt;p&gt;De tels fichiers peuvent ensuite &#195;&#170;tre exploit&#195;&#169;s &#195; l&#226;&#8364;&#8482;aide de d&#195;&#169;bogueurs&lt;br class='autobr' /&gt;
ou simplement &#195;&#169;limin&#195;&#169;s.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;b&#034;&gt;B. Les diff&#195;&#169;rents &#195;&#169;tat d&#226;&#8364;&#8482;un processus :&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un processus a une dur&#195;&#169;e de vie limit&#195;&#169;e ; voici le cycle de vie type d'un&lt;br class='autobr' /&gt;
processus :&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;img src='https://admin-sys.org/base/schema.gif' width='500' height='437' &gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;a NAME=&#034;_Toc379028256&#034;&gt;
&lt;p&gt;
&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a NAME=&#034;c&#034;&gt;C. Lancement d'un processus&lt;/a&gt;&lt;/h2&gt;&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Tous les processus (&#195; l'exception du premier, cr&#195;&#169;&#195;&#169; au boot),&lt;br class='autobr' /&gt;
sont lanc&#195;&#169;s par un autre processus.&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;En g&#195;&#169;n&#195;&#169;ral, c'est un shell qui lance un nouveau processus&lt;br class='autobr' /&gt;
UNIX, selon l'une de deux m&#195;&#169;thodes suivantes :&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;img src='https://admin-sys.org/base/process.gif' width='500' height='334' &gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;br class='autobr' /&gt; &lt;a name=&#034;1&#034;&gt;&lt;br class='autobr' /&gt; a. Lancement d'un processus en avant plan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;img src='https://admin-sys.org/base/process2.gif' width='438' height='482' &gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Ce m&#195;&#169;canisme repose donc sur quatre appels syst&#195;&#168;mes constituant les&lt;br class='autobr' /&gt;
&#195;&#169;l&#195;&#169;ments de base de l&#226;&#8364;&#8482;interface de programmation syst&#195;&#168;me ( en langage C ) :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;- &lt;b&gt;fork&lt;/b&gt; Duplication de processus.&lt;/p&gt;
&lt;p&gt;Apr&#195;&#168;s le &#194;&#171; fork&#194; &#187;, deux processus ex&#195;&#169;cutent le m&#195;&#170;me code. Il y a&lt;br class='autobr' /&gt; un code retour diff&#195;&#169;rent pour chaque processus, leur permettant de s&#226;&#8364;&#8482;aiguiller&lt;br class='autobr' /&gt; vers deux endroits respectifs dans la suite du programme.&lt;/p&gt;
&lt;p&gt;- &lt;b&gt;exec&lt;/b&gt; M&#195;&#169;canisme de recouvrement ( &#194;&#171; overlay&#194; &#187; ). L&#226;&#8364;&#8482;ancien&lt;br class='autobr' /&gt; code est remplac&#195;&#169; par un nouveau programme dans le cadre du m&#195;&#170;me&lt;br class='autobr' /&gt; processus. Apr&#195;&#168;s un &#194;&#171; exec&#194; &#187; r&#195;&#169;ussi, on ne revient jamais dans l&#226;&#8364;&#8482;ancien&lt;br class='autobr' /&gt; programme.&lt;/p&gt;
&lt;p&gt;- &lt;b&gt;wait&lt;/b&gt; Attente de la fin d&#226;&#8364;&#8482;un processus &#194;&#171; fils&#194; &#187;. La fin du&lt;br class='autobr' /&gt; processus fils d&#195;&#169;bloque cet appel syst&#195;&#168;me et permet de r&#195;&#169;cup&#195;&#169;rer un&lt;br class='autobr' /&gt; code retour. Il est n&#195;&#169;cessaire, dans ces sch&#195;&#169;mas de programmation&lt;br class='autobr' /&gt; multi-t&#195;&#162;ches, d&#226;&#8364;&#8482;effectuer, &#195; un moment donn&#195;&#169;, un &#194;&#171; wait&#194; &#187; sur les&lt;br class='autobr' /&gt; fils g&#195;&#169;n&#195;&#169;r&#195;&#169;s pour &#195;&#169;viter la cr&#195;&#169;ation de processus dit &lt;b&gt;&#194;&#171; zombies&#194; &#187;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; ( &#194;&#171; defunct&#194; &#187; ).&lt;/p&gt;
&lt;p&gt;- &lt;b&gt;exit&lt;/b&gt; Terminaison d&#226;&#8364;&#8482;un processus. Lib&#195;&#169;ration des&lt;br class='autobr' /&gt; ressources et d&#195;&#169;blocage d&#226;&#8364;&#8482;un &#195;&#169;ventuel &#194;&#171; wait&#194; &#187; sym&#195;&#169;trique avec&lt;br class='autobr' /&gt; propagation d&#226;&#8364;&#8482;un code retour.&lt;/p&gt;
&lt;p&gt; &lt;i&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Attributs d'un processus&lt;/p&gt;
&lt;p&gt; &lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;PID&lt;/td&gt; &lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;/p&gt;
&lt;td width=&#034;85%&#034;&gt;Num&#195;&#169;ro identifiant le processus ( unique &#195; un instant donn&#195;&#169; )&lt;/td&gt; &lt;/tr&gt; &lt;p&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;PPID &lt;/td&gt; &lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;/p&gt;
&lt;td width=&#034;85%&#034;&gt;Num&#195;&#169;ro du processus &#194;&#171; parent&#194; &#187;&lt;/td&gt;&lt;/tr&gt; &lt;p&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;UID&lt;/td&gt; &lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;/p&gt;
&lt;td width=&#034;85%&#034;&gt;Propri&#195;&#169;taire&lt;/b&gt;&lt;/i&gt;.&lt;br&gt; Par d&#195;&#169;faut, il s&#226;&#8364;&#8482;agit du &#194;&#171; login&#194; &#187; ayant lanc&#195;&#169; le programme. Si le programme poss&#195;&#168;de la permission &#194;&#171; SUID&#194; &#187;, le propri&#195;&#169;taire du processus est celui du programme.&lt;i&gt;&lt;b&gt;
&lt;p&gt; &lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;GUID&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;Groupe du propri&#195;&#169;taire.&lt;br&gt; Par d&#195;&#169;faut, il s&#226;&#8364;&#8482;agit du groupe principal du &#194;&#171; login&#194; &#187;.Si le programme poss&#195;&#168;de la permission &#194;&#171; SGID&#194; &#187; , le groupe propri&#195;&#169;taire du processus est celui du programme.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;TTY&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;Terminal de contr&#195;&#180;le&lt;br&gt; Il n&#226;&#8364;&#8482;est pas toujours d&#195;&#169;fini ( processus de type &#194;&#171; daemon&#194; &#187; ). Celui-ci est d&#195;&#169;fini par d&#195;&#169;faut pour les processus lanc&#195;&#169;s en interactif, il peut aussi &#195;&#170;tre d&#195;&#169;fini par programmation. On pr&#195;&#169;cisera son utilit&#195;&#169; plus loin dans ce chap&#195;&#174;tre ( redirections ).&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;NICE VALUE &lt;/td&gt;&lt;td width=&#034;85%&#034;&gt;Valeur de priorit&#195;&#169; de d&#195;&#169;part.&lt;br&gt; Cette priorit&#195;&#169; &#195;&#169;volue ensuite au fur et &#195; mesure de l&#226;&#8364;&#8482;ex&#195;&#169;cution pour respecter la politique &#194;&#171; &#195;&#169;galitaire&#194; &#187; du temps partag&#195;&#169;.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034; valign=&#034;top&#034;&gt;CLASSE&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt; Sur certaines versions, il peut exister d&#226;&#8364;&#8482;autres classes de processus que celle, par d&#195;&#169;faut, du temps partag&#195;&#169;.Par exemple, en &lt;b&gt;System V.4&lt;/b&gt;, on trouve la &lt;b&gt;classe RT&lt;/b&gt; (&#194;&#171; Real Time&#194; &#187;)qui est plus prioritaire que la classe TS (&#194;&#171; Time Sharing&#194; &#187;) et dans laquelle les priorit&#195;&#169;s sont fixes.&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;font SIZE=&#034;4&#034; COLOR=&#034;#7f007f&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;br class='autobr' /&gt;
&lt;a name=&#034;2&#034;&gt;&lt;br class='autobr' /&gt;
b. Lancement d'un processus en arri&#195;&#168;re-plan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Les lancements en arri&#195;&#168;re-plan (ou background) se&lt;br class='autobr' /&gt;
distinguent des lancements en avant plan (ou foreground) par le fait que le&lt;br class='autobr' /&gt;
processus p&#195;&#168;re n'attend pas la fin de l'ex&#195;&#169;cution du processus fils pour&lt;br class='autobr' /&gt;
continuer &#195; travailler.&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;img src='https://admin-sys.org/base/process3.gif' width='407' height='482' &gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;syntaxe :&lt;/i&gt; $ cmde &lt;b&gt;&amp;&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;br class='autobr' /&gt; &lt;/b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;r&#195;&#169;sultat imm&#195;&#169;diat :&lt;/i&gt; [Num d'ordre]&lt;b&gt; PID&lt;/p&gt;
&lt;p&gt; &lt;/b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;r&#195;&#169;sultat en fin d'execution :&lt;/i&gt; message du type&lt;b&gt;&lt;i&gt;&lt;br class='autobr' /&gt; terminate ,done , killed ,...&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;Exemples :&lt;/i&gt; $ sleep 100 &amp;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;[1] 4789&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt;$ _&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On peut souhaiter &lt;b&gt;lancer un programme sans attendre la fin&lt;/b&gt; de&lt;br class='autobr' /&gt;
celui-ci.&lt;/p&gt;
&lt;p&gt;On utilise le caract&#195;&#168;re &lt;b&gt;&amp;&lt;/b&gt; pour lancer une commande en&lt;br class='autobr' /&gt;
arri&#195;&#168;re-plan.&lt;/p&gt;
&lt;p&gt;Le processus cr&#195;&#169;&#195;&#169; h&#195;&#169;rite des descripteurs de fichiers ( entr&#195;&#169;e, sortie et&lt;br class='autobr' /&gt;
erreur ) du processus shell.&lt;/p&gt;
&lt;p&gt;Il convient donc d'utiliser les redirections afin d'&#195;&#169;viter l'arriv&#195;&#169;e&lt;br class='autobr' /&gt;
p&#195;&#169;riodique de messages ou r&#195;&#169;sultats sur l'&#195;&#169;cran.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;ls -alR / &gt; resul 2&gt; /dev/null &amp;&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[1] 18676&lt;/p&gt;
&lt;p&gt;$ ps -fu stage1&lt;/p&gt;
&lt;p&gt;UID PID PPID C STIME TTY TIME COMD&lt;/p&gt;
&lt;p&gt;stage1 18677 18397 10 12:25:46 pts/2 0:00 ps -fu stage1&lt;/p&gt;
&lt;p&gt;stage1 18397 18395 1 09:02:43 pts/2 0:02 -ksh&lt;/p&gt;
&lt;p&gt;stage1 18676 18397 46 12:25:36 pts/2 0:07 ls -alR /&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La fin du programme sera visualis&#195;&#169;e par un message &#195; l&#226;&#8364;&#8482;&#195;&#169;cran lors d&#226;&#8364;&#8482;une&lt;br class='autobr' /&gt;
entr&#195;&#169;e clavier.&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;entr&#195;&#169;e clavier plus tard ...&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[1] + Done(2) ls -alR / &gt; resul 2&gt; /dev/null &amp;&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt;Mode d&#195;&#169;tach&#195;&#169; ( pouvoir se d&#195;&#169;connecter )&lt;/p&gt;
&lt;p&gt;
&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Le fait de se d&#195;&#169;connecter entra&#195;&#174;ne, par d&#195;&#169;faut, l'interruption des&lt;br class='autobr' /&gt;
processus lanc&#195;&#169;s en arri&#195;&#168;re-plan.&lt;/p&gt;
&lt;p&gt;Ceux-ci re&#195;&#167;oivent en effet le &lt;i&gt;signal &#194;&#171; SIGHUP&#194; &#187; de fin de session&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;nohup&lt;/b&gt; prot&#195;&#168;ge le processus lanc&#195;&#169; en arri&#195;&#168;re-plan contre&lt;br class='autobr' /&gt;
ce signal et permet ainsi d&#226;&#8364;&#8482;en continuer l&#226;&#8364;&#8482;ex&#195;&#169;cution m&#195;&#170;me apr&#195;&#168;s&lt;br class='autobr' /&gt;
d&#195;&#169;connexion.&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;nohup ls -alR / &gt; resul 2&gt; /dev/null &amp;&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[1] 18692&lt;/p&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Dans ce cas &#195;&#169;galement, il ne faut pas n&#195;&#169;gliger les redirections de la&lt;br class='autobr' /&gt;
sortie et de l'erreur.&lt;/p&gt;
&lt;p&gt;Si aucune redirection n'est faite, les r&#195;&#169;sultats et erreurs sont dirig&#195;&#169;s&lt;br class='autobr' /&gt;
vers un fichier &lt;b&gt;nohup.out&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;dans le r&#195;&#169;pertoire de connexion.&lt;/p&gt;
&lt;p&gt;$ &lt;b&gt;&lt;i&gt;nohup ls -alR / &amp;&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[1] 18707&lt;/p&gt;
&lt;p&gt;$ UX:nohup : INFO : Sending output to nohup.out&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. La commande &#034;ps&#034;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt; &lt;/p&gt;
&lt;p&gt;ps affiche la liste des processus actifs&lt;/p&gt;
&lt;p&gt;Attention, la commande ps est l'une des moins standards du monde Unix en ce&lt;br class='autobr' /&gt;
qui concerne les options et les informations affich&#195;&#169;es.&lt;/p&gt;
&lt;p&gt;Exemples :&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ ps #affiche les processus associ&#195;&#169;s &#195; votre terminal&lt;/dd&gt; &lt;dd&gt;PID TTY TIME COMMAND&lt;/dd&gt; &lt;dd&gt;481 ttyp1 0:00 ps&lt;/dd&gt; &lt;dd&gt;469 ttyp1 0:00 telnetd&lt;/dd&gt; &lt;dd&gt;470 ttyp1 0:00 ksh&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ ps -f #affiche les processus associ&#195;&#169;s au terminal (avec d&#195;&#169;tails)&lt;/dd&gt; &lt;dd&gt;UID PID PPID C STIME TTY TIME COMMAND&lt;/dd&gt; &lt;dd&gt;didier 482 470 5 17:40:33 ttyp1 0:00 ps -f&lt;/dd&gt; &lt;dd&gt;root 469 147 0 17:36:14 ttyp1 0:00 telnetd&lt;/dd&gt; &lt;dd&gt;didier 470 469 1 17:36:14 ttyp1 0:00 -ksh&lt;/dd&gt;&lt;dt&gt; &lt;/dt&gt; &lt;dd&gt;$ ps -l #affiche les processus associ&#195;&#169;s au terminal (avec d&#195;&#169;tails)&lt;/dd&gt; &lt;dd&gt;F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD&lt;/dd&gt; &lt;dd&gt;1 R 204 484 470 5 179 20 539780 16 ttyp1 0:00 ps&lt;/dd&gt; &lt;dd&gt;1 S 0 469 147 0 154 20 53f900 16 2875b8 ttyp1 0:00 telnetd&lt;/dd&gt; &lt;dd&gt;1 S 204 470 469 0 158 20 5398c0 55 34cf40 ttyp1 0:00 ksh&lt;/dd&gt;&lt;/dl&gt;
&lt;p&gt;$ ps -fl #affiche plus de d&#195;&#169;tails&lt;/p&gt;
&lt;p&gt;$ ps -ef | more #affiche tous les processus du syst&#195;&#168;me&lt;/p&gt;
&lt;p&gt;$ ps -u john #affiche tous les processus appartenant &#195; john&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Signification des diff&#195;&#169;rentes colonnes :&lt;/b&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;F &lt;/td&gt;&lt;td width=&#034;84%&#034;&gt;Flag, donnant des indications sur les caract&#195;&#169;ristiques du process&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;S&lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Status&lt;u&gt; &lt;p&gt;Les differents status :&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/p&gt;
&lt;p&gt;R : RUN actif ou non (&#195;&#169;lu ou &#195;&#169;ligible).&lt;/p&gt;
&lt;p&gt;W : WAITING (en attente).&lt;/p&gt;
&lt;p&gt;T : STOP (suspendu).&lt;/p&gt;
&lt;p&gt;S : SLEEPING (endormi).&lt;/p&gt;
&lt;p&gt;Z : ZOMBIE (termin&#195;&#169;).&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;PID &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Process ID &lt;p&gt; &lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;PPID &lt;/td&gt;&lt;td width=&#034;84%&#034;&gt;Parent Process ID&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;TTY &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Terminal&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td width=&#034;16%&#034;&gt;TIME &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Temps d'ex&#195;&#169;cution r&#195;&#169;el&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;STIME &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Start Time (heure ou jour si avant aujourdhui)&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;C&lt;/td&gt; &lt;td width=&#034;84%&#034;&gt; Utilis&#195;&#169; pour le calcul de la priorit&#195;&#169;.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;PRI &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Priorit&#195;&#169; r&#195;&#169;elle , recalcul&#195;&#169;e en permanence par Unix &lt;p&gt; &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;NI &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Nice (Nombre utilis&#195;&#169; pour calculer la priorit&#195;&#169;)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;COMD &lt;/td&gt;&lt;td width=&#034;84%&#034;&gt;Commande (Nom du process)&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME COMD&lt;/dd&gt; &lt;dd&gt;1 R root 17298 15651 19 182 20 840900 21 - 10:16:11 pts/0 0:00 ps -fle&lt;/dd&gt; &lt;dd&gt;1 S root 1080 1 0 156 20 901e00 87 62d000 Apr 22 console 0:00 -sh&lt;/dd&gt;&lt;dd&gt;1 S root 1094 1 0 156 20 785980 0 62d564 Apr 22 tty0p5 0:00 /usr/sbin/getty -h tty0p5 H&lt;/dd&gt; &lt;dd&gt;1 S root 1084 1 0 156 20 9ebf00 0 62d114 Apr 22 tty0p1 0:00 /usr/sbin/getty -h tty0p1 H&lt;/dd&gt; &lt;dd&gt;1 S jerome 13556 13555 0 156 20 856b80 105 607228 09:31:43 ttyp2 0:00 -sh&lt;/dd&gt; &lt;dd&gt;1 S root 1089 1 0 156 20 a26c80 0 62d228 Apr 22 tty0p2 0:00 /usr/sbin/getty -h tty0p2 H&lt;/dd&gt; &lt;dd&gt;1 S root 1091 1 0 156 20 8b3c00 0 62d33c Apr 22 tty0p3 0:00 /usr/sbin/getty -h tty0p3 H&lt;/dd&gt; &lt;dd&gt;1 S root 1092 1 0 156 20 9d9d80 0 62d450 Apr 22 tty0p4 0:00 /usr/sbin/getty -h tty0p4 H&lt;/dd&gt;&lt;dd&gt;1 S root 15651 15511 2 158 20 98d400 94 4f1100 09:56:42 pts/0 0:00 -sh&lt;/dd&gt; &lt;dd&gt;1 S root 13555 599 0 154 20 bd5780 5 599080 09:31:42 ttyp2 0:00 telnetd&lt;/dd&gt;
&lt;/dl&gt;
&lt;font SIZE=&#034;2&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Avec d&#226;&#8364;&#8482;autres options, il est possible de s&#195;&#169;lectionner certaines familles&lt;br class='autobr' /&gt;
de processus.&lt;/p&gt;
&lt;p&gt;Quelques options System V.4 : &lt;/p&gt;
&lt;p&gt;-e Tous les processus&lt;br&gt;&lt;/p&gt;
&lt;p&gt; -t &lt;i&gt;tty&lt;/i&gt; Tous ceux contr&#195;&#180;l&#195;&#169;s par le terminal de nom &lt;i&gt;tty&lt;br&gt; &lt;/i&gt;-u &lt;i&gt;login&lt;/i&gt; Tous ceux d&#226;&#8364;&#8482;un propri&#195;&#169;taire donn&#195;&#169;&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ps -f -u oracle&lt;/dd&gt;
&lt;p&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;UID PID PPID C STIME TTY TIME COMD&lt;/dd&gt;
&lt;dd&gt;oracle 17705 17703 1 17:32:08 pts/3 0:00 -ksh&lt;/dd&gt;
&lt;dd&gt;oracle 17743 1 0 17:32:51 ? 0:00 ora_dbwr_oria&lt;/dd&gt;
&lt;dd&gt;oracle 17744 1 0 17:32:53 ? 0:00 ora_lgwr_oria&lt;/dd&gt;
&lt;dd&gt;oracle 17742 1 0 17:32:49 ? 0:00 ora_pmon_oria&lt;/dd&gt;
&lt;dd&gt;oracle 17750 17705 10 17:34:13 pts/3 0:00 ps -f -u oracle&lt;/dd&gt;
&lt;dd&gt;oracle 17745 1 0 17:32:55 ? 0:02 ora_smon_oria&lt;/dd&gt;
&lt;dd&gt;oracle 17746 1 0 17:32:57 ? 0:00 ora_reco_oria&lt;/dd&gt;&lt;/dl&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ps -ef&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;UID PID PPID C STIME TTY TIME COMD&lt;/dd&gt;
&lt;dd&gt;root 0 0 0 Nov 25 ? 0:00 sched&lt;/dd&gt;
&lt;dd&gt;root 1 0 0 Nov 25 ? 1:10 /sbin/init&lt;/dd&gt;
&lt;dd&gt;root 2 0 0 Nov 25 ? 0:01 pageout&lt;/dd&gt;&lt;dd&gt;root 3 0 0 Nov 25 ? 6:56 fsflush&lt;/dd&gt;
&lt;dd&gt;root 4 0 0 Nov 25 ? 0:00 kmdaemon&lt;/dd&gt;
&lt;dd&gt;..............................................&lt;/dd&gt;
&lt;dd&gt;..............................................&lt;/dd&gt;
&lt;dd&gt;root 264 1 0 Nov 25 ? 0:01 /usr/lib/saf/sac -t 300&lt;/dd&gt;
&lt;dd&gt;root 207 1 0 Nov 25 ? 0:01 /usr/X/bin/xdm&lt;/dd&gt;
&lt;dd&gt;root 199 1 0 Nov 25 ? 0:01 /usr/sbin/rpcbind&lt;/dd&gt;
&lt;dd&gt;root 323 317 0 Nov 25 ? 0:00 lpNet&lt;/dd&gt;
&lt;dd&gt;root 271 264 0 Nov 25 ? 0:02 /usr/sbin/inetd&lt;/dd&gt;&lt;dd&gt;root 317 1 0 Nov 25 ? 0:00 /usr/lib/lpsched&lt;/dd&gt;
&lt;dd&gt;root 300 1 0 Nov 25 ? 1:30 /usr/sbin/cron&lt;/dd&gt;
&lt;dd&gt;stage1 17785 17771 19 17:38:54 pts/2 0:00 ps -ef&lt;/dd&gt;
&lt;dd&gt;stage1 17771 17769 0 17:38:40 pts/2 0:00 -ksh&lt;/dd&gt;
&lt;dd&gt;$&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le processus de&lt;i&gt; &lt;/i&gt;&lt;b&gt;num&#195;&#169;ro 0&lt;/b&gt; correspond &#195; l&#226;&#8364;&#8482;ex&#195;&#169;cution du noyau&lt;br class='autobr' /&gt;
Unix.&lt;/p&gt;
&lt;p&gt;Ce processus g&#195;&#169;n&#195;&#168;re des processus &#194;&#171; fils&#194; &#187; annexes de num&#195;&#169;ros &gt;= 2 .&lt;/p&gt;
&lt;p&gt;Le processus de &lt;b&gt;num&#195;&#169;ro 1&lt;/b&gt; correspond au programme &lt;b&gt;init &lt;/b&gt;qui est&lt;br class='autobr' /&gt;
&#195; l&#226;&#8364;&#8482;origine de tous les autres processus pr&#195;&#169;sents, par la suite, sur le&lt;br class='autobr' /&gt;
syst&#195;&#168;me.&lt;/p&gt;
&lt;p&gt;Le param&#195;&#169;trage du programme &#194;&#171; init&#194; &#187; constitue une des t&#195;&#162;ches importantes d&#226;&#8364;&#8482;administration.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A chaque service syst&#195;&#168;me, correspond un certain nombre de processus de type&lt;br class='autobr' /&gt;
&#194;&#171; &lt;b&gt;daemon&lt;/b&gt;&#194; &#187; :&lt;/p&gt;
&lt;p&gt;- lpsched Spouleur&lt;/p&gt;
&lt;p&gt;- cron Planificateur de travaux&lt;/p&gt;
&lt;p&gt;- inetd, rpcbind D&#195;&#169;mons essentiels dans les activit&#195;&#169;s &#194;&#171; r&#195;&#169;seau&#194; &#187;&lt;/p&gt;
&lt;p&gt;etc...&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;e&#034;&gt;E. INTERRUPTION DES PROCESSUS - SIGNAUX&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;br class='autobr' /&gt; &lt;i&gt;&lt;/p&gt;
&lt;font COLOR=&#034;#7f007f&#034;&gt;
&lt;p&gt; &lt;a name=&#034;1-&#034;&gt;&lt;br class='autobr' /&gt; a. Notion de signal&lt;/a&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Un signal est une &lt;b&gt;interruption&lt;/b&gt; &#195;&#169;mise vers un processus qui, par&lt;br class='autobr' /&gt;
d&#195;&#169;faut, est &lt;b&gt;&#195;&#169;limin&#195;&#169;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Cependant, le programme a pu &#195;&#170;tre pr&#195;&#169;vu pour &lt;b&gt;ignorer&lt;/b&gt; certaines&lt;br class='autobr' /&gt;
interruptions ou&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;associer un traitement&lt;/b&gt; &#195; la r&#195;&#169;ception d'un signal donn&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Les signaux peuvent &#195;&#170;tre d&#195;&#169;clench&#195;&#169;s, suivant les cas, par une action de l&#226;&#8364;&#8482;utilisateur&lt;br class='autobr' /&gt;
au clavier,&lt;/p&gt;
&lt;p&gt;par programme, ou par le noyau souhaitant &#195;&#169;liminer un processus en erreur.&lt;/p&gt;
&lt;p&gt;Certains signaux ont pour effet de g&#195;&#169;n&#195;&#169;rer un &lt;b&gt;fichier &#194;&#171; core&#194; &#187;&lt;/b&gt; dans&lt;br class='autobr' /&gt;
le r&#195;&#169;pertoire courant.&lt;/p&gt;
&lt;p&gt;Ce fichier contient l&#226;&#8364;&#8482;image m&#195;&#169;moire du processus au moment de l&#226;&#8364;&#8482;interruption&lt;br class='autobr' /&gt;
et&lt;/p&gt;
&lt;p&gt;peut &#195;&#170;tre examin&#195;&#169; &#195; l&#226;&#8364;&#8482;aide d&#226;&#8364;&#8482;un d&#195;&#169;bogueur.&lt;/p&gt;
&lt;p&gt;Les noms des signaux Unix sont standardis&#195;&#169;s au niveau des interfaces de&lt;br class='autobr' /&gt;
programmation.&lt;/p&gt;
&lt;p&gt;Leur num&#195;&#169;ro interne peut, par contre, varier selon les impl&#195;&#169;mentations.&lt;/p&gt;
&lt;p&gt;Pour les signaux les plus fr&#195;&#169;quents et ceux qui concernent l&#226;&#8364;&#8482;utilisateur,&lt;br class='autobr' /&gt;
les num&#195;&#169;ros sont standards.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Signaux usuels&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034; &gt; &lt;tr&gt;&lt;td width=&#034;11%&#034;&gt;&lt;i&gt;SIGHUP&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;7%&#034;&gt;1 &lt;/td&gt; &lt;td width=&#034;82%&#034;&gt;Fin de session. A la d&#195;&#169;connexion du shell, ce signal est envoy&#195;&#169; &#195; tous les processus de m&#195;&#170;me terminal de contr&#195;&#180;le.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;&lt;i&gt;SIGINT&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;7%&#034;&gt;2&lt;/td&gt;&lt;td width=&#034;82%&#034;&gt; Interruption clavier ( touche param&#195;&#169;trable ) ( touche Break ou Del ou Suppr ou Ctrl c ... )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;&lt;i&gt;SIGQUIT&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;7%&#034;&gt;3&lt;/td&gt; &lt;td width=&#034;82%&#034;&gt; Interruption clavier g&#195;&#169;n&#195;&#169;rant un fichier &#194;&#171; core&#194; &#187; ( touche Ctrl \ )&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;&lt;i&gt;SIGTERM&lt;/i&gt; &lt;/td&gt; &lt;td width=&#034;7%&#034;&gt;15&lt;/td&gt; &lt;td width=&#034;82%&#034;&gt; Terminaison normale. Ce signal est g&#195;&#169;n&#195;&#169;r&#195;&#169; via la commande &#194;&#171; kill&#194; &#187; ( voir ci-apr&#195;&#168;s ).Il peut &#195;&#170;tre capt&#195;&#169; par le programme pour, par exemple,op&#195;&#169;rer un nettoyage d&#226;&#8364;&#8482;objets syst&#195;&#168;me avant de se terminer.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;&lt;i&gt;SIGKILL&lt;/i&gt; &lt;/td&gt;&lt;td width=&#034;7%&#034;&gt;9&lt;/td&gt; &lt;td width=&#034;82%&#034;&gt; Terminaison brutale.Ce signal ne peut pas &#195;&#170;tre capt&#195;&#169; par le programme,il provoque un arr&#195;&#170;t imm&#195;&#169;diat de celui-ci.&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Liste des signaux sous Solaris 8&lt;/p&gt;
&lt;p&gt;
&lt;/u&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt;kill -l&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL&lt;/p&gt;
&lt;p&gt;5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE&lt;/p&gt;
&lt;p&gt;9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS&lt;/p&gt;
&lt;p&gt;13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGUSR1&lt;/p&gt;
&lt;p&gt;17) SIGUSR2 18) SIGCHLD 19) SIGPWR 20) SIGWINCH&lt;/p&gt;
&lt;p&gt;21) SIGURG 22) SIGIO 23) SIGSTOP 24) SIGTSTP&lt;/p&gt;
&lt;p&gt;25) SIGCONT 26) SIGTTIN 27) SIGTTOU 28) SIGVTALRM&lt;/p&gt;
&lt;p&gt;29) SIGPROF 30) SIGXCPU 1) SIGXFSZ 32) SIGWAITING&lt;/p&gt;
&lt;p&gt;33) SIGLWP 34) SIGFREEZE 35) SIGTHAW 36) SIGCANCEL&lt;/p&gt;
&lt;p&gt;37) SIGLOST&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;br class='autobr' /&gt; &lt;a name=&#034;2-&#034;&gt;&lt;br class='autobr' /&gt; b. arr&#195;&#170;ter un processus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;La condition n&#195;&#169;cessaire pour &#195;&#169;liminer un processus est d&#226;&#8364;&#8482;&#195;&#169;mettre le&lt;br class='autobr' /&gt;
signal depuis un processus&lt;/p&gt;
&lt;p&gt;de &lt;b&gt;m&#195;&#170;me propri&#195;&#169;taire&lt;/b&gt; ou depuis un processus &#194;&#171; super-user&#194; &#187; ( login &lt;b&gt;&#194;&#171; root&#194; &#187;&lt;/b&gt;&lt;br class='autobr' /&gt;
).&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Si cette condition est remplie et que l&#226;&#8364;&#8482;envoi d&#226;&#8364;&#8482;un signal donn&#195;&#169; n&#226;&#8364;&#8482;est&lt;br class='autobr' /&gt;
pas efficace, cela signifie&lt;/p&gt;
&lt;p&gt;sans doute que le programme correspondant au processus vis&#195;&#169; a pr&#195;&#169;vu d&#226;&#8364;&#8482;ignorer&lt;br class='autobr' /&gt;
cette interruption.&lt;/p&gt;
&lt;p&gt;Dans ce cas, l&#226;&#8364;&#8482;envoi du signal SIGKILL ( num&#195;&#169;ro 9 ) sera le dernier&lt;br class='autobr' /&gt;
recours.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On conseillera de n&#226;&#8364;&#8482;utiliser le signal 9 que si les autres signaux ( 2, 3 ,&lt;br class='autobr' /&gt;
15 ) ont &#195;&#169;chou&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Cette remarque peut &#195;&#170;tre importante dans le cas notamment de processus&lt;br class='autobr' /&gt;
cr&#195;&#169;ant des objets syst&#195;&#168;me&lt;/p&gt;
&lt;p&gt;( m&#195;&#169;moire partag&#195;&#169;e, s&#195;&#169;maphores, etc... ) qui ne sont pas implicitement&lt;br class='autobr' /&gt;
lib&#195;&#169;r&#195;&#169;s.&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;kill &lt;/b&gt;-s nomsignal PID [PID .... PID&lt;b&gt;]&lt;/b&gt; envoie un signal&lt;br class='autobr' /&gt;
(g&#195;&#169;n&#195;&#169;ralement mortel) &#195; un/des&lt;/p&gt;
&lt;p&gt;processus&lt;/p&gt;
&lt;p&gt; &lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Exemples :&lt;/p&gt;
&lt;p&gt;$ find / -name passwd -print 2&gt; /dev/null &amp;&lt;/p&gt;
&lt;p&gt;[1] 1256&lt;/p&gt;
&lt;p&gt;$ kill -s KILL 1256 tue irr&#195;&#169;m&#195;&#169;diablement le processus de PID 8569&lt;/p&gt;
&lt;p&gt;[1] +killed find ... &amp;&lt;/p&gt;
&lt;a NAME=&#034;_Toc347634126&#034;&gt;
&lt;p&gt;$ kill 8569 envoi par d&#195;&#169;faut le signal TERM&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Remarque :&lt;/i&gt; &lt;b&gt;kill -l&lt;/b&gt; affiche la ligne des signaux que l'on peut&lt;br class='autobr' /&gt;
envoyer.&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;NB :&lt;/i&gt; On ne peut envoyer un signal qu'aux processus qui nous&lt;br class='autobr' /&gt;
appartiennent. Seul root (le Super User) peut envoyer un signal vers n'importe&lt;br class='autobr' /&gt;
quel processus.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Mise en pratique&lt;/p&gt;
&lt;p&gt;
&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;- Si le processus est attach&#195;&#169; au terminal,&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Interruptions clavier&lt;/b&gt; ( signal 2 ou signal 3 )&lt;/p&gt;
&lt;p&gt;- Si &#195;&#169;chec,&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Connexion&lt;/b&gt; sur un autre terminal ( ou une autre fen&#195;&#170;tre &#194;&#171; xterm&#194; &#187; ) &lt;b&gt;sous&lt;br class='autobr' /&gt;
le m&#195;&#170;me &#194;&#171; login&#194; &#187;&lt;/p&gt;
&lt;/b&gt;
&lt;p&gt;Liste des processus ( commande &lt;b&gt;ps&lt;/b&gt; ) pour visualiser le &lt;i&gt;PID&lt;/i&gt; du&lt;br class='autobr' /&gt;
processus concern&#195;&#169;&lt;/p&gt;
&lt;p&gt;Commande &lt;b&gt;kill&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Cette commande envoie un signal vers un processus dont on donne le &lt;i&gt;PID&lt;/i&gt;&lt;br class='autobr' /&gt;
en argument.&lt;/p&gt;
&lt;p&gt;Le num&#195;&#169;ro du signal se donne via l&#226;&#8364;&#8482;option ( sans option, on envoie le&lt;br class='autobr' /&gt;
signal 15 ).&lt;/p&gt;
&lt;p&gt;kill &lt;i&gt;pid&lt;/i&gt; ( &#195;&#169;mission du signal 15 )&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;kill -9 &lt;i&gt;pid&lt;/i&gt; ( &#195;&#169;mission du signal 9 )&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt;Cas concret : &#034;D&#195;&#169;planter&#034; le terminal d'un&lt;br class='autobr' /&gt; autre utilisateur :&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;Terminal TheBest (non plant&#195;&#169; ) Terminal GrosNul (plant&#195;&#169;)&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;img src='https://admin-sys.org/base/exemple.gif' width='184' height='538' &gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;font SIZE=&#034;4&#034; COLOR=&#034;#7f007f&#034;&gt;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/a&gt;
&lt;p&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;a NAME=&#034;3-&#034;&gt;c. Traitement&lt;br class='autobr' /&gt; d'un signal : la commande &lt;/a&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/i&gt;&lt;a NAME=&#034;3-&#034;&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;trap&lt;/font&gt;&lt;br class='autobr' /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;Lorsque qu'un processus re&#195;&#167;oit un signal , son d&#195;&#169;roulement normal est&lt;br class='autobr' /&gt;
interrompu pour effectuer un traitement par d&#195;&#169;faut (voir tableau plus haut).&lt;/p&gt;
&lt;p&gt;Pour la plupart des signaux (num&#195;&#169;ros) existants , il est possible de&lt;br class='autobr' /&gt;
sp&#195;&#169;cifier un bloc de traitements sp&#195;&#169;cifiques qui sera ex&#195;&#169;cut&#195;&#169; &#195; la place du&lt;br class='autobr' /&gt;
traitement par d&#195;&#169;faut. Ceci se fait grace &#195; la commande &lt;b&gt;trap &lt;/b&gt; :&lt;/p&gt;
&lt;font SIZE=&#034;4&#034;&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;trap 'cmdeA ;cmdeB,.... ;cmdeZ' signo1 [signo2 .... signoN]&lt;/p&gt;
&lt;p&gt;
&lt;font SIZE=&#034;4&#034;&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;JUSTIFY&#034;&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;NB :&lt;/i&gt; Une fois que le signal a &#195;&#169;t&#195;&#169; trait&#195;&#169; (bloc trap ex&#195;&#169;cut&#195;&#169;) , le&lt;br class='autobr' /&gt;
processus reprend son cours normal &#195; l'endroit o&#195;&#185; il a &#195;&#169;t&#195;&#169; d&#195;&#169;rout&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Un processus peut choisir d'ignorer certains signaux : il se comporte alors&lt;br class='autobr' /&gt;
comme si le signal n'avait jamais &#195;&#169;t&#195;&#169; re&#195;&#167;u (aucun d&#195;&#169;routement) :&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;trap '' signo1 [signo2 .... signoN]&lt;/p&gt;
&lt;/b&gt;
&lt;p&gt;Ignorer certains signaux est une op&#195;&#169;ration int&#195;&#169;ressante dans le cas o&#195;&#185;&lt;br class='autobr' /&gt;
l'on ne d&#195;&#169;sire pas &#195;&#170;tre interrompu pendant l'ex&#195;&#169;cution d'une portion de code&lt;br class='autobr' /&gt;
critique. Il est ensuite possible de restituer les traitements par d&#195;&#169;faut&lt;br class='autobr' /&gt;
gr&#195;&#162;ce &#195; la syntaxe suivante :&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;trap - signo1 [signo2 ...]&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;trap 'rm /tmp/fictemp ; exit' 1 2 3 15 &lt;i&gt;# suppression du fichier #&lt;br class='autobr' /&gt;
temporaire fictemp&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;trap '' 1 2 3 15&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;# section de code tr&#195;&#168;s importante&lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;trap - 1 2 3 15&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;# section ordinaire&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;trap&lt;/b&gt; utilis&#195;&#169;e sans argument donne la liste des signaux&lt;br class='autobr' /&gt;
d&#195;&#169;tourn&#195;&#169;s et l'action correspondante.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;br class='autobr' /&gt; &lt;a name=&#034;4-&#034;&gt;&lt;br class='autobr' /&gt; d. PROCESSUS S&#195;&#169;quentiels&lt;/a&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Il est possible de taper plusieurs commandes sur la m&#195;&#170;me ligne, notamment&lt;br class='autobr' /&gt;
dans une proc&#195;&#169;dure shell, via le caract&#195;&#168;re &lt;b&gt; ;&lt;/b&gt; ( point-virgule ) .&lt;/p&gt;
&lt;p&gt;Les processus sont ind&#195;&#169;pendants, ils s&#226;&#8364;&#8482;ex&#195;&#169;cutent l&#226;&#8364;&#8482;un apr&#195;&#168;s l&#226;&#8364;&#8482;autre&lt;br class='autobr' /&gt;
et il n'y a aucune communication d'informations entre eux.&lt;/p&gt;
&lt;p&gt;Le m&#195;&#169;canisme peut &#195;&#170;tre int&#195;&#169;ressant pour r&#195;&#169;aliser des &lt;i&gt;redirections&lt;br class='autobr' /&gt;
globales via les parenth&#195;&#168;ses&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Exemples&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$&lt;b&gt; &lt;i&gt;date ; ls ; who&lt;/dd&gt;
&lt;p&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;Sun Dec 24 23:59 1995&lt;/dd&gt; &lt;dd&gt;fic1 fic2 fic3&lt;/dd&gt; &lt;dd&gt;stage1 tty00 Dec 24 12:30&lt;/dd&gt; &lt;dd&gt;stage2 tty01 Dec 24 16:12&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$&lt;b&gt; &lt;i&gt;who ; ls &gt; toto&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Seule la deuxi&#195;&#168;me commande est redirig&#195;&#169;e&lt;/dd&gt;
&lt;/i&gt;
&lt;dd&gt;stage1 tty00 Dec 24 12:30&lt;/dd&gt;
&lt;dd&gt;stage2 tty01 Dec 24 16:12&lt;/dd&gt;
&lt;dd&gt;$&lt;b&gt; cat toto&lt;/dd&gt;&lt;/b&gt;
&lt;dd&gt;fic1&lt;/dd&gt;
&lt;dd&gt;fic2&lt;/dd&gt;
&lt;dd&gt;fic3&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$&lt;b&gt; &lt;i&gt;( who ; ls ) &gt; toto&lt;/i&gt;&lt;/b&gt; &lt;i&gt;Redirection global&lt;/dd&gt;&lt;/i&gt;
&lt;dd&gt;$&lt;b&gt; &lt;i&gt;cat toto&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;stage1 tty00 Dec 24 12:30&lt;/dd&gt;
&lt;dd&gt;stage2 tty01 Dec 24 16:12&lt;/dd&gt;
&lt;dd&gt;fic1&lt;/dd&gt;
&lt;dd&gt;fic2&lt;/dd&gt;
&lt;dd&gt;fic3&lt;/dd&gt;&lt;dd&gt;$&lt;/dd&gt;
&lt;/dl&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Le signe &#034;&gt;&#034; sera vu dans le module &#034;redirection&#034;&lt;/p&gt;
&lt;p&gt;
&lt;font FACE=&#034;Courier New&#034;&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;/p&gt;
&lt;p&gt;&lt;font COLOR=&#034;#7f007f&#034;&gt;&lt;a name=&#034;5-&#034;&gt;e. PROCESSUS EN PARALLELE ( PIPELINE )&lt;/a&gt;&lt;br class='autobr' /&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Le &lt;b&gt;&#194;&#171; pipeline&#194; &#187;&lt;/b&gt; est un m&#195;&#169;canisme de communication entre processus&lt;br class='autobr' /&gt;
s'ex&#195;&#169;cutant en parall&#195;&#168;le.&lt;/p&gt;
&lt;p&gt;Il correspond au &lt;b&gt;caract&#195;&#168;re |&lt;/b&gt; intercal&#195;&#169; entre les diff&#195;&#169;rentes&lt;br class='autobr' /&gt;
commandes mises en jeu.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Objectif du m&#195;&#169;canisme&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt;OBTENIR UN RESULTAT FINAL A PARTIR DE COMMANDES ELEMENTAIRES&lt;/p&gt;
&lt;p ALIGN=&#034;CENTER&#034;&gt;QUI PROPAGENT LEURS R&#195;&#8240;SULTATS INTERMEDIAIRES&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le principe est le suivant :&lt;/p&gt;
&lt;p&gt;- La &lt;b&gt;sortie standard d'un premier processus&lt;/b&gt; est redirig&#195;&#169;e vers un&lt;br class='autobr' /&gt;
fichier temporaire ( &#194;&#171; pipe&#194; &#187; ou tube ). Ce fichier se comporte comme une &lt;b&gt;file&lt;/b&gt; ( FIFO ).&lt;/p&gt;
&lt;p&gt;- L'&lt;b&gt;entr&#195;&#169;e standard du processus suivant&lt;/b&gt; est redirig&#195;&#169;e vers cette&lt;br class='autobr' /&gt;
m&#195;&#170;me file.&lt;/p&gt;
&lt;p&gt;- Le syst&#195;&#168;me assure la &lt;b&gt;synchronisation&lt;/b&gt; de ces processus qui s&#226;&#8364;&#8482;ex&#195;&#169;cutent&lt;br class='autobr' /&gt;
&#194;&#171; en m&#195;&#170;me temps&#194; &#187;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ce m&#195;&#169;canisme n&#226;&#8364;&#8482;est pas limit&#195;&#169; en nombre de commandes mises en jeu. Un tube est cr&#195;&#169;&#195;&#169; pour chaque couple de commandes.&lt;/p&gt;
&lt;p&gt;La quantit&#195;&#169; de donn&#195;&#169;es &#195;&#169;chang&#195;&#169;es n&#226;&#8364;&#8482;est pas non plus limit&#195;&#169;e. Le traitement a lieu aussi longtemps que le premier processus alimente le&lt;br class='autobr' /&gt;
&#194;&#171; pipe&#194; &#187; .&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;La cr&#195;&#169;ation des tubes et les redirections sont effectu&#195;&#169;es par le shell.&lt;br class='autobr' /&gt;
Gr&#195;&#162;ce au principe des fichiers standards, les commandes s&#226;&#8364;&#8482;utilisent sans&lt;br class='autobr' /&gt;
changement.&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;Exemples simples&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;br class='autobr' /&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;ls -al / | more &lt;/b&gt;&lt;i&gt;Consultation &#195;&#169;cran par &#195;&#169;cran du r&#195;&#169;sultat de la&lt;br class='autobr' /&gt;
commande ls&lt;/p&gt;
&lt;/i&gt;
&lt;p&gt;La commande &#194;&#171; more&#194; &#187; n&#226;&#8364;&#8482;ayant pas d&#226;&#8364;&#8482;argument, elle lit son entr&#195;&#169;e&lt;br class='autobr' /&gt;
standard.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/p&gt;
&lt;p&gt;who | wc -l&lt;/b&gt; &lt;i&gt;Nombre d'utilisateurs connect&#195;&#169;s&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La commande &#194;&#171; who&#194; &#187; &#195;&#169;crit sur sa sortie standard une ligne par utilisateur.&lt;/p&gt;
&lt;p&gt;La commande &#194;&#171; wc -l&#194; &#187; compte les lignes fournies sur son entr&#195;&#169;e standard.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Un &#194;&#171; pipeline&#194; &#187; n&#226;&#8364;&#8482;est pas limit&#195;&#169; &#195; deux commandes.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ls -l&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;total 4&lt;/dd&gt; &lt;dd&gt;drwxr-xr-x 3 stage1 stage 96 Dec 13 15:41 rep&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 16 Dec 14 11:21 titi&lt;/dd&gt;&lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 0 Dec 15 10:33 toto&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 15 Dec 14 11:21 tutu&lt;/dd&gt; &lt;dd&gt;$&lt;/dd&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ls -l | tail +2&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;drwxr-xr-x 3 stage1 stage 96 Dec 13 15:41 rep&lt;/dd&gt;&lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 16 Dec 14 11:21 titi&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 0 Dec 15 10:33 toto&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 15 Dec 14 11:21 tutu&lt;/dd&gt; &lt;dd&gt;$&lt;/dd&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ls -l | tail +2 | head -3&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;drwxr-xr-x 3 stage1 stage 96 Dec 13 15:41 rep&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 16 Dec 14 11:21 titi&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 0 Dec 15 10:33 toto&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;$&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&#195;&#169;moriser les r&#195;&#169;sultats interm&#195;&#169;diaires&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La commande &lt;b&gt;tee &lt;/b&gt;permet de m&#195;&#169;moriser les r&#195;&#169;sultats interm&#195;&#169;diaires.&lt;/p&gt;
&lt;p&gt;Elle op&#195;&#168;re une duplication de la sortie standard vers un fichier.&lt;/p&gt;
&lt;p&gt;L&#226;&#8364;&#8482;option &lt;b&gt;-a&lt;/b&gt; permet une utilisation en mode &#194;&#171; ajout&#194; &#187;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;ls -l | tee zorro | tail +2 | wc -l&lt;/dd&gt;
&lt;p&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;4&lt;/dd&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;cat zorro&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;total 4&lt;/dd&gt; &lt;dd&gt;drwxr-xr-x 3 stage1 stage 96 Dec 13 15:41 rep&lt;/dd&gt;&lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 16 Dec 14 11:21 titi&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 0 Dec 15 10:33 toto&lt;/dd&gt; &lt;dd&gt;-rw-r&#8212;r&#8212; 1 stage1 stage 15 Dec 14 11:21 tutu&lt;/dd&gt; &lt;dd&gt;$&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt; &lt;/p&gt;
&lt;dl&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;echo bonjour cher ami | tee zorro | wc -w | tee -a zorro&lt;/dd&gt;
&lt;p&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;3&lt;/dd&gt; &lt;dd&gt;$ &lt;b&gt;&lt;i&gt;cat zorro&lt;/dd&gt; &lt;p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;dd&gt;bonjour cher ami&lt;/dd&gt; &lt;dd&gt;3&lt;/dd&gt;&lt;dd&gt;$&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;b&gt;&lt;/p&gt;
&lt;p&gt;L'entr&#195;&#169;e standard du premier processus et la sortie standard du dernier ne&lt;br class='autobr' /&gt;
sont pas redirig&#195;&#169;es&lt;/p&gt;
&lt;p&gt;vers les tubes.&lt;/p&gt;
&lt;p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Elles restent disponibles pour une redirection classique.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>&#233;diteur de texte</title>
		<link>https://admin-sys.org/?editeur-de-texte</link>
		<guid isPermaLink="true">https://admin-sys.org/?editeur-de-texte</guid>
		<dc:date>2008-09-16T09:29:09Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;VI. L' &#233;diteur de texte : &lt;br class='autobr' /&gt;
Sur toutes les versions du syst&#232;me, on dispose de l'&#233;diteur &lt;br class='autobr' /&gt;
plein &#233;cran vi ( video ). Le point de r&#233;f&#233;rence est toujours la &lt;br class='autobr' /&gt;
position du curseur. &lt;br class='autobr' /&gt;
Cet &#233;diteur peut fonctionner quel que soit le type de &lt;br class='autobr' /&gt;
terminal utilis&#233;. &lt;br class='autobr' /&gt;
Son bon comportement est li&#233; au contenu de la variable &lt;br class='autobr' /&gt;
shell TERM qui doit contenir un nom d'entr&#233;e ad&#233;quat dans les fichiers &lt;br class='autobr' /&gt;
syst&#232;me d&#233;crivant les &#233;mulations de terminaux. &lt;br class='autobr' /&gt;
L'administrateur est responsable du positionnement correct (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-base-unix-" rel="directory"&gt;Base Unix&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;b&gt;&lt;u&gt;VI. L' &#233;diteur de texte :&lt;/u&gt;&lt;/b&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p align=&#034;JUSTIFY&#034;&gt;Sur toutes les versions du syst&#232;me, on dispose de l'&#233;diteur&lt;br class=&#034;autobr&#034; /&gt;
plein &#233;cran &lt;b&gt;vi&lt;/b&gt; ( video ). Le point de r&#233;f&#233;rence est toujours la&lt;br class=&#034;autobr&#034; /&gt;
position du curseur.&lt;/p&gt;
&lt;p align=&#034;JUSTIFY&#034;&gt;Cet &#233;diteur peut fonctionner quel que soit le type de&lt;br class=&#034;autobr&#034; /&gt;
terminal utilis&#233;.&lt;/p&gt;
&lt;p align=&#034;JUSTIFY&#034;&gt;Son bon comportement est li&#233; au contenu de la &lt;b&gt;variable&lt;br class=&#034;autobr&#034; /&gt;
shell TERM&lt;/b&gt; qui doit contenir un nom d'entr&#233;e ad&#233;quat dans les fichiers&lt;br class=&#034;autobr&#034; /&gt;
syst&#232;me d&#233;crivant les &#233;mulations de terminaux.&lt;/p&gt;
&lt;p align=&#034;JUSTIFY&#034;&gt;L'administrateur est responsable du positionnement correct&lt;br class=&#034;autobr&#034; /&gt;
de cette variable d&#232;s la connexion.&lt;/p&gt;
&lt;p align=&#034;JUSTIFY&#034;&gt;L'utilisateur pourra pr&#233;f&#233;rer d'autres &#233;diteurs plus&lt;br class=&#034;autobr&#034; /&gt;
conviviaux ou intuitifs, notamment en environnement X_Window. N&#233;anmoins, &lt;b&gt;une&lt;br class=&#034;autobr&#034; /&gt;
connaissance minimale de &#171; vi &#187; s'av&#232;re n&#233;cessaire pour &#234;tre capable de&lt;br class=&#034;autobr&#034; /&gt;
cr&#233;er ou modifier un fichier de texte quel que soit l'environnement de&lt;br class=&#034;autobr&#034; /&gt;
travail.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Quelques principes de fonctionnement&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;L'&#233;diteur place le terminal en mode &#171; raw &#187;, dit &lt;b&gt;&#171; mode commande &#187;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Cela signifie que chaque touche est directement interpr&#233;t&#233;e comme une&lt;br class=&#034;autobr&#034; /&gt;
commande.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pour ins&#233;rer ou modifier du texte dans le fichier, l'utilisateur doit&lt;br class=&#034;autobr&#034; /&gt;
invoquer une&lt;/b&gt; &lt;b&gt;commande qui place l'&#233;diteur en mode &#171; insertion de&lt;br class=&#034;autobr&#034; /&gt;
texte &#187;. A la fin de sa&lt;/b&gt; &lt;b&gt;manipulation, il doit retourner en mode commande&lt;br class=&#034;autobr&#034; /&gt;
par la touche &#171; Escape &#187;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Les d&#233;placements sont des commandes et ne doivent pas s'effectuer en&lt;br class=&#034;autobr&#034; /&gt;
mode&lt;/b&gt; &lt;b&gt; &#171; insertion de texte &#187;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;M&#234;me si certaines &#233;mulations tol&#232;rent ce comportement, il est&lt;br class=&#034;autobr&#034; /&gt;
incontournable d'&lt;i&gt;adopter rapidement ce que l'on appellera le r&#233;flexe de&lt;br class=&#034;autobr&#034; /&gt;
la touche &#171; Escape &#187;&lt;/i&gt;. &lt;i&gt;L'&#233;diteur ne permet pas de se d&#233;placer au-dela &lt;br class=&#034;autobr&#034; /&gt;
du texte existant&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Il faut, dans ce genre de situation, penser en terme d'insertion de texte&lt;br class=&#034;autobr&#034; /&gt;
et utiliser une commande appropri&#233;e ( insertion en fin de ligne, insertion&lt;br class=&#034;autobr&#034; /&gt;
apr&#232;s la ligne courante, etc... ).&lt;/p&gt;
&lt;p&gt;Certaines commandes apparaissent en &#233;cho sur la derni&#232;re ligne de l'&#233;cran,&lt;br class=&#034;autobr&#034; /&gt;
pr&#233;c&#233;d&#233;es du caract&#232;re : . Ces commandes correspondent au mode &lt;i&gt; &#171; commande&lt;br class=&#034;autobr&#034; /&gt;
syntaxique &#187;&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;En environnement X_Window, dans le cadre de l'&lt;i&gt;&#233;mulateur &#171; xterm &#187;&lt;/i&gt; (&lt;br class=&#034;autobr&#034; /&gt;
voir chap&#238;tre 8 ), vi int&#232;gre la fonctionnalit&#233; de &lt;i&gt; &#171; couper-coller &#187;&lt;/i&gt;&lt;br class=&#034;autobr&#034; /&gt;
via la souris.&lt;/p&gt;
&lt;p&gt;Cette manipulation est possible entre deux fen&#234;tres &#171; xterm &#187;, c'est &#195; &lt;br class=&#034;autobr&#034; /&gt;
dire potentiellement entre deux fichiers de deux machines distinctes.&lt;/p&gt;
&lt;p&gt;Sur certaines &#233;mulations, il sera impossible d'utiliser le &lt;i&gt; &#171; pav&#233;&lt;br class=&#034;autobr&#034; /&gt;
num&#233;rique &#187;&lt;/i&gt; du clavier.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;b&gt;&lt;font color=&#034;#007f00&#034; size=&#034;5&#034;&gt; &lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;a&#034;&gt;A. Lancement de l'&#233;diteur&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul&gt; &lt;li&gt;&lt;i&gt;&lt;b&gt;vi fichier&lt;/b&gt;&lt;/i&gt; Appel classique de l'&#233;diteur&lt;/li&gt; &lt;li&gt;&lt;i&gt;&lt;b&gt;vi&lt;/b&gt;&lt;/i&gt; Appel sans nom de fichier ( il faudra donner un nom en&lt;br class=&#034;autobr&#034; /&gt; quittant le programme )&lt;/li&gt; &lt;li&gt;&lt;i&gt;&lt;b&gt;vi +n fichier&lt;/b&gt;&lt;/i&gt; Appel de l'&#233;diteur en se positionnant&lt;br class=&#034;autobr&#034; /&gt; directement sur la ligne n&lt;/li&gt; &lt;li&gt;&lt;b&gt;&lt;i&gt;vi fic1 fic2&lt;/i&gt; ....&lt;/b&gt; Appel avec plusieurs noms de fichiers (&lt;br class=&#034;autobr&#034; /&gt; possibilit&#233; de changer de fichier courant )&lt;/li&gt; &lt;li&gt;&lt;i&gt;&lt;b&gt;view fichier&lt;/b&gt;&lt;/i&gt; Appel de l'&#233;diteur en lecture seule&lt;/li&gt; &lt;li&gt;&lt;i&gt;&lt;b&gt;vedit fichier&lt;/b&gt;&lt;/i&gt; Appel de l'&#233;diteur en mode &#171; bavard &#187; (&lt;br class=&#034;autobr&#034; /&gt; visualisation en bas de l'&#233;cran du mode courant )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img height='489' src='https://admin-sys.org/base/vi1.gif' width='239' /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;D&#233;placements ( la notation &#171; n &#187; indique un nombre )&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;D&#233;placements &#233;l&#233;mentaires&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;h ou nh Une ou n position(s) vers la gauche&lt;/p&gt;
&lt;p&gt;j ou nj Une ou n position(s) vers le bas&lt;/p&gt;
&lt;p&gt;k ou nk Une ou n position(s) vers le haut&lt;/p&gt;
&lt;p&gt;l ou nl Une ou n position(s) vers la droite&lt;/p&gt;
&lt;p&gt;( On peut aussi, en g&#233;n&#233;ral, utiliser les fl&#232;ches )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Autres d&#233;placements&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;0&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;^ &lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller en d&#233;but de ligne&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt;Ctrl d &lt;/td&gt; &lt;td width=&#034;45%&#034;&gt;Descendre d'une moiti&#233; d'&#233;cran&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;$&lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller en fin de ligne&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt;Ctrl u&lt;/td&gt; &lt;td width=&#034;45%&#034;&gt;Remonter d'une moiti&#233; d'&#233;cran&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;b&lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller sur le mot pr&#233;c&#233;dent&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt;Ctrl f D&lt;/td&gt; &lt;td width=&#034;45%&#034;&gt;escendre d'un &#233;cran&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;w &lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller sur le mot suivant&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt;Ctrl b &lt;/td&gt; &lt;td width=&#034;45%&#034;&gt;Remonter d'un &#233;cran&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;nG&lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller &#195; la ligne n&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;45%&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;1G&lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller en d&#233;but de fichier&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;45%&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;8%&#034;&gt;G&lt;/td&gt; &lt;td width=&#034;32%&#034;&gt;Aller en fin de fichier&lt;/td&gt; &lt;td width=&#034;4%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;11%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;45%&#034;&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Insertion et modification de texte ( la notation &#171; n &#187; indique un nombre )&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img height='348' src='https://admin-sys.org/base/vi2.gif' width='150' /&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;a&lt;/td&gt; &lt;td width=&#034;75%&#034;&gt; &lt;p align=&#034;left&#034;&gt; Insertion apr&#232;s le caract&#232;re courant&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;A&lt;/td&gt; &lt;td width=&#034;75%&#034;&gt; Insertion en fin de ligne&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;i &lt;/td&gt; &lt;td width=&#034;75%&#034;&gt;Insertion ava nt le caract&#232;re courant&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;I&lt;/td&gt; &lt;td width=&#034;75%&#034;&gt; Insertion en d&#233;but de ligne&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;o&lt;/td&gt; &lt;td width=&#034;75%&#034;&gt;Insertion d'une nouvelle ligne apr&#232;s la ligne courante&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;25%&#034;&gt;O&lt;/td&gt; &lt;td width=&#034;75%&#034;&gt; Insertion d'une nouvelle ligne avant la ligne courante&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;i&gt;Escape Retour au mode commande&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;x &lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Suppression du caract&#232;re courant&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;X&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Suppression du caract&#232;re pr&#233;c&#233;dent&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;D&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt; Suppression de la fin de ligne&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;dw ou ndw &lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Suppression d'un ou n mot(s)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;dd ou ndd&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Suppression d'une ou n ligne(s)&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;r&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Remplacement du caract&#232;re courant ( on tape le nouveau caract&#232;re, &#171; Escape &#187; inutile ensuite )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;cw &lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Remplacement du mot courant ( l'&#233;diteur visualise la fin du mot par le caract&#232;re $ ,on tape la nouvelle cha&#238;ne et on termine par &#171; Escape &#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;C&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt; Remplacement jusqu'&#195; la fin de ligne ( m&#234;me manipulation que le &#171; cw &#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;R&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt;Mode &#171; sur-impression &#187; ( on termine par &#171; Escape &#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;11%&#034;&gt;J&lt;/td&gt; &lt;td width=&#034;89%&#034;&gt; Concat&#233;nation ligne courante - ligne suivante&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Recherches d'expressions&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;/expression&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Recherche en avant de l'expression&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt; ?expression&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Recherche en arri&#232;re de l'expression&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;n&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Chercher l'occurrence suivante&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;N&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Chercher l'occurrence pr&#233;c&#233;dente&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Substitutions r&#233;p&#233;titives ( mode &#171; commande syntaxique &#187; )&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;19%&#034;&gt;:s/expr1/expr2/&lt;/td&gt; &lt;td width=&#034;81%&#034;&gt;Sur la ligne courante, remplacer, &lt;i&gt;une seule fois&lt;/i&gt;, &#171; expr1 &#187; par &#171; expr2 &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;19%&#034;&gt;:s/expr1/expr2/g &lt;/td&gt; &lt;td width=&#034;81%&#034;&gt;Sur la ligne courante, remplacer, &lt;i&gt;plusieurs fois si n&#233;cessaire&lt;/i&gt;, &#171; expr1 &#187; par &#171; expr2 &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;19%&#034;&gt;:n,ms/expr1/expr2/&lt;/td&gt; &lt;td width=&#034;81%&#034;&gt;Idem mais entre les lignes de num&#233;ro &#171; n &#187; &#195; &#171; m &#187;, une seule fois&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;19%&#034;&gt;:n,ms/expr1/expr2/g&lt;/td&gt; &lt;td width=&#034;81%&#034;&gt; Idem, mais plusieurs fois si n&#233;cessaire&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; La ligne courante se note alors &#171; . &#187; ( point) ,la derni&#232;re&lt;br class=&#034;autobr&#034; /&gt;
ligne se note alors &#171; $ &#187; ( dollar ) &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;b&#034;&gt;B. Les expressions &#171; r&#233;guli&#232;res &#187;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Comme bon nombre d'utilitaires Unix, notamment les filtres ( chap&#238;tre 6 ),&lt;br class=&#034;autobr&#034; /&gt;
l'&#233;diteur &#171; vi &#187;&lt;/p&gt;
&lt;p&gt;impl&#233;mente les expression dites r&#233;guli&#232;res qui permettent d'exprimer une&lt;br class=&#034;autobr&#034; /&gt;
s&#233;mantique&lt;/p&gt;
&lt;p&gt;suppl&#233;mentaire par rapport aux expressions litt&#233;rales.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;^&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;D&#233;but de ligne&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;$&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;Fin de ligne&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;.&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;Pr&#233;sence d'un caract&#232;re quelconque&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;[&lt;i&gt;ensemble_caract&#232;res&lt;/i&gt;]&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;Un caract&#232;re parmi un ensemble donn&#233;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;[&lt;b&gt;^&lt;/b&gt;&lt;i&gt;ensemble_caract&#232;res&lt;/i&gt;]&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;Un caract&#232;re ne figurant pas dans l'ensemble&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;&lt;i&gt;caract&#232;re&lt;/i&gt;&lt;b&gt;* &lt;/b&gt;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt;Un nombre quelconque d'apparitions du &lt;i&gt;caract&#232;re&lt;/i&gt; ( &#233;ventuellement aucune apparition )&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;&amp;&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt; Dans une substitution, reprendre la premi&#232;re expression ( ceci permet l'expansion d'une expression )&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt; &lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt; Annuler la s&#233;mantique d'un caract&#232;re dans l'expression&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;&lt;b&gt;.*&lt;/b&gt;&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;&lt;b&gt; Notation pratique pour d&#233;signer la ligne compl&#232;te&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemples&lt;/i&gt;&lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;/toto *$&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Recherche, vers le bas, d'une ligne se terminant par la cha&#238;ne &#171; toto &#187; suivie d'un nombre quelconque d'espaces.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt; ?^[0-9]&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Recherche, vers le haut, d'une ligne commen&#195;&#167;ant par un chiffre.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt; :.,$s/admin/admin-sys/g&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Remplacer, depuis la ligne courante jusqu'&#195; la fin du fichier, toutes les apparitions de la cha&#238;ne &#171; admin &#187; par la cha&#238;ne &#171; admin-sys &#187;.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;:1,$s/[0-9]/ &amp; /g&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Dans tout le fichier, ajouter un espace autour de chaque chiffre.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;:1,$s/\^/A/&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Dans tout le fichier, remplacer le caract&#232;re ^ par la lettre A,ceci une seule fois par ligne.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;:s/.*/$&amp;$/&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Ajouter un dollar en d&#233;but et en fin de la ligne courante.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;17%&#034;&gt;:1,$s/.*/$&amp;$/&lt;/td&gt; &lt;td width=&#034;83%&#034;&gt;Ajouter un dollar en d&#233;but et en fin de toutes les lignes du fichier.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;c&#034;&gt;C. Divers fonctions&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Dupliquer ou d&#233;placer un ensemble de lignes ( la notation &#171; n &#187; indique un&lt;br class=&#034;autobr&#034; /&gt;
nombre )&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;Y&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;On m&#233;morise la ligne courante dans le &#171; buffer sans nom &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;nY&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt; On m&#233;morise les n lignes courantes dans le &#171; buffer sans nom &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;p ( minuscule )&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;On restitue le contenu du &#171; buffer &#187; &lt;i&gt;apr&#232;s&lt;/i&gt; la position courante&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;15%&#034;&gt;P ( MAJUSCULE )&lt;/td&gt; &lt;td width=&#034;85%&#034;&gt;On restitue le contenu du &#171; buffer &#187; &lt;i&gt;avant&lt;/i&gt; la position courante&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Les commandes de suppression ( dd , x , X ... ) stockent &#233;galement dans le&lt;br class=&#034;autobr&#034; /&gt;
&#171; buffer &#187;. On peut effectuer alors un &lt;i&gt;d&#233;placement&lt;/i&gt; au lieu d'une&lt;br class=&#034;autobr&#034; /&gt;
duplication. Il est possible d'utiliser des &lt;i&gt; &#171; buffers nomm&#233;s &#187; ( a-z ).&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Exemple&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&#034;a5Y 5 lignes stock&#233;es dans le buffer a puis &#034;ap Duplication de&lt;br class=&#034;autobr&#034; /&gt;
ces 5 lignes apr&#232;s la ligne courante&lt;/p&gt;
&lt;p&gt;Le contenu des &#171; buffers nomm&#233;s &#187; est &lt;i&gt;conserv&#233; entre plusieurs fichiers&lt;/i&gt;&lt;br class=&#034;autobr&#034; /&gt;
&lt;i&gt;d'une m&#234;me session vi&lt;/i&gt;, ce qui n'est pas le cas du &#171; buffer sans&lt;br class=&#034;autobr&#034; /&gt;
nom &#187;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Autres commandes utiles&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;100%&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;u &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Annuler la derni&#232;re commande&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;. &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;R&#233;p&#233;ter la derni&#232;re commande&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;Ctrl g&lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Afficher le num&#233;ro de la ligne courante&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt; : !&lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;commande Ex&#233;cuter une commande Unix et revenir dans l'&#233;diteur&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt; !!&lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;commande Ins&#233;rer le r&#233;sultat d'une commande ( la ligne courante est &#233;cras&#233;e )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;16%&#034;&gt;Ctrl l ou Ctrl r &lt;/td&gt; &lt;td width=&#034;84%&#034;&gt;Rafra&#238;chissement de l'&#233;cran&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sorties et sauvegardes&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;705&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:q ou :q !&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Sortir sans prendre en compte les modifications&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;ZZ ou :wq ou :x&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Sauvegarder avec le nom d'entr&#233;e et sortir&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:x !&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Forcer la sauvegarde sur un fichier en lecture seulement ( uniquement pour le login &#171; root &#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:w&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Sauvegarder sans sortir&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:w fic&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Sauvegarder sous le nom &#171; fic &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:n1,n2w fic &lt;/td&gt; &lt;td width=&#034;557&#034;&gt;Sauvegarder les lignes de num&#233;ros n1 &#195; n2 dans le fichier &#171; fic &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;132&#034;&gt;:r fic&lt;/td&gt; &lt;td width=&#034;557&#034;&gt; Ins&#233;rer apr&#232;s la ligne courante, le contenu du fichier &#171; fic &#187;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Edition de plusieurs fichiers&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;537&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;40&#034;&gt;:e fic&lt;/td&gt; &lt;td width=&#034;481&#034;&gt; Editer le fichier &#171; fic &#187;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40&#034;&gt;:e ! fic&lt;/td&gt; &lt;td width=&#034;481&#034;&gt; Editer le fichier &#171; fic &#187; sans sauvegarder les modifications sur le fichier courant&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;40&#034;&gt;:e#&lt;/td&gt; &lt;td width=&#034;481&#034;&gt;Retour &#195; l'&#233;dition du fichier pr&#233;c&#233;dent&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Si appel de l'&#233;diteur avec plusieurs noms de fichiers ,&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;561&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;29&#034;&gt;:n&lt;/td&gt; &lt;td width=&#034;516&#034;&gt; Editer le fichier suivant&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;29&#034;&gt;:n !&lt;/td&gt; &lt;td width=&#034;516&#034;&gt; Editer le fichier suivant sans sauvegarder les modifications&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;d&#034;&gt;D. Param&#233;trage de l'&#233;diteur&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Param&#233;trage ponctuel&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border=&#034;1&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;26%&#034;&gt;:set all&lt;/td&gt; &lt;td width=&#034;74%&#034;&gt; Liste des options ( d&#233;tail dans &#171; man ex &#187; )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;26%&#034;&gt;:set &lt;/td&gt; &lt;td width=&#034;74%&#034;&gt;option Activer une option ( Exemple :set autoindent )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;26%&#034;&gt;:set nooption &lt;/td&gt; &lt;td width=&#034;74%&#034;&gt;Inhiber une option ( Exemple :set nonumber )&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;26%&#034;&gt;:set option=valeur &lt;/td&gt; &lt;td width=&#034;74%&#034;&gt;Exemple :set tabstop=4 &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On peut abr&#233;ger le mot &#171; set &#187; en &#171; se &#187; ainsi que le nom de l'option s'il&lt;br class=&#034;autobr&#034; /&gt;
n'est pas ambigu.&lt;/p&gt;
&lt;p&gt;Exemples&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;471&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;84&#034;&gt;:set number&lt;/td&gt; &lt;td width=&#034;371&#034;&gt; Afficher les num&#233;ros de lignes&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;84&#034;&gt;:se nu&lt;/td&gt; &lt;td width=&#034;371&#034;&gt; Idem&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;84&#034;&gt;:se nonu&lt;/td&gt; &lt;td width=&#034;371&#034;&gt;Op&#233;ration inverse&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Param&#233;trage permanent&lt;/i&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On peut constituer un fichier &lt;b&gt;.exrc&lt;/b&gt; dans son &lt;b&gt;r&#233;pertoire de&lt;br class=&#034;autobr&#034; /&gt;
connexion&lt;/b&gt;. L'&#233;diteur ex&#233;cute le contenu de ce fichier &#195; chaque appel.&lt;/p&gt;
&lt;p&gt;Exemple de contenu de fichier&lt;/p&gt;
&lt;table border=&#034;1&#034; width=&#034;470&#034;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&#034;87&#034;&gt;set redraw&lt;/td&gt; &lt;td width=&#034;367&#034;&gt; Corriger les d&#233;fauts d'affichage sur certains terminaux&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;87&#034;&gt;set number&lt;/td&gt; &lt;td width=&#034;367&#034;&gt;Activer la num&#233;rotation de ligne&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;87&#034;&gt;set autoindent&lt;/td&gt; &lt;td width=&#034;367&#034;&gt; Activer l'indentation automatique&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td width=&#034;87&#034;&gt;set showmode&lt;/td&gt; &lt;td width=&#034;367&#034;&gt; Mode &#171; bavard &#187;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;a name=&#034;e&#034;&gt;E. Memo&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img height='397' src='https://admin-sys.org/base/meno_vi.gif' width='500' /&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
