如何编辑命令行中输入的内容?

如何编辑命令行中输入的内容?

输入如下命令:

cat somefile
  1. 按 Enter 并运行命令。

  2. 然后使用 ESC + k 搜索它,让我把它带回来。

我想返回并编辑命令,同时仍在提示符中输入。据我了解,ESC + o 允许我输入或返回我在命令中编写的内容。

然而,在初次按下后,这些热键似乎不起作用。不过,尽管我可以在按几次箭头键后进行编辑。是否有另一种方法可以在使用 ESC + k 检索的提示中编辑命令?

答案1

当您收到命令行提示符时,您就可以插入代码了:
您处于 vi 编辑模式。
你可以查阅 vi 手册,这里有一些命令行命令:

  • ESC 退出插入模式并进入命令模式。
  • ESC /somecommand ENTER nn 查找 somecommand。 nn 正在寻找接下来的两次
  • ESC wwb3w 前进 2 个字,后退 1 个字,前进 3 个字
  • ESC dwxx 删除单词和两次ws 1个字符
  • ESC lllcw 向左 3 个位置,更改单词
  • ESC wrs 前进 1 个单词并用 s 替换字符

答案2

是的,有。您可以使用“!!”来执行上一个命令。例如:

$ cat file.txt
$ !! file2.txt # this will output both file.txt and file2.txt

您也可以将它们通过管道传递给其他命令。

$ !! | some_command  # it will pipe just previous command's output to some_commands

AND...如果您想执行前 5 个命令

$ !-5

如果你不知道该命令的顺序,

$ history
233 cat file.txt
234 ls
235 date
$!234 # this will execute ls command

相关内容