如果你在命令行上花费大量时间,则查看以前运行的命令的历史记录可能是一项有意义的功效,可以使您的日常工作上更顺畅并提高工作效率。
在本文中,我们在这里讨论history
命令,该命令让你可以看一下以前执行的命令的列表,在列表中进行搜索以及操作过程历史记录文本文档。
运用history
命令和历史记录扩展
history
是内置的shell,每一个shell的行为极有可能各有不同。我们在这里详解history
的Bash嵌入版本信息。
以最简单的形式,当没有任何的选择项或基本参数的情况之下开启时,history
命令说明带有号全部历史记录列表。
history
...
467 git push
468 tail -f var/logs/error
469 nano 22,5 functions.sh
470 source project-env/bin/activate
471 history
键入!n
将执行历史记录列表里第n条命令,而!-n
则会把命令n行退回。在以下案例中,大伙儿于第467
行执行命令:
!467
执行命令的另一种方法有哪些运用!word
扩展。 word
是一种以“ word”逐渐发布的命令。
一般,history
会在屏幕上显示每天做导出来。要一次查看导出来的一页,请将主要是通过管道输送到比如more
或 less
命令的通讯系统操作程序:
history | less
要说明最后n
行,请将数据信息作为传送数据给命令。例如,要仅查看历史记录列表的后五行,请输入:
history -5
运用up
和down
箭头键浏览列表里的内容。说明查找完的命令后,按Enter
执行。
键入!!
执行上一条命令:
!!
如果你忘记在命令中附加 sudo
时,这非常有帮助,你们可以键入以下几个方面取代再度键入命令:
sudo !!
!-1
与!!
一样,并执行历史记录列表中的最后一个命令,!-2
倒数第二个,依此类推。
^word1^word2^
扩展允许您再度运行最后一个命令,将“ word1”替换为“ word2”。假如你一不小心键入了sduo command
并非sudo command
,则能用正确的单词不断以下命令:
^sduo^sudo^
运用 grep
命令来过滤导出来。例如,要查看包括“ nano”等在内的命令,请运行:
history | grep nano
302 sudo nano /etc/resolv.conf
356 nano setup.py
413 sudo nano /etc/hosts
469 nano 22,5 functions.sh
现如今,如果你想要再度运行nano setup.py
命令,只需键入:
!356
查找命令历史记录的另一种方法有哪些按Ctrl-R
。提示将变成以下几个方面,你们可以开始搜索先前执行的命令。
(reverse-i-search)`':
外壳将说明一条匹配线。要移到下一个相符的建议,请再一次按Ctrl-R
。
客户程序Bash手册,以获得有关历史扩展,修饰符和指示符的更多信息。
贮存历史记录列表
默认情况下,运作新对话时,Bash从.bash_history
word里加载历史记录列表。在当前对话中执行的命令列表保留在内存中,而且在会话关闭时保存到word里。
假如你打开了好几个Shell对话,则仅贮存最后关闭的对话的历史记录。
-a
选择项可让你将目前对话历史记录列表保存到.bash_history
word里:
history -a
-w
选择项将完整的历史记录列表加载历史记录文本文档。
history -w
清除历史记录
history
命令允许您清除完整的历史记录列表删掉一些一部分。
要清除历史记录列表,挑选-c
选择项:
history -c
能从历史记录列表中删除起点与终点之间一条或许多条独特线,挑选-d
选择项。
例如,要删除365和375正中间的行(包括这种行,请输入:
history -d 365 375
倘若仅向-d
选择项给与一个数字,则该命令将删除给定的行。
如果使用负整数,将在历史记录列表结尾慢慢算行。
上面的命令清除历史记录列表,该列表保留在内存中,但不会从电脑硬盘中的.bash_history
word里删除具体内容。要清除文本文档,你需要把历史记录列表写入文件:
history -c
history -w
修改历史行为
能用好几个不同种类的环境变量来定义Bash历史记录的行为。修改历史记录情况时,请在~/.bashrc
或账户登录时载入的任何其他系统变量中设置变量。
默认情况下,Bash在命令历史记录列表中储存500行。 HISTSIZE
变量允许您变动此值。要将其设成10000,请在.bashrc
word里添加以下行:
HISTSIZE=10000
变量HISTCONTROL
接受用分号分隔标值列表,这类值定义了如何在历史记录列表中贮存命令:-ignorespace
-以空格符开始命令未保存在历史记录列表中。 -ignoredups
-不贮存反复命令。 -ignoreboth
-是简称,包括ignorespace
和ignoredups
。
HISTCONTROL=ignoreboth
设置HISTTIMEFORMAT
变量后,Bash为每行命令的执行加上日期格式。
例如,假如你设置:
HISTTIMEFORMAT="%F %T: "
历史记录便以以下文件类型说明:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
结论
history
命令说明以前执行的命令的列表。例如,您可以使用历史记录来查看您之前忘记长命令。
如果您有任何问题或意见和建议,请随时。
