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

news2024/11/17 15:53:11

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.coloradmin.cn/o/1704745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

再论任何图≌自己这一几何最最起码常识推翻平面公理

黄小宁 有了解析几何使人类对直线和射线的认识有革命性的飞跃。几何学有史2300年来一直认定起点和射出的方向都相同的射线必重合&#xff0c;任两异射线必有全等关系&#xff1b;解析几何使我发现这是2300年肉眼直观错觉。 h定理&#xff08;参考文献中的定理&#xff09;&am…

中国自动分拣行业TOP5玩家:大盘点(年收入开局12亿……)

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 随着物流行业的迅猛发展&#xff0c;自动分拣技术正成为提升物流效率的关键。中国自动分拣行业的几家领军企业在2023年展现了各自的战略…

1+x(Java)中级题库易混淆理论题(二)

冷备份实质就是数据库相关文件的复制 System.in是字节流 Map集合中的key是无序的 protected不能用于修饰类 接口中所有抽象方法默认使用public修饰 DML操作有&#xff1a;INSERT UPDATE DELETE SQL 语句中进行 group by 分组时&#xff0c;可以不写 where 子句 使…

【Web】2024 京麒CTF ezjvav题解

目录 step 0 step 1 step 2 EXP1 EXP2 step 0 进来是一个登录框 admin/admin成功登录 访问./source jwt伪造 带着伪造的jwt访问./source&#xff0c;拿到题目源码jar包 step 1 pom依赖有spring、fj、rome 反序列化入口在./Jsrc路由 有两层waf&#xff0c;一个是明…

【Docker】docker-compose 常用命令

启动服务&#xff1a; docker-compose up 如果你想在后台运行服务&#xff0c;可以添加 -d 标志&#xff1a; docker-compose up -d 开启所有服务 docker-compose start 停止服务&#xff1a; docker-compose down 查看服务状态&#xff1a; docker-compose ps 查看…

mumu 模拟器安装

1.下载安装 下载地址 Win 历史版本&#xff1a;http://mumu.163.com/update/win/Mac 历史 版本&#xff1a;http://mumu.163.com/20200515/25905_880858.html 2.设置为竖屏 在设置中心--界面设置页面设置宽720&#xff0c;高1280&#xff0c;DPI为240&#xff0c;如下图所示。…

读人工智能时代与人类未来笔记16_科学发现

1. 科学发现 1.1. 科学认识的发展往往涉及理论和实验之间的巨大差距以及大量的试错 1.2. 模型不是像传统的那样来自理论理解&#xff0c;而是来自基于实验结果得出结论的人工智能 1.2.1. 这种方法需要的专业知识不同于开发理论模型或传统计…

APM2.8下载固件的方法(两种办法详解)

1.把APM飞控用安卓手机的USB线插入电脑。 选择COM口&#xff0c;不要选择auto&#xff0c;如果你没有COM口说明你驱动安装有问题。 波特率115200。点击相应的图标就可以下载固件到飞控板。 请注意&#xff1a;烧录APM必须选择INSTALL FIRMWARE LEAGACY,第一个是用于刷pixhawk的…

C语言实现Hash Map(3):Map代码优化

在上一节中&#xff0c;我们学习了C语言实现Hash Map(2)&#xff1a;Map代码实现详解&#xff0c;通过代码&#xff0c;我们更深入地了解了Map实现的原理&#xff0c;学习了如何通过key找到对应的桶并加入节点。也正如上一节提到的&#xff0c;虽然这是github中star比较多的代码…

Android数据缓存框架 - 内存数据载体从LiveData到StateFlow

引言&#xff1a;所有成功者的背后&#xff0c;都有一份艰苦的历程&#xff0c;不要只看到了人前的风光&#xff0c;而低估了他们背后所付出的努力。 随着flow到流行度越来越高&#xff0c;有开发者呼吁我使用flow&#xff0c;于是我就如你们所愿&#xff0c;新增了StateFlow作…

