Linux必备的小技巧——查看历史操作和屏显信息

article/2025/10/18 23:57:31

通常在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 demoscriptreplay -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 ]; thenexit
fi

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

 

 

 

 

 


http://chatgpt.dhexx.cn/article/md6EHMo4.shtml

相关文章

linux下安装CUDA和cudnn

linux下安装CUDA和cudnn 2、安装CUDA10.1 在CUDA官网选择系统对应的版本下载CUDA 我的系统是Ubuntu18.04 64位,我选择下载最新版本的CUDA10.1: 输入以下命令安装CUDA sudo sh cuda_10.1.105_418.39_linux.run 显卡驱动已在上面安装了,这里一…

Linux和其他操作系统的区别

前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 为什么用Liunx系统 Linux和windows的区别Linux和Unix操作系统的区别 Linux和windows的区别 1.免费与收费 Windows 平台: Window…

linux下如何查看驱动?(CH341)

文章目录 背景命令 背景 Linux下有时候我们在接上串口后,在/dev/下找不到ttyUSB*,这时我们需要查看下本机是否安装了相应的驱动。 命令 lsmod | grep ch341 如上图,便是表示目前pc中存在ch341驱动,无需重新安装。

linux怎么查询数据库端口,linux下怎么查看数据库端口

满意答案 ai_yuming 2017.08.26 采纳率:50% 等级:8 已帮助:759人 如何查看mysql 默认端口号和修改端口号 1. 登录mysql [root@test /]# mysql -u root -p Enter password: 2. 使用命令show global variables like port;查看端口号 mysql> show global variables like …

Linux的历史背景和基本指令

众所周知,Linux和大家所熟悉的Windows一样,也是一款操作系统,不同的更多是在于Windows是闭源的,而Linux是开源的。现代生活中的比如飞机的控制系统、银行的系统、手机的系统等等,都和Linux操作系统相关,所以…

Linux安装围棋AI(q5go和katago)

最近一个多月开始学习围棋,因为平时常用的系统是Linux,所以想要在Linux上安装一个围棋AI,可以借助AI分析棋局。经过一番查找,决定使用q5go和katago,安装还是挺复杂的,特地记录(/摸鱼&#xff09…

Linux 常用命令 查看 CPU 信息

强力推荐-不要错过,万一能帮助到自己呢? 推荐一个网站,关于人工智能教程,教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里…

Linux命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

查看内存使用情况 使用命令: free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数used:已使用内存数free:空闲内存数shared&…

Ai-WB2系列模组linux开发环境搭建

文章目录 一、Ubuntu安装1.1 安装VMware Workstation Pro1.2 安装Ubuntu 二、编译三、烧录固件到设备3.1 方式一:用命令行烧录3.2 方式二:用可视化软件烧录(windows) 三、自定义工程如何修改Makefile四、开发资料 一、Ubuntu安装 …

用js动态显示当前时间

用setTimeout动态显示当前时间&#xff1a; <div class"showTime"></div> <script>var t null;tsetTimeout(time,1000);//开始运行function time(){clearTimeout(t);//清除定时器dt new Date();var y dt.getFullYear();var mt dt.getMonth()1…

js 获取当前gmt时间_javascript怎么获取当前时间?

javascript怎么获取当前时间&#xff1f;下面本篇文章就来给大家介绍一下使用javascript获取当前时间的方法&#xff0c;希望对大家有所帮助。 在JavaScript中可以使用Date对象中的Date()方法来获取当前时间。Date 对象用于处理日期和时间&#xff0c;Date()方法可返回当天的日…

【JavaScript】动态显示当前时间

可以实现动态显示当前时间&#xff0c;年月日时分秒星期几等&#xff0c;用12小时制表示&#xff0c;并能根据时间显示am&#xff08;上午&#xff09;&#xff0c;pm&#xff08;下午&#xff09;。 文章目录 一、基础知识二、动态显示系统当前时间1.代码2.展现效果 一、基础知…

用js显示当前时间

目录 以下是我全部代码 其中&#xff0c;关键代码是js 效果如图所示 关键代码解释如下 setInterval: getElementById: innerHTML: 在初步学习js时&#xff0c;可能会有一些朋友能用上js来显示时间&#xff0c;因此我在此提供一种方法供大家参考。 以下是我全部代码 <…

php js动态显示系统时间,基于javascript实现动态显示当前系统时间

本文实例讲解了javascript实现动态显示当前系统时间的详细代码&#xff0c;具体内容如下 (1)时间日期信息&#xff0c;应该在一个 中来显示 (2)定时器&#xff1a;每隔一秒再次访问系统时间&#xff0c;window对象的setTimeout() (3)时钟显示的时机(事件)&#xff1a;当网页加载…

原生JavaScript实现显示当前系统时间

1.一个html页面实现&#xff0c;js写在html里面 clock.html <!DOCTYPE html> <html> <head><meta charset"UTF‐8"><title>clock</title><style type"text/css">#clock {color: green;font‐size: 30px;}</…

Javascript获得系统当前时间

** 获取系统当前时间 ** 一、步骤与注意事项 首先使用new Date创建时间对象&#xff1b;&#xff08;定义一个Date对象的time&#xff09;分别从time中获取当前年、月、日、分、秒、星期几特别注意&#xff1a;月是从0开始的&#xff08;即1月是0&#xff09; 二、代码实现…

JavaScript动态显示当前时间

前端写项目时, 有时会需要获取当前时间, 虽然使用度不高, 难免有需要的时候. 下面整理获取当前时间代码思路 使用 new Date() 获取 当前时间的时间戳 getFullYear(): 时间戳转换的年份getMonth() 1: 月份getDate(): 日期getHours()getMinutes()getSeconds() 根据需要获取…

JavaScript 当前时间显示(js)

先设置一个空的div <div id"app"></div> js&#xff1a; <script>let _appdocument.getElementById("app");//计时调用let idsetInterval("test()",1000);function test() {let date new Date(); //当前时间let year dat…

大数据应用及其解决方案(完整版)

目录 1、大数据概述 1.1. 概述 1.2. 大数据定义 1.3. 大数据技术发展 2、大数据应用 2.1. 大数据应用阐述 2.2. 大数据应用架构 2.3. 大数据行业应用 2.3.1. 医疗行业 2.3.2. 能源行业 2.3.3. 通信行业 2.3.4. 零售业 3、大数据解决方案 3.1. 大数据技术组成 3.…

干货!大话EXT4文件系统完整版

一&#xff1a;VFS 我们知道SSD是一场存储革命&#xff0c;设计和制造一个好的SSD固然重要&#xff0c;但如何正确使用以充分发挥SSD性能同样重要。SSD内在的并行性和先擦再写的特性决定了它不同于机械硬盘简单的LBA和存储块一一对应&#xff0c;要充分挖掘SSD的并行性&#xf…