Linux命令行里五个被严重低估的小技巧,用过的都说香

王尘宇 实用技巧 3

不是那种ls -la级别的入门技巧,是我用了很多年Linux之后才慢慢发现的几个操作,知道的人不多,但每次用都能省不少时间。

1. Ctrl+R之后按Ctrl+R继续翻

这个知道的人不少但很多人不会用。Ctrl+R进入反向搜索后,输入关键词找到第一个匹配。如果这不是你要的命令,再按一次Ctrl+R,会继续往前翻。不用重新输入,特别好用。

还有一个小众用法:Ctrl+R之后按Ctrl+Shift+R,可以在搜索结果中跳过当前这条看下一个匹配。

2. fc命令——把上一条命令放进编辑器

你打了一条很长的命令,发现中间有个地方写错了。大部分人会用方向键移上去改,或者用readline的快捷键。试试这个:直接在终端输入fc,它会把你上一条命令放进默认编辑器(通常是vim或nano)里,编辑完保存退出,命令自动执行。

如果只想编辑倒数第N条命令:fc -l列出历史编号,然后fc 编号。比方向键翻半天快多了。

3. !$和!!的进阶用法

!$表示上一条命令的最后一个参数。比如你先mkdir -p /var/www/very/long/path,然后想cd进去,直接cd !$就行。比手打路径快10倍。

但更厉害的是可以组合:!$:h表示去掉最后一个路径段的目录(dirname),!$:t表示只取文件名部分(basename),!$:r表示去掉扩展名。这三个组合起来,处理文件路径的效率起飞。

4. tee命令的真实用途

大部分人知道tee可以同时输出到屏幕和文件:command | tee output.txt。但tee的真正威力在于权限:sudo echo something > /etc/protected_file不行但echo something | sudo tee /etc/protected_file可以。因为tee本身有sudo权限。

还有一个用法:把中间过程的输出存下来同时继续管道传递。比如:cat huge.log | tee filtered.log | grep ERROR | wc -l。你既得到了ERROR的行数,又保存了一份过滤后的日志。

5. trap捕获信号做清理

写脚本的时候,加一行trap 'rm -f /tmp/mytempfile; echo interrupted' EXIT。这样不管脚本是正常结束还是被Ctrl+C中断还是报错退出,临时文件都会被清理。这个习惯可以避免服务器上积累一堆没用的临时文件。

陷阱信号可以指定:trap 'echo cleanup' INT TERM EXIT。INT是Ctrl+C,TERM是kill默认信号,EXIT是无论怎么退出都触发。

这五个技巧每个只用一行,不用装任何工具,全部内置于bash。学会了之后日常运维效率能明显提升,特别是fc和!$,用顺手了根本回不去。

标签: Linux技巧 命令行 bash 运维 效率

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~