为什么我每次都需要source bash_profile

问题描述 投票:0回答:8

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

source ~/.bash_profile

否则它不会识别该命令

hadoop

这是为什么?

我使用的是 OSX 10.8

hadoop bash
8个回答
100
投票

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

  1. 在命令行运行
    ps -p $$
    检查您是否确实使用了 bash shell。
  2. 意识到您正在 zsh 中,这意味着您应该在
    .zshrc
    中编辑您的个人资料。
  3. 将有问题的行从
    .bash_profile
    复制到
    .zshrc
    ,或者
  4. 修改您的
    .zshrc
    以直接获取您的
    .bash_profile

更新:执行 @TC1 在注释中提到的操作,并将特定于 shell 的代码保留在每个 shell 自己的配置文件中,并且从这些配置文件中仅获取与 shell 无关的源代码。


25
投票

在 Mac Catalina 上,我只需在终端上打开“首选项”,然后将“shell 打开方式”从“默认”更改为“命令(完整路径)”,默认路径是“/bin/zsh”。

touch ~/.zshrc
,如果该文件尚不存在,请将“.bash_profile”中的内容复制/粘贴到“.zshrc”文件中。

为了详细说明,在终端运行的情况下,我从 Mac 导航栏上的终端菜单中打开了“设置”。在“常规”选项卡上,查找“Shells open with”,选择“命令(完整路径)”,然后输入

/bin/zsh


22
投票

bash_profile.sh
适用于
bash
外壳。 如果您的默认 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 机器

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

要将活动 shell 更改为其他 shell,请使用

chsh -s /bin/bash
。 然后
echo $SHELL
验证外壳是否已更改。


13
投票

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

勾选在 shell 内运行。

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


1
投票

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

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

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

所以我转到该文件 /etc/profile 并在该文件中添加“source ~/.bashrc”。然后它就可以工作了,因为每次打开终端时,它都会运行 /etc/profile 文件中的命令。


0
投票

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

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


0
投票

转到“首选项/配置文件”,然后在右侧窗口中查找并找到“shell”。

如果您的“启动运行命令”尚未打开。单击该框将其打开,然后在命令部分中键入:

(如果您制作了

.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”

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


0
投票

问题描述: 每次我打开一个新的终端窗口时,Flutter 命令都无法识别,直到我手动运行

source ~/.bash_profile

我面临着必须在每个新的终端窗口启动时手动运行 source ~/.bash_profile 才能在 macOS 上设置 Flutter 环境的问题,这里有一个有用的解决方案:

  1. 打开终端。
  2. 导航至“首选项”。
  3. 在“个人资料”选项卡下,选择您喜欢的个人资料(通常标记为 “默认”或您选择的配置文件)。
  4. 在“Shell”选项卡中,选中“运行命令”框。
  5. 输入命令
    source ~/.bash_profile

© www.soinside.com 2019 - 2024. All rights reserved.