Vous êtes sur la page 1sur 33

Les Communications

sous UNIX
Table des Matières

October OOOO page : 2


LES MESSAGES
Envoyer un Message : write

Un utilisateur peut à tout moment envoyer un message à un autre utilisateur, en tapant la


commande write. Il faut que le destinataire soit connecté.

Ce n'est pas une commande à utiliser trop systématiquement car l'affichage d'un message sur
la console d'un utilisateur de façon aléatoire peut perturber son travail. Les utilisateurs UNIX
ont, de toute façon, la possibilité d'inhiber l'arrivée de message sur leur console, s'ils sont gênés
par une surabondance de messages.

La commande envoie tout d’abord à l’utilisateur une ligne d’information de la forme :


« Message from nom_utilisateur on terminal at date »

La commande write lit l'entrée standard ligne par ligne jusqu'au caractère de terminaison
Ctrl D.

Syntaxe : write nom_utilisateur [ terminal ] ↵

Exemple :

Pierre Jacques
$
$write Jacques
Message from Pierre (ttyp1) [ Mon Nov 27 16:01:26 ] ...
Bonjour Jacques !
Bonjour Jacques !
^D
EOT
$

Remarque : Les dernières générations de write permettent la transmission de message à travers


les réseaux.

Syntaxe : write nom_utilisateur@nom_hôte [ terminal ] ↵

October OOOO page : 3


Exemple :

Pierre Jacques
$
$write Jacques@serveur1
Message from Pierre on serveur1 (pts/1) [Mon Nov 27
17:19:21 NFT 1995] ...
Bonjour Jacques !
Bonjour Jacques !
^D
EOT
$

Inhiber un message : mesg

Lorsqu'un utilisateur travaille, il peut empêcher l'affichage des messages par la commande :
mesg n qui enlève les permissions d'écriture sur l'écran (/dev/ttypn).

Syntaxe : mesg [ n | y ] ↵

Options : n Inhibe l'affichage (crw- --- ---)


y Rétablit l'affichage (crw- -w- -w-)
aucune Fournit l'état

Exemple :

Pierre Jacques

$mesg n
$write Jacques
$
Permission denied.
$

Message général : wall

La commande wall (write all) est réservée à l'administrateur du système (sauf si celui-ci
accorde la permission x à 'other'). Elle lui permet d'envoyer un message en cas d'urgence à tous
les utilisateurs actifs du système local, c'est à dire à tous ceux qui sont connectés.

Syntaxe : wall [ message ] ↵

October OOOO page : 4


Exemple :

root Autres utilisateurs

#wall ARRET IMMEDIAT ...

Broadcast message from root on serveur1 ... Broadcast message from root on serveur1 ...

ARRET IMMEDIAT ... ARRET IMMEDIAT ...

Remarque : La commande wall, utilisée par l'administrateur du système (root), ne tient pas
compte d'une éventuelle inhibition de message (mesg n) de la part des utilisateurs.

Converser : talk

Outil de conversation interactif, talk permet a deux utilisateurs, connectés sur des terminaux
différents, de dialoguer.

Lorsque la commande est invoquée le destinataire reçoit un message l’informant qu’un


utilisateur souhaite entrer en contact avec lui et indique la syntaxe à utiliser pour accepter. Si le
destinataire répond affirmativement, le dialogue s’établit : les écrans sont partagés en deux
fenêtres, la partie du haut sert à l’émission et celle du bas sert à la réception.

La fin du dialogue est réalisée grâce à la touche <Suppr> ou <Del>.

Syntaxe : talk nom_utilisateur [ terminal ] ↵

Différentes syntaxes pour nom_utilisateur sont permises pour dialoguer sur le réseau :

nom_hôte ! nom_utilisateur
nom_hôte . nom_utilisateu
nom_hôte : nom_utilisateur
nom_utilisateur @ nom_hôte

Observation : La version du protocole talk utilisée sur SPIX est incompatible


avec les autres systèmes.

October OOOO page : 5


Remarque : talk est affecté par la commande mesg.

Exemple :

Pierre Jacques

$talk jacques $

[Waiting for your party to respond]


Message from Talk_Daemon@serveur1 at 11:08 ...
talk: connection requested by pierre@serveur1.
talk: respond with: talk pierre@serveur1
-------------------------------------------------
talk pierre@serveur1

[Connection established] [Connection established]


Salut Jaco ! Tres bien Pierrot !
Comment vas tu ?

------------------------------------------------- -------------------------------------------------
Tres bien Pierrot ! Salut Jaco !
Comment vas tu ?

October OOOO page : 6


LE COURRIER
Le courrier électronique constitue le moyen normal de joindre un utilisateur sur un système
Unix. Il permet de s'affranchir de la nécessité que le destinataire soit connecté et qu'il accepte les
messages. Il ne perturbe pas son travail et lui permet de consulter sa boite aux lettres lorsqu'il le
désire, de conserver et de gérer ses lettres.

Lors de la connexion, un utilisateur qui a reçu du courrier est prévenu par message:

Exemple :
Console login : Pierre
passwd :
[YOU HAVE NEW MAIL]
$

mail et mailx sont deux commandes qui permettent de gérer le courrier. mail est l'utilitaire
de base d'expédition et de réception. mailx utilise mail, tout en lui ajoutant un ensemble de
fonctionnalités intéressantes de gestion des messages.

