最近我在阅读有关加密技术的内容。我找到了 crypt 和 encrypt 命令。当我阅读手册页时,它显示正常,但是当我运行一些示例时,系统显示有关未找到 bash 命令的消息。我正在使用 RHEL 5.9。系统的这种行为是正常的还是我的操作系统已损坏?请指导。
答案1
许多联机帮助页不描述 shell 可用的命令,而是描述程序、概念或配置文件可用的函数。的联机帮助页crypt
和encrypt
描述库函数。
您可以根据给定的联机帮助页的部分快速了解其描述的内容。 shell 可用的命令位于第 1 或 8 部分(后者用于管理命令,通常仅对 有用root
)。
另请注意,您可以在没有相应命令的情况下安装第 1 部分或第 8 部分联机帮助页,因此即使联机帮助页位于第 1 部分中,仍然不能保证该命令可用。在某些情况下,手册页存在于具有相同名称的不同部分中;您可以指定您想要的部分:
man 1 printf
man 3 printf
看手册页中的数字是什么意思?了解各部分的详细信息。
答案2
不,您的系统没有损坏。许多手册页旨在提供参考,但不一定是关于可执行命令的。 man 系统中的页面可能包含:
用户无法使用的命令。常用命令(如果安装了 sudo 包)是
visudo
。它有一个男人条目man visudo
(正如它应该的那样)。但它是可用的仅有的给 root 用户(应该是这样)。没有用户可以执行它(没有 sudo),因此,用户(提示$
)无法执行它,并且通常不在除 root 之外的任何其他用户的路径中。因此:$ visudo bash: visudo: command not found
但:
$ sudo visudo
或(作为 root,
#
提示符):# visudo
会工作。
一般概念如:
man man man ascii
当然,
man
它也是一个可执行文件,并且是调用手册页的一个。它的手册页描述了section
man 系统的含义的概念。这对于像
passwd
(-f
选项意味着find
)这样的概念很重要:$ man -f passwd passwd (1) - change user password passwd (1ssl) - compute password hashes passwd (5) - the password file
这表明
1
、1ssl
和部分中5
存在三个页面。仅当安装了该软件包后,该1ssl
部分才可用。openssl
手册页第 5 节描述了一种文件格式,即/etc/passwd
文件格式。第 5 节的完整列表(对于 Linux)可以看到这里或者这里。可能有(取决于您的操作系统)条目,例如:man acl
这不是可执行文件,也不预期是(好吧,还不是)。
man 条目甚至可能不作为命令或文件存在。
如果安装了 openssl 软件包,则会有如下手册页:
man dgst
它解释了 openssl 命令的一部分如何工作,它被称为 as
openssl dgst
。没有dgst
命令。或者:
man ascii
这解释了什么是ascii字符。
编程(C语言)函数
许多 C 语言函数都有手册页:
man scanf
没有名为 的命令,也不期望存在该命令
scanf
。但有些页面存在于多个部分:
$ man -f printf printf (3) - formatted output conversion printf (1) - format and print data
有一个名为 的命令(第 1 节)
printf
,并且有一个 C 语言函数的页面也称为printf
。