linux用户之间可以互相访问,Linux用户之间的交流。

2023-05-16

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

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!

&

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux用户之间可以互相访问,Linux用户之间的交流。 的相关文章

随机推荐