【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)

文章目录

  • 【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)
    • 一、基本概念
    • 二、常见的环境变量
    • 三、与环境变量相关的命令
    • 四、问题
    • 五、新增环境变量的值
      • 5.1 临时生效
      • 5.2 永久生效
      • 5.3 实例
        • 5.3.1 临时生效
        • 5.3.2 永久生效
    • 六、总结


一、基本概念

  环境变量environment variables)一般是指在操作系统当中用来指定操作系统运行环境的一些参数。环境变量通常具有某些特殊用途,在系统当中通常具有全局特性。


二、常见的环境变量

  PATH: 保存可执行程序路径的环境变量

  HOME: 保存用户家目录的环境变量

  SHELL: 保存当前使用的命令行解释器

  LD_LIBRARY_PATH: 程序运行时依赖的库文件的搜索路径的环境变量

补充:

  LD_LIBRARY_PATH 环境变量:会让操作系统搜索可执行程序依赖的动态库的路径,但并不是在编译阶段其效果的。在编译时,是需要使用-L 选项指定依赖库的路径的。

  静态库:Linux中后缀为 .a 文件

  动态库:Linux 中后缀为 .so 文件

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第1张图片


三、与环境变量相关的命令

  echo 显示某个环境变量值

  export 设置一个新的环境变量

  env 显示所有环境变量

  unset 清除环境变量

  set 显示本地定义的 shell 变量和环境变量

  sources [profile] 操作系统重新加载该文件


四、问题

  在 Linux 中,查看文件信息最常用的命令就是 ls 。通过下图可以看到 ls 保存在 /usr/bin 目录下,是一个可执行程序,这也体现了 Linux 中一切皆文件的思想。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第2张图片

  问题:为什么 ls 在任何目录文件下都可以执行,而我们自己编译出来的可执行程序,只能在当前编译出来的目录下运行呢?

  其实这就是我们刚刚说到的 PATH 环境变量,PATH 它是保存可执行程序路径的环境变量。ls 之所以能够在任意目录下执行, 一定是因为 ls 这个可执行程序所对应的目录被 PATH 环境变量保存下来了。
【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第3张图片

/usr/local/bin:
/usr/bin:
/usr/local/sbin:
/usr/sbin:
/home/cos/.local/bin:
/home/cos/bin

  可以看到 PATH 环境变量中保存了很多路径,它们之间以冒号分隔。 ls 可执行程序所对应的目录 /usr/bin 也包含在其中,这就佐证了上述所说的。

  那么,如何能够让我们自己编译出来的可执行程序像 ls 一样在任意目录下都可以执行,这就得用到 export 设置一个新的环境变量。


五、新增环境变量的值

5.1 临时生效

  万能公式:

   export [环境变量名称] = $[环境变量名称] + [新增加的环境变量的值]

  注意: 在命令行中使用 export 是临时生效的,只在当前终端内有效,当前终端关闭之后,重新打开就没有之前设置的值。


5.2 永久生效

  将环境变量的值写到下面文件当中可以达到永久生效

  普通用户: ~/.bashrc 或者 ~/.bash_profile

  系统环境变量: /etc/bashrc

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

  ● ~/.bash_profile:每个用户*都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件 仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

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

  注意: 普通用户的环境变量千万千万不要往 /etc/bashrc 这个文件下添加!!!在添加完成之后,需要 source 一下,让操作系统重新加载该文件。


5.3 实例

5.3.1 临时生效

  我们现在有一个 test1 的可执行程序,现在使用 export 来临时新一个增环境变量的值。将 test1 可执行程序的路径,按照 5.1 中的万能公式添加,使用 echo $PATH 查看是否添加成功。

  再来验证一下,在当前 test1 编译出来的目录下可以执行成功。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第4张图片

  在家目录下执行 test1 也可以执行成功。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第5张图片

  在根目录下执行 test1 也可以执行成功。即在的当前终端中已成功新增 test1 这个环境变量的值,不过要注意的是,这是临时生效的。
【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第6张图片


5.3.2 永久生效

  我们普通用户一般在 ~/.bashrc 或者 ~/.bash_profile 添加就可以了,不要往 /etc/bashrc 里添加(大牛可随意~)。注意:以 . 开头的文件时隐藏文件。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第7张图片

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第8张图片
  要永久生效,就得 vim ~/.bash_profile 进入文件中,按照 5.1 中的万能公式添加,保存退出。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第9张图片
  source 让造作系统内核重新加载 .bash_profile 文件,echo $PATH 查看是否添加成功。
image-20210625161122667
  再来验证一下,在当前终端的家目录下可以执行成功。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第10张图片

  重新开启一个终端,可以看到在任意目录下都可以执行成功。即在操作系统内核中已成功新增 test1 这个环境变量的值,并且是永久生效的。

【Linux】Linux 下环境变量的设置 (临时环境变量和永久环境变量)_第11张图片


六、总结

  临时生效:

   万能公式: export [环境变量名称] = $[环境变量名称] + [新增加的环境变量的值]

  永久生效:

   普通用户: ~/.bashrc 或者 ~/.bash_profile

   系统环境变量: /etc/bashrc


你可能感兴趣的:(Linux,环境变量,PATH,export,bashrc,bash_profile)