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:

escrever -q [ -n Host ]

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 HostUsuá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:
Workstation

Quando 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.
Requisitos:
  • 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:
    127.0.0.1 loopback LocalHostName
    A nova entrada deve ler:
    127.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

  1. Para gravar uma mensagem para um usuário que está logado, digite:
    write june
    Pressione a tecla Enter e digite,
    I need to see you! Meet me in the computer room at 12:30.
    Em seguida, pressione a seqüência de teclas Ctrl-D para terminar o modo do comando write.

    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>
  2. Para realizar uma conversa, digite:
    write june
    Pressione a tecla Enter e digite,
    Meet me in the computer room at 12:30.
    o
    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.

    Agora, June responde digitando:

    write karen
    Pressiona a tecla Enter e os tipos,
    I'm running tests at 12:30. Can we meet at 3?
    o
    E você responde:
    OK--the computer room at 3.
    oo
    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.
  3. Para escrever alguém uma mensagem preparada, digite:
    write june < message.text
    Isso grava o conteúdo do arquivo message.text nojuneEstação de trabalho.
  4. Para escrever para a pessoa usando uma determinada estação de trabalho, digite:
    write -n console
    Pressione a tecla Enter e digite,
    The printer in building 998 has jammed.
    Please send help.
    Em seguida, pressione a sequência de chaves Ctrl-D.

    Isso grava a mensagem para a pessoa logada na estação de trabalho/dev/console.

  5. Para enviar uma mensagem ao usuáriospudsem hostpartya, digite:
    write -n partya spuds
    Pressione a tecla Enter e digite,
    Your new tape has just arrived,
    come see me to pick it up.
    Thanks!
    Em seguida, pressione a sequência de chaves Ctrl-D.

    OU

    write spuds@partya
    Pressione a tecla Enter e digite,
    Your new tape has just arrived,
    come see me to pick it up.
    Thanks!
    Em seguida, pressione a sequência de chaves Ctrl-D.
  6. Aqui está um exemplo de uma mensagem enviada pelo daemon 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>
    Para responder na afirmativa, digite:
    write -h 6398492,ok
    Em seguida, pressione a sequência de chaves Ctrl-D.

    Para responder no negativo, digite:

    write -h 6398492,cancel
    Em seguida, pressione a sequência de chaves Ctrl-D.

    Com 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 .