【Linux基础】Linux环境变量(超详细)

这篇具有很好参考价值的文章主要介绍了【Linux基础】Linux环境变量(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 环境变量分类

  • 生命周期分:

    • 永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
    • 临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
  • 作用域分:

    • 系统环境变量:公共的,对全部的用户都生效。
    • 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。

2. 环境变量相关命令

  • env:查看当前用户全部的环境变量。
    linux 环境变量,Linux,linux,服务器

  • env|grep 环境变量名:筛选包含的环境变量。linux 环境变量,Linux,linux,服务器

  • export:显示当前系统定义的所有环境变量。
    linux 环境变量,Linux,linux,服务器

  • printenv 环境变量名:查看指定环境变量的值。
    linux 环境变量,Linux,linux,服务器

  • echo $环境变量名:查看指定环境变量的值。
    linux 环境变量,Linux,linux,服务器

  • unset 环境变量名:清除指定环境变量。

3. 常用环境变量

3.1 PATH

功能和作用

可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序。如果可执行程序的目录不在PATH指定的目录中,执行时需要指定目录。

书写格式

​ PATH环境变量存放的是目录列表,目录之间冒号:分隔,最后的圆点.表示当前目录

export PATH=目录1:目录2:目录3:......目录n:.

​ PATH缺省包含Linux系统命令所在目录(/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin),如果不包含这些目录,Linux的常用命令也无法执行(要输入绝对路径才能执行)。
linux 环境变量,Linux,linux,服务器

添加格式

export PATH=$PATH:$HOME/binexport PATH=$HOME/bin:$PATH

3.2 LD_LIBRARY_PATH

功能和作用

C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要。

​ LD_LIBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同

书写格式

export LD_LIBRARY_PATH=目录1:目录2:目录3:......目录n:.

3.3 C_INCLUDE_PATH、CPLUS_INCLUDE_PATH

功能和作用

C_INCLUDE_PATH 指明C头文件的搜索路径,CPLUS_INCLUDE_PATH指明C++头文件的搜索路径。

添加格式

推荐

​ 一般情况下Linux是不会设置这些环境变量的。

​ 所以在对某一个环境变量第一次设置时,应该直接将其赋值为所需的目录,在之后的设置中再使用递归式的赋值;或者直接一次性将所有目录用:分隔开,一起赋值;或者索性不使用这些环境变量,而是在编译时使用-I参数来添加包含目录

不推荐

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/somewhere/include。因为如果 C_INCLUDE_PATH 未定义或定义为空,那么 $C_INCLUDE_PATH 的值就会变为:/somewhere/include

​ GCC的官方文档影响GCC的环境变量中有这样一句:

​ In all these variables, an empty element instructs the compiler to search its current working directory. Empty elements can appear at the beginning or end of a path. For instance, if the value of CPATH is :/special/include, that has the same effect as -I. -I/special/include.

​ 意思是:在所有这些变量中,一个空的元素会指示编译器搜索当前工作目录空的元素可以出现在一个路径的开头或结尾。例如,如果CPATH的值是:/special/include,这将会等效于-I. -I/special/include.

​ 因此在之前的例子中,我们只想在预处理搜索路径中添加一个/somewhere/include,期望的C_INCLUDE_PATH的值是/somewhere/include,但实际上C_INCLUDE_PATH却被赋值为了:/somewhere/include,开头的冒号之前虽然为空,却会为预处理搜索路径添加上当前工作目录,也即Linux中的.且优先级是所有目录中最高的!

而这往往并不是我们想要的结果,这会导致预处理的包含目录随着当前工作目录的改变而改变,如果当前工作目录中恰好有一个与源代码中包含的文件同名的文件,则会导致不可预期的错误

3.4 CLASSPATH

JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要。

​ CLASSPATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同

3.5 其他环境变量

  • HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)。

  • PWD:显示当前目录。

  • SHELL:当前用户用的是哪种Shell。

  • HISTSIZE:保存历史命令记录的条数。

  • HOSTNAME:主机的名称,应用程序如果要用到主机名的话,通常是从这个环境变量中取得。

  • LOGNAME:当前用户的登录名。

  • LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

4. 环境变量文件

4.1 /etc/profile 文件

​ 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d 目录的配置文件中收集 shell 的设置。如果你有对 /etc/profile 有修改的话必须得手动执行 source /etc/profile,修改才会生效,此修改对每个用户都生效。
linux 环境变量,Linux,linux,服务器

4.2 /etc/profile.d 目录(推荐)

/etc/profile 在每次启动时会执行 /etc/profile.d 下全部的脚本文件

linux 环境变量,Linux,linux,服务器

4.3 /etc/bashrc 文件

为每一个运行终端的用户执行此文件当终端被打开时,该文件被读取。如果你想对所有的使用终端的用户修改某个配置并在以后打开的终端都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个终端即可生效

​ Ubuntu没有此文件,与之对应的是 /ect/bash.bashrc
linux 环境变量,Linux,linux,服务器

4.4 ~/.bash_profile 或 ~/.bash_login 或 ~/.profile 文件(推荐)

​ 每个用户都可使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的 ~/ .bashrc 文件。 此文件类似于 /etc/profile,也是需要手动执行 source ~/.profile,修改才会生效,/etc/profile 对所有用户生效,~/.profile 只对当前用户生效。

