bash ps 打印名称为进程的信息
bash ps print info about process with name
我需要使用 ps 个具有键入名称的进程来打印 UID PID PPID PRI NI VSZ RSS STAT TTY TIME 列。
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time | grep >
cat
echo "enter pid of process to kill:"
read pid
kill -9 $pid
但是当我使用带有参数 $2 = bash 的命令时它什么也不打印(这个过程存在)
更新
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command | grep | awk '{print ,,,,,,,,}' >
cat
echo "enter pid of process to kill:"
read pid
kill -9 $pid
这对我有用,但恕我直言,实际上这个解决方案并不是最好的。我使用 shadow column 命令,在 grep 名称之后打印所有列,不包括命令。
您始终可以使用两阶段方法。
1.) 找到想要的 PID
。为此使用最简单的 ps
ps -o pid,comm | grep "" | cut -f1 -d' '
ps -o pid,comm
只打印两列,如:
67676 -bash
71548 -bash
71995 -bash
72219 man
72220 sh
72221 sh
72225 sh
72227 /usr/bin/less
74364 -bash
所以 grepping 很容易(而且 无噪音,没有误触发)。 cut
只是提取 PID。例如。
ps -o pid,comm | grep bash | cut -f1 -d' '
打印
67676
71548
71995
74364
2.) 现在你可以使用 -p
标志将找到的 PIDs
提供给另一个 ps
,所以完整的命令是:
ps -o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command -p $(ps -o pid,comm | grep bash | cut -f1 -d' ')
产出
UID PID PPID NI VSZ RSS STAT TTY TIME COMMAND
501 67676 67675 0 2499876 7212 S+ ttys000 0:00.04 -bash
501 71548 71547 0 2500900 8080 S ttys001 0:01.81 -bash
501 71995 71994 0 2457892 3616 S ttys002 0:00.04 -bash
501 74364 74363 0 2466084 7176 S+ ttys003 0:00.06 -bash
例如使用 </code> 的解决方案是 </p>
<pre><code>ps -o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command -p $(ps -o pid,comm | grep "" | cut -f1 -d' ')
我需要使用 ps 个具有键入名称的进程来打印 UID PID PPID PRI NI VSZ RSS STAT TTY TIME 列。
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time | grep >
cat
echo "enter pid of process to kill:"
read pid
kill -9 $pid
但是当我使用带有参数 $2 = bash 的命令时它什么也不打印(这个过程存在)
更新
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command | grep | awk '{print ,,,,,,,,}' >
cat
echo "enter pid of process to kill:"
read pid
kill -9 $pid
这对我有用,但恕我直言,实际上这个解决方案并不是最好的。我使用 shadow column 命令,在 grep 名称之后打印所有列,不包括命令。
您始终可以使用两阶段方法。
1.) 找到想要的 PID
。为此使用最简单的 ps
ps -o pid,comm | grep "" | cut -f1 -d' '
ps -o pid,comm
只打印两列,如:
67676 -bash
71548 -bash
71995 -bash
72219 man
72220 sh
72221 sh
72225 sh
72227 /usr/bin/less
74364 -bash
所以 grepping 很容易(而且 无噪音,没有误触发)。 cut
只是提取 PID。例如。
ps -o pid,comm | grep bash | cut -f1 -d' '
打印
67676
71548
71995
74364
2.) 现在你可以使用 -p
标志将找到的 PIDs
提供给另一个 ps
,所以完整的命令是:
ps -o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command -p $(ps -o pid,comm | grep bash | cut -f1 -d' ')
产出
UID PID PPID NI VSZ RSS STAT TTY TIME COMMAND
501 67676 67675 0 2499876 7212 S+ ttys000 0:00.04 -bash
501 71548 71547 0 2500900 8080 S ttys001 0:01.81 -bash
501 71995 71994 0 2457892 3616 S ttys002 0:00.04 -bash
501 74364 74363 0 2466084 7176 S+ ttys003 0:00.06 -bash
例如使用 </code> 的解决方案是 </p>
<pre><code>ps -o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command -p $(ps -o pid,comm | grep "" | cut -f1 -d' ')