linux - 使用 GUI 时如何确定发出的命令?

标签 linux unix user-interface background command

我在 Linux 机器上工作(特别是运行 openSUSE 13.1 w/KDE),我想确定当我使用应用程序的 GUI 执行某些操作时,后台实际发出了哪些命令。

我的问题与以下问题非常相似,但没有得到答复: https://stackoverflow.com/questions/20930239/how-can-i-see-the-commands-being-passed-in-backend-of-a-gui-application

如果有帮助的话,我要完成的具体任务是弄清楚在 KDE 的 Dolphin 实用程序中将文件发送到回收站的等效命令行是什么。我想在我的 .bashrc 中为这个功能创建一个别名,这样我就有一个“更温和”的 rm 替代品。但我宁愿知道更笼统的问题的答案,以便我将来可以做类似的事情。

我天真的猜测某处可能存在日志文件。然后我可以使用 GUI 执行任务,然后跟踪该日志文件以查看我刚刚在 GUI 中执行的操作的底层命令是什么。然而,据我所知,不存在这样的日志。

最佳答案

要将文件 foo 移至垃圾箱,请尝试

 mv foo $HOME/Trash/

所以你可以在你的 .bashrc 中使它成为一个 shell 函数

 function movetotrash() {
   mv $* $HOME/Trash/
 }

据我所知,大多数 GUI 应用程序没有日志文件。它们通常是免费软件(并使用免费软件库),因此您可以研究它们的源代码并对其进行改进。尝试与他们的社区互动(并像我评论的那样使用 strace)

顺便说一句,并不是每个 GUI 应用程序都使用命令。有些是(例如 IDE 确实 fork 命令,如 gcc),但其他人只是直接执行系统调用(可能文件管理器不会 fork mv,而只是复制内容或调用rename(2) 系统调用)。

关于linux - 使用 GUI 时如何确定发出的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22430410/

相关文章:

java - 如何知道您在 JComboBox 中选择的内容

java - 如何使GUI客户端在java中上传文件

linux - 从命令行向程序发送键盘输入

linux - 蒙神 : symbol lookup error: mongod: undefined symbol: _ZN4YAML6detail9node_data12empty_scalarB5cxx11

linux - 获取shell脚本的最后一个参数

windows - 自动从 Unix 服务器下载日志文件到 Windows 机器

php - UTF-8贯穿始终

c - 命名和未命名信号量的用法

python - gnu-binutils-strings utf-8 而不是 utf-16 或 ascii

java - 读《 Swing 》是否值得?