首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pstree -a选项中,命令行参数意味着什么?

在pstree -a选项中,命令行参数意味着什么?
EN

Ask Ubuntu用户
提问于 2019-01-22 04:28:41
回答 2查看 194关注 0票数 1

当阅读“结婚手册”时

代码语言:javascript
复制
 -a     Show command line arguments.  If the command line of a process is swapped  out,  that  process  is
          shown in parentheses.  -a implicitly disables compaction for processes but not threads.

我对“命令行参数”很困惑

比较输出

代码语言:javascript
复制
me@alpha:~$ pstree |head -5
systemd-+-ModemManager---2*[{ModemManager}]
        |-NetworkManager-+-dhclient
        |                `-2*[{NetworkManager}]
        |-accounts-daemon---2*[{accounts-daemon}]
        |-acpid
me@alpha:~$ pstree -a | head -5
systemd splash
  |-ModemManager --filter-policy=strict
  |   `-2*[{ModemManager}]
  |-NetworkManager --no-daemon
  |   |-dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf...

命令行由函数、选项和参数组成。

假设-a显示命令行参数,这意味着其他人只显示函数和选项,但事实并非如此。

命令行参数在这里意味着什么?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2019-01-22 04:46:28

通常,命令行参数是指运行中的程序名称之后的所有参数.例如,在命令pstree | head -5中,head有一个参数,即-5

pstree输出中,树由pid (进程ID)或init的根组成,然后是子线程树。例如,在输出中,NetworkManager是运行一个dhclient和2个NetworkManager线程的父进程。

添加-a标志还会打印每个进程或线程启动时使用的参数。例如,在您的输出中,我们可以看到NetworkManager是用一个参数--no-daemon启动的,dhclient也是用几个参数启动的。

这就是所有手册页的意思是“显示命令行参数”。

票数 1
EN

Ask Ubuntu用户

发布于 2019-01-22 04:46:38

参数是所有不是命令名本身的内容。例如,在

代码语言:javascript
复制
dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf

这些争论都是

代码语言:javascript
复制
-d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf

这些值是C argv数组中在程序启动时给出的位置1和以后的值,或者是sys.argv[1..]在Python中中的值。

pstree手册所暗示的是,不使用 -a it的<#>只列出了每个程序的名称,而没有列出命令行中给出的任何其他部分。这就是您的两个示例所显示的:在第一个没有ModemManager的版本中列出了-a,而在-a版本中列出了ModemManager --filter-policy=strict。它不在乎“参数”是以-开头还是以它们所代表的内容开头。

有时程序在文档中区分“选项”、“标志”和“参数”,甚至区分“命令”,但对于系统来说,它们都只是参数。程序会将它们全部分配到一起,并自行决定如何处理它们,哪些属于每个类别。帮助一个人思考他们正在做的事情是有用的,但是它是纯粹的信息而不是强制的。因为pstree必须显示每个程序,所以它不知道他们如何看待自己的命令行,而且必须是非常通用的。

实际上,命令行的结构是

代码语言:javascript
复制
command-name argument-1 argument-2 argument-3...

这些参数可以是-x,也可以是子命令或路径名,在command-name看到它们并决定要做什么之前,它们都是相同的。pstree以原始的形式看到它们,并在您要求时将它们报告给您。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1111838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档