菜鸟科技网

运维常用命令有哪些?

运维工作涉及系统的日常监控、故障排查、性能优化、安全防护等多个方面,熟练使用常用命令是运维工程师的核心技能之一,以下从系统监控、文件管理、进程管理、网络诊断、日志分析、用户与权限管理、软件安装与配置七个维度,详细梳理运维常用的命令及其使用场景。

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

系统监控命令

系统监控是运维的基础工作,需实时掌握服务器资源使用情况。

  1. top:动态监控系统进程资源占用,包括CPU、内存、进程状态等,常用参数如 -d(刷新间隔)、-p(指定进程PID)。
  2. htoptop的增强版,支持彩色显示、进程树可视化、鼠标操作等,交互性更强。
  3. free:查看内存使用情况,-h参数以人类可读格式(如GB、MB)显示数据。
  4. df -h:检查磁盘空间使用率,-h参数同样用于格式化输出,-i可查看inode使用情况。
  5. vmstat:报告虚拟内存统计信息,包括进程、内存、I/O、CPU等,1参数可每秒刷新一次,实时监控性能瓶颈。
  6. sar:系统活动报告工具,需安装sysstat包,可通过sar -u查看CPU利用率,-r查看内存使用,-b查看I/O性能。

文件管理命令

服务器上的文件操作是日常运维的高频场景,需熟练掌握文本处理和目录管理命令。

  1. ls -la:列出文件及目录详细信息,包括权限、所有者、大小、修改时间等,-a显示隐藏文件。
  2. cp/rm/mv:基础文件操作命令,cp -r递归复制目录,rm -rf强制删除目录(需谨慎使用),mv可重命名或移动文件。
  3. find:按条件查找文件,如find /var -name "*.log" -mtime +7查找/var目录下7天前修改的.log文件。
  4. grep:文本搜索工具,grep "error" /var/log/nginx/error.log在日志中搜索包含"error"的行,-i忽略大小写,-v取反。
  5. awk:文本处理工具,支持列提取和计算,如awk '{print $1, $NF}' /var/log/access.log打印每行的第一列和最后一列。
  6. sed:流编辑器,用于文本替换,如sed -i 's/old/new/g' file.txt直接在文件中替换所有"old"为"new"。

进程管理命令

进程管理涉及服务启停、异常进程处理等,需精准控制进程状态。

  1. ps -ef:查看当前系统进程,-e显示所有进程,-f显示完整格式,结合grep可筛选特定进程,如ps -ef | grep nginx
  2. kill/killall:终止进程,kill -9强制杀死进程,killall nginx通过进程名批量终止。
  3. nohup:让进程在后台持续运行,如nohup python app.py &,输出默认重定向到nohup.out
  4. jobs:查看后台任务,bg将前台任务转后台,fg将后台任务调至前台。
  5. systemctl:管理系统服务,systemctl start nginx启动服务,status查看状态,enable设置开机自启,restart重启服务。

网络诊断命令

网络问题排查需定位链路、端口、服务异常,常用命令如下:

运维常用命令有哪些?-图2
(图片来源网络,侵删)
  1. ping:测试网络连通性,ping -c 4 www.baidu.com发送4个数据包。
  2. telnet/nc:检查端口是否可达,telnet 192.168.1.1 80nc -zv 192.168.1.1 80测试80端口。
  3. netstat/ss:查看网络连接状态,netstat -tuln显示监听端口,ss -tulnnetstat的替代工具,速度更快。
  4. traceroute/mtr:跟踪网络路由路径,traceroute www.baidu.com显示经过的节点,mtr www.baidu.com持续跟踪并丢包统计。
  5. curl/wget:下载网页或测试HTTP服务,curl -I http://www.baidu.com查看HTTP响应头,wget -O file.html http://www.baidu.com下载网页。

日志分析命令

日志是排查故障的关键,需高效过滤和分析日志内容。

  1. tail -f:实时跟踪日志文件变化,tail -f /var/log/messages实时查看系统日志。
  2. cat/less:查看日志内容,less /var/log/nginx/access.log支持分页和关键词搜索(通过)。
  3. journalctl:查看系统日志(systemd系统),journalctl -u nginx.service查看nginx服务日志,-f实时跟踪,-n 100显示最后100行。
  4. sort/uniq:日志去重和排序,sort file.log | uniq -c统计每行出现次数,sort -n按数字排序。

用户与权限管理

权限管理是系统安全的重点,需严格控制用户操作权限。

  1. useradd/userdel:创建/删除用户,useradd -m testuser创建用户并创建家目录,userdel -r testuser删除用户及家目录。
  2. passwd/sudo:修改用户密码或授权sudo权限,sudo visudo编辑/etc/sudoers文件,添加testuser ALL=(ALL) ALL赋予所有权限。
  3. chmod/chown:修改文件权限和所有者,chmod 755 file.sh设置所有者可读写执行、组和其他用户可读执行,chown testuser:testgroup file.txt修改文件所有者和所属组。
  4. su/sudo -i:切换用户,su - testuser切换至testuser用户并加载其环境变量,sudo -i以root身份登录。

软件安装与配置

不同系统的软件管理命令存在差异,需掌握主流工具。

  1. Linux包管理
    • RedHat/CentOS:yum install nginx安装软件,yum update更新系统,yum clean all清理缓存。
    • Debian/Ubuntu:apt install nginx安装软件,apt update更新软件列表,apt upgrade升级软件包。
  2. 源码编译安装:通过./configuremakemake install三步编译安装软件,需依赖编译工具(如gccmake)。
  3. 服务配置:编辑配置文件(如/etc/nginx/nginx.conf)后,通过nginx -t检查配置语法,systemctl reload nginx重载配置。

以下为部分命令的参数总结表:

运维常用命令有哪些?-图3
(图片来源网络,侵删)
命令 常用参数 功能说明
top -d 1, -p 1234 实时监控进程资源
grep -i, -v, -n 文本搜索,忽略大小写/取反/显示行号
find -name, -mtime, -type 按名称/修改时间/文件类型查找
netstat -tuln, -anp 显示监听端口/所有连接及PID
systemctl start, status, enable 管理服务状态及开机自启

相关问答FAQs

Q1: 如何快速定位高CPU占用率的进程?
A1: 可通过以下步骤定位:

  1. 使用top命令按P键(大写)按CPU占用率排序,找到占用率最高的进程PID。
  2. top信息不足,使用ps -p <PID> -o pid,ppid,cmd,%cpu,%mem查看进程详细信息。
  3. 若为Java进程,可结合jstack <PID> > jstack.log生成线程堆栈,分析具体线程问题。

Q2: 日志文件过大导致磁盘空间不足,如何高效清理?
A2: 清理大日志文件需谨慎,避免丢失重要数据,推荐以下方法:

  1. 日志轮转:配置logrotate工具(如/etc/logrotate.d/nginx),自动按日期分割并压缩日志,保留最近N天。
  2. 手动清理:对于无需保留的日志,可直接> /var/log/big.log清空文件(不删除文件本身,避免进程无法写入),或mv /var/log/big.log /var/log/big.log.bak后重启服务(新日志会自动生成)。
  3. 按需过滤:使用grep提取关键日志后保存,再删除原文件,如grep "error" /var/log/app.log > error.log && > /var/log/app.log

掌握以上命令及使用场景,可大幅提升运维效率,但需注意操作前备份数据,尤其在涉及rm -rfchmod 777等高危命令时,务必确认操作目标,避免误操作导致系统故障。

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