刚刚升级到 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
因此无法假设其中有什么或没有什么。