我有一个已编写的脚本,其中包含此行PID = ps -e -o user:20,pid,cmd
有人可以解释一下这条线的含义吗?我对用户有点困惑:20部分
谢谢!
答案 0 :(得分:2)
ps
是一个命令名,用于显示系统当前中运行的进程。
-e
是"短"选项,这意味着应列出所有进程。
-o user:20,pid,cmd
是一个选项,用于设置要在屏幕上打印的行的预期格式,即我们希望第一列包含填充为20个字符的用户名(谁拥有进程),第二列显示进程ID,第三列包含用于启动进程的命令名。就是这样。
此外,您只需尝试在终端中自行运行:ps -e -o user:20,pid,cmd
,看看会发生什么。
答案 1 :(得分:1)
来自ps
的手册页:
-o format
User-defined format. format is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify
individual output columns. The recognized keywords are described in the STANDARD FORMAT SPECIFIERS section below. Headers may be renamed (ps
-o pid,ruser=RealUser -o comm=Command) as desired. If all column headers are empty (ps -o pid= -o comm=) then the header line will not be
output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (ps -o pid,wchan=WIDE-
WCHAN-COLUMN -o comm). Explicit width control (ps opid,wchan:42,cmd) is offered too. The behavior of ps -o pid=X,comm=Y varies with
personality; output may be one column named "X,comm=Y" or two columns named "X" and "Y". Use multiple -o options when in doubt. Use the
PS_FORMAT environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or
BSD columns.
Explicit width control (ps opid,wchan:42,cmd) is offered too.
因此,您将获得一个带有20个字符宽度的user
列。
答案 2 :(得分:0)
ps - 此命令报告当前进程的快照。
-e ,此选项有助于选择所有进程。对-A的指示。
-o ,此选项有助于指定用户定义的格式。
用户:20 , 这将有助于格式化ps命令的输出。 user:20 将在列之间添加一些额外的20个空格字符。下面的示例将帮助您找到差异。
jdeveloper@jdeveloper ~ $ ps -e -o user:20,pid
USER PID
root 2926
jdeveloper 2948
root 3255
root 3570
root 3802
jdeveloper 3825
jdeveloper 3860
现在,让我们尝试使用10个字符空间填充作为响应。
jdeveloper@jdeveloper ~ $ ps -e -o user:10,pid
USER PID
root 2926
jdeveloper 2948
root 3255
root 3570
root 3802
jdeveloper 3825
jdeveloper 3863
使用man命令查找有关ps命令的更多信息。尝试
jdeveloper@jdeveloper ~ $ man ps
希望它会对你有所帮助。