bash利用!!使用上一次的命令并快捷修改特别长命令中的错误(如拼写错误)
场景
如果打了一个特别长的命令,里面有一个小的拼写错误,难道需要重新定位编辑么?
解决方案
可以用向上的方向键来重新选,更方便的运行history然后选择相应命令序列号如!1314来重新运行,最特殊的就是!!直接运行上一次的命令。
在!!或者!1314之后加一个冒号,然后类似于sed的替换表达式来对命令进行修改运行。
user@ubuntu:~$ ls -M
ls: invalid option -- 'M'
Try 'ls --help' for more information.
user@ubuntu:~$
user@ubuntu:~$ !!:s/M/l/
ls -l
...
讨论
- 如果需要对所有的模式匹配位置进行修改,需要在!!:和后面的第一个s之间加一个g。为什么g要写在 s 前,而不是像 sed 语法那样出现在