CentOS 7 作为一款广泛使用的 Linux 发行版,其命令行操作是系统管理和运维的核心技能,掌握常用命令不仅能提高工作效率,还能深入理解系统运行机制,以下从基础操作、文件管理、系统监控、网络配置、软件管理及服务控制六个方面,详细解析 CentOS 7 的常用命令,并辅以表格对比和实例说明,最后附上常见问题解答。

基础操作命令
基础操作是 Linux 日常使用的基础,主要包括系统信息查询、用户管理和进程控制。
-
系统信息查询
uname -a
:显示系统所有信息,包括内核名称、主机名、内核版本等。lscpu
:查看 CPU 架构和核心数信息,输出格式清晰,包含架构、CPU 数量、线程数等。free -h
:以人类可读格式(如 GB、MB)显示内存使用情况,-h
参数自动选择合适单位。df -h
:查看磁盘分区使用情况,-h
参数同样用于单位优化,便于快速判断磁盘空间。
-
用户管理
useradd username
:创建新用户,默认创建家目录和用户组,可通过-m
强制创建家目录,-s
指定默认 Shell(如/bin/bash
)。passwd username
:为用户设置密码,普通用户只能修改自己的密码,root 可修改任意用户密码。su - username
:切换到指定用户, 参数表示加载该用户的 Shell 配置文件,确保环境一致。sudo command
:以超级用户权限执行命令,需提前配置/etc/sudoers
文件(使用visudo
安全编辑)。
-
进程管理
(图片来源网络,侵删)ps aux
:查看当前所有进程的详细信息,a
显示所有进程,u
显示用户信息,x
显示无终端进程。top
:动态实时显示进程状态,按M
按内存排序,按C
按 CPU 排序,q
退出。kill -9 PID
:强制终止进程,-9
为信号码,表示无条件终止,适用于普通kill
无效的进程。jobs
:查看后台任务,配合fg
(前台调取)、bg
(后台继续)使用,如fg %1
将任务 1 调至前台。
文件与目录管理命令
文件管理是 Linux 最频繁的操作,涉及目录浏览、文件操作、权限控制等。
-
目录与文件浏览
ls -la
:列出当前目录所有文件和子目录,-l
显示详细信息(权限、所有者、大小、修改时间),-a
显示隐藏文件(以 开头)。pwd
:显示当前工作目录的完整路径,避免因目录切换而迷失。tree
:以树形结构显示目录层级,需先安装yum install tree
,-L 2
限制显示层级深度。
-
文件操作
touch filename
:创建空文件或更新文件时间戳,若文件存在则修改其访问和修改时间。cp -r source_dir target_dir
:递归复制目录,-r
表示复制目录及其所有内容,-p
可保留权限和时间戳。mv old_name new_name
:重命名文件或移动文件/目录,同一目录内为重命名,跨目录为移动。rm -rf dir_name
:强制递归删除目录,-r
递归删除,-f
忽略不存在的文件并强制删除,需谨慎使用。
-
文本处理
(图片来源网络,侵删)cat filename
:查看文件全部内容,适合小文件,大文件可用less filename
(支持分页和搜索)。grep "keyword" file.txt
:在文件中搜索关键词,-i
忽略大小写,-n
显示行号,-v
反向匹配(不包含关键词的行)。echo "text" > file.txt
:将文本覆盖写入文件,>>
为追加写入,>
会覆盖原文件。
-
权限控制
chmod 755 file.txt
:修改文件权限,755
表示所有者可读写执行,组用户和其他用户可读执行,可通过chmod u+x file.txt
单独添加执行权限。chown user:group file.txt
:修改文件所有者和所属组,-R
可递归修改目录下所有文件权限。
系统监控与日志管理
系统监控是保障服务器稳定运行的关键,需重点关注资源使用和日志分析。
-
资源监控
htop
:比top
更强大的进程监控工具,支持鼠标操作和彩色显示,需安装yum install htop
。vmstat 1 5
:每秒输出一次系统状态,共输出 5 次,包括进程、内存、 swap、I/O、CPU 等信息。iostat -xz 1
:监控磁盘 I/O 性能,-x
显示扩展信息,-z
忽略闲置设备,1
表示每秒刷新。
-
日志管理
journalctl -xe
:查看 systemd 日志,-x
显示详细错误信息,-e
跳转到末尾,-u nginx.service
可过滤特定服务日志。tail -f /var/log/messages
:实时查看系统日志文件,-f
表示持续跟踪文件新增内容,适合监控实时日志。grep "error" /var/log/httpd/error_log
:在 Apache 错误日志中搜索包含 "error" 的行,快速定位问题。
网络配置与诊断命令
网络配置是服务器运维的核心技能,需掌握 IP 配置、网络连通性测试和服务管理。
-
网络配置
ip addr show
:查看网络接口 IP 地址信息,替代传统的ifconfig
(需安装net-tools
包)。nmcli connection show
:使用 NetworkManager 管理网络连接,nmcli con mod "ens33" ipv4.method manual ipv4.addresses 192.168.1.100/24
静态配置 IP。systemctl restart network
:重启网络服务,使配置生效(CentOS 7 推荐使用 NetworkManager 管理)。
-
网络诊断
ping -c 4 baidu.com
:测试与目标主机的连通性,-c
指定发送包数量,默认无限发送。traceroute baidu.com
:显示数据包到目标主机的路径,经过的路由器数量和延迟,排查网络延迟问题。ss -tulnp
:查看监听的端口和进程,-t
TCP 端口,-u
UDP 端口,-l
只显示监听端口,-n
以数字形式显示地址和端口。
软件包管理命令
CentOS 7 主要使用 YUM(Yellowdog Updater Modified)管理软件包,支持 RPM 包的自动安装、更新和卸载。
-
YUM 基础命令
yum install package_name
:安装软件包,如yum install nginx
安装 Nginx。yum update package_name
:更新指定软件包,yum update
更新所有可升级的包。yum remove package_name
:卸载软件包,会同时删除依赖的包(若未被其他包使用)。yum list installed
:列出已安装的软件包,yum list available
列出可安装的包。
-
源码编译安装
部分软件需从源码编译安装,流程如下:wget https://example.com/source.tar.gz # 下载源码包 tar -zxvf source.tar.gz # 解压 cd source_dir # 进入目录 ./configure # 配置编译选项 make # 编译 make install # 安装
系统服务与开机自启管理
CentOS 7 使用 systemctl
管理系统服务,替代了传统的 service
和 chkconfig
命令。
-
服务控制
systemctl start nginx.service
:启动 Nginx 服务。systemctl stop nginx.service
:停止服务。systemctl restart nginx.service
:重启服务。systemctl status nginx.service
:查看服务状态(是否运行、是否开机自启)。
-
开机自启配置
systemctl enable nginx.service
:设置服务开机自启,会在/etc/systemd/system/multi-user.target.wants/
创建软链接。systemctl disable nginx.service
:取消开机自启。systemctl list-unit-files --type=service
:列出所有服务及其开机自启状态。
常用命令速查表
功能分类 | 命令示例 | 说明 |
---|---|---|
系统信息 | uname -a |
显示系统内核和主机信息 |
内存查看 | free -h |
人类可读格式显示内存使用情况 |
磁盘使用 | df -h |
查看磁盘分区使用情况 |
用户创建 | useradd -m -s /bin/bash username |
创建用户并指定 Shell |
进程查看 | ps aux |
显示所有进程详细信息 |
文件复制 | cp -r /source /target |
递归复制目录 |
权限修改 | chmod 755 file |
设置文件权限为 rwxr-xr-x |
日志查看 | journalctl -xe |
查看 systemd 系统日志 |
网络连通性 | ping -c 4 baidu.com |
发送 4 个包测试连通性 |
端口监听 | ss -tulnp |
查看 TCP/UDP 监听端口及进程 |
软件安装 | yum install nginx |
使用 YUM 安装 Nginx |
服务开机自启 | systemctl enable nginx.service |
设置 Nginx 开机自启 |
相关问答 FAQs
问题 1:如何查看某个进程占用的端口号?
解答:可以使用 ss
或 netstat
命令结合 grep
过滤进程名,查看 Nginx 进程占用的端口:
ss -tulnp | grep nginx
或
netstat -tulnp | grep nginx
输出结果中会显示 Nginx 监听的端口(如 80、443)及对应的进程 ID(PID),若已知 PID,也可通过 lsof -i :端口号
查看,lsof -i :80
。
问题 2:CentOS 7 如何设置静态 IP 地址?
解答:通过 NetworkManager 的命令行工具 nmcli
配置静态 IP,步骤如下:
- 查看当前网络连接名称:
nmcli connection show
假设连接名称为
ens33
。 - 修改连接配置,设置静态 IP、网关和 DNS:
nmcli con mod "ens33" ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8 114.114.114.114"
- 重启网络服务使配置生效:
systemctl restart network
- 验证 IP 配置:
ip addr show ens33
若显示配置的静态 IP,则设置成功,注意:配置前确保网络接口名称正确,避免网络中断。