Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2548207
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: LINUX

2011-02-10 00:11:25

下面我们再来看几个和用户信息相关的命令。

w, who, last, lastlog

w就是显示用户的用户,并显示出用户正在干什么。

[root@tonyzhang ~]# w
22:54:24 up 44 min,  2 users,  load average: 0.00, 0.03, 0.02
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.6.1      22:13    0.00s  0.09s  0.00s w
tonyzhang    tty1     :0               22:44     ?     2.01s  0.11s pam: gdm-password

第一行:系统目前的时间,启动的时间,用多少个用户在线,用户的负载情况
第二行:项目说明,用户名、登陆终端、从什么地方登陆的、登陆的时间、负载情况、用户正在进行的操作
第三行以下,都是和第二行的内容解释一样。

who 显示哪些用户登陆了系统

想看所有的参数,直接用-a或者是--alla参数
[root@tonyzhang ~]# who -all
           system boot  2011-01-13 22:10
           run-level 5  2011-01-13 22:10
LOGIN      tty2         2011-01-13 22:10              1876 id=2
LOGIN      tty3         2011-01-13 22:10              1878 id=3
LOGIN      tty4         2011-01-13 22:10              1880 id=4
LOGIN      tty6         2011-01-13 22:10              1888 id=6
LOGIN      tty5         2011-01-13 22:10              1884 id=5
root     + pts/0        2011-01-13 22:13   .          2073 (192.168.6.1)
tonyzhang    - tty1         2011-01-13 22:44  old         2049 (:0)
           pts/1        2011-01-13 22:50                 0 id=/1    term=0 exit=0

这个显示了系统的启动时间,运行的等级,开启的终端(tty1~6),用户的登陆地,进程号等等信息,具体的参数,自己看帮助吧。

last与lastlog

last 查看最后登陆系统的用户
lastlog 查看系统中用户登陆系统的情况

[root@tonyzhang ~]# last
tonyzhang    tty1         :0               Fri Jan 14 21:18   still logged in  
root     pts/0        192.168.6.1      Fri Jan 14 21:18   still logged in  
reboot   system boot  2.6.32-71.el6.i6 Fri Jan 14 21:07 - 21:22  (00:14) 

在最上面,你会发现这样的信息,这就可以查看到最后登陆系统的用户,而且还有用户的登陆状态。包括系统启动的时间和用户登陆系统的时间。

[root@tonyzhang ~]# lastlog -u root;lastlog -u tonyzhang
Username         Port     From             Latest
root             pts/0    192.168.6.1      Fri Jan 14 21:18:05 +0800 2011
Username         Port     From             Latest
tonyzhang                                      **Never logged in**

这里我们过滤了root和tonyzhang这两个用户的登陆情况,你也可以直接用lastlog查看系统中所有用户的登陆情况,但大家会发现一个问题,tonyzhang这个用户,后面显示的是 **Never logged in**,这也是我想不明白的地方,不知道是哪里的问题?通过last查看来用户tonyzhang还在登陆中,但在lastlog中却是**Never logged in**,郁闷了,重新启动还是一样的问题,恢复到最初的安装状态也是这样的结果。如果有朋友知道原因的话,请与我联系,感谢!

OK,知道了如何查看用户,那么如何给在线的用户发信息呢?如何给不在线的用户留言呢?下面我们就来看看些问题的解决。

write, wall,以及信息收取的开关mesg

write 和在线的用户交流信息

下面就看看他的具体用法
SYNOPSIS
       write user [ttyname]
这个用法很简单,后面接用户再接终端
看例子
[root@tonyzhang ~]# who
root     pts/0        2011-01-14 21:18 (192.168.6.1)
tonyzhang    tty1         2011-01-14 21:18 (:0)
root     pts/1        2011-01-14 21:58 (192.168.6.1)
tonyzhang    pts/2        2011-01-14 22:02 (:0.0)

用who查看到系统目前的除了root外还有一个tonyzhang,那么我们给tonyzhang发条信息。
[root@tonyzhang ~]# write tonyzhang pts/2
这时候会等待输入信息,输入下面的信息,最后用ctrl+d来结束输入
hello
nice to meet you

这时候tonyzhang这个用户在终端(Terminal)上就能收到信息了(基本上是同时出现),如图

