咱也玩一回Linux 让其成为聊天工具

咱也玩一回Linux 让其成为聊天工具

使用者对谈:talk, mesg, wall

那么我是否可以跟系统上面的使用者谈天说地呢?当然可以啦!利用talk这个指令即可!不过, talk需要额外的启动一些网路服务,对于目前的Linux distribution以及网路环境,嘿嘿!咱们还是不要玩这个东西啦~如果您确定想要玩这个玩意儿,那么请自行man talk ,同时考虑启动ntalk这个服务看看啰。

除了直接线上对谈(talk)之外,有没有其他讯息传送的功能啊?有啊!利用write是不错的方式啦!他可以直接将讯息传给接收者啰!

举例来说,我们的Linux目前有vbird与dmtsai两个人在线上:

[vbird@linux ~]$ w
16:50:39  up  1:58,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM      LOGIN@   IDLE   JCPU   PCPU  WHAT
vbird    pts/0    vbird     4:37pm  0.00s  0.06s  0.01s  w
dmtsai   pts/1    dmtsai    4:38pm  1:51   0.07s  0.01s  man write

我以vbird传送一个讯息给dmtsai时,可以这样做:

[vbird@linux ~]$ write dmtsai
Hi, How are you doing today....
Nothing.... just say hello to you!
<==这里按下[ctrl]+d

此时,另一端的dmtsai在他的终端介面上就会出现如下所示:

[dmtsai@linux ~]$
Hi, How are you doing today....
Nothing.... just say hello to you!
EOF

怪怪,立刻会有讯息回应给dmtsai!不过,当时dmtsai正在查资料,哇!这些讯息会立刻打断dmtsai原本的工作喔!所以,如果dmtsai这个人不想要接受任何讯息,直接下达这个动作:

[dmtsai@linux ~]$ mesg n

所以,当vbird再次下达write时,就会出现:

[vbird@linux ~]$ write dmtsai
write: dmtsai has messages disabled

呼呼!了解乎?而如果想要解开的话,再次下达『 mesg y 』就好啦!想要知道目前的mesg状态,直接下达『 mesg 』即可!了呼?

相对于write是仅针对一个使用者来传『简讯』,我们还可以『对所有系统上面的使用者传送简讯』如何下达?呼呼!用wall即可啊!他的语法也是很简单的喔!

[root@linux ~]# wall "I will shutdown the linux server about 5m later.
> If you still have to login, please tell me.
> Or I will do it....."

那么除非您的mesg状态是n ,否则,嘿嘿!就能够收到这个广播讯息啰。

简单来说
# mesg                        查看终端机的写入权限状态(is y 表示开启)
# write username           向 username 用户发送信息
这种对话方式仍是阻塞式的,不能实现真正意义上的双方即时互通对话。
对了,LZ,我想问一下,如何用 write 实现写入中文?接收到的似乎都是转义过的

[ 本帖最后由 lyq617617 于 2008-7-30 22:24 编辑 ]