快捷键大全

服务器与终端

Linux 命令大全(按发行版)

文件、文本、进程、systemd、网络、用户权限、磁盘、压缩和包管理命令,支持按 Debian、Ubuntu、RHEL、Fedora、Arch、Alpine、SUSE 筛选。

97 条8 个分区更新 2026-10-2327 条危险操作

先看安全提示

rm -rf、dd、mkfs、fsck、parted、chmod -R、chown -R 和防火墙重置命令会不可逆地改变系统或数据,执行前必须确认目标。

显示 97 / 97 条

文件与目录

18 条

先用 pwd/ls 确认当前位置,再执行复制、移动或删除。

文件与目录命令表
命令 / 语法说明示例平台来源
ls
ls [-lah]
列出目录内容;-l 长格式,-a 包含隐藏项,-h 人类可读大小。 ls -lah /var/log 全发行版 GNU Coreutils 手册
cd
cd <dir>
切换当前目录;cd - 返回上一个目录。 cd /etc/nginx 全发行版 GNU Bash 参考手册
pwd
显示当前工作目录的绝对路径。 pwd 全发行版 GNU Bash 参考手册
cp
cp [-r] <source> <dest>
复制文件或目录;复制目录需要 -r。 cp -r ./site /srv/site-backup 全发行版 GNU Coreutils 手册
mv
mv <source> <dest>
移动或重命名文件/目录;跨文件系统移动可能较慢。 mv app.log app-2026-10-20.log 全发行版 GNU Coreutils 手册
rm
rm [-r] <path>
危险rm -rf 不会询问确认,也不会进入回收站。
删除文件或目录;Linux 没有回收站语义。 rm ./old.log 全发行版 GNU Coreutils 手册
mkdir
mkdir [-p] <dir>
创建目录;-p 自动创建缺失的父目录。 mkdir -p /srv/app/releases 全发行版 GNU Coreutils 手册
find
find <path> -name <pattern>
按名称、类型、时间或大小查找文件。 find /var/log -type f -name '*.log' -mtime +7 全发行版 man7 · find(1)
tar
tar -czf <archive.tar.gz> <dir>
创建 gzip 压缩包;解压使用 tar -xzf。 tar -czf site-2026-10-20.tar.gz ./site 全发行版 GNU Tar 手册
chmod
chmod <mode> <path>
危险chmod -R 777 会向所有用户开放读写执行,禁止用于生产数据。
修改权限;目录递归修改前先确认权限模型。 chmod 640 ./config.yml 全发行版 GNU Coreutils 手册
chown
chown <user>:<group> <path>
危险chown -R 会改变整个目录树的所有者,可能破坏服务权限。
修改文件所有者和所属组;递归修改需谨慎。 chown www-data:www-data ./public 全发行版 GNU Coreutils 手册
touch
touch <file>
创建空文件或更新文件访问/修改时间。 touch /srv/app/.maintenance 全发行版 GNU Coreutils 手册
ln -s
ln -s <target> <link>
创建符号链接;目标路径建议使用绝对路径,避免移动后失效。 ln -s /srv/app/releases/2026-10-21 /srv/app/current 全发行版 GNU Coreutils 手册
stat
stat <path>
查看 inode、权限、大小和三个时间戳(访问、修改、变更)。 stat /etc/nginx/nginx.conf 全发行版 GNU Coreutils 手册
file
file <path>
根据文件头判断真实类型,不依赖扩展名。 file ./backup.bin 全发行版 man7 · file(1)
realpath
realpath <path>
解析相对路径、符号链接和 ..,输出绝对路径。 realpath ../current 全发行版 GNU Coreutils 手册
shred
shred -u <file>
危险覆写不可恢复,且 SSD 磨损均衡/快照可能保留旧数据。
多次覆写文件后再删除;对 SSD、日志型文件系统和快照并不可靠。 shred -u ./secret.key 全发行版 GNU Coreutils 手册
truncate
truncate -s <size> <file>
危险将文件截断为 0 会立即丢失全部内容,日志服务可能仍持有旧文件句柄。
把文件扩展到指定大小或截断;截断会丢失尾部数据。 truncate -s 0 ./app.log 全发行版 GNU Coreutils 手册

文本处理

13 条

查看日志时优先用 less 分页,搜索时用 grep -n 保留行号。

