修改linux系统history命令的条数和格式
原生的history命令,只能看到输入的命令历史,看不到什么时候,谁输入的。
特此在网上找到修改history命令的办法:
1.用root用户打开系统环境变量设置的文件
vim /etc/profile
2.在最下面,插入下面几行代码
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTTIMEFORMAT="%F %T `whoami` ${USER_IP} "
export HISTSIZE=10000 #history 命令的记录数量
export HISTFILESIZE=10000 #记录文件的行数
export HISTIGNORE='ls*:ll' #忽略的命令
export PROMPT_COMMAND='if [ "$(history 1)" != "$(tail -n 1 /var/log/.myhistory 2>/dev/null)" ]; then history 1 >> /var/log/.myhistory; fi' #将命令记录输出到文本中
3.让环境变量生效
source /etc/profile
4.创建日志文件并赋予其他用户读写权限
touch /var/log/.myhistory
chmod 666 /var/log/.myhistory
以后再输入history命令,就会变成下面的样子了,有时间,有用户,有ip,而且保存最近1万条记录。
哼哼,再也不怕背锅了
这里解释下,为什么我要将命令单独记录到一个文件中,而不是直接用history命令查看呢?
因为history命令只能看到本用户下输入的命令,所以其实那个who am i没什么用。ip显示的也是当前用户登录的ip,你换个机器,history命令里记录的ip也会变,所以ip的历史也是假的。
所以需要将历史记录输出到文本中,这种方式改完后,/var/log/.myhistory文件中才是真正意义上的所有用户命令历史。
© 版权声明
文章版权归作者所有,欢迎转载,但必须给出原文链接,否则保留追究法律责任的权利
THE END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?