Boite aux lettres



Sur la plupart des systèmes, le courrier arrivé est conservé dans le répertoire /usr/spool/mail
(ou /var/spool/mail). Dans ce répertoire, chaque utilisateur du système dispose d'un fichier
particulier qui représente sa boite aux lettres (mailbox). Le système de gestion du courrier
concatène tous les messages reçus, par un utilisateur, dans ce fichier et sait gérer correctement
les différents messages qui s'y trouvent.

Mise en oeuvre de MAIL


Envoi du courrier

Syntaxe : mail nom_utilisateur

October OOOO page : 7


Exemple :
mail jacques
salut Jaco
^D
$

Remarque : Les messages qui ne peuvent arriver à destination sont sauvegardés dans le fichier
$HOME/dead.letter.

Lecture du courrier

Syntaxe : mail [-pr] [-f fic]

mail sans argument affiche le dernier message arrivé dans la mailbox. Après chaque
message, un '?' invite l'utilisateur à taper une instruction.

La structure d'un message comporte toujours un entête qui indique l'expéditeur du message,
la date et l'heure de réception. Cet entête n'est pas envoyé par l'expéditeur mais créé par mail
lors de la réception du message.

Exemple :
eseat01#mail
from cwl Fri Apr 23 16:48 EET 1993 entête du message
essai de la commande mail texte du message
? attente de commandes

Commandes :
? ou * Aide en ligne
<return> ou + Passer au message suivant
d Détruire le message courant
s [fic] Sauver le message courant dans $HOME/mbox ou dans fic
w [fic] Sauver le message courant dans $HOME/mbox ou dans fic
sans entête
p Afficher de nouveau le message
- Afficher le message précédent
m [personne] Faire suivre le message à personne (détruit le message)
x ou q ou ^d Quitter mail
! Exécute une commande shell

October OOOO page : 8


Options :
-r Les messages sont affichés dans l'ordre d'arrivée.
-p Les messages sont listés à l’écran.
-f <fic> Indique une boîte aux lettres différente de la boite aux lettres
standard

Mise en oeuvre de MAILX

La commande mailx fournit un environnement confortable et souple pour émettre et


recevoir électroniquement des messages.

Quand on lit du courrier, mailx donne des commandes pour faciliter la sauvegarde, la
suppression et la réponse à des messages.

Quand on émet du courrier, mailx permet d'éditer, de revoir ou de porter des modifications.

Le courrier est stocké dans un fichier standard /usr/spool/mail (ou /var/spool/mail). Au fur
et à mesure que les messages sont lus, ils sont marqués pour être déplacés vers un fichier
secondaire appelé mbox dans le répertoire de l'utilisateur ($HOME/mbox). Les messages restent
dans le fichier jusqu'à ce qu'on les retire de force.

Quand on envoie du courrier, mailx est en "input mode". Si aucun sujet n'est spécifié sur la
ligne de commande, un message d'appel est imprimé pour le sujet.

Exemple : Sujet non spécifié :


$ mailx Pierre
Subject: essai1
Ceci est le premier essai de mailx
^D
Cc: Judith
$

Sujet spécifié :
$ mailx -s essai2 Pierre
ceci est le deuxième essai de mailx
^D
Cc: Judith
$

Quand on lit du courrier, mailx est en "mode commande". Un résumé d'entête des premiers
messages est affiché suivi par le prompt '?' (ou &) indiquant que mailx peut accepter des
commandes .

October OOOO page : 9


Exemple :
$ mailx
Mail [5.2 UCB] [AIX 3.2] Type ? for help.
"/usr/spool/mail/Pierre": 3 messages 3 new
>N 1 Jacques Wed Nov 29 10:56 14/444 "essai1"
N 2 Jacques Wed Nov 29 10:57 14/445 "essai2"
N 3 Jacques Wed Nov 29 10:58 14/444 "essai3"
&↵
Message 1:
From Jacques Wed Nov 29 10:56:50 1995
Date: Wed, 29 Nov 1995 09:56:54 +0100
From: Jacques
To: Pierre
Subject: essai1
Cc: Judith
Ceci est le premier essai de mailx
&q
Saved 1 message in mbox
Held 2 messages in /usr/spool/mail/Pierre
$
$ mail
Mail [5.2 UCB] [AIX 3.2] Type ? for help.
"/usr/spool/mail/Pierre": 3 messages 1 new 3 unread
U 1 Jacques@serveur1 Wed Nov 29 10:57 15/455 "essai2"
U 2 Jacques @serveur1 Wed Nov 29 10:58 15/454 "essai3"
>N 3 Jacques @serveur1 Wed Nov 29 11:06 13/424 "Le message oublié"
&

Les principales options

-H Visualise uniquement le sommaire d'entête des messages


-e Vérifie la présence de message. Mailx n'affiche rien et se
termine aussitôt et renvoie 1 s’il y a au moins un message
(utile dans un shell)
-f [fichier] Visualise les messages contenus dans mbox (par défaut) ou
dans fichier
-s sujet Utilisé pour l'émission de message. "sujet" est utilisé comme
contenu du champ 'sujet'. Les blancs doivent être encadrés
par des caractères quote
-u user Lit la boite aux lettres de user (si non protégé en lecture)