C语言 | Leetcode C语言题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; int numDistinct(char* s, char* t) {int m strlen(s), n strlen(t);if (m < n) {return 0;}unsigned long long dp[m 1][n 1];memset(dp, 0, sizeof(dp));for (int i 0; i < m; i) {dp[i][n] 1;}for (int i m - 1; i > 0;…

工控屏(触摸屏)怎么连接电脑

一、使用USB接口连接 连接方法&#xff1a;使用USB线连接触摸屏和电脑&#xff0c;触摸屏会自动识别并连接到电脑上。 二、使用HDMI接口连接 连接方法&#xff1a;1.首先要确认您的触摸屏是否有HDMI接口&#xff1b;2.将一端连接到触摸屏&#xff0c;另一端连接到电脑&#…

台式机安装ubuntu过程

1.单系统参考 20231210-超详细Ubuntu20.04单系统安装_台式机安装ubuntu系统-CSDN博客 2.双系统参考 双系统启动效果_哔哩哔哩_bilibili 安装前一定要先清空电脑的硬盘数据&#xff0c;不然可能会出现以下图片异常 意思估计是分区被占用了&#xff0c;出现这个问题 &#xff0…

GeoJSON数据转shp文件

利用QGis工具,使用GeoJSON数据转换生成shp文件,用于GeoServer发布shp图层服务。 首先准备一份GeoJSON文件,文件格式为“.json”,文件接入如下: 详细操作如下: 1、启动QGis工具 2、从左上角找到按钮“open data source manager”,点击打开数据源 3、选择数据源,显示如…

vue3 uni-app 中小程序实现 底部tabbar 中间凸起部分 或者说自定义底部tabbar [保姆级别教程]

1、先来看一下效果 2、代码实现 我们还是在 pages.json 中正常配置我们底部的tabbar 但是需要 添加一个字段 "custom": true, //开启自定义tabBar 不填每次原来的tabbar在重新加载时都回闪现 3、 在 pages同一级 或者 里面创建一个 子组件 用来放我们的模版 4、 …

用源码建站可能涉及知产侵权,建站的注意!

近日普推知产老杨看到央视报道一家公司用了某建站源码涉及知产侵权&#xff0c;起诉了全国八千多家公司&#xff0c;某梦自从创始人因病转给某公司后&#xff0c;也在大量起诉用其建站代码公司侵权&#xff0c;他们也都是申请了相关的著作权。 有的中小企业在运营中会涉及建站…

Web组态可视化编辑器 快速绘制组态图

演示地址&#xff1a;by组态[web组态插件] 随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于…

Akamai 最新版逆向分析 akamai逆向 dhl网址

原创文章&#xff0c;请勿转载&#xff01; 本文内容仅限于安全研究&#xff0c;不公开具体源码。维护网络安全&#xff0c;人人有责。 URL&#xff08;base64加密处理&#xff09;&#xff1a;aHR0cHM6Ly93d3cuZGhsLmNvbS9jbi16aC9ob21lL3RyYWNraW5nL3RyYWNraW5nLWVjb21tZXJ…

小米8SE刷root(面具)

首先准备好一根数据线&#xff0c;一部小米8SE手机&#xff0c;和一台电脑 接下来需要的软件我会给出链接和使用方法&#xff0c;以及分享我遇到的困难和解决方案 下面操作不会的&#xff0c;可以参考这个博主的教程&#xff0c;我也是跟着这个教程刷好的 第一步解锁BL 开启开…

OpenWrt 23.05 安装之后默认空间小 磁盘扩容 教程 软路由实测 系列六

1 安装fdisk opkg update opkg install fdisk #查看磁盘 rootOpenWrt:~# fdisk -l GPT PMBR size mismatch (246303 ! 250069679) will be corrected by write. The backup GPT table is not on the end of the device. Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 25006…