文本处理命令表
命令 / 语法说明示例平台来源
grep
grep [-rni] <pattern> <path>
搜索文本;-r 递归,-n 显示行号,-i 忽略大小写。 grep -rni 'error' /var/log/app 全发行版 GNU Grep 手册
sed
sed -i 's/<old>/<new>/g' <file>
危险-i 会原地修改文件,先备份或先用不带 -i 的命令预览。
流编辑器,常用于替换文本;-i 直接修改文件。 sed -i 's/localhost/127.0.0.1/g' ./config.ini 全发行版 GNU Sed 手册
awk
awk '{print $1}' <file>
按列处理文本,适合从日志或命令输出提取字段。 awk '{print $1, $9}' /var/log/nginx/access.log 全发行版 GNU Awk 手册
less
less <file>
分页查看大文件;按 / 搜索、q 退出。 less /var/log/syslog 全发行版 man7 · less(1)
head / tail
head -n <n> <file> | tail -f <file>
查看文件开头或末尾;tail -f 持续跟踪日志。 tail -f /var/log/nginx/error.log 全发行版 GNU Coreutils 手册
cat
cat <file>
输出整个文件;大文件优先用 less,避免刷屏。 cat /etc/os-release 全发行版 GNU Coreutils 手册
cut
cut -d '<delimiter>' -f <fields> <file>
按分隔符提取字段,适合快速处理 CSV 或冒号分隔文件。 cut -d: -f1 /etc/passwd 全发行版 GNU Coreutils 手册
sort
sort [-n] [-k <field>] <file>
按字典或数值排序;-k 指定字段,-u 去重。 sort -t: -k3 -n /etc/passwd 全发行版 GNU Coreutils 手册
uniq
uniq [-c] <file>
去除相邻重复行;通常先用 sort,再用 uniq -c 统计。 sort access.log | uniq -c | sort -nr | head 全发行版 GNU Coreutils 手册
wc
wc [-l] [-w] [-c] <file>
统计行数、单词数和字节数,日志巡检常用 -l。 wc -l /var/log/nginx/access.log 全发行版 GNU Coreutils 手册
xargs
xargs [-0] <command>
危险xargs 会直接执行删除等命令;先用 -p 或 echo 预览参数。
把标准输入转换为命令参数;配合 find -print0 处理含空格文件名。 find /var/log -name '*.gz' -print0 | xargs -0 rm -f 全发行版 GNU Coreutils 手册
tee
tee [-a] <file>
同时写入文件和标准输出,适合在终端观察日志并留档。 systemctl status nginx | tee nginx-status.txt 全发行版 GNU Coreutils 手册
jq
jq '<filter>' <file>
解析和筛选 JSON;. 输出格式化全文,.key 读取字段。 curl -s https://api.example.com/status | jq '.status' 全发行版 jq 手册

进程与系统

22 条

先定位 PID 和服务单元,再决定是否终止;优先用 systemctl 管理服务。

