| HOME / 정보공유 / AIX 명령어 모음

write
write write 명령 목적 시스템에 있는 다른 사용자에게 실시간으로 메세지를 전송할 통신 회선을 엽니다. 구문
호스트에서 사용자의 응답을 기다리고 있는 모든 메세지를 조회하고 처리와 함께 표시
write -q [ -n Host ]
유틸리티 또는 쉘 스크립트가 전송한 메세지에 응답하거나 지정된 처리와 연관된 메세지를 다시 표시
write -hHandle, { ok | cancel | query } [ -n Host ]
선택적으로 다른 호스트 또는 특정 장치 상의 사용자에게 메세지 전송
write [ -r ] { [ -n Host ] User | User@Host } [ Line ]
설명
write 명령을 사용하여 시스템에 실시간으로 메세지를 전송할 수 있습니다. 로그인된 다른 사용자와 대화식 통신을 제공합니다. 각 사용자는 다른 워크스테이션으로부터의 짧은 메세지를 교대로 전송 및 수신합니다. 긴 메세지는 파일에 완전한 메세지를 넣은 후 그 파일을 write 명령에 대한 입력으로 재지정하여 전송할 수 있습니다.
메세지를 받을 다른 사용자(User 매개변수로 지정)의 경우 해당 사용자가 로그인되어야 하고 메세지 권한을 거부하지 않아야 합니다. 메세지가 로그인되지 않은 사용자에게 전송된 경우 user not logged in 메세지가 나타납니다. mesg 명령을 no로 설정하여 메세지를 메세지 권한을 거부한 사용자에게 전송한 경우 write: permission denied 메세지가 나타납니다.
write 명령을 수행하면 메세지 수신자 또는 목표에 주의를 끌기 위한 소리(ASCII BEL 문자)와 함께 다음과 같은 메세지를 전송합니다.
Message from SenderID on SenderHostname (ttynn) [Date] ...
정상적인 연결의 경우, write 명령이 두 개의 ASCII BEL 문자를 두 워크스테이션 모두에 전송합니다. 경고음은 전송자에게 메세지가 시작되었다는 것을 알리고 수신자에게는 메세지가 도착하고 있다는 것을 알려줍니다.
전송은 Enter 키를 누를 때 한 번에 한 행씩 발생합니다. 전송자와 수신자의 통신 연결은 계속 열려 있으며 Ctrl-D 키를 눌러 전송 링크를 종료할 때까지 계속됩니다. 그런 다음, 텍스트 종료 문자()가 목표 워크스테이션에 전송되고 write 명령 모드가 종료됩니다.
수신 또는 목표 사용자는 원래 사용자에게 write 명령을 전송하여 응답할 수 있습니다. 이렇게 하면 수신자가 다시 전송자에게 통신 회선을 열어, 번갈아 메세지에 응답할 수 있습니다. 이 유형의 교환에서는 다음 규칙이 유용합니다. 처음 다른 사용자에게 쓸 때 텍스트를 전송하기 전에 응답을 기다리십시오. o(종료)와 같은 신호로 메세지를 종료하여 다른 사람이 응답하도록 변경하십시오. 대화가 종료되면 oo(종료 및 퇴장)을 사용하십시오.
문자 !(느낌표)가 행의 맨 처음에 있을 경우, write 명령은 쉘을 호출하여 행의 나머지 부분을 명령으로서 실행합니다.
둘 이상의 워크스테이션이나 둘 이상의 프로세스를 사용하는 다중 워크스테이션에 로그인된 사용자에게 기록하는 경우, write 명령은 /etc/utmp 파일에서 메세지 전달 위치(대개 로그인 또는 콘솔 쉘)로 발견된 첫 번째 로그인 인스턴스를 찾고 사용자는 다음과 같은 메세지를 받게 됩니다.
UserID is logged on more than one place.
You are connected to "Workstation".
Other locations are:
Workstation
이 메세지를 받게 되면 초기 로그인 위치가 아닌 다른 위치에 메세지를 전송하려는 경우, 위치의 Line을 지정하여 목표 사용자를 다른 위치에 접속시킬 수 있습니다(예를 들면, tty00).
다른 사용자에 기록하는 권한은 mesg 명령으로 사용자 개개인이 부여하거나 거부합니다. 일부 명령은 수행되는 동안 출력을 방해받지 않도록 메세지 권한을 거부합니다. 루트 사용자 권한을 갖는 사용자는 워크스테이션의 메세지 사용권한에 관계없이 모든 워크스테이션에 메세지를 쓸 수 있습니다.
write 명령을 사용하여 다른 호스트의 사용자와 대화할 수 있습니다. -nHostName 플래그 또는 User@Host 매개변수를 사용하여 원격 호스트 상의 사용자를 식별할 수 있습니다. 원격 호스트의 사용자에게 메세지를 쓰려면, 현재 호스트 및 원격 호스트 모두에서 writesrv 디먼을 수행해야 합니다.
write 명령은 qdaemon이 메세지를 다른 호스트에 있는 사용자에게 전송하고 응답을 기다리는 데도 사용됩니다. 다음의 3개만이 유효한 응답입니다.
ok 원래 쓰기가 상태 0으로 종료됩니다.
cancel 원래 쓰기가 상태 1로 종료됩니다.
query 지정된 처리와 관련된 메세지가 표시됩니다.
매개변수
User 메세지 텍스트를 수신할 사람의 사용자 ID를 지정합니다.
User@Host 메세지 텍스트를 수신할 사람의 사용자 ID 및 원격 호스트를 지정합니다.
Line 다른 위치에 있는 목표 사용자에 접속합니다(예를 들면, tty00).
플래그
-h Handle,Reply 응답 옵션과 함께 write 명령을 사용하여 유틸리티 또는 쉘 스크립트에 의해 전송된 메세지에 응답합니다. Handle 변수에 사용되는 값은 내부적으로 생성되어 원래 메세지 텍스트의 사용자에게 제공됩니다. 응답은 ok, cancel 또는 query입니다.
-nHost 원격 호스트를 지정합니다. Host 변수는 별명 또는 인터넷 주소입니다.
-q 호스트에서 사용자의 응답을 기다리고 있는 모든 메세지를 조회하여 조회된 메세지를 해당 처리와 함께 표시합니다.
-r 메세지 처리를 작성하여 메세지 헤더에 놓고, 메세지를 전송하고, 응답을 기다립니다. 이 플래그는 운영자 메세지를 위해 qdaemon 디먼이 사용하며 쉘 스크립트에 놓여질 수 있습니다. 그러나 대화식 대화에는 사용될 수 없습니다. 종료 상태 0은 응답이 ok였고, 상태 1은 응답이 cancel이었으며, 종료 상태 2는 사용자가 연결되지 않았음을 나타냅니다.
주:
writesrv 디먼은 플래그 작동을 위해 목표 호스트에서 수행 중이어야 합니다. -n 플래그 또는 @Host는 사용하고 있지 않지만 -h, -q 또는 -r은 사용 중이라면 writesrv 디먼이 호스트에서 수행 중이어야 합니다.
TCP/IP가 사용자 기계에 설치되어 있지 않으나 HostName이 설정된 경우, write 명령에 -h, -q 또는 -r 플래그를 사용하여 국지 호스트 상의 사용자와 대화하려면 사용자의 호스트 이름을 /etc/hosts 파일의 loopback 항목의 끝에 추가해야 합니다. 원래 항목은 다음과 같습니다.
127.0.0.1 loopback LocalHostName
새로운 항목은 다음과 같습니다.
127.0.0.1 loopback LocalHostName HostName
종료 상태
이 명령은 다음과 같은 종료 값으로 복귀됩니다.
0 성공적으로 완료했습니다.
>0 해당 주소의 사용자가 로그온되어 있지 않거나 권한을 거부합니다.
예제
메세지를 로그인된 사용자에게 기록하려면 다음을 입력하십시오.
write june
Enter 키를 누르고 다음과 같이 입력하십시오.
I need to see you! Meet me in the computer room at 12:30.
그런 다음 Ctrl-D 키 순서를 눌러 write 명령 모드를 종료하십시오.
사용자 ID가 karen이고 tty3 워크스테이션을 사용하고 있다면 june의 워크스테이션이 다음을 표시합니다.
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.
대화를 보류하려면 다음을 입력하십시오.
write june
Enter 키를 누르고 다음과 같이 입력하십시오.
Meet me in the computer room at 12:30.
o
대화가 시작됩니다. 다음 행의 시작 o는 메세지가 끝났음을 의미합니다. June에게 응답을 기다리고 있다는 것을 알려주는 것입니다. 계속하기를 원한다면 Ctrl-D를 누르지 마십시오.
지금 June이 다음과 같이 입력하여 응답합니다.
write karen
Enter 키를 누르고 다음과 같이 입력하십시오.
I'm running tests at 12:30. Can we meet at 3?
o
그리고 다음과 같이 응답할 수도 있습니다.
OK--the computer room at 3.
oo
oo는 over and out을 의미하며 June에게 말할 것이 더 이상 없음을 알려줍니다. June도 oo로 끝냈다면, Ctrl-D를 눌러 대화를 종료하십시오.
준비된 메세지를 누군가에게 쓰려면 다음을 입력하십시오.
write june < message.text
그러면is message.text 파일의 내용이 june의 워크스테이션에 기록됩니다.
특정 워크스테이션을 사용하는 사용자에게 기록하려면 다음을 입력하십시오.
write -n console
Enter 키를 누르고 다음과 같이 입력하십시오.
The printer in building 998 has jammed.
Please send help.
그리고 Ctrl-D 키를 누르십시오.
이 예는 /dev/console 워크스테이션에 로그인된 사용자에게 메세지를 쓴 것입니다.
partya 호스트의 spuds 사용자에게 메세지를 전송하려면 다음을 입력하십시오.
write -n partya spuds
Enter 키를 누르고 다음과 같이 입력하십시오.
Your new tape has just arrived,
come see me to pick it up.
Thanks!
그리고 Ctrl-D 키를 누르십시오.
OR
write spuds@partya
Enter 키를 누르고 다음과 같이 입력하십시오.
Your new tape has just arrived,
come see me to pick it up.
Thanks!
그리고 Ctrl-D 키를 누르십시오.
다음은 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.
긍정 응답을 하려면, 다음과 같이 입력하십시오.
write -h 6398492,ok
그리고 Ctrl-D 키를 누르십시오.
부정적으로 응답하려면, 다음과 같이 입력하십시오.
write -h 6398492,cancel
그리고 Ctrl-D 키를 누르십시오.
-h 플래그를 사용하는 경우 호스트 이름이나 사용자 ID를 지정할 필요가 없습니다. 이러한 정보는 처리로 추적됩니다.
파일
/etc/hosts
TCP/IP 호스트 정보를 포함하고 있습니다.
/etc/utmp
who, write 및 login 명령에 대한 사용자 및 사용통계 정보가 포함됩니다.
관련 정보
mesg 명령, wall 명령, who 명령, writesrv 명령.