我使用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
所以我知道路径变量是在某处设置的。zsh终端的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
所以我知道路径变量是在某处设置的。zsh终端的PATH变量设置/修改在哪里?
当前回答
要验证新目录已正确添加,可以使用
打印-l $path
因为它的类型是一个数组
其他回答
一行,不用开口~/。zshrc中
echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc
or
echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc
要查看效果,请执行source ~/。ZSHRC在同一选项卡或打开一个新的选项卡
要验证新目录已正确添加,可以使用
打印-l $path
因为它的类型是一个数组
如果你用的是macOS系统(我用的是Monterey 12.3.1),你可能已经像我做的那样拉你的头发了。以上这些指令都在终端会话中为我工作,但无论我使用export做什么,我都无法使它持久。此外,我在任何地方都找不到.zshrc。
事实证明,苹果的做法不同。您需要编辑的文件是etc/paths。你可以简单地sudo nano /etc/paths和添加你的路径在一个新的行。然后简单地重新启动终端,瞧。
在这里,将这一行添加到.zshrc:
export PATH=/home/david/pear/bin:$PATH
编辑:这是可以工作的,但ony上面的答案更好,因为它利用了ZSH为变量提供的结构化接口,如$PATH。这种方法是bash的标准方法,但据我所知,当ZSH提供更好的替代方案时,就没有理由使用它。
实际上,使用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 :