总是搞不懂这些文件的租用到底是什么。今天看到一片老外的文章,记录一下:
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
网友评论