想象一下,我运行的命令如下所示:
$ tar -cvf system.tar /etc/system tar: /etc/system: Cannot stat: No such file or directory tar: Error exit delayed from previous errors.
我可能要做的第一件事是转到 /etc 文件夹,查看其中的内容并找出我做错了什么。
我可以通过以下方法来做到这一点:
$ cd !$:h cd /etc
这是说:“获取上一个命令的最后一个参数(/etc/system ),并删除其最后的文件名部分,仅保留 / etc 。”
6、当前行:!#:1
多年以来,在我最终找到并学会之前,我有时候想知道是否可以在当前行引用一个参数。我多希望我能早早学会这个快捷方式。我经常常使用它制作备份文件:
$ cp /path/to/some/file !#:1.bak cp /path/to/some/file /path/to/some/file.bak
但当我学会之后,它很快就被下面的快捷方式替代了……
7、搜索并替换:!!:gs
这将搜索所引用的命令,并将前两个 / 之间的字符替换为后两个 / 之间的字符。
假设我想告诉别人我的 s 键不起作用,而是输出了 f :
$ echo my f key doef not work my f key doef not work
然后我意识到这里出现的 f 键都是错的。要将所有 f 替换为 s ,我可以输入:
$ !!:gs/f /s / echo my s key does not work my s key does not work
它不只对单个字符起作用。我也可以替换单词或句子:
$ !!:gs/does/did/ echo my s key did not work my s key did not work
测试一下
为了向你展示如何组合这些快捷方式,你知道这些命令片段将输出什么吗?
$ ping !#:0:gs/i/o $ vi /tmp/!:0.txt $ ls !$:h $ cd !-2:$:h $ touch !$!-3:$ !! !$.txt $ cat !:1-$
总结
对于日常的命令行用户,Bash 可以作为快捷方式的优雅来源。虽然有成千上万的技巧要学习,但这些是我经常使用的最喜欢的技巧。 【编辑推荐】 - 安全强化你的 Linux 服务器的七个步骤
- 详解3种区别Linux服务器是物理机或者虚拟机的方法
- Bash学习的快乐之旅:3个命令行游戏
- 生成Linux运行时间报告的Bash脚本
- 几个命令了解ELF文件的”秘密“
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|