.bash_profile vs .bashrc

总是搞不懂这些文件的租用到底是什么。今天看到一片老外的文章,记录一下:
http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html

According to the bash man page, .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.

那什么又是loginshell 和non login shell呢?
loginshell 指的是你登入一个shell的时候,无论是坐在电脑前输入用户名密码或从远程用ssh登陆。bash_profile 会在每次登入时被执行。

而non login shell与登入与否无关,只要你打开一个terminal窗口,或者从命令行里用 /bin/bash去打开一个新的命令行窗口,都会执行。

例外时mac OSX里只用bash_profile,并且这个bash_profile会在每次打开窗口时都执行。
这篇文章写的很清晰,下面的评论还有相关讨论,两个文件之间能否互相引用之类的。

这些文件可以用来更新我们的环境变量如PATH等,但也可以给我们节省很多敲键盘的时间。比如每次连接远程服务器时就要敲ssh之类的一大串,这个就可以当作一个alias写入bash_profile

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。