xxx*_*562 10 shell bash terminal job-control jobs
我知道该jobs
命令仅显示当前 shell 会话中运行的作业。
是否有 bash 代码可以显示当前用户跨 shell 会话的作业(例如,来自另一个终端选项卡的作业)?
(对我而言)不清楚除了jobs
列出当前用户 ( ) 拥有的所有进程之外,您还希望此全局调用执行什么操作ps x
,但您可以按终端和/或按状态过滤该列表。
列出您的流程:
\nps x |awk \'$2 ~ /pts/\'
bg
):ps x |awk \'$3 ~ /T/\'
ps x |awk \'$3 ~ /\\+/\'
AWK确实很强大。在这里,我们只是按数字调用字段并$
使用正则表达式匹配器 ( )查看它们的值 ( ~
)。您可以使用 反转匹配!~
。这些是条件,我们只是使用 AWK 的默认操作(打印匹配,也可以写成{ print $0 }
打印整行)。
\'NR == 1 || \xe2\x80\xa6
您可以在 AWK 命令中添加标题(记录数 = 1,也称为第 1 行)。这些可以组合起来,例如ps x |awk \'NR == 1 || $3 ~ /T/ || $2 ~ /pts/
。使用正则表达式,您可以将前两个项目符号组合为ps x |awk \'$3 ~ /[T+]/\'
. 这些条件语句是逻辑性的,所以你可以||
用&&
和 括号组合,例如ps x |awk \'NR == 1 || ($3 ~ /\\+/ && $2 ~ /pts/)\'
我怀疑你想要的是:ps x |awk \'NR == 1 || $2 ~ /pts/
我在 Linux 系统上运行了这个。如果您正在运行其他程序,您的终端模拟器的名称可能会有所不同。运行ps $$
以查看您的活动 shell 如何显示在列表中,并从第二列构建正则表达式。