获取linux中的最后一个(最新)进程pid

adv*_*sad 3 unix linux terminal command

我想在linux中获取最后/最新进程pid.任何人都建议我找到它的命令?但我不知道最后一个流程是从哪个开始的.

bou*_*gui 6

如果你想要最近执行的后台命令的进程ID,你可以使用!变量.例如:

 > gvim text.txt &
 > echo $!
 2842
Run Code Online (Sandbox Code Playgroud)


mei*_*luk 5

更新:感谢William提供关于awk的提示.
前提条件:该过程仍在运行.

我不是UNIX专家,但我想到了以下方法:

ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print $2}'
Run Code Online (Sandbox Code Playgroud)

ps将列出所有进程,我们将按start_time对它们进行排序.之后我们将从输出的最后一行[0]取第四个,awk将返回第二个字段中找到的pid.

root@unix ~ % sleep 10 &
[1] 3009
root@unix ~ % ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print $2 " " $11}'
3009 sleep
root@unix ~ %
Run Code Online (Sandbox Code Playgroud)

[0]第四行,因为我的命令行中有三个管道命令.