菜鸟科技网

运维工程师常用命令有哪些?

运维工程师是保障系统稳定运行的核心角色,日常工作中需要熟练掌握各类命令,通过命令行高效完成服务器管理、故障排查、性能监控等任务,以下从系统管理、网络诊断、服务管理、安全运维、性能监控五大维度,详细梳理运维工程师常用命令及其使用场景。

运维工程师常用命令有哪些?-图1
(图片来源网络,侵删)

系统管理命令

系统管理是运维工作的基础,涉及文件操作、用户管理、进程控制等核心操作。

文件与目录操作

  • ls:列出目录内容,常用参数 -l(显示详细信息,如权限、所有者、大小)、-a(显示隐藏文件)、-h(以人类可读格式显示文件大小,如K/M/G)。
  • cd:切换目录,cd ..返回上级目录,cd -返回上一级目录,cd ~切换至当前用户家目录。
  • cp:复制文件或目录,-r参数用于递归复制目录(如cp -r /src /dest),-p保留文件属性(权限、时间戳等)。
  • mv:移动文件/目录或重命名,如mv file1.txt /backup/(移动文件),mv old.txt new.txt(重命名)。
  • rm:删除文件/目录,-f强制删除(不提示),-r递归删除目录(慎用,如rm -rf /会导致系统崩溃)。
  • mkdir:创建目录,-p递归创建多级目录(如mkdir -p /a/b/c)。
  • touch:创建空文件或更新文件时间戳,如touch newfile.txt
  • find:按条件查找文件,如find / -name "*.log" -mtime +7(查找根目录下7天前修改的.log文件)。
  • grep:文本搜索,-i忽略大小写,-r递归搜索目录,如grep -r "error" /var/log/(在日志目录中搜索包含"error"的行)。

用户与权限管理

  • useradd/userdel:添加/删除用户,-m自动创建家目录(如useradd -m testuser),userdel -r testuser(删除用户及家目录)。
  • passwd:修改用户密码,普通用户只能修改自己的密码,root可修改任意用户密码。
  • chmod:修改文件权限,-R递归修改目录权限,如chmod 755 script.sh(所有者可读写执行,组用户和其他用户可读执行)。
  • chown:修改文件所有者,-R递归修改,如chown -R testuser:testgroup /data/(将/data目录及其下文件所有者改为testuser,所属组改为testgroup)。

网络诊断命令

网络问题是服务器故障的常见原因,熟练使用网络诊断命令可快速定位问题。

  • ping:测试网络连通性,-c指定发送包数量(如ping -c 4 8.8.8.8),-i设置间隔时间。
  • ifconfig/ip addr:查看/配置网卡信息,ifconfig传统命令(需安装net-tools),ip addr为iproute2工具集命令(推荐),如ip addr show eth0查看eth0网卡IP。
  • netstat/ss:查看网络连接状态,netstat -tuln(显示监听的TCP/UDP端口),ss -tuln(更高效的替代工具,显示socket统计信息)。
  • curl/wget:下载文件或测试HTTP服务,curl -I http://example.com(查看HTTP响应头),wget -O file.zip http://example.com/file.zip(下载文件并重命名)。
  • traceroute/mtr:路由跟踪,traceroute 8.8.8.8(显示到目标主机的路由路径),mtr 8.8.8.8(持续跟踪,结合ping和traceroute优势,实时显示网络延迟)。
  • nslookup/dig:DNS查询,nslookup example.com(查询域名对应的IP),dig example.com(更详细的DNS解析信息,包括权威服务器、解析记录等)。

服务管理命令

