技术文摘
bash历史扩展功能之感叹号
bash历史扩展功能之感叹号
在bash shell环境中,感叹号(!)有着强大的历史扩展功能,它能够极大地提高我们的工作效率,让命令行操作变得更加便捷和灵活。
感叹号的基本用法之一是调用最近执行过的命令。比如,当我们输入“!-1”时,它会执行上一条命令。如果想要执行再上一条命令,就可以使用“!-2”,以此类推。这种方式在我们需要重复执行某个命令时非常有用,无需再次输入冗长的命令内容,只需简单的几个字符就能快速完成操作。
另一个常用的功能是根据命令的开头字符来调用历史命令。例如,我们之前执行过“ls -l”命令,现在想要再次执行它,只需要输入“!ls”,bash就会自动查找历史命令中以“ls”开头的最近一条命令并执行。这种方式尤其适用于一些具有特定前缀的常用命令,能够快速定位和执行。
感叹号还可以结合参数来使用。比如“!$”,它代表上一条命令的最后一个参数。假设我们刚刚执行了“cp file1.txt dir1”,现在想要查看复制后的文件,就可以输入“ls!$”,这里的“!$”会被替换为“dir1”,从而快速查看目标目录的内容。
“!”则表示上一条命令的所有参数。如果上一条命令是“mv file2.txt file3.txt dir2”,那么输入“echo!”,就会输出“file2.txt file3.txt dir2”。
在实际工作中,bash历史扩展功能的感叹号可以帮助我们节省大量的时间和精力。特别是在处理复杂的命令和频繁重复的操作时,它的优势更加明显。我们无需记住完整的命令内容,只需灵活运用感叹号及其相关组合,就能快速调用历史命令并进行相应的操作。
不过,在使用感叹号时也需要注意一些问题。比如在某些情况下,可能会因为历史命令的顺序或内容变化导致意外的结果。在使用之前最好确认一下要执行的命令是否符合预期。熟练掌握bash历史扩展功能之感叹号,能够让我们在命令行操作中如鱼得水,提高工作效率。
- for 循环与 onclick 事件里循环变量 i 为何始终为 3
- Vue项目如何自动打开浏览器并访问localhost
- React Native 项目升级至新架构指南
- Emmet中*运算符失效的原因
- Google 9.0下Vue项目Deep样式失效:常见问题剖析与解决之道
- Vue项目自动打开浏览器并显示正确地址的方法
- 按钮点击后 :focus伪类样式为何仍可见
- 多语言小程序实现自动语言切换的方法
- Emmet语法中*n不起作用如何解决
- Vue项目用htmlWebpackPlugins动态配置Favicon后页面空白无法加载的解决办法
- Flex 布局下元素宽度为 0 时怎样防止挤占其他元素空间
- Google 9.0 下 Vue 项目 common.css 里 deep 样式失效的原因
- Vue项目中Common样式文件Deep不生效的原因探讨
- 按钮点击后 :focus 伪类效果为何不消失
- Flex 布局下怎样防止 width: 0 占用元素空间