设置 $path 失败(win10 子系统 linux、ubuntu、fish shell、brew)
Set $path fail (win10 subsystem linux, ubuntu, fish shell, brew)
环境
- OS:Windows Linux、Ubuntu 18.04
的子系统
- shell: 鱼
- 工具包管理:brew (homebrew/linuxbrew)
- fish 已经安装
- fish 已设置为默认 shell
- brew 已安装
- brew 环境设置为 official site
- php 已经安装了 brew
- composer 已经安装了 brew
目标
我想将 PHP 与 brew 安装但失败的 "php" 命令一起使用。
我做了什么
我尝试自己设置环境
- 在当前 shell 中成功,但在重新启动时失败 shell
# in bash I tried these
PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/
export PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/
# in fish bash I tried these
set PATH $PATH /home/linuxbrew/.linuxbrew/bin/ <-update: updated
export PATH $PATH:/home/linuxbrew/.linuxbrew/bin/ <-update: wrong
- 在 bash 中成功但在 fish 中失败
- 在用户目录下的.bashrc文件中添加上面的命令
(.bashrc 似乎只有 运行 当 bash)
- 以下应该成功但失败
sudo -H vi /etc/environment
- 在里面加
/home/linuxbrew/.linuxbrew/bin/
如果你想在启动 fish 时向 运行 命令,你需要将它们放入 ~/.config/fish/ 中名为 "config.fish" 的文件中。 bashrc,顾名思义,就是特定于bash.
另外,"export" 用于标记 "exporting" 的变量,意思是将其传递给 shell 启动的外部命令。 $PATH 通常继承自 shell 开头的任何内容,这意味着它无论如何都会被导出,所以你的 export
行是无用的。
您的 fish 命令也需要稍作调整:
set PATH $PATH /home/linuxbrew/.linuxbrew/bin/
fish中的$PATH是一个列表,所以需要设置为多个参数,而不是一个字符串。在 fish 3.0(在 Ubuntu 18.04 之后发布)中,它被调整为自动拆分为“:”,但即使在那种情况下你也必须引用它,否则它会产生令人惊讶的结果。
环境
- OS:Windows Linux、Ubuntu 18.04 的子系统
- shell: 鱼
- 工具包管理:brew (homebrew/linuxbrew)
- fish 已经安装
- fish 已设置为默认 shell
- brew 已安装
- brew 环境设置为 official site
- php 已经安装了 brew
- composer 已经安装了 brew
- fish 已经安装
目标
我想将 PHP 与 brew 安装但失败的 "php" 命令一起使用。
我做了什么
我尝试自己设置环境
- 在当前 shell 中成功,但在重新启动时失败 shell
# in bash I tried these PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/ export PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/ # in fish bash I tried these set PATH $PATH /home/linuxbrew/.linuxbrew/bin/ <-update: updated export PATH $PATH:/home/linuxbrew/.linuxbrew/bin/ <-update: wrong
- 在 bash 中成功但在 fish 中失败
- 在用户目录下的.bashrc文件中添加上面的命令 (.bashrc 似乎只有 运行 当 bash)
- 以下应该成功但失败
sudo -H vi /etc/environment
- 在里面加
/home/linuxbrew/.linuxbrew/bin/
如果你想在启动 fish 时向 运行 命令,你需要将它们放入 ~/.config/fish/ 中名为 "config.fish" 的文件中。 bashrc,顾名思义,就是特定于bash.
另外,"export" 用于标记 "exporting" 的变量,意思是将其传递给 shell 启动的外部命令。 $PATH 通常继承自 shell 开头的任何内容,这意味着它无论如何都会被导出,所以你的 export
行是无用的。
您的 fish 命令也需要稍作调整:
set PATH $PATH /home/linuxbrew/.linuxbrew/bin/
fish中的$PATH是一个列表,所以需要设置为多个参数,而不是一个字符串。在 fish 3.0(在 Ubuntu 18.04 之后发布)中,它被调整为自动拆分为“:”,但即使在那种情况下你也必须引用它,否则它会产生令人惊讶的结果。