iTerm/zsh 未读取 .bashrc 或 .bash_profile

Dam*_*mon 61 terminal bash zsh bashrc macos

~/.bash_profile 我有:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)

~/.bashrc我有一些别名

当我加载一个新的 iTerm 窗口时,我的别名不起作用。如果我来源~/.bashrc他们工作。如果我来源~.bash_profile他们工作。

其中至少一个不应该是自动采购的吗?

什么可能导致它无法正常工作?

pro*_*tdp 81

答案很简单,在问题中几乎显而易见。原因如下:

外壳zsh不是bash,它是一个不同的外壳。zsh不会使用为bash:.bashrc.bash_profile. 这两个文件是bash. zsh有自己的启动配置文件。

您可以在zsh 介绍页面上找到有关它们的更多信息:

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

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
Run Code Online (Sandbox Code Playgroud)

您已经提到您的别名不起作用,要解决此问题,请在此处应用您的别名,如下所示:

~/.zshrc

alias sz='source ~/.zshrc'     # Easily source your ~/.zshrc file.
alias ls='pwd; ls --color'     # Alias 'ls' to: pwd + ls + color.
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。请注意,`ls --color` 在 OSX 10.10 上的 `bash` 和 `zsh` 中都给了我`illegal option`,但在 Linux 上没有——我会研究它。干杯。 (2认同)
  • “……zsh 有自己的启动配置文件。” 这大概是他要的吧?只需说“伙计,它是 ~/.zshrc”。 (2认同)

Alo*_*ain 35

如果您正在使用 zsh 然后强制源 .bash_profile

~/.zshrc下面一行添加

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

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

  • 我想这个答案会在 macOS 10.5 Catalina 发布后有所帮助,以便将 bash_profile 从 bash 移植到 zsh。 (3认同)
  • @JamesKoss 假设第二天您安装了一个程序,该程序会修改您的 .bashrc 以循环添加一堆其他别名。糟糕... zsh 和 bash 使用不同的循环索引,现在您的 .zshrc 已损坏。 (3认同)