Linux环境变量
printen
用法
printenv
解释
printenv
是一个简单的命令,用于打印当前用户的所有环境变量及其对应的值。- 如果你需要查看特定的环境变量,可以在命令后面加上变量名,例如:
这将输出printenv PATH
PATH
变量的值,通常包含可执行文件的搜索路径。
特点
- 输出格式为
变量名=变量值
。 - 不会显示未设置的变量。
env
用法
env
解释
env
命令不仅可以显示当前的环境变量,还可以在指定的环境下运行其他命令。- 运行
env
时,不带参数,它也会列出当前所有的环境变量,输出格式与printenv
类似。
特点
- 可以用于临时修改环境变量并执行命令。例如:
这会在执行env VAR_NAME=value command
command
时,将VAR_NAME
设置为value
。
例子
env VAR1=value1 ./my_script.sh
在执行 my_script.sh
时,VAR1
将被设置为 value1
。
环境变量及其含义
一、用户身份相关
- USER
标识当前用户名(示例:USER=root
) - LOGNAME
当前登录用户名(示例:LOGNAME=root
) - SUDO_USER
执行sudo
时的原始用户名(示例:SUDO_USER=zxwang
) - SUDO_UID
执行sudo
时的原始用户 ID(示例:SUDO_UID=1000
) - SUDO_GID
执行sudo
时的原始用户组 ID(示例:SUDO_GID=1000
)
二、系统路径相关
- PWD
当前工作目录(示例:PWD=/root
) - OLDPWD
上一次的工作目录(示例:OLDPWD=/home
) - HOME
当前用户主目录(示例:HOME=/root
) - PATH
可执行文件搜索路径(示例:PATH=/usr/bin:/bin:/usr/sbin
)
三、语言环境相关
- LANG
系统默认语言和编码(示例:LANG=C.UTF-8
) - LC_*
特定分类的本地化设置(如LC_TIME=zh_CN.UTF-8
控制时间格式)
四、网络代理相关
- HTTP_PROXY
HTTP 协议代理地址(示例:HTTP_PROXY=127.0.0.1:8080
) - HTTPS_PROXY
HTTPS 协议代理地址(示例:HTTPS_PROXY=127.0.0.1:8080
)
五、命令执行相关
- SHELL
当前 Shell 程序路径(示例:SHELL=/bin/bash
) - SUDO_COMMAND
通过sudo
执行的完整命令(示例:SUDO_COMMAND=/usr/bin/su
) - _
上一个执行的命令路径(示例:_=/usr/bin/printenv
)
六、终端与会话
- TERM
终端类型(示例:TERM=xterm
) - DISPLAY
X Window 图形界面显示标识(示例:DISPLAY=:0
) - XDG_SESSION_TYPE
会话类型(示例:XDG_SESSION_TYPE=tty
表示命令行,x11
表示图形界面)
七、开发工具相关
- JAVA_HOME
Java 安装根目录(示例:JAVA_HOME=/usr/lib/jvm/java-11
) - PYTHONPATH
Python 模块搜索路径(示例:PYTHONPATH=/opt/mylibs
) - LD_LIBRARY_PATH
动态链接库搜索路径(示例:LD_LIBRARY_PATH=/usr/local/lib
)
八、其他配置
- MAIL
用户邮件存储路径(示例:MAIL=/var/mail/root
) - HOSTNAME
系统主机名(示例:HOSTNAME=ac
) - EDITOR
默认文本编辑器(示例:EDITOR=vi
) - PS1
Bash 提示符格式(示例:PS1=\u@\h:\w\$
) - SSH_AUTH_SOCK
SSH 代理套接字文件路径(示例:SSH_AUTH_SOCK=/tmp/ssh-abc123/agent.123
)