Les principales commandes

Chaque message est affecté d'un nombre séquentiel. Le message courant est repéré par '>'.

Les commandes sont de la forme

Syntaxe : commande [liste messages]

October OOOO page : 10


Par défaut, la commande agit sur le message en cours. "liste messages" est une liste de
spécification de messages séparés par des blancs.

Messages :
n Message numéro n
. Message courant
$ Dernier message
^ Premier message
* Tous les messages
user Tous les messages provenant de 'user'
/chaîne Le premier message contenant 'chaîne' (texte+entête)
:c Tous les messages de type 'c' où c prend comme valeur
d Messages supprimés
n Messages nouveaux
o Messages anciens
r Messages lus
u Messages non lus

Commandes :
type [liste messages] Affiche le(s) message(s) sur le terminal
next [liste messages] Affiche le message suivant (de liste messages)
from [liste messages] Donne les entête
header Donne toutes les entêtes.
delete [liste messages] Supprime les messages de liste messages
undelete [liste messages] Annule la suppression
preserve [liste messages] Conserve les messages dans la boîte aux lettres au lieu
de les mettre dans mbox.
save [liste messages] fic Sauvegarde liste messages dans fic
Reply [message] Répond à l'expéditeur et à tous les destinataires de ce
message
reply [liste messages] Répond aux destinataires
exit,xit,x Quitte mailx en conservant tous les messages (même
effacés)
quit Quitte mailx et transfère tous les messages lus dans
mbox
mail user Envoie un message à un ou plusieurs utilisateurs

October OOOO page : 11


top [liste messages] Affiche les cinq premières lignes des messages
list Donne la liste de toutes les commandes.
z [+/-] Visualise l'entête suivante ou précédente
! commande Exécute la 'commande' UNIX
write [liste messages] fic Sauvegarde les messages dans fic sans entête

Remarque :

Si vous êtes connecté sous mailx pendant l'arrivée d'un message, quand vous sortirez de
mailx, vous aurez le message "new mail has arrived"

Les messages traités sont sauvegardés dans mbox (sauf ceux supprimés) avec une sortie par
quit. Lors d'une sortie par exit, ils sont laissés la boite aux lettres standard.

Maintenant mail (ou mailx) peut envoyer des messages à travers le réseau :

Syntaxe : mail nom_utilisateur@nom_hôte ↵

Voir aussi : Les fichiers de configuration /usr/lib/mailx/mail.rc (ou /var/share/lib/Mail.rc) et


$HOME/.mailrc

October OOOO page : 12


SERVICES STANDARD DE TCP/IP
Service de connexion : telnet

Le service telnet utilise le protocole TCP et permet de se connecter sur une machine distante
à travers le réseau Internet avec autant de fonctionnalités disponibles que sur un terminal local. Il
est possible de se connecter à des machines dont le système est différent d’UNIX.

TELNET émule un terminal virtuel sur la machine distante. Cet utilitaire fonctionne selon
deux modes différents :
- Un mode entrée (input) : toute commande est exécutée sur la machine distante.
- Un mode commande (command) : les commandes sont interprétées localement par un shell
telnet

Syntaxe : telnet [ hôte [ port ] ]

Généralement on ne spécifie pas le numéro de port (port 23 par défaut).


hôte est l’adresse IP de la machine ( sous formes symbolique ou numérique).

Si le paramètre hôte est spécifié, telnet est lancé en mode entrée.


Sans paramètre, il est lancé en mode commande.

Le mode entrée

Dans le mode entrée, telnet tente de se connecter sur la machine distante spécifiée.

S’il y parvient, la machine distante revoie le prompt “login : “. Il faut alors se connecter sur
la machine distante. Lorsque l’authentification est réalisée, l’utilisateur peut alors exécuter toute
commande sur la machine distante.

Pour passer du mode entrée au mode commande il faut appuyer sur le caractère
d’échappement.

October OOOO page : 13


Exemple :
$ telnet saf1
Trying...
Connected to saf1.
Escape character is '^]'.

Bull M.T.S SPIX (ESEAT03)

login: jacques
Password:
__________________________________________________________________________

!!! !
! !!
!!!! !!! ! ! !
! ! !!!! !
!! !!!! ! !
! ! ! ! !
!!!! !!!! ! !!!!!

--------------------------------------------------------------------------

$^D
Connection closed.
$

Le mode commande

Dans le mode commande, telnet affiche le prompt “telnet>“. L’utilisateur a alors accès à
différentes commandes.

Commandes :
z Retour provisoire sous UNIX local. Pour revenir à telnet il faut
saisir la commande fg depuis UNIX.
open hostname Connexion avec la machine distante. Passe en mode entrée et
retourne le message “login :“. Si hostname n’est pas spécifié,
affichage de “to : “ et attente de la saisie du hostname.
close Fermeture de connexion et retour en mode commande.
display Affiche des informations sur les touches d’échappement.
quit Déconnexion avec sortie de telnet.
mode type Permet de changer le mode de transmission.
status Affiche les paramètres courant sur le serveur.
echo Echo sur la machine distante.
set escape c Permet de remplacer le caractère d’échappement, par défaut
“^]“ par le caractère c. Ce caractère permet le retour

October OOOO page : 14


sous telnet.
? commande aide sur la commande.

