环境变量(Linux)

文章目录

  • 一、什么是环境变量?
  • 二、环境变量的作用
    • 1. 方便命令执行:
    • 2.配置系统和应用程序:
    • 3.用户自定义环境变量:
  • 三、Linux 常见环境变量
  • 四、设置环境变量
    • 1.临时设置:
    • 2.永久设置:
  • 五、环境变量的优先级
  • 六、环境变量的应用场景
    • 1.脚本编程:
    • 2.软件安装和配置:
    • 3.容器化和虚拟化:

一、什么是环境变量?

环境变量是一组动态的值,存储在操作系统中,用于定义系统的行为和用户的工作环境。它们可以影响命令行的行为、程序的运行方式以及系统的配置。环境变量通常由名称和值组成,例如 PATH 环境变量指定了系统在查找可执行文件时搜索的目录路径。

二、环境变量的作用

1. 方便命令执行:

  • 最典型的例子是 PATH 环境变量。当你在命令行中输入一个命令时,系统会在 PATH 中列出的目录中依次查找该命令的可执行文件。如果没有 PATH 环境变量,每次执行命令都需要输入完整的可执行文件路径,这将非常繁琐。
  • 例如,如果你想执行 ls 命令来列出当前目录下的文件,如果 PATH 环境变量中包含了 /bin 目录(通常 ls 命令位于这个目录下),系统就可以直接找到并执行这个命令。

2.配置系统和应用程序:

  • 许多应用程序依赖环境变量来获取配置信息。例如,一些数据库软件可能使用环境变量来指定数据库文件的存储位置、端口号等。

3.用户自定义环境变量:

  • 用户可以根据自己的需求定义环境变量,以便在不同的场景下使用。例如,你可以定义一个名为 MY_PROJECT_DIR 的环境变量,指向你的项目目录。这样,在任何地方都可以通过这个环境变量快速访问你的项目。
  • 假设你正在开发一个软件项目,你可以将项目的根目录设置为 MY_PROJECT_DIR 环境变量的值。然后,在编写脚本或使用命令行工具时,可以使用这个环境变量来快速切换到项目目录,而不需要记住冗长的目录路径。

三、Linux 常见环境变量

1.PATH

  • 如前所述,PATH 环境变量指定了系统查找可执行文件的目录路径。它是一个由冒号分隔的目录列表。
  • 可以使用echo $PATH 命令查看当前的 PATH 值。例如,在一个典型的 Linux 系统中,PATH 可能包含 /bin、/usr/bin、/usr/local/bin 等目录。
  • 如果你想将一个新的目录添加到 PATH 中,可以使用以下方法:

(1)临时添加:在当前终端会话中,可以使用 export PATH=$PATH:/new/directory 命令将 /new/directory 目录添加到 PATH 中。这个设置只在当前终端会话中有效,一旦关闭终端,设置就会丢失。

(2)永久添加:要永久添加一个目录到 PATH,可以编辑用户的 .bashrc 文件(对于使用 Bash shell 的用户)。在文件末尾添加 export PATH=$PATH:/new/directory,然后保存文件。下次登录时,新的设置就会生效。

2.HOME

  • HOME 环境变量指定了用户的主目录。在 Linux 中,每个用户都有一个主目录,通常用于存储用户的个人文件和配置。
  • 可以使用 echo $HOME 命令查看当前用户的主目录路径。例如,/home/username
  • 许多应用程序会默认将用户的配置文件和数据存储在用户的主目录下。例如,.ssh 目录(用于存储 SSH 密钥)通常位于用户的主目录下。

3.USER

  • USER 环境变量存储了当前登录用户的用户名。
  • 使用 echo $USER 命令可以查看当前用户的用户名。这个环境变量在编写脚本时非常有用,例如,可以根据不同的用户执行不同的操作。

4.LANG

  • LANG 环境变量指定了系统的语言环境。它决定了系统在显示消息、日期、时间等方面使用的语言和字符集。
  • 可以使用 echo $LANG 命令查看当前的语言环境设置。例如,en_US.UTF-8 表示美国英语,使用 UTF-8 字符集。
  • 可以通过设置LANG环境变量来更改系统的语言环境。例如,export LANG=fr_FR.UTF-8 可以将系统语言设置为法国法语。

四、设置环境变量

1.临时设置:

  • 在终端中,可以使用 export 命令临时设置环境变量。例如,export MY_VAR=value 将创建一个名为 MY_VAR 的环境变量,并将其值设置为 value。
  • 这种设置只在当前终端会话中有效,一旦关闭终端,设置就会丢失。

