9.3.3 记录用户操作:history
Linux,准确地说是Shell,会记录用户的每一条命令。通过history命令,用户可以看到自己曾经执行的操作。
$ history
16 cd /media/fishbox/software/
17 ls
18 sudo tar zxvf ies4linux-latest.tar.gz
19 cd ies4linux-2.99.0.1/
20 ls
21 vi README
22 ./ies4linux
...
%注意:history命令仅在BASH中适用。
history会列出所有使用过的命令并加以编号。这些信息被存储在用户主目录的.bash_history文件中,这个文件默认情况下可以存储1000条命令记录。当然,一次列出那么多命令除了让人迷茫外,没有其他什么用途。为此,可以指定让history列出最近几次输入的命令。
$ history 10 ##列出最近使用的10条命令
508 cd /home/john/
509 vi .bash_history
510 sudo vi .bash_history
511 cd
512 ls -al
513 ls -al | grep bash_history
514 history
515 history | more
516 vi .bash_history
517 history 10
但是,history只能列出当前用户的操作记录。对于管理员而言,有时候需要查看其他用户的操作记录,此时可以读取该用户主目录下的.bash_history文件。现在看看john都干了些什么。
$ cd /home/john/ ##进入john的主目录
$ sudo cat .bash_history ##查看.bash_history文件
cd /home/lewis/
ls
cd c_class/
ls
cd ..
ls
cd c_class/
./a.out
exit
%注意:.bash_history这个文件对于其他受限用户是不可读的,这也正是为什么要使用sudo的原因。