如何使用UEFI交互式Shell及其常用命令

您所在的位置:网站首页 避免使用shell方式执行命令 如何使用UEFI交互式Shell及其常用命令

如何使用UEFI交互式Shell及其常用命令

2024-07-12 07:57:58| 来源: 网络整理| 查看: 265

如何使用UEFI交互式Shell及其常用命令

新一代 UEFI 主板配备 UEFI Interactive Shell。 UEFI 交互式 shell 是一个简单的 shell 程序(如 bash),负责引导操作系统。您还可以使用 UEFI 交互式 shell 运行 EFI shell 命令和脚本。它也可用于更新主板的系统固件。

本文将向您展示如何在 UEFI 主板上访问 UEFI 交互式 shell 以及在 UEFI 交互式 shell 上使用一些常见的 EFI 命令。那么,让我们开始吧。

目录:

你需要知道的事情

从 UEFI Shell 读取 USB 拇指驱动器

启动 UEFI 交互式 Shell

cls 命令

回声命令

别名命令

帮助命令

设置命令

地图命令

cd 和 ls 命令

cp 命令

mv 命令

rm 命令

编辑命令

退出命令

重置命令

其他 EFI Shell 命令

输出重定向

结论

参考

您需要了解的事情:

我在本文中使用了 2 个不同的提示来编写 EFI Shell 命令。

Shell> – 我已使用此提示符来执行可以从任何地方运行的命令。

fs1:\*> – 我使用此提示来澄清您需要在运行命令之前选择某个存储设备(在本例中为 fs1)或位于特定目录中。

阅读本文时请务必牢记这一点。

从 UEFI Shell 读取 USB 拇指驱动器:

如果您将 USB 拇指驱动器格式化为 FAT16 或 FAT32,则 UEFI 交互式 shell 可以读取它。因此,假设您已经编写了一些 EFI 脚本或从主板制造商的官方网站下载了任何 EFI 脚本。在这种情况下,您必须将它们放入 FAT16 或 FAT32 格式的 USB 拇指驱动器中,才能从 UEFI 交互式 shell 访问和运行它们。

启动 UEFI 交互式 Shell:

首先,关闭计算机。然后,打开计算机电源。按下电源按钮后,按住键盘上的或键即可进入主板的BIOS/UEFI固件。

然后,在主板 BIOS/UEFI 固件的启动选择部分中,您应该找到进入 UEFI Interactive Shell 的选项。

在我的 Odyssey X86 单板计算机上,该选项位于“保存并退出”>“UEFI:内置 EFI Shell”中,如下图所示。

该选项是我的 VMware 虚拟机上的 EFI Internal Shell,如下面的屏幕截图所示。

当您第一次进入 UEFI Interactive Shell 时,它将打印您的计算机检测到的所有存储设备,如下面的屏幕截图所示。

一旦按下 以外的任意键或等待 5 秒钟,EFI Shell 就应该准备好执行命令。

在接下来的部分中,我将向您展示如何使用一些最常见的 EFI Shell 命令。那么,让我们继续吧。

cls 命令:

cls命令主要用于清除屏幕的输出。

屏幕上可能有很多文本,如下面的屏幕截图所示。

要清除屏幕文本,请运行 cls 命令,如下所示:

Shell> cls

屏幕上的文本应该被清除。

您还可以使用 cls 命令更改 EFI Shell 的背景颜色。

要更改 EFI Shell 的背景颜色,请运行 cls 命令,如下所示:

Shell> cls

在撰写本文时,cls 命令支持以下 。

0 – 黑色

1 – 蓝色

2 – 绿色

3 – 青色

4 – 红色

5 – 洋红色

6 – 黄色

7 – 浅灰色

例如,要将背景颜色更改为蓝色 (1),请运行 cls 命令,如下所示:

Shell> cls 2

背景颜色应更改为蓝色 (1),如下面的屏幕截图所示。

要将背景颜色更改为黑色,请运行 cls 命令,如下所示:

Shell> cls 0

背景颜色应更改为黑色 (0),如下面的屏幕截图所示。

回显命令:

echo 命令用于在 EFI Shell 上打印一行文本。

