Unix系统中的通信系统主要包括内部通信系统和外部通信系统两大部分:

内部通信系统:
Unix系统本身自带的主要用于本机系统内部各用户之间的通信.

外部通信系统:
Unix系统之外配置的通信系统,主要用于本机用户与其他主机上的
用户之间的通信.

下面主要介绍Unix内部通信系统.

即时通讯

交谈命令

write username [terminal](终端号)
write命令用于与一个已经登录到系统中的用户进行通讯.
如果这个登录用户的名字现在正被多个人使用,则在write
命令中应给出终端号.
例如:a用户向b用户发送消息:
$write b
Hello,b!Spring games will be taken this weekend.
<Ctrl+D>

​ Write协议:
​ 消息发送结束用o(结束)
​ 结束谈话用oo(结束并退出)

Write命令(半双工通信):
a. 首先会检查用户是否在线上;
b. 如果没有登录,屏幕会显示用户 is not logged in.
c. 如果在线,则将显示登录时间.

消息开关命令

mesg
mesg命令用于查询和开关本终端状态,命令格式为:
mesg [-y] [-n]
例如:
$mesg #查询本终端当前的消息接收状态
is y #可以接收消息
$mesg n #设置关闭状态
$mesg y #设置打开状态

双向通信命令

talk(全双工方式)
与write命令相似,talk命令也是与系统中已登录的其他
用户通信;与write命令不同的是,talk通信双方都必须
向对方发出talk命令才能通信.

​ 例如:用户a向用户b发出talk命令,则:a用户屏幕显示:
​ [waiting for your party to respond]
​ 用户b屏幕显示:
​ Message from talk_d…@… at 时间
​ talk:connection requested by …
​ talk:respond with:talk a
​ 如果b用talk命令响应,此时双方的屏幕被划分成两块。

广播信息命令

wall
wall命令可以向当前系统中所有已登录用户广播信息,常用于
通知一些紧急事件.
普通用户用wall发出的广播信息只能被消息状态为打开的用户
接收,而超级用户用wall发信息时不受此限制.例如:

  \#wall
  System will be down in 10 minutes,logout please.
  <Ctrl+d>
电子邮件

​ mail username #发送邮件
​ mail #接收邮件

系统邮箱

​ 系统邮箱在目录/usr/mail或/var/mail下,每个用户都有一个以其
​ 名字命名的邮箱,所有发给该用户的邮件都放在该邮箱中,用户读邮件
​ 时就从该邮箱中读取./var/mail/username

个人邮箱

​ 个人邮箱通常为用户自己的主目录(HOME)下的mbox文件.用户读过的
​ 邮件如果不删除或转存,则存放到个人邮箱中./home/username/mbox

发送邮件

​ $mail username
​ Subject: test mail
​ This is the first line of mail.
​ This is the end line of mail.
​ <Ctrl+d>
​ cc:(抄送)
​ $
​ 说明:接收者姓名用其login_name,即登录名;
​ 标题和抄送可有可无,如果不需要按回车即可。
​ 邮件正文结束,加<ctrl+d>
​ 给多用户发邮件:
​ $mail user1,user2…(各用户名)
​ $mail usergroup(用户组)
​ $alias usr_list user1,user2…
​ (建立一个总的别名,该别名只能在本shell中有效,退出即无效)
​ $mail usr_list(给别名usr_list包括的用户都发邮件)

​ 将已有文件作为邮件附件发送给用户:
​ $mail username < my_letter
​ 把已存在的文件my_letter作为邮件内容发送给username,该命令以
​ "输入重定向"方式执行,因此不需要键盘输入邮件正文.
​ 如果发送给不存在的用户,由于没有接收方,故系统会将邮件退回
​ 到本用户主目录下dead.letter中.

接收邮件

mail
在mail命令模式下的常用命令:
-------------------------------------------------------
如有下一页则显示,否则退出mail
p 显示本邮件信息
s file 把当前邮件保存到文件file中,如未
m user 给用户usr发新邮件
d 删除当前邮件
n 显示下一个邮件
q 退出mail,把未删除的邮件保存到个人邮箱中
R 回复邮件
! 执行shell命令
? 显示mail的内部命令
-------------------------------------------------------