我正在使用zsh,并且尝试向变量添加新的条目(/home/david/pear/bin
),PATH
但我不知道如何。
最让我困惑的是,PATH
我的~/.zshrc
文件中没有对变量的单一引用,而是echo $PATH
返回:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
因此,在PATH
某处设置了变量。
我正在使用zsh,并且尝试向变量添加新的条目(/home/david/pear/bin
),PATH
但我不知道如何。
最让我困惑的是,PATH
我的~/.zshrc
文件中没有对变量的单一引用,而是echo $PATH
返回:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
因此,在PATH
某处设置了变量。
Answers:
在这里,将此行添加到.zshrc
:
export PATH=/home/david/pear/bin:$PATH
编辑:这确实可行,但是下面的ony答案更好,因为它利用了ZSH为像这样的变量提供结构化接口的优势$PATH
。这种方法是的标准方法bash
,但据我所知,当ZSH提供更好的替代方法时,没有理由使用它。
PATH="/home/david/pear/bin:/usr/bin:etc"
要PATH=/home/david/pear/bin:/usr/bin:etc
为它留在zshrc。
PATH
程序时,它会从启动它的父进程中继承,然后在它运行.zshrc
(.bashrc
或执行其他操作)时,您可以在该路径中添加其他内容。
实际上,使用ZSH允许您使用环境变量的特殊映射。因此,您可以简单地执行以下操作:
# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH
对我来说,这是一个非常简洁的功能,可以传播到其他变量。例:
typeset -T LD_LIBRARY_PATH ld_library_path :
~/.zshrc
是来源.profile
,然后覆盖中的所有内容.profile
。花了一段时间拉扯我的头发弄清楚。
-x
而在变量中仅保留唯一值,-U
默认情况下假定冒号,因此可以是:typeset -TUx PATH path
path=(...)
无引用$path
或$PATH
内部)分配,添加path=(... $path)
和path+(...)
追加。
您可以以PATH
最小的方式附加到您的内容上。除非要附加多个元素,否则不需要括号。它通常也不需要引号。因此,添加的简单,简短方法是:
path+=/some/new/bin/dir
然后,用于测试新脚本/可执行文件的通用模式变为:
path+=$PWD/.
# or
path+=$PWD/bin
这种小写语法path
用作数组,但也会影响其大写伙伴等效项PATH
(通过绑定到该伙伴typeset
)。
(注意,没有:
需要/希望作为隔板。)
以path
这种方式(作为数组)对待也意味着:无需执行a
rehash
即可找到新路径的命令。
还要看一下vared path
作为动态编辑path
和其他方式的方式。
您可能只path
对这个问题感兴趣,但是由于我们在谈论导出和数组,因此请注意,
数组通常无法导出。
您甚至可以防止PATH
重复输入
(请参考
this
和this):
typeset -U path
path+='my/path' # for fun
。如果有空格,则很明显,但如果有注释,则不会太多。
path
。甲前述:
需要PATH
,如在.zshrc如下 PATH+=:/Users/path/to/my/folder
一根衬纸,不打开~/.zshrc
文件
echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc
要么
echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc
要查看效果,请source ~/.zshrc
在同一标签中执行或打开新标签
添加了〜/ .zshrc的路径
sudo vi ~/.zshrc
添加新路径
export PATH="$PATH:[NEW_DIRECTORY]/bin"
更新〜/ .zshrc
保存〜/ .zshrc
source ~/.zshrc
检查路径
echo $PATH
Bash
这样
选项1:将此行添加到〜/ .zshrc中:
export "PATH=$HOME/pear/bin:$PATH"
之后,您需要运行source ~/.zshrc
以使更改生效或关闭此窗口并打开一个新窗口
选项2:在终端控制台中执行它,以仅将此路径添加到当前终端窗口会话中。当您关闭窗口/会话时,它将丢失。