Linux主机上用户的信息传递
Posted ericz2j
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux主机上用户的信息传递相关的知识,希望对你有一定的参考价值。
(整理自《鸟哥的linux私房菜》基础篇)
1.查询使用者: w, who, last, lastlog
如果我们想要知道使用者到底啥时候登入的时候,或者其他详细的信息时,我们可以使用last命令,那如果你想要知道目前已登入在系统上面的用户呢?我们可以使用w或者who命令:
另外,如果您想要知道每个账号的最近登入的时间,则可以使用 lastlog 这个指令 lastlog 会去读取 /var/log/lastlog 文件,结果将数据输出如下表:
2.使用者对谈: write, mesg, wall
write 这个指令可以直接将讯息传给接收者!举例来说,我们的 Linux 目前有 vbird1 与 root 两个人在在线, 我的 root 要跟 vbird1 讲话,可以这样做:
立刻会有讯息响应给 vbird1 ,不过如果当时 vbird1 正在查资料, 这些讯息会立刻打断 vbird1 原本的工作!所以,如果 vbird1 这个人不想要接受任何讯息,直接下达这个动作:
这个 mesg 的功能对 root 传送来的讯息没有抵挡的能力!所以如果是 root 传送讯息, vbird1 还是得要收下。 但是如果 root 的 mesg 是 n 的,那么 vbird1 写给 root 的信息会变这样:
想要知道目前的 mesg 状态,直接下达『 mesg 』即可! 相对于 write 是仅针对一个使用者来传消息,我们还可以对所有系统上面的用户传送消息 (广播), 如何下达?用 wall 即可:
3.使用者邮件信箱: mail
用 wall, write 要等到使用者在线才能够进行,有没有其他方式来联络? 我们可以寄信(邮件)给使用者(mail命令),mail这个指令的用法很简单的,直接这样下达:『mail -s "邮件标题" username@localhost 』即可! 一般来说,如果是寄给本机上的使用者,基本上连『 @localhost 』都不用写。 举例来说,我以 root 寄信给 vbird1 ,信件标题是『 nice to meet you 』,则:
mail 这个程序在信件编写的过程中,如果写错字而按下 Enter 进入次行,前一行的数据很难删除!这时我们可以使用数据流重导向。利用那个( < ) 符号就可以达到取代键盘输入的要求了。也就是说,你可以先用 vi 将信件内容编好, 然后再以 mail -s "nice to meet you" vbird1 < filename 来将文件内容传输即可。
如何收信呢?也是直接使用mail命令,假设我以 vbird1 的身份登入主机,然后输入 mail 后,会得到什么?
在 mail 当中的提示字符是 & 符号输入 mail 之后,我可以看到我有一封信件, 这封信件的前面那个 > 代表目前处理的信件,而在大于符号的右边那个 N 代表该封信件尚未读过,如果我想要知道这个 mail 内部的指令有哪些,可以在 & 之后输入『 ? 』:
<message list> 指的是每封邮件的左边那个数字啦!而几个比较常见的指令是:
指令 |
意义 |
h |
列出信件标头;如果要查阅 40 封信件左右的信件标头,可以输入『 h 40 』 |
d |
删除后续接的信件号码,删除单封是『 d10 』,删除 20~40 封则为『 d20-40 』。 不过,这个动作要生效的话,必须要配合 q 这个指令才行(参考底下说明)! |
s |
将信件储存成文件。例如我要将第 5 封信件的内容存成 ~/mail.file:『s 5 ~/mail.file』 |
x |
或者输入 exit 都可以。这个是『不作任何动作离开 mail 程序』的意思。 不论你刚刚删除了什么信件,或者读过什么,使用 exit 都会直接离开 mail,所以刚刚进行的删除与阅读工作都会无效。 如果您只是查阅一下邮件而已的话,一般来说,建议使用这个离开啦!除非你真的要删除某些信件。 |
q |
相对于 exit 是不动作离开, q 则会实际进行你刚刚所执行的任何动作 (尤其是删除!) |
旧版的 CentOS 在使用 mail 读信后,通过 q 退出时,会将已读信件移动到 ~/mbox 中,不过目前CentOS 7 已经不这么做了! 所以离开 mail 可以轻松愉快的使用 q 了。
以上是关于Linux主机上用户的信息传递的主要内容,如果未能解决你的问题,请参考以下文章