Linux环境变量详解

环境变量

一、定义:系统预定义的参数

       指定一个目录,运行软件的时候,相关程序就会按照该目录寻找相关文件,如果没有设定环境变量,打出命令的时候会出现”command  not found”的提示,因为系统在环境变量中没有搜索到该命令

二、Linux环境变量的种类,按照生存周期来划分

      1、永久性:需要修改配置文件,变量永久生效

      2、临时性:使用export命令声明即可,变量在shell关闭时失效

三、设置变量的三种方法

    1、本次开机生效(临时),下次开机无效

    输入:

export PATH=$PATH:/usr/local/bin

    2、只使得当前用户生效(永久)

    输入:

1、vi ~/.bash_profile
2、在最后一行加上:PATH=$PATH:$HOME/bin:/usr/local/bin
3、立即生效:source ~/.bash_profile

    3、对所有用户生效(永久)

    输入:

1、vi /etc/profile
2、文件结尾输入:export PATH=$PATH:/usr/local/bin
3、立即生效:source /etc/profile

    说明:与环境变量有关的文件还可能有/etc/bashrc等,这个文件只对shell有效,/etc/profile是全局的

四、环境变量执行顺序

    登录Linux,首先启动/etc/profile文件,然后再启动用户目录下的~/.bash_profile、~/.bash_login或~/.profile

    文件中的一个,执行顺序是:~/.bash_profile、 ~/.bash_login、 ~/.profile

    在 ~/.bash_profile中会执行~/.bashrc文件:      

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

    在~/.bashrc中:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
          . /etc/bashrc
fi

    综上所诉,

    执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

 关于各个文件的作用域,在网上找到了以下说明:

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

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

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

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

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

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

           该该文件被读取。

  (5)~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的

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

  (6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash

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

 

五、软链接

    在执行命令时,如果遇到”command  not found”,还可以使用增加软链接来解决

    软链接:又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,

                  可以链接不同文件系统的文件,类似于windows下面的快捷方式

    使用方法:ln -s 源文件 目标文件

    实例:

ln -s /tmp/mysql5/bin/mysql /usr/local/bin/mysql

     如果/usr/local/bin 在环境变量下面,这个时候就能直接打mysql,登录mysql客户端

相关推荐