Linux 使用GUI时,如何确定发出的命令?
我在Linux机器上工作(特别是运行openSUSE 13.1 w/KDE),我想确定当我使用应用程序的GUI做一些事情时,在后台实际发出了哪些命令 我的问题与下面一个没有得到答复的问题非常相似: 如果它有帮助的话,我正在尝试完成的具体任务是找出KDE的Dolphin实用程序中向垃圾箱发送文件的命令行等价物。我想在my.bashrc中为这个功能创建一个别名,这样我就有了一个比rm更“温和”的替代品。但我宁愿知道我更一般问题的答案,这样我将来也可以做类似的事情Linux 使用GUI时,如何确定发出的命令?,linux,unix,user-interface,background,command,Linux,Unix,User Interface,Background,Command,我在Linux机器上工作(特别是运行openSUSE 13.1 w/KDE),我想确定当我使用应用程序的GUI做一些事情时,在后台实际发出了哪些命令 我的问题与下面一个没有得到答复的问题非常相似: 如果它有帮助的话,我正在尝试完成的具体任务是找出KDE的Dolphin实用程序中向垃圾箱发送文件的命令行等价物。我想在my.bashrc中为这个功能创建一个别名,这样我就有了一个比rm更“温和”的替代品。但我宁愿知道我更一般问题的答案,这样我将来也可以做类似的事情 我天真的猜测是某个地方可能存在一个
我天真的猜测是某个地方可能存在一个日志文件。然后,我可以用GUI执行一项任务,然后跟踪日志文件,看看我刚才在GUI中执行的操作的底层命令是什么。但是,据我所知,不存在此类日志。要将文件
foo
移动到垃圾箱,请尝试
mv foo $HOME/Trash/
因此,您可以在.bashrc
function movetotrash() {
mv $* $HOME/Trash/
}
另外,大多数GUI应用程序都没有日志文件。它们通常是自由软件(并且使用自由软件库),因此您可以研究它们的源代码并加以改进。尝试与他们的社区互动(并使用我评论的strace
)
顺便说一句,并不是每个GUI应用程序都在使用命令。有些是(例如IDE确实是分叉命令,如
gcc
),但其他只是直接执行系统调用(可能文件管理器不会分叉mv
,而只是复制内容或调用系统调用)。您可以尝试使用strace
我查看了strace,它肯定会揭示GUI下面发生的事情,因此,它确实为这个问题提供了一些线索。但是,我相信这些系统调用都是C语言的——我有没有办法把这些C语言语句转换成命令行?