Linux 常用命令速查:文件、进程、网络与软件包管理
创建时间 2026-11-04
最后修改 2026-11-04
Linux 常用命令可以按文件管理、文本处理、用户与权限、进程、系统、磁盘、网络和软件包管理等任务查找。下表概括各命令的用途,点击命令名称可查看详细用法和示例;已有中文说明的链接优先使用中文,其余链接通向英文说明。
同一个命令在不同发行版、实现和软件包版本中,支持的选项也可能不同。实际操作前,请用 man 命令名 或 命令名 --help 核对当前系统的说明;部分工具需要另行安装。
如何查找 Linux 命令的用法
Shell 是解释和执行命令的程序。下文涉及内建命令及作业控制时以 Bash 为例;其他 Shell 的语法和行为可能不同。
不知道命令的准确语法,或不清楚某个名称由 Shell 如何解释时,可以先查询帮助和命令类型。以下四条命令分别查阅 ls 的手册、显示它的帮助、检查 cd 的类型,以及查询当前 Shell 是否能找到 python:
man ls
ls --help
type cd
command -v python
正常情况下,man ls 会打开手册阅读器,通常按 q 退出;ls --help 输出选项说明;在 Bash 中,type cd 会说明它是内建命令。command -v python 在找到名称时输出其解析结果,否则返回非零状态;结果不一定是文件路径,系统也可能只提供 python3。
帮助与 Shell 环境命令
| 命令 | 用途 |
|---|---|
man |
阅读命令、配置文件、系统调用等项目的手册页。 |
info |
阅读 GNU 程序的 Info 格式详细文档。 |
help |
查看 Bash 内建命令的帮助,例如 cd、read。 |
apropos |
按手册名称和简短说明中的关键词查找相关命令。 |
whatis |
查看手册页中关于命令用途的一行简短说明。 |
type |
判断名称会被解释为别名、函数、Shell 内建命令还是可执行文件等。 |
command |
执行命令时跳过同名 Shell 函数;用 -v 查询名称的解析结果,不应一概当作文件路径。 |
history |
查看或复用当前 Shell 记录的历史输入;历史记录不等于命令已成功执行的证明。 |
alias |
为常用命令及选项组合定义便于输入的别名。 |
unalias |
移除当前 Shell 中已经定义的别名。 |
clear |
清理终端显示;它不会删除 Shell 的历史记录。 |
watch |
按一定间隔重复执行命令并刷新显示;带写入操作的命令也会被重复执行。 |
time |
测量命令的经过时间和处理器(CPU)用时;Shell 关键字与外部程序的功能有所不同。 |
env |
显示环境变量,或用调整后的环境运行子命令。输出可能包含令牌等敏感信息。 |
printenv |
输出全部或指定环境变量的值;公开输出前应检查是否含有敏感信息。 |
目录切换与文件信息命令
| 命令 | 用途 |
|---|---|
pwd |
显示当前工作目录的绝对路径。 |
ls |
列出文件和目录,并按选项显示权限、所有者、大小等信息。 |
cd |
切换当前 Shell 的工作目录。 |
tree |
用树状结构显示目录和文件层级;部分系统需要另行安装。 |
file |
根据文件特征和内容等判断类型;识别结果不代表文件安全无害。 |
stat |
查看大小、权限、所有者、索引节点(inode)和时间戳等文件元数据。 |
basename |
从路径字符串中取出最后一个文件名或目录名部分。 |
dirname |
从路径字符串中取出末尾文件名或目录名之前的目录部分。 |
realpath |
规范化路径,按选项处理相对路径和符号链接并输出绝对路径。 |
readlink |
读取符号链接中保存的目标路径。 |
文件和目录管理命令
| 命令 | 用途 |
|---|---|
touch |
创建不存在的空文件,或更新已有文件的访问、修改时间;不会清空已有内容。 |
mkdir |
创建目录,配合选项可创建缺失的父目录。 |
rmdir |
删除空目录;目录中仍有内容时通常会失败。 |
cp |
复制文件和目录;目标已存在时可能发生覆盖。 |
mv |
移动文件或目录,也可重命名;应注意目标路径和覆盖行为。 |
rm |
移除文件或目录,不会自动送入回收站,也不等于安全擦除数据。 |
ln |
创建硬链接或符号链接。 |
install |
复制文件并设置权限、所有者等属性,或创建目标目录;不是发行版的软件包管理器。 |
shred |
覆盖文件数据,并可通过选项移除文件;固态硬盘(SSD)、写时复制和快照等环境中不能保证彻底擦除。 |
mktemp |
实际创建名称难以预测的临时文件或目录,并输出其路径。 |
truncate |
缩小或扩展文件的逻辑大小;缩小时超出新长度的数据会丢失。 |
dd |
按数据块复制、转换文件或设备内容;写错目标可能破坏数据。 |
文件内容查看与搜索命令
| 命令 | 用途 |
|---|---|
cat |
把文件内容输出到标准输出,并可依次拼接多个文件。 |
tac |
按逆序输出记录,默认相当于从最后一行向前显示。 |
less |
分页阅读长文本,支持搜索和前后移动。 |
more |
按屏幕分页显示文本。 |
head |
查看文件或标准输入开头的若干行,默认是前 10 行。 |
tail |
查看文件末尾内容,或用 -f 持续读取新增内容;日志轮转时还需选择合适的跟踪选项。 |
grep |
查找匹配模式的文本行;若要按固定字符串匹配,可使用 -F。 |
find |
遍历目录树,按名称、类型、大小和时间等条件查找文件。 |
locate |
从预先建立的数据库中快速搜索路径;结果可能因数据库尚未更新而过时。 |
which |
在 PATH 中查找外部可执行文件;要判断别名、函数或内建命令,优先使用 type。 |
whereis |
查找程序相关的可执行文件、源文件和手册位置。 |
diff |
按行比较文本差异,也可比较目录中的文件。 |
cmp |
逐字节比较文件,默认报告首次差异的位置。 |
文本处理命令
| 命令 | 用途 |
|---|---|
wc |
统计换行符、单词、字节或字符数量;默认输出换行符数、单词数和字节数,字符数使用 -m。 |
sort |
对文本行排序,可按数值、字段或其他规则比较。 |
uniq |
合并或统计相邻的重复行;分散在文件各处的重复行不会自动一起处理。 |
cut |
按字节、字符或分隔字段选取每行的一部分。 |
paste |
把多个文件中对应的行横向拼接。 |
join |
根据共同字段合并两个文件的行;输入应按连接字段采用一致规则排序。 |
comm |
比较两个已按一致规则排序的文件,显示各自独有和共同的行。 |
tr |
替换、删除字符,或压缩连续重复字符。 |
tee |
把标准输入同时发送到标准输出和文件;默认会覆盖目标,追加需使用 -a。 |
xargs |
把标准输入中的条目转换为其他命令的参数;处理任意文件名时应使用双方配套的空字符(NUL)分隔方式。 |
sed |
按规则对文本流进行替换、筛选等编辑。 |
awk |
按记录和字段处理文本,进行条件筛选、计算和格式化输出。 |
column |
把文本整理成便于阅读的列或表格。 |
split |
按行数或大小等规则把文件拆成多个片段。 |
csplit |
按行号或匹配模式出现的位置拆分文件。 |
fmt |
重新整理纯文本段落的换行和行宽。 |
fold |
把长行折成指定宽度的多行。 |
printf |
按照格式字符串输出文字和数值,便于控制格式。 |
用户与权限命令
| 命令 | 用途 |
|---|---|
whoami |
显示当前进程有效用户 ID 对应的用户名。 |
id |
查看用户 ID、组 ID 和附加组等身份信息。 |
who |
根据登录记录查看当前登录会话;不等于列出所有网络连接。 |
w |
查看登录用户、会话活动和系统负载等信息。 |
last |
查看有记录的登录、退出和重启历史;记录可能不完整,不应视为完整审计证据。 |
groups |
查看当前进程或指定用户所属的组。 |
passwd |
修改用户密码,管理员还可进行相应账户密码管理。 |
sudo |
按安全策略授权,以其他用户(通常为 root)的身份执行指定命令。 |
su |
以其他用户和组的身份运行 Shell 或命令。 |
chmod |
修改文件或目录的权限位。 |
chown |
修改文件或目录的所有者用户和所属组。 |
chgrp |
修改文件或目录的所属组。 |
umask |
设置创建新文件和目录时要屏蔽的权限位;最终权限还取决于程序请求值等条件。 |
getent |
查询名称服务切换机制(NSS)提供的用户、组、主机等数据库条目。 |
进程与终端会话命令
| 命令 | 用途 |
|---|---|
ps |
查看所选进程在查询时的快照,包括进程 ID(PID)、用户、状态和命令;默认并非显示所有进程。 |
top |
交互式刷新查看进程及 CPU、内存等资源使用情况。 |
htop |
以交互界面查看和筛选进程、CPU 与内存信息,可能需要另行安装。 |
pgrep |
按进程名称、用户等条件查找进程 ID(PID)。 |
pkill |
向符合名称或其他条件的进程发送信号;执行前应核对匹配范围。 |
kill |
向指定 PID 或 Shell 作业发送信号;发送信号不一定会终止进程。 |
killall |
在 Linux 常见实现中,向匹配名称的进程发送信号。 |
jobs |
列出当前 Shell 管理的后台或已停止作业,不是全系统进程列表。 |
bg |
让当前 Shell 中已停止的作业在后台继续运行。 |
fg |
把当前 Shell 的作业移到前台运行。 |
nohup |
运行命令时忽略挂断信号(SIGHUP);不会自动转入后台,也不能保证在所有退出会话的情况下继续运行。 |
nice |
启动命令时调整用于 CPU 调度的 nice 值。 |
renice |
调整已经运行的进程的 nice 值,具体权限受系统限制。 |
screen |
创建可分离和重新连接的终端会话,在一个终端中管理多个虚拟终端。 |
tmux |
用窗口和窗格管理终端会话,并支持分离与重新连接。 |
系统信息与服务命令
| 命令 | 用途 |
|---|---|
uptime |
查看系统运行时间、登录用户数和平均负载;平均负载不是 CPU 使用百分比。 |
free |
查看物理内存和交换空间用量;判断可用内存时应关注 available(可用内存)的估算含义。 |
uname |
查看正在运行的内核和体系结构信息;它不是发行版名称查询工具。 |
hostnamectl |
在相应 systemd 系统中查看主机信息或设置主机名。 |
date |
显示、格式化日期时间;在相应权限和选项下也可设置系统时间。 |
timedatectl |
在相应 systemd 系统中查看或调整时区、时间和时间同步设置。 |
lscpu |
查看 CPU 架构、逻辑 CPU、核心和插槽等信息;虚拟机中的结果受虚拟化配置影响。 |
lsmod |
列出 Linux 内核当前已加载的模块。 |
modinfo |
查看指定内核模块文件的说明、路径、许可证和参数等信息。 |
dmesg |
读取内核环形缓冲区中的消息;访问可能受权限限制。 |
systemctl |
查看和控制 systemd 单元的状态、启动、停止与启用;enable 本身不等于立即启动。 |
journalctl |
查询 systemd journal 中保存的系统和服务日志。 |
reboot |
请求重新启动系统,会影响运行中的任务和连接用户。 |
shutdown |
立即或按计划请求关机或重启。 |
磁盘与文件系统命令
| 命令 | 用途 |
|---|---|
df |
查看已挂载文件系统的总容量、已用和可用空间。 |
du |
估算文件和目录占用的文件系统空间;与文件逻辑大小或 df 的文件系统整体统计含义不同。 |
lsblk |
查看磁盘、分区和逻辑卷等块设备的层级与挂载信息。 |
blkid |
查询块设备上的文件系统类型、UUID 和标签等标识信息。 |
mount |
挂载文件系统,或查看当前挂载情况。 |
umount |
从目录树中卸载文件系统;正在使用的挂载点可能无法卸载。 |
fdisk |
查看和编辑磁盘分区表;写入前应核对设备并备份重要数据。 |
parted |
查看或修改分区表及分区边界;调整分区不等于同时调整其中的文件系统。 |
mkfs |
在指定设备或分区上创建文件系统,可能破坏已有数据。 |
fsck |
调用相应文件系统检查工具进行一致性检查或修复;先确认卸载要求及该文件系统的专用规则。 |
sync |
请求把内存中缓存的写入同步到存储设备;它不能替代备份。 |
网络命令
| 命令 | 用途 |
|---|---|
ip |
查看或修改网络接口、IP 地址、路由和邻居表。 |
ss |
查看网络套接字、监听端口和连接状态。 |
ping |
用互联网控制报文协议(ICMP)的回显请求探测响应和往返时间;失败不一定表示主机离线,成功也不证明应用服务正常。 |
tracepath |
探测到目标的网络路径及路径最大传输单元(MTU)。 |
traceroute |
探测到目标途经的路由节点;过滤和路由策略可能导致结果不完整。 |
dig |
向域名系统(DNS)服务器查询记录并查看详细响应。 |
host |
查询域名与 IP 地址的对应关系等 DNS 信息。 |
nslookup |
进行 DNS 名称和记录查询,支持交互模式。 |
curl |
使用统一资源定位符(URL)指定的协议传输数据,常用于 HTTP 请求和接口调试。 |
wget |
下载 HTTP、HTTPS 或 FTP 等地址的文件,也可按选项递归下载。 |
nc |
Netcat 工具,用于 TCP、UDP 连接、监听和传输测试;不同实现的选项有差异。 |
nmap |
探测已获授权的主机、端口和服务信息。 |
ethtool |
查看或调整以太网接口的链路、驱动和相关功能设置。 |
resolvectl |
查看或调整 systemd-resolved 的 DNS 配置和名称解析信息;仅适用于使用该服务的系统。 |
远程连接与文件传输命令
| 命令 | 用途 |
|---|---|
ssh |
通过安全外壳协议(SSH)的加密连接登录远程主机或执行命令,首次连接时应核验主机密钥。 |
scp |
通过 SSH 在本地和远程之间复制文件;当前 OpenSSH 默认使用 SSH 文件传输协议(SFTP)。 |
sftp |
通过 SSH 连接交互式传输和管理远程文件。 |
rsync |
在本地或远程位置间复制和同步文件;路径或删除选项设置不当可能丢失数据。 |
ssh-keygen |
生成 SSH 密钥对、检查密钥指纹等;私钥应妥善保管。 |
ssh-copy-id |
把本地公钥安装到远程账户的授权公钥列表中;不要上传私钥。 |
压缩与归档命令
| 命令 | 用途 |
|---|---|
tar |
把文件和目录打包为归档,或解包;tar 本身不等于压缩,可结合 gzip、bzip2、xz 使用。 |
gzip |
以 gzip 格式压缩文件,通常生成 .gz;默认文件操作会以压缩结果替换原文件。 |
gunzip |
解压 gzip 文件;通常以解压结果替换压缩文件。 |
bzip2 |
以 bzip2 格式压缩文件,通常生成 .bz2;默认会替换原文件。 |
bunzip2 |
解压 bzip2 文件,通常以原始内容替换压缩文件。 |
xz |
以 xz 格式压缩文件,通常生成 .xz;默认会替换原文件。 |
unxz |
解压 xz 文件,通常以解压结果替换压缩文件。 |
zip |
把文件或目录打包为 ZIP 归档,并可进行压缩。 |
unzip |
查看或解开 ZIP 归档;先核对成员路径和目标位置,防止覆盖已有文件。 |
软件包管理命令
软件包管理工具随发行版而异。先用 cat /etc/os-release 查看当前发行版,再选择对应工具;不要把其他发行版的安装或升级命令直接照搬到当前系统。
| 命令 | 用途 |
|---|---|
apt |
Debian、Ubuntu 等系统中面向交互使用的 APT 软件包管理命令。 |
apt-get |
Debian、Ubuntu 等系统中的 APT 命令,适合脚本中的安装、移除和升级任务。 |
dpkg |
管理本地 DEB 软件包和已安装数据库;不会自动从仓库下载并解决所需依赖。 |
dnf |
Fedora、RHEL、Rocky Linux、AlmaLinux 等系统中常见的软件包管理工具,具体实现随版本而异。 |
rpm |
查询、校验和管理 RPM 软件包文件及已安装数据库。 |
zypper |
openSUSE 和 SUSE Linux Enterprise 的软件包与仓库管理工具。 |
pacman |
Arch Linux 及相关发行版的软件包管理工具。 |
apk |
Alpine Linux 的软件包管理工具。 |
使用命令前应检查什么
- 对 rm、dd、mkfs、fdisk 等会删除或改写数据的命令,先核对完整目标路径和设备,并准备必要备份。
- 只对确有需要且已理解的命令使用 sudo,不要把整段未知命令直接作为管理员执行。
- 网上找到的选项,应先用本机的 man 或 --help 确认;Shell 内建命令可查看对应 Shell 的帮助。
- 命令是否存在、选项含义及默认行为,取决于发行版、程序实现、版本和已安装的软件包。
官方参考文档
- GNU Coreutils 官方手册源码
- GNU Bash 参考手册(维护者站点)
- Linux man-pages 与相关项目手册索引
- systemd 官方手册源码
- OpenSSH scp 官方手册
- Debian apt 官方手册
这份列表用于快速定位相关命令。执行实际任务前,应进一步查看对应命令的语法、常用选项、完整示例和注意事项,尤其要核实会修改数据或系统状态的操作。




