系统安全
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
su |
切换用户身份,需输入目标用户密码 | -:切换用户并加载环境变量;-c:执行命令后返回原用户 |
su - root(切换到 root 并加载环境);su - www -c "ls /var/www"(以 www 用户执行命令) |
sudo |
以其他身份执行命令(默认 root),需配置 /etc/sudoers |
-u:指定执行用户;-l:列出可执行命令;-s:切换到目标用户 shell |
sudo -u www php index.php(以 www 用户运行 PHP 脚本);sudo -l(查看当前用户可执行的 sudo 命令) |
lastlog |
显示系统所有用户最近一次登录信息 | -u:查看指定用户的登录记录;-t:查看近 N 天的登录记录 |
lastlog(查看所有用户登录信息);lastlog -u www(查看 www 用户的登录记录) |
lastb |
显示用户错误登录列表,用于发现登录异常 | -n N:显示最近 N 条错误记录;-f:指定日志文件路径 |
lastb(查看所有错误登录);lastb -n 10(查看最近 10 条错误登录) |
setfacl |
设置文件/目录的 ACL(访问控制列表),精细化权限管控 | -m:添加 ACL 规则;-x:删除 ACL 规则;-R:递归设置;-b:清除所有 ACL 规则 |
setfacl -m u:www:rwx /data(给 www 用户添加 rwx 权限);setfacl -Rb /data(递归清除 /data 所有 ACL 规则) |
用户管理
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
id |
查看用户的 UID、GID 及所属用户组 | -u:仅显示 UID;-g:仅显示主组 GID;-G:显示所有所属组 GID |
id www(查看 www 用户完整信息);id -u root(查看 root 用户的 UID) |
chage |
修改用户账号和密码的有效期限 | -l:列出用户密码有效期信息;-E:设置账号过期日期;-M:设置密码最大有效期(天) |
chage -l www(查看 www 用户密码有效期);chage -M 90 www(设置 www 密码 90 天过期) |
passwd |
设置/修改用户密码,管理员可管理所有用户密码 | -l:锁定用户账号;-u:解锁用户账号;-d:清空用户密码;-e:强制用户下次登录修改密码 |
passwd www(修改 www 用户密码);passwd -l testuser(锁定 testuser 用户) |
useradd |
创建新的系统用户 | -m:自动创建用户家目录;-s:指定登录 shell;-u:指定 UID;-g:指定主组;-G:指定附加组 |
useradd -m -s /bin/bash -G dev www(创建 www 用户,加入 dev 附加组) |
usermod |
修改用户的基本信息 | -u:修改 UID;-g:修改主组;-G:修改附加组;-s:修改登录 shell;-d:修改家目录 |
usermod -G root,dev www(将 www 用户加入 root 和 dev 组) |
userdel |
删除指定用户 | -r:同时删除用户家目录及相关文件 |
userdel testuser(仅删除账号);userdel -r testuser(删除账号及家目录) |
groupadd |
创建新的用户组 | -g:指定组 GID;-r:创建系统组(GID < 1000) |
groupadd -g 1001 dev(创建 GID 为 1001 的 dev 组) |
文件系统
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
fsck |
检查并修复文件系统错误,卸载后再执行 | -y:自动修复所有可修复错误;-t:指定文件系统类型;-C:显示进度条 |
fsck -y /dev/sda1(自动修复 /dev/sda1 分区);fsck -t ext4 /dev/sdb1(检查 ext4 格式的分区) |
mount |
挂载文件系统到指定挂载点 | -t:指定文件系统类型;-o:挂载选项(如 rw/ro/noatime);-a:挂载 /etc/fstab 中所有未挂载的文件系统 |
mount -t ext4 /dev/sda1 /data(挂载分区到 /data);mount -o ro /dev/cdrom /mnt/cdrom(只读挂载光盘) |
umount |
卸载已挂载的文件系统 | -l:强制卸载(适用于文件系统忙的场景);-a:卸载 /etc/fstab 中所有已挂载的文件系统 |
umount /data(卸载 /data 分区);umount -l /mnt/cdrom(强制卸载光盘) |
df |
显示磁盘分区的可用空间 | -h:人性化显示单位(KB/MB/GB);-T:显示文件系统类型;-i:显示 inode 使用情况 |
df -h(查看所有分区空间);df -i /data(查看 /data 分区的 inode 使用) |
du |
查看文件/目录占用的磁盘空间 | -s:仅显示总大小;-h:人性化单位;-a:显示所有文件大小 |
du -sh /var/log(查看 /var/log 目录总大小);du -ha /home(列出 /home 下所有文件大小) |
文件查找与比较
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
find |
在指定目录下查找文件,支持多条件筛选 | -name:按文件名查找;-type:按类型查找(f 文件/d 目录);-size:按大小查找;-mtime:按修改时间查找;-exec:对结果执行命令 |
find /root -name "*.log"(查找 /root 下所有 log 文件);find /data -type f -size +100M -exec rm -rf {} \;(删除 /data 下大于 100M 的文件) |
diff |
比较两个文件的内容差异 | -u:统一格式显示差异;-r:递归比较目录;-q:仅显示是否有差异 |
diff -u file1.txt file2.txt(对比两个文件并显示差异);diff -r dir1 dir2(递归比较两个目录) |
locate |
快速查找文件/目录(基于数据库 /var/lib/mlocate/mlocate.db) |
-i:忽略大小写;-n N:仅显示前 N 条结果;-r:使用正则表达式匹配 |
locate nginx.conf(查找 nginx.conf 文件);locate -i "*.php"(忽略大小写查找 php 文件) |
文件内容的查看
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
head |
显示文件开头部分内容(默认前 10 行) | -n N:显示前 N 行;-c N:显示前 N 个字节 |
head -n 20 /etc/profile(查看 profile 前 20 行);head -c 1024 test.log(查看 test.log 前 1024 字节) |
tail |
显示文件尾部内容(默认后 10 行) | -n N:显示后 N 行;-f:实时跟踪文件更新;-F:跟踪文件并自动重连(文件被删除重建后仍有效) |
tail -n 50 /var/log/nginx/error.log(查看错误日志最后 50 行);tail -F /var/log/php-fpm.log(实时跟踪 PHP-FPM 日志) |
more |
分页查看文件内容(仅支持向前翻页) | -n N:指定每页显示行数;空格键:翻页;Enter:换行;q:退出 |
more -20 /var/log/messages(每页显示 20 行日志) |
less |
分页查看文件内容(支持前后翻页、搜索) | -N:显示行号;/关键词:向下搜索;?关键词:向上搜索;q:退出 |
less -N /var/log/syslog(查看系统日志并显示行号) |
文件处理
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
ln |
为文件创建链接 | -s:创建软链接(符号链接);-f:强制覆盖已有链接 |
ln -s /usr/bin/php7.4 /usr/bin/php(创建 php 软链接);ln -f /data/file.txt /root/file.txt(强制创建硬链接) |
cat |
连接文件并打印到标准输出,常用于查看文件内容 | -n:显示行号;-b:仅显示非空行号;-E:显示行尾结束符 $ |
cat -n /etc/hosts(查看 hosts 文件并显示行号);cat file1.txt file2.txt > file3.txt(合并两个文件到 file3.txt) |
touch |
创建空文件或更新文件的时间戳 | -d:指定时间戳;-m:仅修改修改时间;-a:仅修改访问时间 |
touch test.txt(创建空文件);touch -d "2026-01-01 12:00:00" test.txt(修改文件时间戳) |
unlink |
删除指定文件(作用同 rm,不支持递归删除目录) |
无常用参数 | unlink test.txt(删除 test.txt 文件) |
rename |
批量修改文件名(支持字符串替换) | 无常用参数(语法:rename 旧字符串 新字符串 目标文件) |
rename .txt .log *.txt(将所有 txt 文件改为 log 后缀);rename old new old_*.php(将 old_xxx.php 改为 new_xxx.php) |
dirname |
去除文件名中的非目录部分,仅保留目录路径 | -z:输出结果不含换行符;--help:查看帮助 |
dirname /var/www/html/index.php(输出 /var/www/html);dirname /usr/bin/(输出 /usr) |
文件权限属性
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
setfacl |
设置文件/目录的 ACL 权限 | 同系统安全分类(参数通用) | setfacl -m g:dev:rx /data(给 dev 组添加 rx 权限) |
chmod |
修改文件/目录的权限(数字法:r=4, w=2, x=1;符号法:u/g/o/a +/- rwx) | -R:递归修改目录下所有文件权限 |
chmod 755 test.sh(所有者 rwx,其他 rx);chmod -R u+w /var/www(递归给所有者添加写权限) |
chown |
修改文件/目录的所有者和所属组 | -R:递归修改;--reference:参考其他文件的权限设置 |
chown -R www:www /var/www/html(递归设置所有者和组为 www) |
chgrp |
修改文件/目录的所属组 | -R:递归修改 |
chgrp -R dev /project(递归修改 /project 所属组为 dev) |
压缩与解压
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
tar |
打包/解包文件,支持 gzip/bzip2/xz 压缩 | -c:打包;-x:解包;-z:gzip 压缩/解压;-j:bzip2 压缩/解压;-f:指定文件名;-v:显示过程;-C:指定解压目录 |
tar -zcvf test.tar.gz /home/test(gzip 压缩打包);tar -jxvf test.tar.bz2 -C /data(bzip2 解压到 /data) |
zip |
压缩文件为 .zip 格式 |
-r:递归压缩目录;-q:静默模式;-d:从压缩包删除文件 |
zip -r test.zip /home/test(压缩目录为 test.zip);zip -d test.zip file.txt(删除压缩包中的 file.txt) |
unzip |
解压 .zip 格式的压缩包 |
-d:指定解压目录;-l:列出压缩包内容;-o:覆盖已有文件 |
unzip test.zip -d /data(解压到 /data 目录);unzip -l test.zip(查看压缩包内容) |
gzip |
压缩文件为 .gz 格式(仅压缩文件,不支持目录) |
-d:解压;-k:保留原文件;-r:递归压缩目录下文件 |
gzip -k test.txt(压缩并保留原文件);gzip -d test.txt.gz(解压 gz 文件) |
gunzip |
解压 .gz 格式文件(gzip -d 的别名) |
-k:保留压缩文件 |
gunzip -k test.txt.gz(解压并保留原压缩包) |
bzip2 |
压缩文件为 .bz2 格式(压缩率高于 gzip) |
-d:解压;-k:保留原文件;-z:强制压缩 |
bzip2 -k test.txt(压缩并保留原文件) |
bunzip2 |
解压 .bz2 格式文件(bzip2 -d 的别名) |
-k:保留压缩文件 |
bunzip2 -k test.txt.bz2(解压并保留原压缩包) |
软件包管理
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
yum |
RPM 系(CentOS/RHEL)软件包管理器,自动处理依赖 | install:安装;remove:卸载;update:更新;list:列出包;search:搜索包;clean all:清理缓存 |
yum install nginx -y(安装 nginx);yum remove php -y(卸载 php) |
rpm |
RPM 包管理工具(手动处理依赖) | -ivh:安装包并显示进度;-e:卸载包;-ql:列出包安装的文件;-qa:列出已安装的所有包 |
rpm -ivh nginx-1.20.1.rpm(安装 RPM 包);rpm -qa | grep php(查看已安装的 php 包) |
apt-get |
DEB 系(Debian/Ubuntu)软件包管理器 | install:安装;remove:卸载;update:更新源;upgrade:升级包;autoremove:自动清理无用包 |
apt-get install nginx -y(安装 nginx);apt-get autoremove -y(清理无用包) |
文件传输
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
ftp |
命令行 FTP 客户端,用于本地与远程服务器传输文件 | put:上传文件;get:下载文件;mput:批量上传;mget:批量下载;bye:退出 |
ftp 192.168.1.100(连接 FTP 服务器);put test.txt(上传 test.txt) |
scp |
基于 SSH 的远程文件拷贝工具,传输加密 | -r:递归拷贝目录;-P:指定 SSH 端口;-p:保留文件属性 |
scp test.txt root@192.168.1.100:/root(上传文件到远程服务器);scp -r root@192.168.1.100:/data /home(下载远程目录到本地) |
目录操作
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
cd |
切换工作目录 | -:返回上一次所在目录;~:切换到用户家目录;..:返回上级目录 |
cd /usr/local(切换到指定目录);cd -(返回上一次目录) |
mv |
移动文件/目录,或重命名 | -f:强制覆盖;-i:交互式确认;-v:显示过程 |
mv old.txt new.txt(重命名文件);mv /tmp/file.txt /home(移动文件到 /home) |
rm |
删除文件/目录 | -r:递归删除目录;-f:强制删除(无提示);-i:交互式确认 |
rm -rf /tmp/old_dir(强制删除目录及内容);rm -i test.txt(交互式删除文件) |
pwd |
显示当前工作目录的绝对路径 | -P:显示实际路径(解析软链接) |
pwd(显示当前路径);pwd -P(显示解析软链接后的真实路径) |
tree |
以树状图显示目录结构 | -L N:指定显示层级;-d:仅显示目录;-f:显示完整路径 |
tree -L 2 /var/www(显示 /var/www 下 2 层结构);tree -d /data(仅显示目录) |
cp |
复制文件/目录 | -r:递归复制目录;-p:保留文件属性(权限、时间戳);-f:强制覆盖;-v:显示过程 |
cp -rp /etc/profile /backup(复制并保留属性);cp -r /data /backup(复制目录) |
ls |
列出目录内容 | -l:详细列表(权限、大小、时间等);-a:显示隐藏文件;-h:人性化单位;-t:按修改时间排序 |
ls -lha /home(查看所有文件详细信息);ls -t /var/log(按修改时间排序显示日志) |
mkdir |
创建目录 | -p:递归创建多级目录;-m:指定目录权限 |
mkdir -p /data/logs/nginx(创建多级目录);mkdir -m 755 /project(创建目录并指定权限) |
rmdir |
删除空目录(非空目录需用 rm -r) |
-p:递归删除空父目录 |
rmdir empty_dir(删除空目录);rmdir -p /data/empty/child(删除空目录及空父目录) |
进程管理
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
w |
显示当前登录用户及正在执行的命令 | -h:不显示标题栏;-u:忽略用户名;-s:精简模式 |
w(查看所有登录用户及操作);w -s(精简模式显示) |
ps |
报告当前系统的进程状态 | -aux:显示所有进程详细信息;-ef:显示进程父子关系;-u:查看指定用户的进程 |
ps aux | grep nginx(查找 nginx 相关进程);ps -ef | grep php-fpm(查看 php-fpm 进程树) |
kill |
向进程发送信号,终止进程(默认信号 15,强制终止信号 9) | -9:强制终止进程;-15:正常终止进程;-l:列出所有信号 |
kill -9 1234(强制终止 PID 为 1234 的进程);kill -15 5678(正常终止进程) |
pkill |
按进程名终止进程,支持模糊匹配 | -u:指定用户;-f:匹配完整命令行;-9:强制终止 |
pkill -9 nginx(强制终止所有 nginx 进程);pkill -u www php-fpm(终止 www 用户的 php-fpm 进程) |
killall |
按进程名终止所有匹配的进程 | -i:交互式确认;-9:强制终止;-u:指定用户 |
killall -9 httpd(强制终止所有 httpd 进程) |
top |
实时动态查看系统进程和资源占用情况 | P:按 CPU 使用率排序;M:按内存使用率排序;k:终止进程;q:退出 |
top(实时监控进程);top -p 1234(仅监控 PID 为 1234 的进程) |
at |
在指定时间执行一次性任务,需启动 atd 服务 |
-l:列出待执行的任务(同 atq);-d:删除任务(同 atrm);-f:指定任务脚本文件 |
at 22:00(输入要执行的命令,Ctrl+D 保存);at -f task.sh tomorrow(明天执行 task.sh 脚本) |
crontab |
管理周期性执行的任务(计划任务),需启动 crond 服务 |
-l:列出当前用户的 cron 任务;-e:编辑 cron 任务;-r:删除所有 cron 任务 |
crontab -l(查看计划任务);crontab -e(编辑计划任务,如 0 3 * * * /usr/bin/backup.sh 每天凌晨 3 点备份) |
atq |
显示系统中待执行的 at 任务列表 |
无常用参数 | atq(查看所有待执行的 at 任务) |
pstree |
以树状图显示进程的派生关系 | -p:显示进程 PID;-u:显示进程所属用户;-h:高亮显示当前进程 |
pstree -p(显示进程树及 PID);pstree -u root(显示 root 用户的进程树) |
grep |
文本搜索工具,常用于过滤进程、日志等内容 | -i:忽略大小写;-n:显示行号;-r:递归搜索;-v:反向匹配;-E:使用扩展正则 |
ps aux | grep -v grep | grep nginx(过滤掉 grep 自身进程,只显示 nginx 进程) |
pgrep |
按进程名查找 PID,支持模糊匹配 | -u:指定用户;-l:显示进程名和 PID;-f:匹配完整命令行 |
pgrep nginx(列出 nginx 进程的 PID);pgrep -u www -l php-fpm(列出 www 用户的 php-fpm 进程名和 PID) |
系统关机重启
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
shutdown |
安全关闭或重启系统 | -h now:立即关机;-r now:立即重启;-c:取消关机计划;-h 22:00:指定时间关机 |
shutdown -h now(立即关机);shutdown -r 10(10 分钟后重启) |
reboot |
重启系统 | -f:强制重启;-d:不记录重启日志;-w:仅模拟重启,不执行 |
reboot(正常重启);reboot -f(强制重启) |
网络配置
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
hostname |
显示或设置系统主机名 | -i:显示主机的 IP 地址;-f:显示完整域名(FQDN) |
hostname(显示当前主机名);hostname -i(显示主机 IP 地址) |
ifconfig |
配置和显示网络接口信息(CentOS 6 及以下默认,CentOS 7+ 推荐用 ip 命令) |
up:启用网卡;down:禁用网卡;inet:设置 IP 地址 |
ifconfig eth0(查看 eth0 网卡信息);ifconfig eth0 192.168.1.100 netmask 255.255.255.0(临时设置 IP) |
网络应用
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
curl |
命令行 HTTP/HTTPS/FTP 等协议的文件传输工具 | -O:保存文件为原文件名;-L:跟随重定向;-X:指定请求方法(GET/POST);-d:POST 请求数据;-H:设置请求头 |
curl -O https://example.com/file.tar.gz(下载文件);curl -X POST -d "name=test" http://api.example.com(发送 POST 请求) |
telnet |
远程登录或测试 TCP 端口连通性 | 无常用参数 | telnet 192.168.1.100 80(测试 80 端口是否可通) |
mail |
命令行邮件发送和接收工具 | -s:指定邮件主题;-c:抄送地址;-b:密送地址 |
echo "邮件内容" | mail -s "测试邮件" user@example.com(发送邮件) |
elinks |
纯文本界面的 WWW 浏览器,支持多标签、书签 | -dump:将网页内容输出到终端;-no-numbering:不显示行号 |
elinks -dump https://example.com(在终端显示网页内容) |
lynx |
纯文本模式网页浏览器,不支持多媒体 | -dump:输出网页文本;-nolist:不显示链接列表 |
lynx -dump https://example.com(查看网页文本内容) |
网络测试
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
ping |
测试主机之间网络连通性(基于 ICMP 协议) | -c N:发送 N 个数据包后停止;-i N:指定发送间隔(秒);-s N:指定数据包大小 |
ping -c 4 baidu.com(发送 4 个数据包测试百度连通性) |
host |
域名解析工具,查询 DNS 记录 | -a:查询所有记录;-t A:查询 A 记录;-t MX:查询 MX 记录 |
host baidu.com(查询百度的 IP 地址);host -t MX qq.com(查询 qq.com 的邮件服务器) |
netstat |
显示网络连接、路由表、接口统计等信息 | -t:TCP 协议;-u:UDP 协议;-l:监听状态;-n:数字格式显示;-p:显示进程 PID |
netstat -tlnp(查看所有监听的 TCP 端口及对应进程) |
其他常用命令
| 命令 | 功能说明 | 常用参数 | 实战示例 |
|---|---|---|---|
who |
显示当前登录系统的用户信息 | -b:显示系统启动时间;-r:显示系统运行级别;-q:仅显示用户名和登录次数 |
who(查看登录用户);who -b(查看系统启动时间) |
man |
查看命令/配置文件/函数的帮助文档 | -f:等价于 whatis,显示命令简短描述;-k:等价于 apropos,搜索帮助文档 |
man ls(查看 ls 命令的帮助);man -f ps(查看 ps 命令的简短描述) |
users |
显示当前登录系统的所有用户列表 | 无常用参数 | users(列出所有登录用户) |
date |
显示或设置系统时间与日期 | -s:设置系统时间;+%Y-%m-%d %H:%M:%S:指定输出格式 |
date "+%Y-%m-%d %H:%M:%S"(格式化显示时间);date -s "2026-01-01 12:00:00"(设置系统时间) |
screen |
命令行终端多路复用工具,支持会话分离与恢复 | -S:创建会话;-ls:列出所有会话;-r:恢复会话;-d:分离会话;-X:关闭会话 |
screen -S test(创建名为 test 的会话);screen -r test(恢复 test 会话);screen -ls(列出所有会话) |
clear |
清除当前终端屏幕上的所有内容 | 无常用参数 | clear(清空终端) |


