it-swarm.cn

如何找到Linux下软件的安装路径?

在linux下,我通过键入例如fluidplot启动软件。如何找到该软件的安装路径?

80
user5997

您可以使用:

which fluidpoint

查看它是从哪里执行的(如果它在您的$ PATH中)。要么:

find / -name fluidpoint 2> /dev/null

查找名为fluipoint的文件并重定向虚拟文件系统上的错误。

通常他们在/sbin/usr/sbin/usr/local/bin 要么 ~作为隐藏目录。

从手册:

NAME
       which - shows the full path of (Shell) commands.

SYNOPSIS
       which [options] [--] programname [...]

完整手册: https://linux.die.net/man/1/which

70
n0pe

如果您使用基于RPM的发行版(CentOS,RHEL,SUSE,openSUSE),则可以使用rpm -ql

例:

rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz

事物没有像在Windows(甚至在Mac)中一样安装在Linux/UNIX世界中。它们更加分散。二进制文件位于/bin 要么 /sbin,库位于/lib,图标/图形/文档在/ share中,配置在/etc,而程序数据位于/var

/bin/lib/sbin包含启动所需的核心应用程序和/usr包含所有其他用户和系统应用程序。

14
djsumdog

whereis命令查找命令的二进制文件,源文件和手册页文件,并且type命令告诉您在运行特定命令时Shell究竟执行什么操作。

根据您的情况,尝试whereis -l fluidplot。如果仅返回“ fluidplot:”,但没有路径,则表示未安装该软件。请注意,这不包括可能隐藏在~/.local/share/下的主文件夹中的文件(在我的情况下)。

Linux螺丝钉 上找到

6
魔大农

只是为@d​​jsumdog的答案添加一点,如果您使用的是基于DPKG的dist,例如Ubuntu,则可以使用

dpkg --status some_package

检查它是关于什么的,以及

dpkg --listfiles some_package

检查包含/与此包相关的文件。用于没有二进制文件的软件包,例如libnss3。和

dpkg --search some_file

查找哪个软件包包括此文件。

例如, dpkg --listfiles libnss3 给我:

/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3

请注意,文件夹不仅由该程序包拥有,而且也由其他程序包拥有。只需检查文件即可。

相反,dpkg --search libnss3.so 给我:

firefox: /usr/lib/firefox/libnss3.so
Thunderbird: /usr/lib/Thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d
5
WesternGun

您可以尝试运行:

ps aux | grep "THE_NAME_OF_A_PROGRAM"

您很有可能会看到程序的路径(如果正在运行)

0
user213527

而不是使用which除非您使用csh,否则这不是正确的选择 ),您可以使用command -v fluidplot来使Shell像Shell那样启动如果您要求它运行命令(在此示例中为fluidplot),您会怎么做。

对我来说一些例子:

$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist

因此,您也可以使用它来测试是否会找到并尝试运行命令。由于我们大多数人都使用类似Bourne的shell(例如bash或zsh),因此通常比which

0
Eric Renouf