第10章 FreeRTOS

ESP32 FREERTOS 打印ESP32任务 menuconfig中,打开FreeRTOS的trace打印功能 menuconfig中,增加app_main主任务的栈大小 测试代码 ESP32最小工程 #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" static void print_task(void) { char buffer[512] = {0}; printf("%s\t\t%s\t%s\t%s\t%s\t%s\n", "任务名", "状态", "优先级", "堆栈", "序号", "CPU"); vTaskList(buffer); printf("%s", buffer); } void app_main(void) { print_task(); } 运行结果 ESP32最小工程的任务: WIFI扫描工程 在WIFI扫描功能最后打印FreeRTOS任务 #include <stdio.h> #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #include "nvs.h" #include "nvs_flash.h" #include "esp_wifi.h" #include "esp_event.h" #define MAX_SCAN_NUM 20 const char *TAG = "WIFI"; void print_task(void) { char buffer[512] = {0}; printf("

CKEditor 5 图片上传配置和图片上传返回参介绍

之前一直使用的是ckeditor4版本编辑器,最近发现ckeditor5版本编辑器也挺不错,准备试试。结果在上传图片这方面发现与之前ckeditor4版本上传配置不一样了。 之前的ckeditor4版本html5 下面配置上传图片地址为: CKEDITOR.editorConfig = function( config ) { config.filebrowserImageUploadUrl = '/image/ckeditorImage?type=Image';//图片上传路径 }) 参考样的配置路径,发现ckeditor5 无法使用了,下面进行了研究发现ckeditor5配置发生了变化。 CKEditor 5图片上传地址配置 ckeditor5首先需要确定的是你构建的时候选的那个图片上传adapter,我这里以CKFinder upload adapter 图片上传配置为: ClassicEditor .create( document.querySelector( '#contentHtml' ), { licenseKey: '', ckfinder: { uploadUrl: "/ajax/form/file/uploadImage?type=Image"//图片上传路径 }, } ) .then( editor => { editor.setData($('#cocntentScript').html()); window.editor = editor; } ) .catch( error => { console.error( 'Oops, something went wrong!' ); console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' ); console.

CKeditor5自定配置字体大小

CKeditor5 默认情况下的fontsize组件是小号默认大号特大号这种,没有具体的字体大小px单位选择,有些时候需要配置。故而对默认配置进行了修改。 配置方式如下: ClassicEditor .create( document.querySelector( '#contentHtml' ), { licenseKey: '', //设置字体 fontSize: { options: [ 12, 14, 'default', 18, 25, 30 ] }, } ) .then( editor => { editor.setData($('#cocntentScript').html()); window.editor = editor; } ) .catch( error => { console.error( 'Oops, something went wrong!' ); console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' ); console.warn( 'Build id: l1txv9x2i4j9-f8u2t0fifydx' ); console.

对数据库索引和事务的理解

1.数据库授权命令: GRANT<权限> on 表名(或列名) to 用户。 举例: 授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid、cname的查询权限 grant select on CUSTOMERS(cid,cname) to SQLTest; 2.MySQL索引(index) 什么是索引? 为了提升查询速度而建立的数据结构 为什么要使用索引? 为了提升查询速度 索引如何分类? 01.实现数据结构(B+树/哈希表) 02.主键/唯一键/普通索引/全文索引 3.Storage Engine 聚簇索引/非聚簇索引 索引的优势和成本:成本空间变大+增删改的速度适度下降 使用索引过程中要注意什么? 1.建索引的原则—保守原则 01.数据量大 02.key一定是查用查询字段 3.MySQL事务 事务是什么? 业务上的一个动作–多条SQL,这组SQL就是事务(比如借书,借书大的动作要分为先在书籍库存表,数据量减一,然后在借阅记录表记录中插入一条记录,这组借书的SQL统称为借书的事务) 为什么要使用事务? 需要保持这个动作(借书动作)的一致性,所以诞生了SQL事务 如何做到事务的正确性? ACID 原子性(A):强调事务是密不可分的 一致性(C):数据库+开发者修改的数据表现出来是一致的 隔离性(I):同时执行一张表,互不干扰,隔离性高,并发性差,隔离性差,并发性高 持久性(D):事务的修改是不可恢复的 SQL练习 SELECT 姓名,COUNT()from 借阅记录表(WHERE>=昨天零点AND WHERE<今天零点) GROUP BY 姓名(ORDER BY COUNT()DESC LIMIT3;排序一般是默认升序排。 select name,sum(money) from t group by name having sun(money)>20 order by sum(money) desc; order by和group by的区别: order by

蓝队常用的攻击手段

目录 一, 漏洞利用 1.1 SQL 注入漏洞 1.2 跨站漏洞 1.3 文件上传或下载漏洞 1.4 命令执行漏洞 1.5 敏感信息泄露漏洞 在实战过程中,蓝队专家根据实战攻防演练的任务特点逐渐总结出一套成熟的做法:外网纵向突破重点寻找薄弱点,围绕薄弱点,利用各种攻击手段实现突破;内网横向拓展以突破点为支点,利用各种攻击手段在内网以点带面实现横向拓展,遍地开花。实战攻防演练中,各种攻击手段的运用往往不是孤立的,而是相互交叉配合的,某一渗透拓展步骤很难只通过一种手段实现,通常需要同时运用两种或两种以上的手段才能成功。外网纵向突破和内网横向拓展使用的攻击手段大多类似,区别只在于因为目标外网、内网安全防护特点不同而侧重不同的攻击手段 总体来说,蓝队在攻防演练中常用的攻击手段有以下几类。 一, 漏洞利用 漏洞是网络硬件、软件、协议的具体实现或操作系统安全策略上存在的缺陷,漏洞利用是对攻击者利用上述安全缺陷实现未授权访问、非法获取目标系统控制权或破坏系统的一系列恶意操作的统称。漏洞分为 0day漏洞和 Nday漏洞。0day 漏洞是指在产品开发者成供应商未知的情况下被攻击者所掌握和利用的安全缺陷,0day 漏洞没有可用的补丁程序,所以具有更强的隐蔽性和杀伤力。 Nday 漏洞则是指在产品漏洞信息已经公开的情况下,仍未对存在的漏洞采取安全补救措施而导致的依旧存在的安全缺陷,Nday 漏洞的存在依然会对日标网络具有严重的安全威胁。在实战攻防演练中,漏洞利用是蓝队攻击最重要的实现手段之一,通过漏洞利用,蓝队可以在目标外网实现快速突破,在目标内网快速获取控制权限。攻防实战中蓝队常用的漏洞利用类型有以下儿类。 1.1 SQL 注入漏洞 SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用 SQL。SQL 注人就是通过把 SQL 命令插人 Web表单提交或输人域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意 SQL 命令的目的。SQL 注人漏洞是发生在应用程序的数据库层的安全漏洞,是在设计应用程序时忽略了对输人字符串中夹带的 SQL 命令的检查,数据库误将恶意 SQL 命令作为正常 SQL 命令运行而导致的。SQL 注入漏洞被广泛用于获取目标 Web 系统的后台敏感数据、修改网站数据或获取网站控制权。蓝队主要利用 SQL 注人漏洞实现以下目的: 1. 获取后台数据库中存放的目标的隐私信息,并进一步利用这些信息拓展; 2.对目标网站挂马,进一步有针对性地开展钓鱼攻击; 3.获取后台应用系统的控制权限,进一步控制后台服务器。 SQL 注人漏洞多存在于用户目标官网、Web 办公平台及网络应用等之中比如:Apache SkyWalking°SQL 注人漏洞(CVE-2020-9483)就是蓝队攻击中用到的一个典型的 SQL 注人漏洞。利用该漏洞可通过默认未授权的 GraphQL接口构造恶意请求,进而获取目标系统敏感数据以用于进一步渗透。另一个典型的 SQL 注人漏洞--Django”SQL 注人漏洞(CVE-2021-35042)存在于 CMS(内容管理系统)上。该漏洞是由于对某丽数中用户所提供的数据过滤不足导致的。攻击者可利用该漏洞在未获授权的情况下,构造恶意数据执行 SQL注人攻击,最终造成服务器缴感信息泄露。 1.2 跨站漏洞 如果在程序设计时没有对用户提交的数据进行充分的合规性判断和 HTML编码处理,而直接把数据输出到浏览器客户端。用户就可以提交一些特意构造的脚本代码或 HTML 标签代码。这些代码会在输出到浏览器时被执行,从而导致跨站漏洞。利用跨站漏洞可在网站中插人任意代码以隐蔽地运行网页木马、获取网站管理员的安全认证信息等。蓝队主要利用跨站漏洞实现以下目的:

蓝队攻击的四个阶段(四)

目录 一, 外网纵向突破 1.1 何为外网纵向突破 1.2外网纵向突破的主要工作 二, 外网纵向突破的途径 1. Web 网站 2.外部邮件系统 3.边界网络设备 4.外部应用平台 三,内网横向拓展 1. 1何为内网横向拓展 1.2 内网横向拓展的主要工作 1.内网信息搜集 2. 重要目标定位 3.内网渗透拓展 4.内网控制维持 5.内网提权 四, 内网横向拓展的途径 1.内网漏洞利用 2.口令复用或弱口令 4.内网钓鱼 5.内网水坑攻击 一, 外网纵向突破 1.1 何为外网纵向突破 外网纵向突破 何为外网纵向突破 如果将目标网络比作一座城池,那么蓝队就是攻城者,而外网纵 向突破就好比在城墙上打开突破口进入城内。 如果将目标网络比作一座城池,那么蓝队就是攻城者,而外网纵向突破就好比在城墙上打开突破口进人城内。蓝队在对一个目标网络实施攻击时,首先就是寻找目标系统互联网侧薄弱点,然后利用这些薄弱点突破外网,进人目标网络内网。这个由外网突破、进人内网的过程一般称为“纵向突破”。外部约向突破的重点是寻找突破口,主要就是依据网情搜集阶段获取的相关信息进行针对性测试,直至利用不同的纵向突破手段打开突破口。 1.2外网纵向突破的主要工作 在外网纵向突破阶段,蓝队的主要工作就是围绕目标网络突破口开展渗透测试,通过获取必要的安全认证信息或漏洞利用获取控制权限。因为一般网络对外开放的接口非常有限,能从外部接触到的只有 Web 网站、外部邮件系统、边界网络设备、外部应用平台,所以外网纵向突破工作的重点也在这些接口 二, 外网纵向突破的途径 首先 蓝队在外部纵向突破中主要采用两种途径;一种是利用各种手段获取目标 网络的一些敏感信息,如登录口令、安全认证或网络安全配置等;另一种就是外部制 通过漏洞利用,实现对目标网络外部接口如 Web 网站、外部邮件系统、边界网络设备和外部应用平台的突破。目标网络在互联网侧对外暴露面非常有限,蓝队纵向突破口也是以这些目标对外暴露面为切人点展开攻击。蓝队能够利用的突破口主要有以下几种。 1. Web 网站 主要针对门户官网、网上办公、信息平台等 Web 人口进行突破,通过 Web 入口存在的安全缺陷控制 Web 后台服务器,并进一步向内网渗透。突破方式以 漏洞利用为主,包括 SQL 注入、跨站脚本攻击、未加密登录请求、弱口令、目录遍历、敏感文件泄露与文件上传漏洞等。另外,存在较多漏洞的是一此 Web平台组件,比如WebLogic、WebSphere、Tomcat、Apache、Nginx、IIS和Wcb 脚本平台等。最近被利用得比较多的反序列化漏洞就主要是 Web 平台组件导致的。

在Vmware中安装Arch Linux

文章目录 Arch Linux介绍Arch Linux下载Arch Linux安装首先在Vmware中配置好虚拟机开启虚拟机 验证引导模式连接到因特网更换国内镜像源更新系统时间建立硬盘分区安装系统 Arch Linux介绍 Arch Linux 是通用 x86-64 GNU/Linux 发行版。Arch采用滚动升级模式,尽全力提供最新的稳定版软件。初始安装的Arch只是一个基本系统,随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的系统。 Arch Linux下载 Arch Linux以社区Wiki的形式提供文档,可以从Arch Linux官网获取到系统镜像。 Arch Linux安装 首先在Vmware中配置好虚拟机 开启虚拟机 选择第一个Arch Linux install medium (x86_64, UEFI) 验证引导模式 ls /sys/firmware/efi/efivars 如果没有报错,就说明系统是以 UEFI 模式引导的。 连接到因特网 首先使用命令ip link检查系统是否已经启用了网络接口。 ip link 因为在虚拟机中安装,默认已经连接上了网络。 此时可以使用 ping 检查网络是否连通。 ping baidu.com 更换国内镜像源 reflector --country China --age 72 --sort rate --protocol https --save /etc/pacman.d/mirrorlist 更新系统时间 使用 timedatectl 确保系统时间是准确的 timedatectl set-ntp true 之后可以使用 timedatectl status 检查服务状态。

MATLAB实验五

实验五 A 1、在同一图形窗口绘制。利用plot绘图指令绘图命令。 (1)在窗口上部绘制正弦信号 x ( t ) = s i n ( 0.5 π t + π 4 ) , t ∈ [ 0 , 4 π ] x(t)=sin(0.5\pi t+\frac \pi 4),t∈[0,4\pi] x(t)=sin(0.5πt+4π​),t∈[0,4π]。要求曲线为黑色实线。 (2)使用hold on命令在同一窗口重叠绘制信号 g ( t ) = x ( t ) × 0. 5 t , t ∈ [ 0 , 4 π ] g(t)=x(t)×0.5^t,t∈[0,4\pi] g(t)=x(t)×0.5t,t∈[0,4π]。要求曲线线型为红色点划线。 (3) X轴标注 “time(t/s)”,y轴标注"x(t)/g(t)“,标题为"正弦/指数序列”。 (4)使用legend命令在图的右上角标注两条曲线的图例。 (5)使用gtext交互式图形命令,分别标注曲线x(t)和y(t)。 clear; clc; t=0:pi/30:4*pi; x=sin(0.5*pi*t+pi/4); plot(t,x,'k') hold on g=x.

蓝队攻击的四个阶段(三)

目录 一, 专业技能储备 1.工具开发技能 2.漏洞挖掘技能 3.代码调试技能 4.侦破拓展技能 二,目标网情搜集 1 何为网情搜集 2. 网情搜集的主要工作 三, 网情搜集的途径 1.专业网站 2.专业开发资源网站 3.目标官网 一, 专业技能储备 专业技能是蓝队快速应对攻击任务中各种情况、解决各种困难问题、顺利推进任务的保障。蓝队的专业技能储备涉及漏洞、工具、战法策略等多方面。主要有以下4种 1.工具开发技能 “工欲善其事,必先利其器。”对于蓝队来说也一样,好的攻击工具往往能起到事半功倍的效果。通过公开手段常常能搜集到好用的开源工具,但公开特征太过明显,往往容易被防守方态势感知系统和防火墙发现并拦截,从面极大地影响工作效率,因此需要借助自主开发或开源工具改版来开展工作。熟练的工具开发技能,可以让蓝队通过借鉴他人的高效思路,快速实现新的工具开发或对原有工具软件架构和模块功能的针对性改进,为攻击工作提供有力的工具保障。 2.漏洞挖掘技能 漏洞挖掘技能是利用动态或静态调试方法,通过白盒或黑盒代码审计,对程序代码流程和数据流程进行深入分析与调试,分析各类应用、系统所包含的编程语言、系统内部设计、设计模式、协议、框架的缺陷,并利用此类缺陷执行一些额外的恶意代码实现攻击破坏的能力。对于蓝队来说,漏洞是大杀器往往能起到一招毙命的效果。前期的漏洞准备对于外网打开突破口和内网横向拓展都非常重要,但公开的漏洞往往出于时效问题作用有限,而自主挖掘的 Oday 却总能作为秘密武器出奇制胜,同时漏洞贡献能力是蓝队在实战攻防演练中的一个重要的得分项。因此,蓝队需要有足够多的漏洞挖掘技能储备,尤其是与蓝队攻击密切相关的互联网边界应用、网络设备、办公应用、移动办公、运维系统、集权管控等方面的漏洞挖掘技能。 3.代码调试技能 代码调试技能是对各类系统、应用、平台或工具的代码进行的分析、解读,调试与审计等一系列技术能力。蓝队攻击中情况千变万化,面对的系统、应用、平台或工具各式各样,很少能用一成不变的模式应对所有情况,这就需要通过代码调试技能快速分析研判并寻找解决方法。只有具备良好的代码调试能力,蓝队才能快速应对各种情况,比如:针对攻击过程中获取的一些程序源码,需要运用代码调试技能对其进行解读和代码审计,以快速发现程序 bug 并利用;漏洞挖掘过程中,需要对某些未知程序和软件的逆向分析与白盒/黑盒代码审计能力;注人攻击过程中,对于一些注人异常,需要对注入代码进行解析和调试,通过代码变形转换实现规避;蓝队使用的渗透工具经常会被杀毒软件拦截或查杀,这时需要运用代码调试技能快速定位查杀点或特征行为,实现快速免杀应对;等等。 4.侦破拓展技能 侦破拓展技能是在渗透攻击过程中对渗透工具使用、关键节点研判、游透技巧把握、战法策略运用等一系列技能的综合体现。实战攻防演练存在时间短、任务紧的特点,因此对蓝队在侦破拓展技能方面就有比较高的要求。侦破拓展技能是建立在蓝队丰富的实战经验积累上的,是经验向效率转换的直接体现。蓝队良好侦破拓展技能主要表现在三方面:一是对攻防一体理念的深刻理解,作为攻击者,可以从防守者的角度思考问题,能快速定位防守弱点和突破口;二是对目标网络和系统的正确认识,能根据不同攻击目标快速确定攻击策略和战法,针对性开展攻击工作;三是对渗透工具的高效运用,能快速根据攻击策略实现对各类工具的部署应用,能够快速将攻击思路转化为实践,高效开展攻击工作。 二,目标网情搜集 1 何为网情搜集 网情搜集是指围绕攻击目标系统的网络架构、IT资产、敏感信息、组织管理与供应商等方面进行的情报搜集。网情搜集是为蓝队攻击的具体实施做情报准备,是蓝队攻击工作的基础,目的在于帮助蓝队在攻击过程中快速定位薄弱 点和采取正确的攻击路径,并为后两个阶段的工作提供针对性的建议,从而提高蓝队攻击工作效率和渗透成功率。比如:掌握了目标企业的相关人员信息和组织架构,就可以快速定位关键人物以便实施鱼叉攻击,或者确定内网横纵向渗透路径;而收集了 IT资产信息,就可以为漏洞发现和利用提供数据支撑;掌握企业与供应商合作的相关信息,可为有针对性地开展供应链攻击提供素材。而究竟是要补工钓鱼。还是直接利用漏洞攻击,抑或从供应链下手,一般取决于安全防护的薄弱环节究竟在哪里,以及蓝队对攻击路径的选择。 2. 网情搜集的主要工作 网情搜集的内容主要包括目标系统的组织架构、IT 资产、敏感信息、供应商信息等方面: 1组织架构包括单位部门划分、人员信息、工作职能、下属单位等: 2 IT 资产包括城名、IP、C 段、开放端口、运行服务、Wcb 中间件、Web应用、移动应用、网络架构等; 3敏感信息包括代码信息、文档信息、邮箱信息、历史漏洞信息等: 4供应商信息包括合同、系统、软件、硬件、代码、服务、人员等的相关信息。 三, 网情搜集的途径 1.专业网站 1 )Shodan (Shodan Search Engine)。Shodan 是互联网上著名的搜索引擎百度百科里这样描述:"Shodan 可以说是一款“黑暗’谷歌,一刻不停地在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等。”Shodan爬取的是互联网上所有设备的IP 地址及其端口号,其官网提供了强大的搜索功能。可通过 IP、城名、设备进行条件搜索,获取大量有价值的网络信息。 2)Censys(Attack Surface Management and Data Solutions | Censys)。Censys也是一款用以搜索联网设备信息的新型搜索引擎,其功能与 Shodan 十分相似。与 Shodan 相比,其优势在于它是一款由谷歌提供支持的免费搜索引擎。Censys 搜索引擎能够扫描整个互联网蓝队常将它作为前期侦查攻击目标,搜集目标信息的利器

力扣算法题83:删除排序链表中的重复元素

升序链表去重:删除排序链表中的重复元素 1. 首先看题目要求: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:head = [1,1,2,3,3] 输出:[1,2,3] 提示: 链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序排列 2. 看看解题思路: //思路: //1、删除链表的重复元素本质上就是跳过重复的元素 //2、首先排除空链表 //3、删除的时候,如果前后的元素相等,则直接让cur不变,cur.next等于它的下一位 //如果前后元素不相同,则把当前的cur指针移到不一样的那个位置,也就是cur = cur.next //4、最后直接返回head,也就是最后跳过重复元素后的链表 3. 接下来是代码: class Solution { public ListNode deleteDuplicates(ListNode head) { //首先考虑空链表,若为空,直接返回 if (head == null || head.next == null){ return head; } //此时cur不为null ListNode cur = head; //当cur.next也不为null while (cur.

利用GitHub Actions实现将GitHub代码同步到Gitee

利用 Github Action 实现将 Github 上面的代码同步到 Gitee 中 同步的原理是利用 SSH 公私钥配对的方式拉取 Github 仓库的代码并推送到 Gitee 仓库中,所以我们需要以下几个步骤 生成 SSH 公私钥添加公钥添加私钥配置代码 生成 SSH 公私钥 在 git Bash 中输入 $ ssh-keygen -t ed25519 -C "me@gitee" 然后按照提示完成三次回车后便会在用户根目录下的 .ssh 目录下生成三个文件 打开 id_ed25519.pub 获取生成的公钥 打开 id_ed25519 获取生成的私钥 添加公钥 将 SSH 生成的公钥分别添加到 Github 跟 Gitee 中 添加私钥 如果你还没有生成与 Github 相对应的 Gitee 仓库,记得先创建,推荐使用 url 导入的方式创建 在需要同步的 Github 仓库里面依次进入 Settings > Secrets > Actions 点击 New repository secret 按钮

origin安装教程

2023年1月13日13:42:28 由于换了台新电脑,重装一遍origin 文章目录 安装软件步骤中英文切换设置保存路径打开页面绘图技巧和使用教程 安装软件 参考教程:origin安装 步骤 2 选试用版 如果你弹窗 试用期已经截止的话,选择第一个序列号 如果没有弹窗一路next就可以。 首先下载到英文路径并解压后,打开“Origin2021”文件夹,以管理员身份运行“Setup.exe”。其次用户名和公司名称随意英文即可,序列号为:DF2W8-9089-7991320,注意不要输错!然后会弹出文件夹,将Origin 2021图标拖到桌面,并以管理员身份运行。点击菜单栏的“help”,下拉点击“Register on-line”,勾选“I am already registered. My Registration ID is:”,框内输入:GRM-RVR-AR2,随后点击OK。最后关掉软件,回到安装包,打开crack文件夹,将其内的两个文件“ok.dll”和“ou.dll”复制粘贴到安装目录下(第二步那个英文路径),并替换掉原文件。重新打开软件,界面为英文。 然后等待: 3 需要粘贴,复制路径(懂得都懂) 中英文切换 设置保存路径 打开页面 绘图技巧和使用教程

root切换回普通用户,root切换普通用户免密

linux以root用户身份进入centos后如何切换到普通用户? 在linux中切换账户可以使用命令su,不论是root账户切换成普通用户,还是反之。\x0d\x0a\x0d\x0a用法:\x0d\x0a\x0d\x0a使用root用户切换普通用户时直接 su - 普通用户名 就可以了;\x0d\x0a使用普通用户切换至root用户时 su -或者 su - root 然后输入root密码就可以了;\x0d\x0a\x0d\x0a在大都的linux的版本中,都可以使用su或者su -,但是su和su -还是有一定的差别的:\x0d\x0asu只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。 如何从root切换到普通用户 su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令: su - test 如果要切换回root用户,那么用以下命令: su或su - 用户名root可以省略不写。 切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。 71. linux 中find命令下的-type f 代表什么意思 -type 是find命令的一个参数: -type:查找某一类型文档 b:块设备文档 d:目录 c:字符设备文档 P:管道文档 l:符号链接文档 f:普通文档 连起来就是查找type为普通类型的文档。 普凝思系统普通用户切换到root用户,如何再从root用户切 你想问的是普凝思系统普通用户切换到root用户,如何再从root用户切回普通用户吧,找到用户名模式,点击root模式即可切换。 切换到普通用户的方法是首先打开进入到普凝思系统,普通用户登录系统。其次,找到系统设置,点击进入。最后找到用户名模式,点击root模式即可切换。 普凝思磐石安全操作系统V2点4作为一个安全、稳定、可靠的基础平台,可以支持各类常见应用和不同客户所特需的专业应用,譬如:安全DNS应用、安全WEB应用、安全MAIL应用、安全CA应用、安全数据库应用、安全FTP应用、安全Samba应用、国家电网专业应用、国家电信行业专业应用、军队专业应用等等。 Linux中怎么从root用户切换到普通用户 su是在用户间切换,可以是从普通用户切换到root用户, test@ubuntu:~$ su Password: root@ubuntu:/home/test# 也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令:su - test root@ubuntu:~# su - test [sudo] password for test: test@ubuntu:~$ 如果要切换回root用户,那么用以下命令:su或su -用户名root可以省略不写。切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。 test@ubuntu:~$ exit

vim 跳转到某行

在 Vim 中可以使用 ":行号" 命令跳转到某行。例如,若要跳转到第 50 行,则在 Vim 的命令模式下输入 ":50" 并回车即可。

xcelium——重要特性——提高编译仿真性能

以下图片来自于CadenceTECHTALK研讨会 解决编译仿真的瓶颈问题,提高整体性能 影响performance的因素 xcelium版本access rwccoverage收集snapshot过大,加载时间过长,可通过Zlib加快加快snapshot加载 编译/仿真添加选项: -newperf,针对编译和仿真-plusperf,针对assertion和RTL行为 access权限 权限越低,性能越高 避免使用 rwc和rw 推荐使用r 若要dump fsdb波形,则需打开r权限 优化regression 有afile 无afile performance log文件 查询记录,优化性能 xcelium advance technologies 增量编译 分割DUT和TB,并行编译 partition划分,可添加选线自动划分(-xmiseparitionnum),也可手动划分,即划分各模块为不同的filelist,elaboration再把所有模块吃进来 save/restore 常用于初始化时间较长且固定的场景 扩展: dynamic Test Reload ML Multi Core

计算机总线详解(数据总线、地址总线、控制总线)

文章目录 1 概述2 总线分类2.1 数据总线 Data Bus2.2 地址总线 Address Bus2.3 控制总线 Control Bus 3 扩展3.1 常考题3.2 百度百科 - 总线 Bus 1 概述 总线(Bus) 是计算机各种功能部件之间传送信息的 公共通信干线如果说 主板(Mother Board)是一座城市,那么 总线 就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的 比特(bit)按照计算机所传输的 信息种类,计算机的总线可以划分为 数据总线、地址总线 和 控制总线,分别用来传输数据、数据地址和控制信号 2 总线分类 2.1 数据总线 Data Bus 传递数据信息。在 CPU 与 RAM 之间来回传送需要处理或是需要储存的数据双向三态形式。既可以把 CPU 的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到 CPU数据总线宽度:CPU 中运算器与存储器之间互连的内部总线根数,也指 CPU 一次读取的二进制位数,同时也说明字长。例如:数据总线宽度为 16,则说明字长为 16 bit 双向:两个方向。如:A -> B 或 B -> A 三态:高水平(1)、低水平(0)、高组态(Z) 2.2 地址总线 Address Bus 传送地址信息。用来指定在 RAM(Random Access Memory)之中储存的数据的地址单向三态形式。因为地址只能从 CPU 传向外部存储器或 I/O 端口地址总线宽度:也叫 地址总线根数,决定了 CPU 可直接寻址的内存空间大小。例如:地址总线宽度为 16,则说明 CPU 最大可寻址的空间大小为: 2 16 2 ^ {16} 216 2.

godot教程推荐

推荐几个可供学习 Godot 的教程: Godot 官方文档:https://docs.godotengine.org/zh_CN/Godot 入门教程:https://www.cnblogs.com/xlzd/p/12742447.htmlGodot 3D 游戏开发教程:https://www.bilibili.com/video/av76453081/Godot 2D 游戏开发教程:https://www.bilibili.com/video/av46312146/Godot 开发者社区:https://godotdevelopers.org/ 需要注意,godot 版本已更新至3.x, 请注意看看是2.x或者是3.x的教程

Nginx+Egg.js配置Https

费了一下午终于把这个事搞定了,记录一下,也给有需要的小伙伴。 作为一个侧重前端的全栈,内心是很乐意用Node做后端的,也为有Eggjs这样的国产项目感到振奋。然而在看文档的时候又常常感到心里堵。 Nginx 在配置Https之前,我们的Nginx配置文件大概是这样的: # /usr/local/nginx/conf/nginx.conf http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.你的域名.com; location / { root html; try_files $uri $uri/ @router; # 配置使用路由 index index.html index.htm; } } } 关于证书的内容请另行搜索。假设你现在已经有了证书文件了,把它们放在服务器的某个文件夹中。然后来修改配置文件 # /usr/local/nginx/conf/nginx.conf http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 这是新增的 server { listen 443 ssl; # 这是新版本Nginx的写法,老的写法是listen 443; ssl on; server_name www.你的域名.com; # 这是两个证书文件的路径,改成自己的 ssl_certificate /usr/local/nginx/cert/9139200_isincerely.

js中Object设值和取值

一、js中Object的设置和取值 将一个数组中的多个Object遍历取出key和value放入一个新Object中。 遍历数组获取Object值取新Object的value。 二、使用步骤 代码如下(示例): //从数组中取值放入object let keywords = [{name:'first',value:'Hello'}, {name:'second',value:'World'}, {name:'third',value:'Good'}, {name:'fourth',value:'Morning'}] let obj = {}; for(let i =0 ;i < keywords.length;i++) { let kw = keywords[i]; this.$set(obj,kw.name,kw.value); } console.log(obj); /** { first:'Hello', second:'World', third:'Good', fourth:'Morning' } **/ //循环从Object取值 for(let i =0 ;i < keywords.length;i++) { let kw = keywords[i]; let val = obj[kw.name]; console.log(val);//Helllo }