Exemple :
$ telnet
telnet> ?
Commands may be abbreviated. Commands are:

close close current connection


display display operating parameters
emulate emulate a vt100 or 3270 terminal
mode try to enter line-by-line or character-at-a-time mode
open connect to a site
quit exit telnet
send transmit special characters ('send ?' for more)
set set operating parameters ('set ?' for more)
status print status information
toggle toggle operating parameters ('toggle ?' for more)
z suspend telnet
? print help information
telnet> set escape ^A
escape character is '^A'.
telnet> open saf1
Trying...
Connected to saf1.
Escape character is '^A'.

Bull M.T.S SPIX (ESEAT03)

login: jacques
Password:
__________________________________________________________________________

!!! !
! !!
!!!! !!! ! ! !
! ! !!!! !
!! !!!! ! !
! ! ! ! !
!!!! !!!! ! !!!!!

--------------------------------------------------------------------------

$^A
telnet> status
Connected to saf1.
Operating in character-at-a-time mode.
Escape character is '^A'.

$^A
telnet> quit
Connection closed.
$

October OOOO page : 15


Service de Transfert de Fichier : ftp

FTP (File Transfert Protocole) permet le transfert de fichiers (textes ou autre) entre la
machine locale et une machine distante ou entre deux machines distantes. Il est possible
d’utiliser ftp sur des machines disposant de systèmes autres que UNIX.

Pour se faire il faut :


S’identifier sur la machine distante
S’assurer du sens du transfert (put ou get)
S’être positionner dans les répertoires origine et destination du document.
Définir le mode de transfert (ascii ou binary)

Syntaxe : ftp [-options ] hôte

Options : -d : Affiche la trace de l’émission des paquets


-g : Supprime l’utilisation des métacaractères du shell
-i : Supprime le prompt lors de transfert multiple
-n : Empêche le login automatique (Obligation de s’identifier)
-v : Indique les réponses du serveur distant et l’état du transfert.

Principales commandes :

help ou ?
ascii ou binary mode de transfert de fichier :ASCII ou binaire.
open hôte [port] établissement d’une connexion avec la machine hôte.
close ferme la connexion.
quit ou bye ou ^D ferme la connexion et sort de ftp.
mode [stream|block] définit le mode de transfert.

lcd répertoire change de répertoire sur la machine locale.


cd répertoire change de répertoire sur la machine distante
ls [ répertoire] [ fic ] affiche le contenu du répertoire à l’écran.
pwd affiche le chemin du répertoire courant.

put ficloc [ficdist] transfert un fichier local ficloc vers un fichier distant
ficdist.
mput liste_ficloc transfert un ensemble de fichier locaux sous les mêmes

October OOOO page : 16


noms.
get ficdist [ficloc] transfert un fichier distant vers un fichier local.
mget liste_ficdist transfert un ensemble de fichier distants sous les
mêmes noms.

Fichier $HOME/.netrc

Ce fichier permet d’automatiser les connexions. Il contient des lignes comportant trois mots-
clés suivis des chaînes associées :
machine nom_machine login nom_util passwd mot_de_passe

Il donne donc, pour une liste de machines données, les noms des utilisateurs et les mots de
passe qui doivent être utilisés.

Remarque : Comme ce fichier contient des mots de passe en clair, il ne doit avoir des droits en
lecture que pour l’utilisateur concerné.

Exemples du man

Exemple 1 :

$ ftp canopus
Connected to canopus.austin.century.com.
220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23
12:52:09 CST
1991) ready.
Name (canopus:eric): dee
331 Password required for dee.
Password:
230 User dee logged in.
ftp> help
Commands may be abbreviated. Commands are:
! delete mdelete proxy runique
$ debug mdir sendport send
account dir mget put size
append disconnect mkdir pwd status
ascii form mls quit struct
bell get mode quote sunique
binary glob modtime recv system
bye hash mput remotehelp tenex
case help nmap rstatus trace
cd image nlist rhelp type
cdup lcd ntrans rename user
close ls open reset verbose
cr macdef prompt rmdir ?
ftp> remotehelp
214-The following commands are recognized(* =>'s unimplemented).
USER PORT RETR MSND* ALLO DELE SITE* XMKD CDUP
PASS PASV STOR MSOM* REST* CWD STAT* RMD XCUP
ACCT* TYPE APPE MSAM* RNFR XCWD HELP XRMD STOU
REIN* STRU MLFL* MRSQ* RNTO LIST NOOP PWD

October OOOO page : 17


QUIT MODE MAIL* MRCP* ABOR NLST MKD XPWD
214 Direct comments to ftp-bugs@canopus.austin.century.com.
ftp> status
Connected to canopus.austin.century.com.
No proxy connection.
Mode: stream; Type: ascii; Form: non-print; Structure: file
Verbose: on; Bell: off; Prompting: on; Globbing: on
Store unique: off; Receive unique: off
Case: off; CR stripping: on
Ntrans: off
Nmap: off
Hash mark printing: off; Use of PORT cmds: on
ftp> bell
Bell mode on.
ftp> prompt
Interactive mode off.
ftp> runique
Receive unique on.
ftp> trace
Packet tracing on.
ftp> verbose
Verbose mode off.
ftp> quit
$

Exemple 2 :

$ ftp canopus
Connected to canopus.austin.century.com.
220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23
12:52:09 CST
1991) ready.
Name (canopus:eric): dee
331 Password required for dee.
Password:
230 User dee logged in.
ftp> pwd
257 "/home/dee" is current directory.
ftp> cd desktop
250 CWD command successful.
ftp> type ascii
200 Type set to A.
ftp> send typescript
200 PORT command successful.
150 Opening data connection for typescript (128.114.4.99,1412).
226 Transfer complete.
ftp> cdup
250 CWD command successful.
ftp> bye
221 Goodbye.
$

