注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

旷世的忧伤

不与夏虫语寒,不与曲人语道,因为生命缺乏言说的条件......

 
 
 

日志

 
 

Linux中history历史命令使用方法详解  

2015-06-02 16:19:31|  分类: Linux系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. 让 history 显示时间戳
如果要让 history 在显示历史命令时同时显示记录命令的时间,则需要设置如下环境变量:

$ export HISTTIMEFORMAT='%F %T '

[注:你也可以设置alias语句来查看最近的历史命令]
alias h1='history 10'
alias h2='history 20'
alias h3='history 30'

2. 用 Ctrl + R 搜索历史命令

按下 Ctrl +R 然后输入关键字,可以在历史命令中通过关键字来查找已经历史命名。例如,搜索“red”,则显示以前的命令中含有”red”的命令“cat/etc/redhat-release”。

[注:在命令行提示符下按下Ctrl+R,终端将显示如下提示―reverse-i-search‖]
 (reverse-i-search)`red`: cat/etc/redhat-release

[注:当看到你要的命令后按回车键,就可以重新执行这条命令了]
$ cat /etc/redhat-release
Fedora release 9 (Sulphur)

3. 执行历史命令中的特定命令
用 history 显示历史命令的时候,在每个命令前边都有一个编号,用 “! + 编号” 可以重新执行该条命令。例如:

$ history | more

1 service network restart
2 exit
3 id
4 cat /etc/redhat-release

$ !4

Fedora release 9 (Sulphur)

4. 用 HISTSIZE 控制历史命令的总数
修改环境变量 HISTSIZE 和 HISTFILESIZE 的值,可以控制命令历史记录储存的条数。例如,控制 bash 的命令历史记录的存储量为450条:

$ vi ~/.bashrc

HISTSIZE=450
HISTFLESIZE=450

5. 使用 HISTFILE 改变历史文件名
历史命令的记录默认存储在 .bash_history 文件中,修改环境变量 HISTFILE 的值可以改变历史命令存储的文件。这样可以使用 history 命令来追踪不同终端中执行的命令,届时只需要将不同终端中所执行的命令保存在不同的历史文件中即可。例如:

$ vi ~/.bash_profile

HISTFILE=/root/.commandline_warrior

6. 使用HISTCONTROL来消除命令历史中的连续重复条目
设置环境变量 HISTCONTROL 的值为 ignoredups,可以消除重复命令,即连续重复出现的命令只记录一次。设置环境变量 HISTCONTROL 的值为 erasedups,可以消除整个命令历史中的重复命令,即在历史命令中,每个命令只记录一次。

7. 使用HISTCONTROL强制history忽略某条特定命令
在执行一条命令时,你可以将环境变量 HISTCONTROL 的值设置为 ignorespace 并在该命令前加上一个空格来指示 history 忽略这条命令。在很多情况下这样做是没有必要的,因为我们通常都希望通过 history 来记录我们曾经做了哪些操作。但在一些特殊的情况下这个技巧可能对我们挺有用,比如我们偷偷操作别人的机器的时候。我想黑客肯定很喜欢这个技巧。

8. 清除历史命令
通常 bash 在执行命令时不是马上把命令名称写入 history 文件的,而是存放在内部的 buffer 中,等 bash 退出时会一并写入。不过,可以调用 'history -w' 命令要求 bash 立即更新 history 文件。 如果要清空本次留在缓存中的历史命令,可以用 'history -c' 命令。如何想要清空 history 曾经记录的所有命令,可以将文件 .bash_history 清空,当然这样做比较暴力。

9. 禁止 history 记录任何命令
如果想要禁用 history,不让 bashshell 记录任何命令,则将环境变量 HISTSIZE 设为 0 即可。

$ export HISTSIZE=0



10. 让 history 在存储时忽略某些特定指令
我们在使用 linux 的 bash 工作的时候,有些命令会平凡的使用,但其又不是很重要,没有必要被 history 记住,例如 ls。可以通过设置环境变量 HISTIGNORE 的值来让 history 忽略一些指定的命令。例如:

$ export HISTIGNORE=“pwd:ls:ls –ltr:ll:history”


在 linux 系统中,大部分环境变量的配置可以卸载 profile 文件中,该文件在 /etc 和 ~ 目录下都可能存在,只是在 ~ 目录下为带点的隐藏文件。在 ~ 目录下的 .profile 文件通常会包含主目录下的 .bashrc 文件,大部分的配置会保存在该文中。

注:
本文内容归纳整理自http://os.51cto.com/art/201205/335040.htm,仅供学习参考。
  评论这张
 
阅读(13)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018