查询使用者: 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. 前端js优化方案(二)持续更新

    由于上篇篇幅过长,导致编辑出了问题,另开一篇文章继续: (4)减少迭代次数,最广为人知的一种限制循环迭代次数的模式被称为“达夫设备(Duff`s Device)” Duff`s Device的理念是: ...

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

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

  3. sublime text 3 入门技巧与常见问题解决

    1. 常见问题 - 解决sublime 窗口栏(UNREGISTERED)(未购买)导致的经常性弹窗 解决方法: 点击Help -> About Sublime Text,查看sublimete ...

  4. Git基础使用教程(仓库初始化,源码clone,源码push)

    一.下载Git源码管理客户端 Git下载地址:https://git-scm.com/ 二.检查电脑是否已安装Git 1)已安装:输入git出现下图提示则代表已安装成功. 2)未安装情况下git会出现 ...

  5. Linux文件压缩命令

    一.zip命令(常用) 用zip命令压缩的文件在Windows系统下也是可以解压缩的,即此格式压缩文件两个系统通用. 文件压缩:zip  filename.zip   filename 目录压缩:zi ...

  6. UWP开发:自动生成迷宫&自动寻路算法(3)

    + , + ];//0<=x<=12 0<=y<=24 private static Random Rd = new Random(); 首先声明mazeMap存储数据,声明了 ...

  7. Angularjs 列表页面筛选

    个人博客链接:http://blog.yangqiong.com.cn/angularjs-lie-biao-ye-mian-shai-xuan/ 需求:页面URL和查询结果保持一致,当筛选条件变化时 ...

  8. Java 守护线程(Daemon) 例子

    当我们在Java中创建一个线程,缺省状态下它是一个User线程,如果该线程运行,JVM不会终结该程序.当一个线被标记为守护线程,JVM不会等待其结束,只要所有用户(User)线程都结束,JVM将终结程 ...

  9. UVA 714 Copying Books 抄书 (二分)

    题意:把一个包含m个正整数的序列划分成k个非空的连续子序列.使得所有连续子序列的序列和Si的最大值尽量小. 二分,每次判断一下当前的值是否满足条件,然后修改区间.注意初始区间的范围,L应该为所有正整数 ...

  10. UVA1610 PartyGame 聚会游戏(细节题)

    给出一组字符串D,要找一个字符串S使得D中一半小于等于S,另外一半大于S.输入保证一定有解.长度要尽量短,在此基础上字典序尽量小. 分类谈论,细节挺多的,比如'Z'. 其实直接暴就过了,没分类辣么麻烦 ...