当我在 Ubuntu 12.04 中打开新的终端窗口时,代码.bashrc
不会执行。我在创建文件时注意到了这一点.bash_aliases
。当我打开新的终端时,别名没有显示出来。但是当我输入时,source .bashrc
别名确实出现了。
.bashrc
每次我打开新的终端窗口时都应该运行,对吗?
我怎样才能实现这一点?
答案1
它不一定会运行;在标准 .bashrc 的顶部有这样的注释:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
我相信有一个选项可以运行 bash 终端作为登录 shell 或不作为登录 shell。在 Ubuntu 中,gnome-terminal 通常不作为登录 shell 运行,因此应该直接运行 .bashrc。
对于登录 shell(如虚拟终端),通常~/.profile
会运行该文件,除非您有~/.bash_profile
或~/.bash_login
,但它们默认不存在。默认情况下,Ubuntu 仅使用 .profile。
标准~/.profile
中有这样的内容:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
如果可用,这将运行 .bashrc - 假设您的环境中存在 $BASH_VERSION。您可以通过输入命令来检查这一点echo $BASH_VERSION
,它应该显示一些有关版本号的信息 - 它不应该是空白的。
答案2
在我的例子中,.bashrc
加载程序行缺失了.bash_profile
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
我手动添加了它并且它与我的新登录一起使用
答案3
.bash_profile
保存 bash shell 的配置。当您打开终端时,它首先从 读取并执行命令~/.bash_profile
。因此,您可以添加以下内容.bash_profile
以根据 bashrc 设置 shell。
. ~/.bashrc
答案4
如果$BASH_VERSION
未设置,请尝试使用chsh
命令将您的 shell 设置为/bin/bash
。
我在使用 12.04 LTS 时遇到了类似的问题,结果是新用户帐户的默认 shell 设置为/bin/sh
,这是导致问题的原因。