Commande write

Objectif

Ouvre une ligne de communication pour envoyer des messages à d'autres utilisateurs sur le système en temps réel.

Syntaxe

Pour interroger tous les messages en attente de réponses des utilisateurs sur un hôte et les afficher avec leurs descripteurs, entrez la commande suivante:

écrire -q [ -n Hôte ]

Pour répondre à un message envoyé par un utilitaire ou un script de shell, ou Réafficher le message associé à une poignée donnée, entrez ce qui suit:

write -hIdentificateur, { ok | cancel | requête } [ -n Hôte ]

Pour envoyer des messages à un utilisateur, éventuellement sur un autre hôte ou un périphérique particulier, entrez ce qui suit:

write [ -r ] { [ -n Hôte ] Utilisateur | Utilisateur@Hôte } [ Ligne ]

Descriptif

La commande écrire permet d'envoyer des messages sur le système en temps réel. Il fournit une communication de type conversation avec un autre utilisateur connecté. Chaque utilisateur envoie et reçoit des messages courts de l'autre poste de travail. Les messages longs peuvent être envoyés en plaçant le message complet dans un fichier, puis en redirigeant ce fichier en entrée dans la commande écrire .

Pour un autre utilisateur (tel que spécifié par le paramètre Utilisateur ) pour recevoir un message, cet utilisateur doit être connecté et ne doit pas avoir refusé un droit de message. Lorsqu'un message est envoyé à un utilisateur qui n'est pas connecté, le messageuser not logged ins'affiche. Si le message est envoyé à un utilisateur qui a refusé le droit de message en définissant la commande Még sur no, le messagewrite: permission denieds'affiche.

Lorsque la commande écrire est émise, elle envoie immédiatement le message suivant, ainsi qu'une attention (le caractère ASCII BEL) vers le destinataire ou la cible du message:

Message from SenderID on SenderHostname (ttynn) [Date] ... 

Avec une connexion réussie, la commande écrire envoie deux caractères BEL ASCII aux deux postes de travail. Le signal sonore alerte l'expéditeur que le message peut commencer et avertit l'utilisateur destinataire qu'un message est en cours d'envoi.

L'envoi se produit une ligne au moment où la touche Entrée est enfoncée. Le lien de communication de l'expéditeur vers le récepteur reste ouvert et l'envoi se poursuit jusqu'à ce que la séquence de touches Ctrl-D termine le lien d'envoi. Ensuite, un caractère de fin de texte (< EOT>) est envoyé au poste de travail cible et le mode commande écrire est arrêté.

