可以使用手册页:为什么命令生成:bash 命令未找到?

可以使用手册页:为什么命令生成:bash 命令未找到?

最近我在阅读有关加密技术的内容。我找到了 crypt 和 encrypt 命令。当我阅读手册页时,它显示正常,但是当我运行一些示例时,系统显示有关未找到 bash 命令的消息。我正在使用 RHEL 5.9。系统的这种行为是正常的还是我的操作系统已损坏?请指导。

答案1

许多联机帮助页不描述 shell 可用的命令,而是描述程序、概念或配置文件可用的函数。的联机帮助页cryptencrypt描述库函数。

您可以根据给定的联机帮助页的部分快速了解其描述的内容。 shell 可用的命令位于第 1 或 8 部分(后者用于管理命令,通常仅对 有用root)。

另请注意,您可以在没有相应命令的情况下安装第 1 部分或第 8 部分联机帮助页,因此即使联机帮助页位于第 1 部分中,仍然不能保证该命令可用。在某些情况下,手册页存在于具有相同名称的不同部分中;您可以指定您想要的部分:

man 1 printf
man 3 printf

手册页中的数字是什么意思?了解各部分的详细信息。

答案2

不,您的系统没有损坏。许多手册页旨在提供参考,但不一定是关于可执行命令的。 man 系统中的页面可能包含:

  1. 用户无法使用的命令。常用命令(如果安装了 sudo 包)是visudo。它有一个男人条目man visudo(正如它应该的那样)。但它是可用的仅有的给 root 用户(应该是这样)。没有用户可以执行它(没有 sudo),因此,用户(提示$)无法执行它,并且通常不在除 root 之外的任何其他用户的路径中。因此:

    $ visudo
    bash: visudo: command not found
    

    但:

    $ sudo visudo
    

    或(作为 root,#提示符):

    # visudo
    

    会工作。

  2. 一般概念如:

    man man
    man ascii
    

    当然,man它也是一个可执行文件,并且是调用手册页的一个。它的手册页描述了sectionman 系统的含义的概念。

    这对于像passwd-f选项意味着find)这样的概念很重要:

    $ man -f passwd 
    passwd (1)           - change user password
    passwd (1ssl)        - compute password hashes
    passwd (5)           - the password file
    

    这表明11ssl和部分中5存在三个页面。仅当安装了该软件包后,该1ssl部分才可用。openssl手册页第 5 节描述了一种文件格式,即/etc/passwd文件格式。第 5 节的完整列表(对于 Linux)可以看到这里或者这里。可能有(取决于您的操作系统)条目,例如:

    man acl
    

    这不是可执行文件,也不预期是(好吧,还不是)。

  3. man 条目甚至可能不作为命令或文件存在。

    如果安装了 openssl 软件包,则会有如下手册页:

    man dgst
    

    它解释了 openssl 命令的一部分如何工作,它被称为 as openssl dgst。没有dgst命令。

    或者:

    man ascii
    

    这解释了什么是ascii字符。

  4. 编程(C语言)函数

    许多 C 语言函数都有手册页:

    man scanf
    

    没有名为 的命令,也不期望存在该命令scanf

    但有些页面存在于多个部分:

    $ man -f printf
    printf (3)           - formatted output conversion
    printf (1)           - format and print data
    

    有一个名为 的命令(第 1 节)printf,并且有一个 C 语言函数的页面也称为printf

相关内容