在安装RVM时,会收到以下消息:
* WARNING: You have '~/.profile' file, you might want to load it,
to do that add the following line to '/home/dotancohen/.bash_profile':
source ~/.profile我很担心,因为我的~/..profile文件包含xmodmap ~/.Xmodmap,显然我不想每次打开新的shell时运行它(交换CapsLock和ESC键)。
.bash_profile中采购.profile?发布于 2016-01-07 01:08:59
.profile和.bash_profile在执行它们的时间上是相同的:它们是在登录时执行的。区别在于,只有bash运行.bash_profile;Bourne风格的shell(破折号、ksh等)运行.profile。如果.profile不存在,Bash本身就运行.bash_profile。
即使您使用bash作为登录shell,.profile通常也是在以图形模式登录时执行的,- many发行版设置X会话启动脚本以在sh和load .profile下运行。
因此,建议使用.profile而不是.bash_profile来做诸如定义环境变量之类的事情。除非您绝对需要bash特定的特性,否则只需将所有内容都放在.profile中即可。但是,即使您这样做了,也有理由保留一个.bash_profile,即当bash加载它时,它不会加载.bashrc,即使它是交互式的。因此,对于大多数人来说,~/.bash_profile应该由以下两行组成:
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac您不应该从xmodmap运行.profile。这不是在打开一个新shell时执行的,但是它是执行的,例如,当您使用X11转发远程登录时。不幸的是,当您以图形模式登录时,没有加载标准文件。Debian加载~/.xsessionrc (我认为这适用于所有显示管理器,除了Gdm,后者加载~/.xprofile );其他发行版有不同的设置。如果您需要跨发行版可移植性,那么在桌面环境启动时配置您的桌面环境以执行xmodmap可能更容易。如果您所做的只是交换CapsLock和Ctrl,这可以通过大多数现代桌面环境提供接口的XKB设置来完成。
发布于 2016-01-06 16:07:37
记住bash(1)是唯一读取.bash_profile的shell,其他Bourne导数只读取.profile。如果有时使用另一个shell,则需要保留.profile。
https://unix.stackexchange.com/questions/253634
复制相似问题