1. Linux命令体系全景概览
作为从1999年就开始使用Linux的老用户,我见证了命令行工具从简陋到强大的进化历程。很多人觉得Linux命令繁杂难记,其实只要掌握其设计哲学和分类规律,就能快速构建起系统化的知识框架。现代Linux发行版通常包含2000多个命令,但日常工作中高频使用的核心命令不超过50个。
命令行的强大之处在于组合使用——通过管道符将简单命令连接起来,就能完成图形界面需要复杂操作才能实现的功能。比如统计当前目录下所有.py文件的行数:
bash复制find . -name "*.py" | xargs wc -l | sort -nr
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心命令分类解析
2.1 文件系统操作命令
文件操作是Linux的基础,这些命令我每天都要用几十次:
- cp/mv/rm:文件复制、移动和删除。特别注意rm -rf的破坏性,建议先echo确认路径:
bash复制echo rm -rf /path/to/dir/* # 确认无误后再去掉echo
- find:文件搜索神器。我常用的组合:
bash复制find /var/log -size +10M -exec ls -lh {} \; # 查找大于10MB的日志文件
- tar:打包压缩。记住这个万能组合:
bash复制tar -czvf archive.tar.gz /path # 压缩
tar -xzvf archive.tar.gz -C /target # 解压
重要提示:Linux中文件删除后难以恢复,建议设置alias rm='rm -i'或者使用trash-cli工具替代直接删除
2.2 文本处理三剑客
grep、awk、sed这三个工具配合正则表达式,可以解决90%的文本处理需求:
- grep:文本搜索。我常用的高级技巧:
bash复制grep -P '正则表达式' # 启用PCRE正则
grep -r --include="*.java" "pattern" /path # 递归搜索特定类型文件
- awk:字段处理。统计Nginx日志中各IP的访问量:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr
- sed:流编辑器。批量替换文件内容:
bash复制sed -i.bak 's/old/new/g' *.txt # 原地修改并创建备份
2.3 系统监控与进程管理
服务器运维离不开这些命令:
- top/htop:实时监控。我的htop配置技巧:
code复制F2进入设置 → 显示选项 → 勾选"树状视图"和"自定义线程名称"
- ps:进程查看。常用组合:
bash复制ps auxf # 显示进程树
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head # 内存占用排序
- lsof:查看打开文件。排查"文件被占用"问题:
bash复制lsof /path/to/file
lsof -i :8080 # 查看端口占用
3. 网络相关命令实战
3.1 网络配置与诊断
- ip:现代网络配置工具(已取代ifconfig):
bash复制ip addr show # 查看IP
ip route # 查看路由
- ss:socket统计(比netstat更高效):
bash复制ss -tulnp # 类似netstat -tulnp
- traceroute/mtr:路由追踪。mtr提供实时动态视图:
bash复制mtr -w 8.8.8.8
3.2 文件传输命令
- scp:安全拷贝。限速传输避免影响生产网络:
bash复制scp -l 8000 largefile user@remote:/path # 限制8000Kbps
- rsync:增量同步。我的备份脚本核心:
bash复制rsync -avz --delete --progress /src/ user@remote:/dest/
4. 系统管理进阶命令
4.1 权限与用户管理
- chmod:权限设置。记住这个数字对应关系:
code复制r=4, w=2, x=1
chmod 755 file # owner:rwx, group:r-x, others:r-x
- sudo:提权执行。安全建议:
bash复制sudo -l # 查看自己被授权的命令
sudo -i # 切换到root环境(慎用)
4.2 包管理命令
不同发行版的包管理工具:
| 发行版 | 安装命令 | 搜索命令 |
|---|---|---|
| Debian | apt install package | apt search keyword |
| RHEL | yum install package | yum search keyword |
| Arch | pacman -S package | pacman -Ss keyword |
5. 实用技巧与排错指南
5.1 命令行效率提升
- history优化配置(~/.bashrc):
bash复制export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTTIMEFORMAT="%F %T " # 添加时间戳
shopt -s histappend # 多终端共享历史
- alias快捷命令:
bash复制alias ll='ls -alhF'
alias grep='grep --color=auto'
alias df='df -h'
5.2 常见问题排查
问题1:磁盘空间不足但找不到大文件
bash复制du -h --max-depth=1 / | sort -h # 查看目录大小
lsof -nP | grep deleted # 查找已删除但未释放的文件
问题2:CPU负载高但top看不出异常
bash复制perf top # 查看函数级CPU占用
pidstat 1 # 监控进程资源使用变化
6. 命令组合实战案例
6.1 日志分析示例
分析Nginx访问日志TOP10 URL:
bash复制awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -10
6.2 系统健康检查脚本
一键检查脚本:
bash复制#!/bin/bash
echo "===== $(date) ====="
echo "CPU负载:$(uptime)"
echo "内存使用:$(free -h)"
echo "磁盘空间:"
df -h | grep -v tmpfs
echo "TOP进程:"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -5
7. 学习资源与进阶建议
-
推荐书籍:
- 《Linux命令行与shell脚本编程大全》
- 《鸟哥的Linux私房菜》
-
练习网站:
- OverTheWire Bandit游戏
- LeetCode Shell题库
-
我的学习心得:
- 每天掌握1个新命令的3个用法
- 遇到图形界面操作时思考命令行替代方案
- 建立自己的命令备忘库(我用的TiddlyWiki)
- 定期review历史命令记录优化工作流
