如何查看我的朋友或同事是否通过命令行登录到与我相同的 Linux 或 BSD 或 UNIX(AIX、HP-UX、Apple OS X)服务器/工作站?
有各种命令和shell 环境变量设置可以通知您朋友在类 UNIX 操作系统下的登录活动。
![](https://www.alaica.com/wp-content/uploads/linux-1.gif)
检查朋友或同事是否登录...
打开命令行终端(选择应用程序 > 附件 > 终端),然后键入以下命令:
示例输出:
$ who
$ who -H
姓名 行 时间 评论 维维克 tty7 2011-04-18 15:14 (:0) 维维克 pts/2 2011-04-18 22:16 (:0.0) 维维克 pts/3 2011-04-18 22:17 (:0.0) foo pts/4 2011-04-19 00:36 (本地主机) 根 pts/0 2011-04-18 13:53 (10.1.3.21)
who 命令显示谁在系统上,即显示谁登录了 UNIX 系统。您可以使用UNIX/Linux grep 命令过滤掉输出,如下所示:
$ who | grep 'Friend-name-here'
查看 tom 用户 us 是否登录到您的 Unix 系统,输入:
$ who | grep 'tom'
w 命令显示谁登录以及他们在 Linux/UNIX 系统上做什么。打开终端并键入以下命令:
$ w
示例输出:
14:07:35 持续 43 天, 17:44, 1 位用户, 平均负载: 0.62, 0.89, 0.90 来自登录的用户 TTY@ IDLE JCPU PCPU 什么 vivek tty7 :0 15:14 9:25m 24:00 0.39s 侏儒会话 维维克点/2 :0.0 22:16 1:42 0.18s 0.00s ssh foo@localhost 维维克分/3 :0.0 22:17 0.00s 0.23s 0.01sw jasmi pts/4 本地主机 00:36 1:38 0.19s 0.19s vim 根 pts/0 10.1.3.21 13:53 0.00s 0.05s 0.00sw
关于 TCSH 监视变量的注意事项
TCSH (C shell) 下的 watch 变量存储用户/终端对的列表,以监视登录和注销。语法如下:
设置 手表= “用户1任何用户2任何” 设置 手表= “5用户1任何用户2任何”
在此示例中,您正在从任何终端观看 tom 用户:
设置 手表= “汤姆任何”
要仅从 pts0 终端观看用户 tom,请输入:
设置 手表= “汤姆 pts0”
要监视所有用户和终端,请输入:
设置 手表= “任何任何”
或者
设置 手表= ( jerry pts1 任何控制台 vivek 任何)
默认情况下,每 10 分钟检查一次登录和注销,但可以将 watch 的第一个字设置为每隔几分钟检查一次的数字。在此示例中,每五分钟报告一次所有(任何)登录和注销:
设置 手表= ( 5任意 任意)
log命令可以立即显示报告:
日志
输出示例:
root 已从 10.1.3.21 登录 pts/0。 vivek 已从 10.1.3.23 登录 pts/1。
您可以使用 who 变量设置监视消息的格式字符串:
设置 监视= ( % n ) log
输出示例:
根 维维克
您可以使用以下格式字符串:
- %n – 显示用户名。
- %a – 显示“已登录”或“已注销”消息。
- %l – 显示终端名称。
- %M或%m – 显示 FQDN(主机名)或本地登录。
默认设置为“ %n 有来自 %m 的 %a %l。”。
外壳别名
Bash 或 Ksh 或任何标准 UNIX shell 别名允许在用作简单命令的第一个单词时用字符串替换单词,即您可以创建简单命令的快捷方式。首先,在 ~/.who 文件中创建您想要监控的好友列表:
猫~/.who 汤姆 长钉 布奇 凝灰岩
接下来,创建一个名为 buddies 的别名来观察他们的登录/注销活动(添加到您的 ~/.bashrc 文件),输入:
别名 好友= “who | grep -f ~/.who”
或者
别名 好友= "w | grep -f ~/.who"
好友别名将在您注销并重新登录后充当命令。或者,只需获取 ~/.bashrc 文件,输入:
$ source ~/.bashrc
$ buddies