linux下编写who命令
-
在Linux下编写一个who命令可以分为以下几个步骤:
1. 确定命令的功能:who命令用于显示当前登录到系统的用户信息,包括用户名、终端设备、登录时间等。
2. 创建一个可执行文件:在命令行中使用以下命令创建一个名为”who”的可执行文件:
`vi who`
进入vi编辑器后,按下”i”键进入插入模式,然后输入以下代码:
“`bash
#!/bin/bash
who -H
“`按下”Esc”键退出插入模式,然后输入”:wq”保存并退出vi编辑器。
3. 设置文件权限:使用以下命令设置”who”文件的可执行权限:
`chmod +x who`
4. 将文件移动到可执行文件目录:使用以下命令将”who”文件移动到系统的可执行文件目录(例如/usr/local/bin):
`mv who /usr/local/bin`
5. 使用who命令:在终端中输入”who”命令即可显示当前登录用户的信息。
以上就是在Linux下编写自定义的who命令的步骤。通过这个例子,你可以了解到如何使用bash脚本编写简单的命令并在系统中使用。当然,如果你需要实现更复杂的功能,可以进一步学习shell编程的相关知识。
2年前 -
在Linux下编写who命令可以使用C语言进行编写。下面是一个简单的示例代码:
“`c
#include
#include
#include
#include
#includevoid show_info(struct utmp *utbufp);
int main()
{
struct utmp current_record;
int utmpfd;
int reclen = sizeof(current_record);if ((utmpfd = open(UTMP_FILE, O_RDONLY)) == -1)
{
perror(UTMP_FILE);
exit(1);
}while (read(utmpfd, ¤t_record, reclen) == reclen)
{
show_info(¤t_record);
}
close(utmpfd);
return 0;
}void show_info(struct utmp *utbufp)
{
printf(“%-8.8s”, utbufp->ut_name);
printf(” “);
printf(“%-8.8s”, utbufp->ut_line);
printf(” “);
printf(“%10ld”, utbufp->ut_time);
printf(” “);
#ifdef SHOWHOST
printf(“(%s)”, utbufp->ut_host);
#endif
printf(“\n”);
}
“`该代码使用了 `
` 头文件来获取用户登录信息,通过打开 `/var/run/utmp` 文件来读取用户登录记录。然后使用 `show_info` 函数来打印每个用户的登录信息。 在编译代码之前,需要确保已经安装了 `libutmp` 库。可以使用以下命令来安装:
“`
sudo apt-get install libutmp-dev
“`然后使用 gcc 编译代码:
“`
gcc -o who who.c
“`编译成功后,可以执行 `./who` 命令来运行该程序,会输出当前登录的用户信息。
注意:在不同的Linux发行版中,`/var/run/utmp` 文件的位置可能会有所不同,需要根据实际情况进行调整。
2年前 -
编写Linux下的who命令可以简单理解为编写一个shell脚本或者是一个可执行程序。下面是一个示例代码,使用Bash shell编写:
“`
#!/bin/bash# 获取当前登录的用户列表并打印出来
who“`
将上面的代码保存为一个名为who的文件,并给予执行权限:
“`
chmod +x who
“`
然后可以通过运行./who命令来执行。要详细解释上述代码,可以将它分为以下几个部分:
1. 第一行`#!/bin/bash`指定了脚本使用的shell解释器是Bash。
2. 第三行`who`是实际执行命令的部分,它会调用系统的who命令来获取当前登录的用户列表。
3. 保存并赋予执行权限之后,可以通过运行./who命令来执行该脚本。当然,上面的代码只是最简单的示例,可以根据实际需求对代码进行扩展和优化。在实际编写过程中,可以考虑使用一些参数选项来实现更多功能,比如显示登录时间、IP地址、终端等信息。此外,还可以使用其他编程语言编写同样功能的程序。
2年前