我在 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/