Linux 中的 Source 命令是什么?如何使用它?
source 命令是一个方便的实用程序,可用于刷新环境变量等。
source 命令在当前 shell 中执行文件中的命令。它还可以用来刷新环境变量,说实话,source命令的主要用途就是刷新环境变量。
source filename [options]
您也可以使用 . (点)而不是像这样的源命令:
. filename [options]
源命令如何工作?
该命令的语法很简单,但理解它需要稍微深入地了解一些 Linux 概念。如果您是 Linux 或编程新手,您可能对变量是什么只有一个模糊的概念。
如果您听说过这个术语,但不知道它的确切含义,没关系!请记住,我们所有人都是从同一个地方开始的。没有人会在早上突然醒来成为一名系统管理员或程序员。
在继续之前我将做一个简短的解释。
如果您已经熟悉如何在 bash 中创建变量,则可以跳到下一个标题。
变量概述
您可以打开任何 bash 终端并创建新变量。变量可以被认为是一个占位符,可用于将系统指向一条信息(字母、数字或符号)。
让我们看一个例子。我将创建一个名为 name 的新变量,并分配值 Christopher。
在 bash 中,这是使用以下公式完成的:variable_name=your_variable。请勿在 = 符号和文本之间添加任何空格。
christopher@linux:~$ name=Christopher
christopher@linux:~$ echo $name
Christopher
如果我只输入变量名称会发生什么?
christopher@linux:~$ echo name
name
如果您忘记了这个符号,bash 将返回您输入的文本。在这里,我告诉它回显或打印“name”。如果没有 $符号,bash 无法识别您想要使用您创建的变量。
您的变量将被插入到被调用的地方。所以我也可以将它包含在这样的句子中:
christopher@linux:~$ echo "Hello, $name. $name is a great name. It's good to meet you."
Hello, Christopher. Christopher is a great name. It's good to meet you.
您可以使用变量做很多事情,但我希望入门知识足以让阅读本文的任何人了解它们的工作原理。
环境变量与 shell 变量
对于理解源命令的下一个关键,我们来谈谈持久化。这是考虑 shell 和环境内容之间差异的简单方法。根据上下文,您也可能会从“可移植性”的角度来考虑它。
简而言之,如果您在终端 shell 中创建变量,那么一旦退出该 shell,该变量就会丢失。
相反,环境变量在您的操作系统中具有持久性。这些变量通常使用全部大写来区分自己。
例如,您的用户名被操作系统称为 $USER。
christopher@linux:~$ echo $USER
christopher
好的,您花了相当多的时间来研究环境变量和 shell 变量之间的差异。这与来源有什么关系?一切,真的。
否则,运行 source 和 bash 就没有区别。为了说明这一点,我还准备了一个演示。
源码与 Bash
如果您使用 Linux 一段时间,您可能遇到过这些命令并认为它们做了同样的事情。毕竟,这两个命令都可以用来执行脚本。
Source 在当前 shell 中工作,与运行 bash 不同,bash 会创建一个新 shell。这并不明显,因为没有显示新窗口。
如果您按照步骤进行操作,则需要您编写一个非常简单的脚本(我们称之为 echo.sh),如下所示:
#! bin/bash
echo $USER
echo $name
在终端中执行任何其他操作之前,请将您的名称分配给变量名称。
christopher@linux:~$ name=chris
接下来,我将向您展示当您在分配变量的同一终端中尝试所有 3 个命令时会发生什么。
christopher@linux:~$ bash echo.sh
christopher
christopher@linux:~$ source echo.sh
christopher
chris
christopher@linux:~$ . echo.sh
christopher
chris
正如您所看到的,当您通过 bash 执行脚本时,您的局部变量未被识别。
使用source命令刷新环境变量
Source 还可用于更新当前 shell 中的环境变量。此任务的一个常见应用是更新当前 shell 中的 bash 配置文件。
用户可能想要修改他们的 bash 配置文件来创建别名。通常,保存配置后,您将需要打开一个新的终端窗口才能进行更改。
christopher@linux:~$ source .bashrc
运行此命令将刷新当前 shell 中的设置,而不会强制您打开新终端。
结论
我们希望您喜欢本关于 source 命令的教程。一如既往,请在评论部分告诉我们您的想法。如果您喜欢这篇文章,请使用下面的按钮在社交媒体上分享。