linux下编写who命令

worktile 其他 20

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在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年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux下编写who命令可以使用C语言进行编写。下面是一个简单的示例代码:

    “`c
    #include
    #include
    #include
    #include
    #include

    void 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, &current_record, reclen) == reclen)
    {
    show_info(&current_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年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    编写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年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部