技术标签: Linux Shell自动化编程
UEFI Shell是一种特殊对待UEFI_APPLICATION。提供用户和UEFI系统之间的一个接口。它有很强大的功能,但是正常启动计算机系统时,不会用到UEFI Shell,只有当系统启动出现问题,或者用户就是喜欢UEFI Shell(就像博主我一样,深深的爱着UEFI),主动进入UEFI Shell来对计算机系统进行配置,那么就到了UEFI Shell 大显身手,炫酷吊炸天的时候来了。
Shell提供了丰富的内部命令。可以分为几大类:调试(Debug1),驱动(Driver1),网路(NetWork1),安装(Install1),Level1,Level2,Level3。没错,万能的help指令,在这里也是适用的,哪里不懂,就在哪里help一下就行了,比如指令:help ifconfig,就可以查看ifconfig的帮助信息,单独的help,就会输出所有的显示指令。另外,若不特殊说明,Shell内置命令的命令行参数中的数值使用十六进制,Shell命令和Linux指令不同,不区分大小写。
Shell命令的通用选项
命令行参数 |
意思 |
命令行参数 |
意义 |
-b,-break |
输出信息分屏显示 |
-t,-terse |
用简洁格式输出信息 |
-q,-quit |
不输出任何信息 |
-v,-verbose |
输出辅助信息 |
-sfo |
用标准格式输出 |
-? |
输出帮助信息 |
调试设备的相关指令主要用于查询,读取或写设备。
Dmem命令用于查看内存或设备内存,指令如下:
Dmem [-b] [adress] [size] [-MMIO](说明:[]中的内容可以又或者没有的参数。)
其中address,size都是十六进制,-MMIO指定地址为设备内存。
不带参数的dmem将会输出EFI系统表。
Mm命令用于查看或修改MEM(系统内存),MMIO(设备内存),IO(寄存器),PCI(PCI配置空间)和PCIE(PCIE配置空间)
命令如下:
Mm address [value] [-w 1|2|4|8] [-MEM| -MMIO | -IO|-PCI|-PCIE] [-n]
在上面的代码中,address为地址,value为要写入的值,-w后跟访问宽度,-n表示非交互式模式,如果不指定-n,则该命令进入交互模式。
驱动类命令主要用于加载,卸载,查询驱动和驱动设备控制器。
Dh命令用于列出系统中所有设备的信息,或某个设备的相关信息。格式如下:
Dh [-l<lang>] [handle | -p <prot_id>] [-d] [-v]
说明:
[-l<lang>] 表示指定的语言显示
handle 是指UEFI Handle在系统中的编号。若没有指明handle,dh命令将列出所有设备的信息
-p <prot_id>列出所有安装了Protocol prot_id的设备信息
-d用于列出驱动相关的信息
-v用于输出verbose的信息
Device命令用于显示所有被驱动的设备信息。
Driver命令用于列出系统中的driver。
Connect用于加载驱动到设备上并启动加载的驱动。该命令的格式:
Connect [[DeviceHandle] [DriverHandle] | [-c] | [-r]]
-c用于连接控制台设备
-r用于递归扫描所有handle,发现匹配的设备和驱动就加进来,没有-r,新产生的设备将不会被连接。
Disconnect用于将驱动从设备上卸载下来。命令格式如下:
Disconnect DeviceHandle [DriverHandle [ChildHandle]] [-r]
Load命令御用加载驱动
Unload用于将驱动从内存清楚
Ifconfig用于配置网络设备,该命令的格式如下:
Ifconfig [-?] [-c [Name]] [-l [Name]] [-s <Name> dhcp | <static <IP><MASK><Geteway>> [permanent]]
Name是网络适配器的名字,如etho0等
-c用于清除网络适配器的配置
-l用于列出网络适配器的配置
-s用于设备网络适配器的IP地址
Ping命令用于ping目标及其。格式如下:
Ping [ -n number] [-l size] TargetIP
-l size用于发送size字节的数据
-n number表示发送数据的次数。
Shell命令 |
功能 |
Shell命令 |
功能 |
Alias |
显示,创建,删除别名 |
Dh |
显示设备句柄 |
Attrib |
显示,更改文件或目录属性 |
Discount |
从指定设备卸载驱动 |
Bcfg |
管理启动项 |
Dmem |
显示系统或设备内存的内容 |
Cd |
更改当前目录 |
Dmpstore |
管理UEFI NVRAM变量 |
Cls |
清空标准输出;更爱背景颜色 |
Drivers |
显示设备驱动 |
Comp |
比较两个文件 |
Drvcfg |
配置驱动 |
Connect |
将driver绑定到指定的设备并启动driver |
Drvdiag |
调动Driver Disgnostis Protocol |
Cp |
将文件或文件夹复制到另一个位置 |
Echo |
回显 |
Date |
显示或设置日期 |
Edit |
编辑ASCII或UCS-2文件 |
Dblk |
显示块设备里的块 |
Eficopress |
压缩文件 |
Devices |
列出所有设备 |
Efidecompre |
解压文件 |
Devtree |
显示设备树 |
Exit |
退出Shell或脚本 |
Help |
显示帮助 |
Reconnect |
重新连接驱动与设备 |
Hexedit |
二进制编辑器,可编辑文件,块设备或内存 |
Reset |
重启系统 |
Ifconfig |
配置IP地址 |
Rm |
删除文件或目录 |
Load |
加载UEFI驱动 |
Setmode |
设置串口属性 |
Loadpcirom |
加载PCI ROM |
Set |
显示或修改Shell中的环境变量 |
Ls |
列出目录内容或文件信息 |
Setzize |
调整文件大小 |
Map |
显示Mapping |
Setvar |
设置UEFI变量 |
Memmap |
显示目录映射 |
Smbiosview |
显示SMBIOS信息 |
Mkdir |
创建目录 |
Stall |
在指定的时间内暂停执行 |
Mm |
列出或修改MEM/MMIO/IO/PCI/PCIE地址空间 |
Time |
显示/设置时区 |
Mode |
列出或修改输出设备的模式 |
Timezone |
显示/设置时区 |
Mv |
移动文件或目录 |
Touch |
更新文件时间设置 |
Openinfo |
显示ProtocolS打开信息 |
Type |
显示文件类型 |
Pause |
暂停执行脚本,等待用户输入 |
Unload |
卸载驱动 |
PCI |
显示PCI设备 |
Vol |
显示/设置卷标 |
Ping |
ping |
|
|
文章浏览阅读64次。1、生成补丁,修改前后的apk包都必须签名。2、AndFix 不支持修改布局文件。3、文件的路径必须正确。4、AndFix 不支持添加匿名内部类(就是点击事件)。5、AndFix 不支持添加新的类。6、AndFix 支持连续打补丁(注意补丁的名字要求不一样)。转载于:https://www.cnblogs.com/Jackie-zhang/p/10162430.html..._阿里andfix增加内部类
文章浏览阅读115次。婴幼儿配方奶粉是作为宝宝在无法母乳喂养时的无奈选择,也是除母乳以外最好的选择,宝妈在选择奶粉时也会格外认真,当看到奶粉中含有香精香料成分时,部分宝妈便不会购买,甚至认为此类成分是对宝宝身体有所危害的,所以坚决抵制购买,那么添加到奶粉中的香精香料到底怎么样,长期吃有没有坏处?我们来看看吧~不同人群,对香精香料有不同看法"宝妈们这样说:前段时间网上一位宝妈的评论吸引了笔者的注意:“我这奶粉买回家一开罐...
文章浏览阅读2.5k次。并不是苹果说的触点问题,而是软布导线被腐蚀断线问题。用铜箔胶带粘一下就好了。不过二手直接买一个咸鱼上也就三百多,也不贵。这个明显是苹果设计缺陷。直接丢了挺可惜的。拆的时候小心点。我的QQ: 13008312096,有空的话可以帮忙有偿代处理。参考链接如下:nullhttps://www.youtube.com/watch?v=buNYHzMZJdk修复好的样子,毫无违和感:..._ipad10.5键盘套没反应
文章浏览阅读1.3w次,点赞3次,收藏13次。网上下载的gif图很多都不透底,而且尺寸时间什么的都不合适,用ps简单修改一下就好了1.抽帧很多gif图帧数很多,抽帧可以大幅压缩gif大小1.导入gif到ps2.勾选动作和时间轴面板这时我们发现帧和图层的隐藏显示是相对应的这样的话我们操作图层就会打乱帧,我们要让所有的图层都显示,但又不干扰帧的显示3.这时我们就要把它转换为视频时间轴4.然后再转换帧>>转换为..._gif抽帧
文章浏览阅读235次。通过本文将了解到以下内容:优先队列的概念优先队列的实现优先队列的应用1.优先队列的概念优先队列是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列至少需要支持下述操作:a.插入带优先级的元素b.取出具有最高优先级的元素c.查看最高优先级的元素。综合考虑插入和删除的性能 优先队列一般采用堆来实..._优先队列 c++面试
文章浏览阅读281次。windows系统VMware安装Linux虚拟机、配置JDK环境、安装tomcat、安装mysql、安装redis第一部分VMware安装Linux—————————————————————————————————xshell、VMware工具链接:解压之后安装VMware工具xshell不需要安装解压可直接使用..._vm中linux下载安装mysql jdk
文章浏览阅读535次。文章目录前言一、准备操作1.公众号ID2.商户号3.商户号密钥4.域名、服务器二、步入正题1. 支付流程2. 初始化订单数据2.读入数据总结前言本编章主要是通过运行一个自费测试demo使其能够快速了解微信自费支付的实现流程,也是个人实现微信自费demo之后的记录、总结官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1一、准备操作进行微信自费支付之前请先获得以下几项必要条件,公众号和商户号需要绑定名称_微信自动续费api
文章浏览阅读2w次。由于通讯协议中长度使用byte字节来表示,但在java中长度超过127的时候会变成负数,所以需要保证得到的长度是正数byte b & 0xFFhttp://www.blogjava.net/orangelizq/archive/2008/07/20/216228.html在剖析该问题前请看如下代码public static String bytes2HexString(
文章浏览阅读10w+次,点赞112次,收藏974次。Ubuntu18.04镜像_ubuntu系统18.04
文章浏览阅读6.7k次,点赞3次,收藏17次。一、Json字符串和Json对象定义:1、Json字符串:所谓字符串:单引号或者双引号引起来,是一个String类型的字符串:如下:var person='{"name":"shily","sex":"女","age":"23"}';//json字符串console.log(person)console.log(person.name)console.log(typeof person) 2、Json对象:最显著的特征:对象的值可以用 “对象.属性” 进行访问,_json字符串数组
文章浏览阅读718次。CentOS 7:ip link set interface_name up 或 ip link set interface_name down。Ubuntu:ifconfig interface_name up 或 ifconfig interface_name down。CentOS 7:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。Ubuntu:编辑 /etc/network/interfaces 文件。_ubuntu 命令跟centos
文章浏览阅读652次。jpegsr9e windows vs2019生成方法,以及库下载_jpeg library error vs2019