命令行效率提升技巧

命令行 · 实用技巧

命令行是 Linux 的灵魂。掌握一些技巧后,很多操作比图形界面快得多。这里分享我平时用得最多的一些命令行技巧。

历史命令搜索

Ctrl + R 反向搜索历史命令,输入关键词就能快速找到之前执行过的命令,比按上箭头翻找快太多了。

# 按 Ctrl+R 后输入关键词
(reverse-i-search)`docker': docker compose up -d

# 查看最近执行过的命令
history | tail -20

# 搜索包含某个关键词的历史命令
history | grep "git push"

管道与组合命令

管道 | 是 Linux 最强大的概念之一,把一个命令的输出作为另一个命令的输入,可以组合出很强的功能。

# 找出占用空间最大的 10 个文件
du -ah /var/log | sort -rh | head -10

# 统计当前目录下各类型文件数量
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn

# 实时监控日志中的错误信息
tail -f /var/log/syslog | grep --color "error\|fail"

# 批量查找并替换文件内容
grep -rl "old_text" . | xargs sed -i 's/old_text/new_text/g'

别名(alias)

把常用的长命令设置成短别名,写到 ~/.bashrc~/.zshrc 里,每次开终端自动生效。

# 在 ~/.bashrc 中添加
alias ll='ls -alFh'
alias gs='git status'
alias gp='git push'
alias dc='docker compose'
alias ports='ss -tlnp'
alias myip='curl -s ifconfig.me'
alias cls='clear'

# 添加后执行 source 使其生效
source ~/.bashrc

xargs 批量处理

xargs 可以把标准输入转换成命令参数,配合管道使用非常强大。

# 删除所有 .log 文件
find /tmp -name "*.log" | xargs rm -f

# 批量压缩图片(需要 imagemagick)
find . -name "*.png" | xargs -I {} convert {} -quality 80 {}

# 并行执行(-P 指定并发数)
find . -name "*.gz" | xargs -P 4 gunzip

花括号展开

花括号展开可以快速生成多个文件名或路径,省去重复输入。

# 一次创建多个目录
mkdir -p project/{src,dist,docs,test}

# 快速备份文件
cp config.yml{,.bak}

# 同时移动多个文件
mv file.{txt,md}

实用小技巧

命令行技巧没有尽头,但不用一次学完。先把别名和管道用起来,已经能省下很多时间了。遇到重复操作的时候再想想有没有更好的办法,慢慢就会越来越熟练。