服务器必用指令并不复杂,核心就是三类:看状态、查问题、改配置。无论你用的是Linux还是Windows服务器,日常运维最离不开的也就是登录、文件操作、进程管理和日志排查这几板斧,本文直接把最常用、最高频的指令按场景拆开讲,附带实操示例,照着敲就能用。
登录后第一件事:摸清服务器家底
刚拿到一台服务器,别急着部署环境,先搞清楚系统是什么版本、硬件资源剩多少、跑了多久,这些是后续所有操作的地基,业内专家指出,超过半数运维事故源于对服务器初始状态不了解。
查看系统信息
uname -a:显示内核版本、主机名、系统架构cat /etc/os-release:查看发行版名称和版本号,比如CentOS 7还是Ubuntu 22.04hostnamectl:更直观的系统信息汇总,包含操作系统、内核、机器ID
查看硬件资源
free -h:内存总量、已用、可用,-h参数以人类可读的G/M单位显示df -h:磁盘分区使用率,重点看根目录的剩余空间top:实时刷新CPU、内存、负载,按q退出,第一行load average的三个数字分别代表1分钟、5分钟、15分钟的平均负载,超过CPU核数就说明压力偏大
查看运行时长
uptime:一行输出系统已运行时间、当前登录用户数、负载均值
刚接手服务器,先跑一遍这些命令,心里有底再动手。
文件与目录操作:每日必用的基本功
文件操作是服务器管理中使用频率最高的指令组合,配上合适的参数能省一半力气,以下命令覆盖了日常运维中多场景下的文件处理需求,从查看到传输都有对应解法。
导航与查看
pwd:显示当前所在目录的绝对路径,迷路时先敲这个ls -lh:列出当前目录文件,-l显示权限/大小/修改时间,-h把大小换成K/M/G单位cd /var/log:切换目录,cd ..返回上级,cd ~回到当前用户家目录
创建/复制/移动/删除
mkdir -p /data/web:-p参数自动创建多级目录,不存在父目录时一起建出来cp -r /old /new:复制目录必须带-r,否则报错mv a.txt b.txt:重命名或移动文件,同一目录下就是改名rm -rf /tmp/cache:强制递归删除目录,谨慎使用,没有回收站
查看cat server.conf:直接输出全部内容,适合小文件head -20 error.log:只看前20行,尾部用tail -20grep "ERROR" app.log:按关键词过滤日志行,配合-C 5显示匹配行前后各5行
打包与传输
tar -czvf backup.tar.gz /data:把/data目录压缩打包为backup.tar.gztar -xzvf backup.tar.gz:解压到当前目录,加-C /指定路径可解压到其他位置scp file.txt root@192.168.1.10:/root/:将本地文件复制到远程服务器
日常维护中,文件备份和日志检查是最高频动作,这套命令组合足够应付绝大多数场景。
性能排查:服务器卡顿怎么找原因
服务器响应变慢,CPU跑满还是内存不够?磁盘IO卡死还是进程僵住?排查思路比背命令更重要,推荐按以下顺序操作:
整体负载检查
top:进入实时监控界面,按P按CPU使用率排序,按M按内存排序,找出占用最高的进程PIDuptime先看一眼负载,高于CPU核数说明过载,低于核数则可能是个别进程异常
内存与交换分区
free -m:以MB为单位显示内存,重点关注available列,这是真正可用的内存量swap使用量大且持续增长,说明物理内存不够,考虑扩容或优化应用
磁盘IO瓶颈
iostat -x 2:每2秒刷新一次磁盘读写状态,%util接近100%说明磁盘繁忙df -h确认磁盘没满,df -i查看inode是否耗尽(inode满时无法创建新文件)
网络连接排查
ss -tunlp:列出所有监听端口和对应进程,-t只显示TCP,-u显示UDP,-l只看监听状态netstat -an | grep TIME_WAIT | wc -l:统计处于TIME_WAIT状态的连接数,数值过大可能是短连接过多
定位具体进程
用top拿到PID后,执行ps -ef | grep PID看进程启动命令和运行参数,判断是正常业务还是异常程序,如果是Web服务,再配合curl -I http://localhost:8080/health检查接口响应状态。
实际排查时,先用top和free缩小范围,再用iostat和ss锁定瓶颈,不要一上来就翻日志。
服务与应用管理:systemctl和传统指令
现代Linux发行版普遍使用systemd管理服务,但传统指令在某些场景下依然好用,以下命令覆盖了服务生命周期管理的完整流程:
systemd系列(主流)
-
systemctl status nginx:查看服务运行状态、PID、最近日志 systemctl start|stop|restart nginx:启动/停止/重启服务systemctl enable nginx:设置开机自启,disable取消自启systemctl list-units --type=service --state=running:列出所有正在运行的服务
传统指令(兼容老系统)
service nginx status:旧版系统或未接入systemd的服务用/etc/init.d/nginx restart:直接在init.d目录下调用脚本
进程终结术
kill -9 PID:强制杀死进程,适合无响应的僵死进程pkill -f "java":按进程名模糊匹配杀掉所有相关进程,比逐个kill高效killall nginx:按精确名称批量终止
线上操作重启服务前,先执行nginx -t或php -m这类检查命令验证配置,再决定是否重启。
日常监控与日志追踪:从报错到定位
日志是服务器排障的第一手证据,但要会看、会追、会筛。
日志跟踪
tail -f /var/log/messages:实时滚动输出文件新增内容,调试时另开一个终端窗口看效果tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn:实时统计访问量TOP10的IP
日志筛选技巧
grep "500" /var/log/nginx/error.log:找出所有HTTP 500错误grep -E "ERROR|FATAL" /var/log/app.log | tail -50:同时匹配多个关键词,只看最后50条sed -n '200,250p' /var/log/app.log:打印第200行到第250行,适合查看指定时间段附近的日志
系统日志与开机信息
dmesg | tail -20:查看内核环形缓冲区日志,排查硬件识别、驱动加载问题journalctl -u nginx --since "1 hour ago":查看指定服务最近1小时的全部日志,-u指定服务名
多数情况下,日志里直接能看到明确报错关键词,比如Permission denied(权限)、No space left on device(磁盘满)、Cannot allocate memory(内存不足),顺着关键词往下查效率最高。
安全与权限:别让服务器裸奔
新装系统后,权限配置和安全加固是必须做的第一件事。
用户与权限
useradd -m -s /bin/bash devuser:创建用户并指定家目录和Shellpasswd devuser:设置用户密码usermod -aG wheel devuser:把用户加入sudo组(CentOS是wheel,Ubuntu是sudo)chmod 750 /data/web:设置目录权限,7代表所有者可读写执行,5代表组内可读执行,0代表其他人无权限
chown -R nginx:nginx /data/web:递归修改目录属主和属组
SSH安全配置
编辑/etc/ssh/sshd_config:
Port 2222:把默认22端口换掉,减少自动化攻击PermitRootLogin no:禁止root直接登录,用普通用户+sudo方式操作PasswordAuthentication no:禁用密码登录,只允许密钥认证
修改后执行systemctl restart sshd生效,务必先保持当前连接不断开,另开一个终端测试新配置能登录再重启。
防火墙基础规则
firewall-cmd --permanent --add-port=8080/tcp:开放8080端口,--permanent持久化到重启后firewall-cmd --reload:重载配置生效iptables -L -n:查看传统iptables规则,与firewalld二选一
安全配置的核心原则是最小权限:能不用root就不用root,能不开放的端口就不开放,能用密钥就不用密码。
服务器必用指令高频问题解答
什么是服务器运维必用指令里的“高频三件套”?
最常用的三个组合是 top(看资源占用)、tail -f(看实时日志)、grep(筛关键信息),遇到绝大多数线上问题,先用这三个命令观察现象,再决定下一步做什么。
Linux服务器必用命令和Windows服务器指令有什么区别?
Linux以Shell命令为主,强调管道和参数组合,比如ps aux | grep java用管道把两个命令串起来;Windows Server主要用PowerShell,比如Get-Process查看进程、Get-Service查看服务,操作逻辑从“单命令”变为“对象管道”,两者核心目标一致,只是语法体系不同。
刚买的centos服务器日常维护命令有哪些必学?
CentOS属于Linux分支,之前提到的基础类目都适用,额外建议优先掌握yum install -y 包名(安装软件)、systemctl enable --now firewalld(启用防火墙)、timedatectl set-timezone Asia/Shanghai(同步时区),这三项在新机器初始化时马上就会用到。
服务器指令没有“一招鲜”,所有命令都是围绕“看状态、查异常、做变更”这三个目标展开,先掌握文件操作和系统查看,再深入进程与日志排查,遇到问题时用man 命令名查看官方手册,用help查看内建命令说明,熟悉这几十个基础指令,日常运维已经不慌,对每个命令的参数细节,多结合实际场景演练几次比死记硬背有效得多。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/707536.html





