查询使用者: w, who, last, lastlog

如果你想要知道目前已登入在系统上面的用户呢?可以透过 w 或 who 来查询喔!如下范例所示:

[root@study ~]# w
01:49:18 up 25 days, 3:34, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
dmtsai tty2 07Jul15 12days 0.03s 0.03s -bash
dmtsai pts/0 172.16.200.254 00:18 6.00s 0.31s 0.11s sshd: dmtsai [priv] # 第一行显示目前的时间、开机 (up) 多久,几个用户在系统上平均负载等;
# 第二行只是各个项目的说明,
# 第三行以后,每行代表一个使用者。如上所示,dmtsai 登入并取得终端机名 tty2 之意。 [root@study ~]# who
dmtsai tty2 2015-07-07 23:07
dmtsai pts/0 2015-07-22 00:18 (192.168.1.100)

如果您想要知道每个账号的最近登入的时间,则可以使用 lastlog 这个指令喔! lastlog 会去

读取 /var/log/lastlog 文件,结果将数据输出如下表:

[root@study ~]# lastlog
Username Port From Latest
root pts/0 Wed Jul 22 00:26:08 +0800 2015
bin **Never logged in**
....(中间省略)....
dmtsai pts/1 192.168.1.100 Wed Jul 22 01:08:07 +0800 2015
vbird1 pts/0 Wed Jul 22 01:32:17 +0800 2015
pro3 **Never logged in**
....(以下省略)....

使用者对谈: write, mesg, wall

是否可以跟系统上面的用户谈天说地呢?当然可以啦!利用 write 这个指令即可。 write 可 以直接将讯息传给接收者啰!举例来说,我们的 Linux 目前有 vbird1 与 root 两个人在在线, 我 的 root 要跟 vbird1 讲话,可以这样做:

[root@study ~]# write 使用者账号 [用户所在终端接口]

[root@study ~]# who
vbird1 tty3 2015-07-22 01:55 <==有看到 vbird1 在在线
root tty4 2015-07-22 01:56 [root@study ~]# write vbird1 pts/2
Hello, there:
Please don't do anything wrong... <==这两行是 root 写的信息!
# 结束时,请按下 [crtl]-d 来结束输入。此时在 vbird1 的画面中,会出现: Message from root@study.centos.vbird on tty4 at 01:57 ... Hello, there:
Please don't do anything wrong...
EOF

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

[vbird1@study ~]$ mesg n
[vbird1@study ~]$ mesg
is n

这个 mesg 的功能对 root 传送来的讯息没有抵挡的能力!所以如果是 root 传送讯息, vbird1 还是得要收下。 但是如果 root 的 mesg 是 n 的,那么 vbird1 写给 root 的信息会变这样:

[vbird1@study ~]$ write root
write: root has messages disabled

相对于 write 是仅针对一个使用者来传『简讯』,我们还可以『对所有系 统上面的用户传送简讯 (广播)』哩~ 如何下达?用 wall 即可

 [root@study ~]# wall "I will shutdown my linux server..."

使用者邮件信箱: mail

寄出信件呢?就直接使用 mail 这个指令即可!这个指令的用法很简单的,直接这样下 达:『mail -s "邮件标题" username@localhost 』即可! 一般来说,如果是寄给本机上的使用者,基 本上,连『 @localhost 』都不用写啦! 举例来说,我以 root 寄信给 vbird1 ,信件标题是『 nice to meet you 』,则:

[root@study ~]# mail -s "nice to meet you" vbird1 Hello, D.M. Tsai
Nice to meet you in the network.
You are so nice. byebye!
. <==这里很重要喔,结束时,最后一行输入小数点 . 即可!
EOT
[root@study ~]# <==出现提示字符,表示输入完毕了!

如此一来,你就已经寄出一封信给 vbird1 这位使用者啰,而且,该信件标题为: nice to meet you, 信件内容就如同上面提到的。不过,你或许会觉得 mail 这个程序不好用~ 因为在信件编写的过程 中,如果写错字而按下 Enter 进入次行,前一行的数据很难删除ㄟ! 那怎么办?没关系啦!我们使 用数据流重导向啊!呵呵!利用那个小于的符号 ( < ) 就可以达到取代键盘输入的要求了。也就是说, 你可以先用 vi 将信件内容编好, 然后再以 mail -s "nice to meet you" vbird1 < filename 来将文件内 容传输即可。

如果是要收信呢?呵呵!同样的使用 mail 啊! 假设 我以 vbird1 的身份登入主机,然后输入 mail 后,

