服务器与终端
Linux 命令大全(按发行版)
文件、文本、进程、systemd、网络、用户权限、磁盘、压缩和包管理命令,支持按 Debian、Ubuntu、RHEL、Fedora、Arch、Alpine、SUSE 筛选。
先看安全提示
rm -rf、dd、mkfs、fsck、parted、chmod -R、chown -R 和防火墙重置命令会不可逆地改变系统或数据,执行前必须确认目标。
显示 97 / 97 条
文件与目录
18 条先用 pwd/ls 确认当前位置,再执行复制、移动或删除。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
lsls [-lah] |
列出目录内容;-l 长格式,-a 包含隐藏项,-h 人类可读大小。 | ls -lah /var/log |
GNU Coreutils 手册 | |
cdcd <dir> |
切换当前目录;cd - 返回上一个目录。 | cd /etc/nginx |
GNU Bash 参考手册 | |
pwd |
显示当前工作目录的绝对路径。 | pwd |
GNU Bash 参考手册 | |
cpcp [-r] <source> <dest> |
复制文件或目录;复制目录需要 -r。 | cp -r ./site /srv/site-backup |
GNU Coreutils 手册 | |
mvmv <source> <dest> |
移动或重命名文件/目录;跨文件系统移动可能较慢。 | mv app.log app-2026-10-20.log |
GNU Coreutils 手册 | |
rmrm [-r] <path>危险rm -rf 不会询问确认,也不会进入回收站。
|
删除文件或目录;Linux 没有回收站语义。 | rm ./old.log |
GNU Coreutils 手册 | |
mkdirmkdir [-p] <dir> |
创建目录;-p 自动创建缺失的父目录。 | mkdir -p /srv/app/releases |
GNU Coreutils 手册 | |
findfind <path> -name <pattern> |
按名称、类型、时间或大小查找文件。 | find /var/log -type f -name '*.log' -mtime +7 |
man7 · find(1) | |
tartar -czf <archive.tar.gz> <dir> |
创建 gzip 压缩包;解压使用 tar -xzf。 | tar -czf site-2026-10-20.tar.gz ./site |
GNU Tar 手册 | |
chmodchmod <mode> <path>危险chmod -R 777 会向所有用户开放读写执行,禁止用于生产数据。
|
修改权限;目录递归修改前先确认权限模型。 | chmod 640 ./config.yml |
GNU Coreutils 手册 | |
chownchown <user>:<group> <path>危险chown -R 会改变整个目录树的所有者,可能破坏服务权限。
|
修改文件所有者和所属组;递归修改需谨慎。 | chown www-data:www-data ./public |
GNU Coreutils 手册 | |
touchtouch <file> |
创建空文件或更新文件访问/修改时间。 | touch /srv/app/.maintenance |
GNU Coreutils 手册 | |
ln -sln -s <target> <link> |
创建符号链接;目标路径建议使用绝对路径,避免移动后失效。 | ln -s /srv/app/releases/2026-10-21 /srv/app/current |
GNU Coreutils 手册 | |
statstat <path> |
查看 inode、权限、大小和三个时间戳(访问、修改、变更)。 | stat /etc/nginx/nginx.conf |
GNU Coreutils 手册 | |
filefile <path> |
根据文件头判断真实类型,不依赖扩展名。 | file ./backup.bin |
man7 · file(1) | |
realpathrealpath <path> |
解析相对路径、符号链接和 ..,输出绝对路径。 | realpath ../current |
GNU Coreutils 手册 | |
shredshred -u <file>危险覆写不可恢复,且 SSD 磨损均衡/快照可能保留旧数据。
|
多次覆写文件后再删除;对 SSD、日志型文件系统和快照并不可靠。 | shred -u ./secret.key |
GNU Coreutils 手册 | |
truncatetruncate -s <size> <file>危险将文件截断为 0 会立即丢失全部内容,日志服务可能仍持有旧文件句柄。
|
把文件扩展到指定大小或截断;截断会丢失尾部数据。 | truncate -s 0 ./app.log |
GNU Coreutils 手册 |
文本处理
13 条查看日志时优先用 less 分页,搜索时用 grep -n 保留行号。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
grepgrep [-rni] <pattern> <path> |
搜索文本;-r 递归,-n 显示行号,-i 忽略大小写。 | grep -rni 'error' /var/log/app |
GNU Grep 手册 | |
sedsed -i 's/<old>/<new>/g' <file>危险-i 会原地修改文件,先备份或先用不带 -i 的命令预览。
|
流编辑器,常用于替换文本;-i 直接修改文件。 | sed -i 's/localhost/127.0.0.1/g' ./config.ini |
GNU Sed 手册 | |
awkawk '{print $1}' <file> |
按列处理文本,适合从日志或命令输出提取字段。 | awk '{print $1, $9}' /var/log/nginx/access.log |
GNU Awk 手册 | |
lessless <file> |
分页查看大文件;按 / 搜索、q 退出。 | less /var/log/syslog |
man7 · less(1) | |
head / tailhead -n <n> <file> | tail -f <file> |
查看文件开头或末尾;tail -f 持续跟踪日志。 | tail -f /var/log/nginx/error.log |
GNU Coreutils 手册 | |
catcat <file> |
输出整个文件;大文件优先用 less,避免刷屏。 | cat /etc/os-release |
GNU Coreutils 手册 | |
cutcut -d '<delimiter>' -f <fields> <file> |
按分隔符提取字段,适合快速处理 CSV 或冒号分隔文件。 | cut -d: -f1 /etc/passwd |
GNU Coreutils 手册 | |
sortsort [-n] [-k <field>] <file> |
按字典或数值排序;-k 指定字段,-u 去重。 | sort -t: -k3 -n /etc/passwd |
GNU Coreutils 手册 | |
uniquniq [-c] <file> |
去除相邻重复行;通常先用 sort,再用 uniq -c 统计。 | sort access.log | uniq -c | sort -nr | head |
GNU Coreutils 手册 | |
wcwc [-l] [-w] [-c] <file> |
统计行数、单词数和字节数,日志巡检常用 -l。 | wc -l /var/log/nginx/access.log |
GNU Coreutils 手册 | |
xargsxargs [-0] <command>危险xargs 会直接执行删除等命令;先用 -p 或 echo 预览参数。
|
把标准输入转换为命令参数;配合 find -print0 处理含空格文件名。 | find /var/log -name '*.gz' -print0 | xargs -0 rm -f |
GNU Coreutils 手册 | |
teetee [-a] <file> |
同时写入文件和标准输出,适合在终端观察日志并留档。 | systemctl status nginx | tee nginx-status.txt |
GNU Coreutils 手册 | |
jqjq '<filter>' <file> |
解析和筛选 JSON;. 输出格式化全文,.key 读取字段。 | curl -s https://api.example.com/status | jq '.status' |
jq 手册 |
进程与系统
22 条先定位 PID 和服务单元,再决定是否终止;优先用 systemctl 管理服务。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
psps aux |
查看进程快照;aux 显示所有用户进程和资源占用。 | ps aux | grep nginx |
man7 · ps(1) | |
top |
实时查看 CPU、内存和进程;按 q 退出。 | top |
man7 · top(1) | |
killkill [-9] <pid>危险kill -9 不给进程清理机会,可能造成数据损坏或服务状态异常。
|
向进程发送信号;默认 TERM,-9 为强制 KILL。 | kill -TERM 1234 |
man7 · kill(1) | |
systemctlsystemctl status|start|stop|restart <unit>危险stop/disable 会中断服务;生产机先确认依赖和回滚方案。
|
管理 systemd 服务单元;enable/disable 控制开机启动。 | sudo systemctl status nginx |
freedesktop.org · systemctl | |
journalctljournalctl -u <unit> -n <lines> |
查看 systemd 日志;-f 持续跟踪,--since 指定时间。 | journalctl -u nginx -n 100 --no-pager |
freedesktop.org · journalctl | |
pgreppgrep -af <pattern> |
按名称或完整命令行查 PID;-a 显示命令行,-f 匹配完整参数。 | pgrep -af nginx |
man7 · pgrep(1) | |
pkillpkill -TERM <pattern>危险匹配范围过宽会误杀其他进程;先用 pgrep 确认。
|
按进程名或命令行发送信号;默认 TERM。 | sudo pkill -TERM -f 'gunicorn.*app' |
man7 · pkill(1) | |
nicenice -n <priority> <command> |
以指定 CPU 调度优先级启动命令,值越大优先级越低。 | nice -n 10 tar -czf backup.tar.gz ./data |
man7 · nice(1) | |
renicerenice <priority> -p <pid> |
调整正在运行进程的优先级;普通用户只能降低自己进程的优先级。 | sudo renice 10 -p 1234 |
man7 · renice(1) | |
nohupnohup <command> > <log> 2>&1 & |
让命令在退出终端后继续运行,并重定向输出。 | nohup ./worker.sh > worker.log 2>&1 & |
GNU Coreutils 手册 | |
timeouttimeout <duration> <command> |
给命令设置最长运行时间,超时后发送信号终止。 | timeout 30s curl -I https://zuhejian.com/ |
GNU Coreutils 手册 | |
watchwatch -n <seconds> <command> |
按固定间隔重复执行命令并刷新输出,适合观察端口和负载。 | watch -n 2 'ss -tulpn | grep :443' |
man7 · watch(1) | |
dmesgdmesg -T | tail -n <count> |
查看内核环形缓冲区,排查 OOM、磁盘和网卡错误;-T 显示可读时间。 | sudo dmesg -T | tail -n 50 |
man7 · dmesg(1) | |
systemctl daemon-reloadsudo systemctl daemon-reload |
修改 unit 文件后重新加载 systemd 配置;不会重启服务。 | sudo systemctl daemon-reload |
freedesktop.org · systemctl | |
systemctl --failed |
只列出启动失败的 unit,快速定位开机故障。 | systemctl --failed |
freedesktop.org · systemctl | |
systemctl list-unit-filessystemctl list-unit-files --type=service |
查看服务 unit 的启用状态(enabled/disabled/masked)。 | systemctl list-unit-files --type=service | grep nginx |
freedesktop.org · systemctl | |
systemd-analyze blame |
按耗时排序启动单元,定位开机慢的服务。 | systemd-analyze blame | head -n 20 |
freedesktop.org · systemd-analyze | |
timedatectltimedatectl status |
查看时区、NTP 同步状态和本地/UTC 时间。 | timedatectl status |
freedesktop.org · timedatectl | |
df -h |
查看文件系统容量、已用和挂载点。 | df -h |
GNU Coreutils 手册 | |
du -shdu -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 addrip addr show |
查看网卡和 IP 地址;替代旧的 ifconfig。 | ip addr show |
man7 · ip(8) | |
ssss -tulpn |
查看 TCP/UDP 监听端口及进程。 | sudo ss -tulpn |
man7 · ss(8) | |
curlcurl -I <url> |
检查 HTTP 响应头;-L 跟随跳转,-o 保存文件。 | curl -I https://zuhejian.com/ |
curl · 命令行手册 | |
sshssh <user>@<host> |
登录远程主机;首次连接会要求确认主机指纹。 | ssh deploy@example.com |
OpenBSD · ssh(1) | |
rsyncrsync -av <source>/ <dest>/ |
增量同步文件;跨主机时通过 SSH 传输。 | rsync -av ./site/ deploy@example.com:/srv/site/ |
rsync · 手册页 | |
ip linkip link show |
查看网络接口状态、MTU 和 MAC 地址。 | ip link show |
man7 · ip(8) | |
ip routeip route show |
查看路由表,确认默认网关和多网卡选路。 | ip route show |
man7 · ip(8) | |
pingping -c <count> <host> |
测试 ICMP 可达性和往返延迟;-c 指定次数。 | ping -c 4 zuhejian.com |
man7 · ping(8) | |
traceroutetraceroute <host> |
逐跳显示到目标的路由和延迟;ICMP 被禁时可用 TCP 模式。 | traceroute zuhejian.com |
man7 · traceroute(8) | |
digdig <domain> [type] [+short] |
查询 DNS 记录并显示应答、权威和耗时;+short 只输出结果。 | dig zuhejian.com A +short |
Debian manpages · dig(1) | |
wgetwget -O <file> <url> |
下载文件;-c 断点续传,--spider 只检查链接。 | wget -O site.html https://zuhejian.com/ |
GNU Wget 手册 | |
scpscp <file> <user>@<host>:<path> |
通过 SSH 复制文件;大目录和增量同步优先用 rsync。 | scp ./site.tar.gz deploy@example.com:/srv/ |
OpenBSD · scp(1) | |
tcpdumpsudo 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 配置前保留一个已登录会话。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
idid [user] |
查看用户 UID、GID 和所属附加组。 | id deploy |
GNU Coreutils 手册 | |
lastlast [-n <count>] |
查看最近登录记录、来源 IP 和会话时长。 | last -n 20 |
man7 · last(1) | |
useraddsudo useradd -m -s /bin/bash <user> |
创建用户;-m 创建家目录,-s 指定登录 shell。 | sudo useradd -m -s /bin/bash deploy |
man7 · useradd(8) | |
usermodsudo usermod -aG <group> <user>危险错误的 -G 会覆盖用户原有附加组,可能导致权限丢失。
|
修改用户所属组;-aG 追加组,漏掉 -a 会覆盖原附加组。 | sudo usermod -aG sudo deploy |
man7 · usermod(8) | |
passwdsudo passwd <user> |
设置或修改本地账户密码;普通用户只能改自己的密码。 | sudo passwd deploy |
man7 · passwd(1) | |
sudo -lsudo -l [-U <user>] |
列出当前或指定用户可执行的 sudo 命令。 | sudo -l -U deploy |
sudo · sudo(8) | |
ssh-keygenssh-keygen -t ed25519 -C <comment> |
生成 SSH 密钥对;-t 指定算法,默认写入 ~/.ssh。 | ssh-keygen -t ed25519 -C 'deploy@site' |
OpenBSD · ssh-keygen(1) |
包管理
9 条安装、升级和卸载前先确认发行版与软件源;不要混用不同包管理器。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
aptsudo apt update && sudo apt install <package>危险remove/purge 和升级操作可能影响依赖服务。
|
Debian/Ubuntu 包管理;remove 会卸载但通常保留配置。 | sudo apt update && sudo apt install nginx |
Debian · apt(8) | |
dnfsudo dnf install <package>危险卸载前检查依赖;生产机先做快照。
|
RHEL/Fedora 包管理;remove 卸载软件包。 | sudo dnf install nginx |
DNF · Command Reference | |
pacmansudo pacman -S <package>危险避免 -Rdd 跳过依赖检查,可能破坏系统。
|
Arch Linux 包管理;-R 卸载,-Syu 同步升级。 | sudo pacman -S nginx |
Arch Linux · pacman(8) | |
zyppersudo zypper install <package>危险升级前确认仓库和依赖,生产机先做快照。
|
SUSE 包管理;refresh/update 更新软件源和系统。 | sudo zypper install nginx |
SUSE · Zypper 文档 | |
apksudo apk add <package>危险Alpine 使用 musl 和 OpenRC,不要套用 systemd 操作。
|
Alpine 包管理;add/del/update 分别安装、卸载和更新索引。 | sudo apk add nginx |
Alpine 用户手册 · apk | |
apt-cache policyapt-cache policy <package> |
查看软件包已安装/候选版本及来源仓库优先级。 | apt-cache policy nginx |
Debian · apt(8) | |
dpkg -ldpkg -l <pattern> |
列出 Debian 系已安装包及版本;状态列 ii 表示已安装。 | dpkg -l 'nginx*' |
Debian manpages · dpkg(1) | |
dnf historysudo dnf history |
查看 RHEL/Fedora 的事务历史,可用 undo 回滚指定事务。 | sudo dnf history | head -n 20 |
DNF · Command Reference | |
rpm -qirpm -qi <package> |
查询 RPM 包的版本、安装时间、许可证和摘要。 | rpm -qi nginx |
man7 · rpm(8) |
磁盘与防火墙
12 条设备名必须通过 lsblk 和 blkid 确认;不要凭记忆写 /dev/sdX。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
lsblklsblk -f |
查看块设备、分区、文件系统和挂载点。 | lsblk -f |
man7 · lsblk(8) | |
mountsudo mount <device> <mountpoint>危险挂载错误设备可能覆盖数据;先确认 lsblk 输出。
|
挂载文件系统;卸载使用 umount。 | sudo mount /dev/sdb1 /mnt/data |
man7 · mount(8) | |
ddsudo 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 | |
mkfssudo mkfs.<fs> <device>危险格式化会清除分区数据;确认设备名和挂载状态。
|
在设备上创建文件系统,会清除原有数据。 | sudo mkfs.ext4 /dev/sdb1 |
man7 · mkfs(8) | |
ufwsudo ufw status verbose危险错误的默认拒绝规则可能把自己锁在服务器外。
|
Ubuntu/Debian 的简化防火墙前端;修改规则前确保保留 SSH 端口。 | sudo ufw allow 22/tcp |
Debian manpages · ufw(8) | |
firewall-cmdsudo firewall-cmd --list-all危险修改防火墙前保留带外访问或回滚方式。
|
firewalld 查询和修改规则;--permanent 后需 --reload。 | sudo firewall-cmd --permanent --add-service=https |
firewalld · firewall-cmd | |
blkidsudo blkid |
查看块设备的 UUID、文件系统类型和标签,写 fstab 前必查。 | sudo blkid /dev/sdb1 |
man7 · blkid(8) | |
findmntfindmnt <mountpoint> |
以树形查看挂载关系、源设备、文件系统和挂载选项。 | findmnt /var |
man7 · findmnt(8) | |
umountsudo umount <mountpoint>危险仍有进程写入时强制卸载可能造成数据丢失。
|
卸载文件系统;设备忙时先用 lsof/fuser 查找占用进程。 | sudo umount /mnt/data |
man7 · umount(8) | |
fscksudo fsck <device>危险对已挂载文件系统运行 fsck 可能损坏数据;先卸载。
|
检查和修复文件系统;通常应在卸载后或救援环境执行。 | sudo fsck /dev/sdb1 |
man7 · fsck(8) | |
parted -lsudo parted -l危险parted 的写操作会修改分区表;确认磁盘后再执行。
|
列出磁盘分区表、分区大小和文件系统,只读检查优先。 | sudo parted -l |
GNU Parted 手册 | |
lvssudo lvs |
查看 LVM 逻辑卷、卷组、大小和属性。 | sudo lvs |
man7 · lvs(8) |
压缩与归档
3 条gzip/xz 默认替换原文件;打包前确认磁盘余量和目标路径。
| 命令 / 语法 | 说明 | 示例 | 平台 | 来源 |
|---|---|---|---|---|
gzipgzip <file>危险默认会用 .gz 替换原文件;需要保留原件时加 -k。
|
压缩文件并默认删除原文件;-k 保留原文件,-d 解压。 | gzip -k access.log |
GNU Gzip 手册 | |
xzxz -k <file>危险默认会替换原文件;需要保留时加 -k。
|
高压缩比压缩;-k 保留原文件,-d 解压,-T0 使用多线程。 | xz -k -T0 backup.tar |
XZ Utils · xz(1) | |
zstdzstd <file> |
快速压缩;-d 解压,-19 高压缩,--rm 压缩后删除源文件。 | zstd -T0 backup.tar |
Zstandard · zstd 手册 |
没有匹配的命令,试试更短的关键词或切换平台。
来源:Microsoft Learn、man7、GNU 手册及各发行版官方文档;更新 2026-10-23。