繁体   English   中英

显示未登录的用户进程linux bash脚本

[英]Show not logged users processes linux bash script

我正在执行一个bash脚本,并且在写这篇文章以显示未记录的用户进程,这些进程通常是守护进程,为此,在练习中,他们建议我:

要处理命令行,我们将使用cut命令,该命令允许通过过滤器选择列表的不同列。

我用了:

ps -A | grep -v w
ps -A | grep -v who 

ps -A | grep -v $USER

但是尝试所有这些选项时,所有用户的所有进程都将打印在输出文件中,而我只希望未登录的用户的进程。

我感谢您的帮助

谢谢。

grep -vw将删除与正则表达式w (简单地是包含字符串w任何东西)匹配的行。 要运行命令 w您必须这样说: 但按照说明中的提示,您还需要使用cut对输出进行后处理。

为了避免完全给出答案,这里提供了粗糙的伪代码。

w | cut something >tempfile
ps -A | grep -Fvf tempfile

如果可以在管道中传递w的后处理结果,那就很好了,但是标准输入已经绑定到ps -A 如果您具有支持流程替换的外壳,则可以使用它。

ps -A | grep -Fvf <(w | cut something)

不幸的是, w的输出不能被机器正确地读取-您也将适当地切掉标题行。 (在我的机器上,有两个标题行。您可能会有所不同。)您稍后可能会在课程中学到一些Awk,但是直到那时,

ps -A | grep -Fvf <(w | tail -n +3 | cut something)

这仍然不能完全解决所有可能的情况。 如果某人的帐户名是grep怎么办?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM