Linux必备的小技巧

您所在的位置:网站首页 如何查看以前的软件 Linux必备的小技巧

Linux必备的小技巧

2024-07-11 05:51| 来源: 网络整理| 查看: 265

通常在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 demo

script其实也有类似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

参考了:https://mp.weixin.qq.com/s?timestamp=1562287017&src=3&ver=1&signature=lpConCv5A1HmW8WGApfR2GOkpRqUxGbg8PS-741zr7hVHahGnnMLS3XZiMXlmL6h655oN7RQYynw3udLEOBOq3Q5VkWD1RLUo7e*1jtQT0pLxYIimVPRFO6uDHcQ9JxCgtkD88xVD5FcxmRaHC9cewE6ezHwPyE1yXfaAPvf4y8=

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3