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