linux怎么编写who命令

worktile 其他 20

回复

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

    编写Linux上的who命令需要以下步骤:

    1. 确定who命令的功能和需求:who命令用于显示当前登录到系统上的用户信息。

    2. 打开终端或命令行窗口。

    3. 创建一个新的文件,用于编写who命令的代码。可以使用任何文本编辑器,例如vi、nano等。

    4. 在代码文件的开始位置,添加一条解释指令,以便系统知道如何执行该文件。例如:

    “`
    #!/bin/bash
    “`

    5. 下面编写who命令的具体代码逻辑。who命令的实现可以使用Linux系统提供的一些命令和工具,例如w或者whoami命令。

    – 使用w命令:w命令用于显示当前登录系统的用户信息,包括用户名、远程登录IP、登录时间等。你可以使用以下方式执行w命令并将结果输出到终端:

    “`
    w
    “`

    – 使用whoami命令:whoami命令用于显示当前登录用户的用户名。你可以使用以下方式执行whoami命令并将结果输出到终端:

    “`
    whoami
    “`

    你还可以根据具体需求,对输出结果进行处理和格式化,例如筛选出特定字段、排序、去重等操作。

    6. 保存代码文件并退出文本编辑器。

    7. 如果你使用了nano编辑器,则可以按Ctrl+O保存文件,然后按Ctrl+X退出编辑器。如果你使用的是vi编辑器,则可以按ESC键,然后输入:wq保存文件并退出。

    8. 使用chmod命令为代码文件添加可执行权限。例如,如果代码文件的名称为mywho.sh,则可以执行以下命令:

    “`
    chmod +x mywho.sh
    “`

    9. 将代码文件移动到一个在系统的可执行路径下的目录中,例如/usr/bin。这样,你就可以在任何位置直接执行该命令。

    10. 打开终端或命令行窗口,输入who命令即可执行你编写的who命令,并查看结果。

    以上是编写Linux上who命令的一般步骤。根据具体需求和编程经验,你可以对代码进行修改和优化,以满足自己的需求。

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

    编写一个 Linux who 命令需要以下几个步骤:

    1. 了解 who 命令的功能和用法:who 是一个用于显示当前活动用户的命令。它可以显示登录系统的用户列表,包括用户名、登录时间、IP 地址等信息。

    2. 编写 shell 脚本:打开任意文本编辑器,创建一个新的文件,命名为 who.sh(或任意其他你喜欢的名称)。这将是我们编写 who 命令的脚本。

    3. 添加 shebang:在 who.sh 文件的第一行添加下面的代码,以告诉系统这是一个 shell 脚本:

    “`
    #!/bin/bash
    “`

    这个代码行被称为 shebang,它告诉系统使用 bash 来解析脚本。

    4. 编写代码:在 who.sh 文件中添加以下代码以实现 who 命令的功能:

    “`bash
    #!/bin/bash

    who | awk ‘{print “User:”, $1, “Logged in at:”, $3, $4, “from:”, $5}’
    “`

    这段代码使用 who 命令获取当前活动用户的信息,并通过 awk 命令将输出格式化为所需的格式。

    5. 保存并退出:保存 who.sh 文件并退出文本编辑器。

    6. 设置脚本执行权限:打开终端窗口,使用 chmod 命令为 who.sh 文件添加执行权限:

    “`bash
    chmod +x who.sh
    “`

    7. 执行脚本:在终端中输入以下命令来执行脚本:

    “`bash
    ./who.sh
    “`

    脚本将显示当前活动用户的列表。

    以上是一个简单的示例,只显示了用户的用户名、登录时间和来源。你可以根据需要修改代码,添加其他信息或改变格式。

    注意:在编写脚本时需要注意语法及细节,以确保脚本能正确运行。确保 shebang 行位于文件的第一行,并使用合适的解释器(如 bash)。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    编写一个who命令的实现可以分为以下几个步骤:

    1. 确定功能需求:分析who命令的功能需求,通常来说who命令用于显示当前登录系统的用户信息,包括登录用户、登录时间、登录终端等。

    2. 分析实现思路:根据功能需求,可以通过读取系统登录信息文件(如/var/run/utmp或/var/log/wtmp)来获取登录用户的信息。

    3. 编写代码:根据实现思路,使用C语言编写代码实现who命令。

    下面是一个简单的示例代码,演示了如何实现一个基本的who命令功能:

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

    void show_info(struct utmp *utbufp);
    void show_time(long timeval);

    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)
    {
    if (utbufp->ut_type != USER_PROCESS)
    return;

    printf(“%-8.8s”, utbufp->ut_name);
    printf(” “);
    printf(“%-8.8s”, utbufp->ut_line);
    printf(” “);
    show_time(utbufp->ut_tv.tv_sec);
    #ifdef SHOWHOST
    if (utbufp->ut_host[0] != ‘\0’)
    printf(” (%s)”, utbufp->ut_host);
    #endif
    printf(“\n”);
    }

    void show_time(long timeval)
    {
    char *cp;
    cp = ctime(&timeval);
    printf(“%12.12s”, cp + 4);
    }
    “`

    4. 编译和运行:将上述代码保存为一个.c文件(如who.c),然后使用gcc编译器进行编译:
    “`
    gcc -o who who.c
    “`
    接着运行生成的可执行文件:
    “`
    ./who
    “`
    就可以看到当前登录系统的用户信息了。

    请注意:以上代码为简化版示例,可能不能完全符合who命令的实际需求,你可以根据自己的需求进行修改和扩展。

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

400-800-1024

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

分享本页
返回顶部