如何通过 'wmctl' 和 'ps' 获得 X 应用程序的完整命令?
how to get a complete command of X apps via 'wmctl' and 'ps'?
我正在研究 a program,它可以查询 运行ning X 应用程序,保存 运行ning 应用程序的所有命令,稍后它们会重新打开它们。
我遇到了一个问题。 wmctctl可以查询Onlyoffice的pid,比如pid是123。然后运行ps -ef -q 123
,我看到CMD是./DesktopEditors
应该是无效命令,因为./one_command
只能在特殊文件夹中工作 include 文件 one_command.
我可以通过 运行ning ps -ef -q $(pgrep -P 123)
.
得到一个完整的命令
有没有直接的方法通过wmctl
和ps
获得Onlyoffice的完整命令?
如果有更好的方法获取X应用程序的所有命令,请告诉我。谢谢。
我建议使用 ps -h -e -o pid,args
命令和 grep
这应该提供完整的命令路径及其参数和选项。
例如,查找所有 运行 java 程序及其参数(可能很广泛):
ps -eo pid,args | grep java
在你的情况下,我建议使用一个小的 awk 脚本,它在当前行中查找作为第三个输入字段给出的 pid:
wmctrl -l -p|awk '{system("ps -h --pid "" -o args")}'
示例输出
nautilus-desktop --force
/usr/libexec/gnome-terminal-server
/usr/libexec/gnome-terminal-server
更新
正在将当前目录 ./
转换为完整路径。
假设 ./
代表当前工作目录。
添加以下管道。
wmctrl -l -p|awk '{system("ps -h --pid "" -o args")}'|sed "s|^\./|$PWD/|"
在您的计算机中找到脚本或程序 DesktopEditors
,使用 find / -name "DesktopEditors"
。
但我认为,如果您要对需要某种浏览器模拟器的基于 Web 的应用程序进行逆向工程,我认为这是无用的。
我正在研究 a program,它可以查询 运行ning X 应用程序,保存 运行ning 应用程序的所有命令,稍后它们会重新打开它们。
我遇到了一个问题。 wmctctl可以查询Onlyoffice的pid,比如pid是123。然后运行ps -ef -q 123
,我看到CMD是./DesktopEditors
应该是无效命令,因为./one_command
只能在特殊文件夹中工作 include 文件 one_command.
我可以通过 运行ning ps -ef -q $(pgrep -P 123)
.
有没有直接的方法通过wmctl
和ps
获得Onlyoffice的完整命令?
如果有更好的方法获取X应用程序的所有命令,请告诉我。谢谢。
我建议使用 ps -h -e -o pid,args
命令和 grep
这应该提供完整的命令路径及其参数和选项。
例如,查找所有 运行 java 程序及其参数(可能很广泛):
ps -eo pid,args | grep java
在你的情况下,我建议使用一个小的 awk 脚本,它在当前行中查找作为第三个输入字段给出的 pid:
wmctrl -l -p|awk '{system("ps -h --pid "" -o args")}'
示例输出
nautilus-desktop --force
/usr/libexec/gnome-terminal-server
/usr/libexec/gnome-terminal-server
更新
正在将当前目录 ./
转换为完整路径。
假设 ./
代表当前工作目录。
添加以下管道。
wmctrl -l -p|awk '{system("ps -h --pid "" -o args")}'|sed "s|^\./|$PWD/|"
在您的计算机中找到脚本或程序 DesktopEditors
,使用 find / -name "DesktopEditors"
。
但我认为,如果您要对需要某种浏览器模拟器的基于 Web 的应用程序进行逆向工程,我认为这是无用的。