Exemple 3 :

$ ftp canopus
Connected to canopus.austin.century.com.
220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23
12:52:09 CST

October OOOO page : 18


1991) ready.
331 Password required for dee.
230 User dee logged in.
ftp> cdup
250 CWD command successful.
ftp> pwd
257 "/home" is current directory.
ftp> dir
200 PORT command successful.
150 Opening data connection for /usr/bin/ls (128.114.4.99,1407)
(0 bytes).
total 104
drwxr-xr-x 2 system 32 Feb 23 17:55 bin
Drwxr-xr-x 26 rios 4000 May 30 17:18 bin1
drwxr-xr-x 2 system 32 Feb 23 17:55 books
drwxrwxrwx 18 rios 1152 Jun 5 13:41 dee
-r--r--r-- 1 system 9452 May 17 12:21 filesystems
drwxr-xr-x 2 system 32 Feb 23 17:55 jim
drwxr-xr-x 5 system 80 Feb 23 17:55 krs
drwxrwxrwx 2 rios 16432 Feb 23 17:36 lost+found
-rwxr-xr-x 1 rios 3651 May 24 16:45 oldmail
drwxr-xr-x 2 system 256 Feb 23 17:55 pubserv
drwxrwxrwx 2 system 144 Feb 23 17:55 rein989
drwxr-xr-x 2 system 112 Feb 23 17:55 reinstall
226 Transfer complete.
ftp> delete oldmail
250 DELE command successful.
ftp> mdir /home/dee/bin binlist
output to local-file: binlist? y
200 PORT command successful.
150 Opening data connection for /usr/bin/ls (128.114.4.99,1408) (0
bytes).
226 Transfer complete.
ftp> close
221 Goodbye.
ftp> quit
$

October OOOO page : 19


COMMANDES À DISTANCE
UNIX propose quelques commandes à distance qui utilisent les possibilités offertes par les
services TCP/IP.

Pour ces commandes, la connexion sur machine distante peut être réalisée sans contrôle en
fonction des fichiers /etc/hosts.equiv et /HOME/.rhosts. Dans tous les autres cas, la connexion à
distance est réalisable mais nécessite une procédure d’identification complète.

Commande rsh

Cette commande permet l’exécution d’une commande shell sur une machine distante
désignée. Pour cela elle réalise, en interne, une connexion à distance sur la machine désignée.

Syntaxe : rsh nom_machine [ -l identificateur] commande

identificateur est le nom sous lequel on veut se connecter.

Exemple :
$ rsh saf1 ls /tmp affichage des fichiers du répertoire /tmp de saf1

Comparer :
$ rsh saf1 ls -l /lib > resu
et
$ rsh saf1 ls -l /lib ">" resu ou $ rsh saf1 ls -l /lib \> resu

Commande rlogin

Cette commande permet de se connecter sur une machine distante désignée.

Syntaxe : rlogin nom_machine [options]

Options : -l identificateur précise le nom sous lequel on veut se connecter.


-e c permet de redéfinir le caractère d’échappement.
-8 communication en 8 bits (7 bits par défaut).

Le fonctionnement de cette commande s’appuie sur le service telnet.

October OOOO page : 20


Par défaut, le système sur lequel on se connecte demande un mot de passe, sauf si
l’utilisateur distant est considéré comme ami (notion d’hôte de confiance).

Commande rwho

Cette commande fournit la liste des utilisateurs connectés sur les machines du réseau ainsi
que sur les terminaux utilisés par chacun.

