如何设置命令而不每次都定义路径?

如何设置命令而不每次都定义路径?

我有一个命令:

./keytool

但我总是必须去这个文件夹才能使用它:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin

我怎样才能在整个环境中使用以下命令,而不是每次都定义路径?

keytool

我该如何做呢?

答案1

一种方法是创建到当前 PATH 变量中任何文件夹的符号链接,在此示例中我们使用 /usr/bin/。

sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/keytool /usr/bin/keytool

答案2

在主目录中的.bashrc(或)文件末尾添加以下行:.profile

export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin

然而,这是一种非常脆弱的方法,因为一旦你更新了 Java 安装,它就不会像预期的那样工作。如果你想做得更正确,我建议以下几种方法:

查看/etc/alternatives文件夹,看看是否有java指向当前 java home 的链接(可能指向另一个链接)。如果存在,请使用以下代码更改导出行:

export PATH=$PATH:/etc/alternatives/java

或者(取决于您的系统),您可以在 中有一个链接/usr/lib/jvm,例如/usr/lib/jvm/java指向您安装的最新版本的 jvm。如果在那里,您可以使用这个,因此导出行是

export PATH=$PATH:/usr/lib/jvm/java

除此之外,如果您希望它是系统范围的(而不是将路径扩展限制为您的用户),您应该添加该行/etc/bashrc(或者/etc/bash-bashrc如果它在那里)。

最后要注意的是,这只适用于新创建的 shell,而不是你已经拥有的 shell,除非你发出命令

. ~/.bashrc

(如果不是,则是您修改过的文件.bashrc)在这些 shell 中。

相关内容