您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

【bash技巧篇】快速再次运行上一次的长命令并按照模式修改一些拼写错误

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 语法那样出现在 s 之后 呢?这是因为任何出现在闭合斜线(closing slash)后的内容都会被 视为要追加到命令后的新文本,要想再次执行命令时添加其他参数, 这种写法很方便,就是如下所示在后面跟着的参数就会添加在修改后的命令末尾。
user@ubuntu:~$ ls -M
ls: invalid option -- 'M'
Try 'ls --help' for more information.
user@ubuntu:~$
user@ubuntu:~$ !!:s/M/l/ file1
ls -l file1
...
  • 而其实如果不需要添加参数的时候,只是进行模式匹配修改的话,最后一个/完全可以不加。

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进