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