[vbird1@study ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/vbird1": 1 message 1 new
>N 1 root Wed Jul 22 02:09 20/671 "nice to meet you"
& <==这里可以输入很多的指令,如果要查阅,输入 ? 即可!

在 mail 当中的提示字符是 & 符号喔,别搞错了~输入 mail 之后,我可以看到我有一封信件, 这 封信件的前面那个 > 代表目前处理的信件,而在大于符号的右边那个 N 代表该封信件尚未读过, 如果我想要知道这个 mail 内部的指令有哪些,可以在 & 之后输入『 ? 』,就可以看到如下的画面:

& ?
mail commands
type <message list> type messages
next goto and type next message
from <message list> give head lines of messages
headers print out active message headers
delete <message list> delete messages
undelete <message list> undelete messages
save <message list> folder append messages to folder and mark as saved
copy <message list> folder append messages to folder without marking them
write <message list> file append message texts to file, save attachments
preserve <message list> keep incoming messages in mailbox even if saved
Reply <message list> reply to message senders
reply <message list> reply to message senders and all recipients
mail addresses mail to specific recipients
file folder change to another folder
quit quit and apply changes to folder
xit quit and discard changes made to folder
! shell escape
cd <directory> chdir to directory or home if none given
list list names of all available commands

指的是每封邮件的左边那个数字啦!而几个比较常见的指令是:

指令 意义
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 则会实际进行你刚刚所执行的任何动作 (尤其是删除!)

Linux学习-Linux 主机上的用户讯息传递的更多相关文章

  1. 重识linux-linux主机上的用户信息传递

    1 查询用户 w,who,last,lastlog 1)在线用户查询  w ,who 2)账号最近的登录时间  last lastlog 2 用户对谈 write,mesg,wall 1)write ...

  2. Linux学习笔记——切换并取代用户身份命令——su

        再次从头好好的学习Linux,本着以免轻易忘记,以备后用的原则,将我觉得常用或者好玩的linux命令记录在这,注意:我的实验环境是 Ubuntu 14.04.1 su 这个命令我经常使用,因为 ...

  3. Linux学习笔记——使用指定的用户权限执行程序——sudo

          sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: ...

  4. Linux中在主机上实现对备机上文件夹及文件的操作的C代码实现

    需求描写叙述 编敲代码.完毕在主机上实现对备机上文件夹及文件的操作. 比如,主机为A,备机为B,要求编写的程序运行在A机上,该程序实如今B机上创建文件文件夹及复制文件的操作. 需求分析 我们先不考虑用 ...

  5. Linux学习-Linux 的开机流程分析

    开机流程一览 系统开机的经过可以汇整成底下的流程的: 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置; 读取并执行第一个开机装置内 MBR 的 boot Loader (亦 ...

  6. Linux学习-->linux系统在移动硬盘的安装

    由于自己看了一些文章和linux的好奇,想来一窥Linux的奥秘,因此自己准备学习使用Linux系统,这里记录下自己的安装过程,方便以后自己重装系统时进行查阅. 参考的书籍是鸟哥的<Linux私 ...

  7. SQL Server 2019 Linux Docker 在主机上以其他非根用户的身份运行容器

    docker logs mssql2019SQL Server 2019 will run as non-root by default.This container is running as us ...

  8. Linux学习第一天————了解root用户和基本的shell命令

    一.了解Linux中的root用户  1.1root用户 使用过MySQL的同学都知道MySQL中有一个变态的存在叫做超级管理员,他可以从操作任何一个数据库,那么在Linux中也有这么一个变态的存在他 ...

  9. Linux学习(四)单用户模式、救援模式、虚拟机克隆、linux互连(包括密匙登录)

    一.单用户模式 忘记root密码后,找回密码有两种方法: 单用户(grub没有加密的情况下可以使用) 救援模式 这一节我们先讲单用户模式   1.先重启(3种方法) reboot init 6 sho ...

随机推荐

  1. PHP的时间函数strtotime

    时间加减 [php] view plaincopy <?php //获取本地 提取年份+1 $date=date("Y-m-d",mktime(0,0,0,date(&quo ...

  2. Error: Trying to open unclosed connection.

    错误:试图打开未关闭的连接.在我自己写model文件的时候,重复打开了连接数据库的操作,所以报这种错误. 错误实例: 两个model文件: userModel.js var mongoose = re ...

  3. WPF机制和原理

    最近由于项目需要,自己学习了一下WPF,之前接触过sliverlight,所以对理解和编写XAML不是太陌生.其实XAML和html多少还是有点类似的.只不过XAML上添加上了自动binding机制( ...

  4. AJPFX关于Java中的集合

    ava API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下: Collection<--List<--Vector Collection<--List& ...

  5. 网页转PDF作为邮件附件

    Nuget 引入 OpenHtmlToPdf using (WebClient wc = new WebClient()) { wc.Encoding = Encoding.UTF8; wc.UseD ...

  6. js根据鼠标方向划入遮罩层

    js根据鼠标方向划入遮罩层: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  7. servlet的重定向和作用域

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...

  8. WPF中,DataGrid最左边多出一行的解决方案

        这种情况下,请在DataGrid的属性里加上这个属性:   RowHeaderWidth="0" 必须赋值为0,不能不赋值,也不能赋其他值. 问题解决.

  9. JS函数的length属性

    length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,那些已定义了默认值的参数不算在内,比如function(xx = 0)的length是0.. 另外在函数内部:arguments ...

  10. HTML_2

    html图像 <img>标签可以在网页上插入一张图片,它是独立使用的标签,通过‘src’属性定义图片的地址(可为绝对路径也可为相对路径),通过‘alt’属性定义图片加载时显示的文字,以及对 ...