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命令vim

    • 最多存放1000條
    • 是由環境變量HISTSIZE配置的
      • 這是系統內置的環境變量 HISTSIZE
        [root@localhost ~]# echo $HISTSIZE
        1000
        [root@localhost ~]#
        • 有時敲命令的時候,會出來更多的數值
          • 這是由於 尚未真正的寫入到文件中去,這些命令臨時存放在內存中
  • history -c //把當前內存裏面命令歷史給清空bash

[root@localhost ~]# history -c
[root@localhost ~]# history
    1  history
但不會清空 .bash_history 配置文件,僅僅是把歷史命令給清空

在敲完命令後,直接到配置文件中查看,會發現其中並無存在 這是由於僅存在內存中,只有在退出終端的時候,纔可以保存到配置文件中去ide

環境變量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 中去code

  • !! 表示執行最後一條命令
  • !n 表示運行第幾條命令(n表示數字)
  • !echo 表示會在命令歷史裏面,倒着網上找第一個執行以 echo 開頭的命令
相關文章
相關標籤/搜索