Shell 变量对于任何 Linux 系统的平稳运行都很重要。例如,每次运行程序或命令时,系统都会查看 PATH 变量以检查该程序是否存在。了解 shell 变量对于您日常使用或管理 Linux 系统很重要。
Shell 变量的重要性
shell 变量是一个占位符,用于存储 Linux 系统、程序或脚本使用的信息。
Linux 上有不同类型的 shell 或命令行解释器,它们都广泛使用变量。shell 变量扮演的一些重要角色包括:
- Shell 变量允许您在 Shell 中存储和操作值,并且可以在计算或其他操作中操作结果。
- 它们提供了一种在脚本和程序之间传递值的方法
- 您可以使用 shell 变量来自定义程序的行为
Shell 变量非常灵活;您也可以创建自己的自定义变量,但这里有一些系统自带的默认变量。
1、PATH
PATH 变量指定当您在终端中输入命令时系统应在其中搜索可执行文件的目录。
它是一个系统范围的环境变量,包含一个以冒号分隔的目录列表。依次在每个目录中搜索与您输入的命令同名的可执行文件。
例如,如果您在终端中输入ls 命令,系统将在 PATH 变量中指定的目录中搜索名为 ls 的命令。如果找到该文件,它将运行它;如果没有,它将显示“找不到命令”的错误消息。
PATH 变量很重要,因为它允许您从任何目录运行命令,而无需指定可执行文件的完整路径。例如,如果/usr/bin目录中有“ls”可执行文件,则只需键入 ls 即可从任何目录运行 ls 命令,而无需指定完整路径,即 /usr/bin/ls。
您可以通过运行 echo 命令来查看 PATH 变量的当前值,如下所示:
您还可以通过在列表中添加或删除目录来修改 PATH 变量的值。如果您想要添加包含您自己的可执行文件或自定义脚本的目录,或者如果您想要修改运行命令时搜索的目录,这将很有用。
2、HOME
在 Linux 上,HOME 变量是一个环境变量,用于指定用户主目录的路径。为什么这个这么重要?因为 Linux 是一个多用户操作系统,主文件夹是系统上与每个用户关联的特殊目录。
home目录通常用于存放用户的个人文件,如文档、图片、音乐等。
HOME 变量通常在您登录时自动设置,许多程序和脚本使用它来定位用户的主目录。例如,当您运行不带任何参数的 cd 命令时,它会使用 HOME 变量导航到用户的主目录。
许多程序使用 HOME 变量在用户的主目录中存储配置文件或其他数据。您可以通过运行echo $HOME命令来查看 HOME 变量的当前值。
3、USER
USER 变量指定当前登录用户的用户名。它在您登录时自动设置,程序和脚本通常使用它来确定当前用户的用户名。
USER 变量常用于脚本中,以根据当前用户自定义程序的行为。例如,脚本可能会检查 USER 变量的值,并且仅在当前用户具有 root 或 sudo 权限时才执行某些操作。
您还可以使用该变量来运行某些通用命令。例如,将您的用户添加到 docker 组时,您可以简单地运行以下命令而不是键入实际的用户名:
4、shell
shell 是一种提供命令行界面 (CLI) 以与操作系统交互的程序。
大多数 Linux 系统默认使用 Bourne Again Shell (Bash),但也有很多替代品。C shell (csh)、Z shell (Zsh)、fish 等。
SHELL 变量指定用户默认 shell 的路径。它会在您登录时自动设置。
此外,该变量在脚本中用于根据用户的默认 shell 自定义程序的行为。例如,脚本可能会检查 SHELL 变量的值,并根据所使用的 shell 使用不同的语法或选项。
您可以通过运行echo $SHELL查看 SHELL 变量的当前值。您可以使用 chsh 命令更改您的默认 shell 。
相关链接:使用chsh更改Linux中默认Shell https://www.linuxmi.com/chsh-linux-shell.html
5、PWD
Linux 上的另一个重要环境变量,PWD 存储您当前的工作目录。与大部分静态的环境变量不同,只要您使用 cd 命令更改目录,这个环境变量就会由 shell 更新。
您可以在 shell 脚本中使用 PWD 变量轻松引用当前工作目录。该变量的值类似于您在运行 pwd 命令时获得的值。
6、HOSTNAME
主机名或设备名是用于在网络上识别您的计算机的唯一名称。例如,当你想通过 SSH 连接到一台机器时,你可以简单地使用主机名而不是 IP 地址。
HOSTNAME 变量是一个环境变量,它只指定系统的主机名。它在系统启动时自动设置,通常用于在系统连接到网络时识别系统。您可以通过多种方式更改 Linux 上的主机名。
程序和脚本也使用 HOSTNAME 变量来识别系统并根据主机名自定义其行为。脚本通常会检查 HOSTNAME 变量的值,并且仅在系统是特定主机时才执行某些操作。
在 Linux 上创建自定义变量
除了自动为您设置的默认 Linux 变量。您还可以使用 export 命令定义自己的 shell 变量。要创建一个名为 GREETING 且值为“Hello World”的新变量,您可以使用以下命令:
然后,您可以像使用任何其他环境变量一样在脚本或命令行中使用 GREETING 变量。