1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > linux基本功之历史记录history命令实战

linux基本功之历史记录history命令实战

时间:2023-11-13 01:38:28

相关推荐

linux基本功之历史记录history命令实战

文章目录

前言一、history作用二、history常用语法1. 常用用法2. 常用参数3. 常用案例举例3.1 获取历史记录的最新两条记录3.2 清除全部历史记录3.3 删除某一行数据 4. 关于history的配置文件5. 隐藏历史记录实战6. linux命令审计6.1 显示历史记录的时间6.2 控制历史记录的总数 总结

前言

💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。

💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不休息,,风里雨里节日里我们都在机房等着你

💓 知识最重要的是记忆,反复练习才能有所成就

💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀

💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

大家好,我是沐风晓月,平时除了吃饭,睡觉,就是学习哦,要一起成长的小伙伴,记得一键三连哦。

今天我们一起来看看linux中一个最重要的命令:历史记录命令history,以及一些常用的快捷键,不得不说,快捷键用起来超级顺畅。

😄

当然我们平时敲的命令都会被历史记录,保存下来,我们一起来学习下吧

一、history作用

history有两个作用:

用于显示历史记录和执行过的指令命令当登录shell或者是退出的时候会自动进行读取和存储

二、history常用语法

1. 常用用法

我们可以使用help来查看参数和用法

[root@mufengxiaoyue ~]# help historyhistory: history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]显示或操纵历史列表。带行号显示历史列表,将每个被修改的条目加上前缀 `*'。参数 N 会仅列出最后的 N 个条目。选项:-c删除所有条目从而清空历史列表。-d 偏移量从指定位置删除历史列表。-a将当前绘画的历史行追加到历史文件中-n从历史文件中读取所有未被读取的行-r读取历史文件并将内容追加到历史列表中中-w将当前历史写入到历史文件中并追加到历史列表中-p对每一个 ARG 参数展开历史并显示结果而不存储到历史列表中-s以单条记录追加 ARG 到历史列表中如果给定了 FILENAME 文件名,则它将被作为历史文件。否则如果 $HISTFILE 变量有值的话使用之,不然使用 ~/.bash_history 文件。如果 $HISTTIMEFORMAT 变量被设定并且不为空,它的值会被用于strftime(3) 的格式字符串来打印与每一个显示的历史条目想关联的时间戳,否则不打印时间戳。退出状态:返回成功,除非使用了无效的选项或者发生错误。

可以看到我们执行history只需要后面加上选项和参数即可:

# history (选项)(参数)

2. 常用参数

日常工作中我们常用的参数有以下几个:

3. 常用案例举例

3.1 获取历史记录的最新两条记录

[root@mufenggrow ~]# history 29 cd10 history 2

这种方式获取的最新两条记录,也会把刚刚执行的命令算上了,所以如果我们要获取最新执行的两条命令,可以使用n+1

比如我们要查询两条,那就用 history 3 来获取。

3.2 清除全部历史记录

-c 参数主要用来清空所有历史记录

[root@mufenggrow ~]# history -c[root@mufenggrow ~]# history1 history[root@mufenggrow ~]#

这种方式类似 与clear,相当于幸亏显示,并不会把文件中的历史记录删除,如果要真正的历史记录,需要用本文中第4条关于history的配置文件。

3.3 删除某一行数据

-d 参数,可以删除某行数据。

比如删除第358行数据

[root@mufenggrow ~]# history -d 358

这种方法的唯一不足就是,你得需要知道命令的行数,比如先用history去查看,看看命令在第几行,在调用history -d 来删除。

4. 关于history的配置文件

所有我们用history命令看到的历史记录,都默认保存在:

~/.bash_history

如果是root用户就是在/root/.bash_history

直接删掉这个文件会清除所有历史记录,再登陆系统会自动重新生成这个文件。

Linux 命令的历史记录,有持久化存储,默认位置是当前用户家目录的 .bash_history 文件。

当 Linux 系统启动一个 Shell 时,Shell 会从 .bash_history 文件中,读取历史记录,存储在相应内存的缓冲区中。

我们平时所操作的 Linux 命令,都会记录在 缓冲区 中。包括 history 命令所执行的历史命令管理,都是在操作 缓冲区 ,而不是直接操作 .bash_history 文件。

当我们退出 Shell,比如按下 Ctrl+D 时,Shell 进程会把历史记录缓冲区的内容,写回到 .bash_history 文件中去。

5. 隐藏历史记录实战

有时候我们觉得命令中出现了密码不安全,比如我们执行 MySQL -u root -p123456 这个命令的时候,其他人如果查看历史记录,也会看到我们的MySQL密码,于是我们就有了隐藏某条历史记录的需求。

想要隐藏某条历史记录,会用到set +o

set +o history 表示开始隐藏

set -o history 表示结束隐藏

[root@mufenggrow ~]# set +o history ## 设置开启隐藏[root@mufenggrow ~]# mysql -uroot -p123456ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)## 这里的MySQL报错是因为没有MySQL服务[root@mufenggrow ~]# history 31 history2 history -d 358## 查看历史记录发现没有刚才执行的带有密码的MySQL命令[root@mufenggrow ~]# set -o history ## 取消history[root@mufenggrow ~]# mysql -uroot -p123456ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)[root@mufenggrow ~]# history 33 mysql -uroot -p1234564 histroy 35 history 3## c此时发现有刚才执行过的MySQL命令

6. linux命令审计

有时候我们需要对 Linux 系统做审计,那为历史记录添加时间戳,就非常有用。

6.1 显示历史记录的时间

export HISTTIMEFORMAT='%F %T ’

[root@mufenggrow ~]# export HISTTIMEFORMAT='%F %T '[root@mufenggrow ~]# ping PING (110.242.68.3) 56(84) bytes of data.64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=52 time=26.4 ms^C--- ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 26.470/26.470/26.470/0.000 ms[root@mufenggrow ~]# history 317 -01-11 16:46:52 export HISTTIMEFORMAT='%F %T '18 -01-11 16:46:57 ping 19 -01-11 16:47:03 history 3[root@mufenggrow ~]#

6.2 控制历史记录的总数

这里我们会用到一个变量 HISTSIZE ,查看变量信息用下面的命令:

echo $HISTSIZE 查看历史记录总数

[root@mufenggrow ~]# echo $HISTSIZE1000[root@mufenggrow ~]# export HISTISIZE=100

可以看到默认的历史记录总条数为1000,实际上做审计的时候我们会适当把记录总数调大一点。

如果你想要让上面的操作永久生生效,可以使用下面的方法:

echo "export HISTSIZE=10000" >> ~/.bash_profilesource ~/.bash_profile

这样相当于做了持久化,我们保存到文件里的内容,不会因为你重启服务器而丢失数据。

总结

今天我们一起探讨的是历史记录的命令history,后续我们在做审计的时候用到的比较多,平时可以直接执行hsitory查看历史记录也比较方便。你学会了吗?

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨

🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。