例如,要打印文本 Hello World,请运行 echo 命令,如下所示:

Shell> echo "Hello World"

正如您所看到的,文本 Hello World 打印在 EFI Shell 上。

如果您愿意,您也可以选择不使用任何引号。

别名命令:

您可以使用alias命令列出EFI Shell的所有命令别名。

要列出EFI Shell的所有命令别名,请运行alias命令,如下所示:

Shell> alias

如您所见,列出了所有 EFI Shell 命令别名。

您还可以使用 alias 命令来创建或删除别名。

要创建运行命令 echo Hello World 的命令别名 print_hello,您可以运行别名命令,如下所示:

Shell> alias print_hello "echo Hello World"

如您所见,创建了一个新的别名 print_hello。

现在,您可以运行 print_hello 命令,如下所示:

Shell> print_hello

默认情况下,您创建的别名将在系统重新启动后继续存在。当然,这是一件好事。但是,如果您不希望别名在系统重新启动后继续存在,则可以使用 -v 选项创建一个易失性别名。

您可以使用 -v 选项创建相同的别名 print_hello 作为易失性别名,如下所示:

Shell> alias -v print_hello "echo Hello World"

您可以使用 alias 命令的 -d 选项删除别名。

要删除别名 print_hello,请使用 -d 选项运行 alias 命令,如下所示:

Shell> alias -d print_hello

如您所见,别名 print_hello 已从别名列表中删除。

Shell> alias帮助命令:

help 命令用于使用模式查找 EFI Shell 命令。

例如,要查找所有以m开头的EFI Shell命令,可以运行help命令,如下所示:

Shell> help m*

列出了所有以 m 开头的 EFI Shell 命令,如下面的屏幕截图所示。

同理可以找到所有以m结尾的EFI Shell命令,如下:

Shell> help *m

列出了所有以 m 结尾的 EFI Shell 命令,如下面的屏幕截图所示。

您还可以了解如何使用 EFI Shell 命令、它们支持哪些选项以及每个选项使用帮助命令的用途。最后,您可以将其与 Linux man 命令进行比较。

例如,要了解如何使用 alias 命令,请运行 help 命令,如下所示:

Shell> help alias

应该显示有关帮助命令的大量信息。

如果某个命令的帮助信息很长,您可以按键盘上的和键分别向上和向下滚动。

如果输出太长,那么您将需要寻呼机来读取它。同样,您可以将其与 Linux less 程序进行比较。但与 Linux less 程序不同,EFI Shell 分页器逐页滚动而不是逐行滚动。

要对 help 命令使用寻呼机,请使用 help 命令的 -b 选项,如下所示:

Shell> help -b alias

别名命令的使用信息显示在寻呼机中,如下面的屏幕截图所示。

您可以按键转到下一页。

要关闭寻呼机,请按 q,然后按 。

设置命令:

set命令用于列出EFI Shell的所有可用环境变量。

要列出 EFI Shell 的所有可用环境变量,请运行 set 命令,如下所示:

Shell> set

列出了 EFI Shell 的所有环境变量,如下面的屏幕截图所示。

您还可以创建自己的 EFI Shell 环境变量。

要创建内容为 boot.img 的 EFI Shell 环境变量文件,请运行 set 命令,如下所示:

Shell> set file boot.img

环境变量文件已设置,如下面的屏幕截图所示。

默认情况下,您创建的 EFI Shell 环境变量将在系统重新启动后继续存在。但是,如果您不希望这样做,可以使用 set 命令的 -v 选项创建易失性 EFI Shell 环境变量。

例如,要创建与易失性环境变量相同的文件环境变量,请运行 set 命令,如下所示:

Shell> set -v file image.boot

您也可以删除 EFI Shell 环境变量。

要删除EFI Shell环境变量文件,请运行set命令,如下所示:

Shell> set -d file

文件环境变量应该不再可用,如下面的屏幕截图所示。

Shell> set地图命令:

map命令打印计算机所有存储设备的映射表。从映射表中,您可以找到计算机存储设备的设备名称。要从 EFI Shell 访问存储设备,您将需要该存储设备的设备名称。

