修改环境变量及生效

摘录自 :鹤鹤有明 https://blog.csdn.net/u011630575/article/details/49839893

               Rooqs https://www.jianshu.com/p/9d680bdbc170

平时我们在linux环境下安装软件时会习惯的安装在/usr/local/目录下,shell脚本可能会存放在/usr/local/bin/ 目录下,但是可能因为不同系统的原因。/usr/local/bin/可能不在环境变量中,导致不能在全局执行shell脚本。

解决方法:

查看现有PATH:

现有的PATH,执行某一个命令时,会根据PATH设置的顺序一个一个目录的去寻找,如果找到就停止。如果存在两个相同的命令但是目录不一样时,这个顺序就尤为重要。

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

修改环境变量及生效:

方法一:  

/etc/profile文件中添加变量【对所有用户生效(永久的)】  

用vim在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。  

要让刚才的修改马上生效,需要执行以下代码  

# source /etc/profile  

方法二:  

在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】  

用vim在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。  

要让刚才的修改马上生效,需要在用户目录下执行以下代码  

# source .bash_profile  

方法三:  

直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】  

在shell的命令行下直接使用[export  变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。  

例如:export PATH=/usr/local/webserver/php/bin:$PATH  

按变量的生存周期来划分,Linux变量可分为两类,它们的修改方法如下:

(1)永久的:需要修改配置文件,变量永久生效。

 常见的配置文件包括:

(1-1) 

/etc/profile:对所有用户生效;此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行;并从/etc/profile.d目录的配置文件中搜集shell的设置

 例如:编辑/etc/profile文件,添加CLASSPATH变量

 # vim  /etc/profile

 添加一行:

 export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

 修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效

 (1-2) 

 /etc/bashrc:对所有用户生效;

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

 编辑方法如上,不再赘述

 (1-3) 

  ~/.bash_profile:仅会对当前用户有效;

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。

 例如:编辑yumh用户目录(/home/yumh)下的.bash_profile

 $ vim /home/yumh/.bash.profile

 添加如下内容:

 export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

 修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效

 (1-4)

  ~/.bashrc:仅会对当前用户有效;

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

 编辑方法如上,不再赘述

 另外,~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系

 综述,对上述文件修改,添加你需要的变量,在启动一个shell(终端,terminal)时,你所定义的变量均会生效的。

(2)临时有效:

   使用export命令声明即可,变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,在关闭shell后失效,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

 在shell的命令行下直接使用[export 变量名=变量值] 定义变量

环境变量的查看

(1)使用echo命令查看单个环境变量。例如:

      echo $PATH

(2)使用env查看所有环境变量。例如:

      env echo 

(3)使用set查看所有本地定义的环境变量。例如:

      set

另外,unset可以删除指定的环境变量。

常用的环境变量名称(echo  变量名称)

PATH 决定了shell将到哪些目录中寻找命令或程序

HOME 当前用户主目录

HISTSIZE 历史记录数

LOGNAME 当前用户的登录名

HOSTNAME 指主机的名称

SHELL 当前用户Shell类型

LANGUGE 语言相关的环境变量,多语言可以修改此环境变量

MAIL 当前用户的邮件存放目录

PS1 基本提示符,对于root用户是#,对于普通用户是$


原文链接:https://blog.csdn.net/u011630575/article/details/49839893

你可能感兴趣的:(修改环境变量及生效)