-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
1548 lines (1292 loc) · 173 KB
/
search.xml
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
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>Linux基础-文件增删改查</title>
<url>/2021/10/09/base/Linux%E5%9F%BA%E7%A1%80-%E6%96%87%E4%BB%B6%E5%A2%9E%E5%88%A0%E6%94%B9%E6%9F%A5/</url>
<content><![CDATA[<p><strong>Abstract</strong>:主要关于linux服务器使用,以方便使用服务器训练机器学习模型. 主要是增删改查Linux文件</p>
<p><strong>Keywords</strong>:linux常用命令</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><blockquote>
<p> <a href="https://docs.conda.io/projects/conda/en/latest/commands/clean.html">conda 官网</a></p>
<p> <a href="https://blog.csdn.net/weixin_33127753/article/details/82842002">anaconda linux 常用命令、安装源、清理缓存</a></p>
<p><a href="https://pip.pypa.io/en/stable/reference/pip_freeze/"> pip 官网</a></p>
<p><a href="https://blog.csdn.net/weixin_43770382/article/details/119214331">Linux正则表达式_linux那些事儿的博客-CSDN博客</a></p>
<p> <a href="https://zhuanlan.zhihu.com/p/105096446">详解 Linux 帮助命令 - 知乎 (zhihu.com)</a></p>
</blockquote>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>1 能看懂帮助信息就好</p>
<p>2 会使用常用的一两个就好,其他的上网查阅</p>
<p>3 正则表达式,shell脚本,管道,重定向的组合很强大,apt包管理和文件权限问题很重要,源码即不联网也能解决问题,联网也能解决问题的双重能力.</p>
<p>4 <code>? 可代替单个字符 ;*可代替多个字符</code></p>
<p>5 操作的命令最好指定操作什么文件夹,不要痴迷于命令,很多命令不过是别人写的批处理罢了.如<code>.gitconfig</code>文件的设置.</p>
<h2 id="使用xshell与服务器"><a href="#使用xshell与服务器" class="headerlink" title="使用xshell与服务器"></a>使用xshell与服务器</h2><p>使用 <code>Ctrl+Alt+T </code>调出可在Linux终端,输入 <code>source activate </code>激活<code>conda</code>,使用 <code>conda create -n 名称 python==3.x</code> 创建新的环境并且激活使用。</p>
<p>校内访问: 主机: 172.27.64.209 端口号: 22<br>校外访问: frp穿透,需要使用云服务器</p>
<h2 id="tar,jar,war包"><a href="#tar,jar,war包" class="headerlink" title="tar,jar,war包"></a>tar,jar,war包</h2><p>tar:linux下的打包工具,可压缩可不压缩</p>
<p>jar:java下的打包,包含配置和class文件</p>
<p>war:java web应用程序的包</p>
<h2 id="Linux-常用命令"><a href="#Linux-常用命令" class="headerlink" title="Linux 常用命令"></a>Linux 常用命令</h2><figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 查看当前路径 print working directory</span></span><br><span class="line">pwd</span><br><span class="line"><span class="comment"># 查看以字母s打头的文件 list</span></span><br><span class="line">ls -ltr s*</span><br><span class="line"><span class="comment"># 覆盖源文件,当改名字了,copy</span></span><br><span class="line">cp -f test.txt test1.txt</span><br><span class="line"><span class="comment"># 切换到linuxcool用户,环境变仍是root用户的</span></span><br><span class="line">[root@linuxcool ~]<span class="comment"># su linuxcool</span></span><br><span class="line"><span class="comment">#切换到用户,环境变量改变</span></span><br><span class="line">[root@linuxcool ~]<span class="comment"># su - linuxcool </span></span><br><span class="line"><span class="comment">#常用参数 </span></span><br><span class="line">? 可代替单个字符</span><br><span class="line">* 可代替多个字符</span><br><span class="line"><span class="comment"># 重命名,rename需要apt,权限不够</span></span><br><span class="line"><span class="comment">#将main1.c 变成main.c,用到了正则表达式</span></span><br><span class="line">rename main1.c main.c my_main1.c</span><br><span class="line">rename .jpg .png *.jpg</span><br><span class="line">rename foo foo0 foo?</span><br><span class="line">rename foo0 foo foo0[<span class="number">1</span>]*</span><br><span class="line"><span class="comment"># mkdir make directories 创建目录</span></span><br><span class="line"><span class="comment"># 用绝对路径创建as</span></span><br><span class="line">mkdir <span class="built_in">dir</span></span><br><span class="line">mkdir /home/<span class="built_in">dir</span>/<span class="keyword">as</span> </span><br><span class="line"><span class="comment"># mv move 移动</span></span><br><span class="line"><span class="comment"># 重命名</span></span><br><span class="line">mv file_1 file_2</span><br><span class="line"><span class="comment">#cat命令</span></span><br><span class="line"><span class="comment"># 当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!</span></span><br><span class="line">cat filename.txt</span><br><span class="line">cat -n filename.txt</span><br><span class="line"><span class="comment">#显示版本号和帮助</span></span><br><span class="line">cat --<span class="built_in">help</span></span><br><span class="line">cat --version</span><br><span class="line"><span class="comment"># 删除rm,remove,</span></span><br><span class="line"><span class="comment">#删除文件</span></span><br><span class="line">rm (-i -f) test.txt</span><br><span class="line"><span class="comment">#删除目录</span></span><br><span class="line">rm -r <span class="built_in">dir</span></span><br><span class="line"><span class="comment"># find 查询</span></span><br><span class="line">find. 查询当前目录下</span><br><span class="line"><span class="comment"># 记得ctrl+c终止命令,ctrl+l 清屏</span></span><br><span class="line"><span class="comment">#创建文件</span></span><br><span class="line">> tip.txt</span><br><span class="line">vim tip.txt</span><br><span class="line">touch tip.txt</span><br></pre></td></tr></table></figure>
<h2 id="linux-正则表达式"><a href="#linux-正则表达式" class="headerlink" title="linux 正则表达式"></a>linux 正则表达式</h2><blockquote>
<p><a href="https://blog.csdn.net/weixin_43770382/article/details/119214331">Linux正则表达式_linux那些事儿的博客-CSDN博客</a></p>
</blockquote>
<h2 id="Linux常用命令(2)"><a href="#Linux常用命令(2)" class="headerlink" title="Linux常用命令(2)"></a>Linux常用命令(2)</h2><p>1 帮助命令</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">ifconfig --<span class="built_in">help</span> //查看 ifconfig 命令的用法</span><br><span class="line">man shutdown //打开命令说明后,可按<span class="string">"q"</span>键退出</span><br></pre></td></tr></table></figure>
<p>2 切换用户 su</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">su yao //切换为用户<span class="string">"yao"</span>,输入后回车需要输入该用户的密码</span><br><span class="line">exit //退出当前用户</span><br></pre></td></tr></table></figure>
<p>3 目录</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">cd / //切换到根目录</span><br><span class="line">cd /<span class="built_in">bin</span> //切换到根目录下的<span class="built_in">bin</span>目录</span><br><span class="line">cd ../ //切换到上一级目录 或者使用命令:cd ..</span><br><span class="line">cd ~ //切换到home目录</span><br><span class="line">cd - //切换到上次访问的目录</span><br><span class="line">cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错</span><br><span class="line">cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">mkdir tools //在当前目录下创建一个名为tools的目录</span><br><span class="line">mkdir /<span class="built_in">bin</span>/tools //在指定目录下创建一个名为tools的目录</span><br></pre></td></tr></table></figure>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line"> rm 文件名 //删除当前目录下的文件</span><br><span class="line"> rm -f 文件名 //删除当前目录的的文件(不询问)</span><br><span class="line"> rm -r 文件夹名 //递归删除当前目录下此名的目录</span><br><span class="line"> rm -rf 文件夹名 //递归删除当前目录下此名的目录(不询问)</span><br><span class="line"> rm -rf * //将当前目录下的所有目录和文件全部删除</span><br><span class="line"> rm -rf /* //将根目录下的所有文件全部删除【慎用!相当于格式化系统】</span><br><span class="line"><span class="comment">#好像删除是 rm -r 文件名/ 带个/</span></span><br></pre></td></tr></table></figure>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作</span><br><span class="line">mv /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录剪切到 /opt目录下面</span><br><span class="line">mv -r /usr/tmp/tool /opt //递归剪切目录中所有文件和文件夹</span><br></pre></td></tr></table></figure>
<p>4 查看文件</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">cat a.txt //查看文件最后一屏内容</span><br><span class="line">less a.txt //PgUp向上翻页,PgDn向下翻页,<span class="string">"q"</span>退出查看</span><br><span class="line">more a.txt //显示百分比,回车查看下一行,空格查看下一页,<span class="string">"q"</span>退出查看</span><br><span class="line">tail -<span class="number">100</span> a.txt //查看文件的后<span class="number">100</span>行,<span class="string">"Ctrl+C"</span>退出查看</span><br></pre></td></tr></table></figure>
<h2 id="Linux各文件夹作用"><a href="#Linux各文件夹作用" class="headerlink" title="Linux各文件夹作用"></a>Linux各文件夹作用</h2><p>linux文件夹,有</p>
<p>/bin:系统指令,cat,mkdir,rm等,/sbin是超级指令</p>
<p>/usr/bin:后期安装的运行脚本,gcc,g++等</p>
<p>开始anacoda在/usr/local/anacoda3</p>
<h2 id="帮助命令"><a href="#帮助命令" class="headerlink" title="帮助命令"></a>帮助命令</h2><blockquote>
<p> <a href="https://zhuanlan.zhihu.com/p/105096446">详解 Linux 帮助命令 - 知乎 (zhihu.com)</a></p>
</blockquote>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">help cmd</span><br><span class="line">cmd --help</span><br><span class="line">man cmd</span><br><span class="line">info cmd</span><br></pre></td></tr></table></figure>
<h2 id="apt-get"><a href="#apt-get" class="headerlink" title="apt-get"></a>apt-get</h2><p>ubuntu的包管理工具,用来升级卸载安装包.</p>
<blockquote>
<p>下载的软件存放位置 /var/cache/apt/archives 2.安装后软件默认位置 /usr/share 3.可执行文件位置 /usr/bin 4.配置文件位置 /etc 5.lib文件位置 /usr/lib</p>
</blockquote>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>linux</tag>
</tags>
</entry>
<entry>
<title>Linux基础2-源码编译</title>
<url>/2021/10/09/base/Linux%E5%9F%BA%E7%A1%802-%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91/</url>
<content><![CDATA[<p><strong>Abstract</strong>:源码编译入门知识,我自己也没试验过,所以写的很多.如果不联网,就使用这种方法.</p>
<p><strong>Keywords</strong>: makefile,linux源码编译</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><blockquote>
<p>[1] <a href="https://www.jianshu.com/p/6432015c52a6">Linux软件安装管理之——dpkg与apt-*详解 - 简书 (jianshu.com)</a></p>
<p>[2] <a href="https://www.jianshu.com/p/ee60a9d6bd7d">Linux软件安装管理之——源码安装详解 - 简书 (jianshu.com)</a></p>
<p>[3] <a href="https://blog.csdn.net/dta0502/article/details/83445205">(2条消息) Linux 源码的编译安装和卸载_dta0502的博客-CSDN博客_编译卸载</a></p>
</blockquote>
<hr>
<h2 id="dpkg与apt"><a href="#dpkg与apt" class="headerlink" title="dpkg与apt"></a>dpkg与apt</h2><p>包管理技术,dpkg,常用debian常用,apt 是ubuntu常用.</p>
<h2 id="软件源码安装"><a href="#软件源码安装" class="headerlink" title="软件源码安装"></a>软件源码安装</h2><p>源码包: tar.gz 一般是打包 压缩的东西</p>
<p>二进制包: rpm包,deb包都是</p>
<p><strong>源码安装分三步</strong>:</p>
<p>获取程序源代码文件->编译,如gcc->生成二进制文件,也即可执行文件</p>
<p><strong>源码包安装详解</strong></p>
<p>1 获取源码包 : 一般解压 到 /usr/local/src</p>
<p>2 运行<code>./config </code>或者<code>./configure -- prefix=prefix</code> 或者其他关于configure的东西,目的是生成makefile : 推荐安装在/usr/local/xxx,<strong>prefix指的是安装位置</strong></p>
<p>3 make 编译 : 利用makefile 进行make</p>
<p>4 make install 安装</p>
<blockquote>
<p>在上图第二步中的–prefix后面接的路径表示这个软件将要安装到哪个目录去,如果没有指定–prefix=/path这个参数,通常默认为/usr/local。本人推荐安装位置为 /usr/local/XXX,XXX为自己的实际目录,这样会方便以后的管理。</p>
<p> 源码包安装方式的man文件默认保存在/usr/local/man或/usr/local/share/man中,如果你的安装路径自定义为如/usr/local/XXX,则man文件则一般是在/usr/local/XXX/share/man中。此时如果你想要通过man来查看你所安装软件的man手册,则需要自行修改man的路径配置文件(可能是man.config或者manpath.config)。需要在相应位置添加如下一行:</p>
<p>作者:Nosee123<br>链接:<a href="https://www.jianshu.com/p/ee60a9d6bd7d">https://www.jianshu.com/p/ee60a9d6bd7d</a><br>来源:简书<br>著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。</p>
</blockquote>
<p>文献[3]</p>
<blockquote>
<p><code>configure</code>文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令<code>./configure –help</code>可以输出详细的选项列表。</p>
<p>其中<code>--prefix</code>选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在<code>/usr /local/bin</code>,库文件默认放在<code>/usr/local/lib</code>,配置文件默认放在<code>/usr/local/etc</code>,其它的资源文件放在<code>/usr /local/share</code>,比较凌乱。 </p>
</blockquote>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>linux</tag>
<tag>apt</tag>
</tags>
</entry>
<entry>
<title>Linux基础3-实用进阶</title>
<url>/2021/10/09/base/Linux%E5%9F%BA%E7%A1%803-%E5%AE%9E%E7%94%A8%E8%BF%9B%E9%98%B6/</url>
<content><![CDATA[<p><strong>Abstract</strong>:一些超级实用的Linux技巧.比如管道,权限,进程等命令.从b站学习来的</p>
<p><strong>Keywords</strong>:Linux学习</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><blockquote>
<p>[1] <a href="https://www.bilibili.com/video/BV1DE41157Bg?p=8&spm_id_from=pageDriver">基于ubuntu的linux学习教程,由入门到精通_哔哩哔哩_bilibili</a></p>
<p>[2] <a href="https://www.bilibili.com/video/BV1ti4y1t7BF?p=68&spm_id_from=pageDriver">linux系统全套学习课程-Ubuntu_哔哩哔哩_bilibili</a></p>
<p><a href="http://c.biancheng.net/view/5956.html">Linux重定向(输入输出重定向)详解 (biancheng.net)</a></p>
<p><a href="https://developer.aliyun.com/article/710681">值得收藏-史上最全Linux ps命令详解-阿里云开发者社区 (aliyun.com)</a></p>
<p><a href="https://blog.csdn.net/qq_15682815/article/details/87921482">ps命令用户名过长显示不全_码行天下-CSDN博客</a></p>
<p><a href="https://blog.csdn.net/weixin_30762363/article/details/116982025">linux 指定ps comm输出长度,ps命令查看进程指定项目信息、用户名过长显示UID_三月小公举的博客-CSDN博客</a></p>
<p><a href="https://blog.csdn.net/qq_44159028/article/details/118099689">python3之http.server模块_辰辰啊-CSDN博客</a></p>
</blockquote>
<hr>
<h2 id="文件目录结构"><a href="#文件目录结构" class="headerlink" title="文件目录结构"></a>文件目录结构</h2><p>ubuntu没有关于盘符的概念,即没有cde硬盘.win是单用户操作系统,linux是多用户操作系统.</p>
<p>home中存放的是用户</p>
<p>根目录 就是/</p>
<p>etc 系统配置文件</p>
<p>bin 可执行的程序,类似于exe文件集合</p>
<table>
<thead>
<tr>
<th>/bin</th>
<th>可执行文件</th>
</tr>
</thead>
<tbody><tr>
<td>/sbin</td>
<td>system bin,管理系统的</td>
</tr>
<tr>
<td>/usr/bin</td>
<td>后期安装的软件</td>
</tr>
<tr>
<td>/usr/sbin</td>
<td>超级用户的管理程序</td>
</tr>
</tbody></table>
<p><strong>最好把命令和对应英文联系起来</strong></p>
<p>list,print work directory,clear,remove,touch,change directory.</p>
<p><strong>新建文件 touch</strong></p>
<h2 id="帮助信息-man"><a href="#帮助信息-man" class="headerlink" title="帮助信息 man"></a>帮助信息 man</h2><table>
<thead>
<tr>
<th>空格,f</th>
<th>下一页</th>
</tr>
</thead>
<tbody><tr>
<td>b</td>
<td>上一页</td>
</tr>
<tr>
<td>/word</td>
<td>搜索word字符串</td>
</tr>
<tr>
<td>q</td>
<td>退出</td>
</tr>
<tr>
<td>enter</td>
<td>下一行</td>
</tr>
</tbody></table>
<h2 id="cat-more-less"><a href="#cat-more-less" class="headerlink" title="cat,more,less"></a>cat,more,less</h2><p>就和help与man一样,一个分屏一个不分屏.</p>
<p>还是less好用,谁用谁知道</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cat xxx | less</span><br></pre></td></tr></table></figure>
<h2 id="grep"><a href="#grep" class="headerlink" title="grep"></a>grep</h2><p>搜索文件中的文本,但是我直接用vim不行吗?</p>
<p>^wrod,word$:行首匹配,行尾匹配.</p>
<h2 id="head"><a href="#head" class="headerlink" title="head"></a>head</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">head -n 5</span><br></pre></td></tr></table></figure>
<p>和grep一样的使用,显示起来随自己.也不错</p>
<h2 id="echo-与重定向"><a href="#echo-与重定向" class="headerlink" title="echo 与重定向"></a>echo 与重定向</h2><p>很少单独使用,和重定向配合,>,>>,输入和追加.</p>
<blockquote>
<p><a href="http://c.biancheng.net/view/5956.html">Linux重定向(输入输出重定向)详解 (biancheng.net)</a></p>
</blockquote>
<p>输入很难理解.以下#是在root下的意思,普通用户是$</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[root@localhost ~]# cat /etc/passwd</span><br><span class="line"><span class="meta">#</span><span class="bash">这里省略输出信息,读者可自行查看</span></span><br><span class="line">[root@localhost ~]# cat < /etc/passwd</span><br><span class="line"><span class="meta">#</span><span class="bash">输出结果同上面命令相同</span></span><br><span class="line"><span class="meta">#</span><span class="bash">注意,虽然执行结果相同,但第一行代表是以键盘作为输入设备,而第二行代码是以 /etc/passwd 文件作为输入设备。</span></span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[root@localhost ~]# cat a.txt</span><br><span class="line">[root@localhost ~]# cat < /etc/passwd > a.txt</span><br><span class="line">[root@localhost ~]# cat a.txt</span><br><span class="line"><span class="meta">#</span><span class="bash">输出了和 /etc/passwd 文件内容相同的数据</span></span><br><span class="line"><span class="meta">#</span><span class="bash">复制文件</span></span><br></pre></td></tr></table></figure>
<figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">[root@localhost ~]<span class="comment"># cat << 0</span></span><br><span class="line">>c.biancheng.net</span><br><span class="line">>Linux</span><br><span class="line">>0</span><br><span class="line">c.biancheng.net</span><br><span class="line">Linux</span><br><span class="line"><span class="comment">#不输入0就可以一直输入数据,通常EOF,因为ctrl+d就是EOF</span></span><br></pre></td></tr></table></figure>
<h2 id="管道"><a href="#管道" class="headerlink" title="管道"></a>管道</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ls -lh | more #其实less挺好用的</span><br><span class="line">ls -lh | grep xxx</span><br></pre></td></tr></table></figure>
<h2 id="端口"><a href="#端口" class="headerlink" title="端口"></a>端口</h2><p>web服务器 端口80;我们访问百度,不用加80也可以直接找到百度的web服务器.</p>
<p>注意我们找到的是百度的web服务器,而不是百度那台机器.</p>
<p>只有加上端口才能连上web服务器软件,才能享有web服务.</p>
<h2 id="ssh"><a href="#ssh" class="headerlink" title="ssh"></a>ssh</h2><p>ssh在linux是开始就有的.在win中要自己安装,或者安装xshell,putty客户端来模拟</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ssh [-p port] user@remote</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ssh-keygen</span><br><span class="line"><span class="meta">#</span><span class="bash">把.pub文件传到服务器.</span></span><br><span class="line">ssh-copy-id user@remote</span><br></pre></td></tr></table></figure>
<p>传输文件</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">scp 文件 user@remote:目录</span><br></pre></td></tr></table></figure>
<p>.ssh/config</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">Host 别名 HostName ip地址 User 用户名 Port 22#现在可以用ssh 别名来连接电脑了#现在也可以用scp 别名来传输文件了</span><br></pre></td></tr></table></figure>
<h2 id="用户权限相关命令"><a href="#用户权限相关命令" class="headerlink" title="用户权限相关命令"></a>用户权限相关命令</h2><p>read:r 4</p>
<p>write:w 2</p>
<p>excute:x 1</p>
<table>
<thead>
<tr>
<th>read</th>
<th>r</th>
<th>4</th>
</tr>
</thead>
<tbody><tr>
<td>write</td>
<td>w</td>
<td>2</td>
</tr>
<tr>
<td>excute</td>
<td>x</td>
<td>1</td>
</tr>
</tbody></table>
<h3 id="1-组概念"><a href="#1-组概念" class="headerlink" title="1. 组概念"></a>1. 组概念</h3><p>简化我们对用户权限的设置,可以一次设置一个组</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">-rw-rw-r-- s2020020922 studrwxrwxr-x s2020020922 stu</span><br></pre></td></tr></table></figure>
<p>1 标记为文件还是目录</p>
<p>剩下的每三个一组,分三组;第一组是用户s2020020922;第二组是组对应权限,stu;第三组是其他用户的权限</p>
<h3 id="2-硬链接数"><a href="#2-硬链接数" class="headerlink" title="2. 硬链接数"></a>2. 硬链接数</h3><p>可以到达这个文件或者目录的道路.</p>
<p>其实和tree命令有关系的.</p>
<h3 id="3-修改文件权限"><a href="#3-修改文件权限" class="headerlink" title="3. 修改文件权限"></a>3. 修改文件权限</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chmod -x test #就不能cd进testchmod +x test #加上可执行权限</span><br></pre></td></tr></table></figure>
<h3 id="4-chmod-数字化"><a href="#4-chmod-数字化" class="headerlink" title="4. chmod 数字化"></a>4. chmod 数字化</h3><p>read 4; write 2; excute 1</p>
<p>R 目录递归修改权限</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">chmod -R 755 文件名或目录名</span><br></pre></td></tr></table></figure>
<h2 id="超级用户root与普通用户"><a href="#超级用户root与普通用户" class="headerlink" title="超级用户root与普通用户"></a>超级用户root与普通用户</h2><p>root是添加用户,安装软件等.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">su #substitute usersudo #root身份执行,要输入密码,5分钟期限.</span><br></pre></td></tr></table></figure>
<h3 id="创建用户-设置密码-删除用户"><a href="#创建用户-设置密码-删除用户" class="headerlink" title="创建用户/设置密码/删除用户"></a>创建用户/设置密码/删除用户</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">useradd -m -g 组名 #创建用户,m有奇用passwd 用户名 #修改密码userdel -r 用户名</span><br></pre></td></tr></table></figure>
<p>421服务器是在home421中创建的所有用户和组.</p>
<h3 id="查看用户-设置用户"><a href="#查看用户-设置用户" class="headerlink" title="查看用户/设置用户"></a>查看用户/设置用户</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">/etc/group 存放组信息<span class="comment">#/etc/passwd 存放用户信息id 用户名 #查看用户信息who #查看当前有谁用服务器whomi#查看自己是谁</span></span></span><br></pre></td></tr></table></figure>
<p>以自身为例子</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">id#</span><span class="bash">用户id=1015(s2020020922) 组id=1001(stu) 组=1001(stu)</span></span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cat -n /etc/passwd |grep s2020020922#64 s2020020922:x:1015:1001::/home/s2020020922:/bin/bash# x:有密码且加密;</span><br></pre></td></tr></table></figure>
<p>home421可以通过sudo创建新用户,我的不在sudo ers组中就不能有这种操作.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cat -n /etc/group | grep home421#5 adm:x:4:syslog,home421#18 cdrom:x:24:home421#21 sudo:x:27:home421#23 dip:x:30:home421#35 plugdev:x:46:home421#59 lpadmin:x:120:home421#70 lxd:x:131:home421#71 home421:x:1000:#72 sambashare:x:132:home421#人家home421用户可以使用sudo和很多,即有很多附加组.</span><br></pre></td></tr></table></figure>
<h4 id="1-添加附加组usermod"><a href="#1-添加附加组usermod" class="headerlink" title="1. 添加附加组usermod"></a>1. 添加附加组usermod</h4><p>不写了,用到就百度就好</p>
<h4 id="2-用户使用shell设置避免乱码如-A"><a href="#2-用户使用shell设置避免乱码如-A" class="headerlink" title="2. 用户使用shell设置避免乱码如^A"></a>2. 用户使用shell设置避免乱码如^A</h4><p>shell就是命令行窗口</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">s2020020922@home421:~$#这个是/bin/bash$#这个是dash.在xp下边输入会乱码,比如^H,^A.</span><br></pre></td></tr></table></figure>
<p>如何避免以上情况</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">usermod -s /bin/bash 用户名</span><br></pre></td></tr></table></figure>
<h3 id="查看命令which-命令文件所在位置"><a href="#查看命令which-命令文件所在位置" class="headerlink" title="查看命令which,命令文件所在位置"></a>查看命令which,命令文件所在位置</h3><p>说明很多命令的可执行文件都在bin目录下.或者sbin</p>
<h3 id="切换用户-su"><a href="#切换用户-su" class="headerlink" title="切换用户 su"></a>切换用户 su</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">su -用户名#切换用户,-可切换至用户的目录,否则保持不变#不加用户名就是到root,非常不安全.exit #退出.</span><br></pre></td></tr></table></figure>
<h2 id="系统信息相关命令-进程等"><a href="#系统信息相关命令-进程等" class="headerlink" title="系统信息相关命令:进程等"></a>系统信息相关命令:进程等</h2><table>
<thead>
<tr>
<th>命令</th>
<th>作用</th>
</tr>
</thead>
<tbody><tr>
<td>date</td>
<td>系统时间</td>
</tr>
<tr>
<td>cal</td>
<td>日历</td>
</tr>
<tr>
<td>df -h</td>
<td>disk free 磁盘剩余空间</td>
</tr>
<tr>
<td>du -h</td>
<td>disk usage 显示目录下的文件大小</td>
</tr>
<tr>
<td>-h</td>
<td>人性化显示文件大小</td>
</tr>
<tr>
<td>ps aux</td>
<td>process status 查看进程的详细状态</td>
</tr>
<tr>
<td>a</td>
<td>显示终端所有进程,包括其他用户进程</td>
</tr>
<tr>
<td>u</td>
<td>进程详细状态;感觉是显示用户的信息</td>
</tr>
<tr>
<td>x</td>
<td>显示没有控制终端的进程,更多进程了.</td>
</tr>
<tr>
<td>top</td>
<td>动态显示运行中的进程并且排序,q退出.不按q永远不停</td>
</tr>
<tr>
<td>kill -9 pid</td>
<td>强制终止;不能中止系统的命令</td>
</tr>
</tbody></table>
<p>经过查看发现,ps ef和au差不多.</p>
<p>发现ps -w 可以拓宽显示长度,但是好像要-wwww才行.当然这样也是不能显示全2020020922这类的用户名.为啥?往下看</p>
<p>对了,-w是有用的,因为grep查找的就是在终端看到的,如果因为隐藏了而在终端不显示,自然用grep也查不到</p>
<h3 id="1-ps命令选项-之多种风格"><a href="#1-ps命令选项-之多种风格" class="headerlink" title="1. ps命令选项 之多种风格"></a>1. ps命令选项 之多种风格</h3><blockquote>
<p><a href="https://developer.aliyun.com/article/710681">值得收藏-史上最全Linux ps命令详解-阿里云开发者社区 (aliyun.com)</a></p>
</blockquote>
<p>这篇文章是大佬.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">BSD风格语法,必须不能以中横线开头;# ps uSYSV风格语法,必须仅一个中横线开头;# ps -lGNU风格语法,必须以两个中横线开头; # ps --pid l</span><br></pre></td></tr></table></figure>
<p>ps命令中会有这三种风格,根据ps的容错机制,三种风格部分命令可以混搭.</p>
<p>比如,ps -axu,一般先以sysv解析,不成功,然后转换成bsd风格,也不行,反正就是根据这个命令的内部机制就是不行,也可能下个版本就行了.总之,明白这个意思就好</p>
<p>GNU风格的选项都是带参数值的,如–sid 1</p>
<h3 id="2-查看进程的名字"><a href="#2-查看进程的名字" class="headerlink" title="2. 查看进程的名字"></a>2. 查看进程的名字</h3><p>没错就是为了看看哪个小可爱再用服务器</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ps -q pid -o user #不知道为啥必须用小写,大写不行.#USER#s2020020911其实ps -p pid -o user #也可以.</span><br></pre></td></tr></table></figure>
<p>为了这个查看进程名字费了很多事,比如</p>
<blockquote>
<p><a href="https://blog.csdn.net/qq_15682815/article/details/87921482">ps命令用户名过长显示不全_码行天下-CSDN博客</a></p>
</blockquote>
<p>这个哥们用了这条命令</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd#其实 user=fiodsaaaaafjdsoaaaaaaaa 也就行了#或者ps -o pid,user 把user放最后就不会显示不全了</span><br></pre></td></tr></table></figure>
<p>我以为userforlongname是个啥参数,其实就是修改了列的名字,以前的列叫USER,对应的用户名s2020020922过长,就是显示不全,把USER改成userforlongname,就可以显示全用户名了</p>
<blockquote>
<p><a href="https://blog.csdn.net/weixin_30762363/article/details/116982025">linux 指定ps comm输出长度,ps命令查看进程指定项目信息、用户名过长显示UID_三月小公举的博客-CSDN博客</a></p>
</blockquote>
<h2 id="查找文件find-树文件结构tree"><a href="#查找文件find-树文件结构tree" class="headerlink" title="查找文件find,树文件结构tree"></a>查找文件find,树文件结构tree</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">find [path] -name "*.py" #这个通配符不适合配合grep,因为.才是匹配任何字符</span><br><span class="line">find /etc -name "passwd*" -exec grep "liji-wsl" {} \; #真的强</span><br><span class="line">find /etc -name "passwd*" -exec ls {} \;#{}是find出来的文件,就像python中的filter一样,对每一个文件都同样操作,h \;是为了转义字符,必须加上\;</span><br></pre></td></tr></table></figure>
<h2 id="打包压缩-tar-gz"><a href="#打包压缩-tar-gz" class="headerlink" title="打包压缩 tar.gz"></a>打包压缩 tar.gz</h2><p>tar只是打包,不压缩.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">打包文件</span></span><br><span class="line">tar -cvf xxx.tar xxx xxx xxx 要存放的路径</span><br><span class="line"><span class="meta">#</span><span class="bash">解包文件</span></span><br><span class="line">tar -xvf xxx.tar</span><br></pre></td></tr></table></figure>
<p>gzip 压缩</p>
<p>tar 打包, gz 压缩</p>
<p>其扩展名为 xxx.tar.gz</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">打包 压缩</span></span><br><span class="line">tar -zcvf xxx.tar.gz xxx xxx 路径</span><br><span class="line"><span class="meta">#</span><span class="bash">解包 解压</span></span><br><span class="line">tar -zxvf xxx.tar.gz</span><br><span class="line"><span class="meta">#</span><span class="bash">解压指定路径</span></span><br><span class="line">tar -zxvf xxx.tar.gz -C m</span><br></pre></td></tr></table></figure>
<h2 id="apt-get-软件安装卸载更新"><a href="#apt-get-软件安装卸载更新" class="headerlink" title="apt-get 软件安装卸载更新"></a>apt-get 软件安装卸载更新</h2><p>每个apt前都有sudo;</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">安装软件</span></span><br><span class="line">sudo apt install xxx</span><br><span class="line"><span class="meta">#</span><span class="bash">卸载</span></span><br><span class="line">sudo apt remove xxx</span><br><span class="line"><span class="meta">#</span><span class="bash">更新</span></span><br><span class="line">sudo apt upgrade</span><br></pre></td></tr></table></figure>
<h2 id="配置软件源-不全"><a href="#配置软件源-不全" class="headerlink" title="配置软件源,不全"></a>配置软件源,不全</h2><p>外国的主服务器就是软件源. 但是太慢了</p>
<p>国内有镜像源,如阿里镜像,清华镜像.</p>
<h2 id="Linux服务器资源在本地可视化"><a href="#Linux服务器资源在本地可视化" class="headerlink" title="Linux服务器资源在本地可视化"></a>Linux服务器资源在本地可视化</h2><h3 id="1-Linux在win上的可视化-不推荐"><a href="#1-Linux在win上的可视化-不推荐" class="headerlink" title="1 Linux在win上的可视化(不推荐)"></a>1 Linux在win上的可视化(不推荐)</h3><p>1 和xmanager配合使用</p>
<p>gedit :跟创建txt一样</p>
<p>eye of ghome:查看图片</p>
<h3 id="2-使用网页查看-无法修改"><a href="#2-使用网页查看-无法修改" class="headerlink" title="2 使用网页查看,无法修改"></a>2 使用网页查看,无法修改</h3><p>这个真的强</p>
<blockquote>
<p><a href="https://blog.csdn.net/qq_44159028/article/details/118099689">python3之http.server模块_辰辰啊-CSDN博客</a></p>
</blockquote>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">python -m http.server <span class="comment">#默认端口号8000,可自行设置</span></span><br><span class="line"><span class="comment">#在win浏览器输入http://172.27.66.249:8000/</span></span><br><span class="line"><span class="comment">#即服务器+端口.</span></span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>linux</tag>
<tag>ssh</tag>
</tags>
</entry>
<entry>
<title>chorme插件与视频下载</title>
<url>/2021/10/09/base/chorme%E6%8F%92%E4%BB%B6%E4%B8%8E%E8%A7%86%E9%A2%91%E4%B8%8B%E8%BD%BD/</url>
<content><![CDATA[<p><strong>Abstract</strong>:因为老师让下载熊老师的上课资源,我发现自己写的爬虫还是不如人家的插件方便</p>
<p><strong>Keywords</strong>: youtube,视频等资源下载工具及插件,idm,ndm,油猴</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><p>[1] <a href="https://www.youtube.com/watch?v=_9sNC_iB7Y0&list=PLNnM0zj-wgv7Xw79aG-N0cEZfbmZvsY5_&index=6">下载网页上的视频,简单快捷,软件配合插件,内有彩蛋 - YouTube</a></p>
<h2 id="下载地址及视频解析网站"><a href="#下载地址及视频解析网站" class="headerlink" title="下载地址及视频解析网站"></a>下载地址及视频解析网站</h2><p>IDM/NDM:链接: <a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbmpvN3RFWHdLdjBwekwxbGpUR0F0dDIzbktBd3xBQ3Jtc0trR1dBbENkWWwxMHNSZV80RjAxNkN4bldXTlRaYjVNeFZOcjhXUElleDdKd0hZV0ZUZVJGclZrMGxwVjB3ZkFKOVlRMjBBSllLMjZLUVFBVmtHdTd3MFJzRXUxUy1hc0RoQTlXcFNSMmhmMkdVTllocw&q=https://pan.baidu.com/s/1S97H5ZO9rmpXIAW6ccXmSw">https://pan.baidu.com/s/1S97H5ZO9rmpX…</a> 密码: pufi </p>
<p>视频解析网站: 分享网:<a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqblJJVlpaN2swdTBRSmVXQmE0Nk15WVRnbE1Zd3xBQ3Jtc0tsS0g5clhsTVRzZEtRcUNWY3RhVUhSMDFGaThfOG1lZG5RdnkyQ2xIUldkM2o4ZUJycWo3LTRmbENnOW8tcVlzd3l0aW9Ob0VsamR2X3RWZ3JTNV94U0R4M3ZlbXZOQlM4ZW1XaE5Pd1kxd2piOTQ0RQ&q=https://vip.fxw.la/">https://vip.fxw.la/</a> 在线工具:<a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbWFTOEJOQ3BXQ2hMYTVrdDlLVEFoLXJSanZOZ3xBQ3Jtc0ttN3JQNm1KcEs0MDYwWjJPVlp5WWlENm90VzVpTWM0UzJnUGtrc2pWNUpYbXl4T3dyWVZmeDFncklJS2hmMTBEdXlyQXBVdXgzanVFa0RsVFdHSmFrNkdHcUZXaWhuYVA2MXl0Z1ZTWUwwTXFROFlwcw&q=https://tool.lu/videoparser/">https://tool.lu/videoparser/</a> </p>
<p>浏览器插件:链接:<a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbnJxZ2NQU0g3R1lXb21PRnY5U0xwSG80endrd3xBQ3Jtc0trOVRPc1l3LWtKd0FBUkZCVnVveDF1Si1xYTc0bjJBdnhVeFliSFpKS2p5dE5Sa3ZKaXdEX0FRY2xCWDFCamZGUXdjV2xFV1VITmlsSzRMano0YkRjNHl4a2Foa1dCeUpiYXdWNHRCcHdubmFTb0Nkcw&q=https://pan.baidu.com/s/1Sub0X3mCWruSgcb-9TzNBQ">https://pan.baidu.com/s/1Sub0X3mCWruS…</a> 提取码:7033 </p>
<p>油猴脚本包:链接:<a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3p1enRFVEo0YnBsdC1BSWtnbGh2X0lNSDl2Z3xBQ3Jtc0tsOFoySngtdXR3RDMtZjlRQ0E0aHhlczJPSnBEMXpEcTd4bmlMd1FHU1NGeWphdFB2SGN3dmZxc25xTmdBa1luXzBkcndBNFFqRnJaV21PLVJOcWV5U184a2Nxc1NudjZyQ1lRdmtWQUhKSkRER29kcw&q=https://pan.baidu.com/s/1bGUz_g9cM9pBGLEBoh7XFw">https://pan.baidu.com/s/1bGUz_g9cM9pB…</a> 提取码:6tj8 </p>
<h3 id="原作者"><a href="#原作者" class="headerlink" title="原作者"></a>原作者</h3><p>电报群:<a href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbW5xLW5ab3c4SjRBYzgyZGxRZ2JNYjltTjM4d3xBQ3Jtc0tsaTctRGphcjlUa2pEcC1YNU9HcjVUSk52N0NqcUJTb2xnUS12eGJoWGktOUtvSW0xZ3RnbVk1T0t5NG8tQlVoeXJoVXM4aVN0Q1I4SnhpQlRJZjhDSVB6d2IzZkpZelptdlhFaVhsdVBWNlNUNEcxaw&q=https://t.me/zhiwushuo">https://t.me/zhiwushuo</a> 欢迎加群交流! 微信公众号:止吾说</p>
<p>欢迎订阅频道:<a href="https://www.youtube.com/channel/UCC2uUAHDPwUmmm44zyTLogQ?sub_confirmation=1">https://www.youtube.com/channel/UCC2u…</a></p>
<h3 id="使用idm-ndm及视频解析网站"><a href="#使用idm-ndm及视频解析网站" class="headerlink" title="使用idm,ndm及视频解析网站"></a>使用idm,ndm及视频解析网站</h3><p>idm:youtube,芒果台</p>
<p>ndm:腾讯,</p>
<p>cococut:强力下载,录屏模式;</p>
<h3 id="油猴脚本"><a href="#油猴脚本" class="headerlink" title="油猴脚本"></a>油猴脚本</h3><p>sleazy fork:呜呜呜;</p>
<h3 id="cococut"><a href="#cococut" class="headerlink" title="cococut"></a>cococut</h3><p>可以录屏</p>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>下载工具</tag>
</tags>
</entry>
<entry>
<title>codna使用</title>
<url>/2021/10/09/base/conda%E4%BD%BF%E7%94%A8/</url>
<content><![CDATA[<p><strong>Abstract</strong>:虚拟环境安装需要conda,conda在win与Linux中基本相同.学会使用帮助信息,国内一般都需要镜像考虑,还有移植环境.重点是帮助信息和镜像源.</p>
<p><strong>Keywords</strong>:conda命令</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><h2 id="conda常用命令"><a href="#conda常用命令" class="headerlink" title="conda常用命令"></a>conda常用命令</h2><h3 id="conda-windows"><a href="#conda-windows" class="headerlink" title="conda windows"></a>conda windows</h3><figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 创建环境</span></span><br><span class="line">conda create -n environment python==version package</span><br><span class="line"><span class="comment"># 移除环境</span></span><br><span class="line">conda remove -n environment --<span class="built_in">all</span></span><br><span class="line"><span class="comment"># conda环境查询</span></span><br><span class="line">conda info -e</span><br><span class="line"><span class="comment"># 进入环境</span></span><br><span class="line">conda activate env</span><br><span class="line"><span class="comment"># 安装包</span></span><br><span class="line">conda install 包名称==version</span><br><span class="line"><span class="comment"># 搜索包</span></span><br><span class="line">conda search package</span><br><span class="line"><span class="comment"># 查看环境所有包</span></span><br><span class="line">conda <span class="built_in">list</span></span><br><span class="line"><span class="comment"># 环境重命名</span></span><br><span class="line">conda create --name new_env_name --clone old_env_name</span><br><span class="line"><span class="comment">#复制环境</span></span><br><span class="line">conda create -n name --clone name</span><br><span class="line"><span class="comment"># 升级conda和package</span></span><br><span class="line">conda update conda</span><br><span class="line">conda update package</span><br><span class="line"><span class="comment"># 卸载package</span></span><br><span class="line">conda uninstall package</span><br><span class="line"><span class="comment"># 清理conda</span></span><br><span class="line">conda clean -a <span class="comment">#删除缓存、未使用的包、tar包</span></span><br><span class="line">conda clean -p <span class="comment"># 删除未使用的包</span></span><br><span class="line">conda clean -t <span class="comment">#删除tar包</span></span><br><span class="line"><span class="comment"># 增加镜像源</span></span><br><span class="line">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/</span><br><span class="line">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/</span><br><span class="line">conda config --<span class="built_in">set</span> show_channel_urls yes</span><br><span class="line"><span class="comment"># 移除环境报错解决方案</span></span><br><span class="line">使用conda remove -n tem --<span class="built_in">all</span> 删除环境时,发现如下错误:</span><br><span class="line">PackagesNotFoundError: The following packages are missing <span class="keyword">from</span> the target environment:</span><br><span class="line">解决方案:</span><br><span class="line">conda env remove -n tem(要移除的环境名称)</span><br></pre></td></tr></table></figure>
<h3 id="conda-linux"><a href="#conda-linux" class="headerlink" title="conda linux"></a>conda linux</h3><figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="number">1</span> anacoda 安装</span><br><span class="line"><span class="comment"># 执行安装文件,-p指定位置</span></span><br><span class="line">./Anaconda3-<span class="number">5.2</span><span class="number">.0</span>-Linux-x86_64.sh -p /home/anaconda3/</span><br><span class="line"><span class="comment">#yes </span></span><br><span class="line"><span class="comment">#Do you wish the installer to initialize Anaconda3</span></span><br><span class="line"><span class="comment">#by running conda init? [yes|no] 决定你是否愿意将anaconda放入环境变量</span></span><br><span class="line"><span class="comment">#yes</span></span><br><span class="line">source ~/.bashrc</span><br><span class="line"><span class="comment"># 在/etc/profile尾部,添加如下,所有用户就都可以用了</span></span><br><span class="line">export PATH=/home/anaconda3/<span class="built_in">bin</span>:$PATH</span><br><span class="line"><span class="number">2</span> 常用命令</span><br><span class="line"><span class="comment"># 创建一个名为envTest的环境,指定Python版本是3.6</span></span><br><span class="line">conda create -n envTest python==<span class="number">3.6</span></span><br><span class="line"><span class="comment"># 激活虚拟环境</span></span><br><span class="line">activate envTest <span class="comment"># for Windows</span></span><br><span class="line">source activate envTest <span class="comment"># for Linux & Mac</span></span><br><span class="line"><span class="comment"># 退出虚拟环境</span></span><br><span class="line">deactivate envTest <span class="comment"># for Windows</span></span><br><span class="line">source deactivate envTest <span class="comment"># for Linux & Mac</span></span><br><span class="line"><span class="comment"># 删除一个已有的环境</span></span><br><span class="line">conda remove -n envTest --<span class="built_in">all</span></span><br><span class="line"><span class="comment"># 复制某个环境</span></span><br><span class="line">conda create -n new_env_name --clone old_env_name </span><br><span class="line"><span class="comment"># 安装</span></span><br><span class="line">conda install scikit-learn</span><br><span class="line"><span class="comment"># 分享环境 需先activate激活环境</span></span><br><span class="line">conda env export > environment.yml<span class="comment">#传送</span></span><br><span class="line">conda env create -f environment.yml<span class="comment">#接收后操作</span></span><br><span class="line"><span class="number">3</span> 修改python版本</span><br><span class="line"><span class="comment">#1.新建一个anaconda虚拟环境,指定Python版本</span></span><br><span class="line">conda create -n envTest python=<span class="number">3.5</span></span><br><span class="line"><span class="comment">#2.直接将现有的anaconda中python更改为3.5</span></span><br><span class="line">sudo conda install python=<span class="number">3.5</span></span><br><span class="line"><span class="comment">#3.下载并安装对应Python版本的anaconda,anaconda4.2->python3.5</span></span><br><span class="line"><span class="comment">#https://repo.continuum.io/archive/</span></span><br><span class="line"></span><br><span class="line"><span class="number">4</span> 清理conda缓存</span><br><span class="line">conda clean -p <span class="comment"># 删除没有用的包 --packages</span></span><br><span class="line">conda clean -t <span class="comment"># 删除tar打包 --tarballs</span></span><br><span class="line">conda clean -y -<span class="built_in">all</span> <span class="comment"># 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)</span></span><br><span class="line"></span><br><span class="line"><span class="number">5</span> conda国内源</span><br><span class="line"><span class="comment"># 查看当前源</span></span><br><span class="line">conda config --show-sources</span><br><span class="line"><span class="comment"># 添加源</span></span><br><span class="line"><span class="comment">#conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ #清华源停服 </span></span><br><span class="line"><span class="comment"># 腾讯云</span></span><br><span class="line">conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/free/</span><br><span class="line">conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/main/</span><br><span class="line">conda config --<span class="built_in">set</span> show_channel_urls yes</span><br><span class="line"><span class="comment"># 换回默认源</span></span><br><span class="line">conda config --remove-key channels</span><br><span class="line"></span><br><span class="line"><span class="number">6</span> pip国内源</span><br><span class="line">阿里云 :http://mirrors.aliyun.com/pypi/simple/</span><br><span class="line">中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/</span><br><span class="line">豆瓣(douban) :http://pypi.douban.com/simple/</span><br><span class="line">清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/</span><br><span class="line">中国科学技术大学: http://pypi.mirrors.ustc.edu.cn/simple/</span><br><span class="line"> </span><br><span class="line"><span class="comment"># 使用豆瓣源安装</span></span><br><span class="line">pip install opencv-python -i http://pypi.douban.com/simple </span><br><span class="line"><span class="comment"># 报错说不信任该源,执行如下:</span></span><br><span class="line">pip install opencv-python -i http://pypi.douban.com/simple --trusted-host pypi.douban.com</span><br><span class="line"><span class="comment"># 生成requirements.txt文件</span></span><br><span class="line">pip freeze > requirements.txt</span><br><span class="line"><span class="comment"># 安装requirements.txt依赖</span></span><br><span class="line">pip install -r requirements.txt</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>linux</tag>
<tag>conda</tag>
</tags>
</entry>
<entry>
<title>docker使用</title>
<url>/2021/10/09/base/docker%E4%BD%BF%E7%94%A8/</url>
<content><![CDATA[<p><strong>Abstract</strong>:那时候为了搭建gitea而学习docker,好像以前看的一篇论文中别人就是把自己的程序放在docker,便于隔离运行,更容易复现.现在看来那时候没掌握学习的方法.国内学习这些需要国外服务器的东西不免镜像设置和代理设置.总之,我现在整理的时候也不想看,我就想直接有个项目使用docker,以项目学习技术知识.</p>
<p><strong>Keywords</strong>:docker学习 ,如何使用docker</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><blockquote>
<p>[1] <a href="https://www.bilibili.com/video/BV1Ls411n7mx?p=9">尚硅谷Docker快速入门基础篇-周阳主讲_哔哩哔哩_bilibili</a></p>
<p><a href="https://www.bilibili.com/video/av74808660/?spm_id_from=333.788.b_765f64657363.2">Docker速通教程(全平台可参考)——司波图 UNRAID 陪玩教程 02_哔哩哔哩_bilibili</a></p>
<p><a href="https://blog.csdn.net/qq_43648470/article/details/108171050">Ubuntu安装docker教程并配置阿里云镜像加速_危机!的博客-CSDN博客</a></p>
</blockquote>
<hr>
<h2 id="docker基础"><a href="#docker基础" class="headerlink" title="docker基础"></a>docker基础</h2><h3 id="docker概念"><a href="#docker概念" class="headerlink" title="docker概念"></a>docker概念</h3><p>学到一个说法,mysql一个容器,ngix一个容器,我把者两个容器放在鲸鱼背上就可以执行了.</p>
<blockquote>
<p>镜像是文件,容器是进程</p>
</blockquote>
<h3 id="docker镜像加速"><a href="#docker镜像加速" class="headerlink" title="docker镜像加速"></a>docker镜像加速</h3><p>mark一下</p>
<h3 id="docker下载对比"><a href="#docker下载对比" class="headerlink" title="docker下载对比"></a>docker下载对比</h3><h4 id="官网下载"><a href="#官网下载" class="headerlink" title="官网下载"></a>官网下载</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt-get remove docker docker-engine docker.io containerd runc</span><br><span class="line">sudo apt-get update</span><br><span class="line">sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release</span><br><span class="line">curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</span><br><span class="line">echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null</span><br><span class="line">sudo apt-get update</span><br><span class="line">sudo apt-get install docker-ce docker-ce-cli containerd.io</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apt-cache madison docker-ce #显示版本吧</span><br><span class="line">sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io</span><br></pre></td></tr></table></figure>
<h4 id="阿里云下载-单应用-国内源下载"><a href="#阿里云下载-单应用-国内源下载" class="headerlink" title="阿里云下载 :单应用 国内源下载"></a>阿里云下载 :单应用 国内源下载</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> step 1: 安装必要的一些系统工具</span></span><br><span class="line">sudo apt-get update</span><br><span class="line">sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common</span><br><span class="line"><span class="meta">#</span><span class="bash"> step 2: 安装GPG证书</span></span><br><span class="line">curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -</span><br><span class="line"><span class="meta">#</span><span class="bash"> Step 3: 写入软件源信息</span></span><br><span class="line">sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"</span><br><span class="line"><span class="meta">#</span><span class="bash"> Step 4: 更新并安装Docker-CE</span></span><br><span class="line">sudo apt-get -y update</span><br><span class="line">sudo apt-get -y install docker-ce</span><br><span class="line"><span class="meta"></span></span><br><span class="line"><span class="meta">#</span><span class="bash"> 安装指定版本的Docker-CE:</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> Step 1: 查找Docker-CE的版本:</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> apt-cache madison docker-ce</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> sudo apt-get -y install docker-ce=[VERSION]</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p>发现其实mirrors.aliyun.com/docker-ce替换了download.docker.com.</p>
<p><strong>我给他起名字叫单个应用的国内镜像下载</strong></p>
<h4 id="手动下载-适合没有网络的-只有安装包"><a href="#手动下载-适合没有网络的-只有安装包" class="headerlink" title="手动下载 :适合没有网络的,只有安装包"></a>手动下载 :适合没有网络的,只有安装包</h4><h4 id="镜像加速-阿里云"><a href="#镜像加速-阿里云" class="headerlink" title="镜像加速 阿里云"></a>镜像加速 阿里云</h4><p>尚硅谷是这样设置的,当然他的是centos,我的是ubuntu,我肯定转换成ubuntu</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">/etc/default/docker</span></span><br><span class="line">other_args="--registry-mirror=https://uioxz5c8.mirror.aliyuncs.com"</span><br><span class="line">DOCKER_CERT_PATH=/ect/docker</span><br><span class="line">DOCKER_NOWARN_KERNEL_VERSION=1</span><br></pre></td></tr></table></figure>
<p>然后重启docker后台服务: service docker restart</p>
<p>然后用ps -ef | grep docker ,可以查看到我们的镜像加速网站</p>
<p>阿里云官网给出的是,新版本安装.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo mkdir -p /etc/docker</span><br><span class="line">sudo tee /etc/docker/daemon.json <<-'EOF'</span><br><span class="line">{</span><br><span class="line"> "registry-mirrors": ["https://uioxz5c8.mirror.aliyuncs.com"]</span><br><span class="line">}</span><br><span class="line">EOF</span><br><span class="line">sudo systemctl daemon-reload</span><br><span class="line">sudo systemctl restart docker</span><br></pre></td></tr></table></figure>
<p>或者我vim /etc/docker/daemon.json,自己写入</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">{</span><br><span class="line"> "registry-mirrors": ["https://uioxz5c8.mirror.aliyuncs.com"]</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<p>然后执行systemctl那两条命令</p>
<h4 id="设置国内源-不用外国"><a href="#设置国内源-不用外国" class="headerlink" title="设置国内源,不用外国"></a>设置国内源,不用外国</h4><h2 id="启动docker"><a href="#启动docker" class="headerlink" title="启动docker"></a>启动docker</h2><p>有点问题</p>
<blockquote>
<p><a href="https://www.cnblogs.com/a5idc/p/13752839.html">修复 “System has not been booted with systemd as init system “的错误。 - A5互联 - 博客园 (cnblogs.com)</a></p>
</blockquote>
<p>wsl是sysvinit系统,linux上是systemd系统.</p>
<p>wsl打开docker是 service docker start</p>
<p><img src="/2021/10/09/base/docker%E4%BD%BF%E7%94%A8/image-20210903141031162.png" alt="image-20210903141031162"></p>
<p>算了,在wsl就严格按照wsl的规则来.就图一乐.</p>
<p>测试</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run hello-world</span><br><span class="line"><span class="meta">#</span><span class="bash">人家运行完了会停止.</span></span><br></pre></td></tr></table></figure>
<h2 id="重启docker或者启动docker"><a href="#重启docker或者启动docker" class="headerlink" title="重启docker或者启动docker"></a>重启docker或者启动docker</h2><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">service docker restart</span><br><span class="line">#这个命令就相当于重启win,但是他很快.</span><br></pre></td></tr></table></figure>
<h2 id="快速的原理"><a href="#快速的原理" class="headerlink" title="快速的原理"></a>快速的原理</h2><p>docker有更少的抽象层,不需要硬件资源虚拟化,只用自己的大鲸鱼操作系统.</p>
<h2 id="帮助命令"><a href="#帮助命令" class="headerlink" title="帮助命令"></a>帮助命令</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker info</span><br><span class="line">docker command --help</span><br><span class="line">man docker command</span><br></pre></td></tr></table></figure>
<h2 id="镜像命令"><a href="#镜像命令" class="headerlink" title="镜像命令"></a>镜像命令</h2><p>大海–win10</p>
<p>鲸鱼–docker</p>
<p>集装箱–容器实例 ;这个来自镜像</p>
<p><strong>命令更新了很多,自己man command</strong></p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">dcoker images #查看镜像</span><br><span class="line">docker run images # 有镜像就生成容器</span><br><span class="line">docker search tomcat # 查找</span><br><span class="line">docker pull tomcat #拉下来</span><br><span class="line">docker rmi hello-world#自动删除latest,运行的时候不能删除</span><br><span class="line">docker rmi -f hello-world # 强制删除,如果运行着,就会删除两层</span><br><span class="line">docker rmi -f hello-world nginx# 删除多个</span><br><span class="line">docker rmi -f $(docker images -qa) #批量删除</span><br><span class="line">docker run [op] image [com] #运行,变实例.</span><br><span class="line">docker run -it -p 主机端口:docker容器端口 镜像 #如果-P就是随机分配端口.</span><br></pre></td></tr></table></figure>
<p>repository:镜像仓库源</p>
<p>tag: 镜像的标签,版本;同一个仓库源有多个tag,使用repository:tag来定义不同的镜像</p>
<h3 id="docker-commit命令"><a href="#docker-commit命令" class="headerlink" title="docker commit命令"></a>docker commit命令</h3><p>我们在运行的容器上边做了自定义的修改.然后我们把当前的容器commit,又可以形成一个新的镜像.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker commit -m="提交描述信息" -a="作者" 容器ID 要创建的目标镜像名:标签名</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">作者删除了tomcat的webapps下的docs</span></span><br><span class="line">docker commit -a="dd" -m="xxx" atguigu/id tomcat:1.2</span><br><span class="line">docker rm -f $(docker ps -q)#删除</span><br><span class="line">docker run -it atguigu/mytomcat:1.2</span><br><span class="line"><span class="meta">#</span><span class="bash">以前是通过镜像生成实例,现在是通过实例生成新镜像,像java的反射.</span></span><br><span class="line">doker run -d -P tomcat# 此时后台运行</span><br></pre></td></tr></table></figure>
<h3 id="tomcat-404"><a href="#tomcat-404" class="headerlink" title="tomcat 404"></a>tomcat 404</h3><p>tomcat启动需要webapp 中的root,但是新版本中的root在webapp.dist中,把文件复制过去就好了.</p>
<h2 id="容器命令"><a href="#容器命令" class="headerlink" title="容器命令"></a>容器命令</h2><h3 id="运行centos"><a href="#运行centos" class="headerlink" title="运行centos"></a>运行centos</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it id#开启了centos了;i 交互;t 分配一个伪终端</span><br><span class="line">docker ps #docker 进程</span><br><span class="line">docker ps #l 上一个容器;a 当前加过往的容器;-n 3 上三次运行的容器;q 只显示容器id;</span><br><span class="line"><span class="meta">exit#</span><span class="bash">退出并停止,和c+p+q不同</span></span><br><span class="line">docker run -it --name mycentos centos#改名字</span><br><span class="line">ctrl+p+q#跳到宿主机,不停止</span><br><span class="line">docker start 容器id#把以前关的容器再打开</span><br><span class="line">docker restart 容器id #容器重启</span><br><span class="line">docker stop 容器id #正常关机</span><br><span class="line">docker kill 容器id #强制关机</span><br><span class="line">docker rm 容器id #不带i是删除容器记录</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -d centos#后台启动,但是ps命令查不出来</span><br><span class="line">docker logs -f -t --tail 容器id#t 时间戳;f 追加最新日志打印; tail 数字 显示后几条</span><br></pre></td></tr></table></figure>
<p>docker容器后台运行,必须有一个前台进程;如果不挂起,就会自动退出,自杀.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done" #/bin/sh 是指以sh格式交互,但是默认是bash</span><br><span class="line">docker run -it -P tomcat ls -l#默认在shell中执行</span><br><span class="line">docker logs 容器id #发现跑着呢</span><br><span class="line">docker logs -t -f --tail3 容器id#意思是带着时间戳,动态最新日志,只看最后三条.</span><br><span class="line">docker top 容器id #因为容器就是简易版的linux环境,其实有很多命令和linux相似,这个就是看这个容器的内部top</span><br><span class="line">docker inspect 容器id#查看容器内部细节,json串</span><br><span class="line">docker attach 容器id#进入正运行的容器</span><br><span class="line">docker exec -it 容器id ls -l /tmp#界面不进入,但是拿到了结果</span><br><span class="line">docker exec -it 容器id /bin/bash #可以打开界面了,和attach一样了</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it -P tomcat ls -l#默认在shell中执行,造成tomcat最后的cmd命令被覆盖,造成tomcat不启动</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker cp 容器id:/tmp/yum.log /root#容器log copy到宿主主机 </span><br></pre></td></tr></table></figure>
<h2 id="镜像原理"><a href="#镜像原理" class="headerlink" title="镜像原理"></a>镜像原理</h2><p>镜像就是千层饼.对文件系统的修改作为一次提交来一层层的叠加.</p>
<p>unionfs(联合文件系统):union文件系统是一种分层,轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下.union文件系统是docker镜像的基础.镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像.</p>
<p>特性: 一次同时加载多个文件系统,但是从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录.</p>
<p>bootfs就类似linux的kernel,rootfs就是ubuntu或者centos</p>
<p>对于一个精简的os,rootfs可以很小,只需要包括最基本的命令,工具和程序库就可以了,因为底层直接用host的kernel,自己只需要提供rootfs就行了.由此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别.因此不同的发行版空一公用bootfs</p>
<p>所有dockrer pull xxx的时候会发现好像是一层层下载,就是一层层加载文件.</p>
<p>所有的镜像好像是把软件运行的环境包括操作系统的rootfs都打包了.比如我们要用tomcat,那么需要linux kernel,centos,jdk8,tomcat这些东西</p>
<p><img src="/2021/10/09/base/docker%E4%BD%BF%E7%94%A8/image-20210904105030362.png" alt="image-20210904105030362"></p>
<p>联合文件系统的好处:<strong>共享资源</strong>. 比如,多个镜像从相同的base镜像构建而来,那么宿主机只需要在磁盘上保存一份base镜像,同时内存中也只需加载一份base镜像,就可以为所有容器服务了.而且镜像的每一层都可以被共享.</p>
<p>docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部.这一层通常被称作”容器层”,”容器层”之下的都叫”镜像层”</p>
<h3 id="docker-容器数据卷"><a href="#docker-容器数据卷" class="headerlink" title="docker 容器数据卷"></a>docker 容器数据卷</h3><p>容器运行中产生的文件我想要长久保存,比如内存中的数据关了就没了,硬盘才靠谱.就像一个u盘. redis 分布式内存数据库.</p>
<p>特点是 1 数据卷可以在容器之间共享或重用数据 2 卷中的更改可以直接生效 3 数据卷中的更改不会包含在镜像的更新中 4 数据卷的生命周期一直持续到没有容器使用它为止</p>
<p>如何数据持久化呢?</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it -v /宿主机 绝对路径:/容器内目录 镜像名# volume卷#docker run -it -v /mydata : /data xxx#这样就在宿主主机自动有mydata,容器自动有datadocker inspect 容器id#可以查看Volumes,也可以查看HostConfig中的Bindsdocker run -it -v /宿主机 绝对路径:/容器内目录:ro 镜像名#容器内部只可读共享文件</span><br></pre></td></tr></table></figure>
<p>这个概念我挺想在服务器和我的电脑上实现的,就可以数据共享了,不用通过pycharm每次上传文件了,就可以时时更新了.</p>
<h3 id="dockerfile添加容器数据卷"><a href="#dockerfile添加容器数据卷" class="headerlink" title="dockerfile添加容器数据卷"></a>dockerfile添加容器数据卷</h3><p>做着做着就会了.</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">hello.java 编译成 hello.classimages 相当于编译成 dockerfile</span><br></pre></td></tr></table></figure>
<p>示例dockerfile</p>
<figure class="highlight dockerfile"><table><tr><td class="code"><pre><span class="line"><span class="keyword">FROM</span> centos <span class="comment">#算是内核VOLUME ["/1","/2"]CMD echo "finished"CMD /bin/bash</span></span><br></pre></td></tr></table></figure>
<p>相当于</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it -v /host1:/1 -v /host2:/2 centos /bin/bash</span><br></pre></td></tr></table></figure>
<p>然后docker build 文件生成一个新镜像</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker build -f /你的dockerfile -t liji/centos . #liji/centos是一个镜像名字;. 是在当前目录下</span><br></pre></td></tr></table></figure>
<p>运行一下命令</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it liji/centos#注意我们没有指定宿主机 的共享文件,所以docker给我们的是默认的,</span><br></pre></td></tr></table></figure>
<p><strong>小注意</strong></p>
<p>如果以下之类的命令不成功,就试着改成如下的命令</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -it -v /host1:/1 -v /host2:/2 centos /bin/bash#docker run -it -v /host1:/1 -v /host2:/2 --privileged=centos /bin/bash</span><br></pre></td></tr></table></figure>
<h3 id="dockerfile使用"><a href="#dockerfile使用" class="headerlink" title="dockerfile使用"></a>dockerfile使用</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">1 编写dockerfile2 docker build,获得自定义镜像3 docker run</span><br></pre></td></tr></table></figure>
<p>本源,源镜像:scratch</p>
<p>开头的指令是大写字母,且后边跟着一个参数.</p>
<p>每条指令都会创建一个新的镜像曾,并对镜像层进行提交</p>
<p>保留字指令</p>
<figure class="highlight dockerfile"><table><tr><td class="code"><pre><span class="line"><span class="keyword">FROM</span><span class="comment">#基于那个镜像的MAINTAINER#作者姓名和邮箱RUN#容器构建时需要运行的linux命令EXPOSE#端口号WORKDIR#登录后的工作目录;没有指定就是根目录ENV#构建镜像过程中的环境变量;ENV path /usr WORKDIR $pathADD#拷贝,解压COPY#VOLUME#数据容器卷CMD#和run相似;可多个cmd命令,但只有最后一个生效;cmd会被docker run之后的参数替换;就是被覆盖了最后一条命令;docker run -it -P tomcat ls -l 可能会覆盖启动的命令,造成tomcat不启动了ENTRYPOINT#不会被覆盖命令 ;把docker run之后的命令当参数传给ONBUILD#</span></span><br></pre></td></tr></table></figure>
<p>示例</p>
<figure class="highlight dockerfile"><table><tr><td class="code"><pre><span class="line"><span class="keyword">from</span> centosenv mypath /tmpworkdir $mypathrun yum -y install vim <span class="comment">#按需下载东西run yum -y install net-toolsexpose 80#端口cmd /bin/bash</span></span><br></pre></td></tr></table></figure>
<p>build一下</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker build -t mycentos:1.3 .#.为当前路径下创建</span><br></pre></td></tr></table></figure>
<h4 id="列出镜像的变更历史"><a href="#列出镜像的变更历史" class="headerlink" title="列出镜像的变更历史"></a>列出镜像的变更历史</h4><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker history 镜像id</span><br></pre></td></tr></table></figure>
<h3 id="docker网络"><a href="#docker网络" class="headerlink" title="docker网络"></a>docker网络</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash">容器网卡成对;veth-pari;docker0担任路由器docker <span class="built_in">exec</span> -it tomcat02 ping (tomcat01)</span></span><br></pre></td></tr></table></figure>
<p>link技术</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -d -P --name tomcat03 --link tomcat#docker exec -it tomcat02 ping tomcat01 不行#docker exec -it tomcat03 ping tomcat 02 行,反向不行.</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker network --helpdocker network lsdocker network inspect bridge的iddocker inspect 容器的id</span><br></pre></td></tr></table></figure>
<p>网络联通的操作及自定义网络</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker network --helpdocker network ls#查看所有的docker网络#以前都是默认的--net bridgedocker run -d -P --name tomcat01 --net bridge tomcat</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker network create --driver bridge --subnet 192.168.0.0/16 --gatway 192.168.0.1 mynetdocker network inspect mynetdocker run -d -P --name tomcat-net-01 --net mynet tomcatdocker run -d -P --name tomcat-net-02 --net mynet tomcatdocker exec -it tomcat-net-01 ping 192.168.0.3#行docker exec -it tomcat-net-01 ping 192.168.0.3#行</span><br></pre></td></tr></table></figure>
<p>网络模式:</p>
<p>bridge:桥接模式,就是交换机.</p>
<p>host:宿主机模式</p>
<p>联通阿里网络</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker network connect --helpdocker network connect mynet tomcat01docker network inspect mynet#一个容器两个ip,就是公网ip,私网iipdocker ex</span><br></pre></td></tr></table></figure>
<h3 id="docker小总结"><a href="#docker小总结" class="headerlink" title="docker小总结"></a>docker小总结</h3><h4 id="总体步骤"><a href="#总体步骤" class="headerlink" title="总体步骤"></a>总体步骤</h4><p>搜索镜像,拉去镜像,查看镜像,启动镜像,停止镜像,移除镜像</p>
<p>mysql</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -p 12345:3306 --name mysql-v /zz/mysql/conf:/etc/mysql/conf.d-v /zz/mysql/logs:/logs-v /zz/mysql/data:/var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456-d mysql:5.6docker exec -it mysql的id /bin/bashmysql> mysql -uroot -p#数据备份docker exec id sh -c 'exec mysqldump --all-databases -uroot -p"123456"' > /zz/all-databases.sql</span><br></pre></td></tr></table></figure>
<p>redis</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker run -p 6379:6379-v /zz/myredis/data:/data-v /zz/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf--appendony yes #持久化</span><br></pre></td></tr></table></figure>
<p>修改配置文件</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">vim /zz/myredis/conf/redis.conf/redis.conf</span><br></pre></td></tr></table></figure>
<p>连接redis</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker exec -it redis的id redis-cli> SHUTDOWN 退出#东西放在data文件里了.</span><br></pre></td></tr></table></figure>
<h2 id="docker学习-补充"><a href="#docker学习-补充" class="headerlink" title="docker学习-补充"></a>docker学习-补充</h2><h3 id="参考文献-1"><a href="#参考文献-1" class="headerlink" title="参考文献"></a>参考文献</h3><blockquote>
<p> [1] <a href="https://www.bilibili.com/video/av74808660/?spm_id_from=333.788.b_765f64657363.2">Docker速通教程(全平台可参考)——司波图 UNRAID 陪玩教程 02_哔哩哔哩_bilibili</a></p>
</blockquote>
<hr>
<h3 id="docker模型"><a href="#docker模型" class="headerlink" title="docker模型"></a>docker模型</h3><p>container 容器,当成集装箱吧</p>
<p>image 映像,当成物品,运行环境和库等东西</p>
<p>镜像 容器: run commit</p>
<p>镜像 tar文件: save load</p>
<p>镜像 dockerfile: build</p>
<p>镜像 仓库: push pull</p>
<hr>
<p>docker狂神</p>
<h3 id="docker学习"><a href="#docker学习" class="headerlink" title="docker学习"></a>docker学习</h3><p>按照官网的doc来,看来ubuntu 和centos安装有很大的不一样.</p>
<h3 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h3><p>docker官网</p>
<p><a href="https://www.docker.com/">Empowering App Development for Developers | Docker</a></p>
<p>docker文档</p>
<p><a href="https://docs.docker.com/">Docker Documentation | Docker Documentation</a></p>
<p>dockerhub</p>
<p><a href="https://hub.docker.com/">Docker Hub</a></p>
<p>镜像(image):</p>
<p>docker镜像,一个模板,通过模板创建容器,tomcat镜像->run->tomcat01容器,通过这个镜像可以创建多个容器,项目运行是在容器中的</p>
<p>容器(container):</p>
<p>通过镜像创立,基本命令:启动,停止,删除.</p>
<p>把容器理解成最简易的linux系统</p>
<p>仓库(repository):</p>
<p>和github一样,存放镜像的地方,阿里云也有容器服务,我们通过阿里云配置镜像加速.</p>
<h4 id="环境准备"><a href="#环境准备" class="headerlink" title="环境准备"></a>环境准备</h4><p>这个人把官网翻译下来,并且用了阿里云镜像,我就为了学习ubuntu下载docker如何使用阿里云镜像.</p>
<blockquote>
<p><a href="https://blog.csdn.net/qq_43648470/article/details/108171050">Ubuntu安装docker教程并配置阿里云镜像加速_危机!的博客-CSDN博客</a></p>
</blockquote>
<p>整理程序,不要注释</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt-get remove docker docker-engine docker.io containerd runc</span><br><span class="line">sudo apt-get update</span><br><span class="line">curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -</span><br><span class="line">sudo apt-key fingerprint 0EBFCD88</span><br><span class="line">sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">echo \</span><br><span class="line"> "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/linux/ubuntu \</span><br><span class="line"> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null</span><br></pre></td></tr></table></figure>
<p>算了,还是按照阿里云镜像网址上来吧</p>
<p>命令</p>
<p>镜像</p>
<p>容器数据卷</p>
<p>dockerfile</p>
<p>docker网络原理</p>
<p>IDEA整合docker</p>
<p>集群 docker compose</p>
<p>docker swarm(简化版的k8s)</p>
<p>CI\CD jenkins</p>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>docker</tag>
</tags>
</entry>
<entry>
<title>gitea搭建</title>
<url>/2021/10/09/base/gitea%E6%90%AD%E5%BB%BA/</url>
<content><![CDATA[<p><strong>Abstract</strong>: 因为有人说gitlab比较臃肿,换成了gitea.其实按照gitea官网就差不多安装好,不配置mysql,使用小数据库也凑合用.其中一些配置没有理解映射关系,废了很大力气.现在这些方案都能成功.</p>
<p>gitea搭建,建议使用docker.</p>
<p><strong>Keywords</strong>:如何搭建gitea</p>
<span id="more"></span>
<h3 id="测试方案1"><a href="#测试方案1" class="headerlink" title="测试方案1"></a>测试方案1</h3><p>参考文献</p>
<p>[1] [<a href="https://www.bilibili.com/video/BV1b741177ku?from=search&seid=13104590433235353282&spm_id_from=333.337.0.0">Docker 教學] 不用五分鐘安裝好 Gitea (自架 Git Hosting 最佳選擇)_哔哩哔哩_bilibili</a></p>
<p>[2] <a href="https://www.bilibili.com/video/BV12y4y1S76p?from=search&seid=597077431223595758&spm_id_from=333.337.0.0">gitea生产环境安装_哔哩哔哩_bilibili</a></p>
<p>gitea</p>
<figure class="highlight dockerfile"><table><tr><td class="code"><pre><span class="line">version: <span class="string">'2'</span></span><br><span class="line">services:</span><br><span class="line"> web:</span><br><span class="line"> image: gitea/gitea:<span class="number">1.12</span>.<span class="number">4</span></span><br><span class="line"> volumes:</span><br><span class="line"> - ./data:/data</span><br><span class="line"> ports:</span><br><span class="line"> - <span class="string">"3000:3000"</span></span><br><span class="line"> - <span class="string">"22:22"</span></span><br><span class="line"> depends_on:</span><br><span class="line"> - db</span><br><span class="line"> restart: always</span><br><span class="line"> db:</span><br><span class="line"> image: mariadb:<span class="number">10</span></span><br><span class="line"> restart: always</span><br><span class="line"> environment:</span><br><span class="line"> - MYSQL_ROOT_PASSWORD=changeme</span><br><span class="line"> - MYSQL_DATABASE=gitea</span><br><span class="line"> - MYSQL_USER=gitea</span><br><span class="line"> - MYSQL_PASSWORD=changeme</span><br><span class="line"> volumes:</span><br><span class="line"> - ./db/:/var/lib/mysql</span><br></pre></td></tr></table></figure>
<p>docker-compose.yml</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">docker-compose up #-d sh</span><br><span class="line">docker-compose down -v</span><br><span class="line">在gitea base url 中 localhost 换成 自己主机的名字</span><br></pre></td></tr></table></figure>
<p><img src="/2021/10/09/base/gitea%E6%90%AD%E5%BB%BA/image-20210906105347806.png" alt="image-20210906105347806"></p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">docker rm -f id id id </span><br><span class="line">docker-compose ps</span><br></pre></td></tr></table></figure>
<h4 id="不使用docker-compose"><a href="#不使用docker-compose" class="headerlink" title="不使用docker compose"></a>不使用docker compose</h4><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">docker run --name myredis -d -p 6379:6379 redis</span><br><span class="line">docker build -t myapplication</span><br><span class="line">docker run --name myapp_using_redis -p 5000:5000 --link myredis:redis -d myapplication</span><br></pre></td></tr></table></figure>
<h3 id="测试方案2"><a href="#测试方案2" class="headerlink" title="测试方案2"></a>测试方案2</h3><p>参考文献</p>
<blockquote>
<p>[1] <a href="https://learnku.com/articles/39945">使用 docker 搭建一个 gitea 的 Git 服务器 | Go 技术论坛 (learnku.com)</a></p>
<p>[2] <a href="https://zhuanlan.zhihu.com/p/386948662">使用docker搭建最新版本的gitea,并配置HTTPS访问 - 知乎 (zhihu.com)</a></p>
</blockquote>
<h4 id="记录修改"><a href="#记录修改" class="headerlink" title="记录修改"></a>记录修改</h4><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">1 添加了/data/gitea</span><br><span class="line">2 docker run -d --privileged=true --restart=always --name=gitea -p 20022:22 -p 20080:3000 -v /var/lib/gitea:/data gitea/gitea:latest</span><br></pre></td></tr></table></figure>
<h4 id="测试端口"><a href="#测试端口" class="headerlink" title="测试端口"></a>测试端口</h4><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">telnet ip port</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">python3 -m http.server 8001 --directory ./</span><br></pre></td></tr></table></figure>
<h4 id="结果"><a href="#结果" class="headerlink" title="结果"></a>结果</h4><p>通过20080端口,可以实现进入gitea,但是因为没有数据库,所有不能安装gitea</p>
<p>我们把数据库换成sqlite,这是一个手机app都在用的轻量化数据库.</p>
<p>现在可以运行了.</p>
<h5 id="测试管理员"><a href="#测试管理员" class="headerlink" title="测试管理员"></a>测试管理员</h5><p>liji : liji .数据库:sqlite</p>
<h5 id="测试新建用户"><a href="#测试新建用户" class="headerlink" title="测试新建用户"></a>测试新建用户</h5><p>成功</p>
<h5 id="测试git命令"><a href="#测试git命令" class="headerlink" title="测试git命令"></a>测试git命令</h5><p>成功</p>
<h5 id="测试download"><a href="#测试download" class="headerlink" title="测试download"></a>测试download</h5><p>成功</p>
<h3 id="docker-compose学习-狂神"><a href="#docker-compose学习-狂神" class="headerlink" title="docker compose学习-狂神"></a>docker compose学习-狂神</h3><blockquote>
<p><a href="https://www.bilibili.com/video/BV1kv411q7Qc?p=2">【狂神说Java】Docker进阶篇超详细版教程通俗易懂_哔哩哔哩_bilibili</a></p>
</blockquote>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">'2.0'</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">web:</span></span><br><span class="line"> <span class="string">build</span></span><br><span class="line"> <span class="string">ports</span></span><br><span class="line"> <span class="string">volumes</span></span><br><span class="line"> <span class="attr">links:</span></span><br><span class="line"> <span class="string">redis</span></span><br><span class="line"> <span class="attr">redis:</span></span><br><span class="line"> <span class="string">image:redis#g</span></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line"></span><br><span class="line"> </span><br></pre></td></tr></table></figure>
<p>services,应用,比如mysql</p>
<p>备用地址</p>
<h3 id="测试方案3"><a href="#测试方案3" class="headerlink" title="测试方案3"></a>测试方案3</h3><p>docker-compose.yml</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">"3"</span></span><br><span class="line"></span><br><span class="line"><span class="attr">networks:</span></span><br><span class="line"> <span class="attr">gitea:</span></span><br><span class="line"> <span class="attr">external:</span> <span class="literal">false</span></span><br><span class="line"></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">server:</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">gitea/gitea:1</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">gitea</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">USER_UID=1000</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">USER_GID=1000</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">DB_TYPE=mysql</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">DB_HOST=db:3306</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">DB_NAME=gitea123</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">DB_USER=gitea123</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">DB_PASSWD=gitea123</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line"> <span class="attr">networks:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">gitea</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./gitea:/data</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/etc/timezone:/etc/timezone:ro</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/etc/localtime:/etc/localtime:ro</span></span><br><span class="line"> <span class="attr">ports:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"10003:3000"</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"10002:22"</span></span><br><span class="line"> <span class="attr">depends_on:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">db</span></span><br><span class="line"> </span><br><span class="line"> <span class="attr">db:</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">mysql:8</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">gitea_mnt_mysql</span></span><br><span class="line"> <span class="attr">security_opt:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">seccomp=unconfined</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">MYSQL_ROOT_PASSWORD=gitea123</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">MYSQL_USER=gitea123</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">MYSQL_PASSWORD=gitea123</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">MYSQL_DATABASE=gitea123</span></span><br><span class="line"> <span class="attr">networks:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">gitea</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./mysql:/var/lib/mysql</span></span><br></pre></td></tr></table></figure>
<p>修改后的313gitea</p>
<p><img src="/2021/10/09/base/gitea%E6%90%AD%E5%BB%BA/image-20210908020058311.png" alt="image-20210908020058311"></p>
<p>修改后的421 gitea</p>
<p><img src="/2021/10/09/base/gitea%E6%90%AD%E5%BB%BA/image-20210908020208324.png" alt="image-20210908020208324"></p>
<p><img src="/2021/10/09/base/gitea%E6%90%AD%E5%BB%BA/image-20210908020345948.png" alt="image-20210908020345948"></p>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>docker</tag>
<tag>gitea</tag>
</tags>
</entry>
<entry>
<title>github,gitee的page与加速</title>
<url>/2021/10/09/base/github,gitee%E7%9A%84page%E4%B8%8E%E5%8A%A0%E9%80%9F/</url>
<content><![CDATA[<p><strong>Abstract</strong>:实现在github上搭建page.实现在github上的pull/push加速.实现gitee对github 的导入,使得gitee具有备份功能. </p>
<p>就是为github搭建代理,包括加速http和ssh.然后搭建github pages.</p>
<p>实现了之后,我问我自己为什么要选择jekyll呢,那是何等的折磨.搭建方案不重要,重要的是我的博客文字.</p>
<p><strong>Keywords</strong>:github pages,hexo</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><p>[1] <a href="https://kouyt5.github.io/2020/12/23/windows-SSH%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE.html">代理服务器与ssh和git - cc的小站 (kouyt5.github.io)</a></p>
<p>[2] <a href="https://www.jianshu.com/p/e9764e61ef90">Git Stash命令的使用 - 简书 (jianshu.com)</a></p>
<p>[3] <a href="https://blog.csdn.net/dxxzst/article/details/76135935">Hexo 最常用的几个命令_到现在负的博客-CSDN博客</a></p>
<h2 id="github的pull-push加速问题"><a href="#github的pull-push加速问题" class="headerlink" title="github的pull/push加速问题"></a>github的pull/push加速问题</h2><h3 id="私钥是否能通用-gitee和github能同时用一个公钥吗"><a href="#私钥是否能通用-gitee和github能同时用一个公钥吗" class="headerlink" title="私钥是否能通用,gitee和github能同时用一个公钥吗?"></a>私钥是否能通用,gitee和github能同时用一个公钥吗?</h3><p>按照原理,我认为是可以的.因为仓库才能决定要发往哪个地方.</p>
<p>先尝试使用github专用的密钥</p>
<h2 id="实验过程"><a href="#实验过程" class="headerlink" title="实验过程"></a>实验过程</h2><p>1 测试了一下,<code>git init</code>.<code>config</code>文件只是有core,没有用户名邮箱之类的东西.</p>
<p>2 加入ssh-key,这是gitea使用的.测试<code>git clone</code>.</p>
<p>成功,但有问题.原因是没找到私钥<code>github</code>.原来是我写了两个Host,一个私钥是<code>github</code>,一个私钥是<code>gitea</code>的,虽然文件名字不带gitea.遂删除一个Host,继续测试.成功.</p>
<p>我想测试网速问题.但是通过<code>ssh -T</code>终端说<code>but github does not provide shell access</code>.先测试一下能不能push.不能push,原因是没有用户名和邮箱,添加上,测试.成功.但是网速273kb,有点慢,加点文件试一下,测试.938kb,还可以呀,关掉vpn,测试.成功,网速1m多,可以呀,还要啥自行车,为啥ssh连接github不用vpn也很快呢.哪个没有用户名的原因可能是我的gitea中邮箱是<a href="mailto:liji@gitea.com">liji@gitea.com</a>,而github是qq邮箱,所以才不让我用,所以我要把密钥改成gitee的.还是不行,是不是密钥都被污染了?重新生成新的密钥试一试,测试.</p>
<p>最终我放弃了.我就这样吧,每一个仓库我都用local的用户名和邮箱.不折腾了.</p>
<p>3 实验: ssh加速的github测试?</p>
<p>1)测试方案一</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> 基于http的git和基于http或socks5的代理</span></span><br><span class="line">git config --global http.proxy "http://127.0.0.1:1080"#换成自己代理的端口号</span><br><span class="line">git config --global https.proxy "http://127.0.0.1:1080"</span><br><span class="line">git config --global http.proxy "socks5://127.0.0.1:1080"</span><br><span class="line">git config --global https.proxy "socks5://127.0.0.1:1080"</span><br><span class="line"><span class="meta">#</span><span class="bash">基于ssh的git和基于http或socks5的代理</span></span><br><span class="line">Host github.com</span><br><span class="line">ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1080</span><br><span class="line">Host github.com</span><br><span class="line">ProxyCommand nc -v -x 127.0.0.1:1080 %h %p</span><br></pre></td></tr></table></figure>
<p>结果都不行,这好像是Linux的</p>
<p>**注意<code>[http] proxy=http://user:password@ip:1080</code>**还好我们的没有用户名和密码限制,直接输入@后边的ip及之后内容就可以了.</p>
<ol start="2">
<li>测试2 [^1]</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -H 127.0.0.1:10809 %h %p</span><br><span class="line">ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -S 127.0.0.1:10808 %h %p</span><br></pre></td></tr></table></figure>
<p>结果可以</p>
<table>
<thead>
<tr>
<th>条件</th>
<th>下载速度</th>
</tr>
</thead>
<tbody><tr>
<td>ssh 无</td>
<td>1.30m/s</td>
</tr>
<tr>
<td>ssh socks5</td>
<td>1.15m/s</td>
</tr>
<tr>
<td>ssh http</td>
<td>1.34m/s</td>
</tr>
</tbody></table>
<p>合着费了半天劲,没啥用呀.</p>
<p>4 实验: ssh实现github不用设置gitconfig或者用户名和邮箱也能push?</p>
<ol>
<li>使用如下设置去push?</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">Host github.com</span><br><span class="line"> HostName github.com</span><br><span class="line"> #User git</span><br><span class="line"> PreferredAuthentications publickey</span><br><span class="line"> IdentityFile ~/.ssh/id_github</span><br><span class="line"> #ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p</span><br></pre></td></tr></table></figure>
<p>不行,改成<code>User Smithol</code>也不行.可能需要重新来.</p>
<ol start="2">
<li>如下设置去push</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> github</span></span><br><span class="line">Host github.com</span><br><span class="line"> HostName github.com</span><br><span class="line"> User git</span><br><span class="line"> PreferredAuthentications publickey</span><br><span class="line"> IdentityFile ~/.ssh/id_github</span><br><span class="line"> #ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p</span><br></pre></td></tr></table></figure>
<p> 不行,估计现在改了user git 会还是不行</p>
<ol start="3">
<li>如下设置去push</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> github</span></span><br><span class="line">Host github.com</span><br><span class="line"> HostName github.com</span><br><span class="line"> User Smithol </span><br><span class="line"> #PreferredAuthentications publickey</span><br><span class="line"> IdentityFile ~/.ssh/id_github</span><br><span class="line"> #ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p</span><br></pre></td></tr></table></figure>
<p>不行</p>
<p>4)设置<code>.gitconfig</code>文件</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[user]</span><br><span class="line"> name = li--ji#这是gitee中的名字</span><br><span class="line"> email = 1216990865@qq.com#gitee和github都用这个名字</span><br></pre></td></tr></table></figure>
<p>设置完了居然就能push了.</p>
<p>5)在4)基础上去掉user呢.</p>
<p>结果是可以的,看来就是和<code>.gitconfig</code>有关.</p>
<p>6)如果<code>.gitconfig</code>改成没有邮箱呢?</p>
<p>不行</p>
<ol start="7">
<li>如下设置<code>.gitconfig</code>呢</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[user]</span><br><span class="line"><span class="meta"> #</span><span class="bash">name = li--ji</span></span><br><span class="line"> email = adopemind@163.com</span><br><span class="line"> email = 1216990865@qq.com</span><br></pre></td></tr></table></figure>
<p>可以的.但是感觉不太合适,<strong>命令行添加多个邮箱应该报错吧?</strong></p>
<p>总之,也算是解决了不能push的问题.最终如下设置<code>.gitconfig</code>即可.</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[user]</span><br><span class="line"><span class="meta"> #</span><span class="bash">name = li--ji</span></span><br><span class="line"><span class="meta"> #</span><span class="bash">email = adopemind@163.com</span></span><br><span class="line"> email = 1216990865@qq.com</span><br></pre></td></tr></table></figure>
<p>我好像明白了,gitconfig可以不用正确的Email,或者name。这个只是说明是谁修改的,至于你叫啥啥来头,没必要。</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">[user]</span><br><span class="line"> name = liji</span><br><span class="line"> email = 1216990865@qq.com</span><br></pre></td></tr></table></figure>
<h2 id="git-pull实验-2-及常用命令"><a href="#git-pull实验-2-及常用命令" class="headerlink" title="git pull实验[2]及常用命令"></a>git pull实验[2]及常用命令</h2><p>改动后的文件会影响git的正常拉取(git提示先处理本地的改动才可以拉取)</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">git stash</span><br><span class="line">git status</span><br></pre></td></tr></table></figure>
<h2 id="github-page实现"><a href="#github-page实现" class="headerlink" title="github page实现"></a>github page实现</h2><h3 id="1github寻找模板"><a href="#1github寻找模板" class="headerlink" title="1github寻找模板"></a>1github寻找模板</h3><p> 在github上搜索jekyll,或jekyll pages,好看的就fork,最后pull到本地改成自己的.</p>
<h3 id="2-不错的安装hexo的网站"><a href="#2-不错的安装hexo的网站" class="headerlink" title="2 不错的安装hexo的网站"></a>2 不错的安装hexo的网站</h3><p><a href="https://ryanluoxu.github.io/2017/11/24/%E7%94%A8-Hexo-%E5%92%8C-GitHub-Pages-%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2/">用 Hexo 和 GitHub Pages 搭建博客 | 途探生灵 (ryanluoxu.github.io)</a></p>
<h3 id="3-最终选择了chirpy-jekyll主题"><a href="#3-最终选择了chirpy-jekyll主题" class="headerlink" title="3 最终选择了chirpy jekyll主题"></a>3 最终选择了chirpy jekyll主题</h3><p><a href="https://github.com/cotes2020/jekyll-theme-chirpy">cotes2020/jekyll-theme-chirpy: A minimal, responsive, and powerful Jekyll theme for presenting professional writing (github.com)</a></p>
<p>遇到的问题</p>
<p>1)原始主题在linux系统中完成,<strong>而且删除index.html文件,不然page老是显示这个界面</strong></p>
<ol start="2">
<li>可能会用到docker.将s2020020922加入docker组</li>
</ol>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo groupadd docker #添加docker用户组</span><br><span class="line">addgroup xingxing docker #将xingxing用户添加到docker</span><br><span class="line">newgrp docker #更新用户组;这个很重要.</span><br><span class="line">docker ps #测试docker命令是否可以使用sudo正常使用</span><br><span class="line">groups xingxing #查看xingxing用户所属于的组.</span><br></pre></td></tr></table></figure>
<h3 id="4-哦-我亲爱的hexo"><a href="#4-哦-我亲爱的hexo" class="headerlink" title="4 哦,我亲爱的hexo"></a>4 哦,我亲爱的hexo</h3><p>由于chirpy老是没法添加分类,这就很烦。我决定放弃jekyll,选择大众化的hexo,还是稳定的好呀,烂大街也没事,重要的是内容.</p>
<p>1)安装git和node.js,node是js的运行环境.</p>
<p>2)安装Hexo</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">npm config set registry https://registry.npm.taobao.org #国内镜像,在用户下的.npmrc中.</span><br><span class="line">npm i hexo-cli -g</span><br><span class="line">hexo init . #.是当前文件夹,不是当前文件就指定文件</span><br><span class="line">npm install</span><br><span class="line"><span class="meta">#</span><span class="bash"> 新建博客</span></span><br><span class="line">hexo new "博客名" #可以取_post中自己建立md文件</span><br><span class="line">hexo g # 生成静态网页 ,generate</span><br><span class="line">hexo s# 打开本地服务器,serve</span><br></pre></td></tr></table></figure>
<p>其他常用命令</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">hexo clean #清除db.json,public.网络异常时就使用这个重新生成网页.</span><br><span class="line">hexo new page aboutme # 新建一个标题为 aboutme 的页面,默认链接地址为 主页地址/aboutme/</span><br></pre></td></tr></table></figure>
<p>目录结构</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">.</span><br><span class="line"> ├── _config.yml # 网站配置信息</span><br><span class="line"> ├── package.json # 应用程序信息</span><br><span class="line"> ├── scaffolds # 模板文件夹.新建文章时,hexo根据scaffolds建立文件</span><br><span class="line"> ├── source # 存放用户资源</span><br><span class="line"> | ├── _drafts</span><br><span class="line"> | └── _posts</span><br><span class="line"> └── themes # 主题文件夹,可更换主题.</span><br></pre></td></tr></table></figure>
<ol start="3">
<li>与github连接</li>
</ol>
<p>就是把<code>public</code>文件夹上传到Page的仓库.</p>
<p>方法一:把Page的git放在public文件夹,push文件</p>
<p>方法二: 如下</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">npm install hexo-deployer-git --save #安装此库</span><br><span class="line"><span class="meta">#</span><span class="bash">修改_config.yml.对 Hexo 根目录 _config.yml 的修改,需要重启本地服务器后才能预览效果</span></span><br><span class="line">deploy:</span><br><span class="line"> type: git</span><br><span class="line"> repo: git@github.com:xxx/xxx.github.io.git</span><br><span class="line"> branch: main</span><br><span class="line"><span class="meta">#</span><span class="bash">现在是main了.xxx是github用户名.</span></span><br><span class="line"><span class="meta">#</span><span class="bash">deploy</span></span><br><span class="line">hexo d</span><br></pre></td></tr></table></figure>
<p>4)自动部署hexo</p>
<blockquote>
<p>参考文献</p>
<p>[1] <a href="https://zhuanlan.zhihu.com/p/170563000">GitHub Actions 来自动部署 Hexo - 知乎 (zhihu.com)</a></p>
</blockquote>
<p>目的是使用github的actions,要创建<code>.github/workflows/deploy.yml</code>,有时间再看,想起了被jekyll支配的恐惧.</p>
<ol start="5">
<li>更换主题</li>
</ol>
<blockquote>
<p><a href="https://zhuanlan.zhihu.com/p/149710191">为 Hexo 博客更换主题 - 知乎 (zhihu.com)</a></p>
</blockquote>
<p>当然是next了.</p>
<blockquote>
<p>有人使用了<code>git submodule add https://github.com/theme-next/hexo-theme-next themes/next</code>,可我不需要,我的hexo项目中就没有<code>.git</code>文件,也就不能<code>submodule</code>了.</p>
<p>所以我是在theme文件下用<code>git clone git@github.com:Smithol/hexo-theme-next.git ./next</code></p>
</blockquote>
<p><code>_config.yml</code>中<code>theme</code>添加<code>theme:next</code>就可以使用next主题了</p>
<ol start="6">
<li>next 中 为tags等添加page</li>
</ol>
<blockquote>
<p>参考文献:[1] <a href="https://blog.csdn.net/mqdxiaoxiao/article/details/93644533">Hexo博客NexT主题下添加分类、标签、关于菜单项_野猿新一-CSDN博客_next 标签</a></p>
<p>[2] <a href="https://zhuanlan.zhihu.com/p/149710191">为 Hexo 博客更换主题 - 知乎 (zhihu.com)</a></p>
</blockquote>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">hexo new page "tags"</span><br><span class="line"><span class="meta">#</span><span class="bash"><span class="built_in">source</span>/tags/index.md 添加</span></span><br><span class="line">type: "tags"</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<ol start="7">
<li>next添加标签云</li>
</ol>
<h4 id="参考文献-1"><a href="#参考文献-1" class="headerlink" title="参考文献"></a>参考文献</h4><blockquote>
<p>参考文献: <a href="https://blog.csdn.net/Aoman_Hao/article/details/89416634">Hexo博客Next主题建立标签云hexo-tag-cloud及效果展示_AomanHao的博客-CSDN博客</a></p>
</blockquote>
<p>修改内容可以去github找hexo-tag-cloud.</p>
<p>8)常见问题</p>
<h4 id="参考文献-2"><a href="#参考文献-2" class="headerlink" title="参考文献"></a>参考文献</h4><blockquote>
<p><a href="https://sspai.com/post/59568">hexo next 主题优化 | 这里可能有你遇到所有问题的答案 - 少数派 (sspai.com)</a></p>
</blockquote>
<p>这篇文章解决了很多问题.</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">文章部分显示</span><br><span class="line">修改头像</span><br><span class="line">修改站点icon</span><br><span class="line">搜索功能</span><br></pre></td></tr></table></figure>
<ol start="9">
<li>next 自带的标签云</li>
</ol>
<p>自带的标签云太小了。在<code>theme/next/_config.yml</code>修改<code>tagcloud</code>.</p>
<figure class="highlight json"><table><tr><td class="code"><pre><span class="line">tagcloud:</span><br><span class="line"> min: <span class="number">20</span> # Minimun font size in px</span><br><span class="line"> max: <span class="number">30</span> # Maxium font size in px</span><br><span class="line"> start: <span class="string">"#666"</span> # Start color (hex, rgba, hsla or color keywords)</span><br><span class="line"> end: <span class="string">"#111"</span> # End color (hex, rgba, hsla or color keywords)</span><br><span class="line"> amount: <span class="number">200</span> </span><br></pre></td></tr></table></figure>
<p>#666即#6666666.颜色0-255即00-ff.</p>
<ol start="10">
<li>官方文档yyds</li>
</ol>
<h4 id="参考文献-3"><a href="#参考文献-3" class="headerlink" title="参考文献"></a>参考文献</h4><blockquote>
<p>nexT官方文档: <a href="http://theme-next.iissnan.com/getting-started.html#theme-settings">开始使用 - NexT 使用文档 (iissnan.com)</a></p>
</blockquote>
<ol start="11">
<li>博客名字颜色</li>
</ol>
<h4 id="参考文献-4"><a href="#参考文献-4" class="headerlink" title="参考文献"></a>参考文献</h4><blockquote>
<p><a href="https://nokiasonic.github.io/2020/12/10/[Hexo]Next%E4%B8%BB%E9%A2%98%E6%A0%87%E9%A2%98%E9%A2%9C%E8%89%B2%E8%AE%BE%E7%BD%AE/">【Hexo】Next主题标题颜色设置 | 橘子树下 (nokiasonic.github.io)</a></p>
</blockquote>
<p>找到<code>\themes\next\source\css\_common\outline\header\site-meta.styl</code>文件。编辑修改<code>.brand{}</code>里<code>color</code>参数配置为<code>#fc6423</code>(橘色)</p>
<p>12)喜欢的博客主题</p>
<blockquote>
<p><a href="https://blog.cofess.com/">Cofess - Web Developer & Designer</a></p>
<p><a href="https://github.com/cofess">cofess (Sunny) (github.com)</a></p>
</blockquote>
<p>我的jekyll呀</p>
<blockquote>
<p><a href="https://codeswift.top/">CodeSwift</a></p>
</blockquote>
<ol start="12">
<li>添加图片</li>
</ol>
<h4 id="参考文献-5"><a href="#参考文献-5" class="headerlink" title="参考文献"></a>参考文献</h4><blockquote>
<p><a href="https://blog.csdn.net/weixin_44999716/article/details/112401495">hexo博客中插入的图片不显示_煜成’Studio的博客-CSDN博客_hexo 图片不显示</a></p>
<p><a href="https://www.jianshu.com/p/f72aaad7b852">HEXO插入图片(详细版) - 简书 (jianshu.com)</a></p>
</blockquote>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">npm install https://github.com/CodeFalling/hexo-asset-image --save #download</span><br><span class="line">打开/node_modules/hexo-asset-image/index.js,替换一些东西</span><br><span class="line">_config.yml文件,post_asset_folder: true</span><br><span class="line">文件路径:./111/222.png</span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>githubpages</tag>
<tag>hexo</tag>
</tags>
</entry>
<entry>
<title>gitlab搭建</title>
<url>/2021/10/09/base/gitlab%E6%90%AD%E5%BB%BA/</url>
<content><![CDATA[<p><strong>Abstract</strong>:那时候内网想搭建一个服务器,供大家push代码.现在搭建好了,因为局域网不通而无法共用,现在看来如果共用,也一定会夭折.所以先把自己的仓库弄好,不要贪多.此文是关于gitlab的内网服务器搭建的方法,建议使用docker.</p>
<p><strong>Keywords</strong>:如何搭建gitlab服务器</p>
<span id="more"></span>
<h2 id="参考文献"><a href="#参考文献" class="headerlink" title="参考文献"></a>参考文献</h2><p>[1] <a href="https://zhuanlan.zhihu.com/p/63786567">使用 Docker 搭建 GitLab - 知乎 (zhihu.com)</a></p>
<h2 id="Gitlab的搭建"><a href="#Gitlab的搭建" class="headerlink" title="Gitlab的搭建"></a>Gitlab的搭建</h2><p>在421服务器,usr/local/docker/gitlab文件下建立gitlab.</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd usr/local/docker/gitlab</span><br><span class="line">sudo docker ps #加sudo因为可能权限不够,以下都是.</span><br><span class="line">docker ps #看看有啥容器</span><br><span class="line">vi docker-compose.yml</span><br></pre></td></tr></table></figure>
<p>docker-compose.yml</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">version: <span class="number">3</span></span><br><span class="line">services:</span><br><span class="line"> gitlab:</span><br><span class="line"> image: gitlab/gitla-ce:laste或者版本号</span><br><span class="line"> restart: always</span><br><span class="line"> hostname: 服务器ip</span><br><span class="line"> environment:</span><br><span class="line"> TZ: Asia/Shanghai</span><br><span class="line"> GITLAB_OMNIBUS_CONFIG:</span><br><span class="line"> external_url: http://...</span><br><span class="line"> gitlab_rails[<span class="string">'gitlab_shell_ssh_port'</span>]=<span class="number">2222</span></span><br><span class="line"> unicorn[<span class="string">'port'</span>]=<span class="number">8888</span></span><br><span class="line"> nginx[<span class="string">'listen_port'</span>]=<span class="number">8080</span></span><br><span class="line"> ports:</span><br><span class="line"> <span class="number">8080</span>:<span class="number">8080</span></span><br><span class="line"> ....</span><br><span class="line"> volumes:</span><br><span class="line"> -/usr/local/docker/gitlab/config:/etc/gitlab</span><br></pre></td></tr></table></figure>
<p>docker harbor</p>
<p>b 站第二个用户,这家伙是在win用户下操作的</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">C:\users\Administrator</span><br><span class="line"># 下载gitlab,这是最新版本</span><br><span class="line">docker pull gitlab/gitlab-ce</span><br><span class="line"># 配置gitlab的配置etc,日志log,数据data</span><br><span class="line">mkdir -p /srv/gitlab/config</span><br><span class="line">mkdir -p /srv/gitlab/logs</span><br><span class="line">mkdir -p /srv/gitlab/data</span><br></pre></td></tr></table></figure>
<p>配置文件</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">sudo docker run --detach \</span><br><span class="line"> --hostname gitlab.example.com \</span><br><span class="line"> --publish 443:443 --publish 80:80 --publish 22:22 \</span><br><span class="line"> --name gitlab \</span><br><span class="line"> --restart always \</span><br><span class="line"> --volume /srv/gitlab/config:/etc/gitlab \</span><br><span class="line"> --volume /srv/gitlab/logs:/var/log/gitlab \</span><br><span class="line"> --volume /srv/gitlab/data:/var/opt/gitlab \</span><br><span class="line"> gitlab/gitlab-ce:latest</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">$ sudo docker run --detach \</span><br><span class="line"> --hostname gitlab.example.com \ # 设置主机名或域名</span><br><span class="line"> --publish 443:443 --publish 80:80 --publish 22:22 \ # 本地端口的映射</span><br><span class="line"> --name gitlab \ # gitlab-ce 的镜像运行成为一个容器,这里是对容器的命名</span><br><span class="line"> --restart always \ # 设置重启方式,always 代表一直开启,服务器开机后也会自动开启的</span><br><span class="line"> --volume /srv/gitlab/config:/etc/gitlab \ # 将 gitlab 的配置文件目录映射到 /srv/gitlab/config 目录中</span><br><span class="line"> --volume /srv/gitlab/logs:/var/log/gitlab \ # 将 gitlab 的log文件目录映射到 /srv/gitlab/logs 目录中</span><br><span class="line"> --volume /srv/gitlab/data:/var/opt/gitlab \ # 将 gitlab 的数据文件目录映射到 /srv/gitlab/data 目录中</span><br><span class="line"> gitlab/gitlab-ce:latest # 需要运行的镜像</span><br></pre></td></tr></table></figure>
<p>映射–8443:443 8880:89 8222:22</p>
]]></content>
<categories>
<category>base</category>
</categories>
<tags>
<tag>docker</tag>
<tag>gitlab</tag>
</tags>
</entry>
<entry>
<title>git常用命令-配置ssh公钥</title>