操作Bash历史记录的快捷方式有哪些

介绍

这篇文章主要介绍操作Bash历史记录的快捷方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1,最后一个参数:<代码> ! $

如果你仅想从本文中学习一种快捷方式,那就是这个。它会将最后一个命令的最后一个参数替换到你的命令行中。

看看这种情况:

<>之前,美元mv /路径//wrongfile //其他/placemv:, cannot  stat  & # 39;/路径//wrongfile& # 39;:, No  such  file 或是目录

啊哈,我在命令中写了错误的文件名“wrongfile”,我应该用正确的文件名“rightfile”代替。

你可以重新键入上一个命令,并用“rightfile”完全替换“wrongfile”。但是,你也可以键入:

<>之前,美元mv /道路//rightfile  ! mv 美元/路径//rightfile /一些/其他/

这个命令也可以奏效。

在Bash中还有其他方法可以通过快捷方式实现相同的目的,但是重用上一个命令的最后一个参数的这种技巧是我最常使用的。

2,第n个参数:<代码> ! 2

是不是干过像这样的事情:

<>之前,美元tar  -cvf  afolder  afolder.tartar:, failed 用打开

像许多其他人一样,我也经常搞错<代码>沥青> ln>

操作Bash历史记录的快捷方式有哪些

xkcd漫画

当你搞混了参数,你可以这样:

<>之前,美元!:0,1,!:3,!:2 tar  -cvf  afolder.tar  afolder

这样就不会出丑了。

上一个命令的各个参数的索引是从零开始的,并且可以用<代码> !:>

显然,你也可以使用它来重用上一个命令中的特定参数,而不是所有参数。

3,全部参数:<代码> !:1 - $

假设我运行了类似这样的命令:

<>之前,美元grep  & # 39; (ping | pong) & # 39;, afile

参数是正确的。然而,我想在文件中匹配“ping”或“乒乓球”,但我使用的是<代码> grep> egrep>

我开始输入<代码> egrep> !:1 - $> 1> 美元表示)。

<>之前,美元egrep  !: 1 - egrep 美元;& # 39;(ping | pong) & # 39;, afileping

你不用必须用<代码> 1 - $ 选择全部参数,你也可以选择一个子集,例如<代码> 1 - 2 或<代码> 3 - 9>

4,倒数第n行的最后一个参数:<代码> !代码2:$

当我输错之后马上就知道该如何更正我的命令时,上面的快捷键非常有用,但是我经常在原来的命令之后运行别的命令,这意味着上一个命令不再是我所要引用的命令。

例如,还是用之前的<代码> mv> ls> <>之前,美元mv /路径//wrongfile //其他/placemv:, cannot  stat  & # 39;/路径//wrongfile& # 39;:, No  such  file 或是目录,美元ls /路径//rightfile

我就不能再使用<代码> !$ 快捷方式了。

在这些情况下,我可以在<代码> !之后插入<代码> n> n> <>之前,美元mv /道路//rightfile  ! 2: mv 美元/路径//rightfile /一些/其他/

同样,一旦你学会了它,你可能会惊讶于你需要使用它的频率。

5,进入文件夹:<代码> !美元:h

从表面上看,这个看起来不太有用,但我每天要用它几十次。

想象一下,我运行的命令如下所示:

<>之前,美元tar  -cvf  system.tar /etc/system 沥青:,/etc/系统:,Cannot 统计:,No  such  file 或是directory 沥青:,Error  exit  delayed 得到previous 错误。

我可能要做的第一件事是转到<代码>/etc/<代码>文件夹,查看其中的内容并找出我做错了什么。

我可以通过以下方法来做到这一点:

<>之前,美元cd  !美元:hcd /etc

这是说:“获取上一个命令的最后一个参数(<代码>/etc/系统>

操作Bash历史记录的快捷方式有哪些