bash_profile和bashrc区别

【.bash_profile 与 .bashrc 的区别】
.bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.

【login shell 与 non-login shell 的区别】
1、当你直接在机器login界面登陆、使用ssh登陆或者su切换用户登陆时,.bash_profile 会被调用来初始化shell环境
Note:.bash_profile文件默认调用.bashrc文件
.bash_profile中有如下内容
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi 
2、当你不登陆系统而使用ssh直接在远端执行命令,.bashrc 会被调用
3、当你已经登陆系统后,每打开一个新的Terminal时,.bashrc 都会被再次调用。

测试准备工作
hclient2主机hadoop用户家目录下执行
[[email protected] ~]$ echo "invoke hclient2:~/.bashrc">>.bashrc
[[email protected] ~]$ echo "invoke hclient2:~/.bash_profile">>.bash_profile

Login Shell
1、窗口登陆
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel 2.6.32-279.el6.x86_64 on an x86_64

hclient2 login: hadoop
Password:
Last login: Mon Feb 25 23:03:45 on tty1
invoke hclient2:~/.bashrc
invoke hclient2:~/.bash_profile

[[email protected] ~]$
2、SSH 登陆
[[email protected] ~]$ ssh hclient2
Last login: Mon Feb 25 22:42:19 2013 from hserver
invoke hclient2:~/.bashrc
invoke hclient2:~/.bash_profile
[[email protected] ~]$
3、su 登陆
[[email protected] ~]# su - hadoop
invoke hclient2:~/.bashrc
invoke hclient2:~/.bash_profile

Non-login Shell:
Note: ssh ...[[email protected]] hostname [command]
If command is specified, it is executed on the remote host instead of a login shell.
[[email protected] ~]$ ssh hclient2 hostname
invoke hclient2:~/.bashrc
hclient2

【故】若要配置环境变量之类,最保险是写在 .bashrc 文件中。因为不管是登陆还是不登陆,该文件总会被调用!

时间: 2024-11-07 18:44:52

bash_profile和bashrc区别的相关文章

/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc区别

/etc/profile./etc/bashrc.~/.bash_profile.~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么? /etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的. /etc/bashrc:  这个文件设置系统bash shell相关的东西,对系统内所有用户生效.只要用户运行bash命令,那么这里面的东西就在起作用. ~/.bash_profile: 用来设置一些环境变量,功能和/etc/pro

linux下 bash_profile和bashrc区别

[.bash_profile 与 .bashrc 的区别].bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells. [login shell 与 non-login shell 的区别]1.当你直接在机器login界面登陆.使用ssh登陆或者su切换用户登陆时,.bash_profile 会被调用来初始化shell环境Note:.bash_prof

关于“.bash_profile”和“.bashrc”区别的总结

0.前言 项目环境部署是自己的薄弱项,一些简单的服务,照着搜索来的步骤能凑合部署成功,但并不明白其中的原理,偶尔遇到一些ERR,就抓瞎,无从下手.项目环境部署,需要一些基础服务,如java环境,tomcat环境.mysql等等:服务部署成功后,还需要给其配置环境变量:要配置环境变量,就要用到什么bashrc或bash_profile文件,可是这文件有啥区别,一直不明白,今天看到这篇文章,结合自己实践,分享给各位. 1.bash的startup文件 Linux shell是用户与Linux系统进行

profile bashrc bash_profile之间的区别和联系

转载:http://talentluke.iteye.com/blog/1541702 执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout 关于各个文件的作用域,在网上找到了以下说明: (1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/pr

.bash_profile和.bashrc的区别(如何设置生效)

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.~/.bashrc:该文件包

Linux——.bash_profile和.bashrc的区别(如何设置生效)

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.~/.bashrc:该文件包

系统变量写在.bash_profile和.bashrc的区别

今天配置一个代理,正儿八经的把我搞蒙了,不就是export http_porxy=xxx.xxx.xxx.xxx:xxxx 然后重启服务service network restart ,依然连接不了外网! 前提:我是通过ssh连接过去的 1>当我把环境变量写到.bashrc,重启服务,不生效 2>当我把环境变量写到.bash_profile的时候,重启服务,生效 3>当我把环境变量写到.bashrc,if判断之前的时候 如: # .bashrc export http_proxy=192

.bash_profile和.bashrc的区别,ubuntu下为.profile,没有.bash_profile

.bash_profile 开机自动加载,比如java的环境变量放在里面 .bashrc打开shell或终端就会加载该文件,比如起的别名或快捷方式放里面.alias设置就在其中. 还有一个.profile设置全局变量. 以上设置完之后,均可使用source命令立即生效: source .bash_profile source .bashrc

linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的

  /etc/profile./etc/bashrc.~/.bash_profile.~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么? /etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的./etc/bashrc:  这个文件设置系统bash shell相关的东西,对系统内所有用户生效.只要用户运行bash命令,那么这里面的东西就在起作用.~/.bash_profile: 用来设置一些环境变量,功能和/etc/pro