自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 批处理学习2

查看当前目录下的文件dir# 查看文本文件type# 回显echo# 暂停pause# 查询ipconfig# 清屏cls# 任务管理器taskmgr# 查看windows版本winver# 资源管理器explorer# 查看服务# 查看注册表regedit# 控制台mmc。

2023-10-20 01:25:24 68

原创 批处理学习1

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。

2023-10-19 00:19:26 51

原创 shell实战练习1

报错信息 tar: Removing leading '/' from member names 去除文件名中前导的根目录“/”tar 命令在压缩文件时,默认会取相对路径,不会取从根路径下来的绝对路径,所以,如果待压缩的源路径是绝对路径,便会报该错误。将路径src_path下的所有文件打包备份到目标路径target_path中。解决方法:修改原本命令 tar -zcvf 为 tar -zcvPf。五个*分别代表,分钟 小时 日期 月份 星期。默认为每分钟执行一次。

2023-10-17 00:35:48 50

原创 Linux学习之shell6

sed会读取每一行数据到模式空间中,之后判断当前行是否符合模式匹配要求,符合要求就会执行sed程序命令,否则不会执行sed程序命令;sed是一种主流编辑器,它一次处理一行内容,将这行放入缓存(存区空间称为: 模式空间),然后才对这行进行处理,处理完后,将缓存区的内容发送到终端。在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。其中,-F" "是指定," "是分隔符,$4是第四个字段。

2023-10-15 19:43:26 47

原创 Linux学习之shell5

sort工具用于排序;它将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。cut在处理多空格间隔的域时,比较麻烦,它擅长处理『

2023-10-12 23:58:11 32

原创 Linux学习之shell4

当程序执行到break语句时,会结束整个当前循环。而continue 语句也是结束循环的语句,不过continue 语句单次当前循环,而下次循环会继续。如果exit之后没有定义返回值,脚本执行之后的返回值是执行exit语句之前,最后执行的一条命令的返回值。continue也是结束流程控制的语句。如果在循环中,continue语句只会结束单次当前循环。如果exit命令之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。贪婪:尽可能多的去匹配(大前提:匹配成功)这个变量,来查看返回值。

2023-10-12 02:27:27 26

原创 Linux学习之shell3

拷贝所有sh文件到某个目录。一个简单的猜数字小游戏。

2023-10-10 20:46:58 31

原创 Linux学习之shell2

4.如果 expression 和某个模式匹配成功,就会执行这模式后面对应的所有语句(该语句可以有一条,也可以有多条),直到遇见双分号;2.expression 既可以是一个变量、一个数字、一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要能够得到 expression 的值就可以。6.最后一个分支*)并不是什么语法规定,它只是一个正则表达式,*表示任意字符串,所以不管 expression 的值是什么,*)总能匹配成功。case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

2023-10-10 01:48:07 30 1

原创 Linux学习之shell1

最后一次执行的命令的返回状态1270上一次执行Sum.sh成功,所以输出$?返回的是0,当$?这个变量为0,则表示上一个命令执行命令执行正确,当这个变量不为0的其他数,则表示上一个命令执行出现问题。$$:表示当前进程的进程号Pid31892可以通过ps -f 查看当前的进程加法16减法14乘法30除法7取余1-eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。1-ne检测两个数是否不相等,不相等返回 true。

2023-10-09 01:30:41 45 1

原创 Linux常用命令学习二

第二步:wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm。然后删除该包:rpm -e mysql-community-libs-5.7.40-1.el7.x86_64。示例:rpm -ivh mysql57-community-release-el7-10.noarch.rpm。3:查看已安装的mysql-community-libs-5.7.40-1.el7.x86_64包的信息。

2023-10-08 00:19:15 27 1

原创 Linux常用命令学习一

Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

2023-10-07 02:07:57 87 1

原创 erlang学习笔记之适配器变量与表意编程

可以看出程序员不知道字典里是否有这个键,因为他们编写的代码模式匹配了lookup的所有返回值({ok, Val}和not_found)。得出这个推论是因为注意到lookup的两种返回值都有模式匹配,但找到的项目值却从未被使用,能看出这一点是因为模式匹配的是{ok, _}而不是{ok, Val}(就像第一个例子那样)。这样就实现了目标,也就是把两个接口不同的模块隐藏在一个适配器模块之后, 让它提供对这两个模块的公共接口。适配器的接口可以保持不变,而它背后的代码 可以被修改来反映出不同的需求。

