8.2 命令历史

命令历史

  • history //查看之前的命令
  • .bash_history //存放之前敲过的命令,在 /root/ 目录下
  • 最大1000条 //默认参数值是1000条
  • 变量HISTSIZE
  • /etc/profile中修改 //在其中可编辑HISTSIZE参数
  • HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
  • 永久保存 chattr +a ~/.bash_history //增加隐藏权限,让他人无法删除 !! 表示执行最后一条命令
  • !n 表示运行第几条命令(n表示数字)
  • !echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令

查看敲过的命令存放位置

  • 在我们使用过的命令,会存放在用户的家目录下 /root/.bash_history
[root@localhost ~]# ls /root/.bash_history
/root/.bash_history
[root@localhost ~]# cat !$
cat /root/.bash_history
init 0
ping www.baidu.com
dhclient
ping www.baidu.com
yum install -y net-tools

等等等

查看之前敲过的命令

  • history //查看之前敲过的命令
[root@localhost ~]# history
    1  init 0
    2  ping www.baidu.com
    3  dhclient
    4  ping www.baidu.com
    5  yum install -y net-tools
    6  ifconfig

history命令中最多存放1000条历史命令

  • history命令
    • 最多存放1000条
    • 是由环境变量HISTSIZE配置的
      • 这是系统内置的环境变量 HISTSIZE [root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]#
        • 有时敲命令的时候,会出来更多的数值
          • 这是因为 还没有真正的写入到文件中去,这些命令临时存放在内存中
  • history -c //把当前内存里面命令历史给清空
[root@localhost ~]# history -c
[root@localhost ~]# history
    1  history
但不会清空 .bash_history 配置文件,仅仅是把历史命令给清空

在敲完命令后,直接到配置文件中查看,会发现其中并没有存在 这是因为仅存在内存中,只有在退出终端的时候,才能够保存到配置文件中去

环境变量HISTSIZE在 /etc/profile 中配置

  • vim /etc/profile //在文件中修改环境变量的参数
    • 进入后 /HISTSIZE 搜索,并修改参数 HISTSIZE=5000
    • 在修改完参数后,要使参数生效,需
      • 方法1:需要重进一下终端
      • 方法二:执行 source /etc/profile
[root@localhost ~]# vim /etc/profile    //在里面编辑文件,改变参数

改变参数后,可以重启终端,或者source /etc/profile,发现参数生效
[root@localhost ~]# source !$        //执行命令后,会发现HISTSIZE值变化了
source /etc/profile
[root@localhost ~]# echo $HISTSIZE
5000

记录history查看历史命令时间

  • 记录命令使用的时间,给变量重新赋值,执行 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 即可
    • 指定变量的格式
[root@localhost ~]# history
    1  history
    2  vim /etc/profile
    3  yum provides "/*/vim"
    4  yum install -y vim-enhanced
    5  vim /etc/profile
    6  source /etc/profile
    7  echo $HISTSIZE
    8  HISTIMEFORMAT="%Y/%m/%d %H:%M:%S"
    9  history
[root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[root@localhost ~]# history
    1  2017/11/15 23:25:28history
    2  2017/11/15 23:35:08vim /etc/profile
    3  2017/11/15 23:35:29yum provides "/*/vim"
    4  2017/11/15 23:53:58yum install -y vim-enhanced
    5  2017/11/15 23:59:04vim /etc/profile
    6  2017/11/16 00:07:14source /etc/profile
    7  2017/11/16 00:07:31echo $HISTSIZE
    8  2017/11/16 00:13:45history
    9  2017/11/16 00:14:49HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
   10  2017/11/16 00:14:51history
   11  
[root@localhost ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
这个环境变量仅仅在当前窗口下的终端生效,在打开另一个终端的时候,就会显示空的
也就是说,系统默认这个环境变量是不存在的
    1. 若想这个环境变量一直生效,则需要编辑 /etc/profile
[root@hf-01 ~]# vim /etc/profile

进入配置文件中,在变量HISTSIZE下放入
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
然后 :wq 保存退出
[root@hf-01 ~]# source !$        
source /etc/profile
    1. 在编辑完保存退出后,再source /etc/profile
    1. 这时候,在打开另一个终端
    • 执行echo $HISTTIMEFORMAT 会出现%Y/%m/%d %H:%M:%S
    • 这就表示执行成功,在其他终端下也生效了

命令历史永久保存

  • chattr +a ~/.bash_history //增加隐藏权限,让别人无法删除
    • 增加权限后,就只能追加,而不能被删除
[root@hf-01 ~]# chattr +a ~/.bash_history
[root@hf-01 ~]# 

在运行很多命令后,未正常退出(exit或logout正常退出),直接关闭终端,那刚刚敲的命令就不会完整的保存到 .bash_history 中去

  • !! 表示执行最后一条命令
  • !n 表示运行第几条命令(n表示数字)
  • !echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ken的杂谈

【CentOS环境部署】CentOS下部署Java7/Java8

15930
来自专栏日常分享

Linux 日常常用指令

   最近搞了一个阿里ECS,CentOS7,涉及到一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进...

16220
来自专栏张戈的专栏

硬盘故障时如何强制关机:Input/output error

如果硬盘可能会出现锁死或坏道的故障,会造成 SHELL 命令的失效,包括 reboot,powoff,,shutdown,用正常的命令是没法完成重启的。 执行这...

35440
来自专栏陈树义

高效开发技巧:为什么你下载Git项目这么慢?

笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的: 打开浏览器 -> 输入网址 -> 查找项目地址 -> 复制项目...

37440
来自专栏极客慕白的成长之路

ACM札记之一

输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

17820
来自专栏木子昭的博客

nodejs爬虫获取漫威超级英雄电影海报

18030
来自专栏Golang语言社区

HTTP协议漫谈

简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将H...

371130
来自专栏python百例

119-比较文件的差异

python标准库提供了一个difflib,可以进行文件的比较,并且可以生成网页的形式。

19620
来自专栏技术博客

JavaScript判断页面是否已经加载完毕

  在做针对CheckBox框点击事件的时候,发现点击以后有时候会报错,但是是生成的JavaScript的代码的内部错误,无法判断到底是什么地方有问题。就一直在...

9420
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

40400

扫码关注云+社区

领取腾讯云代金券