当前位置:首页>Linux>揭开 Linux 环境变量的"神秘面纱"

揭开 Linux 环境变量的"神秘面纱"

  • 2026-10-07 07:17:02
揭开 Linux 环境变量的"神秘面纱"
大家好!我是大虫子🐛!
简单讲讲 Linux 操作系统中的环境变量,其实它和 Windows 中的环境变量定义都一样,还不了解的小伙伴一起看看~
🎯什么是环境变量?
环境变量是用于存储系统或用户特定的配置信息和状态信息的动态命名值。这些变量在系统运行期间可以被多个程序访问,用于影响程序的行为、配置应用程序、保存用户信息等。
环境变量是一组键值对,包含在用户的环境中,用于提供运行时信息。例如,它们可以指定系统路径、语言设置、临时目录等。
🎯Linux 环境变量的生命周期与作用域
1、生命周期
  • 永久的:根据系统的配置文件生成的,永久生效。
  • 临时的:用户利用 export 命令,在当前终端下声明环境变量,关闭Shell终端失效。
2、作用域
  • 系统环境变量:对该系统中所有用户都有效。
  • 用户环境变量:只对特定的用户起作用。
🎯常见的环境变量
以下是一些常见的环境变量及其用途:
HOME: 当前用户的主目录路径。USER: 当前登录的用户名。PATH: 系统查找可执行文件的目录列表。SHELL: 当前用户的默认命令行解释器的路径。LANG: 系统的语言设置。TERM: 终端类型。PWD: 当前工作目录。
举个例子,当我们在终端上要去执行一个指令时,就要去找对应的二进制文件。那怎么找呢?呵呵,PATH 帮助命令解释器(Shell)去找~
比如当我们执行: ls -l 指令,解释器其实不知道 ls 存放在哪个目录,但是它会按 PATH 环境变量设置的值(存放路径),顺序遍历所有以冒号分隔的目录去找对应的文件。
查看 PATH 变量的值:
echo $PATH
我的系统显示:
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
补充:
环境变量是如何产生的呢?在用户的主目录中,通常会有两个配置文件:.bash_profile 和 .bashrc。当 Bash 进程启动时,它会根据不同的情况加载这些配置文件:
  • 在登录 Shell 启动时,会加载 .bash_profile 文件。
  • 在交互式非登录 Shell 启动时,会加载 .bashrc 文件。
通过这些配置文件,系统会生成相应的环境变量表,从而为当前会话配置所需的环境变量。
🎯查看和设置环境变量
1. 查看环境变量
可以使用 printenv 或 env 命令显示当前所有环境变量:
printenv
或
env
如果要查看某个特定的环境变量,可以使用 echo 命令:
echo $HOME
或者写个代码使用 main 函数的第三个参数也可以获取,例如:
#include<stdio.h>intmain(int argc, char *argv[], char *env[]){                                                     for(int i = 0; env[i]; i++)        {                printf("%s\n", env[i]);                                                                                                                                                                 }                return0;}  
或者使用 C 语言的全局变量,用于直接访问进程的所有环境变量。
#include<stdio.h>intmain(){                                     externchar **environ;    //全局变量                        for(int i = 0; environ[i]; i++)           printf("%s\n", environ[i]);                                                                                 return0;         } 
再或者使用getenv函数
#include<stdlib.h>intmain(){                                                         char *r1 = getenv("PATH");        printf("%s\n", r1);                       return0;         }
自己编译运行下看看~略了
2. 设置环境变量
在 Linux 中,可以通过两种主要方式设置环境变量:临时设置和永久设置。
(1) 临时设置
临时环境变量在当前 shell 会话中有效,关闭终端后失效。可以使用 export 命令设置:
export VAR_NAME="value"
例如:
export MY_VAR="Hello, My env!"
然后可以使用 echo 命令查看:
echo $MY_VAR
(2) 永久设置
要永久设置环境变量,通常需要将其添加到用户的 shell 配置文件中,如 .bashrc、.bash_profile 或 .profile 文件(取决于使用的 shell)。例如,使用以下步骤设置:
打开 .bashrc 文件(或其他相应的配置文件):
nano ~/.bashrc
在文件末尾添加以下行:
export MY_VAR="Hello, My env!"
保存并退出编辑器,然后使更改生效:
source ~/.bashrc
🎯删除环境变量
如果需要删除一个环境变量,可以使用 unset 命令:
unset VAR_NAME
例如:
unset MY_VAR
🎯环境变量的优先级
当多个环境变量具有相同名称时,Linux 系统会根据优先级规则来决定使用哪个值。一般规则如下:
  1. 用户自定义的环境变量优先于系统默认设置。
  2. 在 shell 启动期间,配置文件中的变量会覆盖系统级的变量。
  3. 子进程继承父进程的环境变量,但对变量的修改不会影响父进程。
环境变量与脚本
在编写 shell 脚本时,环境变量非常有用。可以在脚本中使用这些变量,或者通过引入外部变量来控制脚本的行为。
以下是一个简单的示例脚本,展示如何使用环境变量:
#!/bin/bashecho"当前用户: $USER"echo"主目录: $HOME"echo"当前Shell: $SHELL"# 设置一个新的环境变量export GREETING="Hello, $USER!"echo$GREETING
将上述内容保存为 greeting.sh,然后给它执行权限并运行:
sudo chmod +x greeting.sh./greeting.sh
环境变量在 Linux 系统中地位很关键哈,影响着系统和应用程序的行为。通过正确地查看、设置和管理环境变量,咱们可以提升系统的灵活性和可配置性。

最新文章

随机文章