Shell 是操作系统的命令解释器,处理在命令行中输入的命令,在 Linux 中广泛使用。变量就像指向特定数据的指针,并保存可以是任何值的特定值。用户可以在 Shell 的帮助下创建、删除或分配变量。
当 Shell 运行时,存在三种类型的变量:
- 局部变量
- 外壳变量
- 环境变量
在本教程中,我们将了解如何在 Linux 中设置环境和 Shell 变量。
什么是 shell 变量?
Shell 变量特定于当前 shell,并由 Shell 使用来正确运行。这些变量是临时的,要使它们永久化,您可以将它们导出为环境变量。
一些常见的 shell 变量是:
-
UID:当前登录用户的ID
-
主机名:特定时间计算机的主机名
-
BASH_VERSINFO:bash 版本的机器可读形式
-
BASH_版本:bash 版本的人类可读输出
-
迪斯塔克:可通过“popd”和“pushd”命令使用的目录堆栈
-
贝壳选择:可以设置外壳选项
什么是环境变量?
环境变量是系统范围内可用的变量,可供 shell 的任何程序或子进程使用。此外,Shell 脚本定义了运行程序所需的环境变量。
一些常见的环境变量是:
-
MAIL:用户的邮件目录或用户邮箱的路径
-
TEMP:临时文件的目录位置
-
PWD:当前工作目录
-
OLDPWD:之前的工作目录
-
USER:当前用户已登录
-
LANG:当前语言
-
LOGNAME:用户名
-
HOME:当前用户的主目录
-
_:最近执行的上一个命令
-
SHELL:当前的外壳
-
EDITOR:Linux默认的文本编辑器
-
主机名:网络上设备的主机名
以下是一些可帮助您设置 Shell 和环境变量的命令:
-
env:您可以使用自定义环境来运行另一个程序,而无需修改现有环境。
-
打印环境:这将打印系统的所有环境变量。
-
set:用于设置环境和 shell 变量。
-
unset:用于删除环境变量和shell变量。
-
exports:让我们将 shell 变量导出到环境变量中。
如何打印Shell和环境变量?
Shell 跟踪所有环境和 Shell 变量。要访问它,我们可以使用这两个命令:
-
打印环境:打印所有环境变量。
-
set:打印 Shell 变量。
如何在Linux中设置环境变量和Shell变量?
现在我们知道环境变量和 Shell 变量是什么了。那么让我们学习如何在 Linux 中创建和设置这些变量。实际中清楚地理解环境变量和 Shell 变量之间的区别。我们将首先设置 Shell 变量,然后设置环境变量。
创建 Shell 变量
- 要设置 Shell 变量,请在 Shell 中运行此命令。这将创建一个可在当前会话中使用的 Shell 变量。
TESTVAR='Hello!'
- We can also check our variable with the grep command.
set | grep TESTVAR
您将看到这样的输出。
TESTVAR='Hello!'
- 您还可以使用以下命令查看 shell 变量的值。
echo $TESTVAR
- As it is a Shell variable, so it will not be available for other applications or child processes. You can even verify that it is not an Environment variable.
printenv | grep TESTVAR
不会有任何输出。这意味着它不是环境变量。
创建环境变量
这样就可以在Linux中设置Shell和Environment了。
取消设置变量
现在您知道如何设置变量了。让我们了解如何取消它们。
- 您可以使用此命令再次将环境变量更改为 Shell 变量。
export -n TESTVAR
- 它将仍然是一个 Shell 变量,但不是一个环境变量。让我们验证一下。
printenv | grep TESTVAR
- There will be no output but if we check it for the Shell variable,
set | grep TESTVAR
你会看到输出。
TESTVAR='Hello!'
- 如果您想完全取消设置,请使用此命令。
unset TESTVAR
结论
如果您经常使用 Shell,那么环境和 Shell 变量可能对您非常有用,从长远来看,学习如何设置和取消设置这些变量将会有好处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)