要从 EFI Shell 列出计算机的所有存储设备,请运行 map 命令,如下所示:

Shell> map

应列出所有存储设备及其名称,如下面的屏幕截图所示。

如果您在计算机上插入新的存储设备(例如 USB 拇指驱动器),它不会自动列在映射表中。相反,您必须手动刷新映射表。

您可以使用map命令的-r选项刷新EFI Shell的映射表,如下所示:

Shell> map -r

EFI Shell 的映射表应该刷新,并且您的新存储设备应该列在新映射表中,如下面的屏幕截图所示。

cd 和 ls 命令:

您可以使用存储设备的名称来选择存储设备。

例如,选择存储设备fs1,可以运行以下命令:

Shell> fs1:

提示符应更改为 fs1:\>,如下面的屏幕截图所示。

现在,您可以列出存储设备 fs1(当前工作目录)上的所有文件和目录,如下所示:

fs1:\> ls

可以看到,存储设备fs1的所有文件和目录都列出来了。

您还可以通过 ls 命令使用相对目录路径来列出该目录的文件和目录。

例如,要列出 script\ 目录(相对于当前工作目录)的文件和目录,可以运行 ls 命令,如下所示:

fs1:\> ls scripts

应列出 script\ 目录的文件和目录。

在我的例子中,scripts\ 目录是空的。

您也可以通过 ls 命令使用绝对路径。

例如,要列出fs0存储设备的所有文件和目录,运行ls命令如下:

Shell> ls fs0:

应列出 fs0 存储设备的所有文件和目录,如下面的屏幕截图所示。

您可以使用 ls 命令的 -r 选项递归列出文件和目录。

例如,要递归列出fs0存储设备的所有文件和目录,运行ls命令如下:

Shell> ls -r fs0:

fs0 存储设备的所有文件和目录应递归列出,如下面的屏幕截图所示。

如果文件和目录列表太长而无法在屏幕上显示,可以使用 ls 命令的 -b 选项来使用分页器。

您可以递归列出 fs0 存储设备的所有文件和目录,并使用分页器进行输出,如下所示:

Shell> ls -r -b fs0:

ls 命令应使用分页器来显示输出,如下面的屏幕截图所示。

您可以使用 cd 命令导航到所选存储设备的不同目录。这将使您的命令更短,因为您不必输入长目录路径。

例如,要进入所选存储设备fs1的scripts\目录,可以运行cd命令,如下所示:

fs1:\> cd scripts

当前工作目录应更改为 fs1:\scripts\,如下面的屏幕截图所示。

要返回上一级目录,可以运行 cd 命令,如下所示:

fs1:\scripts> cd ..

您应该向上一级目录,如下面的屏幕截图所示。

cp 命令:

cp 命令用于将文件从一个存储设备复制到另一个存储设备或同一存储设备内。

我在存储设备 fs1 中有一个 hello.txt 文件,如下面的屏幕截图所示。

fs1:\> ls

要制作 hello.txt 的新副本,请运行 cp 命令,如下所示:

fs1:\> cp hello.txt hello2.txt

应创建一个新文件 hello2.txt,并将 hello.txt 文件的内容复制到 hello2.txt 文件。

fs1:\> ls

如果要将hello.txt文件以相对目录路径复制到同一存储设备的scripts\目录下,请执行cp命令,如下:

fs1:\> cp hello.txt scripts

如您所见,hello.txt 文件被复制到scripts\ 目录中。

fs1:\> ls scripts

您还可以使用绝对路径将 hello.txt 文件复制到 \scripts 目录,如下所示:

fs1:\> cp \hello.txt \scripts

由于文件已经存在,cp 命令会询问您是否要覆盖它。

如果要覆盖该文件,请按 y,然后按 。

如果您不想覆盖该文件,请按 n,然后按 。

如果要覆盖所有已存在的文件,请按 a,然后按 。

如果您不知道该怎么做,请按 c 并按 键取消复制操作。

应将 hello.txt 文件复制到 \scripts 目录。

同理,如果要将hello.txt文件复制到另一个存储设备fs0的根目录下,可以运行cp命令,如下所示:

