linux etc下的profile和/etc/bashrc

/etc/profile的设置方法对所有登录的用户都有效。
~/.bashrc只对当前用户有效。

上面两个都是配置文件,开机后,系统会先读取/etc/profile,再读~/.bashrc。
不同的用户~/.bashrc文件可以有不同的设置,而/etc/profile则是共用一个,只有root才能修改。
~/.bashrc对/etc/profile有追加覆盖的效果。

Shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器。

bash 是一个为GNU项目编写的Unix shell,也就是linux用的shell。

就是说,bash是一种shell。

①/etc/profile: 
该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行。也就是说这个文件对每个shell都有效,用于获取系统的环境信息。

<code class="hljs vhdl has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"># /etc/profile

# System wide environment <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> startup programs, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> login setup
# Functions <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> aliases go <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> /etc/bashrc

# It<span class="hljs-attribute" style="box-sizing: border-box;">'s</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">NOT</span> a good idea <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> change this <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">file</span> unless you know what you
# are doing. It<span class="hljs-attribute" style="box-sizing: border-box;">'s</span> much better <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> create a custom.sh shell script <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span>
# /etc/profile.d/ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> make custom changes <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> your environment, as this
# will prevent the need <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> merging <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> future updates.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

②/etc/bashrc: 
为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

<code class="hljs vala has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># /etc/bashrc</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># System wide functions and aliases</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Environment stuff goes in /etc/profile</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># It's NOT a good idea to change this file unless you know what you</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># are doing. It's much better to create a custom.sh shell script in</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># /etc/profile.d/ to make custom changes to your environment, as this</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># will prevent the need for merging in future updates.</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

③~/.bashrc 
该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。

那么在用户登录系统时候,相关的文件执行顺序是什么呢。 
在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。

===============================================

1. 修改/etc/profile文件

特点:所有用户的shell都有权使用你配置好的环境变量

说明:如果你的电脑仅用作开发,建议使用此配置,因为所有用户的shell都有权使用你配置好的环境变量,所以有可能会给系统带来安全性问题。

[plain]  view plain  copy
  1. #1:编辑/etc/profile  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim /etc/profile     
  3. #2:在profile末尾加入你需要配置的环境变量:  
  4. ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  

2. 修改.bashrc文件

特点: 环境变量只对某个用户有效
说明: 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,只需修改其用户主目录下的.bashrc文件就可以了
[plain]  view plain  copy
  1. #1:编辑~.bashrc  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim ~/.bashrc     
[plain]  view plain  copy
  1. #2:在.bashrc文件末尾加入:set ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  
  2. export ANDROID_HOME  

3.修改.bash_profile 文件

特点:当用户登录时,该文件仅仅执行一次,mac ox中此文件类似.bashrc
说明:如果更改了.bash_profile文件,需要退出后再次登录,该文件被重新读取后,更改才会生效。使用 source .bash_profile 可以让其立即生效。
[plain]  view plain  copy
  1. #1.修改.bash_profile  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim .bash_profile   
  3. #2.修改文件  
  4. ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk  

4. 直接在shell下设置变量

特点:临时有效
说明:这种方法仅针对临时使用,如果重新打开一个shell,设置就无法生效,而且以后要使用的时候又要重新设置

[plain]  view plain  copy
  1. #终端执行下列命令:  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ export ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  
  3.  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值