Linux命令行是系统管理员与服务器对话的桥梁。与图形界面不同,命令行提供了精确、可复现、可自动化的操作方式。本文从实际运维场景出发,精选50个核心命令,覆盖文件管理、系统监控、网络诊断、文本处理四大维度,帮助你建立扎实的Linux操作基础。
一、文件与目录管理(12个命令)
文件操作是Linux最基础的能力。这12个命令构成了日常工作的完整闭环。
基础操作
ls 列出目录内容。ls -l 显示详细信息,包括权限、所有者、大小和修改时间;ls -a 显示隐藏文件;ls -lh 以人类可读格式显示文件大小。
cd 切换目录。cd ~ 回到家目录,cd - 返回上次所在目录,cd .. 返回上级目录。
pwd 显示当前工作目录的绝对路径,在脚本中常用于确认执行位置。
mkdir 创建目录。mkdir -p /a/b/c 递归创建多级目录,避免因父目录不存在而报错。
rm 删除文件或目录。rm -rf 强制递归删除,使用时务必确认路径,这是生产环境最危险的命令之一。
cp 复制文件。cp -r 递归复制目录,cp -p 保留文件属性,cp -i 覆盖前提示确认。
mv 移动或重命名。与cp不同,mv在同一文件系统内操作几乎瞬时完成,仅修改inode指向。
进阶查找与查看
find 全盘搜索文件。find /var/log -name "*.log" -mtime +30 -delete 可清理30天前的日志。注意:全盘搜索消耗资源,高负载时应避免使用。
touch 创建空文件或更新文件时间戳。常用于触发文件监听机制或备份标记。
cat 查看小文件内容。cat -n 显示行号,适合快速查看配置文件。
less 分页查看大文件。支持上下滚动、搜索、跳转,比more更灵活。按/搜索,n跳转到下一个匹配。
head/tail 查看文件首尾。tail -f 实时追踪文件追加内容,是查看日志的标准做法。
二、系统监控与进程管理(14个命令)
系统监控是运维的核心技能。这14个命令帮助你量化系统状态,定位性能瓶颈。
实时资源监控
top 实时显示进程资源占用。按P按CPU排序,M按内存排序,c显示完整命令行。htop是其增强版,提供彩色交互界面,需单独安装。
free 查看内存使用。free -h 以人类可读格式显示,重点关注available列——这是真正可用于新进程的内存,包含缓存和缓冲区。
df 查看磁盘空间。df -h 显示各分区使用率,df -i 查看inode使用情况。磁盘满往往表现为无法创建新文件,即使df显示有空间,也可能是inode耗尽。
du 统计目录大小。du -sh /var/log 快速查看目录总大小,du -h --max-depth=1 查看一级子目录大小,定位空间占用大户。
深度性能分析
vmstat 系统资源统计。vmstat 1 5 每秒采样一次,共5次。关键指标:r(运行队列长度,持续大于CPU核心数说明过载),wa(I/O等待时间占比,高说明磁盘瓶颈)。
iostat 磁盘I/O监控。iostat -x 1 显示扩展统计。%util接近100%说明磁盘饱和,await过高(>20ms)表明存在I/O延迟。
ps 查看进程快照。ps aux 显示所有进程详细信息,ps -ef 显示完整格式。配合grep筛选特定进程:ps aux | grep nginx。
kill/pkill 终止进程。kill PID 发送TERM信号,进程可优雅退出;kill -9 PID 强制终止(SIGKILL),进程无法捕获和忽略,可能导致数据丢失,应作为最后手段。
systemctl 服务管理。systemctl start/stop/restart/status nginx 控制服务状态,systemctl enable/disable nginx 设置开机自启。这是现代Linux(systemd)的标准工具。
journalctl 查看系统日志。journalctl -u nginx 查看特定服务日志,journalctl --since "1 hour ago" 查看最近1小时日志,journalctl -f 实时追踪。
uptime 查看系统负载。输出包含当前时间、运行时长、登录用户数、1/5/15分钟平均负载。负载值超过CPU核心数说明系统繁忙。
dmesg 查看内核日志。排查硬件驱动、系统启动问题时常用。dmesg | grep error 快速定位错误信息。
三、网络诊断与管理(12个命令)
网络问题排查需要系统性思维。这12个命令覆盖从物理层到应用层的完整诊断链条。
基础连通性测试
ping 测试网络连通性。ping -c 4 8.8.8.8 发送4个ICMP包后停止。关注丢包率和延迟波动,延迟突然增大往往意味着网络拥塞或路由变化。
traceroute 追踪路由路径。显示数据包到达目标经过的每一跳,帮助定位网络瓶颈发生在哪个网段。
连接与端口管理
netstat/ss 查看网络连接。netstat -tulnp 显示监听的TCP/UDP端口及对应进程,ss -tulnp 是新一代替代工具,执行速度更快。排查"端口被占用"或"服务未启动"时首选。
lsof 列出打开的文件和网络连接。lsof -i :80 查看占用80端口的进程,lsof -p 1234 查看特定进程打开的文件。在Linux中,一切皆文件,网络连接也不例外。
telnet/nc 测试端口连通性。telnet host 80 或 nc -zv host 80 快速验证TCP端口是否开放,不依赖应用层协议。
流量与抓包分析
tcpdump 网络抓包。tcpdump -i eth0 port 80 -w capture.pcap 抓取eth0网卡80端口流量并保存。配合Wireshark分析,是排查复杂网络问题的终极手段。
iftop/nethogs 实时流量监控。iftop -i eth0 按IP统计流量,nethogs eth0 按进程统计,快速定位带宽消耗大户。
远程操作与下载
ssh 安全远程登录。ssh user@host 建立加密连接,ssh -p 2222 user@host 指定非标准端口。建议配置密钥认证,禁用密码登录以提升安全性。
scp 安全文件复制。scp file.txt user@host:/path 上传文件,scp user@host:/path/file.txt ./ 下载文件。基于SSH协议,传输过程加密。
rsync 增量同步工具。rsync -avz --delete /local/ user@host:/remote/ 同步目录,只传输差异部分,支持断点续传,是备份和部署的标准工具。
curl/wget 命令行下载。curl -O http://example.com/file.zip 下载文件,curl -I 查看响应头,wget --mirror 镜像整个网站。API调试时,curl -X POST -d 'data' http://api 是必备技能。
四、文本处理与高级工具(12个命令)
Linux的文本处理能力是其强大之处。这12个命令构成了数据处理流水线。
搜索与过滤
grep 文本搜索。grep "ERROR" /var/log/syslog 过滤错误日志,grep -r "pattern" /path 递归搜索,grep -A 3 -B 2 显示匹配行的上下文。支持正则表达式,是日志分析的核心工具。
awk 文本分析与提取。awk '{print $1}' access.log 提取第一列(通常是IP),awk -F: '{print $1}' 指定冒号为分隔符。内置变量和函数支持复杂计算,是报告生成的利器。
sed 流编辑器。sed -i 's/old/new/g' file 原地替换文本,sed -n '10,20p' 打印指定行。适合批量修改配置文件。
排序与去重
sort 排序。sort -n 按数字排序,sort -r 倒序,sort -k 2 按第二列排序。常与uniq配合:sort file | uniq -c | sort -nr 统计频次并排序。
uniq 去重。uniq 去除相邻重复行,uniq -c 统计重复次数,uniq -d 只显示重复行。输入必须先排序。
wc 统计行数/单词数/字节数。wc -l 统计行数,配合管道快速计数:ps aux | wc -l 查看进程数量。
管道与重定向
tee 双向输出。command | tee output.txt 既在屏幕显示,又保存到文件,调试脚本时非常有用。
xargs 参数转换。find . -name "*.log" | xargs rm 将文件名作为参数传递给rm,xargs -I {} cp {} /backup/ 自定义占位符。解决"参数列表过长"问题。
tar 打包压缩。tar -czvf backup.tar.gz dir/ 创建gzip压缩包,tar -xzvf backup.tar.gz 解压。c创建、x解压、zgzip、jbzip2、v详细、f指定文件名。
chmod/chown 权限管理。chmod 755 file 设置权限(rwxr-xr-x),chmod u+x file 给所有者添加执行权,chown user:group file 修改所有者和组。权限问题是服务启动失败的常见原因。
五、学习建议与最佳实践
掌握命令不是死记硬背,而是理解其设计逻辑。建议遵循以下原则:
1. 优先阅读官方文档。 遇到陌生命令,首先执行man command查看手册页。man文档是最权威、最全面的参考资料。
2. 谨慎使用危险命令。 涉及删除、覆盖、格式化的操作,先使用-i(交互确认)或-n(模拟运行)参数测试。生产环境中,rm -rf前务必确认路径,建议先ls确认目标。
3. 善用历史与补全。Ctrl+R反向搜索历史命令,Tab自动补全路径和命令,减少输入错误。history查看命令历史,!n执行第n条历史命令。
4. 组合命令形成流水线。 Linux命令的精髓在于管道|,将多个小工具组合完成复杂任务。例如:cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10 统计Top 10访问IP。
5. 脚本化重复操作。 对于周期性任务,写入Shell脚本并设置crontab定时执行。自动化是运维效率的终极追求。