【问题标题】:Why must I source .bashrc every time I open terminal for aliases to work?为什么每次打开终端以使别名工作时都必须获取 .bashrc?
【发布时间】:2022-04-11 22:28:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你不是在运行另一个 shell(Zsh、Fish、Dash 等)而不是 Bash 吗?
  • 不,我没有运行任何其他 shell
  • A) 不要让 /etc/profile 一般可写。它归根用户所有,您的本地用户不应该拥有对它的写入权限 B)您如何打开终端?
  • 您使用的是哪个操作系统,哪个终端以及如何启动它。
  • @KarolDowbecki Seirra OS Mac

标签: bash shell


【解决方案1】:

您的终端模拟器似乎正在将 bash 作为登录 shell 启动。

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

  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

它会因此忽略您的.bashrc 文件。针对您的情况的正确解决方法是将终端仿真器配置为以交互方式和非登录方式运行 bash,或者将以下行添加到您的 ~/.bash_profile

[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"

【讨论】:

  • 我要补充一点,使用 Debian 安装,新用户的主目录预填充了 ~/.bash_profile 来源 ~/.bashrc,所以是的,Aserre 提出的修复确实是它应该做的工作。
  • 我做了什么我刚刚在我之前试图找到的主目录中创建了 bash_profile 但它不在我的主根文件夹中所以我创建了一个文件并按照你的回答然后它对我有用..?
【解决方案2】:

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

典型的操作系统安装不会为您创建 .bash_profile。当您想从命令行运行函数时,这是必不可少的。

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

重启终端,应该可以了

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-19
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2016-03-01
      • 2015-11-14
      • 2015-01-02
      相关资源
      最近更新 更多