2023-09-28 08:53:11 35 1

原创 erlang学习笔记之深入了解ets

2.public,private,protected:指定table的访问权限,若是public表示所有process都可以对该table进行读写(只要你知道TableId或者TableName),private表示只有创建表的process才能对table进行读写,而protected则表示所有的process都可以对表进行读取,但是只有创建表的process能够对表进行写操作(ps: ets table仅可以被同一个erlang node中的processes共享)。

2023-09-27 04:30:02 200 1

原创 erlang学习笔记之编程术语

如果先写X = {Mod, P1,P2, ..., Pn}然后调用X:Func(A1, A2, ..., An),那么实际调用的是Mod:Func(A1, A2, ...,An, X)。举个例子,{foo,1,2,3}:bar(a,b)这个调用会被转换成foo:bar(a,b,{foo,1,2,3})。我们接收一个消息,打开名为mbox的文件,把消息写入这个文件,任务完成。中间人要做的就是解析传入的HTTP请求,把它们转换成Erlang数据类型,并把传出的Erlang数据类型转换成HTTP响应。

2023-09-26 01:58:07 30 1

原创 erlang学习笔记之ets

ETS和DETS都是两个系统模块,可以用来储存海量的数据,ETS的全称是Erlang Term Storage(erlang 数据储存),Dets就是加了个Disk,磁盘ETS,他们的任务相同,提供大型的KV(Key-Value)查询表,ETS比DETS高效,它储存在内存中。

2023-09-24 23:10:50 153 1

原创 erlang学习笔记之用OTP构建系统6

面积服务器崩溃了,我们触发了有意设置的错误。所有这些都被错误记录器记录下来,我们也看到了这个错误的打印输出。错误消息显示出问题所在:程序尝试执行area_server:compute_area({rectangle,10,20})时崩溃了。错误消息的格式是{Mod,Func,[Args]}。回 去看看前几页里定义面积计算的部分(在compute_area/1里),应该能找到这个错误。崩溃发生后,一切都恢复正常,就像构想的那样。7.编写一个app文件,你就可以在shell里启动和停止应用程序。

2023-09-22 02:03:58 31 1

转载 erlang学习笔记之用OTP构建系统5

simple_one_for_one重启策略的supervisor是一个简化的one_for_one supervisor,所有的子进程都是动态添加的同一进程的实例。使用start_child/2来添加的子进程表现出像其他子进程一样的行为,除了这点:如果supervisor死掉然后重启,则所有动态添加的子进程都将丢失。ch_sup:start_link调用方法supervisor:start_link/2,这个方法启动一个新的supervisor进程并连接它。

2023-09-21 08:53:31 35

转载 erlang学习笔记之用OTP构建系统4

它应该调用supervisor:start_link,gen_server:start_link,gen_fsm:start_link或gen_event:start_link,或相适应的方法。当supervisor停止后,下一个更高级别的supervisor进行下一步动作,重启该停止的supervisor或者终止本身。一个简化的one_for_one supervisor,所有的子进程都是同样进程类型并且是动态添加的实例。当supervisor终止时,它首先按启动顺序的反顺序终止它的子进程。

2023-09-20 00:20:36 53 1

原创 erlang学习笔记之用OTP构建系统3

在一对多监控里,如果任何一个工作器崩溃了,所有工作进程都会被终止(通过调用相应回调模块里的terminate/2函数)然后重启。这个行为用一个回调模块作为参数,里面指定了监控策略以及如何启动监控树里的各个工作进程。树的上级进程(监控器)监视着下级进程(工作器), 如果下级进程挂了就会重启它们。它定义了监控器用于启动工作器的函数,将被用作apply(Mod, Fun, ArgList)的参数。可以用监控进程代替工作进程来构建一个由监控器组成的树。在一对一监控里,如果某个工作器崩溃了,就会被监控器重启。

2023-09-18 19:50:41 68 1

原创 erlang学习笔记之用OTP构建系统2

