source是一个方便的内置shell命令,它接受参数,解析脚本中的命令,并在shell环境中执行它们。该文件的内容由源读取并传递给执行命令的工具命令语言(TCL)解释器。现在让我们学习如何在Linux上使用source执行命令和使用shell环境,并简要说明它与bash命令的区别。使用source执行文件中的命令要使用source命令,您首先需要创建一个示例文件并在其中填充一些shell命令。首先使用touch命令创建一个新文件。在您选择的文本编辑器中打开文件并编写一些基本的shell命令。touchlinuxmi.txtvimlinuxmi.txt#在文本文件中写入命令:echo"Hello!Linuxfanlinuxmi.com"pwdls#使用Source语法或点语法。linuxmi.txtsourcelinuxmi.txt写入一个文本文件并继续使用它作为传递给source命令的参数。系统将执行文件中的命令并返回输出。现在您了解了如何使用源代码的基础知识,让我们尝试更改Bashshell环境。但是,在继续之前,您必须对Linux中的环境变量有一个基本的了解。使用source命令更新BashShell环境在Linux上,环境变量是继承但不可变的。如果您执行修改环境变量$TEST的Bashshell脚本,该脚本将生成一个新的分叉shell进程,$TEST的修改将在那里进行,而不是原来的Bash环境。子进程将无法修改父进程的环境。它只能修改自己的环境。让我们用一个实际的例子来理解这一点:exportTEST="deb"vimlinuxmi#在文件中键入这些命令exportTEST="bed"echo$TEST#写入文件,使其可执行,然后执行它chmod+xlinuxmi./linuxmi#这将返回“bed”echo$TEST#这将返回“deb”这就是source命令发挥作用的地方。使用source命令,您可以在相同的shell环境中执行脚本,否则将被分叉。因此,如果您获取修改环境变量的脚本,它将对Bashshell环境进行更改。要对其进行测试,请将上面代码框中的命令写入一个新文件并使用source命令而不是使其可执行。#创建一个新文件并编辑它vimlinux.linuxecho$TEST#运行后返回“bed”可以看到,使用source命令,可以更新父进程的环境变量。这是source命令的主要用例,即修改父环境。这就是使用source命令更新Bashshell环境所需的全部。Linuxbash和source命令的区别Linuxbash和source命令的区别是,当你用bash命令执行脚本时,它告诉Linux内核创建一个新的Bash进程来读取和执行脚本,将输出复制到原始shell进程,并显示它们。但是source命令是一个shell内置命令,可以读取和评估当前shell进程中的文件。因此,脚本所做的所有更改都将保留在Bashshell中。排除source命令错误在某些Linux系统上,您可能会在尝试使用source命令时遇到错误“找不到源”。您可以通过两种方式修复此错误:1.更改shell有些shell不支持source命令。在这种情况下,您需要使用chsh-s($whichshell_name)命令更改您的shell环境。换壳后启动一个新的终端,并尝试source命令。如果新的shell支持source命令,它应该可以完美地工作。2.使用点/句点语法有些shell环境不支持“source”语法,但支持“.”。句法。“source”语法是Bash中点的同义词。但这在POSIXshell中不起作用,因此为了获得最大兼容性,请使用句点语法。你应该知道的基本Linux命令Linuxshell命令是使用终端与系统交互的好方法。它们是使用*NIX系统的本质。虽然您不需要了解所有命令,但熟悉一些有用的命令肯定会在您深入Linux世界时获得回报。
