菜鸟科技网

Linux check命令有哪些具体用法和参数?

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

Linux check命令有哪些具体用法和参数?-图1
(图片来源网络,侵删)

check 这个词通常是一个功能描述或一个工具名称的一部分,而不是一个独立的、系统自带的命令,它存在于各种特定的工具和脚本中,用于执行检查、验证或测试操作。

下面我将为你梳理几种最常见的 check 相关命令和用法,从最核心的 systemd 工具到文件系统检查、脚本检查等。


systemd 相关的检查命令 (最常见)

在现代 Linux 系统中(使用 systemd 作为初始化系统),check 是一个非常重要的子命令,通常与 systemctl 结合使用。

systemctl is-active

这个命令用来检查一个服务(Service)或一个单元(Unit)的当前状态是否是“活动的”(Active)。

Linux check命令有哪些具体用法和参数?-图2
(图片来源网络,侵删)
  • 作用: 快速判断某个服务(如 Nginx, SSH)是否正在运行。

  • 语法: systemctl is-active <unit-name>

  • 示例:

    # 检查 nginx 服务是否正在运行
    systemctl is-active nginx
    # 可能的返回结果:
    # active (如果服务正在运行)
    # inactive (如果服务已停止)
    # failed (如果服务启动失败)
    # ... (其他状态)
  • 在脚本中的妙用: 这个命令的返回值(退出码)非常适合用在 Shell 脚本中进行条件判断。

    Linux check命令有哪些具体用法和参数?-图3
    (图片来源网络,侵删)
    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 图形,展示详细的启动过程时间线。

ssnetstat

检查网络连接和监听端口。

  • 作用: 查看当前系统的网络连接状态、端口监听情况等。

  • 示例:

    # 查看所有监听的 TCP 端口
    sudo ss -tulpn
    # 或者使用 netstat (较老的工具)
    sudo netstat -tulpn

pstop

检查正在运行的进程。

  • 作用: 查看当前系统进程的快照或实时监控。

  • 示例:

    # 查找所有名为 "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>: 查找某个文件属于哪个已安装的软件包。

yumdnf (CentOS/RHEL/Fedora)

  • yum check-updatednf 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 auxtop 查看进程列表和资源占用。
软件包信息 rpm -qf <file> / dpkg -S <file> 查询文件属于哪个软件包。

当你在 Linux 中听到或看到“check”时,首先要明确你想检查什么,如果你是想检查一个服务是否在运行,systemctl is-active 就是你需要的“check”命令。

分享:
扫描分享到社交APP
上一篇
下一篇