linux etc下的profile和/etc/bashrc
2016-10-27 20:51
239 查看
/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:编辑/etc/profile
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim /etc/profile
#2:在profile末尾加入你需要配置的环境变量:
ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools
2. 修改.bashrc文件
特点: 环境变量只对某个用户有效说明: 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,只需修改其用户主目录下的.bashrc文件就可以了
[plain] view plain copy#1:编辑~.bashrc
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim ~/.bashrc
[plain] view plain copy#2:在.bashrc文件末尾加入:set ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools
export ANDROID_HOME
3.修改.bash_profile 文件
特点:当用户登录时,该文件仅仅执行一次,mac ox中此文件类似.bashrc说明:如果更改了.bash_profile文件,需要退出后再次登录,该文件被重新读取后,更改才会生效。使用 source .bash_profile 可以让其立即生效。
[plain] view plain copy#1.修改.bash_profile
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim .bash_profile
#2.修改文件
ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk
4. 直接在shell下设置变量
特点:临时有效说明:这种方法仅针对临时使用,如果重新打开一个shell,设置就无法生效,而且以后要使用的时候又要重新设置
[plain] view plain copy#终端执行下列命令:
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ export ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools
相关文章推荐
- Linux安装软件时,/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途
- 浅析linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
- linux命令(24):/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
- 浅析linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
- Linux环境配置文件 /etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc的区别
- 【每天一个linux命令】11. Linux配置环境变量/etc/profile .bashrc .bash_profile等
- linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的
- Linux下配置文件 /etc/profile、/etc/bashrc、~/.bash_profile、~/.profile、~/.bashrc 总结
- linux设置了 /etc/profile ~/.bashrc等配置文件不重启生效方法【开机读取的shll】
- 【每天一个linux命令】11. Linux配置环境变量/etc/profile .bashrc .bash_profile等
- linux /etc/profile和/etc/bashrc
- Linux下.bashrc文件和/etc/profile文件的区别
- 浅析linux 下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件
- Linux 配置文件 启动文件rc.local、/etc/bash.bashrc、~/bashrc、/etc/profile、~/.profile加载顺序
- linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的区别
- linux登录时/etc/profile和/etc/bashrc等文件执行顺序和过程
- Linux下常见的~/.bashrc、/etc/profile、/etc/ld.so.config小科普以及caffe编译遇到的相关问题解决
- Linux下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc的区别