我有一个关于 PATH 变量及其配置方法的问题。
这个问题源于这样一个事实:正在处理的软件包的安装附带了一个负责配置 PATH 的 bash 脚本。
该脚本无法执行此操作,这就是我接管的地方,并尝试手动执行此操作。
我尝试过一些方法,例如:
PATH=$PATH:~/opt/bin # or
PATH=~/opt/bin:$PATH # or
export PATH=~/opt/bin:$PATH # or
export PATH=$PATH:~/opt/bin # or
export PATH=$PATH:/opt/bin # or
PATH=$PATH:/opt/bin # and
export PATH
然后我跑:
echo $PATH
看看效果,但似乎没有任何改变。
我在 Linux mint 分区中完成所有这些工作。
我的问题是,在尝试更改 PATH 以使任何更改生效之前,我是否还需要做其他事情?或者仅仅是解决问题的方法无效?
是否有其他方法可以在 PATH 中添加变量(任何类型的软件或类似软件?)
乔治
答案1
PATH 的值最初是在文件内设置的/etc/profile
。
它是为“默认用户”和“root”设置的(不要编辑它)。
您可以通过在终端中执行以下命令来读取它:
cat /etc/profile
但是,您只想更改您的用户的默认 PATH(因此其他用户可能有不同的 PATH,特别是 user root
)。
在 Mint 中(不同版本的 Mint 可能有所不同)和 Gnome 桌面(创建或编辑~/.pam_environment
如下)。假设您有一个名为的文本编辑器gedit
:
$ gedit ~/.pam_environment
并添加(或更改)这一行:
PATH DEFAULT=${PATH}:/opt/bin
写入文件,注销,再次登录,新的 PATH 值应该生效。
这个答案帮助我写下了我的答案。
答案2
您不能通过以下方式更改 shell 进程的 PATH(或任何其他环境变量):跑步一个脚本。
如果脚本修改(和exports
)PATH,那么修改只会影响脚本内的环境(以及任何子流程)但不是父进程。
如果要在正在运行的 shell 会话中修改 PATH,则需要修改它直接地在此会话中,例如通过source
ing 脚本而不是跑步它。
$ cat mypath.sh
export PATH=/opt/foo/bin:$PATH
$ echo $PATH
/usr/bin
$ ./mypath.sh
$ echo $PATH
/usr/bin
$ . ./mypath.sh
$ echo $PATH
/opt/foo/bin:/usr/bin