环境变量

环境变量是具有特殊名字的一个特定对象,包含了一个或多个应用程序运行所需的信息。(例如PATH,可执行程序的搜索路径,当要求系统运行一个程序,而没告诉系统它的具体路径时,系统就要在PTAH值的路径中寻找此程序,找到去执行)简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。

分类

环境变量不仅有PATH,系统的环境变量还有:

C_INCLUDE_PATH 头文件的搜索路径
LIBRARY_PATH静态库搜索路径(编译时包含)
LD_LIBRARY_PATH动态库搜索路径(链接时包含)

环境变量可以分成用户自定义的环境变量和系统级别的环境变量。

  • 用户级别环境变量定义文件:~/.bashrc、~/.profile(部分系统为:~/.bash_profile)
  • 系统级别环境变量定义文件:/etc/bashrc、/etc/profile(部分系统为:/etc/bash_profile)、/etc/environment

另外在用户环境变量中,系统会首先读取 ~/.bash_profile(或者 ~/.profile)文件,如果没有该文件则读取 ~/.bash_login,根据这些文件中内容再去读取 ~/.bashrc。

查看环境变量

  • 使用echo命令查看单个环境变量。例如:
echo $PATH 
  • 使用env查看所有环境变量。例如:
env 
  • 使用set查看所有本地定义的环境变量。

设置环境变量

  • 永久的:需要修改配置文件,变量永久生效。对所有的用户的都起作用的环境变量。

修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell

vi /etc/profile

# 在 /etc/profile 的最下面添加:

export PATH="$PATH:/NEW_PATH"

使用相同的用户打开新的终端时或者手动source ~/.bash_profile生效。

  • 临时的:使用export命令声明即可,变量在关闭shell时失效。只对当前的shell 起作用的环境变量。

在控制台中设置,他只对当前的shell 起作用,关闭shell或使用其他shell是无效的:

直接控制台中输入 : 

$PATH="$PATH":/NEW_PATH (关闭shell Path会还原为原来的path)

设置后会立即生效,且仅对当前用户有效,当前终端有效,当窗口关闭后无效。

  • 指定用户的:修改bashrc文件。针对当前特定的用户起作用的环境变量。
vi ~/.bashrc

# 在下面添加

Export PATH="$PATH:/NEW_PATH"

使用相同的用户打开新的终端时或者手动执行source ~/.bashrc后生效,且仅对当前用户有效。

程序运行

如果程序设置了环境变量,则直接输入程序名便可以运行
如果程序未设置环境变量,但是在当前路径下,运行时需要在前面添加 ./ 表示当前路径,例如:./python3
如果程序未设置环境变量,可以使用全路径进行运行,例如:/xx/xx/xx

常用的环境变量

PATH 决定了shell将到哪些目录中寻找命令或程序 
HOME 当前用户主目录 
HISTSIZE 历史记录数 
LOGNAME 当前用户的登录名 
HOSTNAME 指主机的名称 
SHELL 当前用户Shell类型 
LANGUGE  语言相关的环境变量,多语言可以修改此环境变量 
MAIL 当前用户的邮件存放目录 
PS1 基本提示符,对于root用户是#,对于普通用户是$

版权声明:本文为tynam原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tynam/p/13780831.html