-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
1161 lines (1121 loc) · 124 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>Dell R730XD调整风扇转速</title>
<url>/posts/f76d94ce.html</url>
<content><![CDATA[<p>今年7月份,买了台Dell R730XD的服务器搞Homelab。</p>
<p>这台服务器有12个3.5寸硬盘位,很适合作虚拟化服务器和家庭NAS使用。而且Dell有针对此台服务器定制的ESXI官方发行版。</p>
<p>各方面都很满意,除了风扇噪音。</p>
<p>R730XD尽管号称静音,但那是针对别的品牌服务器来说的。</p>
<p>如果放在家里使用没有机柜的话,噪音还是有点大。</p>
<p>好在,它的风扇转速是可调的。据说此型号之后的服务器都不再支持风扇转速调整了。</p>
<p>下面介绍调整风扇转速的具体操作。</p>
<h2 id="安装impitool"><a href="#安装impitool" class="headerlink" title="安装impitool"></a>安装impitool</h2><p><code>impitool</code>在大部分linux发行版的官方软件仓库里都有,比如Debian.</p>
<p>所以最简单的方法,就是安装一台linux的虚拟机,然后安装<code>impitool</code>。</p>
<p>当然在windows下也有<code>impitool</code>,可自动搜索安装。</p>
<h2 id="关闭风扇自动调速"><a href="#关闭风扇自动调速" class="headerlink" title="关闭风扇自动调速"></a>关闭风扇自动调速</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ipmitool -I lanplus -H 192.168.1.11 -U username -P passwd raw 0x30 0x30 0x01 0x00</span><br></pre></td></tr></table></figure>
<ul>
<li>192.168.1.11改为你的R730xd的服务器地址</li>
<li>username改为你的iDrac的用户名</li>
<li>passwd改为你的iDrac的密码</li>
</ul>
<p><strong>注意</strong>:必须先关闭风扇自动调速功能,才能下一步手动指定风扇转速</p>
<h2 id="手动指定风扇转速"><a href="#手动指定风扇转速" class="headerlink" title="手动指定风扇转速"></a>手动指定风扇转速</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">ipmitool -I lanplus -H 192.168.1.11 -U username -P passwd raw 0x30 0x30 0x02 0xff 0x0f</span><br></pre></td></tr></table></figure>
<p>上面手动设置了风扇转速为15%。</p>
<p>我感觉15%是比较合适的,既静音,又能保障一定的散热能力。</p>
]]></content>
<categories>
<category>硬件设备</category>
</categories>
<tags>
<tag>dell</tag>
</tags>
</entry>
<entry>
<title>Git的一些必要设置</title>
<url>/posts/3f67efa6.html</url>
<content><![CDATA[<p>配置<code>git</code>的用户名和密码,应该是你安装完<code>git</code>后需要做的第一件事。</p>
<p>能避免很多麻烦</p>
<h2 id="配置用户名"><a href="#配置用户名" class="headerlink" title="配置用户名"></a>配置用户名</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">git config --global user.name <span class="string">"Your Name"</span></span><br></pre></td></tr></table></figure>
<h2 id="配置邮箱"><a href="#配置邮箱" class="headerlink" title="配置邮箱:"></a>配置邮箱:</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">git config --global user.email <span class="string">"[email protected]"</span></span><br></pre></td></tr></table></figure>
<h2 id="保存密码"><a href="#保存密码" class="headerlink" title="保存密码"></a>保存密码</h2><figure class="highlight llvm"><table><tr><td class="code"><pre><span class="line">git config --<span class="keyword">global</span> credential.helper <span class="keyword">store</span></span><br></pre></td></tr></table></figure>
<h2 id="查看git配置信息"><a href="#查看git配置信息" class="headerlink" title="查看git配置信息"></a>查看git配置信息</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">git config --list</span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>git</tag>
</tags>
</entry>
<entry>
<title>Hexo Next主题添加搜索功能</title>
<url>/posts/d4489ce4.html</url>
<content><![CDATA[<p><code>hexo</code>的<code>NexT</code>主题添加搜索非常简单,而且效果很好,需要用到第三方插件<code>hexo-generator-searchdb</code>。</p>
<h2 id="安装hexo-generator-searchdb"><a href="#安装hexo-generator-searchdb" class="headerlink" title="安装hexo-generator-searchdb"></a>安装hexo-generator-searchdb</h2><figure class="highlight cmake"><table><tr><td class="code"><pre><span class="line">npm <span class="keyword">install</span> hexo-generator-searchdb</span><br></pre></td></tr></table></figure>
<h2 id="修改站点配置文件-config-yml"><a href="#修改站点配置文件-config-yml" class="headerlink" title="修改站点配置文件_config.yml"></a>修改站点配置文件_config.yml</h2><p>在<code>_config.yml</code>中添加下面内容</p>
<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">search:</span></span><br><span class="line"> <span class="attr">path:</span> <span class="string">search.xml</span></span><br><span class="line"> <span class="attr">field:</span> <span class="string">post</span></span><br><span class="line"> <span class="attr">content:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">format:</span> <span class="string">html</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="修改NexT配置文件-config-next-yml"><a href="#修改NexT配置文件-config-next-yml" class="headerlink" title="修改NexT配置文件_config.next.yml"></a>修改NexT配置文件_config.next.yml</h2><p>搜索并修改成如下样式:</p>
<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="comment"># Local search</span></span><br><span class="line"><span class="comment"># Dependencies: https://github.com/next-theme/hexo-generator-searchdb</span></span><br><span class="line"><span class="attr">local_search:</span></span><br><span class="line"> <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"> <span class="comment"># Show top n results per article, show all results by setting to -1</span></span><br><span class="line"> <span class="attr">top_n_per_article:</span> <span class="number">1</span></span><br><span class="line"> <span class="comment"># Unescape html strings to the readable one.</span></span><br><span class="line"> <span class="attr">unescape:</span> <span class="literal">false</span></span><br><span class="line"> <span class="comment"># Preload the search data when the page loads.</span></span><br><span class="line"> <span class="attr">preload:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>hexo</tag>
<tag>search</tag>
</tags>
</entry>
<entry>
<title>Hexo的NexT主题添加favicon</title>
<url>/posts/2bd96118.html</url>
<content><![CDATA[<p>折腾了半天,成功在<code>hexo</code>的<code>NexT</code>主题上应用了站点favicon,记录下具体步骤。</p>
<p>首先要说明的是,中文网站的教程,都是教你把<code>favicon.ico</code>放在<code>theme/next/source/images</code>下,但是现在<code>NexT</code>主题推出<code>npm</code>的安装方式,站点的<code>theme</code>目录下根本没有<code>next</code>文件夹。所以网上的教程早就过时了。</p>
<p>其次,<code>NexT</code>官方博客上的说明极其具有误导性。如果按照它的说明操作,无法怎么设置,都是使用主题自带的图标。具体表现在:</p>
<ul>
<li>favicon图标格式只能使用<code>.ico</code>,才能替代<code>NexT</code>主题自带的图标。而主题设置里却是使用的<code>.png</code>格式</li>
<li>没必要把主题设置里<code>favicon</code>部分全部启用,只使用<code>small</code>和<code>medium</code>即可。</li>
</ul>
<p>下面是具体设置方法</p>
<h2 id="生成favicon"><a href="#生成favicon" class="headerlink" title="生成favicon"></a>生成favicon</h2><p>准备好图片,到这个网站:<a href="https://www.bitbug.net/">https://www.bitbug.net/</a> ,分别生成<code>16x16</code>和<code>32x32</code>大小的<code>.ico</code>文件。</p>
<h2 id="存放favico"><a href="#存放favico" class="headerlink" title="存放favico"></a>存放favico</h2><p>把生成的favicon文件放在<code>hexo-site/source/images</code>目录下,<code>images</code>目录如果没有则新建。</p>
<h2 id="修改主题配置文件"><a href="#修改主题配置文件" class="headerlink" title="修改主题配置文件"></a>修改主题配置文件</h2><p>编辑<code>_config.next.yml</code>,修改成下面的内容:</p>
<figure class="highlight dts"><table><tr><td class="code"><pre><span class="line"><span class="meta"># ---------------------------------------------------------------</span></span><br><span class="line"><span class="meta"># Site Information Settings</span></span><br><span class="line"><span class="meta"># ---------------------------------------------------------------</span></span><br><span class="line"><span class="symbol"></span></span><br><span class="line"><span class="symbol">favicon:</span> </span><br><span class="line"><span class="symbol"> small:</span> <span class="keyword">/images/</span>favicon16.ico</span><br><span class="line"><span class="symbol"> medium:</span> <span class="keyword">/images/</span>favicon32.ico</span><br><span class="line"> <span class="meta">#apple_touch_icon: /apple-touch-icon-next.png</span></span><br><span class="line"> <span class="meta">#safari_pinned_tab: /logo.svg</span></span><br><span class="line"> <span class="meta">#android_manifest: /manifest.json</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p>注意,放在<code>images</code>目录下的图片名称要和上面配置里的一一对应。</p>
<p>打开网站,强制刷新网站,即可看见效果。</p>
]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>hexo</tag>
</tags>
</entry>
<entry>
<title>Iphone上设置微软日历和微软邮箱</title>
<url>/posts/2cadad79.html</url>
<content><![CDATA[<p>设备:iphone 14 plus</p>
<p>IOS: 16.7.2</p>
<p>微软账号:@hotmail.com </p>
<hr>
<p>折腾了一下午,终于弄好了。</p>
<h2 id="微软日历"><a href="#微软日历" class="headerlink" title="微软日历"></a>微软日历</h2><p><strong>问题</strong>:</p>
<p>添加微软账号后,无法在iphone的日历里选择使用微软日历。</p>
<p><strong>原因</strong>:</p>
<p>在iphone里添加账号的时候,邮箱类型选择了 <code>exchange</code>,而不是<code>outlook</code>。</p>
<p>解决方法:选择<code>outlook</code>类型即可。</p>
<p><img src="/../images/Iphone%E4%B8%8A%E8%AE%BE%E7%BD%AE%E5%BE%AE%E8%BD%AF%E6%97%A5%E5%8E%86%E5%92%8C%E5%BE%AE%E8%BD%AF%E9%82%AE%E7%AE%B1_171953.png"></p>
<h2 id="微软邮箱"><a href="#微软邮箱" class="headerlink" title="微软邮箱"></a>微软邮箱</h2><p><strong>问题</strong></p>
<p>iphone自带的<code>邮件</code>客户端,无法收取hotmail邮箱的邮件</p>
<p><strong>解决方法</strong>:</p>
<p>登录页面版hotmail,在<code>设置</code>–<code>同步电子邮件</code>里,关闭<code>允许设备和应用使用POP</code>即可。</p>
<p><img src="/../images/Iphone%E4%B8%8A%E8%AE%BE%E7%BD%AE%E5%BE%AE%E8%BD%AF%E6%97%A5%E5%8E%86%E5%92%8C%E5%BE%AE%E8%BD%AF%E9%82%AE%E7%AE%B1_171859.png"></p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>iphone</tag>
</tags>
</entry>
<entry>
<title>KDE桌面环境安装xrdp远程桌面</title>
<url>/posts/aee8cff7.html</url>
<content><![CDATA[<p>本文适用于使用 <code>kde</code> 桌面环境的 <code>deb</code> 系linux发行版。原文链接<a href="https://pilabor.com/blog/2021/05/remote-desktop-with-xrdp-and-kubuntu/">在此</a></p>
<h2 id="install-xrdp-service"><a href="#install-xrdp-service" class="headerlink" title="install xrdp service"></a>install xrdp service</h2><figure class="highlight cmake"><table><tr><td class="code"><pre><span class="line">sudo apt <span class="keyword">install</span> -y xrdp</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="fix-black-cursor-bug"><a href="#fix-black-cursor-bug" class="headerlink" title="fix black cursor bug"></a>fix black cursor bug</h2><figure class="highlight sml"><table><tr><td class="code"><pre><span class="line">sudo sed -e <span class="symbol">'s</span>/^new_cursors=<span class="literal">true</span>/new_cursors=<span class="literal">false</span>/g' -i /etc/xrdp/xrdp.ini</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="enable-and-start-xrdp-service"><a href="#enable-and-start-xrdp-service" class="headerlink" title="enable and start xrdp service"></a>enable and start xrdp service</h2><figure class="highlight nsis"><table><tr><td class="code"><pre><span class="line">sudo <span class="params">system</span>ctl enable xrdp</span><br><span class="line">sudo <span class="params">system</span>ctl restart xrdp</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="Set-session-to-plasma"><a href="#Set-session-to-plasma" class="headerlink" title="Set session to plasma"></a>Set session to plasma</h2><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">"/usr/bin/startplasma-x11"</span> > ~/.xsession</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="store-variables-for-xsessionrc"><a href="#store-variables-for-xsessionrc" class="headerlink" title="store variables for .xsessionrc"></a>store variables for .xsessionrc</h2><figure class="highlight elixir"><table><tr><td class="code"><pre><span class="line">export D=/usr/share/<span class="symbol">plasma:</span>/usr/local/<span class="symbol">share:</span>/usr/<span class="symbol">share:</span>/var/lib/snapd/desktop</span><br><span class="line">export C=/etc/xdg/xdg-<span class="symbol">plasma:</span>/etc/xdg</span><br><span class="line">export C=<span class="variable">${</span>C}<span class="symbol">:/usr/share/kubuntu-default-settings/kf5-settings</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight routeros"><table><tr><td class="code"><pre><span class="line">cat <<EOF > ~/.xsessionrc</span><br><span class="line"><span class="built_in">export</span> <span class="attribute">XDG_SESSION_DESKTOP</span>=KDE</span><br><span class="line"><span class="built_in">export</span> <span class="attribute">XDG_DATA_DIRS</span>=<span class="variable">${D}</span></span><br><span class="line"><span class="built_in">export</span> <span class="attribute">XDG_CONFIG_DIRS</span>=<span class="variable">${C}</span></span><br><span class="line">EOF</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h2 id="fix-“authentication-required”-bug"><a href="#fix-“authentication-required”-bug" class="headerlink" title="fix “authentication required” bug"></a>fix “authentication required” bug</h2><figure class="highlight routeros"><table><tr><td class="code"><pre><span class="line">cat <<EOF | \</span><br><span class="line"> sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-NetworkManager.pkla</span><br><span class="line">[Netowrkmanager]</span><br><span class="line"><span class="attribute">Identity</span>=unix-group:sudo</span><br><span class="line"><span class="attribute">Action</span>=org.freedesktop.NetworkManager.network-control</span><br><span class="line"><span class="attribute">ResultAny</span>=<span class="literal">yes</span></span><br><span class="line"><span class="attribute">ResultInactive</span>=<span class="literal">yes</span></span><br><span class="line"><span class="attribute">ResultActive</span>=<span class="literal">yes</span></span><br><span class="line">EOF</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight routeros"><table><tr><td class="code"><pre><span class="line">cat <<EOF | \</span><br><span class="line"> sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-packagekit.pkla</span><br><span class="line">[Netowrkmanager]</span><br><span class="line"><span class="attribute">Identity</span>=unix-group:sudo</span><br><span class="line"><span class="attribute">Action</span>=org.freedesktop.packagekit.system-sources-refresh</span><br><span class="line"><span class="attribute">ResultAny</span>=<span class="literal">yes</span></span><br><span class="line"><span class="attribute">ResultInactive</span>=auth_admin</span><br><span class="line"><span class="attribute">ResultActive</span>=<span class="literal">yes</span></span><br><span class="line">EOF</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo systemctl restart polkit</span></span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>linux</tag>
<tag>kde</tag>
<tag>RDP</tag>
</tags>
</entry>
<entry>
<title>LinuxMint取消密码回显</title>
<url>/posts/9be48e85.html</url>
<content><![CDATA[<p>LinuxMint默认设置下,当在终端输入密码是,会显示<code>*</code>,密码有多少位,就显示多少位的<code>*</code>。</p>
<p>这个功能有人喜欢,有人不喜欢。我是没有这个习惯,所以看着就很别扭。</p>
<p>下面介绍取消密码回显的方法。</p>
<h2 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h2><p>决定是是否显示<code>*</code>的配置文件是<code>/etc/sudoers.d/0pwfeedback</code>。</p>
<p>我们需要对它做一些编辑。</p>
<h2 id="更改权限"><a href="#更改权限" class="headerlink" title="更改权限"></a>更改权限</h2><p><code>/etc/sudoers.d/0pwfeedback</code>这个文件默认权限是<code>440</code>,因此即使root用户也无法修改。</p>
<p>因此如果想修改的话,需要先把它改成别的权限,比如<code>600</code>。</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo</span> -i</span><br><span class="line"><span class="attribute">chmod</span> <span class="number">600</span> /etc/sudoers.d/<span class="number">0</span>pwfeedback </span><br></pre></td></tr></table></figure>
<p>默认配置是</p>
<figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">Defaults pwfeedback</span></span><br></pre></td></tr></table></figure>
<p>把它修改成</p>
<figure class="highlight erlang-repl"><table><tr><td class="code"><pre><span class="line">Defaults !pwfeedback</span><br></pre></td></tr></table></figure>
<p>即可不显示<code>*</code>了。</p>
<h2 id="改回权限"><a href="#改回权限" class="headerlink" title="改回权限"></a>改回权限</h2><p>修改完后,记得把权限改回原来的<code>440</code></p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">chmod</span> <span class="number">440</span> /etc/sudoers.d/<span class="number">0</span>pwfeedback</span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>linuxmint</tag>
<tag>terminal</tag>
</tags>
</entry>
<entry>
<title>LinuxMint开启远程桌面</title>
<url>/posts/2c930f13.html</url>
<content><![CDATA[<p>记得看过一篇测评,Linux下主流的桌面环境,对RDP支持最好的,是Cinnamon。</p>
<p>今天试了一下,果然如此。</p>
<p>部署环境:LinuxMint21.3 + Cinnamon</p>
<h2 id="安装xrdp"><a href="#安装xrdp" class="headerlink" title="安装xrdp"></a>安装xrdp</h2><figure class="highlight cmake"><table><tr><td class="code"><pre><span class="line">sudo apt <span class="keyword">install</span> xrdp -y</span><br></pre></td></tr></table></figure>
<h2 id="验证xrdp服务的状态"><a href="#验证xrdp服务的状态" class="headerlink" title="验证xrdp服务的状态"></a>验证xrdp服务的状态</h2><figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo systemctl status xrdp</span></span><br></pre></td></tr></table></figure>
<h2 id="设置RDP的默认会话"><a href="#设置RDP的默认会话" class="headerlink" title="设置RDP的默认会话"></a>设置RDP的默认会话</h2><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">"cinnamon-session-cinnamon"</span> | <span class="built_in">tee</span> ~/.xsession</span><br></pre></td></tr></table></figure>
<h2 id="重启xrdp"><a href="#重启xrdp" class="headerlink" title="重启xrdp"></a>重启xrdp</h2><figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo systemctl restart xrdp</span></span><br></pre></td></tr></table></figure>
<p>如此即可。</p>
<p>最后再提示一下,远程桌面连接linux,当前用户不能处在登录状态。</p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>RDP</tag>
<tag>Cinnamon</tag>
</tags>
</entry>
<entry>
<title>Linux下更改用户目录为英文名称</title>
<url>/posts/4ad8d8d7.html</url>
<content><![CDATA[<p>安装<code>xdg-user-dirs-gtk</code>这个软件。</p>
<p>以<code>debian</code>为例:</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo apt install xdg-user-dirs-gtk</span><br></pre></td></tr></table></figure>
<p><strong>注意</strong>:无论是使用kde、gnome、xfce还是别的桌面环境,都是使用上面这个软件。</p>
<h2 id="临时更改英文locale并更新目录名称"><a href="#临时更改英文locale并更新目录名称" class="headerlink" title="临时更改英文locale并更新目录名称"></a>临时更改英文locale并更新目录名称</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">export LANG=en_US</span><br><span class="line">xdg-user-dirs-gtk-update</span><br></pre></td></tr></table></figure>
<p>会跳出一个对话框,询问是否将目录转化为英文路径,点击同意并关闭。</p>
<h2 id="切换回中文locale"><a href="#切换回中文locale" class="headerlink" title="切换回中文locale"></a>切换回中文locale</h2><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">export LANG=zh_CN</span><br></pre></td></tr></table></figure>
<p>重启后进入系统,会提示更新文件名称,选择<strong>不更新</strong>,且之后都不再提示。</p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>linux</tag>
<tag>tips</tag>
</tags>
</entry>
<entry>
<title>Linux下查看文件的数字权限</title>
<url>/posts/25df6da1.html</url>
<content><![CDATA[<p>linux下,有时会有以数字方式展示文件的权限,比如<code>755</code>、<code>644</code>等,这样比较直观。</p>
<p>通过搜索,发现<code>stat</code>命令可以达到这样的效果<br>比如查看<code>test.txt</code>这个文件的权限</p>
<figure class="highlight llvm"><table><tr><td class="code"><pre><span class="line">stat -<span class="keyword">c</span> <span class="variable">%a</span> test.txt </span><br></pre></td></tr></table></figure>
<p>输出结果直接就是数字</p>
<figure class="highlight"><table><tr><td class="code"><pre><span class="line">644</span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>linux</tag>
<tag>tips</tag>
</tags>
</entry>
<entry>
<title>Linux服务器使用密钥登录</title>
<url>/posts/ab32b638.html</url>
<content><![CDATA[<blockquote>
<p>登录linux服务器有2种方式,一是使用用户名/密码;二是使用密钥。<br>本文介绍使用密钥登录的基础知识和相关设置方法。</p>
</blockquote>
<h2 id="使用密码登录的缺点"><a href="#使用密码登录的缺点" class="headerlink" title="使用密码登录的缺点"></a>使用密码登录的缺点</h2><p>使用密码登录,最大的缺点是存在暴力破解的隐患。</p>
<p>举个例子,随便买个国外大厂的vps,一个小时后再登录,就会发现很多次登录失败的提示。</p>
<p>全世界的黑客,7x24小时的使用工具和字典库扫描你的服务器,即使登录不成功,也相当于一种另类的DDOS了。</p>
<p>尽管我们可以把SSH的端口设置为默认的22以外的不常用的端口,依然不能从根本上解决问题。</p>
<h2 id="使用密钥登录的优势"><a href="#使用密钥登录的优势" class="headerlink" title="使用密钥登录的优势"></a>使用密钥登录的优势</h2><p>密钥登录的原理是:利用密钥生成器制作一对密钥:一只公钥和一只私钥。然后将公钥添加到服务器的某个账户上,在客户端利用私钥即可完成认证并登录。</p>
<p>使用密钥登录,一个优势是从根本上解决了密码暴力破解的问题。因为登录根本不需要密码。</p>
<p>另一个优势是可以在任意服务器上配置好公钥,然后使用同一个的私钥来登录。</p>
<h2 id="密钥类型选择"><a href="#密钥类型选择" class="headerlink" title="密钥类型选择"></a>密钥类型选择</h2><p>常见的密钥各类有dsa、rsa、 ecdsa、ed25519这几种,下面分别介绍,看过你就知道怎么选择了。</p>
<p>总体上,根据数学特性来分类,dsa/rsa是一类,ecdsa/ed25519是一类,后者算法更先进。</p>
<h3 id="dsa"><a href="#dsa" class="headerlink" title="dsa"></a>dsa</h3><p>dsa密钥因为安全问题,早已被弃用。</p>
<h3 id="rsa"><a href="#rsa" class="headerlink" title="rsa"></a>rsa</h3><p>rsa密钥是目前兼容性最好的,应用最广泛的类型,一般在用ssh-keygen工具生成key的时候,默认使用的也是这种类型。</p>
<p>不过rsa密钥也有安全问题:在生成key时,如果指定的key size太小的话,存在被破解的隐患。如果一定要用rsa密钥,推荐key size为4096。我以前在使用rsa密钥时,都是设置4096。</p>
<p><strong>注</strong>:开源社区在使用新技术方面一向激进,最新的Ubuntu22.04已经不再支持rsa密钥登录了。</p>
<h3 id="ecdsa"><a href="#ecdsa" class="headerlink" title="ecdsa"></a>ecdsa</h3><p>ecdsa密钥最主要的问题,在于它是由臭名昭著的NSA贡献的。仅凭这一点这足以让人放弃了。</p>
<p>另外说一个热知识,SELINUX也是由NSA开发的。</p>
<h3 id="ed25519"><a href="#ed25519" class="headerlink" title="ed25519"></a>ed25519</h3><p>ed25519是目前最安全、加解密速度最快的key类型,由于其数学特性,它的key的长度比rsa小很多,优先推荐使用。它目前唯一的问题就是兼容性,即在旧版本的ssh工具集中可能无法使用。</p>
<h3 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h3><p>毫无疑问,ed25519是密钥的最佳选择。</p>
<h2 id="具体配置方法"><a href="#具体配置方法" class="headerlink" title="具体配置方法"></a>具体配置方法</h2><h3 id="生成ed25519密钥"><a href="#生成ed25519密钥" class="headerlink" title="生成ed25519密钥"></a>生成ed25519密钥</h3><figure class="highlight excel"><table><tr><td class="code"><pre><span class="line">ssh-keygen -<span class="built_in">t</span> <span class="symbol">ed25519</span></span><br></pre></td></tr></table></figure>
<p>假设此处生成的私钥为<code>mykey</code>,公钥为<code>mykey.pub</code>。</p>
<h3 id="服务器上配置公钥"><a href="#服务器上配置公钥" class="headerlink" title="服务器上配置公钥"></a>服务器上配置公钥</h3><p>新建存放密钥的文件夹<code>.ssh</code></p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> ~/.ssh</span><br></pre></td></tr></table></figure>
<p>把公钥上传到linux服务器<br>执行下面命令:</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">cat mykey.pub >> ~/.ssh/authorized_keys</span><br></pre></td></tr></table></figure>
<p><code>authorized_keys</code>就是保存公钥的文件。</p>
<p>如此,公钥就配置好了。</p>
<h3 id="相关密钥的权限设置"><a href="#相关密钥的权限设置" class="headerlink" title="相关密钥的权限设置"></a>相关密钥的权限设置</h3><ol>
<li>本地相关文件权限</li>
</ol>
<ul>
<li><code>mykey</code>私钥设置为<code>600</code>权限</li>
</ul>
<ol start="2">
<li>远程服务器相关文件权限设置</li>
</ol>
<ul>
<li><code>.ssh</code>目录设置为<code>700</code></li>
<li><code>mykey.pub</code>公钥设置为<code>644</code></li>
<li><code>authorized_keys</code>设置为<code>600</code></li>
<li><code>known_hosts</code>设置为<code>644</code></li>
</ul>
<p><strong>特别提示</strong>:上述的文件和目录的权限设置非常重要,尤其是对于<code>centos</code>系列的发行版来说,设置不正确就极有可能登录不上。</p>
<h3 id="配置ssh文件"><a href="#配置ssh文件" class="headerlink" title="配置ssh文件"></a>配置ssh文件</h3><p>需要对<code>/etc/ssh/sshd_config</code>文件作一些修改,包括修改端口号,取消密码登录、启用密钥登录</p>
<p>需要修改的地方如下:</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">Port 12345 ##12345改成你要用的端口号</span><br><span class="line"></span><br><span class="line">PubkeyAuthentication yes ##启用密钥登录</span><br><span class="line"></span><br><span class="line">PasswordAuthentication no ##关闭密码登录</span><br></pre></td></tr></table></figure>
<h3 id="重启ssh服务生效"><a href="#重启ssh服务生效" class="headerlink" title="重启ssh服务生效"></a>重启ssh服务生效</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo systemctl restart sshd</span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>linux</tag>
<tag>ssh</tag>
</tags>
</entry>
<entry>
<title>Mac下的五笔输入法-RIME</title>
<url>/posts/8fa6bbd5.html</url>
<content><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>MacOS自带的输入法,最常用的无过于拼音和五笔。</p>
<p>目前来看,拼音输入法占据了绝对的主流,而且MacOS自带的拼音输入法做得也相当不错了,完全不需要再安装第三方的拼音输入法。</p>
<p>但是,本人使用的是五笔。MacOS自带的五笔怎么评价呢?也就是能打个字的水平吧。</p>
<p>长久以来,本人在Mac下一直使用的是<code>清歌输入法</code>,这个输入法完美的适配本人的使用习惯。但是清歌输入法已经很久没有更新了,在最新的MacOS13和14代系统上使用,有一些bug,还挺烦人的。</p>
<p>当然也有其他大厂出品的五笔输入法,比如<code>百度五笔</code>。如果不关注隐私问题的话,我还挺推荐百度五笔输入法的。联网词库、在线同步、皮肤、指定程序使用英文、使用习惯等功能都很齐全,日常使用和windows下没什么区别。</p>
<p>不过Mac下的五笔输入法有更好的选择,那就是<code>RIME</code>。</p>
<h2 id="设置"><a href="#设置" class="headerlink" title="设置"></a>设置</h2><p>RIME 这个输入法是跨平台的开源软件,三大PC操作系统都可用。虽然功能相同,但是中文名字不一样,Mac下的名字叫<code>鼠须管</code>。</p>
<p>如果用房子来形容这个<code>RIME</code>输入法,我会叫它毛胚房。它的主程序功能异常简陋,如果不自己做一些配置,类似于房子精装修,那基本就是不可用的状态。但好就好在它是个开源软件,Github上有现成的配置文件,类似于有个老师傅已经精装好了,你直接拿过来用就可以达到一样的效果。</p>
<p>这个配置文件的地址在:<a href="https://github.com/KyleBing/rime-wubi86-jidian">https://github.com/KyleBing/rime-wubi86-jidian</a>。</p>
<p>此配置的默认皮肤界面非常符合我的审美,不需要再改动了。在使用习惯的设置上也基本与我平时一样,只需要改动很小一部分配置就可以,几行代码的事。</p>
<h2 id="同步"><a href="#同步" class="headerlink" title="同步"></a>同步</h2><p><code>RIME</code>是没有同步功能的,不过可以通过<code>resilio</code>达到一样的效果。</p>
<p>本人有NAS,在NAS上安装了<code>resilio</code>,同时使用<code>zerotier</code>实现不同电脑的互联功能。</p>
<p>通过这种方式,把RIME的配置文件放在resilio的一个文件夹里。然后在不同的操作系统上做软链接。这样就达到了“一次修改,各电脑可用”的效果。等于是实现了同步功能。</p>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>MacOS</tag>
<tag>RIME</tag>
<tag>输入法</tag>
</tags>
</entry>
<entry>
<title>Ubuntu 24.04安装Docker</title>
<url>/posts/e1db731e.html</url>
<content><![CDATA[<h2 id="使用官方源安装-Docker"><a href="#使用官方源安装-Docker" class="headerlink" title="使用官方源安装 Docker"></a>使用官方源安装 Docker</h2><p>以下操作需要在 <code>root</code> 用户下完成,请使用 <code>sudo -i</code> 切换到 <code>root</code> 用户进行操作。</p>
<h3 id="安装一些必要的软件包:"><a href="#安装一些必要的软件包:" class="headerlink" title="安装一些必要的软件包:"></a>安装一些必要的软件包:</h3><figure class="highlight vim"><table><tr><td class="code"><pre><span class="line">apt <span class="keyword">update</span></span><br><span class="line"></span><br><span class="line">apt upgrade -<span class="keyword">y</span></span><br><span class="line"></span><br><span class="line">apt install curl <span class="keyword">vim</span> wget gnupg dpkg apt-transport-https lsb-release <span class="keyword">ca</span>-certificates</span><br></pre></td></tr></table></figure>
<h3 id="安装docker-GPG-公钥-和apt源"><a href="#安装docker-GPG-公钥-和apt源" class="headerlink" title="安装docker GPG 公钥 和apt源"></a>安装docker GPG 公钥 和apt源</h3><figure class="highlight awk"><table><tr><td class="code"><pre><span class="line">curl -sSL https:<span class="regexp">//</span>download.docker.com<span class="regexp">/linux/</span>debian<span class="regexp">/gpg | gpg --dearmor > /u</span>sr<span class="regexp">/share/</span>keyrings/docker-ce.gpg</span><br><span class="line"></span><br><span class="line">echo <span class="string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable"</span> > <span class="regexp">/etc/</span>apt<span class="regexp">/sources.list.d/</span>docker.list</span><br></pre></td></tr></table></figure>
<h3 id="安装docker"><a href="#安装docker" class="headerlink" title="安装docker"></a>安装docker</h3><figure class="highlight stata"><table><tr><td class="code"><pre><span class="line">apt <span class="keyword">update</span></span><br><span class="line"></span><br><span class="line">apt install docker-ce docker-ce-<span class="keyword">cli</span> containerd.io docker-compose-<span class="keyword">plugin</span></span><br></pre></td></tr></table></figure>
<p>此时,可以使用<code>docker version</code>查看安装是否成功</p>
<p><img src="/../images/Ubuntu-24-04%E5%AE%89%E8%A3%85Docker_091825.png"></p>
<h2 id="当前用户可以以rootless模式运行docker"><a href="#当前用户可以以rootless模式运行docker" class="headerlink" title="当前用户可以以rootless模式运行docker"></a>当前用户可以以rootless模式运行docker</h2><figure class="highlight mipsasm"><table><tr><td class="code"><pre><span class="line">apt <span class="keyword">install </span>docker-ce-rootless-<span class="keyword">extras</span></span><br><span class="line"><span class="keyword"></span></span><br><span class="line">sudo usermod -aG docker $USER</span><br></pre></td></tr></table></figure>
<h2 id="修改docker配置"><a href="#修改docker配置" class="headerlink" title="修改docker配置"></a>修改docker配置</h2><p>以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘</p>
<figure class="highlight arcade"><table><tr><td class="code"><pre><span class="line">cat > <span class="regexp">/etc/</span>docker/daemon.json << EOF</span><br><span class="line">{</span><br><span class="line"> <span class="string">"log-driver"</span>: <span class="string">"json-file"</span>,</span><br><span class="line"> <span class="string">"log-opts"</span>: {</span><br><span class="line"> <span class="string">"max-size"</span>: <span class="string">"20m"</span>,</span><br><span class="line"> <span class="string">"max-file"</span>: <span class="string">"3"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"ipv6"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="string">"fixed-cidr-v6"</span>: <span class="string">"fd00:dead:beef:c0::/80"</span>,</span><br><span class="line"> <span class="string">"experimental"</span>:<span class="literal">true</span>,</span><br><span class="line"> <span class="string">"ip6tables"</span>:<span class="literal">true</span></span><br><span class="line">}</span><br><span class="line">EOF</span><br></pre></td></tr></table></figure>
<p>重启系统。</p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>ubuntu</tag>
<tag>docker</tag>
</tags>
</entry>
<entry>
<title>Ubuntu24.04安装Temurin JDK</title>
<url>/posts/e63027c0.html</url>
<content><![CDATA[<p>以下命令来自官方,需要使用root身份</p>
<h2 id="切换到root"><a href="#切换到root" class="headerlink" title="切换到root"></a>切换到root</h2><figure class="highlight css"><table><tr><td class="code"><pre><span class="line">sudo -<span class="selector-tag">i</span></span><br></pre></td></tr></table></figure>
<h2 id="安装软件依赖"><a href="#安装软件依赖" class="headerlink" title="安装软件依赖"></a>安装软件依赖</h2><figure class="highlight elm"><table><tr><td class="code"><pre><span class="line"><span class="title">apt</span> install -y wget apt-trans<span class="keyword">port</span>-https gpg</span><br></pre></td></tr></table></figure>
<h2 id="下载GPG-key"><a href="#下载GPG-key" class="headerlink" title="下载GPG key"></a>下载GPG key</h2><figure class="highlight awk"><table><tr><td class="code"><pre><span class="line">wget -qO - https:<span class="regexp">//</span>packages.adoptium.net<span class="regexp">/artifactory/</span>api<span class="regexp">/gpg/</span>key<span class="regexp">/public | gpg --dearmor | tee /</span>etc<span class="regexp">/apt/</span>trusted.gpg.d<span class="regexp">/adoptium.gpg > /</span>dev/null</span><br></pre></td></tr></table></figure>
<h2 id="设置apt软件源"><a href="#设置apt软件源" class="headerlink" title="设置apt软件源"></a>设置apt软件源</h2><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">"deb https://packages.adoptium.net/artifactory/deb <span class="subst">$(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release)</span> main"</span> | <span class="built_in">tee</span> /etc/apt/sources.list.d/adoptium.list</span><br></pre></td></tr></table></figure>
<h2 id="安装Temurin-JDK"><a href="#安装Temurin-JDK" class="headerlink" title="安装Temurin JDK"></a>安装Temurin JDK</h2><figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">apt</span> update </span><br><span class="line"><span class="attribute">apt</span> install temurin-<span class="number">21</span>-jdk</span><br></pre></td></tr></table></figure>
<h2 id="设置默认的java版本"><a href="#设置默认的java版本" class="headerlink" title="设置默认的java版本"></a>设置默认的java版本</h2><figure class="highlight sql"><table><tr><td class="code"><pre><span class="line">sudo <span class="keyword">update</span><span class="operator">-</span>alternatives <span class="comment">--config java</span></span><br></pre></td></tr></table></figure>
<p><img src="/../images/Ubuntu24-04%E5%AE%89%E8%A3%85Temurin-JDK_085812.png"></p>
]]></content>
<categories>
<category>编程开发</category>
</categories>
<tags>
<tag>ubuntu</tag>
<tag>java</tag>
</tags>
</entry>
<entry>
<title>Ubuntu24.04开启RDP远程桌面访问</title>
<url>/posts/c466930e.html</url>
<content><![CDATA[<p>Ubuntu 24.04系统内建了RDP远程桌面访问,终于不用再安装设置xrdp了。</p>
<p>下面介绍设置方法</p>
<p>打开<code>设置</code>,左侧最下方找到<code>系统</code>,右侧点击<code>远程桌面</code>:<br><img src="/images/17179236170199.jpg"><br><code>桌面共享</code>这里不用管,点击<code>远程登录</code>,看下图设置:<br><img src="/images/17179236351583.jpg"></p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>RDP</tag>
</tags>
</entry>
<entry>
<title>Ubuntu安装设置zsh</title>
<url>/posts/39722288.html</url>
<content><![CDATA[<h2 id="查看当前默认系统shell"><a href="#查看当前默认系统shell" class="headerlink" title="查看当前默认系统shell"></a>查看当前默认系统shell</h2><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="variable">$SHELL</span></span><br></pre></td></tr></table></figure>
<h2 id="安装zsh和oh-my-zsh"><a href="#安装zsh和oh-my-zsh" class="headerlink" title="安装zsh和oh-my-zsh"></a>安装zsh和oh-my-zsh</h2><h3 id="zsh"><a href="#zsh" class="headerlink" title="zsh"></a>zsh</h3><figure class="highlight cmake"><table><tr><td class="code"><pre><span class="line">sudo apt <span class="keyword">install</span> zsh</span><br></pre></td></tr></table></figure>
<h3 id="oh-my-zsh"><a href="#oh-my-zsh" class="headerlink" title="oh-my-zsh"></a>oh-my-zsh</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">sh -c <span class="string">"<span class="subst">$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)</span>"</span></span><br></pre></td></tr></table></figure>
<ul>
<li>需要系统中有curl和git</li>
<li>安装完oh-my-zsh后,会自动提示是否切换到zsh。</li>
<li>如果没有提示切换系统shell,使用chsh -s /bin/zsh来切换。</li>
</ul>
<h2 id="安装zsh常用插件"><a href="#安装zsh常用插件" class="headerlink" title="安装zsh常用插件"></a>安装zsh常用插件</h2><p>最有用的就是3个:</p>
<ul>
<li>高亮插件<code>zsh-syntax-highlighting</code>、</li>
<li>自动实例插件<code>zsh-autosuggestions</code>、</li>
<li>跳转插件<code>autojump</code></li>
</ul>
<h3 id="zsh-syntax-highlighting"><a href="#zsh-syntax-highlighting" class="headerlink" title="zsh-syntax-highlighting"></a>zsh-syntax-highlighting</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> <span class="variable">$ZSH</span>/custom/plugins</span><br><span class="line">git <span class="built_in">clone</span> https://github.com/zsh-users/zsh-syntax-highlighting.git</span><br></pre></td></tr></table></figure>
<h3 id="zsh-autosuggestions"><a href="#zsh-autosuggestions" class="headerlink" title="zsh-autosuggestions"></a>zsh-autosuggestions</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> <span class="variable">$ZSH</span>/custom/plugins</span><br><span class="line">git <span class="built_in">clone</span> https://github.com/zsh-users/zsh-autosuggestions.git</span><br></pre></td></tr></table></figure>
<h3 id="autojump"><a href="#autojump" class="headerlink" title="autojump"></a>autojump</h3><figure class="highlight angelscript"><table><tr><td class="code"><pre><span class="line">sudo apt install <span class="built_in">auto</span>jump</span><br></pre></td></tr></table></figure>
<h2 id="启用插件"><a href="#启用插件" class="headerlink" title="启用插件"></a>启用插件</h2><p>除了上面的插件,<code>oh-my-zsh</code>自带了几个插件,建议一起启用:</p>
<ul>
<li>z</li>
<li>extract</li>
<li>safe-paste</li>
</ul>
<p>打开<code>~/.zshrc</code>,找到<code>plugins=(git)</code>这一行,修改成下面的内容:</p>
<figure class="highlight abnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">plugins</span><span class="operator">=</span>(git autojump zsh-autosuggestions zsh-syntax-highlighting z safe-paste extract)</span><br></pre></td></tr></table></figure>
<h2 id="配置文件生效"><a href="#配置文件生效" class="headerlink" title="配置文件生效"></a>配置文件生效</h2><p>终端下运行命令: </p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">source</span> ~/.zshrc</span><br></pre></td></tr></table></figure>
<h2 id="安装Powerlevel10k主题"><a href="#安装Powerlevel10k主题" class="headerlink" title="安装Powerlevel10k主题"></a>安装Powerlevel10k主题</h2><blockquote>
<p>为什么要安装<code>Powerlevel10k</code>呢?除了确实漂亮以外,更重要的是,这个主题和<code>miniconda</code>配合的非常好。</p>
</blockquote>
<h3 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --depth=1 https://github.com/romkatv/powerlevel10k.git <span class="variable">${ZSH_CUSTOM:-<span class="variable">$HOME</span>/.oh-my-zsh/custom}</span>/themes/powerlevel10k</span><br></pre></td></tr></table></figure>
<h3 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h3><p>修改<code>~/.zshrc</code>,找到<code>ZSH_THEME</code>,修改成下面内容:</p>
<figure class="highlight ini"><table><tr><td class="code"><pre><span class="line"><span class="attr">ZSH_THEME</span>=<span class="string">"powerlevel10k/powerlevel10k"</span></span><br></pre></td></tr></table></figure>
<h3 id="配置"><a href="#配置" class="headerlink" title="配置"></a>配置</h3><p>重新打开终端,按照提示一步步来即可。</p>
<p>最终效果如图<br><img src="/../images/Ubuntu%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEzsh_092107.png"></p>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>ubuntu</tag>
<tag>zsh</tag>
</tags>
</entry>
<entry>
<title>Windows11恢复成win10右键菜单</title>
<url>/posts/69ce0e48.html</url>
<content><![CDATA[<p>Windows 11的右键菜单设计的太失败了,极其地反人类、反直觉,很多常用的功能都必须去点“显示更多”选项才能找到。</p>
<p>其实这个“显示更多”就是旧版本的右键菜单,微软这么设计就是在给用户去人为制造麻烦。</p>
<p>在网上找到了方法,可以把win11的右键菜单改回win10的样式。</p>
<p>以下操作需要<strong>管理员权限</strong>的<code>powershell</code></p>
<h2 id="改成win10的右键菜单样式"><a href="#改成win10的右键菜单样式" class="headerlink" title="改成win10的右键菜单样式"></a>改成win10的右键菜单样式</h2><figure class="highlight dockerfile"><table><tr><td class="code"><pre><span class="line">reg <span class="keyword">add</span><span class="language-bash"> <span class="string">"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"</span> /f /ve</span></span><br></pre></td></tr></table></figure>
<p>效果如下图:<br><img src="/../images/Windows11%E6%81%A2%E5%A4%8D%E6%88%90win10%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95_093937.png"></p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>windows</tag>
<tag>鼠标</tag>
</tags>
</entry>
<entry>
<title>Windows下安装设置Python绿色版</title>
<url>/posts/f9c965a9.html</url>
<content><![CDATA[<h2 id="系统环境"><a href="#系统环境" class="headerlink" title="系统环境"></a>系统环境</h2><p>操作系统: windows 10 ltsc 2019 X64<br>Python: 3.12.5</p>
<h2 id="下载python"><a href="#下载python" class="headerlink" title="下载python"></a>下载python</h2><p>下载地址: <a href="https://www.python.org/downloads/windows/">https://www.python.org/downloads/windows/</a></p>
<p>需要下载<code>embeddable</code>版本:<br><img src="/../images/Windows%E4%B8%8B%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEPython%E7%BB%BF%E8%89%B2%E7%89%88_203943.png"></p>
<p>下载后,解压到自定义位置,这里解压到了</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">E</span>:\ProgramFiles\python3.<span class="number">12</span>.<span class="number">5</span></span><br></pre></td></tr></table></figure>
<h2 id="安装pip"><a href="#安装pip" class="headerlink" title="安装pip"></a>安装pip</h2><p>打开网页:<a href="https://pip.pypa.io/en/stable/installation/#">https://pip.pypa.io/en/stable/installation/#</a></p>
<p>右键点击下面地址,选择另存为,保存到解压后的python目录<br><img src="/../images/Windows%E4%B8%8B%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEPython%E7%BB%BF%E8%89%B2%E7%89%88_204343.png"></p>
<p>找到解压后的<code>python</code>目录,按<code>shift+右键</code>打开<code>powershell</code>窗口</p>
<p>然后执行下面命令:</p>
<figure class="highlight vim"><table><tr><td class="code"><pre><span class="line"><span class="keyword">python</span>.<span class="keyword">exe</span> <span class="built_in">get</span>-pip.<span class="keyword">py</span></span><br></pre></td></tr></table></figure>
<p>执行完成后,目录下会多出两个文件夹,分别是<code>Lib</code>和<code>Scripts</code><br><img src="/../images/Windows%E4%B8%8B%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEPython%E7%BB%BF%E8%89%B2%E7%89%88_204656.png"></p>
<h2 id="添加系统环境变量"><a href="#添加系统环境变量" class="headerlink" title="添加系统环境变量"></a>添加系统环境变量</h2><p>在<code>环境变量</code>-<code>系统变量</code>,点击<code>Path</code>,添加两个变量,分别是</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">E</span>:\ProgramFiles\python3.<span class="number">12</span>.<span class="number">5</span></span><br><span class="line"><span class="attribute">E</span>:\ProgramFiles\python3.<span class="number">12</span>.<span class="number">5</span>\Scripts</span><br></pre></td></tr></table></figure>
<p><img src="/../images/Windows%E4%B8%8B%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEPython%E7%BB%BF%E8%89%B2%E7%89%88_205123.png"></p>
<h2 id="解决pip-v-无法显示版本的问题"><a href="#解决pip-v-无法显示版本的问题" class="headerlink" title="解决pip -v 无法显示版本的问题"></a>解决pip -v 无法显示版本的问题</h2><blockquote>
<blockquote>
<blockquote>
<p>python 解释器启动一般会自动 import site ,并且调用 site.main() 。而在 Windows 的免安装绿色版中,使用了 python*.pth (这里的 * 代指版本号,比如我这次安装对应的是 python310._pth 这个文件)来指定包的位置,而通过这种方式加载 python ,是为了避免包冲突不会自动 import site。</p>
</blockquote>
</blockquote>
</blockquote>
<p>解决就是,用记事本打开python解压后目录下的<code>python312._pth</code> 这个文件,删掉如下的 <code>#</code> 即可。<br><img src="/../images/Windows%E4%B8%8B%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AEPython%E7%BB%BF%E8%89%B2%E7%89%88_205515.png"></p>
<p>至此,Python绿色版安装完成。</p>
]]></content>
<categories>
<category>编程开发</category>
</categories>
<tags>
<tag>windows</tag>
<tag>python</tag>
</tags>
</entry>
<entry>
<title>hexo安装和配置主题</title>
<url>/posts/4f786861.html</url>
<content><![CDATA[<h2 id="安装hexo"><a href="#安装hexo" class="headerlink" title="安装hexo"></a>安装hexo</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">npm install hexo-cli -g</span><br></pre></td></tr></table></figure>
<h2 id="建站"><a href="#建站" class="headerlink" title="建站"></a>建站</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">hexo init <folder></span><br><span class="line"><span class="built_in">cd</span> <folder></span><br><span class="line">npm install</span><br></pre></td></tr></table></figure>
<h2 id="主题"><a href="#主题" class="headerlink" title="主题"></a>主题</h2><h3 id="安装NexT主题"><a href="#安装NexT主题" class="headerlink" title="安装NexT主题"></a>安装<code>NexT</code>主题</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> hexo-site</span><br><span class="line">npm install hexo-theme-next</span><br></pre></td></tr></table></figure>
<h3 id="启用NexT主题"><a href="#启用NexT主题" class="headerlink" title="启用NexT主题"></a>启用NexT主题</h3><p>编辑网站根目录下的<code>_config.yml</code>,在99行左右,改成下面样子</p>
<figure class="highlight vbnet"><table><tr><td class="code"><pre><span class="line"><span class="symbol">theme:</span> <span class="keyword">next</span></span><br></pre></td></tr></table></figure>
<h3 id="设置Next主题的配置文件"><a href="#设置Next主题的配置文件" class="headerlink" title="设置Next主题的配置文件"></a>设置Next主题的配置文件</h3><p>站点根目录下执行</p>
<figure class="highlight vim"><table><tr><td class="code"><pre><span class="line"><span class="keyword">cp</span> node_modules/hexo-theme-<span class="keyword">next</span>/_config.yml _config.<span class="keyword">next</span>.yml</span><br></pre></td></tr></table></figure>
<p>以后所有修改都使用网站根目录下的<code>_config.next.yml</code>文件。</p>
<h3 id="启用categories、archives、tags、about等链接"><a href="#启用categories、archives、tags、about等链接" class="headerlink" title="启用categories、archives、tags、about等链接"></a>启用categories、archives、tags、about等链接</h3><h4 id="修改-config-next-yml文件"><a href="#修改-config-next-yml文件" class="headerlink" title="修改_config.next.yml文件"></a>修改<code>_config.next.yml</code>文件</h4><p>在第100行左右,去掉categories、archives、tags、about前面的#,保存即可。</p>
<figure class="highlight txt"><table><tr><td class="code"><pre><span class="line">menu:</span><br><span class="line"> #home: / || fa fa-home</span><br><span class="line"> categories: /categories/ || fa fa-th</span><br><span class="line"> archives: /archives/ || fa fa-archive</span><br><span class="line"> tags: /tags/ || fa fa-tags</span><br><span class="line"> about: /about/ || fa fa-user</span><br><span class="line"> #schedule: /schedule/ || fa fa-calendar</span><br><span class="line"> #sitemap: /sitemap.xml || fa fa-sitemap</span><br><span class="line"> #commonweal: /404/ || fa fa-heartbeat</span><br></pre></td></tr></table></figure>
<h4 id="添加相应的页面"><a href="#添加相应的页面" class="headerlink" title="添加相应的页面"></a>添加相应的页面</h4><p>以<code>categories</code>为例,其它几个链接对应着修改即可。<br>生成<code>categories</code>页面:</p>
<figure class="highlight haxe"><table><tr><td class="code"><pre><span class="line">hexo <span class="keyword">new</span> <span class="type">page</span> categories</span><br></pre></td></tr></table></figure>
<p>生成的页面位置:<code>网站根目录/source/categories/index.md</code><br>修改上面的<code>index.md</code>,原内容如下:</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">categories</span></span><br><span class="line"><span class="attr">date:</span> <span class="number">2021-01-25 22:37:25</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure>
<p>添加上<code>type: "categories"</code>这段代码就能让主题识别该页面为分类页面了,如下:</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">分类</span></span><br><span class="line"><span class="attr">date:</span> <span class="number">2021-01-25 22:37:25</span></span><br><span class="line"><span class="attr">type:</span> <span class="string">"categories"</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure>
<p>archives、tags、about等链接照着上述<code>categories</code>的例子来生成和修改<code>type</code>即可。</p>
<h2 id="新建文章"><a href="#新建文章" class="headerlink" title="新建文章"></a>新建文章</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">hexo n <span class="string">"my first post"</span></span><br></pre></td></tr></table></figure>
<p>文章名称中有空格,必须使用<code>" "</code>包括起来。</p>
<h2 id="生成博客"><a href="#生成博客" class="headerlink" title="生成博客"></a>生成博客</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">hexo g</span><br></pre></td></tr></table></figure>
<h2 id="本地预览"><a href="#本地预览" class="headerlink" title="本地预览"></a>本地预览</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">hexo s</span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>hexo</tag>
<tag>theme</tag>
</tags>
</entry>
<entry>
<title>hexo的永久链接设置</title>
<url>/posts/4dbd6b59.html</url>
<content><![CDATA[<p>使用<code>hexo-abbrlink</code>插件即可。</p>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">npm install hexo-abbrlink --save</span><br></pre></td></tr></table></figure>
<h2 id="设置"><a href="#设置" class="headerlink" title="设置"></a>设置</h2><p>在<code>_config.yml</code>中修改添加下面内容:</p>
<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">permalink:</span> <span class="string">posts/:abbrlink.html</span></span><br><span class="line"><span class="attr">abbrlink:</span></span><br><span class="line"> <span class="attr">alg:</span> <span class="string">crc32</span> </span><br><span class="line"> <span class="attr">rep:</span> <span class="string">hex</span> </span><br><span class="line"><span class="attr">permalink_defaults:</span></span><br><span class="line"><span class="attr">pretty_urls:</span></span><br><span class="line"> <span class="attr">trailing_index:</span> <span class="literal">false</span> <span class="comment"># Set to false to remove trailing 'index.html' from permalinks</span></span><br><span class="line"> <span class="attr">trailing_html:</span> <span class="literal">true</span> <span class="comment"># Set to false to remove trailing '.html' from permalinks</span></span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>hexo</tag>
</tags>
</entry>
<entry>
<title>hexo自动摘要设置</title>
<url>/posts/31ada5df.html</url>
<content><![CDATA[<p><code>NexT</code>主题最新版本已经不支持自动摘要设置了,需要用的第三方插件<code>hexo-abbrlink</code></p>
<h2 id="安装hexo-exerpt"><a href="#安装hexo-exerpt" class="headerlink" title="安装hexo-exerpt"></a>安装hexo-exerpt</h2><figure class="highlight ada"><table><tr><td class="code"><pre><span class="line">npm install hexo-excerpt <span class="comment">--save</span></span><br></pre></td></tr></table></figure>
<h2 id="设置hexo-excerpt"><a href="#设置hexo-excerpt" class="headerlink" title="设置hexo-excerpt"></a>设置hexo-excerpt</h2><p>在<code>hexo</code>的配置文件<code>_config.yml</code>中,加入下面的内容:</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">excerpt:</span></span><br><span class="line"> <span class="attr">depth:</span> <span class="number">5</span> </span><br><span class="line"> <span class="attr">excerpt_excludes:</span> []</span><br><span class="line"> <span class="attr">more_excludes:</span> []</span><br><span class="line"> <span class="attr">hideWholePostExcerpts:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>hexo</tag>
</tags>
</entry>
<entry>
<title>linux下vmware workstation的键盘映射问题</title>
<url>/posts/6054c7f9.html</url>
<content><![CDATA[<p>长久以来,在 Linux 使用 vmware 总是有个问题没有解决。</p>
<p>当在 Linux 里把 Ctrl 和 CapsLock 这两个键互换后,vmware 的虚拟机里并不会跟着一起换,而依旧是原来的键位。而同样的问题在 Windows 下就不存在。</p>
<p>vmware 的官方文档解释:</p>
<blockquote>
<p>Workstation Player 可通过检查当前的 X 键映射确定要使用的表。但这种决策过程有时也会失败。另外,每个映射都是固定的,不保证对任何给定的键盘和 X 按键代码-键盘符号映射都正确无误。例如,如果用户使用 xmodmap 互换 Ctrl 和 CapsLock 按键,那么在使用远程服务器时虚拟机中的按键将互换(键盘符号映射),但在使用本地服务器时将取消互换(按键代码映射)。为了修正此问题,您必须在 Workstation Player 中重新映射按键。</p>
</blockquote>
<p>也就是说,在本机上修改了键位后,远程连接到 vmware 虚拟机里是正常的,但是在本机上的虚拟机里则不能使用。</p>
<h2 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h2><p>官方给出的解决方案是:</p>
<h3 id="查看特定键位的值"><a href="#查看特定键位的值" class="headerlink" title="查看特定键位的值"></a>查看特定键位的值</h3><p>使用<code>xev</code>或者<code>xmodmap -pk</code>查看 Ctrl 和 CapsLock 的键位值</p>
<p><img src="/../images/linux%E4%B8%8Bvmware-workstation%E7%9A%84%E9%94%AE%E7%9B%98%E6%98%A0%E5%B0%84%E9%97%AE%E9%A2%98_071649.png"></p>
<p>几个常用的按键的键值如下:</p>
<ul>
<li>Left Ctrl 键值是 66</li>
<li>CapsLock 键值是 37</li>
<li>Left ALT 键值是 133</li>
<li>Left Win 键值是 64</li>
</ul>
<h3 id="查看键位对应的-V-Scan-值"><a href="#查看键位对应的-V-Scan-值" class="headerlink" title="查看键位对应的 V-Scan 值"></a>查看键位对应的 V-Scan 值</h3><p>需要到<a href="https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-D2C43B86-32EF-44EA-A2ED-D890483D70BD.html">V-Scan Code Table</a>去查看。</p>
<p>这里直接告诉大家: </p>
<ul>
<li>Left Ctrl 的值是 0x01d </li>
<li>CapsLock 的值是 0x03a</li>
<li>Left ALT 的值是 0x038</li>
<li>Left Win 的值是 0x15b</li>
</ul>
<h3 id="添加配置文件"><a href="#添加配置文件" class="headerlink" title="添加配置文件"></a>添加配置文件</h3><p>在<code>~/.vmware/config</code>(没有就新建一个)里添加如下配置:</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">xkeymap</span>.keycode.<span class="number">66</span> = <span class="number">0</span>x01d</span><br><span class="line"><span class="attribute">xkeymap</span>.keycode.<span class="number">37</span> = <span class="number">0</span>x03a</span><br></pre></td></tr></table></figure>
<p><strong>针对mac</strong>:如果你的主键盘布局是mac的,那么left alt和left win键也做了交换。此时需要仿照上面配置做相应设定:</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">xkeymap</span>.keycode.<span class="number">133</span> = <span class="number">0</span>x038</span><br><span class="line"><span class="attribute">xkeymap</span>.keycode.<span class="number">64</span> = <span class="number">0</span>x15b</span><br></pre></td></tr></table></figure>
<p>至此,工作全部完成,vmware 里的虚拟机可以使用和 Host 一样的键位设置了。</p>
<h2 id="踩过的大坑"><a href="#踩过的大坑" class="headerlink" title="踩过的大坑"></a>踩过的大坑</h2><p>这么简单的一个问题,官方文档有明确的说明了,为什么拖了好几年没解决呢?</p>
<p>主要问题有两个:</p>
<ol>
<li><p>官方的文档里说,更改健位值的两行代码,加在虚拟机配置文件里(.vmx)或者<code>~/.vmware/config</code>都可以,其实不对。这两行代码只能加在<code>~/.vmware/config</code>,加在其他地方不起作用。这个坑是长期未解决此问题的主要原因。</p>
</li>
<li><p>添加这两行配置后,必须重新启动系统,才能让修改生效。</p>
</li>
</ol>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>vmware</tag>
<tag>keyboard</tag>
</tags>
</entry>
<entry>
<title>opensuse的一些回忆和体验</title>
<url>/posts/9f386ded.html</url>
<content><![CDATA[<p><code>opensuse</code>在我心目中,一直是一个非常特别的发行版。</p>
<p>长久以来,我基本使用过所有主流的linux发行版,从最开始的尝鲜,到后来的慢慢把linux当成主力操作系统。在这个过程中,<code>openususe</code>自然也少不了要尝试。但是一方面,我对<code>opensuse</code>非常有好感,另一方面,却也是用的最少的。</p>
<h2 id="最初印象"><a href="#最初印象" class="headerlink" title="最初印象"></a>最初印象</h2><p>对opensuse最初印象来自网络宣传。当然最初它也不叫<code>opensuse</code>,好像就叫<code>suse</code>(具体大小忘记了。不过由于再次使用已经叫<code>opensuse</code>了,本文就<code>opensuse</code>和<code>suse</code>混用了)。</p>
<p>记得当时网上对它的宣传是:</p>
<ul>
<li>德国制造,严谨</li>
<li>大公司支持,企业级稳定性</li>
<li>最好的kde发行版</li>
<li>最好用的linux系统管理工具,yast</li>
</ul>
<p>在那个linux刚在中国传播的年代,redhat占据了绝对的主流。(顺便说一下,redhat9.0版本是我使用linux的启蒙发行版。)不过在当时的<code>linuxsir.org</code>论坛上已经开始出现了<code>debian</code>的小规模讨论了。<code>suse</code>有没有讨论区我记不清了,好像是<code>scim</code>的作者苏哲有在<code>suse</code>讨论区发过帖子。由于上面的宣传,我又是对于linux刚入门,到处找linux发行版尝鲜,于是也用过一段时间的<code>suse</code>。现在回想一下对它的印象,就是一个印象:<strong>平平无奇</strong>。</p>
<p>具体来说,就是没觉得yast多方便、没觉得系统稳定在哪里、没觉得kde有多漂亮,反而是因为对开源软件的过于苛刻的坚持,系统软件源少很多软件,导致安装一些常用软件很不方便。</p>
<h2 id="发展之路"><a href="#发展之路" class="headerlink" title="发展之路"></a>发展之路</h2><p>以现在的眼光来看,<code>suse</code>在中国的发展颇有些<code>命不逢时</code>的意味。举2个例子:一是redhat;二是ubuntu。</p>
<p><code>suse</code>从始至终都在宣传自己的企业级稳定性,可就是在进入中国的那几年,它被频繁收购,我印象中换了4到5次母公司。这让国内的企业怎么敢用?所以来企业级市场竞争不过redhat。</p>
<p><code>suse</code>一直有种<code>自视甚高</code>的意味,具体来说,就是一直给人<code>你爱用不用</code>、<code>用不好是你水平不行,多从自身找原因</code>的感觉。这就导致了和后来的ubuntu相比,对linux初学者毫无吸引力。</p>
<p>企业级和民用级的市场都没有发展起来,<code>suse</code>在中国的波澜不惊也就不足为奇了。</p>
<p>再拿一个和<code>suse</code>相反的例子<code>debian</code>做个对比。</p>
<p>在<code>v2ex</code>论坛上,搜索服务器用什么linux操作系统时,看看结果,基本上是centos、debian、ubuntu这三种。是的,我感觉推荐debian的比推荐ubuntu的还多。debian就是个纯开源的发行版,背后连个商业公司都没有,国内连个官方论坛都没有,为啥到了今天依然能够保持生命力?我想一个重要原因,就是2000年初那批linux爱好者,如今都是公司或者行业主力了。在需要使用linux时,自然会把当初的使用经验和印象带入到工作中,无论是个人还是公司的项目。这就是发展用户群体的重要性了。而<code>suse</code>在这方面做的确实很差。</p>
<p>by the way:说来有些搞笑,这么多年以来,我对<code>suse</code>的印象一直和2个人连系(非错别字)在一起:一个是<code>scim</code>的作者苏哲,我记得他在suse区回过我的帖子;另一个是<code>玛格丽特</code>,她的自称<code>奴家</code>让我觉得很有趣。</p>
<h2 id="当今体验"><a href="#当今体验" class="headerlink" title="当今体验"></a>当今体验</h2><p>上面说了很多<code>suse</code>的“坏话”,但文章开头我也说了,我对opensuse的印象一直不差。</p>
<p>这篇文章就是在opensuse上写的。从最初知道opensuse到现在,也就是在<code>opensuse 42</code>发布的时候用过一次,感觉和最初印象也没区别。</p>
<p>去年的时候安装过一次<code>opensuse Tumbleweed</code>,易用性有了很大的进步,顺便也多查了些资料多了解些。现在opensuse功能上变化挺大的。全面向容器化和不可变操作系统转型,默认采用btrfs。但这些功能和普通用户关系不大,我还是想等ubuntu 24.04,12年的支持让人期待。</p>
<p>那么最近为什么又装了上opensuse呢?直接原因是gnome让我很失望,具体原因是其他发行版搞不定在kde和wayland环境下fcitx5在gtk程序里无法输入的问题。</p>
<p>ubuntu 24.04挺好的,就是无法在wayland下使用fcitx5输入法。虽有解决方案,但是时灵时不灵的。</p>
<p>kubuntu 24.04就是半成品,翻译都还没弄完,历代最差的kubuntu了。</p>
<p>kde neon 同样有调出fcitx5输入法时灵时不灵的问题。</p>
<p>唯独<code>opensuse Tumbleweed</code>给了我惊喜,kde+wayland+fcitx5+chrome,不用任何多余设置,输入完全正常。最新的kde6也非常漂亮和稳定,比gnome强多了。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>现在使用linux,早已不是当初的那种心态了。</p>
<p>当时恨不得所有工作都用linux完成,现在是哪个操作系统好用用哪个。</p>
<p>现在电脑这么便宜,我常备3台台式机和2台笔记本。台式机是1台16G的m1的mac mini,1台10850k+6600xt+32G的电脑装linux,1台13700kf+3090+128G装windows玩游戏。笔记本方面1台mackbook air m1,1台华为笔记本装linux。满足所有使用场景和需求,连虚拟机都很少开了。</p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>opensuse</tag>
</tags>
</entry>
<entry>
<title>pyenv实践应用</title>
<url>/posts/4f368fa1.html</url>
<content><![CDATA[<h2 id="使用global实现python版本自动选择"><a href="#使用global实现python版本自动选择" class="headerlink" title="使用global实现python版本自动选择"></a>使用global实现python版本自动选择</h2><ol>
<li><p>分别为python2和python3创建2个虚拟环境,例如<code>py2</code>和<code>py3</code></p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">pyenv</span> virtualenv <span class="number">2</span>.<span class="number">7</span>.<span class="number">16</span> py2</span><br><span class="line"><span class="attribute">pyenv</span> virtualenv <span class="number">3</span>.<span class="number">7</span>.<span class="number">4</span> py3</span><br></pre></td></tr></table></figure>
</li>
<li><p>把<code>py2</code>和<code>py3</code>设置为<code>global</code></p>
<figure class="highlight vim"><table><tr><td class="code"><pre><span class="line">pyenv <span class="keyword">global</span> <span class="keyword">py3</span> py2</span><br></pre></td></tr></table></figure>
<p>如此设置后,当有应用需要用到python时,会先从<code>py3</code>里查找相关库和应用,如果找不到,会继续查找<code>py2</code>里的。变相实现了python版本自动选择。</p>
</li>
</ol>
<h2 id="使用local实现虚拟环境自动切换"><a href="#使用local实现虚拟环境自动切换" class="headerlink" title="使用local实现虚拟环境自动切换"></a>使用local实现虚拟环境自动切换</h2><p>以<code>sd-webui</code>为例,它要求的python版本是3.10.6</p>
<ol>
<li><p>安装和创建python 3.10.6的虚拟环境</p>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">pyenv</span> install <span class="number">3</span>.<span class="number">10</span>.<span class="number">6</span></span><br><span class="line"><span class="attribute">pyenv</span> virtualenv <span class="number">3</span>.<span class="number">10</span>.<span class="number">6</span> sd-webui</span><br></pre></td></tr></table></figure>
</li>
<li><p>新建一个目录,名称随意,比如<code>sd-webui</code>,然后指定此目录下使用的python虚拟环境是sd-webui,也就是python 3.10.6版本。</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> sd-webui</span><br><span class="line">pyenv <span class="built_in">local</span> sd-webui</span><br></pre></td></tr></table></figure>
<p>如此设置后,只要进入<code>sd-webui</code>目录,就会自动切换到<code>sd-webui</code>这个python虚拟环境,省去了手动进入虚拟环境的步骤。</p>
</li>
</ol>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>python</tag>
<tag>pyenv</tag>
</tags>
</entry>
<entry>
<title>tmux安装和设置</title>
<url>/posts/8e710f05.html</url>
<content><![CDATA[<p><code>tmux</code>可谓是Linux下的神器。一般退出远程Linux服务器后,相关的进程、文件等就一并关闭了。而<code>tmux</code>可以在远程Linux服务器上完整保留你打开的窗口、文件等内容,方便在另一台电脑上登录远程终端后继续工作。</p>
<p><code>tmux</code>设置完成后,完全可以把远程服务器当成本地电脑来使用。<code>ssh</code>登录到远程Linux服务器后,进行调试、维护、开发等工作非常方便。</p>
<p><code>tmux</code>有<code>引导键</code>(<code>prefix</code>)的概念,默认的<code>引导键</code>是<code>CTRL</code>+<code>b</code>。即需要先按下<code>CTRL</code>+<code>b</code>,再按其它按键来执行<code>tmux</code>的一些操作。</p>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><p>各大linux发行版软件仓库里自带,目前最新版本是3.0a。</p>
<p>在<code>debian</code>下:</p>
<figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">sudo apt install tmux</span><br></pre></td></tr></table></figure>
<h2 id="设置"><a href="#设置" class="headerlink" title="设置"></a>设置</h2><p>在用户主目录<code>~</code>下新建一个<code>.tmux.conf</code>文件,这也是<code>tmux</code>默认的配置文件。</p>
<h3 id="安装tpm插件管理器"><a href="#安装tpm插件管理器" class="headerlink" title="安装tpm插件管理器"></a>安装<code>tpm</code>插件管理器</h3><p><code>tpm</code>是<code>tmux</code>的插件管理器,用来安装其它的插件、主题等。地址在<a href="https://github.com/tmux-plugins/tpm">这里</a>。</p>
<ol>
<li>安装<code>tpm</code>:</li>
</ol>
<figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm</span><br></pre></td></tr></table></figure>
<ol start="2">
<li>在<code>.tmux.conf</code>中加入下面内容:</li>
</ol>
<figure class="highlight text"><table><tr><td class="code"><pre><span class="line"># change PREFIX from CTRL+B to CTRL+S</span><br><span class="line">set -g prefix C-s ## 更改引导键,使用ctrl+s替代默认的ctrl+b</span><br><span class="line"></span><br><span class="line"># Use vim key binding</span><br><span class="line">setw -g mode-keys vi ## 默认是使用emacs的按键绑定</span><br><span class="line"></span><br><span class="line">## 使用prefix + h/j/k/l在不同的pane间切换</span><br><span class="line">bind-key h select-pane -L</span><br><span class="line">bind-key j select-pane -D</span><br><span class="line">bind-key k select-pane -U</span><br><span class="line">bind-key l select-pane -R</span><br><span class="line"></span><br><span class="line">set-option -g mouse on #启用鼠标支持</span><br><span class="line"></span><br><span class="line"># List of plugins</span><br><span class="line">set -g @plugin 'tmux-plugins/tpm'</span><br><span class="line">set -g @plugin 'tmux-plugins/tmux-sensible'</span><br><span class="line"></span><br><span class="line"># dracula theme for tmux</span><br><span class="line">## install dracula theme</span><br><span class="line">set -g @plugin 'dracula/tmux'</span><br><span class="line">## dracula theme config</span><br><span class="line">set -g @dracula-plugins "ssh-session cpu-usage ram-usage time" #状态栏显示的内容</span><br><span class="line">set -g @dracula-show-flags true </span><br><span class="line">set -g @dracula-show-left-icon session # 最左侧的图标显示当前tmux session名称</span><br><span class="line">set -g @dracula-show-powerline true # 显示powerline,更美观</span><br><span class="line">set -g @dracula-time-format "%F %R" # 时间格式 </span><br><span class="line"></span><br><span class="line"># Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)</span><br><span class="line">run '~/.tmux/plugins/tpm/tpm'</span><br></pre></td></tr></table></figure>
<ol start="3">
<li>新建一个<code>tmux</code>会话<figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">tmux</span></span><br></pre></td></tr></table></figure>
然后按下<code>prefix</code>+<code>I</code>(注意,是大写的i),来安装所有插件。</li>
</ol>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>tmux</tag>
</tags>
</entry>
<entry>
<title>ubuntu24.04安装nvidia cuda和cudnn</title>
<url>/posts/14b7f016.html</url>
<content><![CDATA[<p>全新安装的ubuntu 24.04,最近安装完stable-diffusion后,在使用命令<code>./webui.sh</code>启动时报错:</p>
<figure class="highlight vbnet"><table><tr><td class="code"><pre><span class="line"><span class="symbol">RuntimeError:</span> Torch <span class="built_in">is</span> <span class="built_in">not</span> able <span class="keyword">to</span> use GPU</span><br></pre></td></tr></table></figure>
<p>经过查询得知,stable-diffusion-webui默认你已经安装好了<code>cuda</code>,而在<code>ubuntu</code>下安装完nvidia的私有驱动后,并不会安装<code>cuda</code>和<code>cudnn</code>库。</p>
<p>使用<code>nvidia-smi</code>查询,显示的<code>cuda</code>版本只是最高能兼容的版本,并不代表已经安装好<code>cuda</code>了。<br><img src="/../images/ubuntu24-04%E5%AE%89%E8%A3%85nvidia-cuda%E5%92%8Ccudnn_180939.png"></p>
<p>由此也就有了本文。</p>
<h2 id="设置nvidia官方源"><a href="#设置nvidia官方源" class="headerlink" title="设置nvidia官方源"></a>设置nvidia官方源</h2><p>使用nvidia官方安装源的方式,来在线安装nvidia 驱动、<code>cuda</code>和<code>cudnn</code>。</p>
<h3 id="安装官方源的keyring"><a href="#安装官方源的keyring" class="headerlink" title="安装官方源的keyring"></a>安装官方源的keyring</h3><figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">wget</span> https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.<span class="number">1</span>-<span class="number">1</span>_all.deb</span><br><span class="line"><span class="attribute">sudo</span> dpkg -i cuda-keyring_1.<span class="number">1</span>-<span class="number">1</span>_all.deb</span><br></pre></td></tr></table></figure>
<h3 id="安装设置官方源"><a href="#安装设置官方源" class="headerlink" title="安装设置官方源"></a>安装设置官方源</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">"deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /"</span> | sudo <span class="built_in">tee</span> /etc/apt/sources.list.d/cuda-ubuntu2404-x86_64.list</span><br></pre></td></tr></table></figure>
<h3 id="给官方源添加pin文件"><a href="#给官方源添加pin文件" class="headerlink" title="给官方源添加pin文件"></a>给官方源添加pin文件</h3><figure class="highlight awk"><table><tr><td class="code"><pre><span class="line">wget https:<span class="regexp">//</span>developer.download.nvidia.com<span class="regexp">/compute/</span>cuda<span class="regexp">/repos/u</span>buntu2404<span class="regexp">/x86_64/</span>cuda-ubuntu2404.pin</span><br><span class="line">sudo mv cuda-ubuntu2404.pin <span class="regexp">/etc/</span>apt<span class="regexp">/preferences.d/</span>cuda-repository-pin-<span class="number">600</span></span><br></pre></td></tr></table></figure>
<p>至此,nvidia官方源设置完毕</p>
<h2 id="升级nvidia驱动"><a href="#升级nvidia驱动" class="headerlink" title="升级nvidia驱动"></a>升级nvidia驱动</h2><blockquote>
<blockquote>
<blockquote>
<p>为什么要升级为官方源里nvidia驱动呢?这是因为ubuntu 24.04自带的驱动是550版本,最高支持到cuda 12.4,而nvidia官方源里的<code>cuda</code>版本是12.6。所以需要把nvidia驱动升级到官方源里的560版本以适配<code>cuda</code>版本。</p>
</blockquote>
</blockquote>
</blockquote>
<figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo</span> apt install nvidia-driver-<span class="number">560</span></span><br></pre></td></tr></table></figure>
<h2 id="安装cuda"><a href="#安装cuda" class="headerlink" title="安装cuda"></a>安装cuda</h2><figure class="highlight cmake"><table><tr><td class="code"><pre><span class="line">sudo apt <span class="keyword">install</span> cuda-toolkit</span><br></pre></td></tr></table></figure>
<h2 id="安装-cudnn"><a href="#安装-cudnn" class="headerlink" title="安装 cudnn"></a>安装 cudnn</h2><figure class="highlight apache"><table><tr><td class="code"><pre><span class="line"><span class="attribute">sudo</span> apt install cudnn-cuda-<span class="number">12</span></span><br></pre></td></tr></table></figure>
<p>至此,nvidia驱动、cuda以及cudnn安装完毕。</p>
<h2 id="测试cuda是否正常"><a href="#测试cuda是否正常" class="headerlink" title="测试cuda是否正常"></a>测试cuda是否正常</h2><h3 id="查询设备信息"><a href="#查询设备信息" class="headerlink" title="查询设备信息"></a>查询设备信息</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/NVIDIA/cuda-samples.git</span><br><span class="line"><span class="built_in">cd</span> ./cuda-samples/Samples/1_Utilities/deviceQuery</span><br><span class="line">make</span><br><span class="line">./deviceQuery</span><br></pre></td></tr></table></figure>
<p>输出如下:<br><img src="/../images/ubuntu24-04%E5%AE%89%E8%A3%85nvidia-cuda%E5%92%8Ccudnn_182751.png"></p>
<h3 id="测试带宽"><a href="#测试带宽" class="headerlink" title="测试带宽"></a>测试带宽</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/cuda-samples/Samples/1_Utilities/bandwidthTest</span><br><span class="line">make</span><br><span class="line">./bandwidthTest</span><br></pre></td></tr></table></figure>
<p>输出如下:<br><img src="/../images/ubuntu24-04%E5%AE%89%E8%A3%85nvidia-cuda%E5%92%8Ccudnn_182910.png"></p>
]]></content>
<categories>
<category>编程开发</category>
</categories>
<tags>
<tag>ubuntu</tag>
<tag>nvidia</tag>
<tag>cuda</tag>
<tag>cudnn</tag>
</tags>
</entry>
<entry>
<title>修改Edge浏览器的页面滚动模式</title>
<url>/posts/b2d3978.html</url>
<content><![CDATA[<p>作为多年chrome用户,初次上手edge时,对它默认的页面滚动模式非常不适应</p>
<p>简单来说,就是在edge里,当页面上/下滚动结束时,并不会立即停止,而是再滑动那么一下,并没有chrome里那种“跟手感”。</p>
<p>而造成的后果就是,我的眼睛感觉都要被晃花了,非常难受。</p>
<p>edge提供了修改方式,可以改成跟chrome一样的滚动模式。</p>
<h2 id="修改方法"><a href="#修改方法" class="headerlink" title="修改方法"></a>修改方法</h2><p>在地址栏里输入<code>edge://flags</code>,搜索<code>Windows Scrolling Personality</code>,把它的值从<code>Default</code>改成<code>Disabled</code>即可。<br><img src="/../images/%E4%BF%AE%E6%94%B9Edge%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E9%A1%B5%E9%9D%A2%E6%BB%9A%E5%8A%A8%E6%A8%A1%E5%BC%8F_091007.png"></p>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>Edge</tag>
</tags>
</entry>
<entry>
<title>修改日版MacbookPro的键盘为英文键盘布局</title>
<url>/posts/2c9a14c8.html</url>
<content><![CDATA[<p>日文键盘的MacbookPro最主要的问题有两个:</p>
<ol>
<li>日常使用时,特殊符号的位置和英文键盘不一样,比如@,需要重新适应。</li>
<li>远程连接虚拟机或vps后,本机的日语键盘和远程电脑一般默认的英文键盘存在冲突。这会导致在编辑文件或输入密码时,实际输入的内容和你以为输入的内容不一致。</li>
</ol>
<p>如果只是第1个问题倒是还好,适应一番就行了。</p>
<p>但是第2个问题可太要命了,总不能把所有的远程电脑都改成日语键盘吧?先不说麻烦的问题,真要是改了,别人连接后该怎么办呢?</p>
<p>所以最佳方案,还是把MacbookPro的日语键盘改成英文键盘。</p>
<p>所幸的是,无论在外观上还是功能上,现在都已经可以完美实现了。</p>
<h2 id="外观修改"><a href="#外观修改" class="headerlink" title="外观修改"></a>外观修改</h2><p>上某宝上搜索日文键盘修正贴,25元左右,帖上即可。</p>
<h2 id="功能修改"><a href="#功能修改" class="headerlink" title="功能修改"></a>功能修改</h2><h3 id="安装karabiner-elements"><a href="#安装karabiner-elements" class="headerlink" title="安装karabiner-elements"></a>安装karabiner-elements</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">brew install karabiner-elements</span><br></pre></td></tr></table></figure>
<h3 id="修改键盘类型"><a href="#修改键盘类型" class="headerlink" title="修改键盘类型"></a>修改键盘类型</h3><p>打开karabiner-elements,在<code>Vitual keyboard</code>里,把键盘改成<code>ANSI</code>:<br><img src="/../images/%E4%BF%AE%E6%94%B9%E6%97%A5%E7%89%88MacbookPro%E7%9A%84%E9%94%AE%E7%9B%98%E4%B8%BA%E8%8B%B1%E6%96%87%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80_185035.png"></p>
<h3 id="添加规则"><a href="#添加规则" class="headerlink" title="添加规则"></a>添加规则</h3><p>访问<a href="https://ke-complex-modifications.pqrs.org/">Karabiner-Elements complex_modifications rules</a>,输入<code>jis ansi</code>,找到下图的规则,点击<code>Import</code><br><img src="/../images/%E4%BF%AE%E6%94%B9%E6%97%A5%E7%89%88MacbookPro%E7%9A%84%E9%94%AE%E7%9B%98%E4%B8%BA%E8%8B%B1%E6%96%87%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80_185115.png"></p>
<h3 id="启用规则"><a href="#启用规则" class="headerlink" title="启用规则"></a>启用规则</h3><p>打开karabiner-elements,选择Complex Modifications,右侧最下方点击Add rule,找到上面导入的规则,选择Enable All<br><img src="/../images/%E4%BF%AE%E6%94%B9%E6%97%A5%E7%89%88MacbookPro%E7%9A%84%E9%94%AE%E7%9B%98%E4%B8%BA%E8%8B%B1%E6%96%87%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80_185127.png"><br><img src="/../images/%E4%BF%AE%E6%94%B9%E6%97%A5%E7%89%88MacbookPro%E7%9A%84%E9%94%AE%E7%9B%98%E4%B8%BA%E8%8B%B1%E6%96%87%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80_185135.png"></p>
<h3 id="关于-这个符号"><a href="#关于-这个符号" class="headerlink" title="关于`这个符号"></a>关于`这个符号</h3><p>当键盘类型使用JIS时,使用上面的规则,此符号位于+右侧,DEL键的左侧。</p>
<p>当把日文键盘从JIS改成ANSI后,使用上面规则,此符号并没有对应的位置,需要我们手动添加。</p>
<p>看不懂没关系,照着下面做就行了。</p>
<p>这个键,对应的键值是international3,按照下图操作:<br><img src="/../images/%E4%BF%AE%E6%94%B9%E6%97%A5%E7%89%88MacbookPro%E7%9A%84%E9%94%AE%E7%9B%98%E4%B8%BA%E8%8B%B1%E6%96%87%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80_185153.png"></p>
<p>至此,日文键盘就完美修改成英文键盘布局了。</p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>MacOS</tag>
<tag>keyboard</tag>
</tags>
</entry>
<entry>
<title>关闭MacOS的Microsoft AutoUpdate弹框</title>
<url>/posts/1f130e88.html</url>
<content><![CDATA[<p>安装完<code>Microsoft Office</code>后,mac电脑会安装一个<code>Microsoft AutoUpdate</code>的程序。作用也很简单,就是检查微软的offcie是否有升级。</p>
<p>这个功能理应都好的,但是有个问题:这个升级提示太烦人了,时不进就跳出来,一天检查18遍还多。</p>
<p>还是关了吧。</p>
<h2 id="关闭升级提示"><a href="#关闭升级提示" class="headerlink" title="关闭升级提示"></a>关闭升级提示</h2><p>使用快捷键:command(⌘)+⇧+G,或者顶部菜单,选择前往——前往文件夹</p>
<p>输入<code>/Library/Application Support/Microsoft</code><br>删除<code>MAU2.0</code>文件夹,或者把<code>MAU2.0</code>文件里的<code>icrosoft AutoUpdate</code>删除也可以。</p>
<p>这样就没有烦人的升级提示了。</p>
<p><img src="/../images/%E5%85%B3%E9%97%ADMacOS%E7%9A%84Microsoft-AutoUpdate%E5%BC%B9%E6%A1%86_192519.png"></p>
]]></content>
<categories>
<category>操作系统</category>
</categories>
<tags>
<tag>MacOS</tag>
<tag>windows</tag>
</tags>
</entry>
<entry>
<title>各个bbr加速脚本速度对比</title>
<url>/posts/934677ea.html</url>
<content><![CDATA[<p>网上有关于bbr各个加速脚本的速度测试和总结,现把总结直接放上:</p>
<table>
<thead>
<tr>
<th>选择脚本</th>
<th>内核</th>
<th>网速</th>
<th>加速效果</th>
</tr>
</thead>
<tbody><tr>
<td>默认cubic</td>
<td>3.10</td>
<td>174.3MB/s</td>
<td>★★</td>
</tr>
<tr>
<td>秋水逸冰BBR(BBR+FQ)</td>
<td>5.9.8</td>
<td>173.3MB/s</td>
<td>★★★★</td>
</tr>
<tr>
<td>BBR+CAKE</td>
<td>5.9.6</td>
<td>170.0MB/s</td>
<td>★★★★☆</td>
</tr>
<tr>
<td>BBR PLUS+FQ</td>
<td>4.14.129</td>
<td>142.7MB/s</td>
<td>★★★★</td>
</tr>
<tr>
<td>BBR2+FQ+ECN</td>
<td>5.4.0-rc6</td>
<td>180.7MB/s</td>
<td>★★★☆</td>
</tr>
<tr>
<td>BBR2+CAKE+ECN</td>
<td>5.4.0-rc6</td>
<td>181.3MB/s</td>
<td>★★★☆</td>
</tr>
</tbody></table>
<p>从上面结果可以看出:</p>
<ol>
<li>BBR2的话建议不要安装,毕竟稳定性有些不足。</li>
<li>建议选择BBR+FQ或者BBR+CAKE。</li>
</ol>
<p>原文连接在<a href="https://www.zmrbk.com/2023/11/%E4%B8%80%E5%9B%BE%E8%AF%BB%E6%87%82bbr-bbr-plus-bbr2%E5%8A%A0%E9%80%9F%E6%96%B9%E5%BC%8F%E5%8C%BA%E5%88%AB.html">这里</a></p>
]]></content>
<categories>
<category>网络相关</category>
</categories>
<tags>
<tag>bbr</tag>
</tags>
</entry>
<entry>
<title>在Ubuntu24.04上运行Qwen2.5大模型</title>
<url>/posts/ee4a21e9.html</url>
<content><![CDATA[<h2 id="思路:"><a href="#思路:" class="headerlink" title="思路:"></a>思路:</h2><ul>
<li>使用<code>ollama</code>安装运行各种大模型,这里选择的是<code>Qwen2.5</code></li>
<li>使用<code>Open WebUI</code>作为前端聊天界面</li>
<li>整个后端和前端使用一个<code>docker compose</code>文件来安装、控制</li>
</ul>
<h2 id="运行环境"><a href="#运行环境" class="headerlink" title="运行环境"></a>运行环境</h2><p>OS : Ubuntu24.04<br>CPU : 13700k<br>显卡 :RTX3090 24G显存</p>
<h2 id="项目地址:"><a href="#项目地址:" class="headerlink" title="项目地址:"></a>项目地址:</h2><p>使用的是<a href="https://github.com/valiantlynx/ollama-docker">这个github项目库</a></p>
<h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><ul>
<li>看<a href="https://lethescap.com/posts/e1db731e.html">这篇文章</a>,在ubuntu下安装好docker</li>
<li>看<a href="https://lethescap.com/posts/14b7f016.html">这篇文章</a>,在Ubuntu下安装好nvidia显卡驱动、cuda和cudnn</li>
</ul>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><h3 id="安装nvidia-container-toolkit"><a href="#安装nvidia-container-toolkit" class="headerlink" title="安装nvidia container toolkit"></a>安装nvidia container toolkit</h3><figure class="highlight axapta"><table><tr><td class="code"><pre><span class="line">sudo apt update</span><br><span class="line">sudo apt install -y nvidia-<span class="built_in">container</span>-toolkit</span><br></pre></td></tr></table></figure>
<h3 id="克隆项目库"><a href="#克隆项目库" class="headerlink" title="克隆项目库"></a>克隆项目库</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/valiantlynx/ollama-docker.git</span><br><span class="line"><span class="built_in">cd</span> ollama-docker</span><br></pre></td></tr></table></figure>
<p>此项目库里有2个<code>docker compose</code>文件:</p>
<ul>
<li>docker-compose-ollama-gpu.yaml</li>
<li>docker-compose.yml</li>
</ul>
<p><code>docker-compose.yml</code>文件是没有GPU加速功能的,把它删除掉,并且把<code>docker-compose-ollama-gpu.yaml</code>这个文件改名为<code>docker-compose.yml</code>。</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">rm</span> docker-compose.yml</span><br><span class="line"><span class="built_in">mv</span> docker-compose-ollama-gpu.yaml docker-compose.yml</span><br></pre></td></tr></table></figure>
<h3 id="运行docker"><a href="#运行docker" class="headerlink" title="运行docker"></a>运行docker</h3><figure class="highlight ebnf"><table><tr><td class="code"><pre><span class="line"><span class="attribute">docker-compose up -d</span></span><br></pre></td></tr></table></figure>
<p>这样,会自动下载<code>ollama</code>和<code>Open WebUI</code>。</p>
<p>安装完成后,打开<a href="http://localhost:8000/">http://localhost:8000</a>,并进行后续设置</p>
<h2 id="设置Open-WebUI"><a href="#设置Open-WebUI" class="headerlink" title="设置Open WebUI"></a>设置Open WebUI</h2><p>点击右上角图标,选择管理员面板<br><img src="/../images/%E5%9C%A8Ubuntu24-04%E4%B8%8A%E8%BF%90%E8%A1%8CQwen2-5%E5%A4%A7%E6%A8%A1%E5%9E%8B_072841.png"></p>
<p>选择设置–模型<br><img src="/../images/%E5%9C%A8Ubuntu24-04%E4%B8%8A%E8%BF%90%E8%A1%8CQwen2-5%E5%A4%A7%E6%A8%A1%E5%9E%8B_073020.png"></p>
<p>在<code>从 Ollama.com 拉取一个模型</code>里,输入<code>qwen2.5:32b</code>,这样会自动下载模型。</p>
<blockquote>
<blockquote>
<blockquote>
<p>为什么要选择<code>qwen2.5:32b</code>这个模型呢?是因为32b的大小20G,正好在 RTX 3090 24G显存的范围内。而且经我实测,效果非常好。</p>
</blockquote>
</blockquote>
</blockquote>
<p>通过<code>docker compose</code>这种方式安装,已经设置好了,可以从局域网内其它电脑上访问服务,这一点很方便。</p>
<p>至此,所有工作都已完成,愉快的和AI模型对话吧。</p>
]]></content>
<categories>
<category>编程开发</category>
</categories>
<tags>
<tag>ubuntu</tag>
<tag>docker</tag>
<tag>AI</tag>
</tags>
</entry>
<entry>
<title>在ubuntu 24.04上安装vmware workstation 17.5.2</title>
<url>/posts/7d0c9221.html</url>
<content><![CDATA[<h3 id="下载vmware内核补丁"><a href="#下载vmware内核补丁" class="headerlink" title="下载vmware内核补丁"></a>下载vmware内核补丁</h3><p>虽然是17.5.1版本的,但经实测,完全兼容17.5.2</p>
<figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-17.5.1.tar.gz</span><br></pre></td></tr></table></figure>
<h3 id="解压文件"><a href="#解压文件" class="headerlink" title="解压文件"></a>解压文件</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">tar -xzf workstation-17.5.1.tar.gz</span><br></pre></td></tr></table></figure>
<h3 id="进入解压后的文件目录"><a href="#进入解压后的文件目录" class="headerlink" title="进入解压后的文件目录"></a>进入解压后的文件目录</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> vmware-host-modules-workstation-17.5.1/</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h3 id="打包需要的内容"><a href="#打包需要的内容" class="headerlink" title="打包需要的内容"></a>打包需要的内容</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">tar -cf vmmon.tar vmmon-only/</span><br><span class="line">tar -cf vmnet.tar vmnet-only/</span><br></pre></td></tr></table></figure>
<h3 id="把打包后的文件拷贝到对应的位置"><a href="#把打包后的文件拷贝到对应的位置" class="headerlink" title="把打包后的文件拷贝到对应的位置"></a>把打包后的文件拷贝到对应的位置</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">sudo <span class="built_in">cp</span> -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/</span><br></pre></td></tr></table></figure>
<h3 id="开始编译需要的vmware内核组件"><a href="#开始编译需要的vmware内核组件" class="headerlink" title="开始编译需要的vmware内核组件"></a>开始编译需要的vmware内核组件</h3><figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">sudo vmware-modconfig --console --install-all</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>vmware</tag>
</tags>
</entry>
<entry>
<title>在vscode里配置hexo粘贴图片</title>
<url>/posts/8e4647c9.html</url>
<content><![CDATA[<p><code>hexo</code>博客是部署在<code>github</code>上的,除了域名花钱买的,其它所有资源都是用的免费的。图床当然也是如此。</p>
<p>使用<code>hexo</code>写博客,尤其是技术类的,难免要用到配图,俗话说:<strong>一图胜千言</strong>。因此有一个方便易用的图片插入方式就很重要了。</p>
<p>下面介绍使用<code>vscode</code>管理<code>hexo</code>博客时,如何方便的插图。</p>
<h2 id="安装插件Paste-Image"><a href="#安装插件Paste-Image" class="headerlink" title="安装插件Paste Image"></a>安装插件Paste Image</h2><p><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_173659.png"></p>
<p>这个插件功能很简单,就是向文章里插入图片,却有着43万的下载量,说明确实好用。经我实测,也的确好用。</p>
<h2 id="配置Paste-Image"><a href="#配置Paste-Image" class="headerlink" title="配置Paste Image"></a>配置Paste Image</h2><p>首先说明,我的博客图片组织形式如下:</p>
<figure class="highlight ada"><table><tr><td class="code"><pre><span class="line">blog</span><br><span class="line"><span class="comment">-- source</span></span><br><span class="line"><span class="comment">---- _post (存放md文档)</span></span><br><span class="line"><span class="comment">---- images (存放图片)</span></span><br></pre></td></tr></table></figure>
<p>也就是把所有图片保存在<code>source</code>目录下的<code>images</code>文件夹里。</p>
<p>有两种设置方式:</p>
<h3 id="全局设置"><a href="#全局设置" class="headerlink" title="全局设置"></a>全局设置</h3><p>设置开关:<br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_174518.png"><br>需要设置的地方有4个,直接看图吧<br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_174611.png"><br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_174629.png"><br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_174648.png"><br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_174713.png"></p>
<h3 id="工作区设置"><a href="#工作区设置" class="headerlink" title="工作区设置"></a>工作区设置</h3><p>优点是只影响当前工作区,不影响别的地方;缺点是无法使用<code>vscode</code>自带的设置同步功能。</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="string">"settings"</span>: {</span><br><span class="line"> <span class="string">"pasteImage.basePath"</span>: <span class="string">"<span class="variable">${projectRoot}</span>/source/_post"</span>, </span><br><span class="line"> <span class="string">"pasteImage.path"</span>: <span class="string">"<span class="variable">${projectRoot}</span>/source/images"</span>,</span><br><span class="line"> <span class="string">"pasteImage.namePrefix"</span>: <span class="string">"<span class="variable">${currentFileNameWithoutExt}</span>_"</span>,</span><br><span class="line"> <span class="string">"pasteImage.defaultName"</span>: <span class="string">"HHmmss"</span></span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<p>可以看出来,其实只是把图形界面里配置的内容,写成了配置文件的形式。</p>
<h2 id="效果"><a href="#效果" class="headerlink" title="效果"></a>效果</h2><p>按下<code>Ctrl</code>+<code>Alt</code>+<code>v</code>后,自动做了几件事:</p>
<ul>
<li>把图片存在在<code>source下</code>的<code>images</code>目录里。</li>
<li>自动在博客里插入图片链接</li>
<li>插入的图片名称是当前文章名+插入时间。</li>
</ul>
<p>上面的第3点很重要,即保障了图片将来的区分和管理方便,又保障了同一博客里图片名称的唯一性。<br>具体效果看图:<br><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_175306.png"></p>
<p><img src="/../images/%E5%9C%A8vscode%E9%87%8C%E9%85%8D%E7%BD%AEhexo%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87_175341.png"></p>
<h2 id="给文章配图的工作流"><a href="#给文章配图的工作流" class="headerlink" title="给文章配图的工作流"></a>给文章配图的工作流</h2><p>可以安装一个软件叫<code>snipaste</code>,然后就可以:</p>
<p><code>F1</code>截图–><code>Ctrl</code>+<code>c</code>复制图片->vscode里<code>Ctrl</code>+<code>Alt</code>_<code>v</code>粘贴图片。</p>
<p>非常的方便和流畅。</p>
]]></content>
<categories>
<category>软件应用</category>
</categories>
<tags>
<tag>hexo</tag>
<tag>vscode</tag>
<tag>markdown</tag>
</tags>
</entry>
<entry>
<title>成都印象</title>
<url>/posts/33049aaa.html</url>
<content><![CDATA[<blockquote>
<p>很久之前写的一篇文章,写于2018年9月25日。搬到这里,以作纪念。<br>另,第一次去成都,原来已经是5年之前了,感慨万千。</p>
</blockquote>
<p><img src="/../images/%E6%88%90%E9%83%BD%E5%8D%B0%E8%B1%A1_091747.png"><br>因为工作的关系,前些天去成都出差一个星期。</p>
<p>这是我第一次来成都。俗话说,“少不入川,老不出蜀”,对于成都这座城市,有太多的内容可以书写。</p>