发行版命令速查表
跨发行版命令对照大全。无论你从 Debian 切换到 Arch,还是在 CentOS 和 Alpine 之间反复横跳,这张表帮你快速找到对应的命令。记住核心概念:不同发行版的工具名称不同,但要做的事情是一样的。
一、软件包管理
1.1 仓库索引操作
| 操作 | apt (Debian/Ubuntu) | dnf (Fedora/RHEL) | pacman (Arch) | zypper (openSUSE) | apk (Alpine) | nix (NixOS) | emerge (Gentoo) |
|---|
| 更新包索引 | apt update | dnf check-update | pacman -Sy | zypper refresh | apk update | nix-channel --update | emerge --sync |
| 刷新并升级全部 | apt update && apt upgrade | dnf upgrade | pacman -Syu | zypper update | apk upgrade | nixos-rebuild switch --upgrade | emerge -uDN @world |
| 列出仓库中包 | apt list | dnf list available | pacman -Sl | zypper search -s | apk search -v | nix search nixpkgs | eix <pkg> |
| 列出已安装包 | apt list --installed | dnf list installed | pacman -Q | zypper search -i | apk info | nix-env -q | qlist -I |
| 查看包信息 | apt show <pkg> | dnf info <pkg> | pacman -Si <pkg> | zypper info <pkg> | apk info <pkg> | nix-env -qaP --description <pkg> | emerge -s <pkg> |
| 查看已装包信息 | apt show <pkg> | dnf info <pkg> | pacman -Qi <pkg> | zypper info <pkg> | apk info -L <pkg> | nix-env -qa --description <pkg> | equery m <pkg> |
| 搜索包 | apt search <kw> | dnf search <kw> | pacman -Ss <kw> | zypper search <kw> | apk search <kw> | nix search nixpkgs <kw> | emerge --search <kw> |
| 搜索含文件的包 | apt-file search <f> | dnf provides <f> | pacman -F <f> | zypper se --provides <f> | apk info -W <f> | — | equery b <f> |
1.2 安装操作
| 操作 | apt | dnf | pacman | zypper | apk | nix | emerge |
|---|
| 安装包 | apt install <pkg> | dnf install <pkg> | pacman -S <pkg> | zypper install <pkg> | apk add <pkg> | nix-env -iA nixpkgs.<pkg> | emerge <pkg> |
| 安装本地包 | dpkg -i <file>.deb | dnf install <file>.rpm | pacman -U <file>.pkg.tar.zst | zypper install <file>.rpm | apk add --allow-untrusted <file>.apk | — | — |
| 跳过依赖检查 | — | dnf install --setopt=tsflags=nodocs <pkg> | pacman -Sdd <pkg> | zypper install --no-recommends <pkg> | — | — | emerge --nodeps <pkg> |
| 只下载不安装 | apt download <pkg> | dnf download <pkg> | pacman -Sw <pkg> | zypper download <pkg> | apk fetch <pkg> | — | emerge -f <pkg> |
| 安装软件包组 | apt install <group> | dnf groupinstall <grp> | pacman -S <group> | zypper install -t pattern <pat> | — | — | emerge --select <set> |
1.3 卸载操作
| 操作 | apt | dnf | pacman | zypper | apk | nix | emerge |
|---|
| 移除包 | apt remove <pkg> | dnf remove <pkg> | pacman -R <pkg> | zypper remove <pkg> | apk del <pkg> | nix-env -e <pkg> | emerge -C <pkg> |
| 移除+依赖 | apt autoremove <pkg> | dnf autoremove <pkg> | pacman -Rs <pkg> | zypper rm -u <pkg> | apk del <pkg> | — | emerge --depclean <pkg> |
| 移除+依赖+配置 | apt purge <pkg> | — | pacman -Rns <pkg> | — | — | — | — |
| 清除孤立包 | apt autoremove | dnf autoremove | pacman -Qdtq | pacman -Rs - | zypper packages --orphaned | — | nix-collect-garbage -d | emerge --depclean |
| 清理缓存 | apt clean | dnf clean all | pacman -Sc | zypper clean | apk cache clean | nix-store --gc | eclean-dist |
1.4 仓库管理
| 操作 | apt | dnf | pacman | zypper | apk | nix | emerge |
|---|
| 添加仓库 | add-apt-repository <repo> | dnf config-manager --add-repo <url> | 编辑 /etc/pacman.conf | zypper addrepo <url> <name> | 编辑 /etc/apk/repositories | 编辑 /etc/nixos/configuration.nix | layman -a <overlay> |
| 列出仓库 | apt-cache policy | dnf repolist | pacman -Sl | zypper repos | cat /etc/apk/repositories | nix-channel --list | layman -l |
| 启用/禁用仓库 | 编辑 /etc/apt/sources.list | dnf config-manager --set-enabled <repo> | 编辑 /etc/pacman.conf | zypper mr -e/-d <repo> | 注释/取消注释 /etc/apk/repositories | — | layman -a/-d <overlay> |
| 锁版本 | apt-mark hold <pkg> | dnf versionlock add <pkg> | 编辑 /etc/pacman.conf IgnorePkg | zypper addlock <pkg> | — | — | /etc/portage/package.mask |
二、服务管理
2.1 systemd(现代发行版通用)
| 操作 | 命令 |
|---|
| 启动服务 | systemctl start <unit> |
| 停止服务 | systemctl stop <unit> |
| 重启服务 | systemctl restart <unit> |
| 重载配置 | systemctl reload <unit> |
| 查看状态 | systemctl status <unit> |
| 开机自启 | systemctl enable <unit> |
| 取消自启 | systemctl disable <unit> |
| 启用并启动 | systemctl enable --now <unit> |
| 列出所有单元 | systemctl list-units |
| 列出所有服务 | systemctl list-units --type=service |
| 列出失败的 | systemctl --failed |
| 查看启动日志 | systemctl status <unit> 或 journalctl -u <unit> |
| 重新加载 systemd | systemctl daemon-reload |
| 编辑单元文件 | systemctl edit <unit> --full |
2.2 非 systemd 发行版
| 操作 | OpenRC (Gentoo/Alpine) | runit (Void) | S6 |
|---|
| 启动服务 | rc-service <svc> start | sv start <svc> | s6-rc -u change <svc> |
| 停止服务 | rc-service <svc> stop | sv stop <svc> | s6-rc -d change <svc> |
| 重启服务 | rc-service <svc> restart | sv restart <svc> | — |
| 查看状态 | rc-service <svc> status | sv status <svc> | s6-svstat <dir> |
| 开机自启 | rc-update add <svc> | ln -s /etc/sv/<svc> /var/service/ | s6-rc-db add <svc> |
| 列出服务 | rc-status | sv status /var/service/* | s6-rc -a list |
三、网络配置
3.1 网络管理工具
| 操作 | NetworkManager | systemd-networkd | netplan | ifupdown (Debian旧) | 通用/手动 |
|---|
| 查看接口 | nmcli dev status | networkctl list | netplan status | ifconfig -a | ip addr show |
| 查看详情 | nmcli dev show <if> | networkctl status <if> | — | — | ip -s link show <if> |
| 连接 WiFi | nmcli dev wifi connect <ssid> | 配置 .network 文件 | 配置 YAML | /etc/network/interfaces | iwctl / wpa_supplicant |
| 设静态 IP | nmcli con mod <name> ipv4.addresses ... | .network 文件 Address= | YAML addresses: | /etc/network/interfaces | ip addr add <ip>/<mask> dev <if> |
| 启用接口 | nmcli con up <name> | networkctl up <if> | netplan apply | ifup <if> | ip link set <if> up |
| 禁用接口 | nmcli con down <name> | networkctl down <if> | — | ifdown <if> | ip link set <if> down |
| 查看路由 | nmcli con show <name> | grep ipv4.routes | networkctl status | — | route -n | ip route show |
| DNS 配置 | nmcli con mod <name> ipv4.dns "8.8.8.8" | /etc/systemd/resolved.conf | YAML nameservers: | /etc/resolv.conf | resolvectl |
3.2 诊断命令
| 命令 | 用途 |
|---|
ip addr show | 查看 IP 地址 |
ip route show | 查看路由表 |
ip neigh | ARP 表 |
ss -tunlp | 查看监听端口 |
ss -tunlp4 | 仅 IPv4 监听端口 |
ping <host> | 连通性测试 |
traceroute <host> | 路由追踪 |
mtr <host> | MTR 路由诊断 |
dig <domain> | DNS 查询 |
nslookup <domain> | DNS 查询(简化) |
curl -v <url> | HTTP 调试 |
tcpdump -i <if> | 抓包 |
tshark | Wireshark 命令行版 |
nc -zv <host> <port> | 端口连通性测试 |
nmap <host> | 端口扫描 |
四、用户管理
| 操作 | 命令 |
|---|
| 添加用户 | useradd -m <user>(通用)/ adduser <user>(Debian 交互式) |
| 设置密码 | passwd <user> |
| 删除用户 | userdel -r <user> |
| 修改用户 | usermod -aG <group> <user> |
| 添加组 | groupadd <group> |
| 删除组 | groupdel <group> |
| 查看当前用户 | whoami 或 id |
| 查看登录用户 | who 或 w |
| 查看用户信息 | id <user> |
| 查看用户组 | groups <user> |
| 切换用户 | su - <user> |
| sudo 提权 | sudo <cmd> 或 sudo -i |
| 查看 sudoers | visudo(安全编辑 /etc/sudoers) |
| 锁定/解锁用户 | usermod -L <user> / usermod -U <user> |
| 更改 UID | usermod -u <uid> <user> |
| 用户列表 | getent passwd 或 cat /etc/passwd |
| 组列表 | getent group 或 cat /etc/group |
五、防火墙
| 操作 | iptables/nftables | firewalld (RHEL系) | ufw (Debian/Ubuntu) |
|---|
| 查看规则 | iptables -L -n -v / nft list ruleset | firewall-cmd --list-all | ufw status verbose |
| 开启防火墙 | systemctl start iptables | systemctl start firewalld | ufw enable |
| 放行端口 | iptables -A INPUT -p tcp --dport <p> -j ACCEPT | firewall-cmd --add-port=<p>/tcp | ufw allow <p>/tcp |
| 永久规则 | iptables-save | firewall-cmd --add-port=<p>/tcp --permanent | 默认永久 |
| 封禁 IP | iptables -A INPUT -s <ip> -j DROP | firewall-cmd --add-rich-rule='rule ...' | ufw deny from <ip> |
| 删除规则 | iptables -D INPUT <num> | firewall-cmd --remove-port=<p>/tcp | ufw delete allow <p> |
| 默认策略 | iptables -P INPUT DROP | firewall-cmd --set-default-zone=drop | ufw default deny |
| 保存规则 | iptables-save > /etc/iptables/rules.v4 | firewall-cmd --runtime-to-permanent | 自动保存 |
六、日志管理
| 操作 | 命令 |
|---|
| 查看系统日志 | journalctl |
| 查看内核日志 | journalctl -k 或 dmesg |
| 查看某服务日志 | journalctl -u <service> |
| 实时跟踪日志 | journalctl -f |
| 查看本次启动 | journalctl -b |
| 查看上次启动 | journalctl -b -1 |
| 按时间范围 | journalctl --since "2024-01-01" --until "2024-01-02" |
| 按优先级 | journalctl -p err(emerg, alert, crit, err, warning, notice, info, debug) |
| 日志占用空间 | journalctl --disk-usage |
| 清理旧日志 | journalctl --vacuum-size=500M |
| 传统 syslog 文件 | /var/log/syslog, /var/log/messages, /var/log/auth.log |
七、文档与帮助
| 命令 | 用途 |
|---|
man <cmd> | 查看命令手册 |
man -k <kw> | 按关键词搜索手册 |
man <section> <cmd> | 查看特定节(1=命令, 2=系统调用, 3=库函数, 5=配置文件, 7=杂项, 8=管理命令) |
info <cmd> | GNU Info 文档(更详细) |
<cmd> --help 或 -h | 简易帮助 |
tldr <cmd> | 社区维护的简明示例页(需安装 tldr) |
whatis <cmd> | 一行命令描述 |
apropos <kw> | 等同于 man -k <kw> |
which <cmd> | 显示命令的完整路径 |
type <cmd> | 显示命令类型(别名/内置/可执行文件) |
八、通用命令速查
8.1 文件操作
| 命令 | 常用示例 | 用途 |
|---|
ls | ls -lah,ls -ltr | 列出文件 |
find | find . -name "*.log" -mtime -7 | 搜索文件 |
grep | grep -rn "error" /var/log/ | 文本搜索 |
sed | sed -i 's/old/new/g' file | 流编辑器(原地替换) |
awk | awk '{print $1}' file | 文本处理 |
wc | wc -l file | 行/字/字节数统计 |
sort | sort -n -k2 file | 排序 |
uniq | uniq -c | 去重(通常配合 sort) |
cut | cut -d: -f1 /etc/passwd | 按分隔符切字段 |
tr | tr 'a-z' 'A-Z' | 字符转换 |
xargs | find . -name "*.txt" | xargs rm | 将 stdin 转为参数 |
tee | cmd | tee log.txt | 同时输出到屏幕和文件 |
diff | diff -u old new | 比较文件 |
patch | patch < diff.patch | 打补丁 |
rsync | rsync -avz src/ dest/ | 同步文件 |
tar | tar -czvf archive.tar.gz dir/ | 归档/压缩 |
ln | ln -s target linkname | 创建链接 |
stat | stat file | 查看文件详细信息 |
realpath | realpath file | 获取绝对路径 |
8.2 进程管理
| 命令 | 常用示例 | 用途 |
|---|
ps | ps aux, ps -ef | 查看进程 |
top | top -o %MEM | 实时进程监控 |
htop | htop | top 增强版(需安装) |
pgrep | pgrep -u <user> <name> | 按名称查找 PID |
pkill | pkill -HUP <name> | 按名称发信号 |
kill | kill -9 <pid> | 按 PID 发信号 |
lsof | lsof -i :80, lsof -p <pid> | 列出打开的文件 |
fuser | fuser -v /path | 查看哪个进程在用文件 |
nice | nice -n 10 <cmd> | 调整优先级启动 |
renice | renice -n -5 -p <pid> | 调整运行中的优先级 |
8.3 磁盘与存储
| 命令 | 常用示例 | 用途 |
|---|
df | df -h | 查看磁盘使用量 |
du | du -sh *, du -h --max-depth=1 | 查看目录大小 |
lsblk | lsblk -f | 列出块设备 |
blkid | blkid /dev/sda1 | 查看块设备 UUID |
fdisk | fdisk -l | 查看分区表 |
parted | parted -l | 查看分区(支持 GPT) |
mount | mount /dev/sda1 /mnt | 挂载 |
umount | umount /mnt | 卸载 |
dd | dd if=/dev/sda of=backup.img bs=4M | 块级复制 |
ncdu | ncdu / | 交互式磁盘空间分析 |
iotop | iotop | I/O 监控 |
iostat | iostat -x 1 | I/O 统计 |
8.4 性能与监控
| 命令 | 常用示例 | 用途 |
|---|
uptime | uptime | 系统负载 |
free | free -h | 内存使用 |
vmstat | vmstat 1 | 虚拟内存统计 |
sar | sar -u 1 | 系统活动报告(sysstat 包) |
strace | strace -f <cmd> | 追踪系统调用 |
ltrace | ltrace <cmd> | 追踪库函数调用 |
perf | perf top, perf record | 性能分析 |
bpftrace | bpftrace -e '...' | 动态追踪 |
dstat | dstat -cdn | 综合系统资源统计 |
stress | stress --cpu 2 --io 2 | 压力测试 |
8.5 权限与安全
| 命令 | 常用示例 | 用途 |
|---|
chmod | chmod 755 file, chmod u+x file | 修改权限 |
chown | chown user:group file | 修改所有者 |
umask | umask 022 | 默认权限掩码 |
chattr | chattr +i file | 文件扩展属性(不可变) |
lsattr | lsattr file | 查看扩展属性 |
getfacl/setfacl | setfacl -m u:user:rw file | ACL 访问控制 |
sudo | sudo -l | 列出 sudo 权限 |
last | last -n 20 | 登录历史 |
lastb | lastb -n 20 | 失败登录记录 |
faillock | faillock --user <user> | 查看锁定状态 |
九、发行版默认配置路径
| 配置项 | Debian/Ubuntu | RHEL/Fedora | Arch | Alpine | NixOS |
|---|
| 包仓库 | /etc/apt/sources.list | /etc/yum.repos.d/*.repo | /etc/pacman.conf, /etc/pacman.d/mirrorlist | /etc/apk/repositories | /etc/nixos/configuration.nix |
| 网络配置 | /etc/network/interfaces | /etc/sysconfig/network-scripts/ | /etc/systemd/network/ | /etc/network/interfaces | /etc/nixos/configuration.nix |
| DNS | /etc/resolv.conf | /etc/resolv.conf | /etc/resolv.conf | /etc/resolv.conf | networking.nameservers in config |
| 防火墙 | ufw / iptables | firewalld / iptables | iptables / nftables | iptables | networking.firewall in config |
| 日志 | /var/log/ + journald | /var/log/ + journald | /var/log/ + journald | /var/log/ | journald only |
| 用户/组 | /etc/passwd, /etc/group | 同 | 同 | 同 | 声明式 users.users.<name> |
| init 系统 | systemd | systemd | systemd | OpenRC / busybox | systemd |
| 包缓存 | /var/cache/apt/archives/ | /var/cache/dnf/ | /var/cache/pacman/pkg/ | /etc/apk/cache/ | /nix/store/ |
相关章节
14-软件包管理通识, 13-网络配置基础, 24-防火墙与安全, Linux 术语对照表, 16-日志系统, 11-systemd服务管理, 38-Linux内核基础与模块, Linux README