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 ~] 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊高效广告打法及数据优化,亚马逊高阶广告打法课

课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/89342733 更多资源下载&#xff1a;关注我。 课程内容&#xff1a; 001.1-亚马逊的广告漏斗和A9算法的升级变化.mp4 002.2-流量入口解析和广告的曝光机制.mp4 003.3-标签理论 .mp4 004.4-不同广告类…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读&#xff1a; 《AI—工程篇》 AI智能体研发之路-工程篇&#xff08;一&#xff09;&#xff1a;Docker助力AI智能体开发提效 AI智能体研发之路-工程篇&#xff08;二&#xff09;&#xff1a;Dify智能体开发平台一键部署 AI智能体研发之路-工程篇&#xff08;三&am…

计算机组成原理易混淆知识点总结(持续更新)

目录 1.机器字长&#xff0c;存储字长与指令字长 2.指令周期,机器周期,时钟周期 3.CPI,IPS,MIPS 4.翻译程序和汇编程序 5.计算机体系结构和计算机组成的区别和联系 6.基准程序执行得越快说明机器的性能越好吗? 1.机器字长&#xff0c;存储字长与指令字长 不同的机器三者…

QGraphicsView实现简易地图17『涟漪效果』

前文链接&#xff1a;QGraphicsView实现简易地图16『爆炸效果』 模仿水波荡漾时的涟漪效果&#xff0c;参考了echarts中的散点图 支持设置散点大小、颜色、涟漪线条宽度。 动态演示效果 静态展示图片 核心代码 #pragma once #include "../AbstractGeoItem.h" #incl…

ios:Command PhaseScriptExecution failed with a nonzero exit code

问题 使用 xcode 跑项目真机调试的时候&#xff0c;一直报错 Command PhaseScriptExecution failed with a nonzero exit code。 解决 最终靠以下方法解决 删除Podfile.lock文件删除Pods文件删除.xcworkspace文件Pod installCommandShiftK 清理一下缓存 亲测有效

JavaWeb开发 1.Web开发 介绍

我的生命是一万次的春和景明 —— 24.5.27 一、什么是Web Web&#xff1a; 全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站 Web网站的工作流程 学习流程

JAVASE总结一

1、 2、引用也可以是成员变量&#xff08;实例变量&#xff09;&#xff0c;也可以是局部变量&#xff1b;引用数据类型&#xff0c;引用&#xff0c; 我们是通过引用去访问JVM堆内存当中的java对象&#xff0c;引用保存了java对象的内存地址&#xff0c;指向了JVM堆内存当中…

MER 2024 第二届多模态情感识别挑战赛

多模态情感识别是人工智能领域的一个活跃研究课题。它的主要目标是整合多种模态来识别人类的情绪状态。当前的工作通常为基准数据集假设准确的情感标签&#xff0c;并专注于开发更有效的架构。然而&#xff0c;现有技术难以满足实际应用的需求。 清华大学陶建华教授联合中国科学…

在大厂工作还有哪些好处?

昨晚和好朋友聊天&#xff0c;聊到了这个在大厂工作的利弊&#xff0c;很多想换工作的同学或者准备校招的大学生可能会有疑虑&#xff0c;到底是进小公司好呢&#xff1f;还是进大公司好&#xff1f; 相比之下&#xff0c;大厂抗风险能力更强&#xff0c;内部员工的发展也更稳定…

Antd Vue项目引入TailwindCss之后出现svg icon下移,布局中的问题解决方案

目录 1. 现象&#xff1a; 2. 原因分析&#xff1a; 3. 解决方案&#xff1a; 写法一&#xff1a;扩展Preflight 写法二&#xff1a; 4. 禁用 Preflight 1. 现象&#xff1a; Antd Vue项目引入TailwindCss之后出现svg icon下移&#xff0c;不能对齐显示的情况&#xff0…

数据集006:中药材识别数据集(含数据集下载链接)

数据集简介&#xff1a; 中药材共5类 900张图片 分别是百合 枸杞 党参 槐花 金银花 部分代码&#xff1a; def get_data_list(target_path,train_list_path,eval_list_path):生成数据列表#存放所有类别的信息class_detail []#获取所有类别保存的文件夹名称data_list_pat…

区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测

区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测 目录 区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现GRU-Attention-KDE门控循环单元注意力…

基于EV54Y39A PIC-IOT WA的手指数量检测功能开发(MPLAB+ADC)

目录 项目介绍硬件介绍项目设计开发环境及工程参考总体流程图硬件基本配置光照传感器读取定时器检测逻辑 功能展示项目总结 &#x1f449; 【Funpack3-2】基于EV54Y39A PIC-IOT WA的手指数量检测功能开发 &#x1f449; Github: EmbeddedCamerata/PIC-IOT_finger_recognition 项…

图解 BERT 模型

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔&#xff0c;我们在集成xunsearch的时候就会比较简单&#xff0c;后面我们在介绍其他的接入方式&#xff1b; 首先我们进入到宝塔管理后台&#xff1a;【软件商店】-【输入xun】-【点击xunsearch】直接安装即可 安装成功之后&#xff0c;会自动在www/server中创…

Qt | QTabBar 类(选项卡栏)

01、上节回顾 Qt | QStackedLayout 类(分组布局或栈布局)、QStackedWidget02、简介 1、QTabBar类直接继承自 QWidget。该类提供了一个选项卡栏,该类仅提供了一个选项卡, 并没有为每个选项卡提供相应的页面,因此要使选项卡栏实际可用,需要自行为每个选项卡设置需要显示的页…

Android刮刮卡自定义控件

效果图 刮刮卡自定义控件 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import …

基于SpringBoot设计模式之结构型设计模式·适配器模式

文章目录 介绍开始使用委托的适配器&#xff08;媒体播放器&#xff09;架构图定义被适配者定义需求接口定义适配者 使用继承的适配器&#xff08;手机充电接口&#xff09;架构图定义被适配者定义需求接口定义适配者 测试样例 总结优点缺点 介绍 在程序世界中&#xff0c;经常…

4,八种GPIO模式

资料来源:【STM32基础学习】八种GPIO模式总结-云社区-华为云 (huaweicloud.com) 【STM32基础学习】八种GPIO模式总结-云社区-华为云 (huaweicloud.com) 【STM32基础学习】八种GPIO模式总结-云社区-华为云 (huaweicloud.com) 仅作个人自学笔记&#xff0c;如有冒犯&#xf…

版本匹配指南:PyTorch版本、Python版本和pytorch_lightning版本的对应关系

版本匹配指南&#xff1a;PyTorch版本、Python版本和pytorch_lightning版本的对应关系 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a; 我是高斯…