我使用安装了 hwinfo sudo apt-get install hwinfo
,系统告诉我:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
hwinfo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/32.8 kB of archives.
After this operation, 90.1 kB of additional disk space will be used.
Selecting previously unselected package hwinfo.
(Reading database ... 192008 files and directories currently installed.)
Preparing to unpack .../hwinfo_21.6-1_amd64.deb ...
Unpacking hwinfo (21.6-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up hwinfo (21.6-1) ...
虽然当我后来进入时hwinfo
它说command not found
.man hwinfo
有效,即显示手册,但locate hwinfo
不返回任何内容。
我使用的是 Debian 8.1
dpkg-query -L hwinfo
表明 hwinfo 存在/usr/sbin/hwinfo
并直接调用它也可以工作。所以我认为这是一个路径问题?
答案1
通过运行,dpkg-query -L hwinfo
您可以查看此软件包安装的所有文件及其位置。
所以很可能安装为/usr/sbin/hwinfo
./usr/sbin
如果您想仅使用命令hwinfo
而不是完整的路径+命令来运行它,请添加到您的 $PATH 变量/usr/sbin/hwinfo
。
答案2
包的名称并不总是与其包含的任何命令的名称相同。您可以使用dpkg -L hwinfo | grep bin/
列出它提供的命令(或apt-file list hwinfo | grep bin/
在安装之前)。
该hwinfo
软件包确实包含一个名为 的命令hwinfo
,但它是/usr/sbin/hwinfo
.目录sbin
( /sbin
、/usr/sbin
、/usr/local/sbin
) 包含仅供 root 用户使用的命令。这并不一定意味着这些命令如果被其他用户调用就不起作用,只是它们不太可能有用。这些sbin
目录通常位于仅适用于 root 用户的命令搜索路径中。
可以/usr/sbin/hwinfo
以非root用户身份运行,但其报告不完整;它需要 root 访问权限才能查询某些信息。因此运行sudo hwinfo
或su -c hwinfo
以获得完整的输出,或者/usr/sbin/hwinfo
如果不完整的输出就足够了。
您不应该添加/usr/sbin
到您的PATH
命令,因为它包含的大多数命令无法以非 root 用户身份有效运行。