Linux 列出所有环境变量命令
如何在 RHEL / Debian / Ubuntu / CentOS / Fedora / Mint Linux 操作系统上使用 bash shell 显示所有环境变量?你能告诉我列出所有 shell 环境变量的 Linux 命令吗?
您可以使用以下任一命令来显示和列出 shell 环境变量及其值。printenv 命令列出指定环境变量的值。如果没有指定变量,则打印所有变量的名称和值对。
您可以使用以下任一命令来显示和列出 shell 环境变量及其值。printenv 命令列出指定环境变量的值。如果没有指定变量,则打印所有变量的名称和值对。
- printenv命令 – 打印全部或部分环境。
- env命令 – 显示所有导出的环境或在修改的环境中运行程序。
- set命令 – 列出每个 shell 变量的名称和值。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix |
预计阅读时间 | 4 分钟 |
Linux 列出所有环境变量命令
我建议你使用 printenv 命令。语法如下:
printenv printenv | less printenv | more
图 01:用于查看 Linux bash 终端中当前定义的所有环境变量列表的命令
Linux 中常用变量列表
我们使用 printf 命令/echo 命令来显示 Linux 中 shell 变量的值。
系统变量 | 意义 | 查看变量值类型 |
---|---|---|
BASH_VERSION | 保存此 bash 实例的版本。 | echo $BASH_VERSION |
HOSTNAME | 您的计算机的名称。 | echo $HOSTNAME |
CDPATH | cd 命令的搜索路径。 | echo $CDPATH |
HISTFILE | 保存命令历史记录的文件的名称。 | echo $HISTFILE |
HISTFILESIZE | 历史文件包含的最大行数。 | echo $HISTFILESIZE |
HISTSIZE | 命令历史记录中要记住的命令数。默认值为 500。 | echo $HISTSIZE |
HOME | 当前用户的主目录。 | echo $HOME |
IFS | 内部字段分隔符,用于扩展后的单词分割以及使用内置命令 read 将行分割为单词。默认值为 <space><tab><newline>。 | echo $IFS |
LANG | 用于确定未使用以 LC_ 开头的变量专门选择的任何类别的区域设置类别。 | echo $LANG |
PATH | 命令的搜索路径。它是以冒号分隔的目录列表,shell 会在这些目录中查找命令。 | echo $PATH |
PS1 | 您的提示设置。 | echo $PS1 |
TMOUT | read 内置命令的默认超时。同样在交互式 shell 中,该值被解释为发出命令后等待输入的秒数。如果没有提供输入,它将注销用户。 | echo $TMOUT |
TERM | 您的登录终端类型。 | echo $TERM export TERM=vt100 |
SHELL | 设置登录 shell 的路径。 | echo $SHELL |
DISPLAY | 设置X显示名称 | echo $DISPLAY export DISPLAY=:0.1 |
EDITOR | 设置默认文本编辑器的名称。 | export EDITOR=/usr/bin/vim |
设置和 env 命令
您也可以使用 env / set 命令:
env env | more set set | more
示例输出:
HOME=/home/vivek vivek@nas01:~$ env TERM=xterm-256color SHELL=/bin/bash XDG_SESSION_COOKIE=9ee90112ba2cb349f07bfe2f00002e46-1381581541.324726-906214463 SSH_CLIENT=192.168.1.6 60190 22 SSH_TTY=/dev/pts/1 USER=vivek MAIL=/var/mail/vivek PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games PWD=/home/vivek LANG=en_IN SHLVL=1 HOME=/home/vivek LANGUAGE=en_IN:en LOGNAME=vivek SSH_CONNECTION=192.168.1.6 60190 192.168.1.10 22 _=/usr/bin/env
关于 env/set 命令的说明
该命令env将仅显示已导出的环境变量列表,而不会显示所有 bash 变量。该set命令允许您更改 shell 选项的值并设置位置参数,或者显示 shell 变量的名称和值。如果没有提供任何选项或参数,set 将显示所有 shell 变量和函数的名称和值,并根据当前语言环境排序,格式可重新用作设置或重置当前设置的变量的输入。因此,我建议您使用 printenv 命令将所有 shell 变量的列表转储到屏幕上。要将所有 shell 环境变量的列表保存到文件中,请输入:
printenv > env.txt cat env.txt
使用grep 命令搜索特定变量:
printenv | grep foo printenv | grep HOME
结论
您学习了如何列出所有 Linux shell 环境变量。有关更多信息,请参阅以下资源:
- 来自 Linux shell 脚本 wiki 的 Bash shell 变量。
- 使用 man 命令或 help 命令查看以下手册页:
man 'printenv(1)'
man 1 bash
man 1 env