1、manual说明
display or manipulate the history list
显示或操作命令历史列表
2、概念区分
history list是在内存缓存中的,history file就是在硬盘中的。history list针对当前会话生效。history file 则针对所有会话都生效。当登录系统系统时,系统就会自动将history list中,当退出系统时,history list中的命令就会自动写入到history file中去。
~/.bash_history 历史列表的默认保存位置
~/.bash_profile 当前用户的环境变量的设置位置
/etc/profile 系统环境变量的默认设置位置
关于HISTORY的变量:
HISTSIZE 命令历史记录的条数
HISTFILE 指定历史文件,默认为~/.bash_history
HISTFILESIZE: 命令历史文件记录历史的条数
HISTTIMEFORMAT: HISTTIMEFORMAT=“%F%T” 显示时间
history用法:
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
display the history list with line numbers, prefixing each modified entry with a `'. An argument of N lists only the last N entries
显示带有行号的历史记录列表,并在每个修改前加上前缀
带有“”的条目。N的参数只列出最后的N个元素。
Options:
-c: clear the history list by deleting all of the entries
通过删除所有条目来清除历史记录列表
-d offset: delete the history entry at offset OFFSET
在偏移位置删除历史记录项(就是删除指定数字的历史条目)
-a: append history lines from this session to the history file
将此会话的历史记录行追家到历史记录文件
-n: read all history lines not already read from the history file 。
读取尚未从历史文件中读取的所有历史记录行
-r: read the history file and append the contents to the history list
读取历史文件然后追加到历史记录文件中
-w: write the current history to the history file and append them to the history list
将当前历史写入到历史文件中,同时将他们追加到历史列表中。
-p: perform history expansion on each AGR and dispay the result without storing it in the history list
对每个参数执行历史扩展并显示结果,而不将其存储在历史列表中
-s: append the ARGs to the history list as a single entry
添加所有ARGs作为单独的条目到历史记录条目中。
其他比较常用的用法:
(一):查看历史命令
history #显示所有历史命令’
history 10 #显示最近的10条命令
(二)查看默认历史命令条数:
echo $HISTSIZE
这个环境变量定义在/etc/profile中
(三)命令重新调用
ls !407 #重新调用历史命令中的正数第407个命令
ls !-4 #重新调用历史中的倒数第4条命令
历史命令分两部分存放: .bash_history 和内存中
正常退出时,内存中的历史命令会存储到.bash_history中
(四)执行前面倒数第一个以shut开头的命令
!shut
(五)执行前面一个包含go的命令
!?go
(六)执行刚刚执行过的命令
1、上下键翻
2、!-1
(七)搜索执行过的命令