Linux命令历史--history
一 shell的--history命令历史功能。
是shell内嵌的功能。能够保存用户在终端输入过的命令历史。通过history进行操作命令历史。命令历史功能在shell中有变量,可通过更改变量对history功能进行调整。 命令历史的运行机制:shell将用户的过去输入过的命令,保存在内存中,当用户正常退出shell时,会自动将内存中保存的命令历史列表写入到历史文件当中去。 历史文件的位置~/.bash_history
二 history命令使用
重复前一个命令,有4种方法: 重复前一个命令使用上方向键,并回车执行。 按!! 并回车执行。 输入!-1 并回车执行。 按Ctrl+p 并回车执行。
!字符串:重复前一个以“字符串”开头的命令
!num:按照history命令输出中的序号重复对应命令
!?字符串:重复前一个包含abc的命令
!-n:重复n个命令之前的那个命令
使用up(向上)和down(向下)键来上下浏览从前输入的命令
键入ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc键后松开,然后点击. 键)
Alt+ .(按住Alt键的同时点击. 键)
调用历史参数
#cmd !^ : 利用上一个命令的第一个参数做cmd的参数
#cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
#cmd !* : 利用上一个命令的全部参数做cmd的参数
[root@localhost ~]# ls /etc/passwd /etc/fstab /etc/issue
/etc/fstab /etc/issue /etc/passwd
[root@localhost ~]# cat !*
#cmd !:n : 利用上一个命令的第n个参数做cmd的参数
!n:^ 调用第n条命令的第一个参数
!n:$ 调用第n条命令的最后一个参数
!m:n 调用第m条命令的第n个参数
!n:* 调用第n条命令的所有参数
!string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索以string 开头的命令,并获取它的最后一个参数
!string:n 从命令历史中搜索以string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索以string 开头的命令,并获取它的所有参数
history [-c] [-d offset] [n] history -anrw[filename]
history -psarg[arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令;
#: 显示最近的#条历史
-#:显示倒数第几条
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
三 history变量设置
ISTSIZE:命令历史记录的条数;
HISTFILE:指定历史文件,默认为~/.bash_history;
HISTFILESIZE:命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace
erasedups:删除重复命令
HISTCONTROL=ingnoreboth:erasedups
export 变量名="值“
存放在/etc/profile 或~/.bash_profile
[root@centos6-mini ~]# vim .bashprofile # .bashprofile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
HISTCONTROL=ingnoreboth:erasedups
HISTTIMEFORMAT="%F %T"
HISTINGNORE="passwd:ls" #精确匹配字符
export PATH