L'utilisateur destinataire ou cible peut répondre en envoyant une commande écrire à l'utilisateur d'origine. Cela ouvre une ligne de communication entre le récepteur et l'expéditeur, permettant ainsi les réponses des messages en retour. Pour ce type d'échange, la convention suivante est utile: lorsque vous écrivez pour la première fois à d'autres, attendez une réponse avant d'envoyer un texte. Mettre fin à un message avec un signal tel queo(over) pour avertir l'autre personne de répondre. Utilisationoo(au-dessus et à l'extérieur) lorsque la conversation est terminée.

Si le caractère!(point d'exclamation) se trouve au début d'une ligne, la commande écrire appelle le shell pour exécuter le reste de la ligne en tant que commande.

Lorsque vous écrivez à un utilisateur qui est connecté à plusieurs postes de travail ou qui utilise plusieurs processus, la commande write utilise la première instance de connexion trouvée dans le fichier /etc/utmp comme point de distribution des messages (généralement le shell de connexion ou de console) et vous obtenez le message suivant:

UserID is logged on more than one place.
You are connected to "Workstation".
Other locations are:
Workstation

Lorsque ce message est reçu, si vous souhaitez envoyer le message à un emplacement autre que l'emplacement de connexion initial, l'utilisateur cible peut être contacté à un autre emplacement en spécifiant le Ligne de l'emplacement (tty00, par exemple).

L'autorisation d'écrire à un autre utilisateur est accordée ou refusée par l'utilisateur individuel à l'aide de la commande Még . Certaines commandes refusent l'autorisation des messages alors qu'elles sont en cours d'exécution pour éviter toute interférence avec leur sortie. Un utilisateur disposant des droits utilisateur root peut écrire sur n'importe quel poste de travail, quel que soit le droit du message du poste de travail.

Vous pouvez utiliser la commande écrire pour converser avec les utilisateurs sur d'autres hôtes. Vous pouvez identifier un utilisateur sur un hôte distant en utilisant l'indicateur '-n 'Nom d'hôte ou le paramètre 'Utilisateur '@ 'Hôte '. Pour écrire à un utilisateur sur un hôte distant, le démon Writesrv doit être en cours d'exécution sur l'hôte en cours et sur l'hôte distant.

La commande écrire est également utilisée par le démon Qdaemon pour envoyer des messages aux utilisateurs sur d'autres hôtes et attendre les réponses. Il n'y a que trois réponses valides:

Article Descriptif
ok Les exits d'écriture d'origine avec un statut 0.
cancel Les exits d'écriture d'origine avec un statut 1.
query Le message associé à la poignée indiquée s'affiche.

Paramètres

Article Descriptif
USER Indique l'ID utilisateur de la personne à recevoir le texte du message.
Utilisateur@Hôte Indique l'ID utilisateur et l'hôte distant de la personne pour recevoir le texte du message.
Ligne Contacts l'utilisateur cible à un autre emplacement (tty00, par exemple).

Indicateurs

Article Descriptif
-h Descripteur,Réponse Réplique à un message envoyé par un utilitaire ou un script de shell à l'aide de l'option d'écriture avec l'option de réponse. La valeur à utiliser pour la variable Descripteur est générée en interne et fournie à l'utilisateur dans le texte du message d'origine. La réponse peut êtreok,cancelouquery.
-nHôte Indique un hôte distant. La variable Hôte peut être un pseudonyme ou une adresse Internet.
-q Recherche tous les messages en attente de réponses des utilisateurs sur un hôte et les affiche avec leurs descripteurs.
-r Génère un descripteur de message, le place dans l'en-tête du message, envoie le message et attend une réponse. Cet indicateur est utilisé par le démon Qdaemon pour les messages opérateur et peut être placé dans des scripts de shell. Il n'est pas utilisé pour les conversations interactives. Un état de sortie 0 indique que la réponse a étéok, un état 1 indique que la réponse a étécancel, et un état de sortie de 2 indique que l'utilisateur n'a pas pu être contacté.
Exigences requises :
  • Le démon Writesrv doit être en cours d'exécution sur l'hôte cible pour que l'un des indicateurs puisse fonctionner. Si vous n'utilisez pas l'indicateur -n ou @Hôte, mais que vous utilisez -h, -qou -r, le démon Writesrv doit être en cours d'exécution sur votre hôte.
  • Si TCP/IP n'est pas installé sur votre machine mais que le HostName est défini, pour pouvoir dialoguer avec les utilisateurs sur l'hôte local à l'aide de la commande write avec l'option -h, -qou -r , vous devez ajouter votre nom d'hôte à la fin du loopbackdans le fichier /etc/hosts . L'entrée initiale devrait se lire comme suit:
    127.0.0.1 loopback LocalHostName
    La nouvelle entrée devrait se lire comme suit:
    127.0.0.1 loopback LocalHostName HostName

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Article Descriptif
0 % L'opération a abouti.
>0 L'utilisateur adressé n'est pas connecté ou refuse l'autorisation.

Exemples

  1. Pour écrire un message à un utilisateur connecté, entrez:
    write june
    Appuyez sur la touche Entrée et entrez,
    I need to see you! Meet me in the computer room at 12:30.
    Appuyez ensuite sur la séquence de touches Ctrl-D pour arrêter le mode commande écrire .

    Si votre ID utilisateur estkarenEt vous utilisez un poste de travailtty3,juneLe poste de travail affiche:

    Message from karen on trek tty3 Aug 17 11:55:24  ...
    I need to see you!  Meet me in the computer room at 12:30.
    <EOT>
  2. Pour tenir une conversation, entrez:
    write june
    Appuyez sur la touche Entrée et entrez,
    Meet me in the computer room at 12:30.
    o
    Cela commence la conversation. :NONE.oAu début de la ligne suivante signifie que le message est terminé. Il indique au mois de juin que vous attendez une réponse. N'appuyez pas sur Ctrl-D si vous souhaitez continuer.

    Voici les réponses de juin en tapant:

    write karen
    Permet d'appuyer sur la touche Entrée et les types,
    I'm running tests at 12:30. Can we meet at 3?
    o
    Et vous pourriez répondre:
    OK--the computer room at 3.
    oo
    :NONE.ooSignifie Au-dessus et à l'extérieur, en disant au mois de juin que vous n'avez plus rien à dire. Si le mois de juin est également terminéoo, alors vous appuyez sur Ctrl-D pour mettre fin à la conversation.
  3. Pour écrire un message préparé, entrez:
    write june < message.text
    Le contenu du fichier message.text est écrit dansjuneDu poste de travail.
  4. Pour écrire à la personne à l'aide d'un poste de travail donné, entrez:
    write -n console
    Appuyez sur la touche Entrée et entrez,
    The printer in building 998 has jammed.
    Please send help.
    Appuyez ensuite sur la séquence de touches Ctrl-D.

    Ceci écrit le message à la personne connectée au poste de travail/dev/console.

  5. Pour envoyer un message à l'utilisateurspudsSur l'hôtepartya, entrez:
    write -n partya spuds
    Appuyez sur la touche Entrée et entrez,
    Your new tape has just arrived,
    come see me to pick it up.
    Thanks!
    Appuyez ensuite sur la séquence de touches Ctrl-D.

    OR

    write spuds@partya
    Appuyez sur la touche Entrée et entrez,
    Your new tape has just arrived,
    come see me to pick it up.
    Thanks!
    Appuyez ensuite sur la séquence de touches Ctrl-D.
  6. Voici un exemple de message envoyé par le démon Qdaemon :
    Message from mary on trek (tty10) Aug 17 10:03:34 ...
    Use "write -h 6398492,reply" to reply
    Please insert tape number 5 into rmt0.
    <EOT>
    Pour répondre par l'affirmative, entrez:
    write -h 6398492,ok
    Appuyez ensuite sur la séquence de touches Ctrl-D.

    Pour répondre par la négative, entrez:

    write -h 6398492,cancel
    Appuyez ensuite sur la séquence de touches Ctrl-D.

    Avec l'indicateur -h , il n'est pas nécessaire de fournir le nom d'hôte ou l'ID utilisateur. Ces informations sont suivies avec la poignée.

Fichiers

Article Descriptif
/etc/hosts Contient des informations sur l'hôte TCP/IP.
/etc/utmp Contient des informations utilisateur et de comptabilité pour les commandes Qui, écrireet Connexion .