linuxwho命令代码

worktile 其他 24

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要获取linux中who命令的代码,需要先了解一下who命令的功能。who命令用于显示当前登录到系统上的用户列表。它提供了用户的登录名、终端、登录时间等信息。在linux系统中,who命令的代码实现分为两部分:一是从utmp文件中读取用户登录信息,二是对这些信息进行解析和显示。

    下面是一个简化版的who命令代码示例(仅供参考):

    “`bash
    #include
    #include
    #include
    #include

    void show_info(struct utmp *utbufp) {
    printf(“%-8.8s”, utbufp->ut_name); // 用户名
    printf(” “);
    printf(“%-8.8s”, utbufp->ut_line); // 终端名
    printf(” “);
    printf(“%12.12s”, ctime(&(utbufp->ut_tv.tv_sec))); // 登录时间
    printf(” “);
    #ifdef SHOWHOST
    printf(“(%s)”, utbufp->ut_host); // 远程主机名
    #endif
    printf(“\n”);
    }

    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;
    }
    “`

    这段简化版的代码使用了utmp.h头文件中提供的结构体`struct utmp`来存储和访问用户登录信息。首先,我们打开了utmp文件(常量UTMP_FILE指向utmp文件路径),然后循环读取utmp文件中的记录,每次读取后调用show_info函数来显示相应的信息。最后,关闭utmp文件,代码执行完毕。

    需要注意的是,上述代码只是一个简化版的实现,实际上还有一些细节部分的处理需要根据具体的需求进行设计,比如对于登出时的处理、对utmp文件的访问权限等。完整的who命令代码实现相对复杂,需要考虑这些细节以及其他功能的实现。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,可以使用who命令来查看当前登录到系统的用户信息。下面是who命令的代码示例:

    “`shell
    who
    “`

    运行上述代码后,系统将会显示当前登录用户的相关信息,包括用户名、登录IP地址、登录时间和终端。下面是一个示例输出:

    “`
    username1 tty1 2021-01-01 10:00
    username2 pts/0 2021-01-01 11:30 (192.168.1.1)
    “`

    在这个示例中,有两个用户登录到系统上。username1登录在tty1终端,登录时间为2021年1月1日10点,而username2登录在pts/0终端,登录时间为2021年1月1日11点30分,IP地址为192.168.1.1。

    除了直接运行who命令查看所有用户的登录信息外,还可以使用一些选项来获取更精确的信息。下面是几个常用的选项和其代码示例:

    1. -u选项:显示登录用户的详细信息,包括用户名、终端、登录时间和空闲时间。

    “`shell
    who -u
    “`

    示例输出:

    “`
    username1 tty1 2021-01-01 10:00 00:00
    username2 pts/0 2021-01-01 11:30 Old 01:23 (192.168.1.1)
    “`

    2. -b选项:显示系统最后一次启动的时间。

    “`shell
    who -b
    “`

    示例输出:

    “`
    system boot 2021-01-01 09:00
    “`

    3. -H选项:以表格形式显示用户信息。

    “`shell
    who -H
    “`

    示例输出:

    “`
    NAME LINE TIME COMMENT
    username1 tty1 2021-01-01 10:00
    username2 pts/0 2021-01-01 11:30 (192.168.1.1)
    “`

    4. -m选项:显示当前登录用户的终端名称。

    “`shell
    who -m
    “`

    示例输出:

    “`
    username1 tty1 2021-01-01 10:00
    “`

    5. -q选项:显示当前登录用户的数量。

    “`shell
    who -q
    “`

    示例输出:

    “`
    username1 username2
    # users=2
    “`

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux系统中,没有像”who”命令一样的”linuxwho”命令。但是,Linux系统中有一系列与”who”命令功能类似的命令,可以用来查看当前登录到系统上的用户信息。

    1. who命令:该命令用于显示当前登录到系统上的用户列表。它主要用来显示用户登录名、终端、登录时间等信息。只需在终端中输入以下命令即可查看用户列表:

    “`
    who
    “`

    2. w命令:该命令也用于显示当前登录到系统上的用户信息,但相比who命令,w命令提供了更详细的信息,如用户的CPU使用情况等。输入以下命令即可查看用户信息:

    “`
    w
    “`

    3. last命令:该命令用于显示用户的登录历史记录。通过输入以下命令,可以查看最近登录到系统上的用户信息:

    “`
    last
    “`

    4. finger命令:该命令用于显示指定用户的详细信息,包括用户的登录名、终端、登录时间、当前状态等。可通过以下命令使用finger命令:

    “`
    finger 用户名
    “`

    例如,要查看用户”john”的信息,可以输入以下命令:

    “`
    finger john
    “`

    通过上述命令,可以查看到与”who”命令类似的信息,但更为详细。

    总结:在Linux系统中,没有”linuxwho”命令,但可以使用其他命令如”who”、”w”、”last”、”finger”等来查看当前登录到系统上的用户信息。每个命令提供的信息略有不同,可以根据需要选择合适的命令查看用户信息。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部