- 博客(68)
- 收藏
- 关注
原创 erlang学习:Linux命令学习12
看小说每次空一大行太麻烦了,想看紧凑一点的,因此我这里将每一行都凭借在了一起,并统一进行输出,得到了以下的结果。先来一个简单案例,打印abc 123 456 并按照awk默认的空格进行分割,在将他们用&连起来打印。刚才的有关的语句太多,如果只需要这关键字的其中一部分,可以自定义分隔符进行分割,例如我只想要第二句话。将上次在百度网盘中下载的小说有关 “桐人”/"亚丝娜"的行进行切割并展示。使用awk获取该文件的文件名,每一行的行号,列数以及内容。在处理数据前进行操作与在数据处理后进行操作。
2024-10-10 21:49:00
332
原创 erlang学习:Linux命令学习11
同样.sh文件中我也放的是echo,估计也是将echo的内容放入了信箱当中,因此没有看到输出结果,我进行了修改之后就能够正常看到定时器执行任务了。crontab -u -e:以指定用户的身份编辑定时任务列表。该命令会在默认编辑器中打开定时任务文件,你可以添加、修改和删除定时任务。该命令会删除当前用户的定时任务文件,并且无法恢复,请谨慎使用。我尝试了最简单的定时任务但是还是不生效,同时crontab也是开启的。生成了相应的文件并且有值,说明是成功执行了定时任务中的代码。查看信箱内容确实也是在里面的。
2024-10-09 22:08:26
650
原创 erlang学习:Linux命令学习10
支持代理服务器:对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以支持代理是下载软件必须有的功能;其中需要用到两个链接,第一个链接用的就是第一步保存的,带有提取码的那个链接。而第二个链接,则是下面那个较长的链接。用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。一定要记住中间那个O重命名是大写的,我之前尝试了好几次小写的o都报错了,找了很久的原因才找出来。粗劣的想用个定时任务让他定时下载,貌似没搞上,明天再看看这一部分。拿到链接之后在浏览器中进行下载,可以查看下载链接。
2024-10-08 23:08:05
400
原创 erlang学习:Linux命令学习9
sed全称是:Stream EDitor(流编辑器)Linux sed 命令是利用脚本来处理文本文件,sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
2024-10-07 16:18:30
553
原创 erlang学习:Linux命令学习8
设置了一个次数,如果循环了五次在user文件中添加user用户,表示用户登录。检查了以下,逻辑错了,++放在外面,同时重定向也写错了,没加echo。每 30 s循环判断一次 user 用户是否登录系统 —案例。循环求 1-100 的每一步和 —案例。没+1,不知道什么原因。
2024-09-29 21:46:14
324
原创 erlang学习:Linux命令学习7
o*”表示拥有零个(即为空字符)或大于等于一个“o”的字符,因为允许空字符,所以执行“grep -n’o*'test.txt”命令会将文本中所有的内容都输出打印。例如,“o{2,}”不能匹配"Bob"中的“o”,但是能匹配“fooooood”中的所有o。{n} :n是一个非负整数,匹配确定的n次,例如“o{2}”不能匹配“Bob”中的“o”,但是能匹配到“food”中的“oo”要匹配"^“字符本身,需要转移”^"[]中貌似只能匹配类似[0-9],[a-z],[A-Z]类似这样的,不能跨越匹配会报错。
2024-09-28 13:58:02
824
原创 erlang学习:Linux命令学习6
F, --fixed-strings 指定的模式被解释为字符串。-G, --basic-regexp BRE 模式,也是默认的模式。-P, --perl-regexp PRE 模式。[a-z]匹配所有小写单个字母[A-Z]匹配所有单个大写字母。-E, --extended-regexp ERE 模式。[a-zA-Z]匹配所有的单个大小写字母。[a-zA-ZO-9]匹配所有数字和字母。-v 反向选择,即输出没有没有匹配的行。以下是-i 与-n的作用体现。
2024-09-26 21:36:44
555
原创 erlang学习:Linux命令学习5
Linux的重定向技术允许你将输入输出流重新指向文件或其他设备,而不是使用默认的标准输入、标准输出或标准错误。将echo 后面的语句输入到test.txt文件中,如果没有就创建一个。单个重定向符号要覆盖文件,而两个重定向符号则为在文件末尾追加。使用rz命令选择文件,将本地文件上传至linux服务器。-l:按行分隔,每1行对study.txt文件进行切割。study_:分割后的文件的前缀,后面为拼接数字部分。将hello1-1000重定向至log.txt文件中。将命令的输入从文件读取,而不是从键盘读取。
2024-09-25 21:31:18
387
原创 erlang学习:Linux命令学习4
对传入参数进行长度判定,如果没有传入参数返回错误状态码,如果传入参数则比较传入参数长度,等于hello返回true,不相等返回false。判断一个文件夹是否存在,如果存在则进行删除,如果不存在则创建该文件夹,并复制一份该脚本后,删除该脚本。if,then语句的return貌似只能返回一个数字,无法返回类似于error的字符串。文件夹中添加了相应文件。文件中也复制了相应内容。
2024-09-24 21:23:35
382
原创 erlang学习:Linux命令学习3
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。双引号里面可以放变量,会将相应的变量输出,但是单引号只能输出里面的字符串。查看输出结果,其中第一行输出为输出字符串长度,第二行输出为截取字符串片段。创建一个test.sh文件,并开放他的权限,之后向其中编辑以下内容。单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;如果里面都是字符的话功能是一样的。这里修改相应的shell文件如下。这里修改相应的shell文件。这里修改相应的shell文件。
2024-09-23 20:47:55
295
原创 erlang学习:Linux常用命令2
第一次使用这行代码时,没有创建成功,查看了以下还是因为没有创建目录的权限,在命令的do中后面加一个sudo,即可创建成功。使用下方代码首先创建一个文本文件,然后通过vim向文本文件中编辑下方三行文件路径。列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)相关cd切换目录之类的就直接省去了,以下操作中都会用到。在当前目录下创建一个名为erlangtest的目录。使用cat确认文本文件中的路径已经编辑好。查看当前目录下的所有目录和文件。ls -l 或 ll。之后执行下方两行命令。
2024-09-21 13:10:20
331
原创 erlang学习:Linux常用命令1
Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2024-09-19 22:15:49
524
原创 erlang学习:mnesia数据库与ets表1
Mnesia 和 ETS 都是 Erlang 提供的表管理工具,用于存储和检索数据,但它们之间有一些重要的区别和共同点。
2024-09-18 21:50:46
452
原创 gen_server补充基础学习
因此相当于发起了一个异步事件,在handle_cast中如果出现问题不会影响主线程的,因此该方法可以处理一些需要逻辑处理但是不需要得到返回值的需求。gen_server:cast(Name, Msg)则实现了一个播发(cast),也就是没有返回值的调用(实际上就是一个消息,但习惯上称它为播发来与远程过程调用相区分)handle_info时常用于处理定时器触发的消息,例如需要定时统计人数,或定时需要进行什么操作时,就会使用gen_server给自己发送定时器任务进行相应的逻辑处理。
2024-09-13 22:04:08
493
原创 erlang学习: Mnesia Erlang数据库4
这个磁盘日志会不断增长,里面的信息会每隔一段时间与数据库里的其他数据合并,然后磁盘日志里的条目就会被清除。如果系统崩溃了,磁盘日志就会在下一次系统重启时进行一致性检查,任何未合并的日志条目会先添加到数据库里,然后数据库才可用。内存表是易失的,所以如果想构建一个容错式应用程序,就需要把内存表复制到磁盘上,或者把它复制为第二台机器的内存或磁盘表,或者两者皆有。任何一个事务成功时,数据都应该已经正确写入到磁盘日志里,如果系统随后崩溃了,那么当它下次重启时,事务所做的改动应该会完好无损。
2024-09-12 21:18:31
537
原创 erlang学习: Mnesia Erlang数据库3
事务是一个整体,里面方法对数据库的操作要么同时操作完毕,要么都不操作。我的事务函数中输入数据,将苹果增加改数量,橘子减少该数量。后面橘子数量不足,因此苹果的改动也没有完成,数据正确。开始有pear后删除就没有pear了。开始操作成功,数据正确。
2024-09-11 21:43:27
407
原创 erlang学习: Mnesia Erlang数据库2
需要对do函数进行实现,才能展示出数据库中的数据,do函数在书上20.4.3有相应实现。实现do函数后的代码运行截图。能够插入但是不能查询。
2024-09-10 21:29:46
457
原创 erlang学习: Mnesia Erlang数据库
之后是数据库表定义,打开数据库创建完成后,启动数据库,添加一些表定义,添加完毕后关闭数据库%% API按照书上的写编译会报错,少了一个record在record中加一行回去这样就没问题了。
2024-09-09 21:17:01
453
原创 erlang学习:用ETS和DETS存储数据3,保存元组到磁盘
ETS表把元组保存在内存里,而DETS提供了把Erlang元组保存到磁盘上的方法。DETS文件必须先打开才能使用,用完后还应该正确关闭。如果没有正确关闭,它们就会在下次打开时自动进行修复。因为修复可能会花很长一段时间,所以先正确关闭它们再结束程序是很重要的。DETS表有着和ETS表不同的共享属性。DETS表在打开时必须赋予一个全局名称。如果两个或更多本地进程用相同的名称和选项打开某个DETS表,它们就会共享这个表。原因时在出现错误后文件夹就自动关闭了,需要重新开启文件夹才能读取其中的数据。
2024-09-06 21:12:44
279
原创 erlang学习:用ETS和DETS存储数据2
书上代码中的reverse没有lists,因此会报错,需要改为lists:reverse。搞了个txt文本之后报错为数据异常,有点没搞明白txt文档里面要存什么数据。今日学习创建一个ETS表。
2024-09-05 21:49:41
360
原创 erlang学习:用ETS和DETS存储数据
ETS是相当高效的:可以用它存储海量的数据(只要有足够的内存),执行查找的时间也是恒定的(在某些情况下是对数时间)。可以看到输出结果与预期相符,set中只有最后输入的保留下来,键相同的都被后添加的覆盖掉了。ETS表广泛应用于那些必须以高效方式操作大量数据的应用程序,以及用非破坏性赋值和“纯”Erlang数据结构编程的开销过大之时。而duplicate_bag不仅能够有相同的键,键所对应的值也能够相同(副本同键)bag则为同键表,允许多个元素拥有相同的键,但不能有相同键值对(同键)
2024-09-04 20:35:03
331
原创 erlang学习:用OTP构建系统23.12练习题
你可以使用lib_primes.erl里的is_prime/2函数来处理(或者自己实现一个更好的质数测试函。制作一个名为prime_tester_server的gen_server,让它测试给定的数字是否是质数。把它添加到sellaprime_supervisor.erl的监控树里。能够正常启动监控树与服务器,但是在进行报错测试后,之后服务器没有正常重启。查找了很久,需要在监控树中进行unlink(Pid)操作才行。修改后就能重启了,与预期相符。
2024-09-03 22:10:33
459
原创 erlang学习:用OTP构建系统4,监控树学习
之前写的server程序,如果产生了错误,server会立刻停止。本次学习使用了监控树,能够让server崩溃时打印错误信息并重启服务器,能够使服务器正常使用。启动监控树后,就可以运行area_server与prime_server中的代码,如果产生错误则会进行提示并重启服务器。没有监控树,如果server崩溃,进程就挂掉了。服务器自动重启之后能够继续运行代码。
2024-09-02 20:59:02
403
原创 erlang学习:用OTP构建系统3,应用程序服务器
今天先按照书上的将这两个服务器的代码编写好,为后面监控树的学习做准备。按照书上搭建两个服务器,一个是质数服务器,一个是面积服务器。
2024-08-30 21:03:46
366
原创 erlang学习:用OTP构建系统2,警报管理
启动系统,生成一个警报,安装警报处理器,再生成一个警报执行代码截图。错误记录器方面相关内容配置完成了,并得到成功运行截图。警报处理器gen_event的回调代码。今日学习用OTP构建系统的警报管理,首先进行配置错误记录器。
2024-08-29 21:44:09
492
原创 erlang学习:gen_server书上案例22.6练习题5
代码执行结果,由于等待了6毫秒,导致工程一已经接近超时,因此发送了hurry_up请求,但是工程2还有4毫秒,因此并没有发送相应请求,因此一个输出了被请求的线程名称,一个输出没有接收到请求。返回{JobNumber, JobTime, F},其中JobTime是工人必须完成任务的秒数。如果工人在JobTime。在上次添加工作的方法中记录了JobTime字段,如果执行超时的话就按照hurry_up催促逻辑进行催促输出。检查是否有懒惰的工人,也就是接受工作但不按时完成的进程。把任务请求函数修改为。
2024-08-26 21:39:15
360
原创 erlang学习:gen_server书上案例22.6练习题4
昨天没有输出Fun中的io的原因是因为在任务函数中没有调用Fun方法,相当于只传了Fun函数但是没有进行调用,因此没有执行Fun函数,所以控制台中没有进行io的输出,今天在add_job中调用了Fun方法并执行,所以输出了相应的io。同时今天增加了完成工作的字段,能够记录以及完成的工作数量,这样相较于昨天单纯的输出0来说,能够统计工人已经完成工作数,基本符合了书上第2个小问的要求。
2024-08-23 22:05:19
231
原创 erlang学习:erlang学习:书上案例22.6练习题3
初步实现了书上案例第二,三问的要求,对输出结果有部分偏差,没有实现对已完成任务状态的记录,因此已完成任务输出无论如何都是0,明天会在record中加一个字段进行已完成任务状态的记录。(2) 添加一个名为job_centre:statistics()的统计函数,让它报告队列内、进行中和已完。(3) 添加监视工人进程的代码。如果某个工人进程挂了,请确保它所执行的任务被返回到等待完成的任务池里。不知道为什么任务队列中设置的io没有输出,只输出了调用函数中的io,同时正在执行的进程数量为1。
2024-08-22 22:45:50
235
原创 erlang学习:书上案例22.6练习题2
3.从队列获取并移除第一个元素 (出队):{Element, Q2} = queue:out(Q1).4.获取队列的第一个元素而不移除:Element = queue:head(Q1).2.向队列添加元素 (入队):Q1 = queue:in(Element, Q).5.获取队列的最后一个元素:Element = queue:tail(Q1).7.获取队列的长度:Length = queue:len(Q).1.创建新的空队列:Q = queue:new().
2024-08-21 23:27:30
186
原创 erlang学习:书上案例22.6练习题
今天只进行了简单的框架搭建与使用一些相关的队列api完成练习题的第一个要求,对其中队列的使用还不是很了解。对练习题做了一个初步实现,其中用到了队列相关的api,对这方面还不是很了解,明天先学习以下队列的使用在进行书上后面练习题的练习。任务中心(job center)持有一个必须完成的任务队列,这些任务会被编号,任何。发出任务完成的信号。工人可以从队列请求任务,并告诉任务中心已经执行了某项任务。是由fun表示的,要执行任务F,工人必须执行F()函数。添加任务F到任务队列,然后返回一个整数任务编号。
2024-08-20 23:08:41
368
原创 erlang学习:gen_server之间的通信3
两种消息的区别在于,当我们cancel 一个timer的时候,我们并不能保证那个Msg 从进程信箱中去除,如果有timerRef , 我们可以参考gen_fsm里cancel_timer的方法, 利用receive…上次的定时器传送消息存在bug,gen_server2中无法重置定时器的时间,导致20s一到无论gen_server1是否崩溃,都会自动发送超时请求.而我了解到send_after 发送 Msg, 而start_timer 发送{timeout, TimerRef, Msg}.
2024-08-19 22:44:47
134
原创 erlang学习:使一个gen_server挂掉之后通知另一个gen_server也挂掉
今日学习通过调用gen_server1中的handle_call使gen_server1挂掉从而让gen_server2程序也挂掉。gen_server1模块。gen_server2模块。
2024-08-15 23:19:12
237
原创 erlang学习:基本并发函数
向标识符Pid发送异步消息Message。发送异步消息时发送方不需要等待即可继续执行之后的代码。在代码中使进程休眠能够体现出异步处理的作用。用于创建一个新的并发进程来执行Fun。接受发送给某个进程的消息。测试用例如下方代码块所示。
2024-08-12 19:37:08
180
原创 两数之和学习(自用)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。用哈希表解决此类题感觉最合适。你可以按任意顺序返回答案。:可以使用穷举法破解此题。
2023-07-15 15:51:23
121
原创 求幂学习(自用)
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true;否则,返回 false。给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true;否则,返回 false。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x。:判断该数是否能够除以2到最后为值1,若能为1则说明是2的幂次方。
2023-07-13 11:54:44
150
原创 赎金信学习(自用)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。**本题思路:**只要满足magazine中的每一个字符大于或等于ransomNote中的字符即可解决本题`magazine 中的每个字符只能在 ransomNote 中使用一次。如果可以,返回 true;否则返回 false。
2023-07-10 14:44:46
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人