所有命令/操作的详细历史记录(也在 GUI 中)

所有命令/操作的详细历史记录(也在 GUI 中)

这个著名的history命令向我们显示了最近执行的命令的列表。如果我们设置HISTTIMEFORMAT变量我们还可以看到什么时候执行的命令。我想要一个更通用的版本,它还记录一些 GUI 操作,例如打开/关闭/等程序。

问:是否有类似的命令可以查看“所有”用户操作(希望带有时间戳)? (当然不是全部。不是“将鼠标从这里移到那里”之类的东西。)

但大致上是这样的:

18.06.2015 09:30 started Firefox
18.06.2015 09:32 started Rhythmbox
18.06.2015 09:35 opened someText.pdf in evince
18.06.2015 09:39 closed Firefox
18.06.2015 09:40 suspended session

会超级酷的。尽管其他类型的表示也可以。如果它甚至可以告诉某些应用程序何时获得焦点,那就太棒了。

一些想法:也许......

  • ...桌面环境有一个扩展(此处使用 gnome)
  • ...一些桌面环境直接支持此功能(如果此功能可用,我会考虑切换)
  • ...该命令有一些标志ps可以获取一些类似的行为或至少获取部分信息
  • ...也许可以聚合来自命令等的信息history, w, ps

注意:我希望它能够监视我自己的活动,并且我愿意为其编写一个小脚本。但例如什么是合适的ps-flags 以及我应该做什么grep

答案1

您可以使用活动日志来跟踪打开的文件。但不确定是否存在可以跟踪打开的应用程序的东西。

这可能是一个狡猾且劳动密集型的解决方案,但您可以使用桌面图标来使用脚本运行应用程序。在脚本中,您可以让它在日志文件中添加一行。

就像是...

#!/bin/sh
echo `date` "Firefox Started" >> /home/username/logs/apps-activity.log
firefox
echo `date` "Firefox Stopped" >> /home/username/logs/apps-activity.log

抱歉,我的 bash 技能还相当初级,但我想你明白了。这不是一个很好的解决方案,但也许它会给你一些想法。就使用 ps 而言,每个应用程序可能涉及相当多的进程,因此我认为要使其正常工作会相当复杂。

如果我们使用 firefox 示例,当我使用 ps 命令时,我会运行 2 个进程。例如。

$ ps aux | grep firefo[x]
username     5302 11.2  3.5 1391936 564016 ?      Sl   Jul08 553:26 /usr/bin/firefox.real
username    15351  0.8  0.2 482268 47040 ?        Sl   Jul09  29:21 /opt/firefox/plugin-container /usr/lib/flashplugin-nonfree/libflashplayer.so -greomni /opt/firefox/omni.ja -appomni /opt/firefox/browser/omni.ja -appdir /opt/firefox/browser 5302 true plugin

相关内容