环境变量(Linux)

ops/2024/10/17 19:55:46/

文章目录

  • 一、什么是环境变量?
  • 二、环境变量的作用
    • 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/bashecho "当前用户是:$USER"
echo "主目录是:$HOME"if [ -d "$HOME/my_project" ]; thenecho "项目目录存在。"
elseecho "项目目录不存在。"
fi

2.软件安装和配置:

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

3.容器化和虚拟化:

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

http://www.ppmy.cn/ops/126287.html

相关文章

国际期货收费行情源CTP推送式/期货配资软件开发对接行情源的技术性说明

在现代金融市场中,期货交易因其高风险和高回报特性而备受关注。为了满足期货交易者的需求,开发高效、稳定和安全的期货交易软件变得尤为重要。本文将对国际期货收费行情源CTP推送式及期货配资软件的开发对接行情源的技术细节进行详细说明。 一、CTP&…

抖音小游戏画图位置移动

文章目录 画图移动图形位置 画图 const canvas tt.createCanvas(); const context canvas.getContext(2d);context.width 500; context.height 500;let isPressing false; // 是否按下 let startX 0; let startY 0;context.fillStyle "#f00"; context.fillR…

js-前端vue强制刷新当前页面(router.go(0) window.location.方法)

1.强制刷新当前页面 在完成某一操作后需要刷新当前整体页面,或者部分模块需要重新渲染数据。强制刷新页面可能会影响用户体验,特别是在需要保持页面状态的情况下。使用强制刷新页面需要谨慎使用。 2.方法 2.1 Vue Router 的 router.go(0) 方法&#x…

sealed class-kotlin中的封闭类

在 Kotlin 中,sealed class(密封类)是一种特殊的类,用于限制继承的类的数量。密封类可以被用来表示一组有限的类型,通常用于状态管理或表达多种可能的错误类型。 密封类用 sealed 关键字定义,这意味着只能…

C++游戏开发完整学习路径

C游戏开发完整学习路径 引言 随着游戏行业的迅速发展,C作为主要的游戏开发语言,因其高效性和灵活性,依然受到广泛欢迎。C不仅在大型游戏开发中被广泛使用,而且在游戏引擎的构建、性能优化和复杂算法的实现中也扮演着关键角色。本…

2024软件测试面试800题(答案+文档)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计,到…

el-date-picker设置只有某些日期可选

示例图&#xff1a; <el-date-pickerv-model"topFormObj.upTime"type"date"value-format"timestamp"format"dd/MM/yyyy":picker-options"pickerOptions" /> 固定限制每周的周末周三不可选 data() {return {pickerOp…

vscode快速删除一行的快捷键不管用

vscode快速删除一行的快捷键 在vscode中&#xff0c;快速删除一行的快捷键是CtrlShiftk。 因为搜狗软键盘的快捷键和这个快捷键的按键是冲突了&#xff0c;所以快捷键被搜狗输入法给拦截了。把搜狗软键盘的快捷键关闭了或者修改成别的键就好了&#xff0c; 因为我不怎么用软键…