Académique Documents
Professionnel Documents
Culture Documents
sous UNIX
Table des Matières
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 write lit l'entrée standard ligne par ligne jusqu'au caractère de terminaison
Ctrl D.
Exemple :
Pierre Jacques
$
$write Jacques
Message from Pierre (ttyp1) [ Mon Nov 27 16:01:26 ] ...
Bonjour Jacques !
Bonjour Jacques !
^D
EOT
$
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
$
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 ] ↵
Exemple :
Pierre Jacques
$mesg n
$write Jacques
$
Permission denied.
$
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.
Broadcast message from root on serveur1 ... Broadcast message from root on serveur1 ...
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.
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
Exemple :
Pierre Jacques
$talk jacques $
------------------------------------------------- -------------------------------------------------
Tres bien Pierrot ! Salut Jaco !
Comment vas tu ?
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.
Remarque : Les messages qui ne peuvent arriver à destination sont sauvegardés dans le fichier
$HOME/dead.letter.
Lecture du courrier
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
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.
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 .
Chaque message est affecté d'un nombre séquentiel. Le message courant est repéré par '>'.
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
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 :
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
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.
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
Exemple :
$ telnet
telnet> ?
Commands may be abbreviated. Commands are:
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.
$
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.
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.
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
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
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
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.
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
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
$
Cette commande permet des copies de fichiers et des copies récursives d’arborescences dans
le monde UNIX.
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
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.
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.
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.
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
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.
Mise en oeuvre
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)).
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).
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.
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.
Le système UUCP permet le transfert de gros fichiers ASCII ou binaires (ce que ne permet
pas CU).
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.
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.
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.
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
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.
Exemple :
$uusend fichier S2!S3!cible/fic
/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.
Syntaxe : kermit
Exemple :
$kermit -l /dev/tty -b 9600
C-Kermit>
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
En mode serveur
Donne des informations sur les autres systèmes uucp accessible. Informations contenues
dans le fichier L.sys (ou Systems).
uname