Linux中history配置及使用技巧

前言

在Linux中,咱们能够经过history来查看历史命令,用来确认在某个时刻使用了哪一个命令。可是,history的默认的,只会输出命令的序号以及命令。这时咱们就须要对history进行一些配置,让它报告命令执行的具体时间。下面就是关于history的配置方法以及其余操做。node



1、history显示具体的时间

1.打开变量配置文件web

vim /root/.bashrc

这里写图片描述

2.配置history的变量vim

在.bashrc中追加下列语句(意为让history显示时间戳 ){还可在变量中加入$(whoami),便可显示使用命令的用户 }缓存

export HISTTIMEFORMAT="%Y-%m-%d "

bash

export HISTTIMEFORMAT='%F %T '

3.让配置好的变量生效app

source .bashrc

4.成功后,输入history显示格式,以下ssh


826 2018-05-18 cd
827 2018-05-18 df -Th
828 2018-05-18 free -m
829 2018-05-18 bash qinli_huancun.sh
830 2018-05-18 ssh node2
831 2018-05-18 ls
832 2018-05-18 w
833 2018-05-18 ls
834 2018-05-18 ll /
835 2018-05-18 ps aux
836 2018-05-18 lssvg

code

955 2018-05-18 19:18:47 vim .bashrc
956 2018-05-18 19:19:01 date %F
957 2018-05-18 19:19:05 date +%F
958 2018-05-18 19:19:09 date +%T
959 2018-05-18 19:19:24 vim .bashrc
960 2018-05-18 19:19:36 source .bashrc
961 2018-05-18 19:19:41 history
962 2018-05-18 19:20:35 cat .bashrc
963 2018-05-18 19:21:14 historyxml



2、history设置历史命令记录数

实际上history命令查看的历史命令记录条数是有数目限制的,咱们能够经过配置,让它保存咱们想要保存的操做命令的数量。

1.打开变量配置文件

vim /root/.bashrc

2.设置历史命令记录数

在.bashrc中追加下列语句(意为保存1000条记录)

export HISTSIZE=1000

3.让配置好的变量生效

source .bashrc


3、指定不一样终端执行的命令都存储在同一个文件中

在Linux中能够开启多个终端,所以会产生不一样终端的历史记录,若是要查看对应终端的历史命令,就必须进入对应的终端中,进行查看。咱们能够配置让不一样终端执行的命令都存储在同一个文件中,咱们只要查看这个文件,就能知道某个终端执行了某些命令。

1.打开变量配置文件

vim /root/.bashrc

2.指定不一样终端执行的命令都存储在同一个文件中

在.bashrc中追加下列语句(意为将不一样终端执行的命令都存储在/root/.commandline_warrior中)

export HISTFILE=/root/.commandline_warrior

3.让配置好的变量生效

source .bashrc


4、忽略重复命令

同上,再次追加

export HISTCONTROL=ignoredups


5、多个终端同时操做时,避免命令覆盖,采用追加方式

同上,再次追加

shopt -s histappend


6、实时写入

实际上history的历史命令是写入.bash_history 中的。 ~/.bash_history 记录的是前一次登录所运行过的命令,而本次登录所运行的命令都被缓存在内存中,当退出系统后,本次的命令记忆才会记录到 .bash_history 中。

同上,再次追加(意为实时的记录入文件)

PROMPT_COMMAND=’history -a’


7、设置记录历史的文件的大小

同上,再次追加

export HISTFILESIZE=450


8、彻底清除命令执行操做的历史记录

不建议执行

1.清理历史记录(只是清理了表层,可在.bash_history找到回)
history -c

2.清理记录历史的记录文件内容

echo " " > .bash_history

3.若有配置不一样终端执行的命令存储文件

echo " " > 不一样终端执行的命令存储文件