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

这篇具有很好参考价值的文章主要介绍了linux基本功之历史记录history命令实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不休息,,风里雨里节日里我们都在机房等着你
💓 知识最重要的是记忆,反复练习才能有所成就
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

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

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

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


一、history作用

history有两个作用:

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

二、history常用语法

1. 常用用法

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

[root@mufengxiaoyue ~]# help history
history: 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. 常用参数

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

参数 描述
n 显示最近的N条记录
-a 将历史命令缓冲区中命令写入历史命令文件中
-c 将目前的shell中的所有 history 内容全部消除 (并非真的删除)
-r 将历史命令文件中的命令读入当前历史命令缓冲区
-w 将当前历史命令缓冲区命令写入历史命令文件中
-d 删除历史记录的指定行

3. 常用案例举例

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

[root@mufenggrow ~]# history 2
    9  cd
   10  history 2

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

3.2 清除全部历史记录

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

[root@mufenggrow ~]# history -c
[root@mufenggrow ~]# history
    1  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基本功之历史记录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 -p123456
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

## 这里的MySQL报错是因为没有MySQL服务

[root@mufenggrow ~]# history 3
    1  history
    2  history -d 358
    ## 查看历史记录发现没有刚才执行的带有密码的MySQL命令
[root@mufenggrow ~]# set -o history 
## 取消history
[root@mufenggrow ~]# mysql -uroot -p123456
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

[root@mufenggrow ~]# history 3
    3  mysql -uroot -p123456
    4  histroy 3
    5  history 3
## c此时发现有刚才执行过的MySQL命令

6. linux命令审计

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

6.1 显示历史记录的时间

export HISTTIMEFORMAT='%F %T ’

[root@mufenggrow ~]# export HISTTIMEFORMAT='%F %T '
[root@mufenggrow ~]# ping www.baidu.com
PING www.baidu.com (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
--- www.baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 26.470/26.470/26.470/0.000 ms
[root@mufenggrow ~]# history 3
   17  2023-01-11 16:46:52 export HISTTIMEFORMAT='%F %T '
   18  2023-01-11 16:46:57 ping www.baidu.com
   19  2023-01-11 16:47:03 history 3
[root@mufenggrow ~]# 

6.2 控制历史记录的总数

这里我们会用到一个变量 HISTSIZE ,查看变量信息用下面的命令:
echo $HISTSIZE 查看历史记录总数


[root@mufenggrow ~]# echo  $HISTSIZE
1000

[root@mufenggrow ~]# export HISTISIZE=100

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

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

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

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


总结

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

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

linux基本功之历史记录history命令实战文章来源地址https://www.toymoban.com/news/detail-480280.html

到了这里,关于linux基本功之历史记录history命令实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux基本功系列之sudo命令实战一

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

    2024年02月05日
    浏览(31)
  • linux基本功系列之su命令

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

    2024年01月22日
    浏览(39)
  • linux基本功之fsck命令详解

    💓 大家好,我是沐风晓月,双一流院校英语+计算机双专业在读; 💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。 💓

    2024年02月06日
    浏览(50)
  • Linux基础命令-history历史记录

    Linux基础命令-alias设置别名_Linux学习中的博客-CSDN博客 文章目录 前言 一、history命令介绍 二、语法及参数  三、参考实例 总结         在工作中,经常会需要多次重复某一个命令,或者需要查看之前执行过什么命令,那么都少不了history这个命令,下面一起来看看吧。    

    2023年04月22日
    浏览(27)
  • Linux命令历史记录管理:使用history命令提高工作效率

    在日常使用Linux系统时,我们经常需要执行各种命令来完成任务。有时候我们可能会忘记之前执行过的某个命令,或者想要重复执行某个曾经输入过的命令。这时,历史记录功能就变得非常有用了。 在Linux中,有一个非常有用的命令叫做history,它可以帮助我们查看和管理已执

    2024年02月07日
    浏览(59)
  • 【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 上)

    在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地

    2024年01月16日
    浏览(41)
  • Linux history 命令详解:如何查看、显示时间、清空、重复和控制历史记录

    在 Linux 中,如果你使用终端操作系统(sh、bash、zsh、fish等),那么有一个非常强大且方便的命令叫做 history 。它的作用是让你查看之前终端中输入的所有命令记录,以及可以方便地快速重复执行某个命令或修改一些参数后重新执行。下面我们来看一下Linux history常用命令:

    2024年02月04日
    浏览(33)
  • 苦练基本功——数据仓库

    🌿 最近在复习一些数据仓库和维度建模的知识,之前博客也写过,那就一起整理一下,对往期内容感兴趣的同学可以参考👇: 链接: 数据仓库入门. 链接: 大数据之维度建模中的重要概念. 🌰 废话不多说,让我们开始今日份的学习吧。   数据技术是指通过使用计算机和相

    2024年02月02日
    浏览(29)
  • python爬虫基本功(一)--初识python爬虫与爬虫学习路径

    大家好,这里是Kaiser。👏👏今天想给大家介绍下python爬虫的知识,我将与大家一起去揭开python爬虫的神秘面纱,字不多敲,让我们进入今天的主题:初识python爬虫。 爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或脚本,是搜

    2024年02月16日
    浏览(37)
  • 用vue实现列表的增删改查基本功能(简单易懂)

    目录 文章目录 前言 一、安装vue 二、使用vue 三、相关代码 四、效果图如下 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 vue开发文档参考

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包