comando write
Propósito
Abre uma linha de comunicação para enviar mensagens para outros usuários sobre o sistema em tempo real.
Sintaxe
Para consultar todas as mensagens aguardando respostas dos usuários em um host e exibem-os com suas alças, digite o seguinte:
Para Responder a um Sente de Mensagem por um Utility ou um Shell Script, ou Reexibir a Mensagem Associada com uma alça Dada, digite o seguinte:
writo -hManejo, { ok | cancelar | consulta } [ -n Host ]
Para enviar mensagens a um usuário, opcionalmente em outro host ou em um determinado dispositivo, digite o seguinte:
escrever [ -r ] { [ -n Host ] Usuário | Usuário@Host } [ Linha ]
Descrição
O comando escrever possibilita o envio de mensagens sobre o sistema em tempo real. Ele fornece comunicação-como comunicação com outro usuário logado. Cada usuário envia e recebe alternadamente mensagens curtas de outra estação de trabalho. Mensagens longas podem ser enviadas colocando-se a mensagem completa em um arquivo e redirecionando-o como entrada para o comando write.
Para outro usuário (conforme especificado pelo parâmetro Usuário ) para receber uma mensagem, esse usuário deve estar logado e não deve ter permissão de mensagem recusada. Quando uma mensagem é enviada para um usuário que não está logado, a mensagemuser not logged iné exibida. Se a mensagem for enviada para um usuário que tenha recusado a permissão de mensagem, configurando o comando mesg para não, a mensagemwrite: permission deniedé exibida.
Quando o comando write é emitido, ele envia imediatamente a seguinte mensagem, junto com um som para chamar a atenção (o caractere ASCII BEL), para o destinatário da mensagem ou do destino:
Message from SenderID on SenderHostname (ttynn) [Date] ... Com uma conexão bem-sucedida, o comando write envia dois caracteres ASCII BEL para as duas estações de trabalho. O beep alerta o remetente de que a mensagem pode começar e ela alerta o usuário receptor de que uma mensagem está chegando.
O envio ocorre uma linha por vez, à medida que a tecla Enter é pressionada. O link de comunicação do remetente para o receptor permanece aberto e o envio continua até que a sequência de chaves Ctrl-D termine o link de envio. Em seguida, um caractere de fim de texto (< EOT>) é enviado para a estação de trabalho de destino e o modo de comando escrever é finalizado.
O usuário de recebimento ou destino pode responder enviando um comando escrever para o usuário originário. Isso abre uma linha de comunicação do receptor de volta para o remetente, permitindo respostas de mensagem em troca. Para esse tipo de troca, a seguinte convenção é útil: Quando você escreve primeiro para os outros, aguarde uma resposta antes de enviar qualquer texto. Termine uma mensagem com um sinal comoo(over) para alertar a outra pessoa a responder. Use ooo(sobre e para fora) quando a conversa terminar.
Se o caractere!(ponto de exclamação) é encontrado no início de uma linha, o comando escrever chama a shell para executar o resto da linha como um comando.
Quando você escreve para um usuário que está logado em mais de uma estação de trabalho ou multi-usando mais de um processo, o comando write usa a primeira instância de login encontrada no arquivo /etc/utmp como o ponto de entrega de mensagens (geralmente o login ou shell do console), e você recebe a mensagem:
UserID is logged on more than one place.
You are connected to "Workstation".
Other locations are:
WorkstationQuando esta mensagem é recebida, se você deseja enviar a mensagem para um local diferente do local de login inicial, o usuário alvo pode ser contatado em um local diferente especificando o Linha do local (tty00, por exemplo).
A permissão para gravar em outro usuário é concedida ou negada pelo usuário individual com o comando mesg . Alguns comandos negam permissão de mensagem enquanto eles estão correndo para evitar interferência com sua saída. Um usuário com autoridade de usuário root pode gravar em qualquer estação de trabalho independentemente da permissão de mensagem da estação de trabalho.
Você pode usar o comando escrever para conversar com usuários em outros hosts. É possível identificar um usuário em um host remoto usando o sinalizador ' -n 'Nome do host ou o parâmetro ' Usuário '@ 'Anfitrião. Para escrever para um usuário em um host remoto, o daemon writesrv deve estar rodando tanto no host atual quanto no host remoto.
O comando escrever também é usado pelo daemon qdaemon para enviar mensagens aos usuários em outros hosts e esperar por respostas. Há apenas três respostas válidas:
| Item | Descrição |
|---|---|
| ok | As saídas de gravação originais com status de 0. |
| cancel | As saídas de gravação originais com status de 1. |
| query | A mensagem associada à alça dada é exibida. |
Parâmetros
| Item | Descrição |
|---|---|
| Usuário | Especifica o ID do usuário da pessoa para receber o texto da mensagem. |
| Usuário@Host | Especifica o ID do usuário e o host remoto da pessoa para receber o texto da mensagem. |
| Linha | Entra em contato com o usuário alvo em outro local (tty00, por exemplo). |
Sinalizações
| Item | Descrição |
|---|---|
| -h Alça,Resposta | Responde a uma mensagem enviada por um script utilitário ou shell usando gravação com a opção de resposta. O valor a ser utilizado para a variável Alça é gerado internamente e fornecido para o usuário no texto da mensagem original. A resposta pode serok,cancelouquery. |
| -n Host | Especifica um host remoto. A variável Host pode ser um apelido ou um endereço de internet. |
| -q | Consulta todas as mensagens aguardando respostas dos usuários em um host e as exibe com suas alças. |
| -r | Gera uma alça de mensagem, coloca-a no cabeçalho da mensagem, envia a mensagem e aguarda uma resposta. Esta sinalização é usada pelo daemon qdaemon para mensagens de operador e pode ser colocada em scripts shell. Ele não é usado para conversas interativas. Um status de saída de 0 indica que a resposta foiok, um status de 1 indica que a resposta foicancel, e um status de saída de 2 indica que o usuário não pôde ser contatado. |
- O daemon writesrv deve estar em execução no host de destino, a fim de que qualquer uma das sinalizações funcione. Se você não estiver usando a sinalização -n ou @Host, mas usando -h, -qou -r, o daemon writesrv deve estar rodando em seu host.
- Se o ` TCP/IP ` não estiver instalado no seu computador, mas a variável ` HostName ` estiver definida, para se comunicar com usuários no host local usando o comando `write` com os sinalizadores `-h `, `-q ` ou `-r `, você deve acrescentar o nome do seu host ao final do loopbackentrada no arquivo /etc/hosts . A entrada original deve ler:
A nova entrada deve ler:127.0.0.1 loopback LocalHostName127.0.0.1 loopback LocalHostName HostName
Status de saída
Esse comando retorna os valores de saída a seguir:
| Item | Descrição |
|---|---|
| 0 | Conclusão bem-sucedida. |
| >0 | O usuário endereçado também não está logado ou nega permissão. |
Exemplos
- Para gravar uma mensagem para um usuário que está logado, digite:
Pressione a tecla Enter e digite,write june
Em seguida, pressione a seqüência de teclas Ctrl-D para terminar o modo do comando write.I need to see you! Meet me in the computer room at 12:30.Se o seu ID de usuário forkarene você está usando workstationtty3,juneA estação de trabalho exibe:
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> - Para realizar uma conversa, digite:
Pressione a tecla Enter e digite,write june
Isso inicia a conversação. Os comandosono início da próxima linha significa que a mensagem acabou. Informa a June que você está esperando uma resposta. Não pressione Ctrl-D se você deseja continuar.Meet me in the computer room at 12:30. oAgora, June responde digitando:
Pressiona a tecla Enter e os tipos,write karen
E você responde:I'm running tests at 12:30. Can we meet at 3? o
Os comandosoosignifica over e out, dizendo a June que você não tem mais nada a dizer. Se junho também está acabadooo, então, ambos pressionam o Ctrl-D para encerrar a conversa.OK--the computer room at 3. oo - Para escrever alguém uma mensagem preparada, digite:
Isso grava o conteúdo do arquivo message.text nojuneEstação de trabalho.write june < message.text - Para escrever para a pessoa usando uma determinada estação de trabalho, digite:
Pressione a tecla Enter e digite,write -n console
Em seguida, pressione a sequência de chaves Ctrl-D.The printer in building 998 has jammed. Please send help.Isso grava a mensagem para a pessoa logada na estação de trabalho/dev/console.
- Para enviar uma mensagem ao usuáriospudsem hostpartya, digite:
Pressione a tecla Enter e digite,write -n partya spuds
Em seguida, pressione a sequência de chaves Ctrl-D.Your new tape has just arrived, come see me to pick it up. Thanks!OU
Pressione a tecla Enter e digite,write spuds@partya
Em seguida, pressione a sequência de chaves Ctrl-D.Your new tape has just arrived, come see me to pick it up. Thanks! - Aqui está um exemplo de uma mensagem enviada pelo daemon qdaemon :
Para responder na afirmativa, digite: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>
Em seguida, pressione a sequência de chaves Ctrl-D.write -h 6398492,okPara responder no negativo, digite:
Em seguida, pressione a sequência de chaves Ctrl-D.write -h 6398492,cancelCom a sinalização -h , não há necessidade de fornecer o nome do host ou o ID do usuário. Esta informação é rastreada com a alça.
Arquivos
| Item | Descrição |
|---|---|
| /etc/hosts | Contém informações sobre o servid TCP/IP. |
| /etc/utmp | Contém informações de usuário e contabilidade para os comandos quem, escrevere login . |