2.永久设置:

  • 要永久设置环境变量,可以编辑相应的配置文件。对于 Bash shell 用户,通常可以编辑 .bashrc 或 .profile 文件。
  • 在文件中添加 export MY_VAR=value 行,然后保存文件。下次登录时,新的设置就会生效。
  • 另外,如果要设置系统级别的环境变量,可以编辑 /etc/profile/etc/environment 文件。这些文件会在系统启动时被读取,设置的环境变量将对所有用户生效。

五、环境变量的优先级

当多个地方设置了相同名称的环境变量时,Linux 系统会按照一定的优先级来确定使用哪个值。一般来说,优先级从高到低如下:
1.命令行上直接设置的环境变量(临时设置)。
2.用户配置文件(如 .bashrc、.profile)中设置的环境变量。
3.系统配置文件(如 /etc/profile、/etc/environment)中设置的环境变量。

六、环境变量的应用场景

1.脚本编程:

  • 在脚本中,可以使用环境变量来获取系统信息或用户自定义的配置。例如,可以使用 $HOME 环境变量来获取用户的主目录,然后在脚本中操作该目录下的文件。
  • 以下是一个简单的 Bash 脚本示例,展示了如何使用环境变量:
#!/bin/bash

echo "当前用户是:$USER"
echo "主目录是:$HOME"

if [ -d "$HOME/my_project" ]; then
    echo "项目目录存在。"
else
    echo "项目目录不存在。"
fi

2.软件安装和配置:

  • 许多软件在安装过程中会要求设置环境变量。例如,安装 Python 时,可能需要设置 PYTHONPATH 环境变量来指定 Python 模块的搜索路径。
  • 假设你安装了一个自定义的软件包,该软件包需要一个特定的环境变量来指定其数据文件的存储位置。你可以在安装完成后,根据软件的文档说明设置相应的环境变量。

3.容器化和虚拟化:

  • 在容器化和虚拟化环境中,环境变量可以用于传递配置信息和参数。例如,在 Docker 容器中,可以使用 -e 选项来设置环境变量,以便容器中的应用程序可以获取所需的配置。
  • 如果你正在使用 Docker 运行一个 Web 应用程序,你可以通过设置 ENVIRONMENT 环境变量来指定应用程序的运行环境(如开发、测试、生产),然后在应用程序中根据这个环境变量的值来加载不同的配置文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/890752.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java学习-JVM

目录 1. 基本常识 1.1 JVM是什么 1.2 JVM架构图 1.3 Java技术体系 1.4 Java与JVM的关系 2. 类加载系统 2.1 类加载器种类 2.2 执行顺序 2.3 类加载四个时机 2.4 生命周期 2.5 类加载途径 2.6 双亲委派模型 3. 运行时数据区 3.1 运行时数据区构成 3.2 堆 3.3 栈…

特斯拉全新发布会上,无人驾驶汽车亮相,机器人与用户近距离互动

在科技日新月异的今天,特斯拉再次以其前瞻性的技术和创新理念引领了行业的潮流。近日,特斯拉在美国加利福尼亚州伯班克华纳兄弟工作室召开了一场主题为“WE ROBOT”的新品发布会,会上不仅发布了无人驾驶汽车,还展示了特斯拉人形机…

CVE-2022-26965靶机渗透

​ 开启环境 ​ ​ 进入环境 ​ ​ 使用弱口令admin登录 ​ ​ 利用cms主题构造木马 ​ 需要将主题中的info.php文件修改,再打包成zip再上传,通过网络搜索找到Github中的Pluck CMS,进入后随便下载任一主题 https://github.com/sear…

python之selenium接管打开的谷歌浏览器窗口——隐藏爬虫特征,跳过登陆弹窗验证

文章目录 引言使用selenium接管打开的谷歌浏览器总结 引言 我们知道通过selenium打开的浏览器与本地电脑上打开的浏览器是不同的,selenium通过插件打开浏览器页面会显示爬虫特征信息,且在访问某些网站时,很容易被检测出是一个爬虫机器&#x…

PostgreSQL学习笔记七:常规SQL操作

