'who --message' -> 哪条消息?

erc*_*rch 5 terminal who

我在以下内容中找到了man who

-T, -w, --mesg将用户的消息状态添加为 +、- 或 ?
--message与 -T
--writable相同 与 -T 相同

于是抬头一看info who,发现

-w -T --mesg --message --writable在每个登录名后打印一个字符,指示用户的消息状态
+允许“写”消息
-不允许“写”消息
?“找不到终端设备”

问题:什么“消息”,什么样的“消息”是什么意思?

slm*_*slm 6

-T--message开关是否意味着who将显示一个+-?表示用户是否被允许的消息被写入到其终端。

`--writable'
     After each login name print a character indicating the user's
     message status:

          `+' allowing `write' messages
          `-' disallowing `write' messages
          `?' cannot find terminal device
Run Code Online (Sandbox Code Playgroud)

例子

$ who --message
saml     - tty1         2013-11-03 16:09 (:0)
saml     + pts/0        2013-11-03 16:10 (:0.0)
saml     + pts/1        2013-11-03 16:49 (:0.0)
saml     + pts/6        2013-11-04 12:28 (:0.0)
saml     + pts/20       2013-11-05 13:16 (:0.0)
saml     + pts/43       2013-11-05 16:58 (:0.0)
Run Code Online (Sandbox Code Playgroud)

-T交换机做同样的事情。

什么是消息?

Messages 是 Unix 中的一种工具,人们可以在其中直接将消息写入其他人的终端设备。

例子

$ write 
usage: write user [tty]
Run Code Online (Sandbox Code Playgroud)

saml ontty1已禁用他的消息接收功能 ( -)。

$ write saml tty1
write: saml has messages disabled on tty1
Run Code Online (Sandbox Code Playgroud)

但是,用户 saml 允许以下消息pts/0

$ write saml pts/0
hola
Run Code Online (Sandbox Code Playgroud)

如果我切换到对应的选项卡pts/0

[saml@grinchy ~]$ 
Message from saml@grinchy on pts/43 at 17:06 ...
hola
Run Code Online (Sandbox Code Playgroud)

启用/禁用状态

您可以使用该命令mesg在给定终端中启用和禁用此功能。

消息已启用。

$ who --message | grep "pts/0"
saml     + pts/0        2013-11-03 16:10 (:0.0)
Run Code Online (Sandbox Code Playgroud)

把它关掉。

$ mesg n
Run Code Online (Sandbox Code Playgroud)

现在它被禁用了。

$ who --message | grep "pts/0"
saml     - pts/0        2013-11-03 16:10 (:0.0)
Run Code Online (Sandbox Code Playgroud)