通常在linux查看历史操作信息,都是查看日志文件,Linux的日志文件一般都保存在/var/log文件夹下:
     
   
用如下命令即可查看:
cat     filename           查看日志,会打开整个文件,直接跑到最后面
tac     filename           查看日志,会打开整个文件,倒序显示,不常用
more  filename           查看日志,可以上下翻页,上下行移动显示
less    filename           查看日志,和more命令类似,但不能往回翻页
tail   -f   filename         查看文件,实时显示最后一页
vim        filename           查看或编辑文件
将实时日志打印到文件newlog.log内,方便查找
 执行命令:   tail  -f  nohup.out   >newlog.log
备注:newlog.log文件可以不存在,命令执行时会自动新建查看日志文件的确可以检查操作Linux过程中发生的错误,但是有时候,我们更想直观地查看屏显信息。
查看屏显信息可以使用tee指令:
tee [-ai][--help][--version][文件...]
-a或--append  附加到既有文件的后面,而非覆盖它.
-i或--ignore-interrupts  忽略中断信号。
--help  在线帮助。
--version  显示版本信息。
例如:
tee -a ./screen.log   #把屏显的信息保存到screen.log文件中
tee也可以实现同时向多个文件复制信息:
tee file1 file2                   #在两个文件中复制内容 
单独使用tee的时候,会在命令下面出现待输入的位置,这样就无法输入其他命令。一般是这么使用,如要保存ll输出的屏显:
ll | tee -a ./screen.log
     
   
查看输出结果:
     
   
但是使用tee只能看到命令操作后输出的结果,实在是很鸡肋,没啥大用。要是可以查看输入的命令就要方便很多了。
    要同时记录输入的命令和命令执行的输出屏显,可以使用
    
     
      script
     
    
    和
    
     
      scriptreplay
     
    
    
     ,
    
    为了可以实现按照时间顺序输出命令的执行屏显,script需要保存两个文件:一个是记录时间线,一个是记录屏显。然后用scriptreplay复现记录的命令执行过程,还可以实现慢速播放和加速播放。具体实现如下:
   
script的操作:
 script -t 2>time.file -a scriptfile
    执行完这个命令,接下来的任何操作都会被记录到
    
     time.file、scriptfile两个文件里,这两个文件可以自动新建。
    
    
    
     time.file用来记录时间线;
    
    
     scriptfile
    
    是命令执行记录文件,记录下执行是哪些命令。
   
    加上
    
     -q, - -quiet
    
    参数可以使script命令以静默模式运行,不显示script启动和exit的命令,用户可以完全察觉不到在录屏。
    
    像这样:
   
script -q -t 2>time.file -a scriptfile
    要停下来,只用按下按下组合键
    
     Ctrl+D
    
    结束录制,执行
    
     exit
    
    命令也行。
   
script常用的参数
-t     指明输出录制的时间数据
-f         如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示
-a         输出录制的文件,在现有内容上追加新的内容
-q         可以使script命令以静默模式运行然后用scriptreplay来播放录制的过程:两个文件,第一个是时间线文件,第二个是命令文件:
scriptreplay time.file scriptfile
    添加这个参数
    
     -d, –divisor number
    
    可以调整播放速度的倍数(可以是小数:放慢)。
   
如果需要实现实时显示操作过程,可以使用 -f(–flush)刷新缓存。
script -f demo
scriptreplay -f demo   
#如果不能用scriptreplay -f demo的话,可以用
tail -f demoscript其实也有类似tee的功能:只记录当面命令的执行结果:
script -qa "file.out" -c "/root/hello.sh" 
#把/root/hello.sh执行的结果保存到file.out
    使用开机静默启动的script甚至可以实现
    
     监控用户登陆的操作与实时监控。
    
   
mkdir -p /home/log/user_record
vim ~/.profile在配置文件的末尾加上:
# 添加登陆时自动记录
script -t -f -q 2>/home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
   exit
fi 
