source ~/.bashrc ~/.bash_profile

原创 2015年11月18日 11:23:40

1.source

source的作用是用来执行一个脚本
source a.sh 和直接执行 ./a.sh的区别:
调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同它就是在本shell中执行的,所以可以看到结果。
比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。

环境变量执行过程

登录linux时,首先启动

/etc/profile

然后启动用户目录下的

~/.bash_profile, ~/.bash_login, 或 ~/.profile

执行的顺序为:

~/.bash_profile, ~/.bash_login, ~/.profile

如果~/.bash_profile 存在,一般还会执行 ~/.bashrc文件
因为~/.bash_profile中一般会有下面的代码:

if [ -f ~/.bashrc ] ; then
   ../bashrc
fi

~/.bashrc中,一般还会有以下代码:

if [ -f /etc/bashrc ] ; then
   ./etc/bashrc
fi

所以,~/.bashrc会调用 /etc/bashrc文件
退出shell时,还会执行 ~/.bash_logout文件。
执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

3.配置文件说明

  • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
  • /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
  • ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
  • ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
  • ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。
  • ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

4. /etc/environment

1)先将export LANG=zh_CN加入/etc/profile,退出系统重新登录,登录提示显示英文。
2)先将/etc/profile 中的export LANG=zh_CN 删除将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。

source, ~/.bashrc, ~/.bash_profile详解

source命令的作用就是用来执行一个脚本,那么: source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本...
  • xyqzki
  • xyqzki
  • 2014年12月09日 23:04
  • 18906

每次修改.bashrc后,使用source ~/.bashrc

每次修改.bashrc后,使用source ~/.bashrc 是修改立即生效
  • zjtchow
  • zjtchow
  • 2012年07月18日 12:07
  • 9266

~/.bashrc什么意思

~/是进入当前用户的主目录。比如我用的用户名是aaa 那么命令 cd ~/ 就进入了/home/aaa 目录。 .bashrc 是进入.bashrc文件夹,就是用户目录下的名字是.bashrc...
  • qing101hua
  • qing101hua
  • 2016年11月08日 19:38
  • 3241

Mac使用zsh后多次执行`source .bash_profile`解决方案

Mac自带的终端太单调,了色大师推荐zsh,安装后,界面很炫,而且还有多种主题,如果使用Git的话,会显示当前分支。 整好之后发现配置的环境变量(adb)不起作用了,执行source .bash_p...
  • u012664191
  • u012664191
  • 2015年08月20日 19:47
  • 6304

linux下修改.bash_profile立即生效的三种方法

1 . .bash_profile 2 source .bash_profile 3 exec bash --login
  • kai27ks
  • kai27ks
  • 2012年04月11日 14:48
  • 49251

Shell[一]:zsh 每次打开Terminal都需要source bash_profile问题

zsh 每次打开Terminal都需要source .bash_profile
  • pengyajie
  • pengyajie
  • 2017年07月12日 07:17
  • 1024

Linux每次开机都要source profile的解决办法

把export语句写在~/.bashrc文件里,或者在该文件里写上source /etc/profile 指令:gedit .bashrc “~”指当前账号的根目录 #是注释...
  • Cls0916
  • Cls0916
  • 2017年07月26日 10:17
  • 1996

.bashrc 文件写错了,没注意到直接source .bashrc ,导致所有的bash命令不能用,该如何拯救

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
  • YMD8005
  • YMD8005
  • 2017年03月27日 11:01
  • 1015

每次登录都要执行source .basharc,否则ll等命令失效

问题: 有时候修改了.bashrc文件后,每次登录都得重新执行source .bashrc才行。 或者用其他软件类似mobaXterm通过ssh终端连接时,没有ll等命令,也要执行source .ba...
  • github_39237685
  • github_39237685
  • 2017年06月20日 10:18
  • 1186

Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell

【环境配置的原因】 在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK。如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告“找不到文件”类似的错误。...
  • w1014074794
  • w1014074794
  • 2016年03月22日 09:51
  • 1286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:source ~/.bashrc ~/.bash_profile
举报原因:
原因补充:

(最多只允许输入30个字)