Linux系统运维常用命令集锦
2025.09.19 14:37浏览量:0简介:本文汇总Linux系统运维核心命令,涵盖进程管理、文件操作、网络诊断、日志分析等场景,提供高效运维的实用指南。
Linux系统运维常用命令集锦:从基础到进阶的实用指南
引言
Linux系统因其稳定性、灵活性和开源特性,成为服务器运维的首选。无论是云服务器管理、本地数据中心维护,还是开发环境搭建,熟练掌握Linux命令是运维工程师的核心能力。本文将从系统监控、文件管理、网络诊断、进程控制等核心场景出发,系统梳理Linux运维中的高频命令,并结合实际案例说明其应用场景。
一、系统信息与性能监控
1. 系统概况查看:uname
与hostname
uname -a
:显示完整的系统信息(内核版本、主机名、架构等)。$ uname -a
Linux hostname 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
此命令常用于快速确认系统环境,尤其在多服务器管理中区分不同节点的配置。
hostname
:查看或修改主机名。$ hostname
server-01
$ sudo hostnamectl set-hostname new-server # 修改主机名(需root权限)
2. 资源占用分析:top
、htop
与vmstat
top
:动态显示进程资源占用(CPU、内存、I/O)。- 交互操作:按
M
按内存排序,P
按CPU排序,k
终止进程。 - 替代工具:
htop
(支持鼠标操作、颜色高亮、树状视图)。$ htop # 需安装(sudo apt install htop)
- 交互操作:按
vmstat 1
:实时监控系统整体性能(进程、内存、磁盘I/O)。$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 123456 8192 524288 0 0 10 5 20 30 10 5 85 0 0
- 关键指标:
us
(用户态CPU占用)、wa
(I/O等待时间)。若wa
持续高于20%,可能存在磁盘瓶颈。
二、文件与目录管理
1. 高效文件操作:find
、grep
与rsync
find
:按条件搜索文件(名称、类型、时间)。$ find /var/log -name "*.log" -mtime +7 -delete # 删除7天前的日志文件
$ find ~ -type f -size +100M # 查找家目录下大于100MB的文件
grep
:文本内容搜索(支持正则表达式)。$ grep -r "error" /var/log/ # 递归搜索日志目录中的"error"关键词
$ grep -i "failed" access.log | wc -l # 统计包含"failed"的行数(忽略大小写)
rsync
:增量同步文件(本地或远程)。$ rsync -avz --delete /backup/ user@remote:/backups/ # 同步本地备份到远程服务器
- 参数说明:
-a
(归档模式)、-v
(详细输出)、-z
(压缩传输)、--delete
(删除目标端多余文件)。
2. 磁盘空间管理:df
、du
与lsof
df -h
:查看磁盘分区及使用情况(人类可读格式)。$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
du -sh *
:统计目录占用空间。$ du -sh /var/log/ # 显示/var/log目录总大小
1.2G /var/log/
lsof | grep deleted
:查找已删除但未释放的文件(常见于日志文件)。$ lsof | grep deleted | awk '{print $9}' | xargs ls -l # 显示被删除文件的详细信息
- 解决方案:重启占用文件的进程或执行
> file.log
清空文件。
三、网络诊断与安全
1. 连通性测试:ping
、traceroute
与mtr
ping -c 4 example.com
:发送4个ICMP包测试网络连通性。$ ping -c 4 example.com
PING example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=12.3 ms
mtr example.com
:结合traceroute
和ping
的实时诊断工具。$ mtr --report example.com # 生成报告格式输出
2. 端口与服务监控:netstat
、ss
与lsof
ss -tulnp
:查看监听端口及对应进程(ss
是netstat
的现代替代)。$ ss -tulnp | grep 80
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
lsof -i :22
:查找占用22端口的进程。$ lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:ssh (LISTEN)
四、进程与用户管理
1. 进程控制:ps
、kill
与systemctl
ps aux | grep nginx
:查看nginx进程详情。$ ps aux | grep nginx
root 1234 0.0 0.1 123456 7890 ? S 10:00 0:00 nginx: master process
www-data 5678 0.0 0.0 234567 1234 ? S 10:00 0:00 nginx: worker process
kill -9 PID
:强制终止进程(慎用,可能导致数据丢失)。$ kill -9 5678 # 终止PID为5678的进程
systemctl
:管理系统服务(适用于systemd系统)。$ systemctl status nginx # 查看服务状态
$ systemctl restart nginx # 重启服务
$ systemctl enable nginx # 开机自启
2. 用户与权限管理:sudo
、useradd
与chmod
sudo -l
:查看当前用户的sudo权限。$ sudo -l
User admin may run the following commands on this host:
(ALL) ALL
useradd -m -s /bin/bash newuser
:创建用户并指定shell。$ sudo useradd -m -s /bin/bash newuser
$ sudo passwd newuser # 设置密码
chmod 755 script.sh
:修改文件权限(所有者可读写执行,组和其他用户可读执行)。$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 user group 1234 Jan 1 10:00 script.sh
五、日志与故障排查
1. 日志分析:journalctl
与tail
journalctl -u nginx --since "2023-01-01" --until "2023-01-02"
:查询nginx服务在指定时间段的日志。$ journalctl -u nginx --no-pager -n 50 # 显示最近50条日志(不分页)
tail -f /var/log/nginx/access.log
:实时跟踪日志文件新增内容。$ tail -f /var/log/nginx/access.log | grep "404" # 仅显示404错误
2. 故障定位:dmesg
与strace
dmesg | grep -i error
:查看内核日志中的错误信息。$ dmesg | grep -i error
[ 2.345678] sd 0
0
[sda] Attached SCSI disk
[ 3.456789] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
strace -p PID
:跟踪进程的系统调用(用于调试程序行为)。$ strace -p 1234 # 跟踪PID为1234的进程
六、进阶技巧:脚本与自动化
1. 批量操作:xargs
与parallel
find /tmp -name "*.tmp" | xargs rm
:删除所有.tmp文件。$ find /tmp -name "*.tmp" | xargs rm -v # 显示删除的文件名
parallel
:并行执行命令(需安装)。$ parallel -j 4 "gzip {}" ::: *.log # 并行压缩4个日志文件
2. 定时任务:crontab
crontab -e
:编辑当前用户的定时任务。$ crontab -e
# 每天凌晨3点备份/var/www目录
0 3 * * * tar -czf /backup/www-$(date +\%Y\%m\%d).tar.gz /var/www
- 注意事项:
%
在crontab中需转义为\%
。
总结
Linux系统运维命令覆盖了从基础监控到高级故障排查的全流程。掌握本文提及的命令组合(如vmstat
+top
定位性能瓶颈、rsync
+cron
实现自动化备份),可显著提升运维效率。建议通过实际场景练习(如模拟磁盘满、服务不可用等故障)加深理解,并定期复习命令参数(如grep
的-A
、-B
上下文显示)。对于复杂任务,可结合Shell脚本或Ansible等工具实现自动化,进一步降低人为错误风险。
发表评论
登录后可评论,请前往 登录 或 注册