bash shell history 命令

时间:2019-11-20 08:53:00  来源:igfitidea点击:

在shell脚本中,history 命令用于查看已经执行过的命令。

假设在bash shell中输入了错误的命令:

cp -av file1*.txt file2*.txt /path/to/dest

如何将上一个命令中的file1替换为theitroad,并重新执行?

bash shell支持历史记录搜索和替换操作。
bash(以及许多其他现代)shell提供了对命令历史记录(先前执行的命令列表)的访问。

bash命令历史记录,搜索并替换命令参数

快速替换的语法如下:

再次最后一个命令,并将命令中的word1替换为word2:

^WORD1^WORD2^

或者

!!:s/WORD1/WORD2

或者

!!:gs/WORD1/WORD2

例如:

$ cp bak2018-10.zip /backup/

使用替换,重新执行上一个命令:

$ ^10^08^

或者

$ !!:s/10/08

将会执行:

$ cp bak2018-08.zip /backup/

请注意,此替代仅适用于第一次出现的情况。
例如,上一个命令是:

$ cp -av file1*.txt file2*.txt /path/to/dest

用delta1和delta2替换file1和file2,输入:

!!:gs/file/delta

将会执行:

cp -av delta1*.txt delta2*.txt /path/to/dest

您还可以使用&重复之前的替换操作:

cp -av file1*.txt file2*.txt /path/to/dest
!!:gs/file/delta-&/

将会执行:

cp -av delta-file1*.txt delta-file2*.txt /path/to/dest