iTerm/zsh 无法读取 .bashrc 或 .bash_profile

iTerm/zsh 无法读取 .bashrc 或 .bash_profile

~/.bash_profile 有:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

~/.bashrc有一些别名

当我加载新的 iTerm 窗口时,我的别名不起作用。如果我使用 source 命令,~/.bashrc它们会起作用。如果我使用 source 命令,~.bash_profile它们会起作用。

难道这些中至少有一个不是应该自动获取的吗?

什么原因可能导致它不能正常工作?

答案1

答案很简单,几乎从问题中就能看出来。原因如下:

该shellzsh不是bash,它是一个不同的shell。zsh不会使用为或构建的默认文件bash。这两个文件是 的启动配置文件。有它自己的启动配置文件。.bashrc.bash_profilebashzsh

您可以在此处了解有关它们的更多信息zsh 介绍页面

zsh 将从以下五个启动文件中读取命令:

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout

您曾提到您的别名不起作用,为了解决这个问题,请像这样在这里应用您的别名:

~/.zshrc

alias sz='source ~/.zshrc'     # Easily source your ~/.zshrc file.
alias ls='pwd; ls --color'     # Alias 'ls' to: pwd + ls + color.

答案2

如果你使用 zsh,则强制源.bash_profile

添加~/.zshrc下面的行

source ~/.bash_profile

PS-我还没有调查这是否会导致任何问题。

答案3

复制以下行的〜/ .bash_profile~/.zshrc

cat ~/.bash_profile >> ~/.zshrc

并打开一个新的终端选项卡/窗口或使用source ~/.zshrc

相关内容