logo

Linux系统运维常用命令集锦

作者:问答酱2025.09.19 14:37浏览量:0

简介:本文汇总Linux系统运维核心命令,涵盖进程管理、文件操作、网络诊断、日志分析等场景,提供高效运维的实用指南。

Linux系统运维常用命令集锦:从基础到进阶的实用指南

引言

Linux系统因其稳定性、灵活性和开源特性,成为服务器运维的首选。无论是云服务器管理、本地数据中心维护,还是开发环境搭建,熟练掌握Linux命令是运维工程师的核心能力。本文将从系统监控、文件管理、网络诊断、进程控制等核心场景出发,系统梳理Linux运维中的高频命令,并结合实际案例说明其应用场景。

一、系统信息与性能监控

1. 系统概况查看:unamehostname

  • uname -a:显示完整的系统信息(内核版本、主机名、架构等)。

    1. $ uname -a
    2. 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:查看或修改主机名。

    1. $ hostname
    2. server-01
    3. $ sudo hostnamectl set-hostname new-server # 修改主机名(需root权限)

2. 资源占用分析:tophtopvmstat

  • top:动态显示进程资源占用(CPU、内存、I/O)。

    • 交互操作:按M按内存排序,P按CPU排序,k终止进程。
    • 替代工具:htop(支持鼠标操作、颜色高亮、树状视图)。
      1. $ htop # 需安装(sudo apt install htop)
  • vmstat 1:实时监控系统整体性能(进程、内存、磁盘I/O)。

    1. $ vmstat 1
    2. procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
    3. r b swpd free buff cache si so bi bo in cs us sy id wa st
    4. 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. 高效文件操作:findgreprsync

  • find:按条件搜索文件(名称、类型、时间)。

    1. $ find /var/log -name "*.log" -mtime +7 -delete # 删除7天前的日志文件
    2. $ find ~ -type f -size +100M # 查找家目录下大于100MB的文件
  • grep:文本内容搜索(支持正则表达式)。

    1. $ grep -r "error" /var/log/ # 递归搜索日志目录中的"error"关键词
    2. $ grep -i "failed" access.log | wc -l # 统计包含"failed"的行数(忽略大小写)
  • rsync:增量同步文件(本地或远程)。

    1. $ rsync -avz --delete /backup/ user@remote:/backups/ # 同步本地备份到远程服务器
    • 参数说明:-a(归档模式)、-v(详细输出)、-z(压缩传输)、--delete(删除目标端多余文件)。

2. 磁盘空间管理:dfdulsof

  • df -h:查看磁盘分区及使用情况(人类可读格式)。

    1. $ df -h
    2. Filesystem Size Used Avail Use% Mounted on
    3. /dev/sda1 50G 20G 28G 42% /
  • du -sh *:统计目录占用空间。

    1. $ du -sh /var/log/ # 显示/var/log目录总大小
    2. 1.2G /var/log/
  • lsof | grep deleted:查找已删除但未释放的文件(常见于日志文件)。

    1. $ lsof | grep deleted | awk '{print $9}' | xargs ls -l # 显示被删除文件的详细信息
    • 解决方案:重启占用文件的进程或执行> file.log清空文件。

三、网络诊断与安全

1. 连通性测试:pingtraceroutemtr

  • ping -c 4 example.com:发送4个ICMP包测试网络连通性。

    1. $ ping -c 4 example.com
    2. PING example.com (93.184.216.34) 56(84) bytes of data.
    3. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=12.3 ms
  • mtr example.com:结合tracerouteping的实时诊断工具。

    1. $ mtr --report example.com # 生成报告格式输出

2. 端口与服务监控:netstatsslsof

  • ss -tulnp:查看监听端口及对应进程(ssnetstat的现代替代)。

    1. $ ss -tulnp | grep 80
    2. tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
  • lsof -i :22:查找占用22端口的进程。

    1. $ lsof -i :22
    2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    3. sshd 1234 root 3u IPv4 12345 0t0 TCP *:ssh (LISTEN)

四、进程与用户管理

1. 进程控制:pskillsystemctl

  • ps aux | grep nginx:查看nginx进程详情。

    1. $ ps aux | grep nginx
    2. root 1234 0.0 0.1 123456 7890 ? S 10:00 0:00 nginx: master process
    3. www-data 5678 0.0 0.0 234567 1234 ? S 10:00 0:00 nginx: worker process
  • kill -9 PID:强制终止进程(慎用,可能导致数据丢失)。

    1. $ kill -9 5678 # 终止PID为5678的进程
  • systemctl:管理系统服务(适用于systemd系统)。

    1. $ systemctl status nginx # 查看服务状态
    2. $ systemctl restart nginx # 重启服务
    3. $ systemctl enable nginx # 开机自启

2. 用户与权限管理:sudouseraddchmod

  • sudo -l:查看当前用户的sudo权限。

    1. $ sudo -l
    2. User admin may run the following commands on this host:
    3. (ALL) ALL
  • useradd -m -s /bin/bash newuser:创建用户并指定shell。

    1. $ sudo useradd -m -s /bin/bash newuser
    2. $ sudo passwd newuser # 设置密码
  • chmod 755 script.sh:修改文件权限(所有者可读写执行,组和其他用户可读执行)。

    1. $ chmod 755 script.sh
    2. $ ls -l script.sh
    3. -rwxr-xr-x 1 user group 1234 Jan 1 10:00 script.sh

五、日志与故障排查

1. 日志分析journalctltail

  • journalctl -u nginx --since "2023-01-01" --until "2023-01-02":查询nginx服务在指定时间段的日志。

    1. $ journalctl -u nginx --no-pager -n 50 # 显示最近50条日志(不分页)
  • tail -f /var/log/nginx/access.log:实时跟踪日志文件新增内容。

    1. $ tail -f /var/log/nginx/access.log | grep "404" # 仅显示404错误

2. 故障定位:dmesgstrace

  • dmesg | grep -i error:查看内核日志中的错误信息。

    1. $ dmesg | grep -i error
    2. [ 2.345678] sd 0:0:0:0: [sda] Attached SCSI disk
    3. [ 3.456789] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
  • strace -p PID:跟踪进程的系统调用(用于调试程序行为)。

    1. $ strace -p 1234 # 跟踪PID为1234的进程

六、进阶技巧:脚本与自动化

1. 批量操作:xargsparallel

  • find /tmp -name "*.tmp" | xargs rm:删除所有.tmp文件。

    1. $ find /tmp -name "*.tmp" | xargs rm -v # 显示删除的文件名
  • parallel:并行执行命令(需安装)。

    1. $ parallel -j 4 "gzip {}" ::: *.log # 并行压缩4个日志文件

2. 定时任务:crontab

  • crontab -e:编辑当前用户的定时任务。
    1. $ crontab -e
    2. # 每天凌晨3点备份/var/www目录
    3. 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等工具实现自动化,进一步降低人为错误风险。

相关文章推荐

发表评论