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

时间:2013-03-31 19:22:10

标签: hadoop .bash-profile

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

source ~/.bash_profile

或它无法识别命令hadoop

为什么?

我在OSX 10.8

7 个答案:

答案 0 :(得分:16)

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

  1. 在命令行运行ps -p $$以确定您实际上是在使用bash shell。
  2. 意识到您在zsh中,这意味着您应该在.zshrc中修改个人资料。
  3. 将违规行从.bash_profile复制到.zsh,或者
  4. 修改您的.zshrc以直接找到您的.bash_profile
  5. 更新:执行@ TC1在评论中提到的内容,并将特定于shell的代码保存在每个shell自己的配置文件中,并从这些配置文件中保留源shell无关的代码。

答案 1 :(得分:9)

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

答案 2 :(得分:4)

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

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

为了自动加载 .bash_profile,您可以使用命令 bash

将默认 shell 更新为 chsh -s /bin/bash <块引用>

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

enter image description here

<块引用>

echo $SHELL 将显示您机器中当前活动的 shell

enter image description here

<块引用>

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

答案 3 :(得分:1)

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

在shell内运行时打勾。

完成所有这些操作后,只需注销并检查天气,一切正常即可

答案 4 :(得分:0)

我尝试了批准的答案。更改.zshrc文件适用于我的一台机器。但对于另一个,当我运行ps -p $$时,它在命令下是-sh。我改变了bash和zsh文件,这次它们都不适用于我。

所以我找到了这个 https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html

它提到了 &#34;当Bash被调用为交互式登录shell时,或者作为具有--login选项的非交互式shell时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。 &#34;

所以我去了那个文件/ etc / profile并添加&#34; source~ / .bashrc&#34;在那个文件中。然后它工作,因为每次打开终端时,它都会在/ etc / profile文件中运行命令。

答案 5 :(得分:0)

不确定这是否是最佳解决方案,但它是否有效。

sudo nano /etc/bashrc并进行更改,重新启动终端,最后用命令记住了。尝试~/.bash_profile~/.bashrc没有成功,只是没有采购它。

答案 6 :(得分:0)

转到“首选项/个人资料,然后在右侧窗口中查找并找到”外壳”。

如果您的“启动运行命令”没有打开,则可能是这样。单击该框将其打开,然后在命令部分中键入:

(如果您制作了.zsh文件)

source .zsh ; clear 

(如果您创建了.bash_profile

source .bash_profile ; clear

这样做; clear

将您的终端清除到一个新页面,这样您就看不到终端显示:

“Last login: etc 
User@user-Mac ~ % source .zsh

如果按照我说的那样键入命令,您应该得到以下提示:

User@user-Mac ~ % 

这样一来,您将获得清晰的页面,没有多余的内容。同样要确保您的.zsh.bash_profile别名可以正常工作,请键入以下命令以查看您的自定义别名的列表:

Alias 

我想做的一个别名是

alias LL=“ls -la”

这将显示您所在的树或目录以及隐藏的文件。

如果这对您有帮助或您有任何疑问,请告诉我!