注意:因为tonyzhang现在在两个终端上,一个是tty1,一个是pts/2。为什么会这样呢?是因为我在登陆系统的时候,是图形界面,先用tonyzhang这个用户登陆了系统,然后在系统上打开了一个终端(Terminal)。系统登陆的时候是tty1,而打开的Terminal就是pts/2。如果你给tty1上的tonyzhang发信息,他是看不到了,只有给pts/2上的tonyzhang发信息才能看到。这里需要理解一下(其实很简单,可以这样理解,登陆了X桌面后,没有提供接收信息的工具,只是在X环境下而已)。不知道我说的清楚了没有,希望大家能明白,不能明白的,请留言。

上面root用户发给tonyzhang的信息,无论tonyzhang当时在干吗,发来的信息都会打断他的当前工具,所以说,就有了下面这个mesg命令来控制是否接收别人发来的信息。但是注意一点,root发来的信息,是拒绝不掉的。

如何来查询当前的接收状态呢?

直接用mesg就能查看,一个是y,一个是n
[tonyzhang@tonyzhang ~]$ mesg
is y

设置也很简单,mesg后面加上开关
[tonyzhang@tonyzhang ~]$ mesg n
is n

注:这个设置,一定要是用户的第一环境(登陆环境),如果说是通过su方式切换的话,是没有权限来更改的。
设置完后,除了root用户发个tonyzhang发信息外,其他用户发来的信息,tonyzhang是收不到的。

这个对单个用户发信息,如果是对所有在线的发信息的话,那如何来发呢?哈哈,这个更简单,直接用wall

[root@tonyzhang ~]# wall "I will shutdown this system! "
这时候所有在线的用户都会收到这条信息。
注:在上面的信息内容中,最后的!与"之间需要有个空格,这是因为SHELL的语法中会有!,所以要注意一下。一般情况下,命令后面如果是一长串的内容的话,我们都会用""来把他们包括起来。

给离线的用户发信息

上面讲的都是给在线的用户发信息,那么如何给离线的用户发信息呢?那就是我们平时用到最多的邮件。我们还记得在讲用户和组的时候,有个用户的邮箱吗?对了,这是这个/var/spool/mail/下面的用户邮箱。
因为这个mail参数很多,我们也不需要来研究太深入,在服务器搭建的课程中,我们还会有这个邮件服务器的搭建讲解,所以,我们这里面只是来简单的了解一下。
发邮件的格式如下(RHEL6中)
[root@tonyzhang ~]# mail tonyzhang
Subject: test send mail
上面输入邮件的标题,下面输入邮件的内容
hello,tonyzhang
nice to meet you!
.
最后以.来结尾
EOT

这时候,发给tonyzhang的邮件就完成了,我们换成tonyzhang的身份来查看一下。
[root@tonyzhang ~]# su - tonyzhang
[tonyzhang@tonyzhang ~]$ mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/tonyzhang": 1 message 1 new
>N  1 root                  Fri Jan 14 23:08  19/603   "test send mail"
&

这时候我们输入1就能看到邮件的具体内容了,
Message  1:
From root@tonyzhang.opsers.org  Fri Jan 14 23:08:09 2011
Return-Path:
X-Original-To: tonyzhang
Delivered-To: tonyzhang@tonyzhang.opsers.org
Date: Fri, 14 Jan 2011 23:08:09 +0800
To: tonyzhang@tonyzhang.opsers.org
Subject: test send mail
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@tonyzhang.opsers.org (root)
Status: R

上面的邮件内容已经清晰的显示出来了,
想看更多的命令,在& 后面输入help
& quit
Held 1 message in /var/spool/mail/tonyzhang
You have mail in /var/spool/mail/tonyzhang

这就退出来了,如果还想看的话,还是用mail来查看,如果不想再要这封邮件的话,那么可以用delete 1来删除邮件。

hello,tonyzhang
nice to meet you!

&

阅读(643) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-16 21:57:48

学习了,多谢楼主分享哦!也欢迎广大linux爱好者来我的论坛一起讨论arm哦!www.lt-net.cn

chinaunix网友2011-03-16 21:57:48

学习了,多谢楼主分享哦!也欢迎广大linux爱好者来我的论坛一起讨论arm哦!www.lt-net.cn