![如何编辑命令行中输入的内容?](https://linux22.com/image/63506/%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E8%BE%93%E5%85%A5%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%9F.png)
输入如下命令:
cat somefile
按 Enter 并运行命令。
然后使用 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