1、系统信息
类别 | 命令 | 说明 |
---|---|---|
系统信息 | uname -r | 显示内核版本 |
lsb_release -a | 显示发行版信息(如 CentOS Stream 9) | |
cat /etc/redhat-release | 查看 CentOS 版本信息 | |
cat /proc/cpuinfo | 查看 CPU 详细信息 | |
lscpu | 显示 CPU 架构和核心数 | |
lsblk | 查看块设备和挂载点信息 | |
hostnamectl | 查看和设置主机名、系统信息 | |
cat /etc/os-release | 查看系统版本信息 | |
whoami | 显示当前用户名 | |
dmidecode -t system | 查看硬件系统信息(需 root) | |
lshw | 列出所有硬件信息(需安装 lshw) | |
free -h | 查看内存和交换区使用情况 | |
swapon --show | 显示交换分区使用情况 | |
uptime | 显示系统运行时间和负载 | |
cat /proc/meminfo | 查看内存详细信息 | |
nproc | 显示 CPU 核心数 | |
lscpu | grep "Model name" | 查看 CPU 型号 | |
cat /proc/uptime | 查看系统运行时间(秒) | |
lsb_release -cs | 显示发行版代号 | |
cat /sys/class/dmi/id/product_name | 查看硬件产品名称 |
2、用户与组管理
类别 | 命令 | 说明 |
---|---|---|
用户与组管理 | adduser <用户名> | 添加新用户 |
userdel -r <用户名> | 删除用户及其家目录 | |
passwd <用户名> | 修改指定用户密码 | |
passwd | 修改当前用户密码 | |
sudo passwd root | 修改 root 用户密码 | |
groupadd <组名> | 创建新组 | |
groupdel <组名> | 删除组 | |
usermod -aG <组名> <用户名> | 将用户添加到组 | |
usermod -s /bin/bash <用户名> | 修改用户默认 Shell | |
id <用户名> | 查看用户 UID、GID 和组信息 | |
getent passwd | 查看所有用户信息 | |
getent group | 查看所有组信息 | |
who | 显示当前登录用户 | |
w | 显示登录用户及活动 | |
last | 查看用户登录历史 | |
chage -l <用户名> | 查看用户密码过期信息 | |
usermod -L <用户名> | 锁定用户账户 | |
usermod -U <用户名> | 解锁用户账户 | |
vipw | 安全编辑 /etc/passwd 文件 | |
vigr | 安全编辑 /etc/group 文件 |
3、主机名与 DNS 配置
类别 | 命令 | 说明 |
---|---|---|
主机名与 DNS 配置 | hostnamectl set-hostname <主机名> | 设置主机名 |
hostname | 显示当前主机名 | |
echo <主机名> > /etc/hostname | 永久修改主机名(需重启生效) | |
echo "nameserver 8.8.8.8" > /etc/resolv.conf | 设置 DNS(临时,重启可能失效) | |
nmcli con mod <连接名> ipv4.dns "8.8.8.8 8.8.4.4" | 修改网络连接的 DNS | |
nmcli con mod <连接名> ipv4.dns-search <域名> | 设置 DNS 搜索域 | |
nmcli con up <连接名> | 激活网络连接以应用 DNS | |
sudo systemctl restart systemd-resolved | 重启 DNS 解析服务 | |
cat /etc/resolv.conf | 查看当前 DNS 配置 | |
nslookup <域名> | 查询域名解析 | |
dig <域名> | 详细 DNS 查询(需安装 bind-utils) | |
host <域名> | 简单 DNS 查询(需 bind-utils) | |
nmcli con show <连接名> | grep dns | 查看指定连接的 DNS 配置 | |
sudo nmcli con mod <连接名> ipv4.ignore-auto-dns yes | 禁用自动 DNS |
4、SSH 管理
类别 | 命令 | 说明 |
---|---|---|
SSH 管理 | ssh-keygen -t rsa | 生成 RSA 密钥对 |
ssh-keygen -t ed25519 | 生成 Ed25519 密钥对(更安全) | |
ssh-keygen -t rsa -b 4096 | 生成 4096 位 RSA 密钥对 | |
ssh-copy-id <用户@主机> | 将公钥复制到远程主机 | |
ssh <用户@主机> | 登录远程主机 | |
ssh -p <端口> <用户@主机> | 指定端口登录远程主机 | |
sudo systemctl restart sshd | 重启 SSH 服务 | |
sudo systemctl status sshd | 检查 SSH 服务状态 | |
sudo systemctl enable sshd | 设置 SSH 服务开机自启 | |
cat ~/.ssh/id_rsa.pub | 查看本地公钥 | |
ssh-add | 将私钥添加到 SSH 代理 | |
sudo nano /etc/ssh/sshd_config | 编辑 SSH 服务配置文件 | |
ssh -i <私钥文件> <用户@主机> | 使用指定私钥登录 | |
ssh-keygen -R <主机> | 从 known_hosts 删除主机指纹 | |
sudo semanage port -a -t ssh_port_t -p tcp <端口> | 修改 SELinux 端口上下文(需自定义端口) |
5、时间与时区管理
类别 | 命令 | 说明 |
---|---|---|
时间与时区管理 | date | 显示当前日期和时间 |
timedatectl | 查看系统时间和时区状态 | |
sudo timedatectl set-timezone Asia/Shanghai | 设置时区为上海 | |
sudo timedatectl set-ntp true | 启用 NTP 时间同步 | |
sudo timedatectl set-time "2025-04-10 10:00:00" | 手动设置系统时间 | |
sudo dnf install chrony -y | 安装 chrony 时间同步服务 | |
sudo systemctl enable chronyd | 设置 chronyd 开机自启 | |
sudo systemctl restart chronyd | 重启 chronyd 服务 | |
chronyc sources | 查看 NTP 时间源 | |
chronyc tracking | 查看时间同步状态 | |
sudo hwclock | 查看硬件时钟 | |
sudo hwclock --systohc | 将系统时间同步到硬件时钟 | |
sudo hwclock --hctosys | 将硬件时钟同步到系统时间 | |
timedatectl list-timezones | 列出所有可用时区 |
6、防火墙管理(firewalld)
类别 | 命令 | 说明 |
---|---|---|
防火墙管理 | sudo firewall-cmd --state | 查看防火墙状态 |
sudo firewall-cmd --get-active-zones | 查看活动区域 | |
sudo firewall-cmd --permanent --add-service=ssh | 允许 SSH 服务 | |
sudo firewall-cmd --permanent --add-port=80/tcp | 开放 80 端口 | |
sudo firewall-cmd --permanent --remove-port=80/tcp | 关闭 80 端口 | |
sudo firewall-cmd --reload | 重新加载防火墙规则 | |
sudo firewall-cmd --list-all | 查看当前区域的所有规则 | |
sudo firewall-cmd --list-services | 查看当前区域允许的服务 | |
sudo firewall-cmd --permanent --add-source=<IP/子网> | 限制来源 IP 或子网 | |
sudo firewall-cmd --permanent --zone=public --change-interface=<接口> | 更改接口区域 | |
sudo firewall-cmd --panic-on | 启用紧急模式(阻断所有流量) | |
sudo firewall-cmd --panic-off | 关闭紧急模式 | |
sudo firewall-cmd --query-service ssh | 检查是否允许 SSH 服务 | |
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<IP> port port=22 protocol=tcp accept' | 添加富规则限制特定 IP 访问 SSH |
7、SELinux 管理
类别 | 命令 | 说明 |
---|---|---|
SELinux 管理 | getenforce | 查看当前 SELinux 状态 |
sudo setenforce 0 | 临时禁用 SELinux(0=关闭,1=启用) | |
sudo setenforce 1 | 临时启用 SELinux | |
sudo nano /etc/selinux/config | 编辑 SELinux 配置文件 | |
sestatus | 查看详细 SELinux 状态 | |
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?" | 设置文件上下文(例如 Apache) | |
sudo restorecon -R /var/www | 恢复目录的 SELinux 上下文 | |
sudo ausearch -m avc | 查看 SELinux 拒绝日志 | |
sudo audit2allow -a | 根据日志生成 SELinux 策略(需 audit2allow) | |
sudo semanage port -l | 列出 SELinux 端口策略 | |
sudo semanage port -a -t http_port_t -p tcp 8080 | 添加自定义端口到 SELinux 策略 |
8、文件与目录管理
类别 | 命令 | 说明 |
---|---|---|
文件与目录管理 | mkdir -p /路径/目录 | 创建目录及其父目录 |
rmdir 目录名 | 删除空目录 | |
ls -lh | 列出目录内容(-a 显示隐藏文件) | |
ls -ld 目录名 | 查看目录本身的详细信息 | |
cp -r 源目录 目标目录 | 递归复制目录及其内容 | |
mv 源文件 目标文件 | 移动或重命名文件/目录 | |
rm -rf 目录名 | 强制删除目录及其内容(谨慎使用) | |
touch 文件名 | 创建空文件或更新时间戳 | |
ln -s 源文件 链接名 | 创建符号链接 | |
ln 源文件 硬链接名 | 创建硬链接 | |
cat 文件名 | 查看文件内容 | |
less 文件名 | 分页查看文件(q 退出) | |
more 文件名 | 分页查看文件(空格翻页) | |
head -n 10 文件名 | 查看文件前 10 行 | |
tail -n 10 文件名 | 查看文件后 10 行 | |
tail -f 文件名 | 实时查看文件末尾(日志用) | |
stat 文件名 | 查看文件详细状态(权限、大小等) | |
file 文件名 | 查看文件类型 |
9、文件搜索与文本处理
类别 | 命令 | 说明 |
---|---|---|
文件搜索与文本处理 | find / -name "*.txt" | 查找所有 .txt 文件 |
find /路径 -type f -mtime -7 | 查找 7 天内修改的文件 | |
locate 文件名 | 快速查找文件(需 sudo updatedb) | |
whereis <命令> | 查找命令位置(如 whereis ls) | |
which <命令> | 显示命令路径(如 which python3) | |
grep -r "模式" /路径 | 递归搜索匹配文本 | |
grep -i "模式" 文件名 | 忽略大小写搜索文本 | |
awk '{print $2}' 文件名 | 打印文件第二列 | |
sed 's/旧/新/g' 文件名 | 替换文件中匹配文本(不修改原文件) | |
sed -i 's/旧/新/g' 文件名 | 替换文件中匹配文本并保存 | |
cut -d',' -f1 文件名 | 按逗号分隔提取第一列 | |
sort 文件名 | 对文件内容排序 | |
uniq 文件名 | 去除重复行(需先排序) | |
wc -l 文件名 | 统计文件行数 |
10、权限管理
类别 | 命令 | 说明 |
---|---|---|
权限管理 | chmod 755 文件名 | 修改文件权限(755 = rwx/r-x/r-x) |
chmod -R 644 目录名 | 递归修改目录下文件权限 | |
chown -R 用户:组 目录 | 递归更改所有者和组 | |
chgrp 组名 文件名 | 更改文件所属组 | |
ls -l 文件名 | 查看文件权限详情 | |
sudo setfacl -m u:用户:rwx 文件名 | 设置文件 ACL 权限 | |
sudo getfacl 文件名 | 查看文件 ACL 权限 | |
sudo chown -h 用户 链接名 | 修改符号链接的所有者 |
11、进程管理
类别 | 命令 | 说明 |
---|---|---|
进程管理 | ps aux | 列出所有正在运行的进程 |
ps -ef | 列出所有进程详细信息 | |
kill -9 <PID> | 强制终止进程(PID 为进程 ID) | |
pkill -9 <进程名> | 按进程名强制终止 | |
killall <进程名> | 终止所有匹配进程名的进程 | |
top | 实时查看进程状态(q 退出) | |
htop | 更友好的进程查看工具(需安装) | |
jobs | 查看后台任务 | |
bg | 将暂停任务放入后台 | |
fg | 将后台任务切换到前台 | |
nohup <命令> & | 后台运行命令并忽略挂起信号 | |
nice -n 10 <命令> | 以指定优先级运行命令 | |
renice 10 <PID> | 调整运行中进程优先级 |
12、日志查看与分析
类别 | 命令 | 说明 |
---|---|---|
日志查看与分析 | journalctl -xe | 查看系统日志并跳转到末尾 |
journalctl -u <服务名> | 查看指定服务日志(如 sshd) | |
journalctl -b | 查看本次启动的日志 | |
journalctl --since "YYYY-MM-DD" | 查看指定日期后的日志 | |
tail -n 50 /var/log/messages | 查看系统日志最后 50 行 | |
tail -f /var/log/secure | 实时查看安全日志(认证相关) | |
dmesg | 查看内核日志 | |
dmesg --level=err | 查看错误级别的内核日志 | |
sudo ausearch -m avc | 查看 SELinux 拒绝日志 | |
sudo logrotate -f /etc/logrotate.conf | 强制执行日志轮转 |
13、磁盘与空间管理
类别 | 命令 | 说明 |
---|---|---|
磁盘与空间管理 | df -h | 查看磁盘分区使用情况 |
df -i | 查看磁盘 inode 使用情况 | |
du -sh /路径 | 计算指定路径总大小 | |
sudo fdisk -l | 列出磁盘分区信息(需 root) | |
lsblk | 列出块设备信息 | |
sudo parted -l | 查看分区表信息(需 parted) | |
sudo mkfs.ext4 /dev/sdX | 格式化分区为 ext4(替换 /dev/sdX) | |
sudo mkfs.xfs /dev/sdX | 格式化分区为 xfs(CentOS 默认文件系统) | |
sudo mount /dev/sdX /mnt | 挂载分区到指定目录 | |
sudo umount /mnt | 卸载挂载点 | |
sudo blkid | 查看块设备 UUID 和类型 | |
sudo parted /dev/sdX mklabel gpt | 创建 GPT 分区表 | |
sudo parted /dev/sdX mkpart primary 0% 100% | 创建主分区 | |
sudo resize2fs /dev/sdX | 调整 ext 文件系统大小 | |
sudo xfs_growfs /mnt | 扩展 xfs 文件系统大小 | |
sudo fstrim -v / | 执行 TRIM 操作(SSD 优化) |
14、软件包管理(DNF)
类别 | 命令 | 说明 |
---|---|---|
软件包管理 | sudo dnf update -y | 更新所有软件包 |
sudo dnf upgrade -y | 升级所有软件包(含依赖处理) | |
sudo dnf install <软件名> -y | 安装指定软件包(如 nginx) | |
sudo dnf remove <软件名> -y | 删除软件包 | |
sudo dnf autoremove -y | 清理不再需要的依赖包 | |
sudo dnf clean all | 删除缓存的软件包文件 | |
dnf list installed | 列出已安装的软件包 | |
dnf list available | 列出可安装的软件包 | |
dnf provides <文件> | 查找提供指定文件的软件包 | |
dnf info <软件名> | 查看软件包详细信息 | |
sudo dnf groupinstall <组名> | 安装软件包组(如 "Development Tools") | |
sudo dnf repolist | 查看启用的软件源 | |
sudo dnf config-manager --add-repo <URL> | 添加第三方软件源 | |
sudo dnf module list | 查看可用模块(如 python39) | |
sudo dnf module install <模块名> | 安装指定模块(如 nginx:1.20) | |
sudo dnf history | 查看 DNF 操作历史 | |
sudo dnf check-update | 检查可用更新 |
15、容器管理(Podman)
类别 | 命令 | 说明 |
---|---|---|
容器管理 | podman ps | 查看运行中的容器 |
podman ps -a | 查看所有容器(包括停止的) | |
podman run -d <镜像名> | 后台运行容器 | |
podman run -it <镜像名> /bin/bash | 交互式运行容器 | |
podman stop <容器名> | 停止容器 | |
podman rm <容器名> | 删除容器 | |
podman images | 查看本地镜像 | |
podman pull <镜像名> | 拉取镜像 | |
podman rmi <镜像名> | 删除镜像 | |
podman build -t <镜像名> . | 从 Dockerfile 构建镜像 | |
podman exec -it <容器名> /bin/bash | 进入容器终端 | |
podman logs <容器名> | 查看容器日志 | |
podman inspect <容器名> | 查看容器详细信息 | |
podman network create <网络名> | 创建容器网络 | |
podman volume create <卷名> | 创建容器卷 | |
podman pod create <pod名> | 创建 Pod(容器组) | |
podman generate systemd <容器名> | 生成 systemd 服务文件 |
16、网络管理
类别 | 命令 | 说明 |
---|---|---|
网络管理 | ip addr show | 显示所有接口的 IP 和状态 |
ip link show | 显示网络接口状态(无 IP) | |
nmcli con show | 列出网络连接详细信息 | |
nmcli con up <连接名> | 激活指定网络连接 | |
nmcli con down <连接名> | 禁用指定网络连接 | |
nmcli con add type ethernet con-name <连接名> ifname <接口> ipv4.method manual ipv4.addresses <IP/掩码> | 添加静态 IP 配置 | |
sudo ip addr add <IP/掩码> dev <接口> | 手动添加 IP 地址 | |
sudo ip link set <接口> up | 启用网络接口 | |
sudo ip link set <接口> down | 禁用网络接口 | |
ping <主机> | 测试连通性(如 ping 8.8.8.8) | |
traceroute <主机> | 跟踪路由路径(需 traceroute) | |
ss -tuln | 查看监听端口 | |
netstat -tuln | 查看监听端口(需 net-tools) | |
ip route show | 查看路由表 | |
sudo ip route add default via <网关> | 添加默认路由 | |
sudo nmcli networking off | 关闭网络功能 | |
sudo nmcli networking on | 启用网络功能 | |
curl -I <URL> | 检查 URL 的 HTTP 头部 | |
sudo tcpdump -i <接口> | 捕获网络数据包(需 tcpdump) | |
sudo ethtool <接口> | 查看接口详细信息(需 ethtool) |
17、系统维护
类别 | 命令 | 说明 |
---|---|---|
系统维护 | sudo reboot | 重启系统 |
sudo shutdown -h now | 立即关闭系统 | |
sudo shutdown -r 10 | 10 分钟后重启系统 | |
sudo systemctl rescue | 进入救援模式 | |
sudo systemctl emergency | 进入紧急模式 | |
sudo fsck /dev/sda1 | 检查并修复文件系统(替换 /dev/sda1) | |
sudo dnf install -f | 修复损坏的软件包依赖 | |
sudo grub2-mkconfig -o /boot/grub2/grub.cfg | 更新 GRUB 配置文件 | |
sudo systemctl daemon-reload | 重新加载 systemd 配置 | |
sudo systemctl list-units | 列出所有 systemd 单元状态 |
18、内核模块管理
类别 | 命令 | 说明 |
---|---|---|
内核模块管理 | lsmod | 列出已加载的内核模块 |
sudo modprobe <模块名> | 加载内核模块 | |
sudo rmmod <模块名> | 卸载内核模块 | |
sudo modinfo <模块名> | 查看模块详细信息 | |
sudo depmod | 更新模块依赖 | |
cat /proc/modules | 查看当前加载的模块 |
19、性能监控
类别 | 命令 | 说明 |
---|---|---|
性能监控 | top | 实时查看进程状态(q 退出) |
htop | 更友好的进程查看工具(需安装) | |
vmstat 1 | 每秒刷新系统资源使用情况 | |
iostat | 查看 CPU 和 IO 统计(需 sysstat) | |
iotop | 实时查看磁盘 IO(需 iotop) | |
mpstat 1 | 每秒显示 CPU 使用情况(需 sysstat) | |
pidstat 1 | 每秒显示进程资源使用(需 sysstat) | |
sudo perf stat <命令> | 性能统计(需 perf) | |
sar -u 1 | 每秒显示 CPU 使用情况(需 sysstat) | |
free -m | 查看内存使用情况(以 MB 为单位) |
20、备份与恢复
类别 | 命令 | 说明 |
---|---|---|
备份与恢复 | tar -cvf backup.tar /路径 | 创建备份文件 |
tar -xvf backup.tar | 解压备份文件 | |
rsync -av /源 /目标 | 同步备份文件/目录 | |
dd if=/dev/sda of=/backup.img bs=4M | 创建磁盘镜像 | |
sudo dd if=/backup.img of=/dev/sda bs=4M | 恢复磁盘镜像 | |
sudo xfsdump -f /backup.xfs /mnt | 备份 xfs 文件系统(需 xfsdump) |
21、历史命令管理
类别 | 命令 | 说明 |
---|---|---|
历史命令管理 | history | 查看历史命令 |
history | grep <关键词> | 搜索历史命令 | |
echo "export HISTTIMEFORMAT='%F %T '" >> ~/.bashrc | 显示历史命令时间戳 | |
history -c | 清空当前会话历史 | |
ctrl + r | 交互式搜索历史命令 | |
!<编号> | 执行指定编号的历史命令 |
注意事项
- 软件包管理:CentOS Stream 9 使用 dnf,支持模块化软件包管理(如 dnf module)。
- 容器管理:默认使用 podman,与 Docker 命令类似但无守护进程,适合无根运行。
- SELinux:CentOS Stream 9 默认启用 SELinux,部分命令需考虑 SELinux 上下文。
- 文件系统:默认使用 xfs,部分磁盘管理命令针对 xfs 优化。
这些命令收集不易,喜欢的朋友可以点个赞