Linux服务器运维常用命令详解
发布时间:2026年7月15日 | 作者:系统管理员
Linux是服务器操作系统的主流选择,掌握Linux命令行操作是运维工程师和开发者的核心技能。无论是部署应用、诊断问题还是日常维护,熟练使用Linux常用命令都能事半功倍。本文整理了服务器运维中最高频使用的命令和技巧,涵盖文件管理、进程监控、网络诊断、磁盘管理等多个方面。
文件和目录管理
ls -lah:以人类可读格式显示所有文件(包括隐藏文件)du -sh *:查看当前目录下每个文件/文件夹的大小df -h:查看磁盘分区使用情况find /path -name "*.log":查找指定路径下的日志文件grep -rn "error" /var/log/:递归搜索日志中的错误信息tar -czf archive.tar.gz /path:打包并压缩目录rsync -avz /src/ user@host:/dest/:增量同步文件到远程服务器
进程和服务管理
ps aux可以查看所有运行中的进程。配合grep可以精确查找特定进程:ps aux | grep nginx。top和htop提供实时的系统资源监控界面,可以查看CPU、内存使用率和各进程的资源占用。systemctl是CentOS 7+/Ubuntu 16+上管理系统服务的标准工具:systemctl start|stop|restart|status nginx。kill命令用于终止进程,常用的信号有SIGTERM(15,优雅终止)和SIGKILL(9,强制终止)。
网络诊断命令
ping -c 4 google.com:测试网络连通性和延迟curl -I https://example.com:查看HTTP响应头wget https://example.com/file.zip:下载文件netstat -tlnp:查看所有监听中的TCP端口及其对应的进程ss -tlnp:netstat的现代替代版,性能更好traceroute google.com:追踪数据包到达目标经过的路由节点nslookup example.com:查询域名的DNS解析记录tcpdump -i eth0 port 80:抓取eth0网卡上80端口的网络包
日志查看技巧
日志分析是排查问题的关键手段。tail -f /var/log/nginx/access.log可以实时追踪日志更新,适合观察实时请求。less命令支持在日志文件中前后翻页搜索,按/键可以搜索关键词,按n键跳转到下一个匹配项。journalctl -u nginx --since "1 hour ago"使用systemd-journal查看最近一小时的Nginx日志。awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10这个命令组合可以统计访问量最高的10个IP地址。
性能监控与调优
vmstat 1每秒输出一次系统性能数据,包括进程、内存、交换分区、IO和CPU信息。iostat -x 1监控磁盘IO性能,关注await(平均IO等待时间)和%util(磁盘利用率)指标。free -h查看内存使用情况。ulimit -a查看系统资源限制,对于高并发服务需要适当调高文件描述符限制(nofile)。
安全加固基础
- 禁止root直接SSH登录:修改
/etc/ssh/sshd_config中的PermitRootLogin no - 修改默认SSH端口(22改为其他端口),减少暴力破解攻击
- 使用SSH密钥认证替代密码认证
- 配置防火墙:
ufw allow 80/tcp(Ubuntu)或firewall-cmd --add-port=80/tcp(CentOS) - 定期更新系统包:
apt update && apt upgrade -y(Debian/Ubuntu) - 安装fail2ban自动封禁频繁失败的SSH登录IP
Linux运维是一个持续学习和积累的过程。建议在实际工作中多动手、多记录,将常用命令整理成自己的笔记。遇到问题时善用man命令查看手册(如man grep),或者使用--help参数获取命令的简要帮助。