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
  • 16655

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

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

/etc/bashrc和/etc/profile傻傻分不清楚?

在一般的 linux 或者 unix 系统中, 都可以通过编辑 bashrc 和 profile来设置用户的工作环境, 很多文章对于 profile 和 bashrc 也都有使用, 但究竟每个文件都有...

source配置文件不生效

问题背景:       升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME,没有问题。      初步推断是没有source,sourec .bashrc 之后...

Mac OS X下修改.bash_profile之后source .bash_profile出现“command not found”问题解决

1. 问题描述添加pgsql的环境变量之后,又删除了关于mysql环境,还有一些设计MySQL的软连接,目录,文件,反正就是图个痛快,喜新厌旧,踢掉MySQL. 还有一些看起来不像是系统文件,像是要卸...
  • Kohang
  • Kohang
  • 2017年05月14日 18:54
  • 3229

oracle归档日志的自动清理

1、rman清理调用脚本 #!/bin/bash su - oracle -c  "/backup/oracle/scripts/rmanclear.sh dbsid " > /dev/null ...
  • yincg
  • yincg
  • 2013年10月15日 15:48
  • 4161

用pattern进行自然语言处理

http://www.clips.ua.ac.be/pattern pattern是一个网络数据挖掘的一个工具,分为几个模块 pattern.web 是用来在网络抓取数据的, pattern....

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

/etc/profile、~/.bash_profile等几个文件的执行过程 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profi...

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

bash的startup文件Linux shell是用户与Linux系统进行交互的媒介,而bash作为目前Linux系统中最常用的shell,它支持的startup文件也并不单一,甚至容易让人感到费解...
  • sch0120
  • sch0120
  • 2017年04月20日 11:12
  • 573
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:source ~/.bashrc ~/.bash_profile
举报原因:
原因补充:

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