Exemple :
$ rwho -a
clery serveur2:pts/0 Dec 15 08:42 99:59
exa1 serveur2:pts/7 Dec 11 14:56 90:46
exa10 serveur2:pts/18 Dec 12 14:59 99:59
exa2 serveur2:pts/11 Dec 13 10:02 99:59
exa2 serveur2:pts/8 Dec 13 09:32 99:59
exa3 serveur2:pts/6 Dec 13 15:50 99:59
exa4 serveur2:pts/0 Dec 8 13:56 99:59
exa4 serveur2:pts/1 Dec 8 16:21 99:59
exa4 serveur2:pts/15 Dec 13 15:54 99:59
exa6 serveur2:pts/10 Dec 13 13:33 99:59
exa6 serveur2:pts/13 Dec 13 14:08 99:59
exa7 serveur2:pts/12 Dec 13 10:13 99:59
exa7 serveur2:pts/9 Dec 13 09:40 99:59
exa9 serveur2:pts/14 Dec 13 15:53 99:59
fle serveur2:pts/1 Dec 15 08:48 99:59
ing10 serveur2:pts/11 Dec 6 09:14 99:59
ing11 serveur2:pts/19 Dec 5 07:52 99:59
ing12 serveur2:pts/20 Dec 5 07:53 99:59
ing13 serveur2:pts/18 Dec 6 10:05 99:59
ing14 serveur2:pts/10 Dec 6 09:39 99:59
ing17 serveur2:pts/15 Dec 6 09:56 99:59
ing17 serveur2:pts/16 Dec 5 07:51 99:59
ing18 serveur2:pts/12 Dec 6 10:07 99:59
ing18 serveur2:pts/20 Dec 12 15:20 99:59
ing19 serveur2:pts/17 Dec 6 10:01 99:59
ing2 serveur2:pts/4 Dec 6 11:25 99:59
ing2 serveur2:pts/5 Dec 6 14:05 99:59
ing3 serveur2:pts/2 Dec 6 11:10 99:59
ing5 serveur2:pts/24 Dec 5 10:31 99:59
ing7 serveur2:pts/13 Dec 6 10:22 99:59
ing7 serveur2:pts/22 Dec 5 10:08 99:59
ing7 serveur2:pts/8 Dec 6 15:39 99:59
ing8 serveur2:pts/9 Dec 6 10:18 99:59
lp serveur1:lmxlp Dec 14 09:07 23:38
marti_ serveur1:pts/0 Dec 15 08:45
marti_ serveur2:pts/14 Dec 6 10:22 99:59
marti_ serveur2:pts/25 Dec 5 11:05 99:59
pfoort serveur2:pts/7 Dec 7 13:32 90:46
root serveur2:pts/21 Dec 12 15:22 99:59
root serveur2:pts/6 Dec 8 11:06 99:59
root serveur2:tty0 Dec 4 13:38 17:14
root serveur2:tty0 Dec 12 09:50 17:14
wagnier serveur2:pts/19 Dec 12 15:18 99:59
$

October OOOO page : 21


Commande rcp

Cette commande permet des copies de fichiers et des copies récursives d’arborescences dans
le monde UNIX.

Syntaxe : rcp [-r] ref_source ref_destination

Les références à utiliser sont constituées du nom de la machine suivi de ‘:’ et par le nom du
fichier au format UNIX : nom_machine:nom_fichier

Si ref_destination est un nom de fichier il y a recopie avec renommage.


Si ref_destination est un répertoire on peut copier plusieurs fichier en une seule commande.
L’option -r permet de recopier des arborescences complètes.

Exemple : A partir de serveur1


$ rcp serveur2:/tmp/toto copie du fichier toto dans le répertoire local
$ rcp -r serveur2:/tmp copie du répertoire et de son contenue dans le répertoire local

October OOOO page : 22


SERVICES STANDARD D’UNIX (BNU)
Généralités

Un réseau de communication offre l'opportunité à un utilisateur d'utiliser d'autres machines


que son ordinateur usuel. Il peut se connecter sur les autres sites du réseau ou faire exécuter des
travaux à distance.

On trouve sur tous les systèmes Unix des commandes standard comme cu ou uucp . Ce sont
les outils de communication de base, fournis par défaut avec le système.

La commande cu (Connect Unix) permet de se connecter à une machine distante par


l'intermédiaire d'une ligne asynchrone.

Le système UUCP est un véritable sous-système qui permet d'effectuer des transferts de
fichiers entre deux machines, sur liaisons asynchrones également.

Le commande kermit est un produit dit "freeware". Il permet de faire communiquer des
machines et des systèmes variés et hétérogènes.

Types de liaisons
Liaisons spécialisées

Dans le mode connexion direct, les ports asynchrones (tty) de deux machines sont reliés par
un simple câble; aucun autre matériel n'est nécessaire. La distance maximum, selon les standards
RS 232, est de 15 mètres. Mais dans un environnement non perturbé, cette distance peut être
supérieure.

La vitesse, en utilisation courante, est 9600 bits/s.

Selon la qualité de l'environnement et la distance, on peut être amené à utiliser des modems.
Dans ce cas, la vitesse ne dépasse pas 9600 bits/s.

October OOOO page : 23


p o r ts tty

M a c h in e U n ix M a c h in e U n ix
15 m m axi

L ia is o n d ir e c te

p o r t tty p o r t tty

M a c h in e U n ix m odem m odem M a c h in e U n ix

L ia is o n s p é c ia lis é e a v e c m o d e m s

Liaison par réseau téléphonique commuté

Ce mode de liaison, plus ouvert que le précédent, permet l'établissement de communication


entre différentes machines, abstraction faite de leur lieu géographique. L'élément hardware
indispensable est un modem. Les vitesses de transfert sont celles en vigueur sur les différents
réseaux commutés (300, 1200, ...).

p o rt tty p o rt tty

R
M a c h in e U n ix m odem T m odem M a c h in e U n ix
C

Connect Unix: cu

La commande cu est un émulateur de terminal virtuel, qui permet une connexion interactive
sur une machine distante et le transfert de petits fichiers.

Après activation de la connexion, l'utilisateur se trouve avec la bannière d'accueil de la


machine appelée (distante), la machine locale devient alors une console déportée de la machine
distante et toutes les commandes sont alors exécutées sur la machine distante.

Mise en oeuvre

October OOOO page : 24


Syntaxe : cu [-s speed] [-l line] [options] nom_distant

nom_distant est le nom du système distant (défini dans le fichier L.Sys (ou
Systems) sous le répertoire /usr/lib/uucp (ou /etc/uucp)).

