1、系统信息
类别 | 命令 | 说明 |
---|---|---|
系统信息 | uname -r | 显示内核版本 |
lsb_release -a | 显示发行版信息(如 CentOS 7) | |
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 | 查看系统运行时间(秒) | |
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 | 查看用户登录历史 | |
lastlog | 查看所有用户最后登录时间 | |
chage -l <用户名> | 查看用户密码过期信息 | |
usermod -L <用户名> | 锁定用户账户 | |
usermod -U <用户名> | 解锁用户账户 | |
vipw | 安全编辑 /etc/passwd 文件 | |
vigr | 安全编辑 /etc/group 文件 |
3、主机名与网络配置
类别 | 命令 | 说明 |
---|---|---|
主机名与网络配置 | hostnamectl set-hostname <主机名> | 设置主机名 |
hostname | 显示当前主机名 | |
echo <主机名> > /etc/hostname | 永久修改主机名(需重启生效) | |
vi /etc/sysconfig/network | 编辑网络配置文件,设置主机名 | |
echo "nameserver 8.8.8.8" > /etc/resolv.conf | 设置 DNS(临时,重启可能失效) | |
vi /etc/sysconfig/network-scripts/ifcfg-<接口> | 编辑网络接口配置文件,添加 DNS | |
service network restart | 重启网络服务以应用 DNS | |
cat /etc/resolv.conf | 查看当前 DNS 配置 | |
nslookup <域名> | 查询域名解析 | |
dig <域名> | 详细 DNS 查询(需安装 bind-utils) | |
host <域名> | 简单 DNS 查询(需 bind-utils) | |
ip addr show | 显示所有接口的 IP 和状态 | |
ip link show | 显示网络接口状态(无 IP) | |
ifconfig | 显示接口状态(需 net-tools) | |
ip link set <接口> up | 启用网络接口 | |
ip link set <接口> down | 禁用网络接口 | |
ip addr add <IP/掩码> dev <接口> | 手动添加 IP 地址 | |
ip route show | 查看路由表 | |
ip route add default via <网关> | 添加默认路由 | |
ping <主机> | 测试连通性(如 ping 8.8.8.8) | |
traceroute <主机> | 跟踪路由路径(需 traceroute) | |
netstat -tuln | 查看监听端口(需 net-tools) | |
ss -tuln | 查看监听端口(替代 netstat) | |
curl <URL> | 获取网页内容 | |
wget <URL> | 下载文件 |
4、SSH 管理
类别 | 命令 | 说明 |
---|---|---|
SSH 管理 | ssh-keygen -t rsa | 生成 RSA 密钥对 |
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 vi /etc/ssh/sshd_config | 编辑 SSH 服务配置文件 | |
ssh -i <私钥文件> <用户@主机> | 使用指定私钥登录 | |
ssh-keygen -R <主机> | 从 known_hosts 删除主机指纹 |
5、时间与时区管理
类别 | 命令 | 说明 |
---|---|---|
时间与时区管理 | date | 显示当前日期和时间 |
timedatectl | 查看系统时间和时区状态 | |
timedatectl set-timezone Asia/Shanghai | 设置时区为上海 | |
timedatectl set-time "2025-04-10 10:00:00" | 手动设置系统时间 | |
yum install ntp -y | 安装 NTP 服务 | |
ntpdate pool.ntp.org | 手动同步时间 | |
systemctl start ntpd | 启动 NTP 服务 | |
systemctl enable ntpd | 设置 NTP 服务开机自启 | |
hwclock | 查看硬件时钟 | |
hwclock --systohc | 将系统时间同步到硬件时钟 | |
hwclock --hctosys | 将硬件时钟同步到系统时间 | |
timedatectl list-timezones | 列出所有可用时区 |
6、防火墙管理
类别 | 命令 | 说明 |
---|---|---|
防火墙管理 | iptables -L -n -v | 查看 iptables 规则 |
iptables -A INPUT -p tcp --dport 22 -j ACCEPT | 允许 SSH 连接 | |
iptables -A INPUT -p tcp --dport 80 -j ACCEPT | 允许 HTTP 连接 | |
iptables -A INPUT -j DROP | 拒绝所有未匹配的连接 | |
service iptables save | 保存 iptables 规则 | |
service iptables restart | 重启 iptables 服务 | |
firewall-cmd --state | 查看 firewalld 状态(需安装 firewalld) | |
firewall-cmd --permanent --add-service=ssh | 允许 SSH 服务 | |
firewall-cmd --permanent --add-port=80/tcp | 开放 80 端口 | |
firewall-cmd --reload | 重新加载 firewalld 规则 | |
firewall-cmd --list-all | 查看当前区域的所有规则 |
7、SELinux 管理
类别 | 命令 | 说明 |
---|---|---|
SELinux 管理 | getenforce | 查看当前 SELinux 状态 |
setenforce 0 | 临时禁用 SELinux(0=关闭,1=启用) | |
setenforce 1 | 临时启用 SELinux | |
vi /etc/selinux/config | 编辑 SELinux 配置文件 | |
sestatus | 查看详细 SELinux 状态 | |
semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?" | 设置文件上下文(例如 Apache) | |
restorecon -R /var/www | 恢复目录的 SELinux 上下文 | |
ausearch -m avc | 查看 SELinux 拒绝日志 | |
semanage port -l | 列出 SELinux 端口策略 | |
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 文件名 | 快速查找文件(需 updatedb) | |
whereis <命令> | 查找命令位置(如 whereis ls) | |
which <命令> | 显示命令路径(如 which python) | |
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 文件名 | 查看文件权限详情 | |
setfacl -m u:用户:rwx 文件名 | 设置文件 ACL 权限 | |
getfacl 文件名 | 查看文件 ACL 权限 |
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 | 查看错误级别的内核日志 | |
ausearch -m avc | 查看 SELinux 拒绝日志 | |
logrotate -f /etc/logrotate.conf | 强制执行日志轮转 |
13、磁盘与空间管理
类别 | 命令 | 说明 |
---|---|---|
磁盘与空间管理 | df -h | 查看磁盘分区使用情况 |
df -i | 查看磁盘 inode 使用情况 | |
du -sh /路径 | 计算指定路径总大小 | |
sudo fdisk -l | 列出磁盘分区信息(需 root) | |
lsblk | 列出块设备信息 | |
parted -l | 查看分区表信息(需 parted) | |
mkfs.ext4 /dev/sdX | 格式化分区为 ext4(替换 /dev/sdX) | |
mkfs.xfs /dev/sdX | 格式化分区为 xfs | |
mount /dev/sdX /mnt | 挂载分区到指定目录 | |
umount /mnt | 卸载挂载点 | |
blkid | 查看块设备 UUID 和类型 | |
parted /dev/sdX mklabel gpt | 创建 GPT 分区表 | |
parted /dev/sdX mkpart primary 0% 100% | 创建主分区 | |
resize2fs /dev/sdX | 调整 ext 文件系统大小 | |
xfs_growfs /mnt | 扩展 xfs 文件系统大小 |
14、软件包管理(YUM)
类别 | 命令 | 说明 |
---|---|---|
软件包管理 | yum update -y | 更新所有软件包 |
yum install <软件名> -y | 安装指定软件包(如 nginx) | |
yum remove <软件名> -y | 删除软件包 | |
yum autoremove -y | 清理不再需要的依赖包 | |
yum clean all | 删除缓存的软件包文件 | |
yum list installed | 列出已安装的软件包 | |
yum list available | 列出可安装的软件包 | |
yum provides <文件> | 查找提供指定文件的软件包 | |
yum info <软件名> | 查看软件包详细信息 | |
yum groupinstall <组名> | 安装软件包组(如 "Development Tools") | |
yum repolist | 查看启用的软件源 | |
yum-config-manager --add-repo <URL> | 添加第三方软件源(需 yum-utils) | |
yum history | 查看 YUM 操作历史 | |
yum check-update | 检查可用更新 |
15、容器管理(Docker)
类别 | 命令 | 说明 |
---|---|---|
容器管理 | yum install docker -y | 安装 Docker |
systemctl start docker | 启动 Docker 服务 | |
systemctl enable docker | 设置 Docker 开机自启 | |
docker ps | 查看运行中的容器 | |
docker ps -a | 查看所有容器(包括停止的) | |
docker run -d <镜像名> | 后台运行容器 | |
docker run -it <镜像名> /bin/bash | 交互式运行容器 | |
docker stop <容器名> | 停止容器 | |
docker rm <容器名> | 删除容器 | |
docker images | 查看本地镜像 | |
docker pull <镜像名> | 拉取镜像 | |
docker rmi <镜像名> | 删除镜像 | |
docker build -t <镜像名> . | 从 Dockerfile 构建镜像 | |
docker exec -it <容器名> /bin/bash | 进入容器终端 | |
docker logs <容器名> | 查看容器日志 |
16、性能监控
类别 | 命令 | 说明 |
---|---|---|
性能监控 | top | 实时查看进程状态(q 退出) |
htop | 更友好的进程查看工具(需安装) | |
vmstat 1 | 每秒刷新系统资源使用情况 | |
iostat | 查看 CPU 和 IO 统计(需 sysstat) | |
iotop | 实时查看磁盘 IO(需 iotop) | |
mpstat 1 | 每秒显示 CPU 使用情况(需 sysstat) | |
pidstat 1 | 每秒显示进程资源使用(需 sysstat) | |
sar -u 1 | 每秒显示 CPU 使用情况(需 sysstat) | |
free -m | 查看内存使用情况(以 MB 为单位) |
17、备份与恢复
类别 | 命令 | 说明 |
---|---|---|
备份与恢复 | tar -cvf backup.tar /路径 | 创建备份文件 |
tar -xvf backup.tar | 解压备份文件 | |
rsync -av /源 /目标 | 同步备份文件/目录 | |
dd if=/dev/sda of=/backup.img bs=4M | 创建磁盘镜像 | |
dd if=/backup.img of=/dev/sda bs=4M | 恢复磁盘镜像 | |
xfsdump -f /backup.xfs /mnt | 备份 xfs 文件系统(需 xfsdump) |
18、内核模块管理
类别 | 命令 | 说明 |
---|---|---|
内核模块管理 | lsmod | 列出已加载的内核模块 |
modprobe <模块名> | 加载内核模块 | |
rmmod <模块名> | 卸载内核模块 | |
modinfo <模块名> | 查看模块详细信息 | |
depmod | 更新模块依赖 | |
cat /proc/modules | 查看当前加载的模块 |
19、历史命令管理
类别 | 命令 | 说明 |
---|---|---|
历史命令管理 | history | 查看历史命令 |
history | grep <关键词> | 搜索历史命令 | |
echo "export HISTTIMEFORMAT='%F %T '" >> ~/.bashrc | 显示历史命令时间戳 | |
history -c | 清空当前会话历史 | |
ctrl + r | 交互式搜索历史命令 | |
!<编号> | 执行指定编号的历史命令 |
20、系统维护
类别 | 命令 | 说明 |
---|---|---|
系统维护 | reboot | 重启系统 |
shutdown -h now | 立即关闭系统 | |
shutdown -r 10 | 10 分钟后重启系统 | |
systemctl rescue | 进入救援模式 | |
systemctl emergency | 进入紧急模式 | |
fsck /dev/sda1 | 检查并修复文件系统(替换 /dev/sda1) | |
grub2-mkconfig -o /boot/grub2/grub.cfg | 更新 GRUB 配置文件 | |
systemctl daemon-reload | 重新加载 systemd 配置 | |
systemctl list-units | 列出所有 systemd 单元状态 |
注意事项
- 软件包管理:CentOS 7 使用 yum,不支持模块化软件包管理。
- 容器管理:CentOS 7 默认无 podman,需安装 Docker。
- 网络管理:CentOS 7 默认使用 network-scripts,nmcli 需安装 NetworkManager。
- SELinux:CentOS 7 默认启用 SELinux,部分命令需考虑 SELinux 上下文。
- 文件系统:CentOS 7 支持 ext4 和 xfs,默认多为 ext4。