Linux编程入门(2)-实现who指令

本文深入讲解Linux系统编程,通过分析who指令来学习读文件操作。介绍了who命令的工作原理,讲解了open、read、close等系统函数的使用,并展示了如何从utmp文件读取用户登录信息。最后,通过编写简易who程序,实现了读取和显示登录用户信息的功能,同时对代码进行了优化,以更准确地显示登录时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇简单介绍了Linux系统编程的一些概念知识,从本篇文章开始,从解释系统命令的功能入手,由浅入深,逐步讲解Linux系统编程。

建议学习者最好具有一定的C语言基础,了解数组、结构体、指针和链表的概念。

代码实验环境

操作系统:Ubuntu 18.04 LTS

编译器gcc版本:gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

学习目标

通过分析who指令,来学习Linux的读文件操作。

who指令介绍

Linux为多用户操作系统,有时候需要查看系统是否繁忙,某人是否正在使用系统等,可以使用who指令来查看Linux系统中活动用户的情况。

命令也是程序。Linux系统中,几乎所有的命令都是人为编写的程序。在Linux系统的中增加新的命令很简单,把可执行文件放到以下任意一个目录即可:/bin、/usr/bin、/usr/local/bin,这些目录存放着很多系统命令。

如果想知道谁在使用系统,输入who指令,输出如下:

$ who

user :0 2021-10-31 21:42 (:0)

test pts/1 2021-10-31 23:19 (192.168.0.104)

每一行代表一个已经登陆的用户,第一列是用户名,第二列是终端名,第三列是登陆时间,第四列是用户的登陆地址。

who指令详解

我们可以通过联机帮助指令man,来查看who的使用方法和详细解释。查看who的帮助可输入:

$ man who

在这里插入图片描述

Linux系统的联机帮助内容:

名字(NAME):命令的名字以及对这个命令的简短说明。

概要(SYNOPSIS):给出命令的用法说明,包括命令格式、参数和选项列表。方括号([OPTION])为可选项。选项为短线 - 加上abdHlmpqrstTu这些字母的任意组合,命令末尾还可以有一个文件参数或者给定两个参数。

描述(DESCRIPTION):关于指令的详细阐述。根据指令和平台的不同,描述的内容也不同。

选项(OPTIONS):给出命令行中每一个选项的说明。

作者(AUTHOR):命令的作者。

参阅(SEE ALSO):包含这个命令相关的其他主题。

who指令如何工作

向下翻阅 man who指令看到的帮助信息,有以下信息

在这里插入图片描述

圈出的内容说明,如果who命令没有指定文件,通常用 /var/run/utmp/var/log/wtmp作为选项文件。

/var/run/utmp 文件保存当前登陆系统的用户信息

/var/log/utmp 文件保存登陆过本系统的用户信息

who通过读取文件/var/run/utmp 获得当前系统登陆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zsky_01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值