我想获取执行命令的用户的名称(例如cat
)。
fc -l
将提供一个列表,其中包含当前用户执行的最新命令,但有没有办法找出所有用户的历史记录?我阅读了手册,但找不到有用的东西
你知道其他可以完成这项工作的命令吗?我也试过w
了who
我找到了这个解决方案:超级用户将在 .bash_history 中的“home”中搜索每个目录,并在该文件上为该命令创建一个 grep。它会起作用,但这是最优的吗?
使用awk =)
awk -v monitoredcmd=cat '
$1~"^#[0-9]{10,}\s*$"{
sub(/#/,"")
tmpdate=$1
}
$1==monitoredcmd{
"date -d @"tmpdate | getline date
close("date -d @"tmpdate)
print "command [" $0 "] by",
gensub(/\/home\/([^\/]+).*/, "\\1", "", FILENAME),
at,
date
}
' /home/*/.bash_history
command [cat file.txt] by sputnick mer. févr. 13 15:34:44 CET 2013
command [cat l.py] by sputnick mer. févr. 13 15:45:38 CET 2013
command [cat foobar.pl] by marc mer. févr. 13 15:47:54 CET 2013