这个著名的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