Options : -s Vitesse exprimée en bauds (1200 à 9600). Il faut connaître la


vitesse de la ligne par l'intermédiaire de laquelle on pénètre sur
le système distant. Lors de la connexion sur le système distant,
la ligne correspondante est ouverte en mode exclusif, de telle
façon qu'un seul utilisateur à la fois puisse l'utiliser (définie dans
L_devices ou Device).
-l Ligne utilisée, représentée par le fichier spécial qui décrit la
sortie asynchrone correspondante (ex: /dev/tty11).
-d informations de trace
-o parité paire
-e parité impaire

Utilisation de cu

Une fois l'utilisateur connecté sur la machine distante, toutes les commandes tapées sont
exécutées par cette dernière, sauf celles que l'on fait débuter par un caractère spécial (~ :
caractère tilde). Ces dernières sont interceptées par la machine locale et peuvent donc être
interprétées localement.

Commandes :
~. Fin de connexion
~! Echappement sur la machine locale
~! commande Exécution d'une commande sur la machine locale (/etc
ou /bin)
~% cd Changement de répertoire local
~% put floc fdist Transfert d'un fichier ASCII de la machine locale (floc)
vers la machine distante (Fdist)
~% take fdist floc Transfert d'un fichier de la machine distante (Fdist) sur
la machine locale (Floc).

October OOOO page : 25


Le système UUCP

Le système UUCP est un ensemble de commandes et de programmes utilitaires qui gère les
liaisons et les transferts sur un réseau de machines Unix reliées entre elles par des liaisons
asynchrones.

Il permet de transférer des fichiers ou du courrier et de faire des exécutions à distance.

Les processus mis en oeuvre ne sont pas permanents et les traitements sont, en général,
différés. Le dialogue entre deux sites se fait suivant un mode maitre-esclave.

UUCP fonctionne suivant un système de requêtes semblable à celui du système


d'impression. Les requêtes soumises à uucp sont stockées dans des files d'attente du répertoire
/usr/spool/uucp (ou /var/spool/uucp).

Chaque requête comporte un numéro d'identification. Lorsque la connexion est établie, la


machine locale transmet les informations en attente, puis se met à l'écoute du système distant et
attend l'arrivée des informations en attente de transfert qui lui sont destinées.

Un utilisateur reçoit les comptes-rendus de ses transferts par courrier (mail).

Le système UUCP permet le transfert de gros fichiers ASCII ou binaires (ce que ne permet
pas CU).

Envoyer des messages avec uuto

La commande uuto permet à un utilisateur de faire des requêtes de transfert d'un site à un
autre. Elle ne réalise pas le transfert proprement dit, mais définit une requête de transfert dans
une file d'attente, qui sera prise en charge par le système uucp.

Syntaxe : uuto fichier système!destinataire

fichier nom du fichier à transmettre


système nom du système distant
destinataire nom d'un utilisateur de ce système distant.

Options: -m l'expéditeur est prévenu par mail


-p le fichier est copié avant transfert dans /usr/spool/uucp

October OOOO page : 26


Recevoir des fichiers avec uupick

La commande uupick permet à un destinataire de recevoir les fichiers qui lui ont été
expédiés. Les fichiers sont placés par uucp dans une file d'attente d'arrivée. uupick s'emploie
sans argument. C'est une commande interactive.

Commandes : <return> consulter le fichier suivant dans la file


d détruire le fichier courant
m <dir> déplacement du fichier courant dans le répertoire dir
a <dir> déplacement de tous les fichiers dans le répertoire dir
p visualisation du contenu du fichier
q quitter uupick
!<cmd> exécute la commande cmd

La commande uucp

La commande uucp est plus générale que uuto. Elle permet le transfert de fichiers vers un
site distant. Elle a été conçue pour fonctionner de la même façon que la commande de copie cp.

Syntaxe : uucp options source destinataire

October OOOO page : 27


Les champs source et destinataire sont de la forme système!chemin .
Système, qui peut être omis pour la machine locale, désigne le nom du noeud uucp tel qu'il
apparaît dans le fichier System ou L.sys.
Chemin peut être :
-soit un chemin absolu
-soit un chemin commençant par le répertoire de connexion d'un utilisateur
particulier ~login-name/rep/fic
-soit un chemin commencant par le répertoire public.~/toto est équivalent à
/usr/spool/uucppublic/toto

Principales options :
-m renvoyer un courrier à l'initiateur du transfert à la fin de celui ci
-r mise en file d'attente seulement
-d création des répertoires pour les copies (par défaut)
-c pas de copie préalable du fichier (par défaut)
-C copie préalable du fichier dans le répertoire /usr/spool/uucp

Exemple: Emission
uucp -m /etc/inittab ESEAT02!/usr/jr/table

Réception
uucp ESEAT02!~jr/maths /tmp

Le cheminement dans le réseau : uusend

Pour atteindre, à partir d'un site S1, un site S3 avec laquelle on n'a aucune liaison, sachant
qu'il y a une liaison S3-S2 et une liaison S1-S2.

La commande uusend permet l'envoi de fichiers à un site distant au travers de plusieurs


systèmes reliés par uucp

Exemple :
$uusend fichier S2!S3!cible/fic

