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_historyHISTFILESIZE: 命令历史文件记录历史的条数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(七)搜索执行过的命令