查看和修改环境变量
env
– 您可以通过从任何目录在终端中输入 env 来查看所有默认环境变量。环境变量的名称始终为大写,如 HOME、PATH、SHELL 等。
查看所有环境变量
set
– 查看所有环境变量,包括 shell 变量、局部变量和 shell 函数(例如任何用户定义的变量和命令别名)。
更改会话的变量值
以HISTSIZE 变量举例子,HISTSIZE 变量包含要存储在历史文件中的命令数的值。
因为这个变量只有一个值,所以要更改它,可以使用下面的方式:HISTSIZE=0
使变量值更改永久化
如果您想让变量的更改永久生效,则需要使用export
命令。 此命令会将新值从当前环境(bash shell)导出到任何新的分叉子进程。 这允许新进程继承导出的变量。
变量是字符串,因此如果您谨慎运行,在修改变量之前将其内容保存到文本文件中并不是一个坏主意。 例如,由于我们要更改 PS1 变量(该变量控制提示中显示的信息),因此首先运行以下命令将现有值保存到当前用户主目录中的文本文件中:echo $HISTSIZE> ~/valueofHISTSIZE.txt
这样,您随时可以撤消更改。 如果您想更加谨慎并创建一个包含所有当前设置的文本文件,您可以使用如下命令将 set 命令的输出保存到文本文件中:set> ~/valueofALLon01012019.txt
更改变量后,您可以通过输入 export
然后输入更改的变量名称来使更改永久生效,如下所示:
HISTSIZE=1000
export HISTSIZE
此代码片段会将 HISTSIZE 变量的值设置为 1,000 并将其导出到您的所有环境。
更改您的 Shell 提示符
shell 提示符是另一个环境变量,它为您提供有用的信息,例如您正在操作的用户以及您当前工作的目录。
您可以通过设置 PS1 变量的值来更改默认 shell 提示符中的名称。 PS1 变量有一组占位符,用于显示要在提示中显示的信息,包括以下内容:
\u
– 当前用户的名称。\h
– 主机名。\w
– 当前工作目录的基本名称
例如:
改变你的PATH
环境中最重要的变量之一是 PATH 变量,它控制 shell 在系统上的何处查找您输入的命令,例如 grep、ls 和 echo。
大多数命令位于 sbin 或 bin 子目录中,例如 /usr/local/sbin 或 /usr/local/bin。 如果 bash shell 在您的 PATH 变量中的某个目录中没有找到该命令,它将返回错误命令未找到,即使该命令确实存在于您的目录中,但不在 PATH 中的。
您可以通过对 PATH 变量的内容使用 echo 来找出 PATH 变量中存储了哪些目录,如下所示:echo $PATH
这些是您的终端将在其中搜索任何命令的目录。每个目录由冒号 (😃 分隔。 不要忘记将 $ 内容符号添加到 PATH 中。 当我们在变量前放置 $ 时,我们是在向系统询问变量的内容。
添加到 PATH 变量
每次你想使用自己下载的工具时,你首先必须导航到你自己的工具目录,如果你想经常使用该工具,这有点不方便。
为了能够从任何目录使用这个新工具,您需要将保存该工具的目录添加到您的 PATH 变量中。使用命令:PATH=$PATH:<你的工具的目录>
。这会将原始 PATH 变量加上你提供的目录分配给新的 PATH 变量,因此该变量包含它之前所做的所有内容以及新的工具目录。
对于您经常使用的目录,添加到 PATH 可能是一种有用的技术,但请注意不要向 PATH 变量添加太多目录。 因为系统必须搜索 PATH 中的每个目录来查找命令,所以添加大量目录可能会减慢终端。
创建用户定义变量
您可以在 Linux 中创建自己的自定义用户定义变量,只需将值分配给您命名的新变量即可。 当您正在执行一些更高级的 shell 脚本或发现您经常使用一个长命令而您厌倦了一遍又一遍地输入时,这可能很有用。
语法很简单:输入变量的名称,后跟不带空格的赋值符号 (=),然后是要放入变量中的值,如下所示:MYNEWVARIABLE="Hacking is the most valuable skill set in the 21st century"
就像我们的系统环境变量一样,用户定义的变量必须导出才能保留到新会话中。
unset <变量名>
– 如果要删除这个新变量或任何变量,请使用 unset 命令。 不过,在删除系统变量之前一定要三思而后行,因为之后您的系统的运行方式可能会大不相同。