~/.bash_profile、 ~/.bash_login 和 ~/.profile 文件往往只存在一个,这与Linux的发行版本有关。centos中为 ~/.bash_profile,ubuntu则为 ~/.profile。执行的顺序为:~/.bash_profile > ~/.bash_login > ~/.profile
linux 环境变量,Linux,linux,服务器

4.5 ~/.bashrc 文件

​ 当用户登录时以及每次打开新的Shell时该文件都将被读取。(每个用户都有一个 ~/.bashrc 文件,在用户目录下) 此文件类似于 /etc/bashrc,不需要重启就可以生效,重新打开一个 bash 即可生效,/etc/bashrc 对所有用户新打开的 bash 都生效,但 ~/.bashrc 只对当前用户新打开的 bash 生效。不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响
linux 环境变量,Linux,linux,服务器

4.6 ~/.bash_logout 文件

​ 当每次退出系统(退出 bash shell)时,执行该文件。可把一些清理工作的命令放到这文件中。
linux 环境变量,Linux,linux,服务器文章来源地址https://www.toymoban.com/news/detail-803611.html

4.7 执行顺序

  1. /etc/profile
  2. /etc/bashrc
  3. /etc/profile.d
  4. ~/.bash_profile | ~/.bash_login | ~/.profile
  5. ~/.bashrc

到了这里,关于【Linux基础】Linux环境变量(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于ansible初始化linux服务器基础环境。

    大家好,今天我要和大家分享一个关于搭建centos环境的新方法。 以前我们经常会看到一些文章介绍如何搭建centos环境,但很多时候都会出现一些问题。不过现在有了一种新的方法,就是使用ansible脚本来实现。 虽然这种方法仅适用于centos7,但只要稍作修改就可以应用到其他的

    2023年04月27日
    浏览(48)
  • 【Linux基础】Linux环境变量(超详细)

    按 生命周期 分: 永久的 :在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。 临时的 :用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。 按 作用域 分: 系统 环境变量:公共的,对全部的用户都生效。 用户 环境变量

    2024年01月19日
    浏览(30)
  • 服务器安装 anaconda & conda: command not found [解决方案] & bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案

    由于连接的服务器,无法直接在anaconda官网上下载安装文件,所以使用如下方法: 之后一直按 enter ,直到出现提示要输入 yes or no ,输入 yes 显示以下信息即为安装成功 在终端输入conda info --envs查看anaconda是否安装成功,发现报错:conda: command not found 原因在于: ~/.bashrc文件没

    2024年02月06日
    浏览(95)
  • StableDiffusion-webUI环境配置、部署、汉化、扩展超详细步骤 || 服务器Linux Ubuntu/本地Windows || 比官方安装更高自定义度 || anaconda虚拟环境下

    目录 一、代码下载 以下指令用git下载代码(可能不能直接跑通,后续需要修改一些代码,见“ 四、代码修改”部分) 1. 下载 stable-diffusion-webui 仓库 2. 下载其他仓库 二、环境配置 0. 安装anaconda、CUDA、cuDNN 1. 建立并激活新 conda 环境 2. 安装 requirements.txt 中的依赖包 3

    2024年02月10日
    浏览(87)
  • 【Linux环境搭建】用云服务器搭建Linux环境

    目录 1. 我们为什么要学Linux 2. 云服务器购买 3. 远程连接云服务器 4. 如何创建新用户   5. 第一个Linux程序 总结: 写在最后: 作为一个程序员,你必须学好Linux,至于为什么,这个问题, 在我们日后的学习中,自然会慢慢展现出来,而校招对于Linux也有掌握的要求, 所以我们

    2024年02月03日
    浏览(65)
  • 【Linux】云服务器搭建Linux环境

    目录 🍊一.环境选择🍊 🍎二.购买云服务器🍎 🍏三.使用XShell远程登录云服务器🍏 1.下载XShell 2.进入授权界面,填写姓名和邮件,选择只需Xshell   3.填写信息后,会将下载链接发到邮件,点击链接下载安装即可 4.进入XShell ,使用命令行方式远程登录云服务器          

    2024年02月04日
    浏览(66)
  • 【Linux】主机搭建 Linux服务器环境 笔记

    过年买了个 mini 主机当玩具玩一下,这里记录下。 已有主力机 (windows) 的情况下,使用过如下四种 Linux宿主环境。这里总结下区别。 优点 云服务器 虚拟机 笔记本电脑 mini主机 价格低 √ √ 便携 √ √ 环境隔离 √ √ √ 详细过程不贴出来了,把关键点回忆一下,方便以后快

    2024年02月21日
    浏览(66)
  • 『Linux』Linux环境搭建 | 阿里云云服务器白嫖 | Xshell环境配置

    🔥 博客主页 : 小羊失眠啦 🔖 系列专栏 : C语言 、 Linux 🌥️ 每日语录 : 时间,都是公平的,不公平的,只是现在的自己,对未来的自己。 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家

    2024年02月08日
    浏览(65)
  • 【Linux】腾讯云服务器搭建环境

    Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由 林纳斯托瓦兹 在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux核”来表达该意思。而Linux则常用来指基于Linux内核

    2024年02月06日
    浏览(58)
  • 简单对已有云服务器进行linux环境搭建以及共享服务器

    外壳程序:Xshell7 云服务器:华为云 服务器操作系统:centos7 区域尽量选择距离所处地距离自己最近的区域。 镜像这里选择的为centos7.6-7.9,最好不要超过8 ,8的生态环境较差且已经停止更新和维护了,7完全够用。 进入所买服务器网站,找到所买的服务器实例, 重新设置密码。

    2024年03月22日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包