在linux中Shell历史命令记录剖析

Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样能使你输入使用过的长命令变得容易。每一个在系统中拥有帐号的用户在他的目录下都有一个“.bash_history”文件。linux

bash shell应该保存少许的命令,而且在每次用户注销时都把这些历史命令删除。
第一步:
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行肯定全部用户的“.bash_history”文件中能保
存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,好比
30。编辑profile文件(vi /etc/profile),把下面这行改成:
HISTFILESIZE=30
HISTSIZE=30
这表示每一个用户的“.bash_history”文件只能保存30条旧命令。
第二步:
网管还应该在”/etc/skel/.bash_logout” 文件中添加下面这行”rm -f $HOME/.bash_history” 。这样,当用户每次注销时,“.bash_history”文件都会被删除.web

http://www.huanxiangwu.com/137/linux-history%E5%91%BD%E4%BB%A4%E4%BB%8B%E7%BB%8Dshell

如今大多数的Linux系统都使用bash做为默认的shell吧,下面就介绍一下bash的history命令管理功能吧,history命令能够回顾,修改和重用以前使用过的历史命令。vim

1.一些变量说明:bash

$HISTFILE bash启动的时候会读取~/.bash_history文件并载入到内存中,这个变量就用于设置.bash_history文件,bash退出时也会把内存中的历史回写到.bash_history文件app

$HISTSIZE 设置bash会员期间历史包含的命令数量svg

$HISTFILESIZE 设置历史文件中实际存储的命令数量code

2.显示历史命令xml

history 显示所有历史内存

history 数字 显示以前执行过的若干命令,例:history 2 显示执行过的上两条命令

使用上下箭头键也能够查看上一条根下一条命令,

3.运行历史命令

!! 运行上一条命令

!88 运行第88条命令

!88 /test 运行第88条命令并在命令后面加上/test

!?CF? 运行上一个包含CF字符串的命令

!ls 运行上一个ls命令

!ls:s/CF/l 运行上一个ls命令,其中把CF替换成l

fc 编辑并运行上一个历史命令

fc 66 编辑并运行第66个历史命令

fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行

4.搜索历史命令

使用ctrl+r搜索历史中的字符串,重复按ctrl+r能够在历史命令列表中不断的向前搜索包含字符串的命令,回车就会执行查找的命令

5.清空历史命令

history -c

6.写history

history -w 让bash将历史命令当即从内存写到.bash_history文件

history -a 将目前新增的 history 历史命令写入.bash_history文件

7.history历史命令记录删除

修改/etc/profile将HISTSIZE=1000改为0或1

清除用户home路径下.bash_history

8.history配置

运行 set | grep HISTFILE

显示:HISTFILE=/root/.bash_history
HISTFILESIZE=1000

在.bash_profile文件中添加

HISTFILE=/root/history

export HISTFILE

从新登陆后历史命令都会写入到/root/history文件中

其他的一些设置能够在.bashrc文件中设置

export HISTCONTROL=ignoredups #忽略重复的命令

export HISTIGNORE=”[ ]*:&:bg:fg:exit” #忽略由冒号分割的这些命令

export HISTFILESIZE=1000 #设置保存的历史命令的文件大小

export HISTSIZE=100 #设置保存的历史命令的条数

技巧:

shopt -s histappend 在shell中执行这个命令可使shell保存历史命令的时候使用追加的方式,由于默认是覆盖,在多终端的清空下,最后退出的终端灰覆盖之前的历史记录

在history历史记录中显示时间和执行命令的用户 echo ‘export HISTTIMEFORMAT=”%F %T whoami “‘ >> /etc/profile