🏠 首页 攻略 终端效率翻倍:8个被低估的Linux命令

终端效率翻倍:8个被低估的Linux命令

别再用cd和ls打天下了。这8个Linux命令能帮你提速3倍,从文件搜索到批量重命名,每个都是日常高频刚需。

终端效率翻倍:8个被低估的Linux命令

你是不是也这样:每天打开终端,cd进目录,ls看文件,然后继续cd、ls、cd……

循环往复,像个莫比乌斯环。

我有个朋友在一家创业公司做后端开发,每天花2小时在终端里翻文件、找日志、改配置。后来我给他安利了几个命令,现在他15分钟搞定,剩下时间摸鱼去了。

今天分享8个真正实用的Linux命令。不是那些教科书里的基础款,而是老鸟们私藏的效率神器。


1. fd:比find快10倍的搜索工具

find命令谁不会?但你知道它有多慢吗?

在十万级文件的项目里,find . -name "*.py" 可能要跑好几秒。fd 是Rust写的替代品,默认开启彩色输出、忽略.gitignore,速度飞起。

# 传统find
find . -name "*.json" -type f

# fd,简洁多了
fd ".json$"

# 只看前5个结果
fd ".py$" -d 3

# 配合grep,找包含特定字符串的文件
fd -x grep -l "TODO" .

安装:sudo apt install fd-find,然后用fdfind或别名alias fd=fd-find

实际场景:上次我找一个配置项在哪,项目有8000个文件,find跑了12秒,fd用了0.3秒。


2. ripgrep(rg):代码搜索的终极武器

如果你还在用grep搜代码,真的该试试rg。

它是专门为源代码设计的搜索工具,自动忽略.gitignore里的文件,支持正则,速度快到离谱。

# 在项目里搜所有函数定义
rg "^func "

# 只搜Go文件
rg "database" --type go

# 显示匹配行号
rg "TODO" -n

# 替换预览(安全模式)
rg -l "old_pattern" | xargs sed -i 's/old_pattern/new_pattern/g'

安装:sudo apt install ripgrep

实际场景:重构代码时,我要把项目中所有getUserInfo改成fetchUserProfile。rg先找出所有匹配文件,确认无误后再批量替换。以前手动找要半小时,现在3分钟。


3. bat:带语法高亮的cat

cat命令的输出是纯文本,没有颜色,没有行号,没有git状态提示。

bat把这些全加了进去,而且兼容cat的参数。

# 替代cat,自带语法高亮
bat config.yaml

# 显示行号和git修改标记
bat -n --git main.go

# 复制到剪贴板(需配置)
bat file.txt | xclip

# 对比两个文件的差异
bat --diff file_old.txt file_new.txt

安装:sudo apt install bat

实际场景:看配置文件的时候,bat的高亮让key-value结构一目了然。特别是看JSON和YAML,再也不用眯着眼睛数括号了。


4. jq:命令行里的JSON手术刀

JSON数据在终端里就是一坨乱码。jq能把它切成你想要的形状。

# 格式化JSON
curl api.example.com/data | jq '.'

# 提取特定字段
curl api.example.com/users | jq '.[] | {name, email}'

# 过滤条件
jq '.users[] | select(.age > 25)' data.json

# 转换数组为CSV
jq -r '.[] | [.id, .name] | @csv' data.json

安装:sudo apt install jq

实际场景:调试API接口时,curl返回的JSON经常是压缩成一行的。用jq格式化后,一眼就能看出数据结构。配合管道,还能做各种筛选和转换。


5. entr:文件变化时的自动化执行

这个命令可能很多人没听过,但它能改变你的工作流。

entr的作用是:当指定文件发生变化时,自动执行某个命令。

# 文件变动时重新运行测试
ls *.go | entr go test ./...

# 监听CSS文件,自动编译
ls *.scss | entr sass style.scss style.css

# 配合watchdog做实时预览
ls templates/*.html | entr python -m http.server 8000

安装:sudo apt install entr

实际场景:写前端项目时,每次改完CSS都要手动刷新浏览器。装了entr之后,scss文件一保存,sass自动编译,浏览器热更新同步触发。开发体验提升不止一个档次。


6. fzf:模糊搜索的瑞士军刀

fzf是通用的命令行模糊搜索工具,可以搜索文件、历史命令、进程等等。

# 交互式文件搜索
fzf

# 搜索历史命令(按Ctrl+R增强版)
history | fzf

# 在管道中使用
ls -la | fzf --preview 'head -20 {}'

# 结合rg,搜索代码内容
rg --files | fzf | xargs code

安装:sudo apt install fzf,记得运行fzf --install配置shell绑定。

实际场景:项目里有几十个配置文件,每次改配置都要先找到对应的文件名。用ls *.yaml | fzf,输入关键字就能瞬间定位,比tab补全还快。


7. parallel:让CPU满血运行

单核跑任务?太浪费了。GNU parallel可以把一个命令并行化,充分利用多核CPU。

# 串行处理10个文件(慢)
for f in *.jpg; do convert "$f" "${f%.jpg}.png"; done

# 并行处理(快N倍)
ls *.jpg | parallel convert {} {.}.png

# 控制并发数
ls *.log | parallel -j 4 "gzip {}"

# 结合find,搜索+处理一条龙
find . -name "*.tmp" | parallel rm {}

安装:sudo apt install parallel

实际场景:有一次要处理500张截图转PDF,串行跑了40分钟。用parallel开了8个线程,3分钟搞定。老板以为我换了台新服务器。


8. tmux:终端里的多窗口管理器

tmux让你在一个终端窗口里开多个面板,断线重连也不丢会话。

# 启动tmux会话
tmux new -s work

# 分割窗口
Ctrl+b % (垂直分割)
Ctrl+b " (水平分割)

# 切换面板
Ctrl+b 方向键

# 退出但不关闭会话
Ctrl+b d

# 重新连接
tmux attach -t work

安装:sudo apt install tmux

实际场景:SSH连远程服务器开发,网络一断,所有进程全挂。用了tmux之后,断开重连,会话还在,程序还在跑,从容得像什么都没发生过。


总结:挑2-3个先用起来

8个命令全记住不现实。我的建议是:

  1. 立刻装fd + rg:搜索效率立竿见影
  2. 加上jq:处理API响应不再头疼
  3. 养成tmux习惯:远程开发必备

其他的,慢慢来。先用起来,再深入。

终端不是用来背命令的,是用来干活的。工具越多越好,但用得顺手的,两三个就够了。

你现在最常用的终端命令是什么?评论区聊聊。