Mode de fonctionnement du système UUCP

October OOOO page : 28


Principaux répertoires

/usr/lib/uucp ou /usr/bin/uucp
contient les fichiers de contrôle de uucp

/usr/spool/uucp ou /var/spool/uucp
contient les fichiers descriptifs nécessaires aux diverses
commandes uucp

/usr/spool/uucppublic ou /var/spool/uucppublic
contient les fichiers publics reçus ou en instance de
transfert.

Fonctionnement

Le mode de fonctionnement est essentiellement de type batch (différé). Des requêtes sont
soumises par les utilisateurs et les processus démons qui gèrent uucp les prennent en charge dans
un répertoire de type spool.

La fonction de base est constituée par le processus uucico toujours résident, qui se charge de
l'exécution des différents fichiers de travail, situés dans son répertoire de spool. Les utilisateurs
font des requêtes et le système cron, qui gère les travaux périodiques, se charge de réveiller
uucico qui explore alors ses répertoires et exécute alors les requêtes qu'il y trouve.

Les tâches assurées par uucico sont :


ð Examen des requêtes en instance
ð Appel du site distant
ð Login sur le site distant
ð Appel de uucico distant
ð Initialisation du protocole de transfert
ð Transfert des données
ð Si le système distant a des transferts en attente, échanger les rôles de chacun et
transmettre les données.
ð Raccrocher la ligne
ð Distribuer les données reçues à leur destinataire
ð Examen des requêtes en instance

October OOOO page : 29


Kermit

C'est un programme d'émulation de terminal et de transfert de fichiers qui permet de mettre


en communication et de transférer des fichiers entre des machines de système d'exploitation très
divers.

Syntaxe : kermit

La commande kermit exécutée au niveau du shell renvoie un message d'invite.

Exemple :
$kermit -l /dev/tty -b 9600
C-Kermit>

A la suite de ce message d'invite, un utilisateur a le choix entre un ensemble de commandes.

Le caractère "?" tapé a n'importe quel endroit d'une commande, renvoie un panneau d'aide
expliquant ce qui est attendu à ce stade.

Commandes :
! cmde Exécute une commande shell
send fic Envoi le fichier spécifié vers le serveur connecté
receive Attend de manière passive que le fichier soit transmis par
send
connect Etablit la connexion en mode terminal avec le système
distant. Pour sortir, il faut taper ^\C
set Etablit différents réglages non standard:
ð parity
ð line
ð speed
ð prompt ...
show Affiche les valeurs des options de set
help Affiche le message d'aide pour une commande (help send)
exit Quitte kermit pour revenir au système d'exploitation
dir Donne la liste du répertoire courant (⇔ ! ll)
cwd Change de répertoire courant (⇔ ! cd)
statistics Affiche les statistiques du transfert

October OOOO page : 30


server Met kermit en mode server (passif)

Fonctionnement en mode serveur


send fic Transmet un fichier vers le serveur
get fic Demande au serveur d'envoyer un fichier
bye Arrête le serveur distant et quitte kermit
A l'extrémité distante, le travail se déconnecte
finish Arrête le serveur sans avoir à se déconnecter et sans quitter
kermit . Une commande connect ultérieure nous
remet dans notre travail sur l'hôte distant.
remote dir Affiche le contenu du répertoire distant
remote delete fic Supprimer des fichiers distants
remote cwd fic Change le répertoire de travail distant
remote host cde Exécute une commande sur le distant
remote type fic Affiche le contenu du fichier distant fic

Déroulement d'une session kermit

En mode normal (interactif)

1 - Lancement de kermit sur le local


$kermit -l /dev/tty11 -b 9600
C-Kermit>
2 - Changement de prompt sur le local
C-Kermit>set prompt Local>
Local>
3 - Connexion sur le distant
Local> connect
login :
4 - Login sur le distant à partir de la console locale
login :user1
$
5 - Lancement de kermit sur le distant et changement de prompt
$kermit -l /dev/tty16 -b 9600
C-kermit> set prompt Distant>
Distant>

October OOOO page : 31


6- Envoi du fichier "essai" du distant vers le local
Distant> send essai
7 - Retour au local
Distant> Ctrl\c
Local>
8 - Mise du local en réception de fichier
Local> receive
9 - Connexion au distant
Local> connect
Distant>
10 - Sortie de kermit et logout sur le distant
Distant> quit
$^D
login:
11 - Retour au local
login: ^\c
Local>
12 - Sortie du kermit local
Local> quit
$

En mode serveur

Phases de 1 à 5 incluses identiques


6- Lancement du serveur kermit sur le distant
Distant> server
7 - Retour au local
^\c
Local>
8 - Toutes les opérations se font à partir du local
ð Transfert
ð Arrêt du serveur sur le distant

October OOOO page : 32


UUNAME ET UNAME
uuname

Donne des informations sur les autres systèmes uucp accessible. Informations contenues
dans le fichier L.sys (ou Systems).

Option : -l renvoie le nom du système local

uname

Donne des informations sur le système UNIX courant.

Syntaxe : uname [ options ]

Options : -m Identification hardware de la machine.


-n Nom du noeud.
-r Dernière release du système.
-s Nom du système (option par défaut)
-v version du système
-a Regroupe toutes les options

October OOOO page : 33

Vous aimerez peut-être aussi