【发布时间】:2015-06-03 04:23:07
【问题描述】:
有没有办法捕获 GUI 程序执行的命令? 甚至是简单的 bash 脚本? 类似于 bash 中的“历史”命令,但在整个系统上都可用。
【问题讨论】:
-
您可以使用 strace 获取特定程序执行的系统调用。
有没有办法捕获 GUI 程序执行的命令? 甚至是简单的 bash 脚本? 类似于 bash 中的“历史”命令,但在整个系统上都可用。
【问题讨论】:
shell(例如 bash)具有 -x 选项,您可以看到由特定脚本执行的所有命令。运行sh -x <your_script 并查看输出。您还可以通过在脚本中发出 set +x、set -x 来临时打开/关闭此日志记录。
关于 GUI 程序,答案取决于您的需求以及您想要记录的活动类型。您可以按照 cmets 中的建议使用 strace,并过滤掉 exec* 呼叫。但您可能会假设其他情况,因为 GUI 程序的大多数活动都是在不执行外部程序的情况下执行的。
【讨论】:
ltrace 来跟踪library 调用,但最好只查看简单的示例和来源。看看wmctrl,它本质上是一个从命令行管理窗口的工具,除了处理命令行参数等常规应用程序之外,哪些来源 (main.c) 适合纯 X11 调用