-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
412 lines (218 loc) · 99.9 KB
/
atom.xml
File metadata and controls
412 lines (218 loc) · 99.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Markの小破站</title>
<subtitle>IT技术小破站</subtitle>
<link href="https://www.markyin.cn/atom.xml" rel="self"/>
<link href="https://www.markyin.cn/"/>
<updated>2024-04-03T05:46:36.691Z</updated>
<id>https://www.markyin.cn/</id>
<author>
<name>MarkYin</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>学习计算机专业书籍的方法</title>
<link href="https://www.markyin.cn/article/2684df30"/>
<id>https://www.markyin.cn/article/2684df30</id>
<published>2024-04-03T05:16:13.487Z</published>
<updated>2024-04-03T05:46:36.691Z</updated>
<content type="html"><![CDATA[<h2 id="学习计算机专业书籍的方法"><a href="#学习计算机专业书籍的方法" class="headerlink" title="学习计算机专业书籍的方法"></a>学习计算机专业书籍的方法</h2><h4 id="一-Preface"><a href="#一-Preface" class="headerlink" title="一, Preface"></a>一, Preface</h4><p>在计算机科学的学习过程中,专业书籍是不可或缺的资源。有效地学习这些书籍不仅能够帮助我们掌握理论知识,还能够提升我们解决实际问题的能力。本文将从几个方面来探讨如何高效学习计算机专业书籍。</p><h4 id="二-多次阅读"><a href="#二-多次阅读" class="headerlink" title="二, 多次阅读"></a>二, 多次阅读</h4><p>多次阅读专业书籍是一个深化理解和巩固知识的有效方法。每一次阅读都可能带来新的发现和理解,因为随着学习的深入和经验的积累,我们能够从不同的角度和层次理解书中的内容。此外,重复阅读有助于记忆中的长期保持,尤其是对于那些复杂的概念和理论。它也可以帮助我们建立起更加完整的知识体系,使我们能够将书中的知识更好地应用于实践中,提高解决问题的能力。总之,多次阅读专业书籍是提升专业技能和学术水平的重要途径。</p><h4 id="三-由浅入深"><a href="#三-由浅入深" class="headerlink" title="三,由浅入深"></a>三,由浅入深</h4><p>由浅入深地阅读专业书籍是一个高效的学习过程,它能够帮助我们更好地理解和掌握复杂的知识。在第一次阅读时,我们通过获取一个大纲来了解书籍的基本结构和主要概念,这相当于为我们的学习之旅绘制了一张地图。这样做可以帮助我们确定哪些部分是关键点,哪些可能需要更多的关注。</p><p>第二次阅读时,我们会深入到具体内容,开始理解每个部分的细节。这时,我们已经有了第一次阅读的背景知识,能够更容易地吸收和理解复杂的信息。这个阶段,我们开始将知识点联系起来,形成更加完整的理解。</p><p>到了第三次阅读,我们的目标是深入了解。这时,我们不仅仅是在回顾已经学过的内容,更是在寻找深层次的联系和理解。我们可能会开始思考这些知识如何与我们已知的信息相结合,或者如何应用于实际问题。这个阶段,我们的理解会变得更加深刻,记忆也会更加牢固。</p><p>总的来说,由浅入深的阅读可以帮助我们建立起坚实的知识基础,逐步提高我们的理解和应用能力。这种方法让我们能够有效地处理大量信息,同时确保我们不会在学习过程中迷失方向。它是一种适应人类学习习惯的有效策略,能够帮助我们在知识的海洋中更加自如地航行。</p><h4 id="四-举例"><a href="#四-举例" class="headerlink" title="四,举例"></a>四,举例</h4><p><a href="https://www.bilibili.com/video/BV1gG411f7zX/?vd_source=c1d41c8c07ab515a5b4a2407543a7445">这里我们可以看一看周志华老师讲解机器学习的第一课, 教我们如何读这本书。我觉得读任何专业课书都应该这样, 由浅入深的多次阅读。</a></p><h4 id="五-其他"><a href="#五-其他" class="headerlink" title="五,其他"></a>五,其他</h4><p>如果大家还有什么补充, 欢迎评论区留言。</p>]]></content>
<summary type="html">在学习计算机课程中,看懂专业书籍也蕴含着一层学问</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="学习" scheme="https://www.markyin.cn/tags/%E5%AD%A6%E4%B9%A0/"/>
<category term="书籍" scheme="https://www.markyin.cn/tags/%E4%B9%A6%E7%B1%8D/"/>
</entry>
<entry>
<title>VMnet0和VMnet1和VMnet8的区别</title>
<link href="https://www.markyin.cn/article/4d335011"/>
<id>https://www.markyin.cn/article/4d335011</id>
<published>2024-04-02T13:46:26.730Z</published>
<updated>2024-04-06T05:37:53.166Z</updated>
<content type="html"><![CDATA[<h2 id="VMnet0和VMnet1和VMnet8的区别"><a href="#VMnet0和VMnet1和VMnet8的区别" class="headerlink" title="VMnet0和VMnet1和VMnet8的区别"></a>VMnet0和VMnet1和VMnet8的区别</h2><h4 id="一-Preface"><a href="#一-Preface" class="headerlink" title="一, Preface"></a>一, Preface</h4><p>VMnet0、VMnet1和VMnet8是VMware虚拟机网络配置中的虚拟网络接口。VMnet0通常用于桥接模式,允许虚拟机作为独立设备直接连接到物理网络。VMnet1用于仅主机模式,使虚拟机只能与宿主机通信。VMnet8用于NAT模式,允许虚拟机通过宿主机访问外部网络,同时保护虚拟机不被外网直接访问12。这些网络接口为虚拟机提供了灵活的网络连接选项,以适应不同的网络需求和安全策略。</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202404022156040.png" style="zoom:50%;" /><h4 id="二-VMNet0"><a href="#二-VMNet0" class="headerlink" title="二, VMNet0"></a>二, VMNet0</h4><ol><li>使用桥接模式,虚拟机相当于一台实体机,可以自由访问与被访问及上网(如果虚拟机被黑,可能会让漏洞逃逸出虚拟机,如果虚拟机和主机在同一个网络下,拿下虚拟机还可以拿下你的主机)。</li><li>就是虚拟机种的虚拟网络适配器可以通过主机中的物理网络适配器直接访问外部网络,也会占用局域网中的一个IP地址,虚拟机的ip和物理机的ip在同一个网段,并且可以和其他终端进行相互访问,相当于在局域网中添加了一台新的独立的计算机。</li></ol><h4 id="三-VMNet1"><a href="#三-VMNet1" class="headerlink" title="三, VMNet1"></a>三, VMNet1</h4><ol><li>使用的是host-only的链接模式,虚拟机之间、主机与虚拟机之间互访,但虚拟机无法访问外网。</li><li>比NAT模式更加封闭的网络连接模式,仅对主机可见并且在虚拟机和主机之间提供网络连接,在默认情况下使用仅主机模式的虚拟机无法连接到Internet(需在主机上安装代理软件)一台主机上可以创建多个仅主机模式的虚拟网络,使用同一个仅主机模式的多个虚拟机之间可以相互访问,处于不同的仅主机模式下默认情况无法相互访问。</li></ol><h4 id="四-VMNet8"><a href="#四-VMNet8" class="headerlink" title="四,VMNet8"></a>四,VMNet8</h4><ol><li>使用的是NAT模式,虚拟机之间、主机与虚拟机之间互访,虚拟机可以通过主机访问外网,外网无法访问虚拟机(同一网络下,只会找到物理机,找不到虚拟机。但是虚拟机访问外网的流量会经过虚拟机)(无法逃逸虚拟机进入主机)。</li><li>是创建虚拟机默认的网络连接模式,使用NAT模式时VMware会在主机上建立单独的专用网络用来在主机和虚拟机直接相互通信,在物理机的网络基础上再生成一个子网络,ip的前两位默认就是192.168,然后第三位是随机的,第四位是可以手动设置的,默认情况下外部网络终端也无法访问到虚拟机(可以手动修改),一台主机只允许有一个NAT模式的虚拟网络,使用NAT模式连接的多个虚拟机之间可以相互访问。</li></ol>]]></content>
<summary type="html">VMware虚拟机网络配置中的虚拟网络接口中必须了解三者的区别。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="VMware" scheme="https://www.markyin.cn/tags/VMware/"/>
</entry>
<entry>
<title>了解最经典的非对称加密算法RSA</title>
<link href="https://www.markyin.cn/article/a034bca7"/>
<id>https://www.markyin.cn/article/a034bca7</id>
<published>2024-04-02T12:23:39.482Z</published>
<updated>2024-04-03T05:16:29.890Z</updated>
<content type="html"><![CDATA[<h2 id="最经典的非对称加密算法RSA"><a href="#最经典的非对称加密算法RSA" class="headerlink" title="最经典的非对称加密算法RSA"></a>最经典的非对称加密算法RSA</h2><h4 id="一-Preface"><a href="#一-Preface" class="headerlink" title="一, Preface"></a>一, Preface</h4><p>RSA加密算法是一种最经典的非对称加密算法。RSA是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。</p><h4 id="二-原理和实现"><a href="#二-原理和实现" class="headerlink" title="二, 原理和实现"></a>二, 原理和实现</h4><p>这里不讲复杂的数学公式, 这里只简单的介绍RSA是什么以及大概的工作原理。RSA作为做经典的非对称加密算法,有公钥(如pem文件)和私钥(如key文件)组成。大部分情况下公钥交给外界加密, 私钥用来给自己解密文件。也有一些情况反过来, 通过私钥进行加密, 通过公钥来进行解密。</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202404022124402.jpg" alt="非对称加密" style="zoom:50%;" /><h4 id="三-具体应用"><a href="#三-具体应用" class="headerlink" title="三,具体应用"></a>三,具体应用</h4><p>RSA在很多方面都应用广泛。作为一种非对称加密技术,它在保障网络通信安全、数据加密存储、数字签名等领域发挥着重要作用。</p><ol><li>在Github上我们上传项目时候使用的SSH, 就会使用到RSA加密, 在本地生成RSA私钥和公钥, 再把公钥复制到GitHub上, 便可建立SSH连结。同理我们在本地通过SSH连接远程服务器也是一样的道理。</li><li>在SSL证书中也有应用, 当我们购买了SSL证书之后, 经过了域名验证, 我们还必须同时上穿私钥key文件和公钥pem文件给服务商。等等等等, 在很多方面RSA都有广泛的应用。</li><li>在HTTPS和SSH数据传输时, 通过持有的非对称加密的公钥和私钥进行一系列的加密, 最终形成一个对称加密的会话密钥来进行通信。</li></ol>]]></content>
<summary type="html">程序员必须了解的最常用见,最经典的RSA算法。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="RSA" scheme="https://www.markyin.cn/tags/RSA/"/>
</entry>
<entry>
<title>计算机中一些易混淆名词的区别</title>
<link href="https://www.markyin.cn/article/912c78ad"/>
<id>https://www.markyin.cn/article/912c78ad</id>
<published>2024-04-02T10:43:53.742Z</published>
<updated>2024-04-02T10:59:36.034Z</updated>
<content type="html"><![CDATA[<hr><h4 id="一、编译型语言-amp-解释型语言-amp-脚本语言"><a href="#一、编译型语言-amp-解释型语言-amp-脚本语言" class="headerlink" title="一、编译型语言&解释型语言&脚本语言"></a>一、编译型语言&解释型语言&脚本语言</h4><ol><li>编译型语言:编译型语言是将源代码直接翻译成机器语言并生成可执行文件的语言。这种语言一般需要在源代码上进行编译,将源程序转换成目标程序,再由操作系统运行目标程序。编译型语言的代表语言包括C、C++等。<ul><li>优点:编译过程中对程序进行高度优化,执行速度快。</li><li>缺点:编译过程比较慢,需要时间和资源。</li></ul></li><li>解释型语言:解释型语言是在运行时才逐行解释执行的语言,不需要进行编译。在解释型语言中,程序的每行指令都由解释器逐行解释执行,因此执行速度比编译型语言慢。解释型语言的代表语言包括Python、VB、一些脚本语言等。<ul><li>优点:开发效率高,易于理解和维护。</li><li>执行速度相对较慢,不利于处理大规模数据和复杂的算法。</li></ul></li><li>脚本语言:属于解释型语言的一种,通常用于快速编写小型应用程序或处理文本文件等。脚本语言不需要进行编译,在运行时自动解释执行。脚本语言的代表语言包括javascript、PHP、Ru y等。<ul><li>优点:开发效率高,易于调试和运维。</li><li>缺点:执行速度相对较慢,不适用于处理大量数据和复杂算法法。</li></ul></li><li>不同点:编译型语言需要先进行编译过程,然后生成可执行文件,而解释型语言是在运行时逐行解释执行,无需生成可执行文件。解释型语言可以独立运行,脚本语言通常需要结合其他应用程序使用。</li></ol><h4 id="二、服务端脚本语言-amp-客户端脚本语言"><a href="#二、服务端脚本语言-amp-客户端脚本语言" class="headerlink" title="二、服务端脚本语言&客户端脚本语言"></a>二、服务端脚本语言&客户端脚本语言</h4><ol><li>服务端脚本语言:服务端脚本语言是在服务器端执行的脚本语言。如:javascript、Lua等</li><li>客户端脚本语言:客户端脚本语言则是在浏览器端执行的脚本语言。如:PHP、Ruby、javascript+node.js等。</li></ol><h4 id="三、其他"><a href="#三、其他" class="headerlink" title="三、其他"></a>三、其他</h4><p>欢迎评论区补充!</p>]]></content>
<summary type="html">计算机中很多易混淆的名词, 这里总结了一些</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="解释型语言" scheme="https://www.markyin.cn/tags/%E8%A7%A3%E9%87%8A%E5%9E%8B%E8%AF%AD%E8%A8%80/"/>
<category term="编译型语言" scheme="https://www.markyin.cn/tags/%E7%BC%96%E8%AF%91%E5%9E%8B%E8%AF%AD%E8%A8%80/"/>
<category term="脚本语言" scheme="https://www.markyin.cn/tags/%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80/"/>
</entry>
<entry>
<title>基站是如何区分不同的手机信号的</title>
<link href="https://www.markyin.cn/article/411a77ea"/>
<id>https://www.markyin.cn/article/411a77ea</id>
<published>2024-04-02T10:43:53.732Z</published>
<updated>2024-04-02T10:59:36.036Z</updated>
<content type="html"><![CDATA[<hr><h4 id="一、使用的技术"><a href="#一、使用的技术" class="headerlink" title="一、使用的技术"></a>一、使用的技术</h4><p>通过介质访问控制来区分不同手机发来的电磁波信号。</p><h4 id="二、1G到5G网络使用的介质访问控制"><a href="#二、1G到5G网络使用的介质访问控制" class="headerlink" title="二、1G到5G网络使用的介质访问控制"></a>二、1G到5G网络使用的介质访问控制</h4><ol><li>1G(模拟移动通信系统):采用FDMA(频分多址技术)。将可用的频段分成若干个子信道,每个子信道分配给一个用户使用。</li><li>2G(数字移动通信系统):采用CDMA(码分多址技术)或TDMA(时分多址技术)。<ol><li>CDMA技术:将一串数据分成多个小块,每个小块通过一组唯一的码片进行编码后发送,接收端通过匹配相应的码片进行解码还原。</li><li>TDMA技术:将时间划分为多个时隙,每个时隙分配给一个用户使用。</li></ol></li><li>3G(第三代移动通信系统):采用WCDMA(宽带码分多址技术)。WCDMA将数据分成多个小块,并使用多个码片进行传输,接收端通过解码还原数据。</li><li>4G(第四代移动通信系统):采用OFDMA(正交频分多址技术)和SC-FDMA(单载波频分多址技术)两种技术。<ol><li>OFDMA技术将频段划分为多个子载波,每个子载波都能与多个用户进行通信。</li><li>SC-FDMA技术将一个子载波分成多个时隙,每个时隙只供一个用户使用。</li></ol></li><li>5G(第五代移动通信系统):采用多项技术来提高频谱利用效率和网络吞吐量,其中最常用的频率分复用技术是OFDMA。<br>s</li></ol><h4 id="三、总结"><a href="#三、总结" class="headerlink" title="三、总结"></a>三、总结</h4><p>总之,不同的移动通信标准采用了介质访问控制技术,以实现更好的频谱利用效率和网络性能。以上信息都来自官方文件,如有不准确处请指出。</p>]]></content>
<summary type="html">我们平时每人几乎都有一部手机,基站如何区分我们的手机呢?</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="介质访问控制" scheme="https://www.markyin.cn/tags/%E4%BB%8B%E8%B4%A8%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6/"/>
<category term="计算机网络" scheme="https://www.markyin.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/"/>
</entry>
<entry>
<title>简单理解HTTP和HTTPS的区别</title>
<link href="https://www.markyin.cn/article/4cf0680e"/>
<id>https://www.markyin.cn/article/4cf0680e</id>
<published>2023-04-10T17:37:35.582Z</published>
<updated>2024-04-06T05:41:34.902Z</updated>
<content type="html"><![CDATA[<h2 id="简单理解HTTP和HTTPS的区别"><a href="#简单理解HTTP和HTTPS的区别" class="headerlink" title="简单理解HTTP和HTTPS的区别"></a>简单理解HTTP和HTTPS的区别</h2><h3 id="一、定义"><a href="#一、定义" class="headerlink" title="一、定义"></a>一、定义</h3><p>HTTP:超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">简单的说:</span><br><span class="line">HTTP是一种传输协议</span><br></pre></td></tr></table></figure><p>HTTPS:超文本传输安全协议,是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">简单的说:</span><br><span class="line">HTTPS协议=HTTP协议+SSL协议/TSL协议</span><br></pre></td></tr></table></figure><h3 id="二、区别"><a href="#二、区别" class="headerlink" title="二、区别"></a>二、区别</h3><ol><li><p>HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。</p></li><li><p>使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。</p></li><li><p>HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 TSL 握手需要的 9 个包,所以一共是 12 个包。</p></li><li><p>http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。</p></li><li><p>HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。</p></li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">简单的说:</span><br><span class="line">HTTP是明文传输,黑客可以知道你和服务器之间的内容</span><br><span class="line">HTTPS是HTTP经过TSL加密后进行的加密传输,黑客无法获取你和服务器之间的内容</span><br></pre></td></tr></table></figure><h3 id="三、SSL-TSL加密"><a href="#三、SSL-TSL加密" class="headerlink" title="三、SSL\TSL加密"></a>三、SSL\TSL加密</h3><p>目前SSL已经不用了,现在几乎所有的浏览器都是使用的TSL加密。该加密过程可以通过一张图片来解释</p><ol><li>客户端发送Client Hello、支持的TLS版本、支持的加密套件(不同的对称加密算法组合)、第一个随机数</li><li>服务端单发送Server Hello、确认支持的TLS版本、确认选择的加密套件、第二个随机数</li><li>服务端发送CA证书(浏览器会对照自己的证书信任列表来确认这个服务器是否可信)、服务器公钥、Server Hello Done(服务端发送完了)。这里服务器也可能发出请求要客户端证书和公钥,比如登录网站的时候</li><li>客户端发送预主密钥(经过公钥加密后的第三个随机数)、Change Ciper Spec(往后的数据通过商量好的算法加密)、Encrypted Hadshake Message(TLS协商没有问题,加密开始)</li><li>服务端发送Encrypted Hadshake Message</li></ol><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202205141156250.png" alt="TSL握手"></p><p><a href="https://www.bilibili.com/video/BV1KY411x7Jp">图片来源于技术蛋老师</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">总而言之:</span><br><span class="line">因为SSL证书服务器有一个私钥&公钥(被CA认证),通过非对称加密并产生的三个随机数最终可以获得一个会话密钥,即后续用到的对称加密方法。</span><br></pre></td></tr></table></figure><h3 id="四、总结"><a href="#四、总结" class="headerlink" title="四、总结"></a>四、总结</h3><p>如今HTTPS已成为主流,但是HTTPS中的加密的非对称加密(其实用的也就是RSA加密)非常复杂,运输效率极低。所以这里的RSA加密只是用于身份验证,而后续加密步骤都是通过三个随机数来确认的一种更高效的对称加密算法。</p>]]></content>
<summary type="html">简单介绍HTTP和HTTPS的区别</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="HTTP/HTTPS" scheme="https://www.markyin.cn/tags/HTTP-HTTPS/"/>
<category term="web" scheme="https://www.markyin.cn/tags/web/"/>
</entry>
<entry>
<title>如何让没有WWW的网站跳转到带有WWW的网站</title>
<link href="https://www.markyin.cn/article/1b18f8fb"/>
<id>https://www.markyin.cn/article/1b18f8fb</id>
<published>2023-04-10T17:37:35.579Z</published>
<updated>2024-04-06T05:42:34.267Z</updated>
<content type="html"><![CDATA[<h2 id="如何让没有www的网站跳转到带www的网站"><a href="#如何让没有www的网站跳转到带www的网站" class="headerlink" title="如何让没有www的网站跳转到带www的网站"></a>如何让没有www的网站跳转到带www的网站</h2><h3 id="一、前言"><a href="#一、前言" class="headerlink" title="一、前言"></a>一、前言</h3><p>现在越来越多的网站没有www开头了。但是我们经常想让我们的网站在浏览器中在没有www开头的时候自动跳转到www开头的主站,例如让我的网站(注:由于笔者没有用服务器,用的是又拍云得CDN来加速网站,并且SSL证书是在又拍云上添加的,所以笔者没有进行跳转设置,因为如果这样设置子域名markyin.cn就无法添加SSL证书进行HTTPS协议)</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://markyin.cn</span><br></pre></td></tr></table></figure><p>自动跳转到主站</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://www.markyin.cn</span><br></pre></td></tr></table></figure><p>笔者在这里总结了两种方法,分别针对没有备案的域名和备案的域名。</p><h3 id="二、前提"><a href="#二、前提" class="headerlink" title="二、前提"></a>二、前提</h3><p>首先登录我们的阿里云/腾讯云/不管什么云,我们必须要有一个主机记录值为www(别的也行)的域名解析。</p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204301618941.png" alt="主机记录值为www"></p><h3 id="三、添加记录"><a href="#三、添加记录" class="headerlink" title="三、添加记录"></a>三、添加记录</h3><h4 id="1-法一:CNAME法(域名没有备案)"><a href="#1-法一:CNAME法(域名没有备案)" class="headerlink" title="1. 法一:CNAME法(域名没有备案)"></a>1. 法一:CNAME法(域名没有备案)</h4><p>添加一条CNAME记录类型,主机记录为@,记录值指向你带有www的网站,比如我就指向<a href="http://www.markyin.cn.下面以我的为例./">www.markyin.cn。下面以我的为例。</a></p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204301624008.png" alt="添加CNAME记录"></p><h4 id="2-法二:301重定位(域名备案了)"><a href="#2-法二:301重定位(域名备案了)" class="headerlink" title="2. 法二:301重定位(域名备案了)"></a>2. 法二:301重定位(域名备案了)</h4><p>因为如果域名没有备案就不能使用URL记录类型,所以该方法只适用于备案之后的网站。这里将记录类型换为显性URL,主机记录还是为@,记录值301+你的带www的网址(还需要带http/https协议前缀),例如我的:<a href="https://markyin.cn.下面以我的为例./">https://markyin.cn。下面以我的为例。</a></p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204301629985.png" alt="301重定位"></p><h3 id="四、最终效果"><a href="#四、最终效果" class="headerlink" title="四、最终效果"></a>四、最终效果</h3><p>当我们在网站中输入不带www的域名的时候,浏览器就会自动跳转</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204301630382.png" alt="不带www域名" /><p>到我们带www的域名主站</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204301632786.png" alt="带www的域名" style="zoom: 67%;" />]]></content>
<summary type="html">详细介绍如何让没有三W的网站跳转到带有三W的网站</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="WWW" scheme="https://www.markyin.cn/tags/WWW/"/>
<category term="web" scheme="https://www.markyin.cn/tags/web/"/>
</entry>
<entry>
<title>函数和方法傻傻分不清</title>
<link href="https://www.markyin.cn/article/34ec30d5"/>
<id>https://www.markyin.cn/article/34ec30d5</id>
<published>2023-04-10T17:37:35.575Z</published>
<updated>2024-04-06T05:35:46.353Z</updated>
<content type="html"><![CDATA[<h2 id="函数和方法傻傻分不清"><a href="#函数和方法傻傻分不清" class="headerlink" title="函数和方法傻傻分不清"></a>函数和方法傻傻分不清</h2><h3 id="一、前言"><a href="#一、前言" class="headerlink" title="一、前言"></a>一、前言</h3><p>笔者在之前学习c++的时候,书上从来没有提到过方法(method)这一个名词。直到后来学习了Java,就再也没听到函数(function)这一名词了。刚开始的时候我以为方法(method)=函数(function)。但是直到后来,学习了javascript中的this关键字的时候</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281329981.png" style="zoom:80%;" /><p>what?????函数不应该就是方法吗?????</p><h3 id="二、函数和方法的区别"><a href="#二、函数和方法的区别" class="headerlink" title="二、函数和方法的区别"></a>二、函数和方法的区别</h3><p>在通过一段地毯式搜查之后终于得知,在javascript中的解释为:</p><ol><li><p>函数(function)是可以执行的javascript代码块,由javascript程序定义或javascript实现预定义。函数可以带有实际参数或者形式参数,用于指定这个函数执行计算要使用的一个或多个值,而且还可以返回值,以表示计算的结果。</p></li><li><p>方法(method)是通过对象调用的javascript函数。也就是说,方法也是函数,只是比较特殊的函数。假设有一个函数是fn,有一个对象是obj,那么就可以定义一个method。</p></li></ol><p>简单点说就是:将函数和对象合写在一起时,函数就变成了 “方法”(method)。</p><p>也就是说:</p><ol><li>面向对象的语言叫方法</li><li>面向过程的语言叫函数</li></ol><h3 id="三、java和c-中的方法(function)和函数(method)"><a href="#三、java和c-中的方法(function)和函数(method)" class="headerlink" title="三、java和c++中的方法(function)和函数(method)"></a>三、java和c++中的方法(function)和函数(method)</h3><p>再把这个问题带到最开始学习java和c++的时候,为什么java里面只提及方法,而c++里面只提及函数。因为java是一个纯面向对象的编程语言,所以只有(method)没有函数(function)。但是c++既有c这样面向过程,又有class这样面向对象为什么从来没有书上提及c++的方法?因为c语言是一个纯面向对象语言,所以只有函数,没有方法。而在c++中面向对象的函数叫:成员函数,其实这也算是一种方法,但是一般不这么叫,因此c++也没有方法这一说了。</p>]]></content>
<summary type="html">详细介绍函数和方法在javascript上的区别,以及在其他语言是哪些是函数哪些是方法</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="javascript" scheme="https://www.markyin.cn/tags/javascript/"/>
<category term="web" scheme="https://www.markyin.cn/tags/web/"/>
</entry>
<entry>
<title>全网最全Nginx服务配置</title>
<link href="https://www.markyin.cn/article/1194d14e"/>
<id>https://www.markyin.cn/article/1194d14e</id>
<published>2023-04-10T17:37:35.570Z</published>
<updated>2024-04-02T14:14:02.532Z</updated>
<content type="html"><![CDATA[<h2 id="全网最全Nginx服务配置"><a href="#全网最全Nginx服务配置" class="headerlink" title="全网最全Nginx服务配置"></a>全网最全Nginx服务配置</h2><h3 id="一-安装安装Nginx"><a href="#一-安装安装Nginx" class="headerlink" title="一, 安装安装Nginx"></a>一, 安装安装Nginx</h3><ol><li><p>上传安装包</p></li><li><p>解压安装包</p></li><li><p>进入Nginx目录</p></li><li><p>安装依赖环境</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">yum -y install pcre pcre-devel</span><br><span class="line">yum -y install zlib zlib-devel</span><br><span class="line">yum -y install openssl openssl-devel</span><br></pre></td></tr></table></figure></li><li><p>安装Nginx</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">./configure</span><br><span class="line">make</span><br><span class="line">make install</span><br><span class="line">安装后在/usr/local下就会有一个nginx目录</span><br></pre></td></tr></table></figure></li><li><p>启动Nginx</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /usr/local/nginx/sbin</span><br><span class="line">启动</span><br><span class="line">./nginx</span><br><span class="line">停止</span><br><span class="line">./nginx -s stop</span><br><span class="line">重启</span><br><span class="line">./nginx -s reload</span><br></pre></td></tr></table></figure></li><li><p>查看服务状态</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ps -ef | grep nginx</span><br></pre></td></tr></table></figure></li><li><p>测试Nginx服务是否成功启动</p><figure class="highlight http"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://ip地址:80</span><br></pre></td></tr></table></figure></li></ol><h3 id="二-发布项目"><a href="#二-发布项目" class="headerlink" title="二, 发布项目"></a>二, 发布项目</h3><ol><li><p>创建一个testweb目录</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /home</span><br><span class="line"><span class="built_in">mkdir</span> testweb</span><br></pre></td></tr></table></figure></li><li><p>将项目上传到testweb目录</p></li><li><p>解压项目</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">unzip web.zip</span><br></pre></td></tr></table></figure></li><li><p>编辑Nginx配置文件nginx-1.17.5/conf/nginx.conf</p> <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">server {</span><br><span class="line"> listen 80;</span><br><span class="line"> server_name localhost;</span><br><span class="line"></span><br><span class="line"> <span class="comment">#charset koi8-r;</span></span><br><span class="line"> </span><br><span class="line"> <span class="comment">#access_log logs/host.access.log main;</span></span><br><span class="line"> </span><br><span class="line"> location / {</span><br><span class="line"> root /home/testweb;</span><br><span class="line"> index index.html index.htm;</span><br><span class="line"> }</span><br></pre></td></tr></table></figure></li><li><p>关闭nginx服务</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./nginx -s stop</span><br></pre></td></tr></table></figure></li><li><p>启动服务并加载配置文件</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/usr/local/nginx/sbin/nginx -c /home/nginx-1.17.5/conf/nginx.conf</span><br></pre></td></tr></table></figure></li><li><p>浏览器打开网址</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://192.168.203.138</span><br></pre></td></tr></table></figure></li></ol>]]></content>
<summary type="html">全网最全Nginx环境搭建, 搭建到centos服务器上, 部署属于自己的网站。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="Nginx" scheme="https://www.markyin.cn/tags/Nginx/"/>
<category term="环境搭建" scheme="https://www.markyin.cn/tags/%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/"/>
<category term="服务器" scheme="https://www.markyin.cn/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
<category term="web" scheme="https://www.markyin.cn/tags/web/"/>
</entry>
<entry>
<title>免费电影网站资源分享</title>
<link href="https://www.markyin.cn/article/dbe42a5b"/>
<id>https://www.markyin.cn/article/dbe42a5b</id>
<published>2023-04-10T17:37:35.567Z</published>
<updated>2024-04-06T05:42:07.024Z</updated>
<content type="html"><![CDATA[<h3 id="一-前言"><a href="#一-前言" class="headerlink" title="一.前言"></a>一.前言</h3><p>本站会保持不定时更新,喜欢的朋友可以收藏此站,因为这类网站有的会受到DDOS攻击然后不再运营,有的时常更换域名,所以笔者在此收集了几个网站给大家备用观看。</p><p>本站只为了分享给学生党们,闲暇时间看追一下喜欢的电影和电视剧,没有盈利目的。如果涉及到侵权或者,损害了它人利益,请联系博主。</p><hr><h3 id="二-网站链接"><a href="#二-网站链接" class="headerlink" title="二.网站链接"></a>二.网站链接</h3><p>笔者在此也不过多废话先直接给出所有网站的链接, 有一些网站需要访问外网, 所以请自行尝试。(由于很多网站不盈利, 已经失效, 所以建议大家用导航网站)</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">1.茶杯狐:https://www.cupfox.com/</span><br><span class="line">2.剧嗨影院:https://www.juhi.cc/</span><br><span class="line">3.欧乐影院:https://www.olevod.com/</span><br><span class="line">4.牛视网TV:https://www.chaojidianshi.net/</span><br><span class="line">5.捷华影视:https://www.jiehua.tv/</span><br><span class="line">6.视觉影视:http://shijueyy.com/</span><br><span class="line">7.555电影:https://www.o8tv.com/</span><br><span class="line">8.帝国影院:http://www.tv2828.com/</span><br><span class="line">9.天猫影院:http://www.tmaotv.com/</span><br><span class="line">10.火星2048:http://www.hx2048.com/</span><br><span class="line">11.4K影院-IU极客影院:https://www.i8k.cc/</span><br><span class="line">12.奈菲影视:https://www.nfmovies.com/</span><br><span class="line">13.哔嘀影视:https://www.mp4er.com/</span><br><span class="line">14.极品影视:https://www.jpysvip.net/</span><br><span class="line">15.白熊影院:https://www.woobm.cn/</span><br><span class="line">16.新VIP影院:http://www.xvipyy.com/mov/</span><br><span class="line">17.66影视:http://www.d66ys.com/</span><br><span class="line">18.木瓜电影网:https://www.14tv.cc/</span><br><span class="line">19.新影视影院:https://www.qzcyqp.com/</span><br><span class="line">20.电影天堂:https://www.dygod.net/</span><br></pre></td></tr></table></figure><hr><h3 id="三-导航网站"><a href="#三-导航网站" class="headerlink" title="三.导航网站"></a>三.导航网站</h3><p>因为很多免费的电影网站, 用着用着就会失效, 笔者建议大家可以收藏一个导航网站, 这样大家就可以随时都有免费的电影网站了。这里, 我列举一些导航网站。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">1.吾爱导航: https://www.gxfcseo.com</span><br><span class="line">2.小众技术工具库: https://www.xiaozhongjishu.com</span><br><span class="line">3.极光导航: https://www.jigdh.com</span><br><span class="line">4.好狗导航: https://www.howgo.cc</span><br><span class="line">5.可乐影视: https://klyingshi.com</span><br><span class="line">6.快导导航网: https://www.hifast.cn</span><br></pre></td></tr></table></figure><p>例如吾爱导航的影视资源: </p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202404021837949.png" alt="吾爱导航"></p><hr><p>(原创,转发请注明出处)</p>]]></content>
<summary type="html">有了这几个免费电影网站资源,这辈子看片不用愁了</summary>
<category term="其他" scheme="https://www.markyin.cn/categories/%E5%85%B6%E4%BB%96/"/>
<category term="电影" scheme="https://www.markyin.cn/tags/%E7%94%B5%E5%BD%B1/"/>
<category term="娱乐" scheme="https://www.markyin.cn/tags/%E5%A8%B1%E4%B9%90/"/>
</entry>
<entry>
<title>Windows必须掌握的几个简单DOS命令</title>
<link href="https://www.markyin.cn/article/d9c053d3"/>
<id>https://www.markyin.cn/article/d9c053d3</id>
<published>2023-04-10T17:37:35.562Z</published>
<updated>2024-04-06T05:35:21.964Z</updated>
<content type="html"><![CDATA[<h2 id="程序员必须掌握的几个DOS命令"><a href="#程序员必须掌握的几个DOS命令" class="headerlink" title="程序员必须掌握的几个DOS命令"></a>程序员必须掌握的几个DOS命令</h2><h3 id="一、什么是DOS命令"><a href="#一、什么是DOS命令" class="headerlink" title="一、什么是DOS命令"></a>一、什么是DOS命令</h3><p>DOS操作系统的命令,是一种面向磁盘的操作命令主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。大家常用的操作系统有win11、win10等,都是图形化的界面。在有这些系统之前的人们使用的操作系统是DOS系统。</p><p>简单点说DOS命令就是windows的cmd命令,虽然windows得命令并没有Linux那么丰富,但是基本几条还是需要掌握的,在平时也会经常用到。</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281446288.png" alt="image-20220415162351096" style="zoom: 50%;" /><h3 id="二、为什么要学DOS命令"><a href="#二、为什么要学DOS命令" class="headerlink" title="二、为什么要学DOS命令"></a>二、为什么要学DOS命令</h3><p>为我们在一些特殊条件下,我们大多数情况都只能使用命令行来完成一系列操作,而且只需要一条命令或者是一段命令就能完成繁琐的操作。</p><p>DOS命令总共有一百多种,但是常用的也就十来种十分容易学习。DOS命令会让我们的操作看起来像黑客一样,会不会用先不说,逼倒是装起来了。</p><h3 id="三、常用的DOS命令"><a href="#三、常用的DOS命令" class="headerlink" title="三、常用的DOS命令"></a>三、常用的DOS命令</h3><p>dir命令:用于显示点给钱路径下的所有文件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">dir [盘符:][路径][文件名] [参数],例如:dir c:\windows</span><br></pre></td></tr></table></figure><p>md命令:用于新建一个文件夹</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">md [盘符][路径],例如:md user</span><br></pre></td></tr></table></figure><p>rd命令:用于删除目录</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">rd [盘符][路径],只能删除空目录</span><br><span class="line">rd [盘符][路径]/s,删除目录下的所有文件</span><br></pre></td></tr></table></figure><p>cd命令:用于切换到指定文件夹</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd [路径],例如:cd Users</span><br><span class="line">注意:只能进入当前盘符中的目录</span><br></pre></td></tr></table></figure><p>copy 命令:拷贝文件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">COPY [源目录或文件] [目的目录或文件]</span><br><span class="line">注意:使用该命令进行文件拷贝时,目的目录一定要存在。</span><br></pre></td></tr></table></figure><p>ipconfig 命令:查看本机IP网络配置</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ipconfig</span><br><span class="line">可选参数:/all</span><br></pre></td></tr></table></figure><p>ver命令:显示正在运行的DOS系统版本号</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ver</span><br></pre></td></tr></table></figure><p>systeminfo 命令:显示关于计算机其操作系统详细配置信息</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systeminfo</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">作为一个程序员,或者想成为程序员的人。DOS命令在我们的工作中是必不可少的,因此本文将介绍几个常用的DOS命令以供大家日常需求。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="DOS" scheme="https://www.markyin.cn/tags/DOS/"/>
<category term="命令" scheme="https://www.markyin.cn/tags/%E5%91%BD%E4%BB%A4/"/>
</entry>
<entry>
<title>如何免费激活Typora</title>
<link href="https://www.markyin.cn/article/79375adb"/>
<id>https://www.markyin.cn/article/79375adb</id>
<published>2023-04-10T17:37:35.559Z</published>
<updated>2024-04-12T15:47:18.734Z</updated>
<content type="html"><![CDATA[<h2 id="Typora开始收费了,教你如何白嫖"><a href="#Typora开始收费了,教你如何白嫖" class="headerlink" title="Typora开始收费了,教你如何白嫖"></a>Typora开始收费了,教你如何白嫖</h2><h3 id="一、为什么选择Typora"><a href="#一、为什么选择Typora" class="headerlink" title="一、为什么选择Typora"></a>一、为什么选择Typora</h3><p>如果说typora是第二好用的markdown文本编辑器,那么应该没有谁敢说自己是第一好用的文本编辑器了。typora简洁的外观,丰富的功能实在让人难以割舍,但是作为学生党的我们囊中羞涩啊。还记得曾经那个免费的typora是多么的平易近人,现在居然需要14.99美刀、89元,而且并不能终身买断,只能买断一个大版本,当笔者得到这一消息的时候悲痛欲绝。</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281444495.png" alt="Typora收费界面" style="zoom:50%;" /><h3 id="二、下载文件"><a href="#二、下载文件" class="headerlink" title="二、下载文件"></a>二、下载文件</h3><ol><li><p>进入<a href="https://github.com/markyin0707/typora-activation">我的github仓库</a></p></li><li><p>点机release</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281444860.png" alt="我的github仓库界面" style="zoom:80%;" /></li><li><p>随便下载一个解压</p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281444633.png" alt="Typora1.2.5版本" style="zoom:67%;" /></li></ol><h3 id="三、激活步骤"><a href="#三、激活步骤" class="headerlink" title="三、激活步骤"></a>三、激活步骤</h3><ol><li><p>先安装 typora-setup-x64-1.2.3.exe ,记下安装路径</p></li><li><p>按照README.md文档中的方法, 更换文件</p></li><li><p>重启typora</p></li><li><p>成功激活</p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281443065.png" alt="激活成功"></p></li></ol><h3 id="四、注意事项"><a href="#四、注意事项" class="headerlink" title="四、注意事项"></a>四、注意事项</h3><p>请下载对应版本文件,<strong>不要更新typora</strong>,毕竟typora更新变化不大,老版本功能和新版本基本上没有很大的差距。不能保证后续版本该方法任然有效。</p>]]></content>
<summary type="html">还记得曾经那个免费的typora是多么的平易近人,现在居然需要14.99美刀、89元,而且并不能终身买断,只能买断一个大版本,当笔者得到这一消息的时候悲痛欲绝。在此笔者要以5分钟教大家如何激活Typora。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="Typora" scheme="https://www.markyin.cn/tags/Typora/"/>
</entry>
<entry>
<title>IntelliJ IDEA三种注释方法</title>
<link href="https://www.markyin.cn/article/81e71802"/>
<id>https://www.markyin.cn/article/81e71802</id>
<published>2023-04-10T17:37:35.554Z</published>
<updated>2024-04-02T14:11:42.629Z</updated>
<content type="html"><![CDATA[<h2 id="IntelliJ-IDEA三种注释方法"><a href="#IntelliJ-IDEA三种注释方法" class="headerlink" title="IntelliJ IDEA三种注释方法"></a>IntelliJ IDEA三种注释方法</h2><h3 id="一、行注释"><a href="#一、行注释" class="headerlink" title="一、行注释"></a>一、行注释</h3><p>快捷键Ctrl+/(或者直接//+注释内容)</p><p>以下面几行简单代码为例</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.util.Scanner;</span><br><span class="line"></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">Plus</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> {</span><br><span class="line"> <span class="type">Scanner</span> <span class="variable">scanner</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">Scanner</span>(System.in);</span><br><span class="line"> <span class="type">int</span> <span class="variable">n</span> <span class="operator">=</span> scanner.nextInt();<span class="comment">//输入一个n</span></span><br><span class="line"><span class="comment">//把n传入到plus方法中,然后输出</span></span><br><span class="line"> System.out.println(plus(n));</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">int</span> <span class="title function_">plus</span><span class="params">(<span class="type">int</span> n)</span> {</span><br><span class="line"> <span class="type">int</span> <span class="variable">sum</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">1</span>; i <= n; i++) {</span><br><span class="line"> sum = sum + i;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> sum;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="二、块注释Ctrl-Shift-x2F"><a href="#二、块注释Ctrl-Shift-x2F" class="headerlink" title="二、块注释Ctrl+Shift+/"></a>二、块注释Ctrl+Shift+/</h3><p>快捷键Ctrl+Shift+/(或者直接/**/然后在中间添加内容)</p><p>以下面几行简单代码为例</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.util.Scanner;</span><br><span class="line"></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">Plus</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> {</span><br><span class="line"> <span class="type">Scanner</span> <span class="variable">scanner</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">Scanner</span>(System.in);</span><br><span class="line"> <span class="type">int</span> <span class="variable">n</span> <span class="operator">=</span> scanner.nextInt();</span><br><span class="line"> System.out.println(plus(n));</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">int</span> <span class="title function_">plus</span><span class="params">(<span class="type">int</span> n)</span> {</span><br><span class="line"> <span class="type">int</span> <span class="variable">sum</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="comment">/*</span></span><br><span class="line"><span class="comment"> * 定义一个for循环:</span></span><br><span class="line"><span class="comment"> * 从1一直加到n</span></span><br><span class="line"><span class="comment"> * 把值传给sum</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">1</span>; i <= n; i++) {</span><br><span class="line"> sum = sum + i;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> sum;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="三、方法或类注释"><a href="#三、方法或类注释" class="headerlink" title="三、方法或类注释"></a>三、方法或类注释</h3><p>无快捷键,输入/**+Enter,然后就会自动根据参数和返回值生成注释模板,我们在这个模板上面编写即可。</p><p>以下面几行简单代码为例</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.util.Scanner;</span><br><span class="line"></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">Plus</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> {</span><br><span class="line"> <span class="type">Scanner</span> <span class="variable">scanner</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">Scanner</span>(System.in);</span><br><span class="line"> <span class="type">int</span> <span class="variable">n</span> <span class="operator">=</span> scanner.nextInt();</span><br><span class="line"> System.out.println(plus(n));</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 定义一个方法:</span></span><br><span class="line"><span class="comment"> * 传入一个参数n</span></span><br><span class="line"><span class="comment"> * 返回一个从1加到n的数sum</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> n</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span> sum</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">int</span> <span class="title function_">plus</span><span class="params">(<span class="type">int</span> n)</span> {</span><br><span class="line"> <span class="type">int</span> <span class="variable">sum</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">1</span>; i <= n; i++) {</span><br><span class="line"> sum = sum + i;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> sum;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="四、综合"><a href="#四、综合" class="headerlink" title="四、综合"></a>四、综合</h3><p>结合上面的三种注释就可以得到一个十分通俗易懂的代码了,当然在简单的代码中没必要写的这么详细。但是在实际项目中往往是上千行,甚至有的大项目上万行代码,这里注释就显得十分重要了,合理运用注释,可以让代码十分通俗易懂。</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.util.Scanner;</span><br><span class="line"></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">Plus</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> {</span><br><span class="line"> <span class="type">Scanner</span> <span class="variable">scanner</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">Scanner</span>(System.in);</span><br><span class="line"> <span class="type">int</span> <span class="variable">n</span> <span class="operator">=</span> scanner.nextInt();<span class="comment">//输入一个n</span></span><br><span class="line"><span class="comment">//把n传入到plus方法中,然后输出</span></span><br><span class="line"> System.out.println(plus(n));</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 定义一个方法:</span></span><br><span class="line"><span class="comment"> * 传入一个参数n</span></span><br><span class="line"><span class="comment"> * 返回一个从1加到n的数sum</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> n</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span> sum</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">int</span> <span class="title function_">plus</span><span class="params">(<span class="type">int</span> n)</span> {</span><br><span class="line"> <span class="type">int</span> <span class="variable">sum</span> <span class="operator">=</span> <span class="number">0</span>;</span><br><span class="line"> <span class="comment">/*</span></span><br><span class="line"><span class="comment"> * 定义一个for循环:</span></span><br><span class="line"><span class="comment"> * 从1一直加到n</span></span><br><span class="line"><span class="comment"> * 把值传给sum</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">1</span>; i <= n; i++) {</span><br><span class="line"> sum = sum + i;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> sum;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">IntelliJ IDEA三种注释方法,让代码看起来更加通俗易懂。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="java" scheme="https://www.markyin.cn/tags/java/"/>
<category term="语法" scheme="https://www.markyin.cn/tags/%E8%AF%AD%E6%B3%95/"/>
</entry>
<entry>
<title>基于Hexo框架的个人博客搭建流程</title>
<link href="https://www.markyin.cn/article/d6f2d907"/>
<id>https://www.markyin.cn/article/d6f2d907</id>
<published>2023-04-10T17:37:35.550Z</published>
<updated>2024-04-06T05:37:29.764Z</updated>
<content type="html"><![CDATA[<h3 id="一-前言"><a href="#一-前言" class="headerlink" title="一.前言"></a>一.前言</h3><p>由于网上有非常多搭建Hexo博客详细的讲解流程,笔者在此就不再重复,本文则偏向于搭建过博客的用户,用于回忆流程,以及二次搭建,不适合第一次搭建的用户观看。新手可以在bilibili搜索一下Hexo博客,通过视频的方式更容易上手。</p><hr><h3 id="二-基于Hexo框架的个人博客搭建流程"><a href="#二-基于Hexo框架的个人博客搭建流程" class="headerlink" title="二.基于Hexo框架的个人博客搭建流程"></a>二.基于Hexo框架的个人博客搭建流程</h3><h4 id="1-Hexo的安装步骤"><a href="#1-Hexo的安装步骤" class="headerlink" title="1. Hexo的安装步骤"></a>1. Hexo的安装步骤</h4><h5 id="1-下载git和node-js"><a href="#1-下载git和node-js" class="headerlink" title="(1)下载git和node.js"></a>(1)下载git和node.js</h5><h5 id="2-进入终端运行"><a href="#2-进入终端运行" class="headerlink" title="(2)进入终端运行"></a>(2)进入终端运行</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br><span class="line">npm install hexo</span><br></pre></td></tr></table></figure><div class="note info modern"><p>如果网络条件不好则通过淘宝镜像</p></div><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">npm install -g cnpm --registry=https://registry.npm.taobao.org</span><br><span class="line">cnpm install -g hexo-cli</span><br><span class="line">cnpm install hexo</span><br></pre></td></tr></table></figure><h4 id="2-创建博客"><a href="#2-创建博客" class="headerlink" title="2. 创建博客"></a>2. 创建博客</h4><h5 id="(1)创建博客文件夹"><a href="#(1)创建博客文件夹" class="headerlink" title="(1)创建博客文件夹"></a>(1)创建博客文件夹</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mkdir blog</span><br></pre></td></tr></table></figure><h5 id="(2)初始化博客文件夹"><a href="#(2)初始化博客文件夹" class="headerlink" title="(2)初始化博客文件夹"></a>(2)初始化博客文件夹</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo init blog</span><br></pre></td></tr></table></figure><div class="note info modern"><p>如果根目录是blog,则运行</p></div><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo init </span><br></pre></td></tr></table></figure><h5 id="(3)进入博客安装npm"><a href="#(3)进入博客安装npm" class="headerlink" title="(3)进入博客安装npm"></a>(3)进入博客安装npm</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd blog</span><br><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><h5 id="(4)生成你的第一篇博客"><a href="#(4)生成你的第一篇博客" class="headerlink" title="(4)生成你的第一篇博客"></a>(4)生成你的第一篇博客</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">hexo g</span><br><span class="line">hexo s</span><br></pre></td></tr></table></figure><h4 id="3-部署github"><a href="#3-部署github" class="headerlink" title="3. 部署github"></a>3. 部署github</h4><div class="note info modern"><p>此步骤笔者建议大家使用ssh公共钥连接github,因为https有的时候会遇到传不上去的情况</p></div><div class="note success modern"><p>也可能是笔者个人网络原因,大家结合自身情况选择。</p></div><h5 id="(1)创建一个github仓库"><a href="#(1)创建一个github仓库" class="headerlink" title="(1)创建一个github仓库"></a>(1)创建一个github仓库</h5><p>仓库名必须是:你的github用户名.github.io</p><h5 id="(2)配置好user-name和user-email"><a href="#(2)配置好user-name和user-email" class="headerlink" title="(2)配置好user.name和user.email"></a>(2)配置好user.name和user.email</h5><p>进入根目录</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.name "用户名"</span><br><span class="line">git config --global user.email "github绑定的电子邮箱"</span><br></pre></td></tr></table></figure><h5 id="(3)连接公钥"><a href="#(3)连接公钥" class="headerlink" title="(3)连接公钥"></a>(3)连接公钥</h5><p>修改_config.yml文件(此处建议使用vscode修改),将文件底部修改为</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">deploy:</span><br><span class="line"> type: git</span><br><span class="line"> repo: git@github.com:github用户名/github用户名.github.io.git</span><br><span class="line"> branch: main</span><br></pre></td></tr></table></figure><h5 id="(4)部署博客"><a href="#(4)部署博客" class="headerlink" title="(4)部署博客"></a>(4)部署博客</h5><p>四连套</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">hexo c</span><br><span class="line">hexo g</span><br><span class="line">hexo s</span><br><span class="line">hexo d</span><br></pre></td></tr></table></figure><h5 id="(5)补充:通过Https连接"><a href="#(5)补充:通过Https连接" class="headerlink" title="(5)补充:通过Https连接"></a>(5)补充:通过Https连接</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">deploy:</span><br><span class="line"> type: git</span><br><span class="line"> repo: https://github.com/github用户名/github用户名.github.io.git</span><br><span class="line"> branch: main</span><br></pre></td></tr></table></figure><h4 id="5-为自己的github-pages连接域名"><a href="#5-为自己的github-pages连接域名" class="headerlink" title="5. 为自己的github pages连接域名"></a>5. 为自己的github pages连接域名</h4><h5 id="(1)购买域名"><a href="#(1)购买域名" class="headerlink" title="(1)购买域名"></a>(1)购买域名</h5><p>大家可以通过阿里云和腾讯云进行购买域名</p><h5 id="(2)在解析设置中添加记录"><a href="#(2)在解析设置中添加记录" class="headerlink" title="(2)在解析设置中添加记录"></a>(2)在解析设置中添加记录</h5><p>按照图片中的格式填就可以。</p><p>注意:不要企图通过<code>ping</code>的方式,来找出所有的IP地址。因为你的网站的IP是会变化的哦。所以你需要添加这四个解析到IP地址的<code>A</code>记录。参考<a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site">官方文档</a></p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202204281448171.png" alt="image-20211105181301373"></p><h5 id="3-添加域名"><a href="#3-添加域名" class="headerlink" title="(3) 添加域名"></a>(3) 添加域名</h5><p>最后在github仓库setting中的page页面添加你所购买的域名保存即可</p><hr><p>(原创,转载请注明出处)</p>]]></content>
<summary type="html">Hexo搭建的流程讲解。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="web" scheme="https://www.markyin.cn/tags/web/"/>
<category term="Hexo" scheme="https://www.markyin.cn/tags/Hexo/"/>
<category term="博客" scheme="https://www.markyin.cn/tags/%E5%8D%9A%E5%AE%A2/"/>
</entry>
<entry>
<title>Hash算法原理</title>
<link href="https://www.markyin.cn/article/ec72a45b"/>
<id>https://www.markyin.cn/article/ec72a45b</id>
<published>2023-04-10T17:37:35.546Z</published>
<updated>2024-04-06T05:37:07.445Z</updated>
<content type="html"><![CDATA[<h2 id="Hash算法"><a href="#Hash算法" class="headerlink" title="Hash算法"></a>Hash算法</h2><h3 id="一、定义"><a href="#一、定义" class="headerlink" title="一、定义"></a>一、定义</h3><p>Hash译为把…弄糟(乱)。哈希函数又被称为散列函数、杂凑函数。是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。不同的输入可能会散列成相同的输出,也就是哈希碰撞。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">简单说就是:</span><br><span class="line">1.Hash是只能加密,不能解密的算法。如果需要解密只能使用枚举法,不断地试输入的参数</span><br><span class="line">2.输入一个数,哈希函数可以把它变为长度相等的整数(通常为16进制)</span><br><span class="line">3.不同参数->不同的整数</span><br><span class="line">4.同样的参数->同样的整数</span><br><span class="line">5.不同的参数算出的整数有概率相等,称为哈希碰撞</span><br></pre></td></tr></table></figure><h3 id="二、哈希函数的实现"><a href="#二、哈希函数的实现" class="headerlink" title="二、哈希函数的实现"></a>二、哈希函数的实现</h3><p>这里以一种简单的实现方法:平方取中法</p><ol><li>传入一个字符参数,把该字符参数转换为Unicode序号</li><li>把这个序号平方</li><li>再取平方中的2~7这四位数,得到值</li></ol><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.math.BigDecimal;</span><br><span class="line"></span><br><span class="line"><span class="keyword">public</span> <span class="keyword">class</span> <span class="title class_">TestHash</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title function_">main</span><span class="params">(String[] args)</span> {</span><br><span class="line"> <span class="type">String</span> <span class="variable">a</span> <span class="operator">=</span> <span class="string">"abc"</span>;</span><br><span class="line"> <span class="comment">//Unicode加上一位6位数,然后进行平方</span></span><br><span class="line"> <span class="type">double</span> b=Math.pow(Double.parseDouble(StringUnicode(a))+<span class="number">123456</span>,<span class="number">2</span>);</span><br><span class="line"> <span class="comment">//把科学计数法转换为普通计数法</span></span><br><span class="line"> <span class="type">BigDecimal</span> <span class="variable">bd</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">BigDecimal</span>(b);</span><br><span class="line"> <span class="type">String</span> <span class="variable">c</span> <span class="operator">=</span> bd.toPlainString();</span><br><span class="line"> <span class="comment">//截取最后的字符串2~7的数字</span></span><br><span class="line"> System.out.println(c.substring(<span class="number">2</span>,<span class="number">6</span>));</span><br><span class="line"> }</span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 把String转换为Unicode</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> string</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span> unicode of string</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">public</span> <span class="keyword">static</span> String <span class="title function_">StringUnicode</span><span class="params">(String string)</span> {</span><br><span class="line"> <span class="type">StringBuffer</span> <span class="variable">unicode</span> <span class="operator">=</span> <span class="keyword">new</span> <span class="title class_">StringBuffer</span>();</span><br><span class="line"> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; i < string.length(); i++) {</span><br><span class="line"> <span class="comment">// 取出每一个字符</span></span><br><span class="line"> <span class="type">char</span> <span class="variable">c</span> <span class="operator">=</span> string.charAt(i);</span><br><span class="line"> <span class="comment">// 转换为unicode</span></span><br><span class="line"> unicode.append(Integer.toHexString(c));</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> unicode.toString();</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>这里终端得到的值为</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe" ...</span><br><span class="line">7184</span><br><span class="line"></span><br><span class="line">Process finished with exit code 0</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>即更换不同的字符串a,可以输出一个毫无规律的4位数字。而且通过这个四位数无法逆向推到出字符串a。这就是一个简单的哈希算法。</p><h3 id="三、常用的几个Hash函数"><a href="#三、常用的几个Hash函数" class="headerlink" title="三、常用的几个Hash函数"></a>三、常用的几个Hash函数</h3><p>通过增加Hash函数的输出长度,可以减少Hash碰撞的概率。常用的Hash函数有MD4,MD5,SHA-0,SHA-1,SHA-1。现在大部分加密采用的都是SHA-2,其中比特币的数字签名加密算法的就是SHA-256。</p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202205141648009.png" alt="常用的几个Hash函数"></p><h3 id="四、Hash函数的应用"><a href="#四、Hash函数的应用" class="headerlink" title="四、Hash函数的应用"></a>四、Hash函数的应用</h3><p>现在Hash函数基本上是无处不在如平时用到的用户密码、密钥等加密。甚至这几年非常火爆的区块链BTC比特币也是运用SHA-256算法来进行加密防止它人恶意篡改数字签名。</p><p><img src="https://image-myself.oss-cn-shanghai.aliyuncs.com/img/202205141656881.png" alt="BTC中Hash函数的应用"></p>]]></content>
<summary type="html">简单介绍Hash算法原理,并列举出实际案例来解释Hash算法的原理</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="Hash" scheme="https://www.markyin.cn/tags/Hash/"/>
<category term="加密算法" scheme="https://www.markyin.cn/tags/%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/"/>
</entry>
<entry>
<title>全网最常用的Dockerfile语法</title>
<link href="https://www.markyin.cn/article/105d3925"/>
<id>https://www.markyin.cn/article/105d3925</id>
<published>2023-04-10T17:37:35.541Z</published>
<updated>2024-04-02T14:10:27.793Z</updated>
<content type="html"><![CDATA[<h2 id="编写Dockerfile"><a href="#编写Dockerfile" class="headerlink" title="编写Dockerfile"></a>编写Dockerfile</h2><h3 id="1-Dockerfile的作用"><a href="#1-Dockerfile的作用" class="headerlink" title="1, Dockerfile的作用"></a>1, Dockerfile的作用</h3><p>编写Dockerfile就可以通过命令行生成docker image, 别人就可以用镜像创建docker container来运行你的程序, 实现程序和环境一起打包给别人.</p><h3 id="3-参考centos官方的dockerfile"><a href="#3-参考centos官方的dockerfile" class="headerlink" title="3, 参考centos官方的dockerfile"></a>3, 参考centos官方的dockerfile</h3><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> scratch //空</span><br><span class="line"><span class="keyword">ADD</span><span class="language-bash"> centos-7-x86_64-docker.tar.xz /</span></span><br><span class="line"></span><br><span class="line">//<span class="keyword">LABEL</span><span class="language-bash">没啥用</span></span><br><span class="line"><span class="keyword">LABEL</span><span class="language-bash"> \</span></span><br><span class="line"><span class="language-bash"> org.label-schema.schema-version=<span class="string">"1.0"</span> \</span></span><br><span class="line"><span class="language-bash"> org.label-schema.name=<span class="string">"CentOS Base Image"</span> \</span></span><br><span class="line"><span class="language-bash"> org.label-schema.vendor=<span class="string">"CentOS"</span> \</span></span><br><span class="line"><span class="language-bash"> org.label-schema.license=<span class="string">"GPLv2"</span> \</span></span><br><span class="line"><span class="language-bash"> org.label-schema.build-date=<span class="string">"20201113"</span> \</span></span><br><span class="line"><span class="language-bash"> org.opencontainers.image.title=<span class="string">"CentOS Base Image"</span> \</span></span><br><span class="line"><span class="language-bash"> org.opencontainers.image.vendor=<span class="string">"CentOS"</span> \</span></span><br><span class="line"><span class="language-bash"> org.opencontainers.image.licenses=<span class="string">"GPL-2.0-only"</span> \</span></span><br><span class="line"><span class="language-bash"> org.opencontainers.image.created=<span class="string">"2020-11-13 00:00:00+00:00"</span></span></span><br><span class="line"></span><br><span class="line"><span class="keyword">CMD</span><span class="language-bash"> [<span class="string">"/bin/bash"</span>]</span></span><br></pre></td></tr></table></figure><h3 id="2-最常用的Dockerfile的语法"><a href="#2-最常用的Dockerfile的语法" class="headerlink" title="2, 最常用的Dockerfile的语法"></a>2, 最常用的Dockerfile的语法</h3><table><thead><tr><th>关键字</th><th>作用</th><th>备注</th></tr></thead><tbody><tr><td>FROM</td><td>指定父镜像</td><td>指定dockerfile基于那个image构建</td></tr><tr><td>MAINTAINER</td><td>作者信息</td><td>用来标明这个dockerfile谁写的</td></tr><tr><td>LABEL</td><td>标签</td><td>用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看</td></tr><tr><td>RUN</td><td>执行命令</td><td>执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,”param2”]</td></tr><tr><td>CMD</td><td>容器启动命令</td><td>提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD [“command” , “param1”,”param2”]</td></tr><tr><td>ENTRYPOINT</td><td>入口</td><td>一般在制作一些执行就关闭的容器中会使用</td></tr><tr><td>COPY</td><td>复制文件</td><td>build的时候复制文件到image中</td></tr><tr><td>ADD</td><td>添加文件</td><td>build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务</td></tr><tr><td>ENV</td><td>环境变量</td><td>指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV name=value</td></tr><tr><td>ARG</td><td>构建参数</td><td>构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数</td></tr><tr><td>VOLUME</td><td>定义外部可以挂载的数据卷</td><td>指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式 VOLUME [“目录”]</td></tr><tr><td>EXPOSE</td><td>暴露端口</td><td>定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udp</td></tr><tr><td>WORKDIR</td><td>工作目录</td><td>指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径</td></tr><tr><td>USER</td><td>指定执行用户</td><td>指定build或者启动的时候 用户 在RUN CMD ENTRYPONT执行的时候的用户</td></tr><tr><td>HEALTHCHECK</td><td>健康检查</td><td>指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制</td></tr><tr><td>ONBUILD</td><td>触发器</td><td>当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 ONBUILD的命令 但是不影响当前镜像 用处也不怎么大</td></tr><tr><td>STOPSIGNAL</td><td>发送信号量到宿主机</td><td>该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。</td></tr><tr><td>SHELL</td><td>指定执行脚本的shell</td><td>指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell</td></tr></tbody></table><h3 id="三-简单例"><a href="#三-简单例" class="headerlink" title="三, 简单例"></a>三, 简单例</h3><ol><li>简单的centos7镜像</li></ol><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> centos:<span class="number">7</span></span><br><span class="line"><span class="keyword">MAINTAINER</span> Mark<markyin0707@gmail.com></span><br><span class="line"></span><br><span class="line"><span class="keyword">RUN</span><span class="language-bash"> yum install -y vim</span></span><br><span class="line"><span class="keyword">WORKDIR</span><span class="language-bash"> /usr</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">CMD</span><span class="language-bash"> [<span class="string">"/bin/bash"</span>]</span></span><br></pre></td></tr></table></figure><ol start="2"><li>一个简单的python项目镜像</li></ol><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> python:<span class="number">3.7</span></span><br><span class="line"><span class="comment">#MAINTAINER Mark<markyin0707@gmail.com>现在不支持了</span></span><br><span class="line"><span class="keyword">LABEL</span><span class="language-bash"> org.opencontainers.image.authors=<span class="string">"Mark@home.org.au"</span><span class="comment">#编写作者</span></span></span><br><span class="line"><span class="comment">#复制代码</span></span><br><span class="line"><span class="keyword">ADD</span><span class="language-bash"> . /app</span></span><br><span class="line"><span class="comment">#设置容器启动后的默认运行目录</span></span><br><span class="line"><span class="keyword">WORKDIR</span><span class="language-bash"> /app</span></span><br><span class="line"><span class="comment">#python模块安装</span></span><br><span class="line"><span class="keyword">RUN</span><span class="language-bash"> pip install -r requirements.txt</span></span><br><span class="line"><span class="keyword">CMD</span><span class="language-bash"> python main.py</span></span><br></pre></td></tr></table></figure><ol start="3"><li>注意:MAINTAINER现在被弃用了, 用LABEL来代替, 参考官网文档, <a href="https://docs.docker.com/engine/reference/builder/#maintainer-deprecated">MAINTAINER (deprecated)</a>.</li></ol><h3 id="四-如何学习Dockerfile语法"><a href="#四-如何学习Dockerfile语法" class="headerlink" title="四, 如何学习Dockerfile语法"></a>四, 如何学习Dockerfile语法</h3><ol><li>这里并不建议大家死记硬背, 可以在dockerhub上的镜像文件中查别人写好的dockerfile来进行学习. 进入dockerhub搜所镜像, 然后进入overview里面的Supported tags, 这里一般会跳转到github, 就可以看到dockerfile源码了.</li><li>尝试写自己的dockerfile, 就和命令行一样, 很少人会死记硬背, 一般写多了, 自然而然就熟悉了.</li></ol>]]></content>
<summary type="html">如何书写dockerfile来构造docker镜像。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="Docker" scheme="https://www.markyin.cn/tags/Docker/"/>
<category term="容器" scheme="https://www.markyin.cn/tags/%E5%AE%B9%E5%99%A8/"/>
</entry>
<entry>
<title>Github Actions设置等待至6点运行代码</title>
<link href="https://www.markyin.cn/article/c616cb9"/>
<id>https://www.markyin.cn/article/c616cb9</id>
<published>2023-03-25T14:41:47.621Z</published>
<updated>2024-04-06T05:36:37.980Z</updated>
<content type="html"><![CDATA[<h2 id="Github-Actions设置等待至6点运行"><a href="#Github-Actions设置等待至6点运行" class="headerlink" title="Github Actions设置等待至6点运行"></a>Github Actions设置等待至6点运行</h2><h4 id="一-Preface"><a href="#一-Preface" class="headerlink" title="一, Preface"></a>一, Preface</h4><p>Gtihub Actions就相当于白送给我们的一个服务器, 我们可用来签到打卡, 甚至抢票! 这里我写了一个yml让它每天帮我跑一个main.py的程序。</p><h4 id="二-具体代码"><a href="#二-具体代码" class="headerlink" title="二, 具体代码"></a>二, 具体代码</h4><p>每天等待至6点执行, 运行超过5分钟就跳过。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line">name: Schedule</span><br><span class="line"></span><br><span class="line">on:</span><br><span class="line"> schedule:</span><br><span class="line"> # 每天凌晨 5 点 54 分执行</span><br><span class="line"> - cron: "54 5 * * *"</span><br><span class="line"></span><br><span class="line">jobs:</span><br><span class="line"> run_program:</span><br><span class="line"> runs-on: ubuntu-latest</span><br><span class="line"> steps:</span><br><span class="line"> </span><br><span class="line"> - name: Wait until 6:00 AM</span><br><span class="line"> run: |</span><br><span class="line"> now=$(date +'%s')</span><br><span class="line"> # 计算距离明天凌晨 6:00 AM 的秒数</span><br><span class="line"> next=$(( ($(date -d 'tomorrow 6:00' '+%s') - $now) % 86400 ))</span><br><span class="line"> echo "Waiting ${next} seconds until 6:00 AM"</span><br><span class="line"> # 判断等待时间是否超过 5 分钟</span><br><span class="line"> if [ $next -gt 300 ]; then</span><br><span class="line"> echo "Waiting too long, exiting"</span><br><span class="line"> exit 1</span><br><span class="line"> fi</span><br><span class="line"> # 循环等待直到 6:00 AM 或者超时</span><br><span class="line"> while [ $next -gt 0 ]; do</span><br><span class="line"> now=$(date +'%s')</span><br><span class="line"> # 计算距离明天凌晨 6:00 AM 的剩余秒数</span><br><span class="line"> next=$(( ($(date -d 'tomorrow 6:00' '+%s') - $now) % 86400 ))</span><br><span class="line"> # 计算下一次的等待时间</span><br><span class="line"> wait=$((next % 60 + 1))</span><br><span class="line"> if [ $next -le 0 ]; then</span><br><span class="line"> break</span><br><span class="line"> fi</span><br><span class="line"> # 判断现在是否已经超过 6:00 AM</span><br><span class="line"> if [ $(date +%H%M%S) -ge 060000 ]; then</span><br><span class="line"> break</span><br><span class="line"> fi</span><br><span class="line"> sleep ${wait}s</span><br><span class="line"> done</span><br><span class="line"> </span><br><span class="line"> - name: Run Python program</span><br><span class="line"> run: python main.py #运行你想运行的代码</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">白嫖Github Actions来运行我们的代码。</summary>
<category term="计算机" scheme="https://www.markyin.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
<category term="Github" scheme="https://www.markyin.cn/tags/Github/"/>
<category term="Actions" scheme="https://www.markyin.cn/tags/Actions/"/>
</entry>
</feed>