服务器上运行着各类服务(如Nginx、MySQL、Redis等),需通过命令管理服务状态。

  • systemctl:CentOS 7+、Ubuntu 16+系统服务管理工具,常用命令:
    • systemctl start nginx(启动服务)
    • systemctl stop nginx(停止服务)
    • systemctl restart nginx(重启服务)
    • systemctl reload nginx(重新加载配置,不中断服务)
    • systemctl enable nginx(设置开机自启)
    • systemctl status nginx(查看服务状态)
  • service:传统系统服务管理工具(CentOS 6、Ubuntu 14等),如service nginx startservice --status-all(查看所有服务状态)。
  • ps/top/htop:查看进程信息,ps -ef(显示所有进程详细信息),top(动态显示进程资源占用,按q退出),htop(增强版top,支持鼠标操作、进程树显示)。
  • kill/pkill:终止进程,kill -9 PID(强制终止进程,-9为SIGKILL信号),pkill -f nginx(按进程名终止,-f表示匹配完整命令行)。

安全运维命令

安全是运维工作的重中之重,需通过命令定期检查系统安全、审计操作日志。

运维工程师常用命令有哪些?-图2
(图片来源网络,侵删)
  • last:查看用户登录历史,记录登录时间、IP、终端等信息,如last | grep root(查看root用户的登录记录)。
  • lastb:查看失败登录尝试,用于检测暴力破解攻击。
  • history:查看命令历史记录,history -c(清空当前会话历史),echo $HISTSIZE(查看历史记录保存条数)。
  • chmod/chattr:文件权限与属性安全,chattr +i /etc/passwd(设置文件不可删除、修改,仅root可操作),chattr -i /etc/passwd(取消属性)。
  • fail2ban:防暴力破解工具,通过fail2ban-client status查看封禁状态,配置文件位于/etc/fail2ban/jail.local
  • iptables/firewalld:防火墙管理,iptables -L -n(列出iptables规则),firewall-cmd --list-all(查看firewalld规则,CentOS 7+默认)。

性能监控命令

监控系统性能是保障服务稳定运行的关键,需实时关注CPU、内存、磁盘、网络等资源使用情况。

  • top/htop:实时监控进程资源占用,top1可查看各CPU核心使用率,按M按内存排序,按P按CPU排序。
  • free:查看内存使用情况,-h以人类可读格式显示(如free -h,显示总内存、已用、空闲、缓存等)。
  • df:查看磁盘空间使用率,-h显示友好单位(如df -h),-i查看inode使用情况(避免inode耗尽导致无法创建文件)。
  • iostat:监控磁盘I/O性能,需安装sysstat工具,iostat -dx 2(每2秒输出一次磁盘I/O统计,包括利用率、读写速率)。
  • vmstat:监控系统虚拟内存、进程、CPU活动,vmstat 1(每秒输出一次,如r值表示运行队列进程数,b表示等待I/O的进程数)。
  • sar:系统性能历史数据收集工具,sar -u 1 5(每秒收集1次CPU使用情况,共5次),数据存储在/var/log/sa/目录下。

常用命令速查表

功能分类 命令 常用参数及示例
文件操作 find find / -name "*.log" -mtime +7(查找7天前的日志)
网络诊断 ss ss -tuln(查看监听端口)
服务管理 systemctl systemctl restart nginx(重启Nginx服务)
进程监控 htop P按CPU排序,按M按内存排序
磁盘空间 df df -h(以人类可读格式显示磁盘使用率)
内存使用 free free -h(显示内存、交换分区使用情况)

相关问答FAQs

Q1:如何查看某个进程占用的端口?
A:可通过ssnetstat结合grep查找,例如查看Nginx进程占用的端口:

ss -tuln | grep nginx  # 或 netstat -tuln | grep nginx

若需反向查找(通过端口查进程),可使用lsof

lsof -i :80  # 查看80端口被哪个进程占用

Q2:服务器磁盘空间不足,如何快速定位大文件或目录?
A:使用du命令递归查看目录大小,结合sort排序:

运维工程师常用命令有哪些?-图3
(图片来源网络,侵删)
du -sh /* | sort -hr  # 查看根目录下各一级目录大小,按从大到小排序

若需查找特定目录下的大文件(如超过100MB的文件):

find /var/log -type f -size +100M  # 查找/var/log目录下大于100MB的文件

定位后可使用gzip压缩或rm删除(需谨慎,确保非重要文件)。

分享:
扫描分享到社交APP
上一篇
下一篇