为什么我每次都需要获取bash_profile

8 hadoop .bash-profile

我已经安装了Hadoop,每次我想运行它时,首先我必须这样做:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

或者它不会识别命令 hadoop

这是为什么?

我在OSX 10.8上

Phi*_*ret 19

现在我们已经缩小了问题范围:

  1. ps -p $$在命令行运行以确定您实际上是使用bash shell.
  2. 意识到你在zsh,这意味着你应该在编辑你的个人资料.zshrc.
  3. 将违规行复制.bash_profile.zsh,或
  4. 修改你.zshrc的直接来源.bash_profile.

更新:在评论中提及@ TC1并在每个shell自己的配置文件中保留特定于shell的代码,并从这些配置文件中仅保留源shell无关的代码.

  • 嗯,**不**从 Z shell 中获取 **Bash 特定**配置文件的一个明显原因是它可能包含 **Bash 特定**配置......复制行或将它们外部化到一些`PATH` 安装文件和从两者中采购是合适的。 (2认同)

Bre*_*ent 15

在 Mac Catalina 上,我只需要在终端上打开“首选项”并将“shell 打开方式”从“默认”更改为“命令(完整路径)”,默认路径是“/bin/zsh”。touch ~/.zshrc,如果该文件尚不存在,请将您的内容从“.bash_profile”复制/粘贴到“.zshrc”文件中。


小智 7

终端 -> 首选项 -> 配置文件 -> Shell -> 运行命令:source ~/.bash_profile

勾选在 shell 中运行。

完成所有这些后,只需注销并检查天气一切正常与否


div*_*ine 6

bash_profile.sh适用于bash外壳。如果您的默认外壳不是,bash并且如果您的默认外壳是其他外壳,例如,zsh那么您必须手动加载.bash_profileusingsource ~/.bash_profile .

您可以随时将默认 shell 更改为 shell,bash以便.bash_profile自动加载文件。

为了自动加载.bash_profile,您可以bash使用以下命令更新您的默认外壳程序chsh -s /bin/bash

cat /etc/shells 将列出机器中可用的默认 shell

在此处输入图片说明

echo $SHELL 将在您的机器中显示当前活动的外壳

在此处输入图片说明

要将活动 shell 更改为不同的 shell,请使用chsh -s /bin/bash. 然后echo $SHELL验证外壳是否已更改。