我向路径列表添加了一条新路径,但无法从 Linux 的任何地方执行该程序

我向路径列表添加了一条新路径,但无法从 Linux 的任何地方执行该程序

我添加了一个我自己的脚本所在的路径,当我在终端中给出绝对路径来执行时,该脚本可以很好地执行。我读到在路径列表中添加此类目录的路径将使它们能够从终端的任何地方执行,而不是每次都给出绝对路径。所以在这里我修改了/etc/环境文件并在末尾添加了新路径。文件显示了新添加的路径,但我无法执行程序。那么需要做什么才能实现这一点呢?

并且~/.profile未找到,我写这个是因为大多数人已经重定向到添加路径的地方。我使用 linux mint 和/etc/环境是我找到文件中列出的所有路径的地方。谢谢。

编辑

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

PATH="$HOME/Software/android-studio/bin/:$PATH"

我创建了它并将其添加到我的 .profile 文件中,但仍然无法执行该脚本,或者我应该以不同的方式执行它。

编辑(1)

我只需export PATH="$HOME/Software/android-studio/bin/:$PATH"在终端中输入,现在它就可以工作了,尽管我想知道这个路径列表存在哪里,以及为什么 .profile 解决方案不起作用

答案1

/etc/environment仅用于登录,因此在注销和登录之前您不会看到任何内容。您可以在 shell 中将其作为临时措施。但恕我直言,这不是更改路径的地方。

您确实应该有一个~/.profile,但请记住,由于前导点,它不会显示,除非明确请求(ls ~/.*或文件资源管理器中的“显示隐藏文件”)。

但是,如果您创建自己的脚本,则可以将它们保存在~/bin(必要时创建),因为此目录会自动包含在您的 PATH(*) 中。如果您想使用其他目录,.profile这是扩展路径的正确位置,但如果您只从 bash 使用它们,您也可以将它们添加到.bash_rc文件中(另一个带有前导点的文件)。

(*)我创建的 Ubuntu 安装.profile包含:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

答案2

那个程序是否依赖于 lsb?

如果存在,请安装 lsb 基础包:

apt install lsb  

这是我以前在 Linux 上使用 RedCine 的 X 转换器时遇到的问题,症状相同。

确认 lsb 的可用性:

lsb_release -a

这应该会打印出您的版本,更重要的是,您正在运行的 LSB 模块。

相关内容