您的位置:首页 > 运维架构 > Shell

bash配置文件/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc详解及修改PATH环境变量

2016-04-07 16:51 1061 查看


1.bash的配置文件

1)、全局配置与个人配置

全局配置

       
/etc/profile, /rtc/profile.d/*.sh,/etc/bashrc

个人配置       

       
~/.bash_profile,~/.bashrc

 

2)、各配置文件解析:

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,

该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置,

/etc/bashrc:为每一个运行bashshell的用户执行此文件,当bash
shell被打开时,该文件被读取。

~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,

当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc:该文件包含专用于你的bashshell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。

 

3)、profile类的文件与basrc类的文件区别:

profile类的文件:

       
设定环境变量

       
运行命令或脚本   

basrc类的文件: 

       
设定本地变量

       
定义命令别名

 

4)、shell如何读取配置文件    


登录式shell如何读取配置文件

/etc/profile -->/etc/profile.d/*.sh

-->~/.bash_profile --> ~/.bashrc-->/etc/bashrc    
               

非登录式shell如何配置文件

 ~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh   

 

2、export临时导入环境变量

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

编辑你的 PATH
声明,其格式为:


PATH=$PATH:PATH1:PATH 2:PATH 3: ... :PATH N

其中PATHN
为自己加上指定路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ source .bash_profile

完成后,可以通过 $ echo $PATH
或者 export命令查看当前的搜索路径。

这样定制的好处在于可以避免频繁的启动位于
shell 搜索的路径之外的程序

注意:该方法添加的PATH
在终端关闭后就会消失。


 

实例1:export命令将新变量添加到环境中  

[gz_fieldyang@ test ~]$ export -p
        #显示当前环境

declare -x CVS_RSH="ssh"

...

declare -x HISTSIZE="1000"

declare -xHOME="/home/gz_fieldyang"...

declare -xPATH="/usr/local/git/bin.../home/gz_fieldyang/bin:"

...

[gz_fieldyang@ test ~]$ echo $PATH
    #查看当前路径

/usr/local/git/bin.../home/gz_fieldyang/bin

[gz_fieldyang@ test ~]$PATH=$PATH:/USER/LOCAL/BIN:/THIS/IS/A/TEST
#更新PATH

[gz_fieldyang@ test ~]$ export PATH
   #导出PATH

[gz_fieldyang@ test ~]$ export 

...

declare -xPATH="/usr/local/git/bin.../home/gz_fieldyang/bin:/USER/LOCAL/BIN:/THIS/IS/A/TEST"

...

 

3、永久生效

可以通过编辑/etc/profile来改PATH,也可以改家目录下的.bashrc(即:~/.bashrc)     

实例2:export命令将新变量添加到环境中(永久生效)     


[gz_fieldyang@ test ~]$ readonly hours_per_day=24  
#定义变量并赋值

[gz_fieldyang@ test ~]$ export PATH=$PATH:/usr/local/bin
#更新PATH

[gz_fieldyang@ test ~]$ export PATH 

[gz_fieldyang@ test ~]$ export -P

[gz_fieldyang@ test ~]$ echo $PATH

/usr/local/git/bin.../home/gz_fieldyang/bin:/usr/local/bin

[gz_fieldyang@ test ~]$ echo $hours_per_day                                         

24

 

[gz_fieldyang@ test ~]$ vim /etc/profile

...

exportPATH="$PATH:/usr/local/bin"

:wq

[gz_fieldyang@ test ~]$ source /etc/profile

不报错则成功。

[gz_fieldyang@ test ~]$ vi .bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

       . /etc/bashrc

fi

# User specific aliases and functions

exportPATH="$PATH:/usr/local/bin"

[gz_fieldyang@ test ~]$ source .bashrc

不报错则成功。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: