在 ZSH 中的 PATH 变量中添加新条目
- 2024-10-09 09:10:00
- admin 原创
- 90
问题描述:
我正在使用 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
所以我知道路径变量正在某处设置。zshPATH
终端的变量在哪里设置/修改?
解决方案 1:
实际上,使用 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 :
解决方案 2:
在这里,将此行添加到.zshrc
:
export PATH=/home/david/pear/bin:$PATH
编辑:这确实有效,但上面的ony 的答案更好,因为它利用了 ZSH 为诸如 之类的变量提供的结构化接口$PATH
。这种方法是 的标准方法bash
,但据我所知,当 ZSH 提供更好的替代方案时,没有理由使用它。
解决方案 3:
您可以以最小的方式附加到您的元素PATH
。除非您要附加多个元素,否则无需使用括号。它通常也不需要引号。因此,简单、简短的附加方法是:
path+=/some/new/bin/dir
此小写语法用作path
数组,但也会影响其大写伙伴等效项(它通过“绑定”到该数组)。PATH
`typeset`
(请注意,不需要:
/不想要作为分隔符。)
常见交互用法
然后,测试新脚本/可执行文件的常见模式就变成:
path+=$PWD/.
# or
path+=$PWD/bin
常见配置用法
您可以在路径设置周围散布一些路径设置.zshrc
(如上所示),这自然会导致先前列出的设置优先(尽管您可能偶尔仍想使用“前置”形式path=(/some/new/bin/dir $path)
)。
相关新闻
path
以这种方式(作为数组)处理也意味着:**无需执行任何操作rehash
**即可找到新路径的命令。
还可以将其视为vared path
一种动态的编辑方式path
(及其他事物)。
您可能只对这个问题感兴趣path
,但由于我们正在讨论导出和数组,请注意
数组通常不能被导出。
您甚至可以防止PATH
重复输入
(请参阅
此
和此):
typeset -U path
PATH 已预填充
您的路径中已经包含一些条目,这是因为您的系统 shell 文件为您设置了路径。其他几篇文章介绍了这一点:
为什么以及在哪里设置 $PATH 环境变量?
$PATH 的来源在哪里?我在 .zshrc 中找不到它
解决方案 4:
一行代码,无需打开~/.zshrc
文件
echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc
或者
echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc
要查看效果,请source ~/.zshrc
在同一选项卡中执行或打开新选项卡
解决方案 5:
添加了 ~/.zshrc 的路径
sudo vi ~/.zshrc
添加新路径
export PATH="$PATH:[NEW_DIRECTORY]/bin"
更新 ~/.zshrc
保存 ~/.zshrc
source ~/.zshrc
检查路径
echo $PATH
解决方案 6:
选项 1:将这一行添加到 ~/.zshrc:
export "PATH=$HOME/pear/bin:$PATH"
之后,您需要运行source ~/.zshrc
以使更改生效,或者关闭此窗口并打开一个新窗口
选项 2:在终端控制台内执行此操作,仅将此路径添加到当前终端窗口会话。当您关闭窗口/会话时,它将丢失。
解决方案 7:
如果你使用的是 macOS(我使用的是 Monterey 12.3.1),那么你可能和我一样感到很为难。上述这些说明在终端会话中对我都有效,但无论我对导出做了什么,我都无法让它持续存在。此外,我在任何地方都找不到 .zshrc。
事实证明,Apple 的做法不同。您需要编辑的文件是etc/paths
。您可以简单地sudo nano /etc/paths
在新行中添加路径。然后只需重新启动终端即可。
解决方案 8:
我在 Monterey 12.4 上,唯一可以更改路径的方法是使用辅助函数。在 nano 中编辑文本文件毫无效果
# append
path+=('/foo/bar/yourpath')
# export to sub-processes
export PATH
解决方案 9:
对我PATH=$PATH:/path/to/file/bin
来说然后export PATH
工作了。检查echo $PATH
。其他解决方案是临时添加路径。
解决方案 10:
一种原生的 zsh 方式是识别您的安装目录并创建一个文件,您将从中加载您的PATH
修改:
touch $ZSH/custom/usrenv.zsh
并在其中添加新的 PATH 目录,如下所示usrenv.zsh
:
export PATH=$PATH:/home/myself/.foo/bin:/usr/local/bar/bin
目录custom
文件*.zsh
默认由 init 脚本获取.oh-my-zsh.sh
,如下面这段代码所示:
if [[ -z "$ZSH_CUSTOM" ]]; then
ZSH_CUSTOM="$ZSH/custom"
fi
...
for config_file ("$ZSH_CUSTOM"/*.zsh(N)); do
source "$config_file"
done
unset config_file
解决方案 11:
小写路径变量对我来说不起作用。当我打开 .zshrc 时,已经有一个EXPORT PATH= "$HOME/.local/bin:$PATH", where $PATH is the current path variable set on the machine. All I did was append to the string adding a colon in front of the path. e.g.
export PATH="$HOME/.local/bin:$PATH:$HOME/go/bin"`
之后的任何内容:
都是要附加的新路径。
解决方案 12:
您可以将新文件添加到 /etc/paths.d,并添加该文件的路径。别忘了重新启动终端。
**#create new file to /etc/paths.d**
touch /etc/paths.d/[filename]
**#open created file and add your path**
vi /etc/paths.d/[filename]
**#save and close file and restart terminal**
解决方案 13:
为了尝试提供帮助,我将向您展示如何使用 BASH 脚本完成该过程。
重要提示: “PATH”环境变量必须在其配置中接收一个文件夹(例如:“/home/<YOUR_USER>/.scripts/zsh”),而不是直接接收二进制文件或脚本(例如:“/home/<YOUR_USER>/.scripts/zsh/my_bash_script”)。
安装 BASH 脚本作为集成终端命令
使 BASH 脚本可执行
运行以下命令使“my_bash_script”脚本可执行...
chmod +x /home/<YOUR_USER>/.scripts/zsh/my_bash_script
将 BASH 脚本添加到 PATH
运行以下命令将 BASH 脚本目录临时添加到您的“PATH”...
export PATH=$PATH:/home/<YOUR_USER>/.scripts/zsh # Logged in as your user!
将此行添加到“.zshrc”文件的末尾,以便每次启动终端会话时自动添加它...
echo 'export PATH=$PATH:/home/<YOUR_USER>/.scripts/zsh' >> ~/.zshrc
重新加载“.zshrc”文件
要立即应用更改,请运行...
source ~/.zshrc # Logged in as your user!
设置权限
接下来,您需要确保 BASH 脚本具有正确的权限...
chown -R <YOUR_USER>:<YOUR_USER> /home/<YOUR_USER>/.scripts/zsh
chmod -R 700 /home/<YOUR_USER>/.scripts/zsh
大功告成!
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件