我正在尝试将路径添加到我的路径中,因此它始终位于我的 Linux 路径中。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行 export 命令。
我怎么能这样做才能永久设置?
您需要将它添加到~/.profile
或~/.bashrc
文件中。
export PATH="$PATH:/path/to/dir"
根据你正在做的事情,你也可能想要符号链接到二进制文件:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
请注意,这不会自动更新会话剩余时间的路径。为此,您应该运行:
source ~/.profile
or
source ~/.bashrc
在 Ubuntu 中,编辑/etc/environment
。其唯一目的是存储环境变量。最初 $ PATH 变量在这里定义。这是来自我的/etc/environment
文件的粘贴:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
因此,您只需以 root 身份打开此文件并添加所需内容即可。
对于立即结果,运行(尝试普通用户和 root):
source /etc/environment && export PATH
更新:
如果您使用zsh
(又名 Z Shell),请在/etc/zsh/zshenv
的注释后面添加此行:
source /etc/environment
我在 Ubuntu 15.10 上遇到了这个小怪癖,但是如果你的zsh没有得到正确的PATH ,这可能就是为什么
有多种方法可以做到这一点。实际的解决方案取决于目的。
变量值通常存储在分配列表或在系统或用户会话开始时运行的 shell 脚本中。如果是 shell 脚本,则必须使用特定的 shell 语法。
/etc/environment
唯一分配的列表。非常适合将系统范围的目录(如/usr/local/something/bin
到PATH
变量或定义JAVA_HOME
。 /etc/xprofile
启动 X Window 系统会话时执行的 Shell 脚本。这是针对登录 X Window System 的每个用户运行的。对于像/usr/local/something/bin
这样的每个用户都有效的PATH
条目是一个不错的选择。该文件包含在其他脚本中,因此使用 POSIX shell 语法而不是用户 shell 的语法。 /etc/profile
和/etc/profile.d/*
Shell 脚本。对于仅限 shell 的系统,这是一个不错的选择。这些文件只能由 shell 读取。 /etc/<shell>.<shell>rc
。 Shell 脚本。这是一个糟糕的选择,因为它是单壳特定的。 ~/.pam_environment
。唯一任务列表。如果它是 X Window System 会话或 shell,则在每个用户会话开始时由PAM加载无关。您不能引用其他变量,包括HOME
或PATH
因此它的使用有限。 ~/.xprofile
Shell 脚本。当用户登录 X Window System 系统时执行此操作。这里定义的变量对每个 X 应用程序都是可见的。使用~/bin
或~/go/bin
GOPATH
或者定义用户特定的GOPATH
或NPM_HOME
来扩展PATH
完美选择。该文件包含在其他脚本中,因此使用 POSIX shell 语法而不是用户 shell 的语法。您通过快捷方式启动的图形文本编辑器或 IDE 将查看这些值。 ~/.profile
Shell 脚本。它仅对从终端或终端仿真器启动的程序可见。对于仅限 shell 的系统,它是一个不错的选择。 ~/.<shell>rc
。 Shell 脚本。这是一个糟糕的选择,因为它是单壳特定的。