bash中的history
时间:2010-04-05 来源:wing731
history
默认的 历史文件名在~/.bash_history,histroy会在用户logout后保存。
- history -c - 清除历史命令
- Ctrl+r 用关键字查询history里的命令记录。
- fc -l 命令可以用来显示或编辑历史清单中的命令。
FCEDIT |
使用fc命令的UNIX/Linux编辑器的路径名 |
HISTCMD |
当前命令的历史编号,或在历史清单中的序号。 |
HISTCONTROL |
如果设置了ignorespace的值,以空格开头的行将不会进入历史清单。如果设置了 ignoredups的值,和最后一个历史行匹配的行不会进入。ignoreboth的值结合了两个选项。 |
HISTFILE |
指定保存命令行历史的文件。默认是~/.bash_history |
HISTFILESIZE |
历史文件能包含的最大行数。当超过该值,历史文件将被截尾。默认为500 |
HISTIGNORE |
以冒号分隔的一系列模式,用来决定哪些命令行应该保存在历史清单中。如:tty??:&将匹 配任何以ty开头后跟两个字符的命令行,以及该命令的重复。 |
HISTSIZE |
记录在命令历史中的命令数。默认500 |
HISTTIMEFORMAT |
为历史命令添加时间标记。如:export HISTTIMEFORMAT='%F %T '='%F %T ' |
替换和历史 |
|
命 令 |
含义 |
!! |
重新执行上一条命令,等效于Ctrl+P或上箭头 |
!N |
重新执行历史清单中的第N条命令 |
!string |
重新执行最后一条以string开头的命令 |
!?string? |
重新执行最后一条包含string的命令 |
!?string?% |
重新执行历史清单中最近一条包含string的命令行参数 |
!$ |
用上一条命令的最后一个参数,等效于 atl+. |
!! string |
将string添加到上一条命令的最后并执行 |
!N:s/old/new/ |
在前面的第N条命令中,将第一次出现的old替换为new |
!N:gs/old/new/ |
在前面的第N条命令中,将所有的old替换为new |
^old^new^ |
在上一条命令中,用new替换old |
Comand !N:wn |
在当前命令后添加一个来自第N条命令的参数(wn)并执行它。wn是一个从0,1,2...开始的 数, |
-
Example
[root@wingwu ~]# echo a b c
a b c
[root@wingwu ~]# echo !:1
echo a
a
[root@wingwu ~]# echo !:2
echo b
b
[root@wingwu ~]# echo !^
echo a
a
[root@wingwu ~]# echo !$
echo c
c
[root@wingwu ~]# echo !*
echo a b c
a b c
[root@wingwu ~]# !!:p
echo a b c