Linux命令:history命令历史的管理及用法 | 您所在的位置:网站首页 › linux查看历史命令时间记录 › Linux命令:history命令历史的管理及用法 |
bash可以保存的过去曾经执行过的命令。当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中。当用户退出当前shell时,会将内存中的历史命令列表覆盖至~/.bash_history文件。 我们可以通过# histroy 来查看历史命令。history是bash的内部命令。通过# help history获取帮助。
一、history的常见选项 # history 。。。 # 省略前面 994 man poweroff 995 poweroff --reboot 996 man poweroff 997 man shutdown 998 shutdown +2 "Goodbye SB" 999 shutdown -c 1000 man rm 1001 info rm 1002 man history 1003 enable 1004 enable | grep history 1005 help history 1006 history 1007 history -d 1000 1008 history 1009 echo $HISTORYSIZE 1010 history# history -c 清空命令历史记录 # history -d N N为整数,删除历史中序号是N的命令 # history N N为整数,显示最近N条历史 # history -a 追加本次回话新执行的命令历史列表至~/.bash_history文件 # history -r 读历史文件附加到历史列表 # history -w 保存历史列表到指定的历史文件 # history -n 读历史文件中未读过的行到历史列表 # history -p 展开历史参数成多行,但不存在历史列表中 # history -s 展开历史参数成一行,附加在历史列表后
二、调用命令历史的方法 1、重复前一个命令,有4种方法 使用方向键↑选中命令,按↑↓调整,并回车执行 输入!! 并回车执行 输入!-1 并回车执行 按Ctrl + p,调出命令,并回车执行2、 !:0 执行前一条命令(去除参数) 3、 Ctrl + n显示当前历史中的下一条!命令,但不执行 4、 Ctrl + j执行当前命令 5、 !n 执行history命令输出对应序号为n的命令 6、 !-n执行history历史中倒数第n个命令 7、 !string 重复前一个以“string”字符串开头的命令 8、 !?string 重复前一个包含string字符串的命令 9、 !string:p 仅打印命令历史,而不执行 10、 !$:p 打印输出!$(上一条命令的最后一个参数)的内容 11、 !*:p 打印输出!*(上一条命令的所有参数)的内容 12、 ^string 删除上一条命令中的第一个string 13、 ^string1^string2将上一条命令中的第一个string1替换为string2 14、 !:gs/string1/srting2 将上一条命令中所有的string1都替换为string2 15、使用方向键↑↓键来上下浏览从前输入的命令 16、Crtl + r来在命令历史中搜索命令 进入(reverse-i-search)`':模式 17、 Crtl + g 从历史搜索模式退出 18、 重新调用前一个命令中最后一个参数,3种方法 !$ Esc . (点击Esc键后松开,然后点击.键) Alt+. (按住Alt键的同时点击.键),在一些终端软件中屏蔽了Alt功能键,需要开启 19、command !^ 利用上一个命令的第一个参数做cmd的参数 command !$ 利用上一个命令的最后一个参数做cmd的参数 command !* 利用上一个命令的全部参数做cmd的参数 command !:n 利用上一个命令的第n个参数做cmd的参数 command !n:^ 调用第n条命令的第一个参数 command !n:$ 调用第n条命令的最后一个参数 command !n:m 调用第n条命令的第m个参数 command !n:* 调用第n条命令的所有参数 command !srting:^ 从命令历史中搜索string开头的命令,并获取它的第一个参数 command !srting:$ 从命令历史中搜索string开头的命令,并获取它的最后一个参数 command !srting:n 从命令历史中搜索string开头的命令,并获取它的第n个参数 command !srting:* 从命令历史中搜索string开头的命令,并获取它的所有参数
三、命令历史相关的环境变量 HISTSIZE:命令历史中可以保存的命令的个数,默认值为1000 HISTFILE:命令历史保存在哪个文件,默认为当前用户家目录中的.bash_history文件 HISTFILESIZE:命令历史文件可以保存的命令的个数,默认值为1000 HISTIGNORE='command1:command2:...',让历史命令不记录执行过的命令,默认为NULL 举例:HISTIGNORE='ls' #让历史文件不记录ls命令,但是如果ls命令后接任何参数(包括空格)都会记录起来。所以要完全不记录任何与ls相关的命令,需要赋值为'ls *',即 HISTIGNORE='ls *' HISTTIMEFORMAT="%F %T-->" 执行history 命令显示的时候,带有此格式时间。 让~/.bash_history带有相对时间如:#1560378603 HISTCONTROL=[ignoredups|ignoredups|ignoreboth|erasedups],控制命令历史的生成 ignoredups:忽略记录重复的命令:连续相同的命令为重复命令(默认的变量值) ignorespace:不记录以空白字符开头的命令 ignoreboth:相当于上面两个参数ignoredups,ignorespace的组合 erasedups: 删除重复命令
注意:修改环境变量建议在/etc/profile.d/中创建***.sh文件,便于日后的查看和管理
|
CopyRight 2018-2019 实验室设备网 版权所有 |