1. Linux命令概述与学习路径
作为一名从业十年的Linux系统管理员,我深知命令行操作是Linux系统的灵魂所在。与Windows不同,Linux系统中90%以上的管理任务都是通过命令行完成的。无论是部署服务、排查故障还是自动化运维,熟练掌握常用命令都是必备技能。
Linux命令通常由三部分组成:命令本身、选项参数和操作对象。例如在ls -l /home这个命令中:
ls是命令主体,表示列出目录内容-l是选项参数,表示以长格式显示/home是操作对象,指定要查看的目录
学习Linux命令的建议路径:
- 先掌握基础文件操作命令(如ls、cd、cp等)
- 然后学习文本处理命令(grep、awk、sed等)
- 再深入系统管理命令(ps、top、systemctl等)
- 最后掌握网络和权限管理命令
提示:Linux命令区分大小写,且大多数命令都有丰富的参数选项。建议初学者先掌握常用参数,后续再逐步扩展。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件与目录操作命令精解
2.1 核心文件操作命令
ls命令可能是使用频率最高的命令之一,但很多人只停留在ls -l的基础用法。实际上,结合不同参数可以实现更强大的功能:
bash复制# 按文件大小排序显示(S大写)
ls -lS
# 按修改时间倒序显示(最新修改的文件在前)
ls -lt
# 显示文件inode号(排查硬链接时有用)
ls -i
# 递归显示子目录内容
ls -R
cp命令在复制大文件时有个实用技巧——使用pv命令显示进度:
bash复制# 需要先安装pv工具:yum install pv -y
pv bigfile.iso > /backup/bigfile.iso
2.2 目录操作进阶技巧
创建多级目录时,mkdir -p可以自动创建父目录。这在编写部署脚本时特别有用:
bash复制# 安全创建目录(先检查是否存在)
[ -d "/data/logs" ] || mkdir -p /data/logs
rm命令有个危险的特性——删除软链接目录时如果误加/,会删除目标目录内容而非链接本身:
bash复制# 错误示例:这会把/target实际内容删除
rm -rf /path/to/link/
# 正确做法:不加斜杠
rm -rf /path/to/link
3. 文本处理与查看命令实战
3.1 高效查看文件内容
对于大日志文件,less比more更强大,支持反向搜索、跳转等操作:
/keyword向前搜索?keyword向后搜索G跳转到文件末尾gg跳转到文件开头
tail -f是监控日志的神器,但生产环境中更推荐使用multitail工具,它可以:
- 同时监控多个日志文件
- 支持颜色高亮不同日志级别
- 具备分屏显示功能
3.2 grep高级用法
grep的正则表达式功能非常强大,几个实用技巧:
bash复制# 显示匹配行及前后3行内容(排查日志时特别有用)
grep -A3 -B3 "error" app.log
# 统计匹配行数
grep -c "404" access.log
# 排除注释行(#开头)和空行
grep -vE '^#|^$' config.conf
# 递归搜索目录下所有文件
grep -r "function_name" /project/src/
4. 系统监控与管理命令详解
4.1 进程管理进阶
ps aux的输出解读技巧:
- %CPU:进程占用的CPU百分比
- %MEM:进程占用的内存百分比
- VSZ:虚拟内存使用量(KB)
- RSS:物理内存使用量(KB)
- STAT:进程状态(S=休眠,R=运行,Z=僵尸进程)
top命令的实用交互命令:
1:显示所有CPU核心的负载b:高亮显示运行中的进程H:显示线程而非进程shift + >:按指定列排序
4.2 资源监控技巧
free -h的输出中,需要特别关注:
- available:实际可用内存(比free更准确)
- swap使用率:如果持续很高,说明物理内存不足
df -h查看磁盘空间时,注意/根分区使用率,建议保持在80%以下。可以使用ncdu工具可视化分析磁盘占用:
bash复制# 安装ncdu
yum install ncdu -y
# 扫描目录大小
ncdu /var/log
5. 权限与用户管理实战
5.1 权限设置最佳实践
chmod的数字表示法原理:
- 读(r)=4,写(w)=2,执行(x)=1
- 三个数字分别代表所有者、所属组、其他用户
- 例如755表示:
- 所有者:4+2+1=7(rwx)
- 所属组:4+1=5(r-x)
- 其他用户:4+1=5(r-x)
安全建议:
- 配置文件通常设为644(rw-r--r--)
- 可执行脚本设为755(rwxr-xr-x)
- 敏感文件设为600(rw-------)
5.2 用户管理技巧
创建用户时的推荐参数:
bash复制useradd -m -s /bin/bash -c "Application User" -G appgroup appuser
-m:创建家目录-s:指定登录shell-c:注释信息-G:附加组
批量修改用户密码:
bash复制# 生成加密密码
pass=$(openssl passwd -1 "newpassword")
# 批量修改
for user in user1 user2 user3; do
usermod -p "$pass" $user
done
6. 网络管理与故障排查
6.1 网络状态分析
ss命令比netstat更高效,常用组合:
bash复制# 查看所有TCP连接
ss -t -a
# 查看监听端口及进程
ss -ltnp
# 统计各种状态连接数
ss -s
网络故障排查流程:
ping测试基础连通性traceroute检查路由路径telnet或nc测试端口连通性curl -v查看HTTP请求详情
6.2 防火墙管理
CentOS 7+使用firewalld:
bash复制# 开放端口
firewall-cmd --permanent --add-port=8080/tcp
# 重载配置
firewall-cmd --reload
# 查看开放端口
firewall-cmd --list-ports
7. 实用脚本与自动化技巧
7.1 常用命令组合
查找并删除7天前的日志文件:
bash复制find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;
统计每种HTTP状态码出现的次数:
bash复制awk '{print $9}' access.log | sort | uniq -c | sort -nr
7.2 别名设置建议
将以下内容添加到~/.bashrc中:
bash复制# 安全操作
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# 便捷查看
alias ll='ls -lh --color=auto'
alias l.='ls -d .* --color=auto'
# 快速导航
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
# 系统监控
alias meminfo='free -m -l -t'
alias cpuinfo='lscpu'
alias diskinfo='df -h'
8. 常见问题排查指南
8.1 磁盘空间不足
排查步骤:
df -h确认哪个分区满了du -sh /* | sort -rh | head -10找出大目录- 检查日志文件:
ls -lhS /var/log/ - 查找大文件:
find / -type f -size +100M -exec ls -lh {} \;
8.2 内存泄漏分析
工具组合使用:
top观察内存增长趋势ps aux --sort=-%mem | head查看内存占用高的进程pmap -x <PID>分析进程内存分布valgrind --tool=memcheck进行详细检测(需安装)
8.3 性能瓶颈定位
系统级检查:
bash复制# CPU负载
uptime
# 内存使用
vmstat 1 5
# 磁盘IO
iostat -x 1 5
# 网络流量
iftop -nNP
9. 命令安全使用规范
-
危险命令防范:
- 避免直接使用
rm -rf /(可在.bashrc中添加别名保护) - 谨慎使用
chmod -R 777 /(会导致严重安全问题) - 生产环境慎用
kill -9(可能导致数据不一致)
- 避免直接使用
-
推荐的安全实践:
- 使用
mv替代直接删除,先移动到临时目录 - 执行批量操作前先用
echo测试命令 - 关键操作前创建快照或备份
- 使用
-
权限管理原则:
- 遵循最小权限原则
- 定期审计用户权限
- 使用sudo替代直接root操作
10. 学习资源与进阶建议
10.1 命令学习资源
- 官方文档:
man和info命令 - 交互式学习:
tldr工具(简化的命令示例) - 在线资源:Linux Documentation Project
10.2 技能进阶路径
- 掌握Shell脚本编程
- 学习正则表达式
- 深入理解Linux权限模型
- 学习系统性能调优
- 掌握自动化运维工具(Ansible等)
10.3 推荐工具
- 文件比较:
meld(图形化)或vimdiff - 日志分析:
lnav(支持多种日志格式) - 网络调试:
tcpdump和Wireshark - 性能分析:
perf和strace
在实际工作中,我建议建立一个自己的命令手册,记录常用命令和解决问题的方案。随着经验积累,你会发现同样的任务可以有多种实现方式,而选择最高效的方式正是资深工程师的价值所在。
