为什么每次打开终端以使别名正常工作时都必须获取.bashrc?

时间:2018-08-16 12:12:35

标签: bash shell

Git运行正常。我已经在Git中创建了一个别名,但是问题是当我尝试重新打开终端时,则每次在终端中都需要运行. ~/.bashrc

重新打开终端时,每次不需要提供源的最佳方法是什么?

我做了什么? 我正在尝试在此文件中添加source文件中的.bashrc,但这是一个只读文件。我无法在此配置文件中添加source文件的.bashrc

open /etc/profile

还添加了写入配置文件的权限,但仍然无法链接源文件。

sudo chmod u+w /etc/profile

个人资料:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
   eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
   [ -r /etc/bashrc ] && . /etc/bashrc
fi

4 个答案:

答案 0 :(得分:7)

您的终端仿真器似乎正在启动bash作为登录shell。

在这种情况下,它将读取/etc/profile进行配置以及以下文件的 1个(如果存在)(按重要性顺序列出):

  • 〜/ .bash_profile
  • 〜/ .bash_login
  • 〜/ .profile

因此它将忽略您的.bashrc文件。针对您的情况的正确解决方案是将终端仿真器配置为以交互方式运行bash且不登录,或者将[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"添加到您的~/.bash_profile

Here是指向文档的链接,该文档根据您正在运行的shell的类型加载了哪些文件

答案 1 :(得分:2)

按照@Aserre的回答,我已按照此步骤解决了该问题

典型的OS安装不会为您创建.bash_profile。当您想从命令行运行函数时,这是必须具备的。

  1. 启动终端
  2. 键入cd ~/进入您的主文件夹
  3. 键入touch .bash_profile来创建新文件。
  4. 使用您喜欢的编辑器编辑.bash_profile(或者您可以键入open -e .bash_profile在TextEdit中打开它。
  5. [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"保存并关闭

重新启动终端,它应该可以工作

答案 2 :(得分:-1)

嗯,$ echo 'exec bash' >> $HOME/.bash_profile对我来说很好-$HOME/.bash_profile在登录shell中按预期执行,然后,$HOME/.bashrc在新shell中按预期执行(如果存在)。 / p>

答案 3 :(得分:-1)

您应该在 source .profile 文件中写入此行 .zshrc。这是因为默认 shell 是 zsh。如果您不想执行此解决方案,则可以通过键入以下命令 chsh -s /bin/bash 来更改默认 shell,然后重新启动您的机器或虚拟机。那么就不需要源码了。我希望这会有所帮助:) 小心