当前位置: 首页 > news >正文

Linux之centos 系统常用命令详解(附实战案例)

CentOS 系统常用命令详解(附实战案例)

前言

本文针对 CentOS 7/8 系统,整理了运维工作中高频使用的命令,涵盖系统信息、文件操作、用户权限、软件管理、服务控制、网络配置等核心场景,并结合实战案例说明具体用法,适合运维人员日常查阅与新手学习。

一、系统基础信息查询

1. 系统版本与内核信息

命令功能说明实战案例输出解析
uname -a显示完整系统内核、主机名、硬件架构等[root@centos7 ~]# uname -aLinux centos7 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- centos7:主机名
- 3.10.0-1160.el7.x86_64:内核版本
- x86_64:64位架构
cat /etc/redhat-release查看 CentOS 发行版本[root@centos7 ~]# cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)
明确系统为 CentOS 7.9 版本
hostnamectl查看/修改主机名及系统信息[root@centos7 ~]# hostnamectl显示静态主机名、操作系统、内核、硬件架构等,比 hostname 更全面

2. 硬件资源查询

命令功能说明实战案例关键参数
lscpu查看 CPU 详细信息[root@centos7 ~]# lscpu关注:CPU(s)(总核心数)、Core(s) per socket(每颗CPU核心数)、Socket(s)(CPU颗数)
free -h查看内存使用情况(人类可读单位)[root@centos7 ~]# free -h输出:
Mem: 15Gi 2.3Gi 10Gi 180Mi 2.7Gi 13Gi
- total:总内存
- used:已使用
- free:空闲内存
df -h查看磁盘分区使用情况[root@centos7 ~]# df -h常用:df -h / 查看根分区使用;df -i 查看 inode 占用(避免因 inode 满导致无法创建文件)
du -sh <目录>统计目录占用空间[root@centos7 ~]# du -sh /var/log输出:856M /var/log(日志目录总占用 856MB)
lsblk查看磁盘分区结构[root@centos7 ~]# lsblk示例输出:
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part /

二、文件与目录操作

1. 目录切换与查看

