- 简介
- 第一章 - 关于 CD
- 第二章 - 基本命令
- Hack-7 Grep
- Hack-8 Grep 与正则表达式
- Hack-9 Find 命令
- Hak-10 重定向
- Hack-11 Join 命令
- Hack-12 Tr 命令
- Hack-13 Xargs 命令
- Hack-14 Sort 命令
- Hack-15 Uniq 命令
- Hack-16 Cut 命令
- Hack-17 Stat 命令
- Hack-18 Diff 命令
- Hack-19 Ac 命令
- Hack-20 让命令在后台执行
- Hack-21 Sed 替换基础
- Hack-22 Awk 简介
- Hack-23 VIM 基本入门
- Hack-24 Chmod 命令
- Hack-25 Tail -f -f
- Hack-26 Less 命令
- Hack-27 Wget 下载器
- 第三章 - SSH 技巧
- 第四章 - 日期设置
- 第五章 - PS* 介绍
- 第六章 - 压缩和打包
- 第七章 - 历史命令
- 第八章 - 系统任务管理
- 第九章 - 安装软件
- 第十章 - LAMP 套装
- 第十一章 - Bash 脚本
- 第十二章 - 系统性能监控
- 第十三章 - 额外的技巧
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Hack-54 History 扩展
History 扩展
用这个功能可以选择特定的历史记录,不论是修改还是立即执行,都可以完成。
这个扩展以 !
(叹号) 开头。
!!
重复上一条命令!10
重复历史记录中第 10 条命令!-2
重复历史记录中倒数第二条命令!string
重复历史记录中最后一条以string
开头的命令!?string
重复历史记录中最后一条包含string
的命令^str1^str2^
把上一条命令中的str1
替换成str2
, 然后再执行!!:$
扩展成上一条命令的最后一个参数 ( 完全可以用Alt+.
快捷键啊! )!string:n
扩展成最后一条以string
开头的命令的第n
个参数....
!?string
栗子
假设你曾经执行过这样一条命令:
$ /usr/local/apache2/bin/apachectl restart
然后过了一会儿你想重复这个命令,然后你这样做:
$ !apache
-bash: !apache: event not found
哔~ 找不到!
当然,因为曾经的那条命令并不是以 apache
开头的,但是:
$ !?apache
/usr/local/apache2/bin/apachectl restart
这样就会执行,因为这条命令包含了 apache
这个字。
^str1^str2^
栗子
作者给的例子太牵强,我给个实用的:
➤ cat cal_random.sh
#!/bin/bash
echo hi
test(){
for i in {1..9};do
echo $i;
done
}
... ... ...
exit 0
➤ ^cat^less
less cal_random.sh
➤
哈,这个也不实用,因为要达到这样的目的有好多方法,而替换这一种实在太麻烦了。
!!:$
栗子
废话不说,上代码 ~!
➤ cp cal_random.sh cal_random.sh.bak
➤ head -n 2 !!:$
head -n 2 cal_random.sh.bak
#!/bin/bash
echo hi
➤
在这个例子中, !!:$
被扩展成了上一条命令的最后一个参数,可以理解为正则的 $
表示最后一样。
!string:n
栗子
曾经执行了这样一条命令
cat file1 file2 file3
然后你想截取其中的第二个参数,
那么你就可以这样(确保最后一条以 cat 开头的命令是它):
ls !cat:2
上面这些东西用好了真的很方便! 尽管我一直用快捷键...
本书简介:
- Linux 进阶技巧
- 巧妙的命令组合
- Bash 某些技巧
- 一共一百零一个(包括充数的)
- 最后有个奖励章(额外技巧)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论