fs1:\> cp hello.txt fs0:\

如您所见,hello.txt 文件被复制到 fs0 存储设备的根目录下。

Shell> ls fs0:\

您还可以使用 cp 命令的 -r 选项将目录的内容递归复制到另一个目录或存储设备。

要将fs0:\EFI目录的内容递归复制到存储设备fs1,请运行cp命令,如下所示:

Shell> cp -r fs0:\EFI\ fs1:\

fs0:\EFI 目录中的所有文件和目录都应复制到存储设备 fs1,如下面的屏幕截图所示。

可以看到,fs0:\EFI 目录中的 ubuntu\ 和 BOOT\ 目录被递归复制到 fs1 存储设备。

Shell> ls fs0:\EFI Shell> ls fs1:\

如果要将 fs0:\EFI 目录及其内容复制到 fs1 存储设备,请运行 cp 命令,如下所示:

Shell> cp -r fs0:\EFI fs1:\

可以看到,fs0:\EFI目录被递归复制到fs1存储设备上。

Shell> ls fs0:\ Shell> ls fs1:\mv 命令:

mv 命令的工作方式与 cp 命令相同。唯一的区别是 mv 命令将文件或目录从源移动到目标,而不是复制它们。

由于mv命令和cp命令类似,这里不再解释。只需阅读 cp 命令部分并将 cp 命令替换为 mv 命令。你会很高兴去的。

mv 命令还有另一个用例。 mv 命令也用于重命名文件和目录。

例如,要将文件hello2.txt重命名为hello3.txt,请运行mv命令,如下所示:

fs1:\> mv hello2.txt hello3.txt

hello2.txt 应重命名为 hello3.txt。

可以看到,hello2.txt文件不再位于fs1存储设备中,并被重命名为hello3.txt。

fs1:\> ls

同样,您可以使用 mv 命令重命名目录。

例如,要将目录 ubuntu\ 重命名为 debian\,请运行 mv 命令,如下所示:

fs1:\> mv ubuntu debian

可以看到,ubuntu\目录已重命名为debian\。

fs1:\> lsrm 命令:

rm 命令用于从存储设备中删除文件和目录。

要从 fs1 存储设备中删除文件 hello3.txt,请运行 rm 命令,如下所示:

fs1:\> rm hello3.txt

应删除 hello3.txt 文件。

可以看到,hello3.txt 文件已经不在 fs1 存储设备中了。

fs1:\> ls

同样,您可以从 fs1 存储设备中删除 debian\ 目录,如下所示:

fs1:\> rm debian

当您删除可能包含其他文件和目录的目录时,rm 命令会询问您是否要删除它们。这是一项安全措施,以免您意外删除重要文件。

要确认删除操作,请按 y,然后按 。

应删除 debian\ 目录及其内容。

正如您所看到的,debian\ 目录在 fs1 存储设备中不再可用。

fs1:\> ls编辑命令:

EFI Shell 附带一个名为 EFI Editor 的基本文本编辑器程序。它非常有用,因为您可以从 EFI Shell 轻松编辑配置文件。

您可以使用 EFI Editor 程序从 fs1 存储设备打开 hello.txt 文件,如下所示:

fs1:\> edit hello.txt

hello.txt 文件应使用 EFI 编辑器程序打开。您可以从此处编辑文本/配置文件。

编辑完 hello.txt 文件后,按 键,然后按 键保存文件。

应保存文件 hello.txt。

要关闭 EFI 编辑器程序,请按 。

如果您有未保存的更改,EFI 编辑器程序将询问您是否要保存它们。

按 y 保存更改并关闭 EFI 编辑器程序。

按 n 放弃更改并关闭 EFI 编辑器程序。

如果您改变主意并且不想再关闭 EFI 编辑器程序,请按 c。

EFI 编辑器程序还有许多其他令人惊叹的功能。不幸的是,将它们全部展示超出了本文的范围。

您可以查看 EFI 编辑器程序的底部,您应该找到使用 EFI 编辑器程序的其他功能所需的所有信息。另外,您可以将EFI Editor程序与Linux的nano文本编辑器进行比较。太奇妙了。

