在标准的 Linux 发行版中,没有一个叫做 check 的通用命令。

check 这个词通常是一个功能描述或一个工具名称的一部分,而不是一个独立的、系统自带的命令,它存在于各种特定的工具和脚本中,用于执行检查、验证或测试操作。
下面我将为你梳理几种最常见的 check 相关命令和用法,从最核心的 systemd 工具到文件系统检查、脚本检查等。
systemd 相关的检查命令 (最常见)
在现代 Linux 系统中(使用 systemd 作为初始化系统),check 是一个非常重要的子命令,通常与 systemctl 结合使用。
systemctl is-active
这个命令用来检查一个服务(Service)或一个单元(Unit)的当前状态是否是“活动的”(Active)。

-
作用: 快速判断某个服务(如 Nginx, SSH)是否正在运行。
-
语法:
systemctl is-active <unit-name> -
示例:
# 检查 nginx 服务是否正在运行 systemctl is-active nginx # 可能的返回结果: # active (如果服务正在运行) # inactive (如果服务已停止) # failed (如果服务启动失败) # ... (其他状态)
-
在脚本中的妙用: 这个命令的返回值(退出码)非常适合用在 Shell 脚本中进行条件判断。
(图片来源网络,侵删)if systemctl is-active --quiet nginx; then echo "Nginx 服务正在运行。" else echo "Nginx 服务没有运行。" fi--quiet参数可以让命令只返回退出码,不输出任何文本到标准输出。
systemctl is-enabled
这个命令用来检查一个服务是否被设置为开机自启。
-
作用: 检查服务的开机启动级别。
-
语法:
systemctl is-enabled <unit-name> -
示例:
# 检查 nginx 是否设置为开机自启 systemctl is-enabled nginx # 可能的返回结果: # enabled (已设置开机自启) # disabled (已禁用开机自启) # static (静态链接,不能直接管理) # masked (被锁定,无法启动)
systemctl status
这是一个更全面的检查命令,它会显示服务的详细状态信息,包括是否活动、是否开机自启、最近的日志等。
- 作用: 查看服务的完整状态报告。
- 语法:
systemctl status <unit-name> - 示例:
systemctl status nginx
输出会非常详细,包括一个绿色的
active (running)或红色的inactive (dead)标识。
文件系统检查命令
fsck (File System Consistency Check)
fsck 命令本身不带 check,但它的功能就是检查和修复文件系统,你可以把它理解为文件系统的“检查器”。
-
作用: 检查并修复一个或多个文件系统的错误。
-
语法:
fsck [options] <device-file> -
示例:
# 检查 /dev/sda1 分区的文件系统 sudo fsck /dev/sda1 # 检查并自动修复(非交互式),使用 -a 或 -p 选项 sudo fsck -a /dev/sda1
⚠️ 重要警告: 绝不要在挂载的文件系统上运行
fsck,这极有可能导致数据损坏,它应该在系统启动时(未挂载时)或通过 Live CD/USB 运行。
系统资源和服务检查命令
这些命令虽然不叫 check,但它们是系统管理员日常工作中用于“检查”系统状态的利器。
systemd-analyze
这个工具专门用于分析 systemd 系统的启动性能。
systemd-analyze blame: 显示启动过程中耗时最长的服务列表。systemd-analyze plot: 生成一个 SVG 图形,展示详细的启动过程时间线。
ss 或 netstat
检查网络连接和监听端口。
-
作用: 查看当前系统的网络连接状态、端口监听情况等。
-
示例:
# 查看所有监听的 TCP 端口 sudo ss -tulpn # 或者使用 netstat (较老的工具) sudo netstat -tulpn
ps 或 top
检查正在运行的进程。
-
作用: 查看当前系统进程的快照或实时监控。
-
示例:
# 查找所有名为 "nginx" 的进程 ps aux | grep nginx # 实时查看系统资源占用 top
软件包管理中的检查命令
不同的包管理器也有自己的“检查”命令。
dpkg (Debian/Ubuntu)
dpkg -L <package-name>: 列出某个已安装软件包的所有文件。dpkg -S <filename>: 查找某个文件属于哪个已安装的软件包。
rpm (CentOS/RHEL/Fedora)
rpm -ql <package-name>: 列出某个已安装软件包的所有文件。rpm -qf <filename>: 查找某个文件属于哪个已安装的软件包。
yum 或 dnf (CentOS/RHEL/Fedora)
yum check-update或dnf check-update: 检查系统中是否有可用的软件包更新。
自定义脚本和工具中的 check
很多系统脚本或第三方工具会使用 check 作为命令的一部分。
- 日志检查:
logcheck是一个著名的工具,用于自动扫描和报告系统日志中的异常。 - 硬件监控: 像
smartctl(用于硬盘健康检查) 这样的工具,其输出也常被看作是一种检查。# 检查硬盘 S.M.A.R.T. 信息,可以看作是硬件健康检查 sudo smartctl -a /dev/sda
- 自定义脚本: 你完全可以自己写一个脚本,命名为
mycheck.sh,并在里面放各种检查逻辑。
| 检查目标 | 推荐命令 | 描述 |
|---|---|---|
| 服务是否运行 | systemctl is-active <service> |
最常用,检查服务当前活动状态,适合脚本。 |
| 服务是否开机自启 | systemctl is-enabled <service> |
检查服务的开机启动设置。 |
| 服务详细状态 | systemctl status <service> |
显示服务的完整状态报告,包括日志。 |
| 文件系统一致性 | fsck <device> |
检查并修复文件系统错误,必须在未挂载时使用。 |
| 系统启动性能 | systemd-analyze blame |
分析启动慢的原因。 |
| 网络端口/连接 | ss -tulpn |
查看监听的端口和网络连接。 |
| 运行中的进程 | ps aux 或 top |
查看进程列表和资源占用。 |
| 软件包信息 | rpm -qf <file> / dpkg -S <file> |
查询文件属于哪个软件包。 |
当你在 Linux 中听到或看到“check”时,首先要明确你想检查什么,如果你是想检查一个服务是否在运行,systemctl is-active 就是你需要的“check”命令。