PostgreSQL 支持标准的 SQL 语句,同时也扩展了一些特有的功能。以下是一些常规的 SQL 语句示例,这些示例涵盖了数据定义、数据操作和数据查询的基本操作: 数据定义语言 (DDL 创建数据库: CREATE DATABASE mydatabase;创建表&#…

为什么要选择高权重媒体?高权重媒体发稿优点有哪些,媒介盒子分享

在品牌传播与市场推广的领域中,选择高媒体权重进行发稿已成为众多企业的共识。高媒体权重不仅代表了媒体的影响力、权威性和传播效果,更是企业实现精准品牌曝光、提升品牌形象和市场竞争力的重要工具。下面,我们将深入探讨为何要选择高媒体权…

【 香格里拉酒店-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

国家基本药物目录数据库查询3种方法(2018、2012、2009年版)

国家基本药物目录是一份由国家卫生健康委员会等相关部门制定的药品清单,旨在满足国家公共卫生需求,保障基本医疗服务。该目录包括了多种药品,覆盖了不同的疾病治疗领域,如抗生素、心血管药物、神经系统药物、抗肿瘤药物、维生素和…

Video-LLaMA部署

Video-LLaMA: An Instruction-tuned Audio-Visual Language Model for Video Understanding

如何设计销售人员的薪酬结构?

如何设计销售人员的薪酬结构? 在构建组织薪酬体系的过程中,薪酬结构设计占据核心地位,其复杂性不容小觑。学者普遍认为,薪酬结构反映了薪酬体系中各组成要素的分配比例,其设计需综合考量企业特性、发展阶段、员工特质…

VR全景摄影的拍摄和编辑软件推荐

随着虚拟现实技术的不断进步,VR全景摄影逐渐成为商业、娱乐和教育等多个领域中的重要工具。通过专业的设备与软件,摄影师能够创作出沉浸式的360度全景作品,为观众提供身临其境的视觉体验。在这篇文章中,我们将介绍VR全景摄影的相关…

9月丨创客匠人-IP书院月报附10月活动预告

创客匠人9月部分发售成果展示!带客户拿结果,我们是真干,真出结果!每个月都有新的百万案例! 9月活动回顾: 9月2日I创客发售联盟私教班第二期正式开班《开营第一讲》 9月12日|媛姐连麦巨龙光学董事长董赣明…

借助 Aspose.Words控件,在 Word 中添加目录 (TOC)

考虑一个不包含目录的大型文档。读者必须连续滚动很长时间,从而花费大量时间来寻找所需的信息。目录 (TOC) 可以立即解决此问题,因为它清楚地显示了文档的结构和导航的可能性。在这篇文章中,我们将向您展示如何在 Word 文档中添加目录。 Asp…

【HTML并不简单】笔记4-你不知道的details、dialog和popover元素

文章目录 自带交互的details元素自定义样式案例全新name属性 dialog元素form元素与对话框自动关闭关闭来源的判断自动聚焦特性showModal()方法与真正的对话框焦点隔离特性顶层特性自动层级特性 原生弹层与popover属性 《HTML并不简单:Web前端开发精进秘籍》张鑫旭 笔…

C语言 ——— oj题:搜索插入位置

目录 题目要求 代码实现 题目要求 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置 请必须使用时间复杂度为 O(long n) 的算法 示例 1: 输入: nums [1,3,5,6], t…

Nature 正刊丨生物分子冷凝物介导内体膜的弯曲和断裂

01摘要 多囊体是通过降解膜结合的货物蛋白1,2,3参与细胞质量控制的关键内体隔室。消耗ATP的ESCRT蛋白机制通过多泡体膜的内陷和断裂形成管腔内囊泡,介导膜结合货物蛋白的捕获和吞噬4,5。在这里,我们报告说,植物ESCRT组分FREE16形成与膜结合的…

遗传算法与深度学习实战(18)——使用网格搜索自动超参数优化

遗传算法与深度学习实战(18)——使用网格搜索自动超参数优化 0. 前言1. 网格搜索2. 使用网格搜索自动超参数优化小结系列链接 0. 前言 我们已经学习了如何使用随机搜索获得较好的超参数优化 (Hyperparameter Optimization, HPO) 结果,但它耗…

『Mysql进阶』Mysql explain详解(五)

目录 Explain 介绍 Explain分析示例 explain中的列 1. id 列 2. select_type 列 3. table 列 4. partitions 列 5. type 列 6. possible_keys 列 7. key 列 8. key_len 列 9. ref 列 10. rows 列 11. filtered 列 12. Extra 列 Explain 介绍 EXPLAIN 语句提供有…

【C++指南】C++中的浅拷贝与深拷贝:深入剖析

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 🍃浅拷贝 基本概念 代码示例分析 🍃深拷贝 基本概念 代码示例分析…

数据中心物理安全的历史和演变

在当今的数字时代,数据中心托管已成为我们互联世界的支柱。这些设施在存储、管理和处理我们日常生活所需的大量信息方面发挥着至关重要的作用。从社交媒体平台和电子商务网站到流媒体服务和云计算,数据中心为我们依赖的数字服务提供支持。 随着企业越来…