Linux shell编程学习笔记50:who命令

0 前言

2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。比如,我们可以使用who命令来收集当前已登陆系统的用户信息,当前运行级别等信息。

1. who命令 的功能、格式和选项说明

我们可以使用命令 who --help 来查看who命令的帮助信息。

[purpleendurer @ bash ~] who --help
Usage: who [OPTION]... [ FILE | ARG1 ARG2 ]
Print information about users who are currently logged in.

  -a, --all         same as -b -d --login -p -r -t -T -u
  -b, --boot        time of last system boot
  -d, --dead        print dead processes
  -H, --heading     print line of column headings
  -l, --login       print system login processes
      --lookup      attempt to canonicalize hostnames via DNS
  -m                only hostname and user associated with stdin
  -p, --process     print active processes spawned by init
  -q, --count       all login names and number of users logged on
  -r, --runlevel    print current runlevel
  -s, --short       print only name, line, and time (default)
  -t, --time        print last system clock change
  -T, -w, --mesg    add user's message status as +, - or ?
  -u, --users       list users logged in
      --message     same as -T
      --writable    same as -T
      --help     display this help and exit
      --version  output version information and exit

If FILE is not specified, use /var/run/utmp.  /var/log/wtmp as FILE is common.
If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report who translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'who invocation'

 

1.1 who命令的功能

显示当前已登录的用户信息。

1.2 who命令的格式

who [选项]... [ 文件 | 参数1 参数2 ]

 1.3 who命令的选项说明 
选项描述

-a

--all

等于-b -d --login -p -r -t -T -u 选项的组合

-b

--boot

上次系统启动时间

-d

--dead

显示已死的进程

-H

--heading

输出头部的标题列
--ips打印 IP 而不是主机名。使用 --lookup,根据存储的 IP(如果可用)进行规范化,而不是存储的主机名

-l

--login

显示系统登录进程
--lookup尝试通过 DNS 查验主机名
-m只显示和标准输入有直接交互的主机和用户

-p

--process

显示由 init 进程衍生的活动进程

-q

--count

列出所有已登录用户的登录名与用户数量

-r

--runlevel

显示当前的运行级别

-s

--short

只显示名称、线路和时间(默认)

-t

--time      

打印上次系统时钟更改

-T

-w

--mesg

用+,- 或 ? 标注用户消息状态

-u

--users

列出已登录的用户
--message等于-T
--writable等于-T
--help显示此帮助信息并退出
--version显示版本信息并退出

如果未指定 文件,请使用 /var/run/utmp。 /var/log/wtmp 作为 文件 很常见。
如果给出 参数1 参数2,则 -m 假定:“am i”或“mom likes”是常见的。 

 2 who命令使用实例

2.1 who -b 显示上次系统启动时间。

[purpleendurer @ bash ~] who -b
         系统引导 2024-05-27 17:33
[purpleendurer @ bash ~] 

2.2 who -l:显示系统登录进程

[purpleendurer @ bash ~] who -l
登录   ttyAMA0      2024-05-27 09:33              1710 id=AMA0
登录   tty1              2024-05-27 09:33              1708 id=tty1

 

命令返回了6列信息,分别是什么含义呢?我们可以使用-H 选项来了解。

2.3 who -H -l:显示标题行及系统登录进程

[purpleendurer @ bash ~] who -l -H
名称   线路       时间           空闲  进程号 备注
登录   ttyAMA0      2024-05-27 09:33              1710 id=AMA0
登录   tty1              2024-05-27 09:33              1708 id=tty1

这下我们知道每列信息的含义了吧?

2.4 who -H -m:只显示标题行及和标准输入有直接交互的主机和用户

[purpleendurer @ bash ~] who -m -H
名称   线路       时间           备注
gxxc     pts/0        2024-05-27 23:02 (:0)
[purpleendurer @ bash ~] 

 

2.5 who -q:只显示标题行及和标准输入有直接交互的主机和用户 

[purpleendurer @ bash ~] who -q
root purpleendurer
# 用户数=2

 

2.6 who -r:显示当前的运行级别

[purpleendurer @ bash ~] who -r
         运行级别 5 2024-05-27 09:33
[purpleendurer @ bash ~] 

 

