我们都知道!!
可以重复您在 bash 中执行的最后一个命令。
但有时我们需要做一些操作,比如
$ python test.py
$ vim test.py
$ python test.py # here is where I need to repeat the second proximate bash command
我可以使用向上箭头键来做到这一点,但这需要我将右手移到一个不舒服的位置。所以我想知道是否有一个类似的命令!!
可以工作?
答案1
答案2
!-2
还有更多乐趣。假设您想继续操作一个文件(如上所述,您重复使用 test.py):
cp foo.py thing.py
edit $_
python $_
!-2
^thing^foo
- 将现有文件复制到
thing.py
- 编辑(vim、emacs - 如果你运行的是 Emacs-OS,为什么要使用命令行,我不知道)
thing.py
- 上一个命令行中的最后一个词 python thing.py
- 编辑
thing.py
- 编辑
foo.py
操纵历史真是太有趣了。尝试man history
。请注意,寻求重用历史记录可能会导致输入的内容远远多于命令本身。最后的命令替换(我将 thing.py 替换为 foo.py)就是一个这样的例子。只需输入命令和名称即可减少字符。 :)
历史记录替换也是您尝试时收到奇怪消息的原因:
$ echo "This is a disaster!"
-bash: !": event not found
感叹号被用作历史参考,并且它无法找到带有双引号的先前命令。