插件窝 干货文章 深入理解Linux常见环境变量

深入理解Linux常见环境变量

变量 bash 环境 echo 789    来源:    2025-04-10

Linux常见环境变量详解

什么是环境变量

环境变量是操作系统或应用程序运行时的动态值,它们影响进程的行为。在Linux系统中,环境变量是键值对(key-value)的形式存在,可以被shell和其他程序访问。

查看环境变量

  1. 查看所有环境变量

    printenv
    # 或
    env
    
  2. 查看特定环境变量

    echo $变量名
    # 例如
    echo $PATH
    

常见环境变量及其作用

1. PATH

作用:指定可执行程序的搜索路径

echo $PATH
# 通常显示为:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 当输入命令时,系统会按照PATH中的路径顺序查找对应的可执行文件
  • 添加新路径到PATH: bash export PATH=$PATH:/新路径

2. HOME

作用:当前用户的主目录路径

echo $HOME
# 通常显示为:/home/用户名

3. USER

作用:当前登录的用户名

echo $USER

4. SHELL

作用:当前使用的shell程序路径

echo $SHELL
# 通常显示为:/bin/bash

5. PWD

作用:当前工作目录路径

echo $PWD

6. LANG / LC_*

作用:语言和区域设置

echo $LANG
# 通常显示为:en_US.UTF-8 或 zh_CN.UTF-8
  • LC_*系列变量可以更细粒度控制,如LC_TIME控制时间格式

7. TERM

作用:终端类型

echo $TERM
# 通常显示为:xterm-256color

8. EDITOR

作用:默认文本编辑器

echo $EDITOR
# 可以设置为vim/nano等

9. PS1

作用:主命令提示符格式

echo $PS1
# 可以自定义命令行提示符

10. HISTSIZE / HISTFILESIZE

作用:控制命令历史记录大小

echo $HISTSIZE  # 内存中保存的历史命令数量
echo $HISTFILESIZE  # 历史文件保存的命令数量

环境变量的设置方法

1. 临时设置(仅当前会话有效)

export 变量名=值
# 例如
export MY_VAR="test"

2. 永久设置

对当前用户:编辑~/.bashrc~/.bash_profile~/.profile文件,添加:

export 变量名=值

然后执行:

source ~/.bashrc

对所有用户:编辑/etc/environment/etc/profile文件(需要root权限)

环境变量的继承

  • 父进程的环境变量会被子进程继承
  • 子进程对环境变量的修改不会影响父进程

特殊环境变量

  1. $?:上一个命令的退出状态

    echo $?
    # 0表示成功,非0表示失败
    
  2. $$:当前shell的进程ID

    echo $$
    
  3. $0:当前脚本或命令的名称

    echo $0
    
  4. $1, $2, ... $n:脚本或函数的参数

    # 在脚本中
    echo "第一个参数: $1"
    

实际应用示例

示例1:添加自定义路径到PATH

# 临时添加
export PATH=$PATH:/opt/myapp/bin

# 永久添加(对当前用户)
echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc
source ~/.bashrc

示例2:设置Java环境

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

示例3:自定义提示符

# 在~/.bashrc中添加
export PS1='\u@\h:\w\$ '
# \u - 用户名
# \h - 主机名
# \w - 当前工作目录

注意事项

  1. 变量名通常使用大写字母,但不是强制的
  2. 等号(=)两边不能有空格
  3. 引用变量时使用$符号
  4. 修改系统级环境变量需要root权限
  5. 不同的shell(bash, zsh等)可能有不同的配置文件

通过合理设置和使用环境变量,可以大大提高Linux系统的工作效率和个性化程度。