【问题标题】:Unix shell programming to count number of active user using Korn shell使用 Korn shell 计算活动用户数的 Unix shell 编程
【发布时间】:2016-11-23 15:55:03
【问题描述】:

什么是 shell 脚本,用于计算当前使用 grep 和任何其他 Unix 命令的使用 Korn shell 的登录用户的数量。提前致谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow。你可以改进你的问题。请阅读How to Ask,包括“如何以聪明的方式提问”链接。
  • 这项工作没有一个 shell 脚本。真正的问题是:你尝试了什么,你遇到了什么问题?在您的场景中,登录用户是否自动激活? (我有一台机器,一年前我在一个终端上登录过;该终端在过去 6 个月内没有使用过——它会算作活动吗?)
  • 是的,我想将它们计为活跃的。 @JonathanLeffler

标签: shell unix grep


【解决方案1】:

who 是一个列出在线用户的命令。为了统计在线用户数,可以将who的输出通过管道传递给grep,通过-c参数可以统计行数:

who | grep -c .

编辑:我错过了有关使用 Korn shell 的用户的详细信息。

你可以试试这个:

ps -e -o command | grep -c "[k]sh"

ps 是一个列出当前运行进程信息的命令。 -e 参数使其显示有关所有系统进程的信息,-o command 参数使其仅显示命令。

ps -e -o command 将显示当前正在运行的进程列表。现在,您可以将输出通过管道传输到grep,并使用-c 参数计算与[k]sh 匹配的行数。在“k”周围使用括号,因为否则grep 将匹配自身,因为grep 命令包含“ksh”作为参数。 (您可以通过检查ps -e -o command 的输出看到这一点。)

(我假设 Korn shell 进程的名称是“ksh”。如果是其他名称,您应该使用它作为 grep 的参数。)

【讨论】:

  • 谢谢,但我需要使用 grep 和任何其他 Unix 命令查找当前使用 Korn shell 的计数。
  • 抱歉,我错过了那个细节。我刚刚编辑了答案以完全回答您的问题。
  • 谢谢,有道理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2011-11-21
  • 2016-08-10
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
相关资源
最近更新 更多