Answers:
Bash将根据其调用方式来提供EITHER .bash_profile或.bashrc。如果它是登录外壳,则Bash会按此顺序查找〜/ .bash_profile,〜/ .bash_login或〜/ .profile,并提供找到的第一个(也只有那个)。如果它不是登录外壳,而是交互式的(像大多数终端会话一样),则Bash将提供〜/ .bashrc的源代码。
iTerm可能正在寻找〜/ .bashrc。如果配置为以登录外壳程序启动,它将查找〜/ .bash_profile。几乎可以肯定的是,配置文件中存在错误,而不是外壳程序没有提供它。
我会在每个文件的开头放置一行。在〜/ .bash_profile的顶部:
export BASH_CONF="bash_profile"
在〜/ .bashrc的顶部:
export BASH_CONF="bashrc"
然后,打开一个新的iTerm并键入
$ echo $BASH_CONF
那应该确认文件是源文件,您可以查看文件的语法。
在iTerm2中,这些解决方案都不适合我。我可以通过添加命令来正确读取我的.bashrc文件
source ~/.bashrc
到我的iTerm配置文件的“设置/常规”中的“ 在开始时发送文本:”字段中。
~/.bashrc
。编辑它。
在我的10.6机器上~/.profile
是来源。因此,一个source .bashrc
入口~/.profile
应该可以完成这项工作。
轻松修复。
1.打开~/.zshrc
文件
2.在文件末尾添加以下行。
source ~/.bash_profile
将您的别名定义放在bash配置文件中,您必须创建该文件,但是它将自动获得。我创建了一个单独的文件,命名为alias.configuration,并在.bash_profile中提供了该文件,仅是因为我定义了另一个用户并希望设置相同的别名。
.bashrc
都不.bash_profile
是来源。
在10.10和iTerm2 2.0上,自定义配置文件
我将几个解决方案结合在一起,以达到预期的效果。
.bash_profile
源并在zsh上运行。
Preferences -> Profiles -> General
。
在“命令”下选择“命令”。
并在文本框中添加/bin/bash --login
。
然后在.bash_profile中添加行
/bin/zsh --login
而已。
bash
一直跑步zsh
,那不是任何人所期望的。
source ~/.bash_profile
手动运行。@Scott完成上述操作后,按要求的方式安装了zsh。
zsh
可能是您想要的,但此问题不是必需的或不需要的,此问题被标记为[bash],并且没有提及任何内容zsh
。(2)如果您在.bashrc
和和或中定义了别名和shell函数并设置了变量(不导出它们).bash_profile
,它们是否可以在zsh
shell中使用?
~/.bash_profile
先由bash调用,这使您在中的指令短路了~/.bashrc
。如果恶意程序~/.bash_profile
在以前不存在该文件且您已将所有bash命令放入的情况下向您添加了一些指令,则可能会意外发生此问题~/.bashrc
。解决方案是删除〜/ .bash_profile,或者让〜/ .bash_profile源〜/ .bashrc。这可以通过在source ~/.bashrc
您的末尾添加命令:~/.bash_profile
并重新启动终端来执行。