Linux运维工作离不开各种命令行的操作,熟练掌握Linux命令是运维工程师的基本功,以下将从文件管理、系统监控、网络配置、进程管理、用户与权限管理等几个方面,详细介绍常用的Linux运维命令及其使用场景。

在文件管理方面,ls命令是最基础的,用于列出目录内容,常用选项如-l(显示详细信息)、-a(显示隐藏文件)、-h(以人类可读格式显示文件大小),cd命令用于切换目录,cd ..返回上级目录,cd -返回上一次所在的目录,cp命令用于复制文件或目录,-r选项用于递归复制目录,mv命令用于移动文件或目录,也可用于重命名,rm命令用于删除文件,-r选项递归删除目录,-f选项强制删除,需谨慎使用,mkdir命令创建目录,-p选项可创建多级目录,touch命令用于创建空文件或更新文件时间戳,grep命令用于文本搜索,-i选项忽略大小写,-r选项递归搜索目录,find命令用于在目录树中搜索文件,-name选项按文件名搜索,-type选项按文件类型搜索。
系统监控命令中,top命令动态显示系统进程状态,包括CPU、内存使用情况,按P键按CPU排序,按M键按内存排序,htop是top的增强版,界面更友好,支持鼠标操作,df命令用于显示磁盘空间使用情况,-h选项以人类可读格式显示,du命令查看目录或文件大小,-sh选项显示总大小,free命令查看内存使用情况,-h选项以人类可读格式显示,iostat命令显示CPU和I/O统计信息,-x选项显示扩展统计,vmstat命令报告虚拟内存统计信息,包括进程、内存、页面交换、块I/O和CPU活动。
网络配置与管理命令中,ifconfig命令用于配置和显示网络接口信息,需安装net-tools包,ip命令是ifconfig的替代品,功能更强大,如ip addr show显示网络接口信息,ping命令测试网络连通性,-c选项指定发送次数,netstat命令显示网络连接、路由表、接口统计等,-tuln选项显示监听的TCP和UDP端口,ss命令是netstat的替代品,显示socket统计信息,速度更快,curl命令用于传输数据,支持多种协议,常用于测试API接口,wget命令用于从网络上下载文件,-b选项后台下载,ssh命令用于远程登录,-p选项指定端口,-i选项指定私钥文件,scp命令用于安全复制文件,-r选项递归复制目录。
进程管理命令中,ps命令查看当前进程,-ef选项显示所有进程,-aux选项显示详细进程信息,kill命令终止进程,需指定进程ID(PID),-9选项强制终止,killall命令按进程名终止进程,jobs命令查看后台任务,fg命令将后台任务调到前台,bg命令将后台任务继续运行,nohup命令用于在后台运行程序,忽略挂断信号,常用于需要长时间运行的进程。

用户与权限管理命令中,useradd命令添加用户,-m选项创建家目录,-s选项指定默认shell,userdel命令删除用户,-r选项同时删除家目录,passwd命令修改用户密码,su命令切换用户,-选项切换到目标用户并加载其环境变量,sudo命令以其他用户身份执行命令,需配置sudoers文件,chmod命令修改文件权限,如chmod 755 file.txt设置所有者可读写执行,组和其他用户可读执行,chown命令修改文件所有者,-R选项递归修改目录所有者,chgrp命令修改文件所属组。
以下是一些常用命令的对比表格:
命令 | 功能描述 | 常用选项 |
---|---|---|
ls | 列出目录内容 | -l, -a, -h |
cp | 复制文件或目录 | -r(递归) |
mv | 移动/重命名文件或目录 | 无 |
rm | 删除文件或目录 | -r(递归), -f(强制) |
top | 动态显示进程状态 | P(CPU排序), M(内存排序) |
df | 显示磁盘空间使用情况 | -h(人类可读) |
ping | 测试网络连通性 | -c(次数) |
netstat | 显示网络连接和端口 | -tuln(监听端口) |
ps | 查看进程信息 | -ef(所有进程), -aux(详细信息) |
chmod | 修改文件权限 | 755(读写执行权限) |
在实际运维工作中,这些命令往往需要组合使用,查找并清理大文件可以使用find命令结合du和rm:find /var -type f -size +100M -exec du -sh {} \; | sort -hr | head -10
,此命令查找/var目录下大于100M的文件并按大小排序显示前10个,监控服务器负载时,可以使用top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'
计算CPU使用率。
相关问答FAQs:

-
问:如何查看Linux系统运行了多长时间? 答:可以使用
uptime
命令查看系统运行时间、当前登录用户数和系统负载平均值,输出10:15:30 up 10 days, 2:30, 1 user, load average: 0.05, 0.01, 0.00
表示系统已运行10天2小时30分钟,当前有1个用户登录,1分钟、5分钟、15分钟的平均负载分别为0.05、0.01、0.00。cat /proc/uptime
也可以查看系统启动后的总秒数和空闲秒数。 -
问:如何查看某个进程的详细信息和占用资源情况? 答:首先使用
ps -ef | grep 进程名
或ps aux | grep 进程名
找到进程的PID(进程ID),然后使用top -p PID
查看该进程的实时资源占用情况,或使用ps -p PID -o pid,ppid,cmd,%cpu,%mem,etime
查看进程的PID、父进程ID、命令、CPU占用率、内存占用率和运行时间,还可以使用htop
(需安装)以交互式界面查看进程资源,支持按CPU、内存等排序,方便定位高资源占用进程。