CentOS 服务器常用命令大全
一、系统信息 / 硬件 / 内核
uname -r # 查看内核版本
uname -a # 查看全部系统信息
cat /etc/os-release # 查看系统版本详情
cat /etc/redhat-release # 查看CentOS版本
hostname # 查看主机名
hostnamectl set-hostname xxx # 修改主机名(永久生效)
uptime # 查看系统运行时间、负载情况
dmesg # 查看内核日志
dmidecode # 查看硬件信息(主板、CPU、内存)
lscpu # 查看CPU详细信息
lsblk # 查看磁盘设备列表
blkid # 查看磁盘UUID
lsusb # 查看USB设备
lspci # 查看PCI设备(网卡、显卡等)
free -h # 查看内存使用(人性化显示)
free -m # 以MB为单位查看内存
df -h # 查看磁盘使用率
df -i # 查看inode使用情况
du -sh * # 查看当前目录各文件/目录大小
du -sh /dir # 查看指定目录总大小
mount # 查看已挂载的文件系统
mount /dev/sdb1 /mnt # 挂载磁盘到指定目录
umount /mnt # 卸载挂载点
fsck /dev/sdb1 # 磁盘检查(需卸载后执行)
sync # 将内存数据写入磁盘
二、文件与目录操作
ls # 列出当前目录文件
ls -a # 显示所有文件(含隐藏文件)
ls -l # 详细列表(权限、大小、时间)
ls -lh # 详细列表(大小带单位)
ls -lt # 按修改时间排序
ls -ltr # 按修改时间倒序排序
cd 目录 # 进入指定目录
cd .. # 返回上一级目录
cd ~ # 进入当前用户家目录
cd - # 返回上一次所在目录
pwd # 显示当前工作路径
mkdir 目录 # 创建目录
mkdir -p a/b/c # 递归创建多级目录
touch 文件 # 创建空文件
cp 源 文件 目标 # 复制文件
cp -r 源 目标 # 递归复制目录
mv 源 目标 # 移动/重命名文件/目录
rm 文件 # 删除文件
rm -f 文件 # 强制删除文件(不提示)
rm -r 目录 # 递归删除目录
rm -rf 目录 # 强制递归删除目录(慎用!)
ln -s 源 文件 目标 # 创建软链接
cat 文件 # 查看文件全部内容
tac 文件 # 倒序查看文件内容
more 文件 # 分页查看文件(向下翻)
less 文件 # 分页查看文件(上下翻,更灵活)
head -n 10 文件 # 查看文件前10行
tail -n 10 文件 # 查看文件后10行
tail -f 文件 # 实时刷新查看日志
tail -F 文件 # 日志切割后仍能继续追踪
vim 文件 # 编辑文件(高级编辑器)
vi 文件 # 编辑文件(基础编辑器)
nl 文件 # 带行号查看文件内容
find /path -name "*.log" # 按文件名查找
find / -type f -size +100M # 查找大于100M的文件
find / -mtime -7 # 查找7天内修改的文件
grep '关键词' 文件 # 在文件中搜索关键词
grep -i '关键词' 文件 # 搜索(不区分大小写)
grep -r '关键词' /dir # 递归搜索目录下所有文件
grep -v '关键词' 文件 # 反向匹配(排除关键词)
which 命令 # 查看命令的可执行文件路径
whereis 命令 # 查看命令的所有相关文件
locate 文件 # 快速查找文件(需先执行updatedb)
updatedb # 更新locate数据库
三、用户与权限管理
whoami # 查看当前登录用户
id # 查看当前用户UID、GID
w # 查看在线用户及操作
last # 查看用户登录历史
lastb # 查看用户失败登录记录
useradd 用户名 # 创建新用户
userdel -r 用户名 # 删除用户并删除家目录
passwd 用户名 # 修改用户密码
su 用户名 # 切换用户(不加载环境)
su - 用户名 # 切换用户并加载环境
groupadd 组名 # 创建用户组
gpasswd -a 用户名 组名 # 将用户加入指定组
chmod 755 文件 # 修改文件权限(数字方式)
chmod +x 文件 # 给文件添加执行权限
chown 用户名:组名 文件 # 修改文件所有者和所属组
chgrp 组名 文件 # 修改文件所属组
sudo 命令 # 以root权限执行命令
visudo # 编辑sudoers配置文件
四、网络操作
ip a # 查看网卡IP地址
ip addr add 192.168.1.10/24 dev eth0 # 设置临时IP
ip link set eth0 up # 启用网卡
ping IP/域名 # 测试网络连通性
ping -c 4 IP/域名 # 发送4个数据包后停止
curl 网址 # 请求网页/接口内容
curl -I 网址 # 只查看响应头信息
curl -v 网址 # 查看详细请求过程
wget 网址 # 下载文件
wget -O 自定义文件名 网址 # 下载文件并自定义名称
netstat -tulpn # 查看端口占用情况
ss -tulpn # 更快的端口查看工具
ss -s # 查看网络连接统计
traceroute IP/域名 # 路由追踪
mtr IP/域名 # 路由+丢包综合诊断
nslookup 域名 # DNS解析测试
dig 域名 # 详细DNS解析信息
hostname -I # 查看本机所有IP
telnet IP 端口 # 测试端口是否通
nc -zv IP 端口 # 测试端口连通性(更简洁)
# 防火墙(firewalld)
systemctl start firewalld # 启动防火墙
systemctl stop firewalld # 停止防火墙
systemctl enable firewalld # 开机自启防火墙
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 查看防火墙所有规则
firewall-cmd --add-port=80/tcp --permanent # 开放80端口(永久)
firewall-cmd --add-service=http --permanent # 开放http服务(永久)
firewall-cmd --reload # 重载防火墙规则
firewall-cmd --remove-port=80/tcp --permanent # 关闭80端口(永久)
五、服务与进程管理
ps aux # 查看所有进程
ps -ef # 全格式查看进程
top # 实时监控进程
htop # 更友好的进程监控(需安装)
pidof 服务名 # 获取指定服务的PID
pstree # 以树状显示进程关系
kill PID # 温和结束进程
kill -9 PID # 强制结束进程
killall 进程名 # 按进程名结束进程
pkill 进程名 # 按进程名结束进程
nohup 命令 & # 后台运行命令(断开SSH不终止)
jobs # 查看后台任务
fg %1 # 将后台任务1切到前台
bg %1 # 将前台任务1切到后台
# systemd 服务管理
systemctl start 服务名 # 启动服务
systemctl stop 服务名 # 停止服务
systemctl restart 服务名 # 重启服务
systemctl reload 服务名 # 重载服务配置
systemctl status 服务名 # 查看服务状态
systemctl enable 服务名 # 设置服务开机自启
systemctl disable 服务名 # 关闭服务开机自启
systemctl daemon-reload # 重新加载systemd配置
journalctl -u 服务名 # 查看指定服务日志
journalctl -f # 实时查看系统日志
journalctl --since "10 min ago" # 查看10分钟前的日志
六、软件包管理(yum/dnf)
# YUM(CentOS 7及以下)
yum install -y 包名 # 安装软件(-y 自动确认)
yum remove 包名 # 卸载软件
yum update # 更新所有系统包
yum check-update # 检查可更新的包
yum list installed # 查看已安装的包
yum search 关键词 # 搜索软件包
yum provides 命令 # 查找命令所属的包
# DNF(CentOS 8+ 替代YUM)
dnf install 包名 # 安装软件
dnf remove 包名 # 卸载软件
dnf update # 更新系统包
七、压缩与解压
# tar 压缩/解压
tar -zcvf 文件名.tar.gz 目录 # 压缩为gz格式
tar -zxvf 文件名.tar.gz # 解压gz格式文件
tar -jcvf 文件名.tar.bz2 目录 # 压缩为bz2格式
tar -jxvf 文件名.tar.bz2 # 解压bz2格式文件
# zip 压缩/解压
zip 压缩名.zip 文件/目录 # 压缩为zip格式
unzip 压缩名.zip # 解压zip格式文件
unzip -o 压缩名.zip # 覆盖解压zip文件
八、日志操作
# 常用日志路径
/var/log/messages # 系统核心日志
/var/log/secure # 登录安全日志
/var/log/cron # 定时任务日志
/var/log/nginx/ # Nginx日志(安装后)
# 日志查看命令
journalctl # 查看系统日志
journalctl -u 服务名 # 查看指定服务日志
tail -f /var/log/messages # 实时查看系统日志
grep 'error' /var/log/messages # 筛选日志中的错误信息
9.1 一键安装常用工具
yum install -y wget curl vim net-tools htop lsof telnet tree ncdu iotop iftop
9.2 进程/端口/文件工具
lsof -i:80 # 查看80端口被哪个进程占用
lsof 文件 # 查看哪个进程正在使用该文件
9.3 系统监控工具
htop # 增强版进程监控(替代top)
iotop # 实时监控磁盘IO
iftop # 实时监控网络流量
nmon # 全能系统监控(CPU/内存/磁盘/网络)
9.4 目录/磁盘分析工具
tree # 树状显示目录结构
tree -L 2 # 只显示2级目录
ncdu # 交互式磁盘空间分析工具
9.5 文本处理工具
awk '{print $1}' 文件 # 提取文件第一列内容
awk '/关键词/' 文件 # 过滤包含关键词的行
sed -i 's/旧内容/新内容/g' 文件 # 批量替换文件内容
sort 文件 # 对文件内容排序
uniq # 去除重复行(需配合sort使用)
wc -l 文件 # 统计文件行数
9.6 时间/日期工具
date # 查看当前时间
date -s "2026-02-28 12:00:00" # 设置系统时间
timedatectl status # 查看时间/时区状态
timedatectl set-timezone Asia/Shanghai # 设置时区为上海
ntpdate ntp.aliyun.com # 同步阿里云时间服务器
9.7 SELinux 工具
getenforce # 查看SELinux状态
setenforce 0 # 临时关闭SELinux
setenforce 1 # 临时开启SELinux
sestatus # 查看SELinux详细状态
9.8 定时任务工具
crontab -l # 查看当前用户定时任务
crontab -e # 编辑定时任务
systemctl start crond # 启动定时任务服务
systemctl enable crond # 设置定时任务开机自启