进程与系统命令表
命令 / 语法说明示例平台来源
ps
ps aux
查看进程快照;aux 显示所有用户进程和资源占用。 ps aux | grep nginx 全发行版 man7 · ps(1)
top
实时查看 CPU、内存和进程;按 q 退出。 top 全发行版 man7 · top(1)
kill
kill [-9] <pid>
危险kill -9 不给进程清理机会,可能造成数据损坏或服务状态异常。
向进程发送信号;默认 TERM,-9 为强制 KILL。 kill -TERM 1234 全发行版 man7 · kill(1)
systemctl
systemctl status|start|stop|restart <unit>
危险stop/disable 会中断服务;生产机先确认依赖和回滚方案。
管理 systemd 服务单元;enable/disable 控制开机启动。 sudo systemctl status nginx systemd 系 freedesktop.org · systemctl
journalctl
journalctl -u <unit> -n <lines>
查看 systemd 日志;-f 持续跟踪,--since 指定时间。 journalctl -u nginx -n 100 --no-pager systemd 系 freedesktop.org · journalctl
pgrep
pgrep -af <pattern>
按名称或完整命令行查 PID;-a 显示命令行,-f 匹配完整参数。 pgrep -af nginx 全发行版 man7 · pgrep(1)
pkill
pkill -TERM <pattern>
危险匹配范围过宽会误杀其他进程;先用 pgrep 确认。
按进程名或命令行发送信号;默认 TERM。 sudo pkill -TERM -f 'gunicorn.*app' 全发行版 man7 · pkill(1)
nice
nice -n <priority> <command>
以指定 CPU 调度优先级启动命令,值越大优先级越低。 nice -n 10 tar -czf backup.tar.gz ./data 全发行版 man7 · nice(1)
renice
renice <priority> -p <pid>
调整正在运行进程的优先级;普通用户只能降低自己进程的优先级。 sudo renice 10 -p 1234 全发行版 man7 · renice(1)
nohup
nohup <command> > <log> 2>&1 &
让命令在退出终端后继续运行,并重定向输出。 nohup ./worker.sh > worker.log 2>&1 & 全发行版 GNU Coreutils 手册
timeout
timeout <duration> <command>
给命令设置最长运行时间,超时后发送信号终止。 timeout 30s curl -I https://zuhejian.com/ 全发行版 GNU Coreutils 手册
watch
watch -n <seconds> <command>
按固定间隔重复执行命令并刷新输出,适合观察端口和负载。 watch -n 2 'ss -tulpn | grep :443' 全发行版 man7 · watch(1)
dmesg
dmesg -T | tail -n <count>
查看内核环形缓冲区,排查 OOM、磁盘和网卡错误;-T 显示可读时间。 sudo dmesg -T | tail -n 50 全发行版 man7 · dmesg(1)
systemctl daemon-reload
sudo systemctl daemon-reload
修改 unit 文件后重新加载 systemd 配置;不会重启服务。 sudo systemctl daemon-reload systemd 系 freedesktop.org · systemctl
systemctl --failed
只列出启动失败的 unit,快速定位开机故障。 systemctl --failed systemd 系 freedesktop.org · systemctl
systemctl list-unit-files
systemctl list-unit-files --type=service
查看服务 unit 的启用状态(enabled/disabled/masked)。 systemctl list-unit-files --type=service | grep nginx systemd 系 freedesktop.org · systemctl
systemd-analyze blame
按耗时排序启动单元,定位开机慢的服务。 systemd-analyze blame | head -n 20 systemd 系 freedesktop.org · systemd-analyze
timedatectl
timedatectl status
查看时区、NTP 同步状态和本地/UTC 时间。 timedatectl status systemd 系 freedesktop.org · timedatectl
df -h
查看文件系统容量、已用和挂载点。 df -h 全发行版 GNU Coreutils 手册
du -sh
du -sh <path>
统计目录占用空间;-s 汇总,-h 人类可读。 du -sh /var/log/* | sort -h 全发行版 GNU Coreutils 手册
free -h
查看内存和 swap 使用情况。 free -h 全发行版 GNU Coreutils 手册
uname -a
查看内核版本、主机名和硬件架构。 uname -a 全发行版 GNU Coreutils 手册

网络

13 条

先用 ip/ss 查本机状态,再用 curl/ssh 验证远端服务。

网络命令表
命令 / 语法说明示例平台来源
ip addr
ip addr show
查看网卡和 IP 地址;替代旧的 ifconfig。 ip addr show 全发行版 man7 · ip(8)
ss
ss -tulpn
查看 TCP/UDP 监听端口及进程。 sudo ss -tulpn 全发行版 man7 · ss(8)
curl
curl -I <url>
检查 HTTP 响应头;-L 跟随跳转,-o 保存文件。 curl -I https://zuhejian.com/ 全发行版 curl · 命令行手册
ssh
ssh <user>@<host>
登录远程主机;首次连接会要求确认主机指纹。 ssh deploy@example.com 全发行版 OpenBSD · ssh(1)
rsync
rsync -av <source>/ <dest>/
增量同步文件;跨主机时通过 SSH 传输。 rsync -av ./site/ deploy@example.com:/srv/site/ 全发行版 rsync · 手册页
ip link
ip link show
查看网络接口状态、MTU 和 MAC 地址。 ip link show 全发行版 man7 · ip(8)
ip route
ip route show
查看路由表,确认默认网关和多网卡选路。 ip route show 全发行版 man7 · ip(8)
ping
ping -c <count> <host>
测试 ICMP 可达性和往返延迟;-c 指定次数。 ping -c 4 zuhejian.com 全发行版 man7 · ping(8)
traceroute
traceroute <host>
逐跳显示到目标的路由和延迟;ICMP 被禁时可用 TCP 模式。 traceroute zuhejian.com 全发行版 man7 · traceroute(8)
dig
dig <domain> [type] [+short]
查询 DNS 记录并显示应答、权威和耗时;+short 只输出结果。 dig zuhejian.com A +short 全发行版 Debian manpages · dig(1)
wget
wget -O <file> <url>
下载文件;-c 断点续传,--spider 只检查链接。 wget -O site.html https://zuhejian.com/ 全发行版 GNU Wget 手册
scp
scp <file> <user>@<host>:<path>
通过 SSH 复制文件;大目录和增量同步优先用 rsync。 scp ./site.tar.gz deploy@example.com:/srv/ 全发行版 OpenBSD · scp(1)
tcpdump
sudo tcpdump -i <interface> -nn port <port>
危险抓包可能包含凭据和隐私数据;限制抓取范围并及时删除 pcap。
抓取网络报文;-nn 不解析主机名和端口名,-w 写入 pcap。 sudo tcpdump -i eth0 -nn port 443 -c 20 全发行版 tcpdump · man page

用户、权限与 SSH

7 条

账户和 sudo 变更遵循最小权限原则;修改 SSH 配置前保留一个已登录会话。

用户、权限与 SSH命令表
命令 / 语法说明示例平台来源
id
id [user]
查看用户 UID、GID 和所属附加组。 id deploy 全发行版 GNU Coreutils 手册
last
last [-n <count>]
查看最近登录记录、来源 IP 和会话时长。 last -n 20 全发行版 man7 · last(1)
useradd
sudo useradd -m -s /bin/bash <user>
创建用户;-m 创建家目录,-s 指定登录 shell。 sudo useradd -m -s /bin/bash deploy 全发行版 man7 · useradd(8)
usermod
sudo usermod -aG <group> <user>
危险错误的 -G 会覆盖用户原有附加组,可能导致权限丢失。
修改用户所属组;-aG 追加组,漏掉 -a 会覆盖原附加组。 sudo usermod -aG sudo deploy 全发行版 man7 · usermod(8)
passwd
sudo passwd <user>
设置或修改本地账户密码;普通用户只能改自己的密码。 sudo passwd deploy 全发行版 man7 · passwd(1)
sudo -l
sudo -l [-U <user>]
列出当前或指定用户可执行的 sudo 命令。 sudo -l -U deploy 全发行版 sudo · sudo(8)
ssh-keygen
ssh-keygen -t ed25519 -C <comment>
生成 SSH 密钥对;-t 指定算法,默认写入 ~/.ssh。 ssh-keygen -t ed25519 -C 'deploy@site' 全发行版 OpenBSD · ssh-keygen(1)

包管理

9 条

安装、升级和卸载前先确认发行版与软件源;不要混用不同包管理器。

包管理命令表
命令 / 语法说明示例平台来源
apt
sudo apt update && sudo apt install <package>
危险remove/purge 和升级操作可能影响依赖服务。
Debian/Ubuntu 包管理;remove 会卸载但通常保留配置。 sudo apt update && sudo apt install nginx DebianUbuntu Debian · apt(8)
dnf
sudo dnf install <package>
危险卸载前检查依赖;生产机先做快照。
RHEL/Fedora 包管理;remove 卸载软件包。 sudo dnf install nginx RHELFedora DNF · Command Reference
pacman
sudo pacman -S <package>
危险避免 -Rdd 跳过依赖检查,可能破坏系统。
Arch Linux 包管理;-R 卸载,-Syu 同步升级。 sudo pacman -S nginx Arch Arch Linux · pacman(8)
zypper
sudo zypper install <package>
危险升级前确认仓库和依赖,生产机先做快照。
SUSE 包管理;refresh/update 更新软件源和系统。 sudo zypper install nginx SUSE SUSE · Zypper 文档
apk
sudo apk add <package>
危险Alpine 使用 musl 和 OpenRC,不要套用 systemd 操作。
Alpine 包管理;add/del/update 分别安装、卸载和更新索引。 sudo apk add nginx Alpine Alpine 用户手册 · apk
apt-cache policy
apt-cache policy <package>
查看软件包已安装/候选版本及来源仓库优先级。 apt-cache policy nginx DebianUbuntu Debian · apt(8)
dpkg -l
dpkg -l <pattern>
列出 Debian 系已安装包及版本;状态列 ii 表示已安装。 dpkg -l 'nginx*' DebianUbuntu Debian manpages · dpkg(1)
dnf history
sudo dnf history
查看 RHEL/Fedora 的事务历史,可用 undo 回滚指定事务。 sudo dnf history | head -n 20 RHELFedora DNF · Command Reference
rpm -qi
rpm -qi <package>
查询 RPM 包的版本、安装时间、许可证和摘要。 rpm -qi nginx RHELFedoraSUSE man7 · rpm(8)

磁盘与防火墙

12 条

设备名必须通过 lsblk 和 blkid 确认;不要凭记忆写 /dev/sdX。

磁盘与防火墙命令表
命令 / 语法说明示例平台来源
lsblk
lsblk -f
查看块设备、分区、文件系统和挂载点。 lsblk -f 全发行版 man7 · lsblk(8)
mount
sudo mount <device> <mountpoint>
危险挂载错误设备可能覆盖数据;先确认 lsblk 输出。
挂载文件系统;卸载使用 umount。 sudo mount /dev/sdb1 /mnt/data 全发行版 man7 · mount(8)
dd
sudo dd if=<image> of=<device> bs=4M status=progress
危险of= 后必须是正确设备。先用 lsblk 确认,写错不可逆。
按块复制镜像;of 写错设备会直接覆盖磁盘。 sudo dd if=image.iso of=/dev/sdX bs=4M status=progress 全发行版 GNU Coreutils · dd
mkfs
sudo mkfs.<fs> <device>
危险格式化会清除分区数据;确认设备名和挂载状态。
在设备上创建文件系统,会清除原有数据。 sudo mkfs.ext4 /dev/sdb1 全发行版 man7 · mkfs(8)
ufw
sudo ufw status verbose
危险错误的默认拒绝规则可能把自己锁在服务器外。
Ubuntu/Debian 的简化防火墙前端;修改规则前确保保留 SSH 端口。 sudo ufw allow 22/tcp UbuntuDebian Debian manpages · ufw(8)
firewall-cmd
sudo firewall-cmd --list-all
危险修改防火墙前保留带外访问或回滚方式。
firewalld 查询和修改规则;--permanent 后需 --reload。 sudo firewall-cmd --permanent --add-service=https RHELFedoraSUSE firewalld · firewall-cmd
blkid
sudo blkid
查看块设备的 UUID、文件系统类型和标签,写 fstab 前必查。 sudo blkid /dev/sdb1 全发行版 man7 · blkid(8)
findmnt
findmnt <mountpoint>
以树形查看挂载关系、源设备、文件系统和挂载选项。 findmnt /var 全发行版 man7 · findmnt(8)
umount
sudo umount <mountpoint>
危险仍有进程写入时强制卸载可能造成数据丢失。
卸载文件系统;设备忙时先用 lsof/fuser 查找占用进程。 sudo umount /mnt/data 全发行版 man7 · umount(8)
fsck
sudo fsck <device>
危险对已挂载文件系统运行 fsck 可能损坏数据;先卸载。
检查和修复文件系统;通常应在卸载后或救援环境执行。 sudo fsck /dev/sdb1 全发行版 man7 · fsck(8)
parted -l
sudo parted -l
危险parted 的写操作会修改分区表;确认磁盘后再执行。
列出磁盘分区表、分区大小和文件系统,只读检查优先。 sudo parted -l 全发行版 GNU Parted 手册
lvs
sudo lvs
查看 LVM 逻辑卷、卷组、大小和属性。 sudo lvs 全发行版 man7 · lvs(8)

压缩与归档

3 条

gzip/xz 默认替换原文件;打包前确认磁盘余量和目标路径。

压缩与归档命令表
命令 / 语法说明示例平台来源
gzip
gzip <file>
危险默认会用 .gz 替换原文件;需要保留原件时加 -k。
压缩文件并默认删除原文件;-k 保留原文件,-d 解压。 gzip -k access.log 全发行版 GNU Gzip 手册
xz
xz -k <file>
危险默认会替换原文件;需要保留时加 -k。
高压缩比压缩;-k 保留原文件,-d 解压,-T0 使用多线程。 xz -k -T0 backup.tar 全发行版 XZ Utils · xz(1)
zstd
zstd <file>
快速压缩;-d 解压,-19 高压缩,--rm 压缩后删除源文件。 zstd -T0 backup.tar 全发行版 Zstandard · zstd 手册

来源:Microsoft Learn、man7、GNU 手册及各发行版官方文档;更新 2026-10-23。