说明:在传统的Linux系统中,运行级别可以分为以下几类:

  1. 0级:关机 - 所有进程都将被终止,系统被关闭。
  2. 1级:单用户模式 - 仅允许一个用户登录系统,通常用于系统维护或恢复。
  3. 2级:多用户模式,不带NFS - 多个用户可以登录系统,但网络文件系统(NFS)不可用。
  4. 3级:多用户模式,文本模式 - 这是一个完全的多用户模式,支持网络功能,但通常只提供命令行界面,没有图形界面。
  5. 4级:未定义 - 在某些系统中,这个级别可能用于定义自定义的运行模式。
  6. 5级:多用户模式,图形界面 - 类似于级别3,但提供了图形用户界面(GUI),允许用户使用图形界面登录和操作系统。
  7. 6级:重启 - 系统将重新启动。 

2.7 who -w -H:用+,- 或 ? 标注用户消息状态

[purpleendurer @ bash ~] who -w -H
名称     线路       时间           备注
boot                     + tty7         2024-05-27 09:33 (:0)
purpleendurer     + pts/0        2024-05-27 23:02 (:0)
[purpleendurer @ bash ~] 

 2.8 who am i -H:显示当前用户信息

 [purpleendurer @ bash ~] who am i -H
名称   线路       时间           备注
purpleendurer     pts/0        2024-05-27 23:02 (:0)
[purpleendurer @ bash ~] 

2.9 who -u -H:列出已登录的用户

[purpleendurer @ bash ~] who -u -H
名称   线路       时间           空闲  进程号 备注
root                      tty7         2024-05-27 09:33  old       2428 (:0)
purpleendurer     pts/0        2024-05-27 23:02   .         30989 (:0)
[purpleendurer @ bash ~] 

其中第4列是闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。 

2.10 显示所有信息

[purpleendurer @ bash ~] who -a -H
名称     线路       时间           空闲  进程号 备注   退出
           系统引导 2024-05-27 17:33
登录     ttyAMA0      2024-05-27 09:33              1710 id=AMA0
登录     tty1         2024-05-27 09:33              1708 id=tty1
           运行级别 5 2024-05-27 09:33
root                      tty7         2024-05-27 09:33  old       2428 (:0)
purpleendurer     pts/0        2024-05-27 23:02   .         30989 (:0)
[purpleendurer @ bash ~] 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/333596.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初级爬虫的总结一

初级爬虫的总结一之百度网页爬虫 一、寻找正确的sugrec二、url拼接出问题&#xff0c;解决办法 我遇到的问题&#xff1a; 1、没有找对网页sugrec&#xff0c;导致connect-type没有找对&#xff0c;以及一些小问题 2、url拼接时候出现乱码 一、寻找正确的sugrec 1、打开百度网…

【讲解下Web前端三大主流的框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

node.js学习P3-P10

P3 npm package.json&#xff08;package解读npm工具换镜像源&#xff09; 一个package.json文件可以的作用 作为一个描述文件&#xff0c;描述了你的项目依赖哪些包 &#xff0c;用来干什么的允许我们使用“语义版本规则”&#xff0c;指明你项目依赖的版本让你的构建更好的…

Web安全:SQL注入之时间盲注原理+步骤+实战操作

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

系统安全扫描扫出了:可能存在 CSRF 攻击怎么办

公司的H5在软件安全测试中被检查出可能存在 CSRF 攻击&#xff0c;网上找了一堆解决方法&#xff0c;最后用这种方式解决了。 1、问题描述 CSRF 是 Cross Site Request Forgery的缩写(也缩写为也就是在用户会话下对某个 CGI 做一些 GET/POST 的事&#xff0c;RIVTSTCNNARGO一这…

esp8266的rtos和nonos区别

https://bbs.espressif.com/viewtopic.php?t75242#p100294 https://blog.csdn.net/ydogg/article/details/72598752

存储方式 - 前端学习

1. cookie是什么&#xff1f;你了解cookie吗&#xff1f; 在计算机领域中&#xff0c;特指一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件。这个文件可以被服务器用来识别用户身份、跟踪用户活动、保存用户设置等。它通常由名称、值、域名、路径、过期时间等…

【pm2 - sdk 集成到程序中,典型用法】

pm2作为一款进程管理神器&#xff0c;除了命令行的启动方式外&#xff0c;其还对应有sdk&#xff0c;集成到程序中&#xff0c;我们可以连接到已有或创建pm2的守护进程&#xff0c;与其进行交互&#xff0c;动态&#xff0c;编程式地控制程序的启停等。以下为示例&#xff1a; …

酷开科技大屏营销,多元需求唤醒“客厅经济”

