首页 > 代码库 > linux环境变量

linux环境变量

bashrc与profile的区别

要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是loginshell 和non-login shell。

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式loginshell。系统中存在许多bashrc和profile文件,下面逐一介绍:

/etc/bashrc,用户目录下.bashrc有什么区别? 

一个是针对整个系统所有用户的,一个是针对特定用户的./etc/bashrc修改了以后要重启系统才生效,而用户目录下.bashrc修改了以后重新登录就生效 

2。/etc/profile与/etc/bashrc的区别? 

前一个主要用来设置一些系统变量,比如JAVA_HOME等等,后面一个主要用来保存一些bash的设置.  

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

并从/etc/profile.d目录的配置文件中搜集shell的设置. 

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

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

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

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

该文件被读取. 

~/.bash_logout:当每次退出系统(退出bashshell)时,执行该文件. 

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系. 

~/.bash_profile是交互式、login 方式进入 bash 运行的 

~/.bashrc是交互式 non-login 方式进入 bash 运行的 

通常二者设置大致相同,所以通常前者会调用后者。 

.bash_profile文件在通过控制台(或远程登录, 比如ssh)登录(login)系统的时候被执行的shell脚本. 

而 .bashrc则是在打开虚拟终端的时候才会起作用,比如在GNOME,KDE中执行rxvt.

 

通俗的理解

~/.bash_profile是交互式、login 方式进入 bash 运行的 

~/.bashrc是交互式 non-login 方式进入 bash 运行的 

 

 

 

 

 

【环境变量配置的原因】

在windows系统下,很多软件的安装都需要设置环境变量,如安装Mysql、如果不设置环境变量,在非软件的安装目录下运行mysql命令,将会报告找不到文件类的错误。

那么、什么是环境变量呢?通俗的说,就是指定一个目录、运行软件的时候,相关的程序会到该目录寻找相关的文件。

设置变量对于一般人最实用的功能就是:需要找某些执行程序或执行某些shell脚本的时候,不用去到该目录下中执行、系统中的PATH路径会帮你完成搜索查找的功能,通俗的说法就是,只要你的目录在PATH路径中,都属于环境变量,执行任何东西PATH都会帮你找到。

 

在Linux系统中,如果你下载并安装了应用程序,很有可能在键入执行名称时出现“command not found"命令找不到的提示内容,如果每次都到安装程序目录内,找到可执行文件,那个就太烦躁,

这就涉及到环境变量设置的问题了

 

【Linux 配置环境变量的三个方法】

 

如果想将一个路径加入到$PATH中方法有下面三种

1shell中设置环境变量,不过不赞成这种方法,因为换个shell或重启shell你的设置就无效了,只

   能临时使用

      配置例子如下

 

   $PATH="$PATH:/新的路径名称"    (关闭shell,配置失效)

 

 

技术分享

 

 

2、修改/etc/profile文件,如果你的计算机没有用在重要的办公环境中,只是用来做一些测试、可以

      使用这个方法,如果不是不推荐使用这种方法,因为这种方法系统里面所有的用户都能使用这个环

      境变量,会给系统带来安全性问题

     配置方法如下

    vim /etc/profile

    在这个配置文件里面加入

   export PATH="$PATH:/新的路径"      (这个配置方法系统所有的用户都可能使用这个变量)

技术分享

 

3、修改用户的 ".bashrc"文件,这种方法是针对用户级别的相对比较安全,如果要给某个用户使用环境

      变量直接修改用户主目录下的 ".bashrc"文件夹即可

     配置方法如下

   vim ~/.bash_profile

   在这个文件里面加入

  exportPATH="$PATH"/新的路径"

技术分享

 

 

后面的两种方法需要重新启动西东才能生效或者输入所有用户变量source /etc/profile

单个用户suorce~/.bash_profile

QQ交流群:11511420

本文出自 “鍒囩” 博客,请务必保留此出处http://nakedman.blog.51cto.com/7350188/1943695

linux环境变量