退出命令:

exit 命令用于关闭 EFI Shell,返回主板的 BIOS/UEFI 固件。

要关闭 EFI Shell,请运行 exit 命令,如下所示:

Shell> exit

最好返回主板的 BIOS/UEFI 固件,如下面的屏幕截图所示。

重置命令:

重置命令用于重置或重新启动计算机。

要从 EFI Shell 重新启动计算机,请运行重置命令,如下所示:

Shell> reset

重置命令也可用于关闭计算机。

要从 EFI Shell 关闭计算机,请运行带有 -s 选项的重置命令,如下所示:

Shell> reset -s其他 EFI Shell 命令:

还有许多其他 EFI Shell 命令。涵盖所有内容超出了本文的范围。但是,您可以阅读 EFI Shell 文档 [1] 来了解它们。您还可以使用 help 命令来查找可用的 EFI Shell 命令。您也可以使用 help 命令来阅读 EFI Shell 命令的文档。 EFI Shell 文档非常广泛且充满信息和示例。它也非常简单且易于遵循。阅读它应该不会有任何困难。

输出重定向:

就像 bash 和其他 Linux shell 一样,EFI Shell 也支持输出重定向。因此,您可以使用 EFI Shell 的输出重定向功能将 EFI Shell 命令的输出重定向到文件。

例如,您可以将 echo “Hello World” 命令的输出重定向到文件 message.txt,如下所示:

fs1:\> echo "Hello World" > message.txt

应创建一个新文件 message.txt,如下面的屏幕截图所示。

fs1:\> ls

如您所见,它包含内容 Hello World。

fs1:\> edit message.txt

如果要将另一个命令 echo“Good Luck”(比方说)的输出附加(添加到文件末尾)到 message.txt 文件,可以使用 >> 符号而不是 > 符号,如下所示:

fs1:\> echo "Good Luck" >> message.txt

如您所见,文本 Good Luck 已添加到 message.txt 文件的末尾。

fs1:\> edit message.txt

以同样的方式,您可以将 help map 命令的输出重定向到文件 map-help.txt,如下所示:

fs1:\> help map > map-help.txt

如您所见,创建了一个新文件map-help.txt。

fs1:\> ls

如您所见,help map 命令的输出被重定向到 map-help.txt 文件。

fs1:\> edit map-help.txt

注意:进行输出重定向时,必须记住 > 和 >> 符号之间的区别。这是非常重要的。如果您对这些符号没有足够的了解,您可能会丢失重要数据。

假设您已在 EFI Shell 上运行以下命令:

Shell> command > file

在这里,> 符号会将命令的输出重定向到文件。如果该文件不存在,则会创建该文件。如果该文件确实存在,则该文件的内容将被命令的输出替换。记住这一点非常重要。

现在,假设您已使用 >> 符号运行上面的 EFI Shell 命令,如下所示:

Shell> command >> file

在这里,如果文件存在,>> 符号会将命令的输出附加(添加到文件末尾)到文件中。如果该文件不存在,则会创建该文件,并将命令的输出添加到该文件中。

因此,如果文件不存在,> 和 >> 符号将执行相同的操作 - 创建文件并将命令的输出添加到文件中。

如果您的存储设备上有很多文件,那么犯错误并丢失重要数据并不难。因此,我建议使用 >> 符号而不是 > 符号进行输出重定向,除非您有特定要求。然后,它会做同样的事情。这样,如果您犯了错误,您可以随时删除附加到文件中的额外行以返回到之前的状态。

结论:

本文向您展示如何启动 UEFI Interactive Shell 并使用常见的 EFI Shell 命令。我还向您展示了如何使用 EFI Shell 的输出重定向功能。最后,我向您展示了如何从 EFI Shell 访问计算机的存储设备以及如何从 EFI Shell 创建、复制、移动、重命名和编辑文件。本文应帮助您开始使用 UEFI Interactive Shell 和 EFI Shell 命令。

参考:

[1] Shell 命令参考手册 – Intel

[2] 使用可扩展固件接口 (EFI) 的基本说明



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