Event是一个{EventType, Event-Arg}形式的元组,其中EventType是set_event或clear_event,而EventArg是一个用户提供的参数。这么做就得到了一个标准警报处理器。3.安装了一个自定义警报处理器。4.设置并清除了一个tooHot警报。自定义警报处理器对其进行了处理,shell。应用程序只需要一个警报,这个警报会在CPU因为计算超大质数而开始熔化时抛。2.设置警报后只得到了一个信息报告。测试,启动系统,生成一个警报,安装警报处理器,再生成一个警报。

2023-09-16 03:40:51 43 1

原创 erlang学习笔记之用OTP构建系统1

可以把滚动日志看作是一个大型循环缓冲区,内含错误记录器生成的消息。新消息进来后会被附加到日志的末尾,如果日志满了,最早的条目就会被删除。3.崩溃报告 如果某个被OTP行为启动的进程因为normal或shutdown以外的原因终止,这些报告就会生成。发送消息后我们不知道(也不关心)它的命运。如果在编程的时候发生了一件值得关注的事,就会发送一个event消息给某个注册进程。它会创建一个适合进行程序开发的环境,只提供一种简单的错误记录形式。这里的要点在于事件处理器提供了一种架构,让我们可以安装自定义的处理器。

2023-09-15 00:39:19 42

原创 erlang学习笔记之gen_server的模板填写与简单测试

请确保同一项任务每次只分配给一个工人,并确保系统是公平的, 意思是任务按照请求的顺序进行分配。任务中心(job_center)持有一个必须完成的任务队列,这些任务会被编号,任何人都能向队列添加任务。任务是由fun表示的,要执行任务F,工人必须执行F()函数。2. job_centre:add_job(F) -> JobNumber 添加任务F到任务队列,然后返回一个整数任务编号。5. 添加一个名为job_centre:statistics()的统计函数,让它报告队列内、进行中和已完 成任务的状态。

2023-09-13 22:16:50 50 1

原创 erlang学习笔记之gen_server的回调结构

举个例子,如果服务器连接到另一个进程并捕捉退出信号,就可能会突然收到一个预料之外的{'EXIT', Pid, What}消息。gen_server:start_link(Name, Mod, InitArgs, Opts)这个调用是所有事物的起点。自发性消息是一切未经显式调用gen_server:call或gen_server:cast而到达服务器的消息。它会创建一个名为Name的通用服务器,回调模块是Mod,Opts则控制通用服务器的行为。它最终调用的是回调模块里的handle_call/3。

2023-09-13 00:00:15 134 1

原创 erlang学习笔记之gen_server 入门

以下三点是编写gen_server回调模块的简要步骤:(1) 确定回调模块名。(2) 编写接口函数。(3) 在回调模块里编写六个必需的回调函数。

2023-09-12 01:38:59 67 1

原创 erlang学习笔记之gen_server 入门

以下三点是编写gen_server回调模块的简要步骤:(1) 确定回调模块名。(2) 编写接口函数。(3) 在回调模块里编写六个必需的回调函数。

2023-09-12 01:37:52 57 1

原创 erlang学习笔记之OTP

OTP是Open Telecom Platform(开放电信平台)。但是现在OTP比你想的作用更多。它是一个应用程序操作系统,包含了一组库和实现方式,可以构建大规模、容错和分布式的应用程序。标准的Erlang分发套装包含OTP库。OTP包含了许多强大的工具,例如一个完整的Web服务器,一个FTP服务器和一个CORBA ORB等,它们全都是用Erlang编写的。OTP还包含了构建电信应用程序的最先进工具,能够实现 H248、SNMP和ASN.1/Erlang交叉编译器(这些是电信行业里常用的协议)。

2023-09-11 03:40:48 418

原创 erlang学习笔记之UDP

要生成一个唯一的引 用,需要调用Erlang的内置函数make_ref,它能确保返回一个全局唯一的引用。当UDP数据经过网络上的路由器时,如果数据大小超 过了路由器允许的最大传输单元(Maximum Transfer Unit,简称MTU)大小,分段就会发生。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。它只是打开一个UDP套接字,向服务器发 送一个消息,等待回复(或者超时),然后关闭套接字并返回服务器的返回值。

2023-09-07 21:16:59 56 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除