在 .bash_local 中,应该把自定义的 .bashrc 内容放在哪里?

在 .bash_local 中,应该把自定义的 .bashrc 内容放在哪里?

刚刚升级到 11.10,这让我很想知道现在放置定制位的首选方式是什么.bashrc

例如,我有一些别名、一些环境变量和一个 python virtualenvwrapper 脚本,我想将它们作为我的一部分运行.bashrc。我已在 Dropbox 中存储的跨机器脚本中同步这些内容。

我过去把它们放在 的底部.bashrc,然后我把它们放在一个名为的文件中.bash_profile,它来源于,但现在我看到.bashrc不再有来源.bashrc_local(它曾经或我是否自定义过这个?),我注意到它来源于.bash_aliases.bash_completion

因此我决定将这些东西放入其中,因为目前还不存在,.bash_aliases将我的定制放在与默认文件不同的单独文件中似乎是最干净的。

我被吓到了,.profile因为里面已经有东西了。

我意识到我正在做的事情是有效的,但是当这些东西不是全部的别名时,将它们放在名为别名的文件中似乎有点违反直觉。

这是正确的地方吗?

答案1

我怀疑.bashrc_local这是你的发明。我也有类似的东西,在~/.bashrc

if [[ -r ~/.bashrc_local ]]; then
    . ~/.bashrc_local
fi

但是我在这个文件中只放入了特定于给定机器的定制,并让所有机器共有的定制~/.bashrc以某种方式同步。

答案2

启动脚本有点像迷宫,不是吗?

我相信它基本上可以解决.profile登录 shell 执行的问题——即,如果您远程登录,您将获得什么——并.bashrc用于非登录 shell,假设您使用的是 bash。.profile来源.bashrc,所以一般来说,你会把你经常使用的东西放在里面.bashrc,比如默认路径和其他环境设置的补充。我相信 *nix 系统和 bash 中的一般惯例是在中进行大部分自定义.bashrc;我还没有.bash_aliases在 Red Hat 系列 Linux 发行版或我使用过的 Unix 系统上看到过。我不记得曾经见过.bash_local

该方式.bash_aliases的来源似乎是一个很好的模型,因此在另一个文件中进行自定义可能会更整洁,将其添加到末尾.bashrc

# Local customized path and environment settings, etc.
if [ -f ~/.bash_local ]; then
    . ~/.bash_local
fi

查看/etc/skel(其中复制了到新用户主目录的默认用户脚本)以及/etc/profile/etc/bash.bashrc(其中是系统范围的默认值)会很有帮助。

我认为所有这一切的潜在假设是,用户可以随心所欲地处理、等的个人副本.profile.bashrc因此无法假设其中有什么或没有什么。

相关内容