프로그래밍/Unix

[유닉스] 통신 명령어( write, wall, talk, mesg )

미냐님 2020. 4. 16. 21:10
728x90

통신 명령어( write, wall, talk, mesg )

  • write, wall, talk, mesg를 사용하여 사용자간 직접 통신을 할 수 있습니다.

write 명령을 이용한 통신

  • 지정한 사용자에게 메시지를 전송
  • 메시지를 전달하려는 사용자는 하나만 지정 가능
  • 형식 : write 사용자명 [단말기명]
  • 사용 예 : write user2
    • write 명령으로 보내는 메시지는 상대방이 무슨 작업을 하고 있든지 상관없이 그대로 화면에 출력됨
    • write 명령을 입력하면 커서가 다음 행으로 이동하고 대기 상태
    • 상대방의 화면에는 “Message from user1 on … ” 메시지가 화면에 출력됨
    • 상대방 user2의 화면에는 다음 메시지 출력
//송신
$ write user2

//수신
$ Message from user 1 on ....
  • user2라는 ID를 가진 사람과 대화
  • 상대방이 하나 이상의 터미널에 접속되어 있을 때
//송신
$ write user2
Hi~! Good morning! ^D

//수신
$ write user2 tty2
Hi~! Good morning! ^D

wall 명령을 이용한 통신

  • wall 명령
  • 로그인하고 있는 모든 사용자에게 메시지를 전송
  • 형식 : wall [파일명]
  • write 명령처럼 메시지를 직접 입력하고 Ctrl + D 키로 종료
  • 전달하려는 내용을 파일로 작성하였다가 파일명을 인자로 지정할 수 있음
  • 로그인된 모든 사용자 단말기 화면에 “Broadcast message from …” 메시지와 함께 사용자가 입력한 메시지 내용이 출력됨
$ Broadcast Message from user1@Ubuntu (pts/4) at 19:03 ...
wall test message
$

talk 명령을 이용한 통신

  • talk 명령
  • 다른 사용자와 일대일 대화를 할 수 있는 기능 제공
  • 형식 : talk 사용자주소 [단말기명]
  • 사용자주소 : 사용자명@호스트명
  • 같은 시스템에 로그인한 사용자와의 대화일 경우 호스트명 없이 사용자명만 지정
  • write나 wall 명령은 같은 시스템에 로그인된 사용자에게만 메시지 전송 가능
  • talk 명령은 다른 시스템의 사용자와도 대화 가능
  • talk 명령을 입력하면 다음 메시지가 나타남
//송신
[waiting for your party to respond]

//수신
$
Message from Talk_Daemon@cc at 12:45
talk: connection requested by user1@cc
talk: respond with: talk user1@cc
  • cc라는 컴퓨터에서 user1이라는 ID를 가진 사용자가 12시 45분에 대화를 요청
  • 대화에 응하려면 다음과 같이 응답해야 함
//수신
$ talk user1

//송신
$ talk user2
[Connection established]
Hi~~
How are you?
--------------------------------------------------------------------------------------
Hi~~
I’m fine! and you??
--------------------------------------------------------------------------------------

//수신
$ talk user1
Message from Talk_Daemon@cc at 12:45
talk: connection requested by user1@cc
talk: respond with: talk user1@cc
================================================
[Connection established]
Hi~~
I’m fine! and you??
--------------------------------------------------------------------------------------
Hi~~
How are you?
--------------------------------------------------------------------------------------
  • 대화를 종료하려면 ^D 키 입력
  • 상대방이 로그인되어 있지 않은 상태에서 talk 명령으로 대화를 시도하면 다음 메시지 출력
[Your party is no logged on]
  • 상대방이 로그인되어 있지만 응답하지 않으면 다음 메시지 출력
[Ringing your party again]

mesg 명령을 이용한 통신 제어

  • mesg 명령
  • 메시지를 단말기로 출력하는 것을 막거나(n) 허용함(y)
  • 형식 : mesg [n or no/y or yes]
  • 사용 예 : mesg n
  • user2 사용자가 메시지를 받지 않으려면 mesg n 또는 mesg no 입력
$ mesg n
$
  • user1 사용자가 user2 사용자에게 메시지를 보내면 다음 메시지 출력
$ write user2
Permission denied
$
  • 다시 메시지를 받으려면 mesg y 또는 mesg yes 입력
$ mesg y
$
  • 자신의 현재 대화 허용상태를 보려면 인자 없이 mesg 명령만 입력
$ mesg
is y
728x90