如何搜索Shell命令历史记录

时间:2020-01-09 10:42:23  来源:igfitidea点击:

问题描述:如何在bash shell下搜索旧的命令历史记录?
如何显示或者修改以前的命令?

解决方法:如果用户启用了,几乎所有最新的shell都允许您搜索命令历史记录。
使用历史记录命令可显示具有行号的历史记录列表。
用*列出的行已被用户修改。

shell历史记录搜索命令

在shell提示符下输入历史记录:

$ history

要搜索特定命令,请执行:

$ history | grep command-name
$ history | egrep -i 'scp|ssh|ftp'

Emacs线路编辑模式命令历史记录搜索

要获取包含字符串的先前命令,请按[CTRL] + [r],然后按搜索字符串:

(reverse-i-search):

要获取上一个命令,请按[CTRL] + [p]。
您也可以使用向上箭头键。

CTRL-p

要获取下一个命令,请按[CTRL] + [n]。
您也可以使用向下箭头键。

CTRL-n

fc命令

fc代表find命令或者fix命令。
例如,列出最后10个命令,请执行:

$ fc -l 10

要列出命令130到150,请执行:

$ fc -l 130 150

要列出自上一个以ssh开头的命令以来的所有命令,请执行:

$ fc -l ssh

您可以使用vi文本编辑器来"编辑命令" 1至5,执行:

$ fc -e vi 1 5

删除命令历史

-c选项通过删除所有条目来清除历史记录列表:

$ history -c