命令功能说明实战案例场景说明
cd切换工作目录1. cd /etc/nginx → 切换到 nginx 配置目录
2. cd .. → 返回上级目录
3. cd ~ → 切换到当前用户家目录(root 为 /root,普通用户为 /home/用户名
日常操作中最频繁的命令,结合 pwd 确认当前路径
pwd显示当前绝对路径[root@centos7 nginx]# pwd/etc/nginx避免因“不知道当前在哪”导致的误操作
ls列出目录内容1. ls -l → 详细列表(权限、所有者、大小、时间)
2. ls -a → 显示隐藏文件(以 . 开头的文件)
3. ls -lh → 详细列表+人类可读大小(如 1.2M 而非 1234567
ls -lh /var/lib/mysql 可快速查看数据库文件大小

2. 文件/目录创建与删除

命令功能说明实战案例注意事项
mkdir创建目录1. mkdir /data/backup → 创建单个备份目录
2. mkdir -p /data/nginx/{logs,html} → 递归创建多级目录(同时创建 logshtml
-p 确保父目录不存在时自动创建,避免报错
touch创建空文件/更新时间戳1. touch /data/test.txt → 创建空文件
2. touch -d "2024-01-01 10:00" test.txt → 修改文件时间戳为指定时间
常用于创建日志文件或测试文件
rm删除文件/目录1. rm /data/test.txt → 删除文件(需确认)
2. rm -f /data/test.txt → 强制删除(无提示)
3. rm -rf /data/old_logs → 强制删除目录及所有内容
rm -rf 极其危险! 避免在根目录(/)下使用,建议删除前先用 ls 确认路径
cp复制文件/目录1. cp /etc/nginx/nginx.conf /data/backup/ → 复制配置文件到备份目录
2. cp -r /etc/nginx/ /data/backup/ → 递归复制 nginx 整个目录
-r 必须用于目录复制,否则会报错
mv移动/重命名1. mv /data/test.txt /home/user/ → 移动文件到用户目录
2. mv /data/old.txt /data/new.txt → 重命名文件
移动跨分区文件时会复制后删除原文件,同分区则直接修改路径

3. 文件内容查看与编辑

命令功能说明实战案例适用场景
cat正序显示完整内容cat /etc/passwd → 查看所有用户信息适合小文件(如配置文件、用户列表)
head显示文件前 N 行1. head /var/log/messages → 显示前 10 行(默认)
2. head -20 /var/log/nginx/access.log → 显示前 20 行访问日志
快速查看文件开头(如日志的最新记录)
tail显示文件后 N 行/实时跟踪1. tail -100 /var/log/nginx/error.log → 显示最后 100 行错误日志
2. tail -f /var/log/messages → 实时跟踪日志更新(按 Ctrl+C 退出)
排查实时问题(如服务启动失败、用户访问异常)
less分页查看大文件less /var/log/secure → 分页查看安全日志(包含登录记录)支持:
- 空格翻页,b 回退
- /关键词 搜索,n 下一个匹配
- q 退出
vim文本编辑(全功能)实战步骤
1. vim /etc/nginx/nginx.conf → 打开配置文件(命令模式)
2. 按 i 进入插入模式(可编辑内容)
3. 编辑完成后按 Esc 返回命令模式
4. 输入 :wq 保存并退出;q! 强制退出不保存
运维必备编辑器,建议掌握基础操作(如搜索 :/listen、替换 :%s/80/8080/g

4. 文件查找与内容搜索

命令功能说明实战案例效率提示
find按路径/名称/大小/时间查找文件1. find /etc -name "*.conf" → 在 /etc 下查找所有 .conf 配置文件
2. find /var -size +1G → 查找 /var 下大于 1GB 的文件
3. find /data -mtime -7 → 查找 /data 下 7 天内修改的文件
查找范围大时速度较慢,可结合 -type f(仅文件)、-type d(仅目录)过滤
grep搜索文件中的关键词1. grep "error" /var/log/nginx/error.log → 查找错误日志中的 “error” 行
2. grep -r "listen 80" /etc/nginx/ → 递归搜索 nginx 目录下包含 “listen 80” 的文件
3. grep -i "failed" /var/log/secure → 忽略大小写查找 “failed”(登录失败记录)
结合 `

三、用户与权限管理

1. 用户管理(需 root 权限)

命令功能说明实战案例权限说明
useradd创建用户1. useradd webadmin → 创建普通用户(家目录默认 /home/webadmin
2. useradd -d /data/web -s /bin/bash webuser → 自定义家目录和登录 shell
新用户默认无 sudo 权限,需手动添加到 wheel 组
passwd设置/修改密码1. passwd webadmin → 为 webadmin 设置密码(输入时无回显,需确认两次)
2. passwd -l webadmin → 锁定用户(无法登录)
3. passwd -u webadmin → 解锁用户
强密码建议:包含大小写、数字、特殊字符(如 Web@123!
usermod修改用户属性1. usermod -aG wheel webadmin → 将 webadmin 添加到 wheel 组(获取 sudo 权限)
2. usermod -s /sbin/nologin webuser → 禁止 webuser 登录(适合服务用户)
-aG 表示“追加到组”,避免覆盖原有附加组
userdel删除用户1. userdel webuser → 删除用户(保留家目录)
2. userdel -r webadmin → 彻底删除用户及家目录
删除前确认用户无正在运行的进程(可用 ps -u webadmin 查看)
id查看用户身份信息[root@centos7 ~]# id webadminuid=1001(webadmin) gid=1001(webadmin) groups=1001(webadmin),10(wheel)确认用户的 UID、GID 及所属组

2. 权限管理(核心!)

(1)权限表示规则

Linux 文件权限分为 3 类用户3 种权限

  • 用户类别:所有者(u)、所属组(g)、其他用户(o)
  • 权限类型:读(r=4)、写(w=2)、执行(x=1)
  • 表示方式
    • 符号:如 rwxr-xr-x(所有者可读可写可执行,组和其他用户可读可执行)
    • 数字:如 755(4+2+1=7,4+1=5,4+1=5)

示例解析
-rwxr-xr-- 1 root root 1234 May 20 10:00 test.sh

  1. 第 1 位:文件类型(- 普通文件、d 目录、l 软链接)
  2. 2-4 位:所有者权限(rwx
  3. 5-7 位:所属组权限(r-x
  4. 8-10 位:其他用户权限(r--
(2)权限修改命令
命令功能说明实战案例常见场景
chmod修改权限1. 数字方式:chmod 755 test.sh → 所有者 rwx,组和其他 rx
2. 符号方式:chmod u+x test.sh → 给所有者加执行权限
3. 递归修改:chmod -R 770 /data/web → 目录及子内容仅所有者和组可读写执行
脚本执行前需加执行权限(chmod +x script.sh
chown修改所有者/所属组1. chown webadmin:webadmin test.txt → 同时修改所有者和所属组为 webadmin
2. 递归修改:chown -R nginx:nginx /usr/share/nginx/html → nginx 网站目录归属 nginx 用户
服务启动失败常因权限不足(如 nginx 无权限读取网站文件)

四、软件包管理

CentOS 7 用 yum,CentOS 8 用 dnf(用法兼容 yum),均基于 RPM 包管理,支持自动解决依赖。

1. YUM/DNF 常用命令(需 root 权限)

命令功能说明实战案例注意事项
yum clean all清理缓存[root@centos7 ~]# yum clean all解决“缓存过期导致无法安装”问题
yum makecache生成缓存[root@centos7 ~]# yum makecache加速后续软件包查找和安装
yum repolist查看启用的仓库[root@centos7 ~]# yum repolist确认是否启用 EPEL 等第三方仓库(需先安装 epel-release
yum install安装软件1. yum install nginx -y → 安装 nginx(-y 自动确认)
2. yum install epel-release -y → 安装 EPEL 仓库(提供更多软件)
安装前建议更新缓存(yum makecache
yum update更新软件1. yum update nginx -y → 仅更新 nginx
2. yum update -y → 更新系统所有软件(包括内核,建议生产环境谨慎操作)
更新内核后需重启生效(reboot
yum remove卸载软件[root@centos7 ~]# yum remove nginx -y会自动卸载依赖,但可能影响其他软件,卸载前确认
yum list installed查看已安装软件`[root@centos7 ~]# yum list installedgrep java` → 查看已安装的 Java 包

2. RPM 包管理(手动安装,需 root 权限)

命令功能说明实战案例适用场景
rpm -ivh安装 RPM 包[root@centos7 ~]# rpm -ivh nginx-1.20.1-1.el7.x86_64.rpm无网络时手动安装本地 RPM 包
rpm -qa查看已安装 RPM 包`[root@centos7 ~]# rpm -qagrep mysql` → 查找已安装的 MySQL 相关包
rpm -ql查看 RPM 包文件列表[root@centos7 ~]# rpm -ql nginx → 查看 nginx 安装的所有文件路径定位配置文件、二进制文件位置

五、服务与进程管理

1. Systemd 服务管理(CentOS 7+ 核心,需 root 权限)

命令功能说明实战案例(以 nginx 为例)故障排查
systemctl start启动服务[root@centos7 ~]# systemctl start nginx启动失败用 systemctl status nginx 查看日志
systemctl stop停止服务[root@centos7 ~]# systemctl stop nginx停止后用 netstat -tuln 确认端口是否释放
systemctl restart重启服务[root@centos7 ~]# systemctl restart nginx配置文件修改后需重启(或 reload
systemctl reload重新加载配置[root@centos7 ~]# systemctl reload nginx无需中断服务,优先使用(如 nginx、apache 配置更新)
systemctl enable开机自启[root@centos7 ~]# systemctl enable nginx服务器重启后自动启动服务
systemctl status查看服务状态[root@centos7 ~]# systemctl status nginx输出包含:
- 活跃状态(active/inactive)
- 最近日志(如启动失败原因)

2. 进程管理

命令功能说明实战案例常用参数
ps查看进程状态1. ps aux → 查看所有用户的所有进程
2. `ps aux
grep nginx` → 查找 nginx 相关进程
top实时查看系统进程与资源占用[root@centos7 ~]# top交互操作:
- P:按 CPU 占用排序
- M:按内存占用排序
- k:终止进程(输入 PID)
- q:退出
kill终止进程1. kill 1234 → 发送 SIGTERM 信号终止 PID 为 1234 的进程
2. kill -9 1234 → 强制终止进程(SIGKILL 信号,无法忽略)
先尝试 kill,无效再用 kill -9(强制终止可能丢失数据)
pkill按进程名终止进程[root@centos7 ~]# pkill nginx → 终止所有 nginx 进程kill 更便捷(无需查找 PID)

六、网络配置与管理

1. 网络信息查询

命令功能说明实战案例输出关键信息
ip addr查看网卡 IP 地址[root@centos7 ~]# ip addr关注:inet 192.168.1.100/24(IP 及子网掩码)、eth0(网卡名)
ip route查看路由表[root@centos7 ~]# ip route输出:default via 192.168.1.1 dev eth0(默认网关为 192.168.1.1)
ping测试网络连通性1. ping 192.168.1.1 → 测试内网网关连通性
2. ping www.baidu.com -c 4 → 测试外网连通性(-c 4 发送 4 个包后停止)
丢包或超时表示网络不通
netstat查看端口占用[root@centos7 ~]# netstat -tuln选项:
t:TCP 端口
u:UDP 端口
l:监听中端口
n:数字显示(不解析域名)
ss查看端口占用(替代 netstat)`[root@centos7 ~]# ss -tulngrep 80` → 查看 80 端口是否被占用

2. 防火墙配置(firewalld,CentOS 7+ 默认)

命令功能说明实战案例生产建议
systemctl start firewalld启动防火墙[root@centos7 ~]# systemctl start firewalld生产环境必须开启防火墙
firewall-cmd --add-port=80/tcp --permanent永久开放 80 端口开放后需重新加载:firewall-cmd --reload--permanent 表示永久生效(重启不丢失)
firewall-cmd --list-ports查看开放的端口[root@centos7 ~]# firewall-cmd --list-ports确认需要的端口是否开放
firewall-cmd --remove-port=8080/tcp --permanent永久关闭 8080 端口关闭后需重新加载:firewall-cmd --reload及时关闭无用端口,减少攻击面

七、系统常用操作

命令功能说明实战案例备注
reboot重启系统[root@centos7 ~]# reboot生产环境重启前需通知用户,关闭重要服务
shutdown -h now立即关机[root@centos7 ~]# shutdown -h now替代 poweroff,更安全
shutdown -h +10 "System will shutdown in 10 minutes"10 分钟后关机可通过 shutdown -c 取消关机用于计划维护
sync同步内存数据到磁盘[root@centos7 ~]# sync关机前执行,避免数据丢失
history查看命令历史[root@centos7 ~]# history → 显示最近执行的命令Ctrl+R 可搜索历史命令(输入关键词)
tar压缩/解压文件1. 压缩:tar -zcvf /data/backup/nginx.tar.gz /etc/nginx/
2. 解压:tar -zxvf /data/backup/nginx.tar.gz -C /tmp/
选项:
z:gzip 压缩
c:创建压缩包
x:解压
v:显示过程
f:指定文件名
http://www.xdnf.cn/news/1438795.html

相关文章:

  • 多路复用 I/O 函数——`select`函数解析
  • 一次惊心动魄的线上事故:记一次内存泄漏Bug的排查与解决全过程
  • 从一道面试题开始:如何让同时启动的线程按顺序执行?
  • Bug排查日记:从发现到解决的完整记录
  • 在word中使用lateX公式的方法
  • 力扣115:不同的子序列
  • Unity Android 文件的读写
  • Delphi 5 中操作 Word 表格时禁用鼠标交互
  • 更新远程分支 git fetch
  • 揭开PCB隐形杀手:超周期报废的技术真相
  • AI编码生产力翻倍:你必须掌握的沟通、流程、工具与安全心法
  • 一键掌握服务器健康状态与安全风险
  • 同步工具的底层依赖:AQS
  • Kubernetes 中为 ZenTao 的 Apache 服务器添加请求体大小限制
  • 如何开发一款高稳定、低延迟、功能全面的RTSP播放器?
  • 时序数据库选型指南:为何Apache IoTDB成为工业物联网首选
  • JVM分析(OOM、死锁、死循环)(JProfiler、arthas、jvm自带工具)
  • STM32 - Embedded IDE - GCC - 使用 GCC 链接脚本限制 Flash 区域
  • 【Android】从复用到重绘的控件定制化方式
  • HarmonyOS 应用开发深度解析:基于 ArkTS 的声明式 UI 与状态管理艺术
  • HarmonyOS安装以及遇到的问题
  • Jenkins-Ansible部署discuz论坛
  • 38.Ansible判断+实例
  • PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题,Matlab实现
  • 力扣hot100:缺失的第一个正数(哈希思想)(41)
  • Qwen3-30B-A3B 模型解析
  • 【C++】迭代器详解与失效机制
  • # Shell 文本处理三剑客:awk、sed 与常用小工具详解
  • 【前端面试题✨】Vue篇(一)
  • Linux网络序列化与反序列化(6)