随着科技的发展和消费者习惯的变化&#xff0c;OTT大屏营销正逐渐成为客厅经济的新风向。OTT不仅改变了人们获取信息和娱乐的方式&#xff0c;也为品牌营销提供了新的机遇和挑战&#xff0c;OTT大屏营销已经成为客厅经济的重要组成部分。酷开科技通过其自主研发的智能电视操作系…

PHP框架 Laravel

现在因为公司需求&#xff0c;需要新开一个Laravel框架的项目&#xff0c;毫无疑问&#xff0c;我又被借调过去了&#xff0c;最近老是被借调&#xff0c;有点阴郁&#xff0c;不过反观来看&#xff0c;这也是好事&#xff0c;又可以复习和巩固一下自己的知识点&#xff0c;接下…

数组基础-笔记

数组是非常基础的数据结构&#xff0c;实现运用和理解是两回事 数组是存放在连续内存空间上的相同类型的数据的集合 可以方便的通过下表索引的方式获取到下标下对应的数据。 举一个字符数组的例子&#xff1a; 注意两点&#xff1a; 数组下标从0开始 数组内存空间的地址是连…

yarn dev启动项目时遇到的问题

用yarn dev启动项目的时候&#xff0c;遇到了如下问题&#xff1a; 这个时候&#xff0c;我们可以这样解决&#xff1a;用nvm list 看下已安装的node版本&#xff0c;用nvm use切换一下node版本&#xff0c;当然前提是你已经安装了nvm。

C++: 二叉搜索树及实现

目录 一、二叉搜索树的概念 二、二叉搜索树的操作 2.1插入 2.2删除 1.有左子树&#xff0c;无右子树 2.有右子树&#xff0c;无左子树 3.有左子树和右子树 三、二叉搜索树的实现 要点 前言&#xff1a;为了学习map和set&#xff0c;需要先学二叉搜索树作为铺垫。 一、…

[论文笔记]Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

引言 今天带来思维链论文 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models的笔记。 作者探索了如何通过生成一系列中间推理步骤的思维链&#xff0c;显著提升大型语言模型在进行复杂推理时的能力。 1 总体介绍 语言模型的规模扩大已被证明能够带来…

[数据集][目标检测]伤口检测数据集VOC+YOLO格式2760张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2760 标注数量(xml文件个数)&#xff1a;2760 标注数量(txt文件个数)&#xff1a;2760 标注…

课时138:变量进阶_变量实践_综合案例

2.1.3 综合案例 学习目标 这一节&#xff0c;我们从 免密认证、脚本实践、小结 三个方面来学习 免密认证 案例需求 A 以主机免密码认证 连接到 远程主机B我们要做主机间免密码认证需要做三个动作1、本机生成密钥对2、对端机器使用公钥文件认证3、验证手工演示 本地主机生成…

调整GIF图大小的方法是什么?分享4个

调整GIF图大小的方法是什么&#xff1f;在数字化时代&#xff0c;GIF以其独特的动图魅力&#xff0c;成为了网络交流中不可或缺的一部分。无论是社交媒体、博客文章还是工作汇报&#xff0c;一个恰到好处的GIF图往往能有效吸引观众的注意&#xff0c;传递信息&#xff0c;但过大…

YOLOv8+PyQt5面部表情检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

1.资源包含可视化的面部表情检测系统&#xff0c;基于最新的YOLOv8训练的面部表情检测模型&#xff0c;和基于PyQt5制作的可视化面部表情检测系统&#xff0c;包含登陆页面、注册页面和检测页面&#xff0c;该系统可自动检测和识别图片或视频当中出现的八类面部表情&#xff1a…

3D开发工具HOOPS在BIM系统中的应用

建筑信息模型是一种革命性的建筑设计、施工和管理方法。它通过创建和利用数字信息来优化建筑项目的设计、施工和运营过程。在这个过程中&#xff0c;3D开发工具HOOPS扮演着至关重要的角色&#xff0c;为BIM系统提供了强大的技术支持和丰富的功能。HOOPS中文网http://techsoft3d…

ThreadLocal简介

Thread类中&#xff0c;有个ThreadLocal.ThreadLocalMap 的成员变量。 ThreadLocalMap内部维护了Entry数组&#xff0c;每个Entry代表一个完整的对象&#xff0c;key是ThreadLocal本身&#xff0c;value是ThreadLocal的泛型对象值 public void set(T value) {Thread t Thread…