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:
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:
WorkstationLorsque 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é. |
- 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:
La nouvelle entrée devrait se lire comme suit:127.0.0.1 loopback LocalHostName127.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
- Pour écrire un message à un utilisateur connecté, entrez:
Appuyez sur la touche Entrée et entrez,write june
Appuyez ensuite sur la séquence de touches Ctrl-D pour arrêter le mode commande écrire .I need to see you! Meet me in the computer room at 12:30.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> - Pour tenir une conversation, entrez:
Appuyez sur la touche Entrée et entrez,write june
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.Meet me in the computer room at 12:30. oVoici les réponses de juin en tapant:
Permet d'appuyer sur la touche Entrée et les types,write karen
Et vous pourriez répondre:I'm running tests at 12:30. Can we meet at 3? o
: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.OK--the computer room at 3. oo - Pour écrire un message préparé, entrez:
Le contenu du fichier message.text est écrit dansjuneDu poste de travail.write june < message.text - Pour écrire à la personne à l'aide d'un poste de travail donné, entrez:
Appuyez sur la touche Entrée et entrez,write -n console
Appuyez ensuite sur la séquence de touches Ctrl-D.The printer in building 998 has jammed. Please send help.Ceci écrit le message à la personne connectée au poste de travail/dev/console.
- Pour envoyer un message à l'utilisateurspudsSur l'hôtepartya, entrez:
Appuyez sur la touche Entrée et entrez,write -n partya spuds
Appuyez ensuite sur la séquence de touches Ctrl-D.Your new tape has just arrived, come see me to pick it up. Thanks!OR
Appuyez sur la touche Entrée et entrez,write spuds@partya
Appuyez ensuite sur la séquence de touches Ctrl-D.Your new tape has just arrived, come see me to pick it up. Thanks! - Voici un exemple de message envoyé par le démon Qdaemon :
Pour répondre par l'affirmative, entrez: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>
Appuyez ensuite sur la séquence de touches Ctrl-D.write -h 6398492,okPour répondre par la négative, entrez:
Appuyez ensuite sur la séquence de touches Ctrl-D.write -h 6398492,cancelAvec 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 . |