Linux 常用命令速查:文件、进程、网络与软件包管理

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 的帮助。
  • 命令是否存在、选项含义及默认行为,取决于发行版、程序实现、版本和已安装的软件包。

官方参考文档

这份列表用于快速定位相关命令。执行实际任务前,应进一步查看对应命令的语法、常用选项、完整示例和注意事项,尤其要核实会修改数据或系统状态的操作。