From 6673bbc9c25edc79a8aefa65073eb90ca997a8a5 Mon Sep 17 00:00:00 2001 From: lyq <1661898579@qq.com> Date: Wed, 15 May 2024 00:47:31 +0800 Subject: [PATCH] add blogs pages --- src/pages/index.astro | 13 ++ src/pages/posts/blogs/02.更多/99.友情链接.md | 48 ------- src/pages/posts/blogs/03.关于/01.关于.md | 30 ----- .../20200103123203.jpg | Bin .../Apifox-860x320.ic7tz1417sw.png | Bin src/pages/posts/blogs/关于/关于.md | 35 +++++ .../17Yizy52PBMZarL.png | Bin .../2ra5ycmElG4OLwo.png | Bin .../3989f49d21f44a0fa06e1d39c9cc8e5d.png | Bin .../3TX1Jiphz5MGHKA.png | Bin .../7Hj84ignasekXy2.png | Bin .../8cWuBzF4XeAjdE2.gif | Bin .../HmnCUGIAvLfJKz1.gif | Bin .../LwG8sKiVemIpqJn.gif | Bin .../Md9EaDczrFWtxhU.gif | Bin .../OyXFgwLKNa3uRWY.png | Bin .../PYVEjWmMy6tkqdQ.png | Bin .../VbXLmk2Ox9dScW3.png | Bin .../WoaDQnP7rtGB2vq.png | Bin .../aZTwu1gLAJKOe6S.png | Bin .../bToElJW8qcFCBVn.png | Bin .../bYGImLQAe6NnvB9.png | Bin .../hAaxqHEBoZJrYeg.png | Bin .../iWhrt48meZqUJPF.png | Bin .../ns3XE8fithJSgc6.png | Bin .../rA2KMziYGCTq367.gif | Bin .../y6IwrJAGpq4uSFj.png | Bin .../c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg | Bin .../image-20220327214647589.png | Bin .../image-20220327214714185.png | Bin .../image-20220327214738686.png | Bin .../image-20220327214803763.png | Bin .../image-20220327214826902.png | Bin .../image-20220327215012755.png | Bin .../image-20220327215920733.png | Bin .../image-20220327220014288.png | Bin .../image-20220327220033227.png | Bin .../image-20220327220111908.png | Bin .../image-20220327220210074.png | Bin .../image-20220327220253195.png | Bin .../image-20220327220315921.png | Bin .../image-20220327220701475.png | Bin .../image-20220327220724315.png | Bin .../image-20220327220810610.png | Bin .../image-20220327220839595.png | Bin .../image-20220327220903701.png | Bin .../image-20220327220934315.png | Bin .../image-20220327221004603.png | Bin .../image-20220327221037201.png | Bin .../image-20220327221100245.png | Bin .../image-20220327221142426.png | Bin .../image-20220327221206970.png | Bin .../C语言/从汇编角度看C语言-1.md} | 96 +++++++------- .../C语言/写C语言的种种工具.md} | 3 +- .../GO语言/Go语言极限入门.md} | 116 ++++++++--------- .../image-20220419101405456.png | Bin .../Linux/Linux笔记-信号.md} | 50 +++---- .../Linux/Linux笔记-文件I-O.md} | 11 +- .../Linux/Linux笔记-进程.md} | 53 ++++---- .../20220320105749.png | Bin .../image-20220320093722657.png | Bin .../image-20220320095118775.png | Bin .../image-20220320095155376.png | Bin .../image-20220320095200261.png | Bin .../image-20220320100348242.png | Bin .../image-20220320100405899.png | Bin .../image-20220320100449488.png | Bin .../image-20220320101157474.png | Bin .../image-20220320101227035.png | Bin .../image-20220320101434997.png | Bin .../image-20220320101454081.png | Bin .../image-20220320101504852.png | Bin .../image-20220320101732493.png | Bin .../image-20220320101745292.png | Bin .../image-20220320101820792.png | Bin .../image-20220320101824816.png | Bin .../image-20220320101844194.png | Bin .../image-20220320101854044.png | Bin .../image-20220320102217610.png | Bin .../image-20220320102222415.png | Bin .../image-20220320102302686.png | Bin .../image-20220320102333633.png | Bin .../image-20220320102355312.png | Bin .../image-20220320102440403.png | Bin .../image-20220320102453240.png | Bin .../image-20220320103210374.png | Bin .../image-20220320103621058.png | Bin .../image-20220320105413049.png | Bin .../image-20220320105426083.png | Bin .../20220320105749.png | Bin .../7cb86c73b9e73893e6b0e0433d476928.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png | Bin .../signal-10.png | Bin .../signal-11.png | Bin .../signal-12.png | Bin .../signal-13.png | Bin .../signal-14.png | Bin .../signal-15.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png | Bin .../dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png | Bin .../20220320105749.png | Bin .../process-1.png | Bin .../process-10.png | Bin .../process-11.png | Bin .../process-12.png | Bin .../process-13.png | Bin .../process-14.png | Bin .../process-15.png | Bin .../process-16.png | Bin .../process-17.png | Bin .../process-18.png | Bin .../process-19.png | Bin .../process-2.png | Bin .../process-20.png | Bin .../process-21.png | Bin .../process-22.png | Bin .../process-3.png | Bin .../process-4.png | Bin .../process-5.png | Bin .../process-6.png | Bin .../process-7.png | Bin .../process-8.png | Bin .../process-9.png | Bin .../Python/Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md} | 53 ++++---- .../Python/Python爬虫实战-获取王者荣耀英雄大全.md} | 62 ++++----- .../006ARE9vgy1fwemc30vd5j303y052q2r.jpg | Bin .../crawler-l6-8-2019111.png | Bin .../data-mining.png | Bin .../python-wzry-1.png | Bin .../python-wzry-10.png | Bin .../python-wzry-11.png | Bin .../python-wzry-12.png | Bin .../python-wzry-13.png | Bin .../python-wzry-14.png | Bin .../python-wzry-15.png | Bin .../python-wzry-16.png | Bin .../python-wzry-17.png | Bin .../python-wzry-18.png | Bin .../python-wzry-19.png | Bin .../python-wzry-2.png | Bin .../python-wzry-21.png | Bin .../python-wzry-22.png | Bin .../python-wzry-23.png | Bin .../python-wzry-24.png | Bin .../python-wzry-25.png | Bin .../python-wzry-26.png | Bin .../python-wzry-28.png | Bin .../python-wzry-29.png | Bin .../python-wzry-3.png | Bin .../python-wzry-4.png | Bin .../python-wzry-5.png | Bin .../python-wzry-6.png | Bin .../python-wzry-7.png | Bin .../python-wzry-8.png | Bin .../python-wzry-9.png | Bin .../data-mining.png | Bin .../python-spider-1.png | Bin .../python-spider-2.png | Bin .../python-spider-3.png | Bin .../python-spider-4.png | Bin .../python-spider-5.png | Bin .../python-spider-6.png | Bin .../python-spider-7.png | Bin .../python-spider-8.png | Bin .../python-spider-9.png | Bin src/pages/posts/blogs/更多/99.友情链接.md | 51 ++++++++ .../20200122153807.jpg | Bin .../4J9NfH1UZD3sz5I.png | Bin .../DoEH51Nj97Ah64a.png | Bin .../VjBGkQ6c58vH4l9.png | Bin .../82707d577b914020b54384a615b0676e/avatar.png | Bin .../82707d577b914020b54384a615b0676e/cimoccn.png | Bin .../20220330205540.png | Bin .../image-20220330191552434.png | Bin .../image-20220330191605526.png | Bin .../image-20220330194322408.png | Bin .../image-20220330194354839.png | Bin .../image-20220330194426456.png | Bin .../image-20220330194453624.png | Bin .../image-20220330194516902.png | Bin .../image-20220330194547967.png | Bin .../image-20220330194610223.png | Bin .../image-20220330194630302.png | Bin .../image-20220330194659075.png | Bin .../image-20220330194742864.png | Bin .../image-20220330194805471.png | Bin .../image-20220330194831295.png | Bin .../image-20220330194855414.png | Bin .../image-20220330194913160.png | Bin .../image-20220330195111975.png | Bin .../image-20220330195134746.png | Bin .../image-20220330195213303.png | Bin .../image-20220330195242736.png | Bin .../image-20220330195316160.png | Bin .../image-20220330195408233.png | Bin .../image-20220330195423616.png | Bin .../image-20220330195523647.png | Bin .../image-20220330195541775.png | Bin .../image-20220330195559752.png | Bin .../image-20220330195619070.png | Bin .../image-20220330195637768.png | Bin .../image-20220330201027856.png | Bin .../image-20220330203752439.png | Bin .../image-20220330203833874.png | Bin .../image-20220330203859800.png | Bin .../image-20220330204000672.png | Bin .../image-20220330204030266.png | Bin .../image-20220330204302596.png | Bin .../image-20220330204327843.png | Bin .../image-20220330204357729.png | Bin .../image-20220330204421684.png | Bin .../image-20220330204448123.png | Bin .../image-20220330204510290.png | Bin .../image-20220330204531250.png | Bin .../image-20220330204958834.png | Bin .../image-20220330205025475.png | Bin .../image-20220330205052442.png | Bin .../image-20220330205126602.png | Bin .../3R1HVIyfDLmTbdg.gif | Bin .../8cWuBzF4XeAjdE2.gif | Bin .../TedcPw8KplHf2IY.gif | Bin .../WIliEaTm82ZBFGN.gif | Bin .../image-20211025203252544.png | Bin .../image-20211025203716083.png | Bin .../image-20211025204559387.png | Bin .../image-20211025205452863.png | Bin .../image-20211025211048557.png | Bin .../image-20211025212005574.png | Bin .../image-20211026153545952.png | Bin .../image-20211026153649933.png | Bin .../image-20211026153717317.png | Bin .../image-20211027193202773.png | Bin .../lUJINBQbGVD87c4.gif | Bin .../35fac4da06bf4822880f4412473dee9f/normal.png | Bin .../35fac4da06bf4822880f4412473dee9f/try-code.png | Bin .../u7QD2qsrLR3YUeb.gif | Bin .../vscode-command.gif | Bin .../vscode-copy-by-line.gif | Bin .../35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif | Bin .../vscode-multi-cursor-.gif | Bin .../vscode-new-file.gif | Bin .../vscode-suggest.gif | Bin .../0cffb62a9bd44a8794e39b8204af3c3c.jpg | Bin .../1752ab3dc7184f5cb69d4c76f743ba0e.jpg | Bin .../20220312212521.png | Bin .../20220312213204.png | Bin .../20220312214337.png | Bin .../20220312214440.png | Bin .../20220312214619.png | Bin .../20220312214716.png | Bin .../2a79fe27baf444f18c22804cedcd1f92.png | Bin .../449e3766442942fd900d42257d98a143.png | Bin .../58769db089e54955afcda8adbda96706.jpg | Bin .../5ddecb4846354f308fd6b4402c24ef44.png | Bin .../93LwmCW57GOt2lh.png | Bin .../b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png | Bin .../b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png | Bin .../a19adc7c1f1644cab755c52557b6c39d.png | Bin .../ad53676ed8604c47bdfc11626c82bf8d.png | Bin .../b709751067bc4bf0ae6c7d47faa5507d.jpg | Bin .../bdc30a798d5f400dbc7cadd4212fcdae.png | Bin .../c44da6e39be844a7880a8933b2a8d3d6.png | Bin .../c5289004de6d4fc2bcb88eda253d2586.png | Bin .../b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png | Bin .../b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png | Bin .../学习/vscode操作指北.md} | 11 +- .../学习/寝室软路由记录.md} | 11 +- .../学习/逆向工程小实战.md} | 122 +++++++++--------- .../{00.目录页/01.技术.md => 目录页/技术.md} | 0 .../{00.目录页/02.更多.md => 目录页/更多.md} | 0 276 files changed, 394 insertions(+), 371 deletions(-) delete mode 100644 src/pages/posts/blogs/02.更多/99.友情链接.md delete mode 100644 src/pages/posts/blogs/03.关于/01.关于.md rename src/pages/posts/blogs/{03.关于 => 关于}/assets/c64060e53bc042129a4782947549ce1d/20200103123203.jpg (100%) rename src/pages/posts/blogs/{03.关于 => 关于}/assets/c64060e53bc042129a4782947549ce1d/Apifox-860x320.ic7tz1417sw.png (100%) create mode 100644 src/pages/posts/blogs/关于/关于.md rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/17Yizy52PBMZarL.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/2ra5ycmElG4OLwo.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/3989f49d21f44a0fa06e1d39c9cc8e5d.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/3TX1Jiphz5MGHKA.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/7Hj84ignasekXy2.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/8cWuBzF4XeAjdE2.gif (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/HmnCUGIAvLfJKz1.gif (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/LwG8sKiVemIpqJn.gif (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/Md9EaDczrFWtxhU.gif (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/OyXFgwLKNa3uRWY.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/PYVEjWmMy6tkqdQ.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/VbXLmk2Ox9dScW3.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/WoaDQnP7rtGB2vq.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/aZTwu1gLAJKOe6S.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/bToElJW8qcFCBVn.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/bYGImLQAe6NnvB9.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/hAaxqHEBoZJrYeg.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/iWhrt48meZqUJPF.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/ns3XE8fithJSgc6.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/rA2KMziYGCTq367.gif (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/994555a5411c427da8f39428f49b12fb/y6IwrJAGpq4uSFj.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215920733.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220014288.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220033227.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220111908.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220210074.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220315921.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220724315.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言 => 技术/C语言}/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png (100%) rename src/pages/posts/blogs/{01.技术/01.C语言/01.从汇编角度看C语言-1.md => 技术/C语言/从汇编角度看C语言-1.md} (63%) rename src/pages/posts/blogs/{01.技术/01.C语言/04.写C语言的种种工具.md => 技术/C语言/写C语言的种种工具.md} (99%) rename src/pages/posts/blogs/{01.技术/02.GO语言/05.Go语言极限入门.md => 技术/GO语言/Go语言极限入门.md} (60%) rename src/pages/posts/blogs/{01.技术/02.GO语言 => 技术/GO语言}/assets/5973f095d19f42f3b0649a0e2f52f006/image-20220419101405456.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux/08.Linux笔记-信号.md => 技术/Linux/Linux笔记-信号.md} (77%) rename src/pages/posts/blogs/{01.技术/03.Linux/07.Linux笔记-文件I-O.md => 技术/Linux/Linux笔记-文件I-O.md} (99%) rename src/pages/posts/blogs/{01.技术/03.Linux/06.Linux笔记-进程.md => 技术/Linux/Linux笔记-进程.md} (87%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/20220320105749.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320093722657.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320095118775.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320095155376.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320095200261.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320100348242.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320100405899.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320100449488.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101157474.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101227035.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101434997.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101454081.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101504852.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101732493.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101745292.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101820792.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101824816.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101844194.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320101854044.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102217610.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102222415.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102302686.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102333633.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102355312.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102440403.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320102453240.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320103210374.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320103621058.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320105413049.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/cbea6761a0164906b8396942cf61c664/image-20220320105426083.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/7cb86c73b9e73893e6b0e0433d476928.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-10.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-11.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-12.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-13.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-14.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-1.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-10.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-11.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-12.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-13.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-14.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-15.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-16.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-17.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-18.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-19.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-2.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-20.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-21.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-22.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-3.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-4.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-5.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-6.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-7.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-8.png (100%) rename src/pages/posts/blogs/{01.技术/03.Linux => 技术/Linux}/assets/f835945d5de246bcabdff51dd984aaf2/process-9.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python/10.Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md => 技术/Python/Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md} (77%) rename src/pages/posts/blogs/{01.技术/04.Python/09.Python爬虫实战-获取王者荣耀英雄大全.md => 技术/Python/Python爬虫实战-获取王者荣耀英雄大全.md} (86%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/006ARE9vgy1fwemc30vd5j303y052q2r.jpg (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-11.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-12.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-16.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-17.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-18.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-21.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-26.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-28.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-29.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-5.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-6.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-7.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-8.png (100%) rename src/pages/posts/blogs/{01.技术/04.Python => 技术/Python}/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-9.png (100%) create mode 100644 src/pages/posts/blogs/更多/99.友情链接.md rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/20200122153807.jpg (100%) rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png (100%) rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png (100%) rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png (100%) rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/avatar.png (100%) rename src/pages/posts/blogs/{02.更多 => 更多}/assets/82707d577b914020b54384a615b0676e/cimoccn.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191552434.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191605526.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194742864.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194805471.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194913160.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195134746.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195213303.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195242736.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195408233.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195541775.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195559752.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195619070.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195637768.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203752439.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203833874.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204327843.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204448123.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204510290.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/3R1HVIyfDLmTbdg.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/8cWuBzF4XeAjdE2.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/TedcPw8KplHf2IY.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/WIliEaTm82ZBFGN.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203252544.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203716083.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025204559387.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025205452863.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025211048557.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211025212005574.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153545952.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153649933.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153717317.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/image-20211027193202773.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/lUJINBQbGVD87c4.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/normal.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/try-code.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/u7QD2qsrLR3YUeb.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-command.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-copy-by-line.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-multi-cursor-.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-new-file.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/35fac4da06bf4822880f4412473dee9f/vscode-suggest.gif (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/0cffb62a9bd44a8794e39b8204af3c3c.jpg (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/1752ab3dc7184f5cb69d4c76f743ba0e.jpg (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312212521.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312213204.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214337.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214440.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214619.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214716.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/2a79fe27baf444f18c22804cedcd1f92.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/449e3766442942fd900d42257d98a143.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/58769db089e54955afcda8adbda96706.jpg (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/5ddecb4846354f308fd6b4402c24ef44.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/a19adc7c1f1644cab755c52557b6c39d.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/ad53676ed8604c47bdfc11626c82bf8d.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/b709751067bc4bf0ae6c7d47faa5507d.jpg (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/bdc30a798d5f400dbc7cadd4212fcdae.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/c44da6e39be844a7880a8933b2a8d3d6.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/c5289004de6d4fc2bcb88eda253d2586.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习 => 更多/学习}/assets/b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png (100%) rename src/pages/posts/blogs/{02.更多/01.学习/11.vscode操作指北.md => 更多/学习/vscode操作指北.md} (98%) rename src/pages/posts/blogs/{02.更多/01.学习/03.寝室软路由记录.md => 更多/学习/寝室软路由记录.md} (98%) rename src/pages/posts/blogs/{02.更多/01.学习/02.逆向工程小实战.md => 更多/学习/逆向工程小实战.md} (71%) rename src/pages/posts/blogs/{00.目录页/01.技术.md => 目录页/技术.md} (100%) rename src/pages/posts/blogs/{00.目录页/02.更多.md => 目录页/更多.md} (100%) diff --git a/src/pages/index.astro b/src/pages/index.astro index 8a1120d..9b4394c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,6 +3,7 @@ import BaseLayout from "../layouts/BaseLayout.astro" import Tile from "../layouts/Tile.astro" import MoreTile from "../layouts/MoreTile.astro" const allPosts = await Astro.glob("../pages/posts/*.md") +const Blogs = await Astro.glob("../pages/posts/blogs/**/*.md") allPosts.sort( (a, b) => Date.parse(b.frontmatter.pubDate) - Date.parse(a.frontmatter.pubDate) @@ -84,6 +85,18 @@ allPosts.sort( ) }) } + { + Blogs.slice(2, 6).map((post) => { + return ( + + ) + }) + }
-::: cardList -```yaml -# - name: 麋鹿鲁哟 -# desc: 大道至简,知易行难 -# avatar: ./assets/82707d577b914020b54384a615b0676e/20200122153807.jpg # 可选 -# link: https://www.cnblogs.com/miluluyo/ # 可选 -# bgColor: '#CBEAFA' # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号 -# textColor: '#6854A1' # 可选,默认var(--textColor) - - name: 鲁冠泽的博客 - link: https://cimoc.cn/ - avatar: ./assets/82707d577b914020b54384a615b0676e/cimoccn.png - descr: Java, Web。 - - name: 江蕾的博客 - link: https://www.cnblogs.com/JLay - avatar: ./assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png - descr: 前端。 - - name: 黄文轩的博客 - link: https://www.cnblogs.com/N3ptune - avatar: ./assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png - descr: 网安, Linux和C/C++。 - - name: 陈学书的博客 - link: https://www.cnblogs.com/Flat-White - avatar: ./assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png - descr: Mac, 人工智能, Web和流水账。 - - name: 王纯的博客 - link: https://chundot.org - avatar: ./assets/82707d577b914020b54384a615b0676e/avatar.png - descr: Web。 - - name: 章晟玮的博客 - link: https://bcscb.xyz/ - avatar: https://cdn.bcscb.xyz/img/1.jpg - descr: 算法记录。 - \ No newline at end of file diff --git a/src/pages/posts/blogs/03.关于/01.关于.md b/src/pages/posts/blogs/03.关于/01.关于.md deleted file mode 100644 index f11d041..0000000 --- a/src/pages/posts/blogs/03.关于/01.关于.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: 关于 -date: 2023-12-12 14:27:01 -permalink: /about/ -sidebar: false -article: false -author: - name: nbtca - link: https://github.com/nbtca ---- - -## 📚Blog -这是一个兼具博客文章、知识管理、文档查找的计算机协会网站。欢迎到[GitHub](https://github.com/xugaoyi/vuepress-theme-vdoing)点个Star( •̀ ω •́ )✧ - -:::tip -文章内容仅是计协的一些小技术,如有误还请指正。 -::: - -[更新日志](https://github.com/nbtca/blogs/commits/main) - -## 🎨Theme -本站主题是 [`Vdoing`](https://github.com/xugaoyi/vuepress-theme-vdoing),这是一款简洁高效的VuePress 知识管理&博客 主题。旨在轻松打造一个`结构化`与`碎片化`并存的个人在线知识库&博客,让你的知识海洋像一本本书一样清晰易读。配合多维索引,让每一个知识点都可以快速定位! [Github地址](https://github.com/xugaoyi/vuepress-theme-vdoing) - -## 🐼Our -计算机协会成员 - -### 技能 -* 熟悉 JavaScript、HTML、CSS、Vue、React 的拼写 -* 了解 Linux、windows、macOS 的开关机方式 -* 精通 Git 的 pull 和 push,并注册了 GitHub 帐号刷了一些 star diff --git a/src/pages/posts/blogs/03.关于/assets/c64060e53bc042129a4782947549ce1d/20200103123203.jpg b/src/pages/posts/blogs/关于/assets/c64060e53bc042129a4782947549ce1d/20200103123203.jpg similarity index 100% rename from src/pages/posts/blogs/03.关于/assets/c64060e53bc042129a4782947549ce1d/20200103123203.jpg rename to src/pages/posts/blogs/关于/assets/c64060e53bc042129a4782947549ce1d/20200103123203.jpg diff --git a/src/pages/posts/blogs/03.关于/assets/c64060e53bc042129a4782947549ce1d/Apifox-860x320.ic7tz1417sw.png b/src/pages/posts/blogs/关于/assets/c64060e53bc042129a4782947549ce1d/Apifox-860x320.ic7tz1417sw.png similarity index 100% rename from src/pages/posts/blogs/03.关于/assets/c64060e53bc042129a4782947549ce1d/Apifox-860x320.ic7tz1417sw.png rename to src/pages/posts/blogs/关于/assets/c64060e53bc042129a4782947549ce1d/Apifox-860x320.ic7tz1417sw.png diff --git a/src/pages/posts/blogs/关于/关于.md b/src/pages/posts/blogs/关于/关于.md new file mode 100644 index 0000000..e9fd46d --- /dev/null +++ b/src/pages/posts/blogs/关于/关于.md @@ -0,0 +1,35 @@ +--- +layout: "../../../../layouts/MarkdownPost.astro" +title: 关于 +pubDate: 2023-12-12 14:27:01 +permalink: /about/ +sidebar: false +article: false +author: + name: nbtca + link: https://github.com/nbtca +--- + +## 📚Blog + +这是一个兼具博客文章、知识管理、文档查找的计算机协会网站。欢迎到[GitHub](https://github.com/xugaoyi/vuepress-theme-vdoing)点个 Star( •̀ ω •́ )✧ + +:::tip +文章内容仅是计协的一些小技术,如有误还请指正。 +::: + +[更新日志](https://github.com/nbtca/blogs/commits/main) + +## 🎨Theme + +本站主题是 [`Vdoing`](https://github.com/xugaoyi/vuepress-theme-vdoing),这是一款简洁高效的 VuePress 知识管理&博客 主题。旨在轻松打造一个`结构化`与`碎片化`并存的个人在线知识库&博客,让你的知识海洋像一本本书一样清晰易读。配合多维索引,让每一个知识点都可以快速定位! [Github 地址](https://github.com/xugaoyi/vuepress-theme-vdoing) + +## 🐼Our + +计算机协会成员 + +### 技能 + +- 熟悉 JavaScript、HTML、CSS、Vue、React 的拼写 +- 了解 Linux、windows、macOS 的开关机方式 +- 精通 Git 的 pull 和 push,并注册了 GitHub 帐号刷了一些 star diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/17Yizy52PBMZarL.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/17Yizy52PBMZarL.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/17Yizy52PBMZarL.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/17Yizy52PBMZarL.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/2ra5ycmElG4OLwo.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/2ra5ycmElG4OLwo.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/2ra5ycmElG4OLwo.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/2ra5ycmElG4OLwo.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/3989f49d21f44a0fa06e1d39c9cc8e5d.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/3989f49d21f44a0fa06e1d39c9cc8e5d.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/3989f49d21f44a0fa06e1d39c9cc8e5d.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/3989f49d21f44a0fa06e1d39c9cc8e5d.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/3TX1Jiphz5MGHKA.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/3TX1Jiphz5MGHKA.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/3TX1Jiphz5MGHKA.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/3TX1Jiphz5MGHKA.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/7Hj84ignasekXy2.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/7Hj84ignasekXy2.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/7Hj84ignasekXy2.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/7Hj84ignasekXy2.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/8cWuBzF4XeAjdE2.gif b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/8cWuBzF4XeAjdE2.gif similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/8cWuBzF4XeAjdE2.gif rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/8cWuBzF4XeAjdE2.gif diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/HmnCUGIAvLfJKz1.gif b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/HmnCUGIAvLfJKz1.gif similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/HmnCUGIAvLfJKz1.gif rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/HmnCUGIAvLfJKz1.gif diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/LwG8sKiVemIpqJn.gif b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/LwG8sKiVemIpqJn.gif similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/LwG8sKiVemIpqJn.gif rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/LwG8sKiVemIpqJn.gif diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/Md9EaDczrFWtxhU.gif b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/Md9EaDczrFWtxhU.gif similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/Md9EaDczrFWtxhU.gif rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/Md9EaDczrFWtxhU.gif diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/OyXFgwLKNa3uRWY.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/OyXFgwLKNa3uRWY.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/OyXFgwLKNa3uRWY.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/OyXFgwLKNa3uRWY.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/PYVEjWmMy6tkqdQ.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/PYVEjWmMy6tkqdQ.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/PYVEjWmMy6tkqdQ.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/PYVEjWmMy6tkqdQ.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/VbXLmk2Ox9dScW3.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/VbXLmk2Ox9dScW3.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/VbXLmk2Ox9dScW3.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/VbXLmk2Ox9dScW3.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/WoaDQnP7rtGB2vq.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/WoaDQnP7rtGB2vq.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/WoaDQnP7rtGB2vq.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/WoaDQnP7rtGB2vq.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/aZTwu1gLAJKOe6S.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/aZTwu1gLAJKOe6S.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/aZTwu1gLAJKOe6S.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/aZTwu1gLAJKOe6S.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/bToElJW8qcFCBVn.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/bToElJW8qcFCBVn.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/bToElJW8qcFCBVn.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/bToElJW8qcFCBVn.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/bYGImLQAe6NnvB9.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/bYGImLQAe6NnvB9.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/bYGImLQAe6NnvB9.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/bYGImLQAe6NnvB9.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/hAaxqHEBoZJrYeg.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/hAaxqHEBoZJrYeg.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/hAaxqHEBoZJrYeg.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/hAaxqHEBoZJrYeg.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/iWhrt48meZqUJPF.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/iWhrt48meZqUJPF.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/iWhrt48meZqUJPF.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/iWhrt48meZqUJPF.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/ns3XE8fithJSgc6.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/ns3XE8fithJSgc6.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/ns3XE8fithJSgc6.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/ns3XE8fithJSgc6.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/rA2KMziYGCTq367.gif b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/rA2KMziYGCTq367.gif similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/rA2KMziYGCTq367.gif rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/rA2KMziYGCTq367.gif diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/y6IwrJAGpq4uSFj.png b/src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/y6IwrJAGpq4uSFj.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/994555a5411c427da8f39428f49b12fb/y6IwrJAGpq4uSFj.png rename to src/pages/posts/blogs/技术/C语言/assets/994555a5411c427da8f39428f49b12fb/y6IwrJAGpq4uSFj.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215920733.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215920733.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215920733.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215920733.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220014288.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220014288.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220014288.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220014288.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220033227.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220033227.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220033227.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220033227.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220111908.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220111908.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220111908.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220111908.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220210074.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220210074.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220210074.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220210074.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220315921.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220315921.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220315921.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220315921.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220724315.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220724315.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220724315.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220724315.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png b/src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png similarity index 100% rename from src/pages/posts/blogs/01.技术/01.C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png rename to src/pages/posts/blogs/技术/C语言/assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png diff --git a/src/pages/posts/blogs/01.技术/01.C语言/01.从汇编角度看C语言-1.md b/src/pages/posts/blogs/技术/C语言/从汇编角度看C语言-1.md similarity index 63% rename from src/pages/posts/blogs/01.技术/01.C语言/01.从汇编角度看C语言-1.md rename to src/pages/posts/blogs/技术/C语言/从汇编角度看C语言-1.md index f44a485..dd07039 100644 --- a/src/pages/posts/blogs/01.技术/01.C语言/01.从汇编角度看C语言-1.md +++ b/src/pages/posts/blogs/技术/C语言/从汇编角度看C语言-1.md @@ -1,21 +1,22 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: 从汇编角度看C语言 - 1 -date: 2022-03-27 21:38:45 -categories: +pubDate: 2022-03-27 21:38:45 +categories: - 技术 - C语言 cover: ./assets/c10e40ab02e343e3afa9fb19b5619042/assembly.jpeg tid: c-from-asm-1 description: 反汇编C语言程序的解读。 permalink: /pages/989a42/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- -# 从汇编角度看C语言 - 1 +# 从汇编角度看 C 语言 - 1 ## 写在前面 @@ -23,13 +24,13 @@ tags: - 系统平台: Windows 10; - 调试工具: OllyDBG (吾爱破解专版) ; -- 开发工具: Visual Studio 2008 Debug模式; -- 基础要求: 了解C语言和汇编语言; -- 大致内容: 简述了一些汇编语言与C语言的关系,方便初学者更好的认识程序的底层运行机制。 +- 开发工具: Visual Studio 2008 Debug 模式; +- 基础要求: 了解 C 语言和汇编语言; +- 大致内容: 简述了一些汇编语言与 C 语言的关系,方便初学者更好的认识程序的底层运行机制。 ## 开始 -用VS2008编译如下代码: +用 VS2008 编译如下代码: ```c #include @@ -41,24 +42,24 @@ int main(int argc,char* argv[]) } ``` - 将生成的**可执行文件**拖入**OllyDBG**。 +将生成的**可执行文件**拖入**OllyDBG**。 -## 如何寻找C程序入口? +## 如何寻找 C 程序入口? 明确两点: -1. mainCRTStartup和wmainCRTStartup是控制台环境下多字节编码和Unicode编码的启动函数; -2. WinMainCRTStartup和wWinMainCRTStartup是windows环境下多字节编码和Unicode编码的启动函数。 +1. mainCRTStartup 和 wmainCRTStartup 是控制台环境下多字节编码和 Unicode 编码的启动函数; +2. WinMainCRTStartup 和 wWinMainCRTStartup 是 windows 环境下多字节编码和 Unicode 编码的启动函数。 -mainCRTStartup做了哪些事? +mainCRTStartup 做了哪些事? -如何通过mainCRTStartup来找到main函数入口? +如何通过 mainCRTStartup 来找到 main 函数入口? 以上述程序为例,寻找其`main`函数入口。 ![image-20220327214647589](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214647589.png) -初步调试文件,可以发现许多`jmp`指令,这是编译器生成的启动代码,往下按F8跟随跳转。 +初步调试文件,可以发现许多`jmp`指令,这是编译器生成的启动代码,往下按 F8 跟随跳转。 ![image-20220327214714185](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214714185.png) @@ -68,17 +69,17 @@ mainCRTStartup做了哪些事? ![image-20220327214738686](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214738686.png) -发现再`call hello.00241140`后控制台打出Hello World,因此在此处设下断点。 +发现再`call hello.00241140`后控制台打出 Hello World,因此在此处设下断点。 按下`Ctrl+F2`后重新启动程序,按下`F9`运行到该断点,按下`F7`单步进入。 ![image-20220327214803763](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214803763.png) -按几次F8后看到如上界面,可以看到Hello World字符串,程序的开头即初始化栈帧操作,显然已经成功来到了main函数中。 +按几次 F8 后看到如上界面,可以看到 Hello World 字符串,程序的开头即初始化栈帧操作,显然已经成功来到了 main 函数中。 ![image-20220327214826902](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327214826902.png) -查看如上高亮的指令,该指令将“Hello World”字符串的首地址压入栈中,而后调用printf,将字符串打印在控制台上。 +查看如上高亮的指令,该指令将“Hello World”字符串的首地址压入栈中,而后调用 printf,将字符串打印在控制台上。 ![image-20220327215012755](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327215012755.png) @@ -86,25 +87,25 @@ mainCRTStartup做了哪些事? ## 函数 -C语言程序是由具有不同功能的函数组成的,因此在逆向分析中应将重点放在函数的识别及参数的传递上,这样做可以将注意力集中在某一段代码上。 +C 语言程序是由具有不同功能的函数组成的,因此在逆向分析中应将重点放在函数的识别及参数的传递上,这样做可以将注意力集中在某一段代码上。 ### 函数的识别 下面讨论**函数的识别**: -调用函数的代码保存了一个返回地址,该地址会与参数一起传递给被调用的函数。绝大多数情况下编译器都使用call和ret指令来调用函数和返回调用位置。 +调用函数的代码保存了一个返回地址,该地址会与参数一起传递给被调用的函数。绝大多数情况下编译器都使用 call 和 ret 指令来调用函数和返回调用位置。 -call指令与跳转指令功能类似,但call指令保存返回信息,这里的返回信息实际上主要就是返回地址。 +call 指令与跳转指令功能类似,但 call 指令保存返回信息,这里的返回信息实际上主要就是返回地址。 -call指令执行时会将其之后的指令地址压入栈的顶部,当遇到ret指令时返回这个地址。 +call 指令执行时会将其之后的指令地址压入栈的顶部,当遇到 ret 指令时返回这个地址。 -也就是说,call指令给出的地址就是被调用函数的起始地址,ret指令用于结束函数的执行。 +也就是说,call 指令给出的地址就是被调用函数的起始地址,ret 指令用于结束函数的执行。 -因此可以通过定位call指令或ret指令来识别函数,call的操作数就是所调用函数的首地址。 +因此可以通过定位 call 指令或 ret 指令来识别函数,call 的操作数就是所调用函数的首地址。 话不多说,看一个例子。 -用vs2008编译如下代码,使用OllyDBG进行调试: +用 vs2008 编译如下代码,使用 OllyDBG 进行调试: ```c #include @@ -122,13 +123,11 @@ int main(int argc,char* argv[]) } ``` - - -进入OD后,依然要越过启动代码,寻找真正的`main`函数。 +进入 OD 后,依然要越过启动代码,寻找真正的`main`函数。 ![image-20220327220701475](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220701475.png) -连续按F8。 +连续按 F8。 按照以往的经验,调用`main`函数至少在调用`GetCommandLine`函数之后。 @@ -138,13 +137,13 @@ int main(int argc,char* argv[]) ![image-20220327220810610](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220810610.png) -看到这里可以push了3个参数,发现argv和argc的字样,那么下一个call十有八九会到达`main`函数了。 +看到这里可以 push 了 3 个参数,发现 argv 和 argc 的字样,那么下一个 call 十有八九会到达`main`函数了。 -按F7单步进入。 +按 F7 单步进入。 ![image-20220327220839595](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220839595.png) -来到这里就已经很明显了,可以明显的看到下图中由`mov ..., 0x5`和`mov ..., 0x6`两个语句,这明显是在给变量赋值上5和6,那么就可以推测`call test.00DD135C`实际上在调用`add`函数,将光标移动指令处,按回车键。 +来到这里就已经很明显了,可以明显的看到下图中由`mov ..., 0x5`和`mov ..., 0x6`两个语句,这明显是在给变量赋值上 5 和 6,那么就可以推测`call test.00DD135C`实际上在调用`add`函数,将光标移动指令处,按回车键。 ![image-20220327220903701](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220903701.png) @@ -152,19 +151,19 @@ int main(int argc,char* argv[]) ![image-20220327220934315](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220934315.png) -那么回到之前的`main`函数,可以看到代码将0x5和0x6放入rax和ecx寄存器后,又对其进行了压栈操作,实际等价于`push 0x5`和`push 0x6`。 +那么回到之前的`main`函数,可以看到代码将 0x5 和 0x6 放入 rax 和 ecx 寄存器后,又对其进行了压栈操作,实际等价于`push 0x5`和`push 0x6`。 ![image-20220327221004603](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221004603.png) -push操作就是x86架构下典型的压栈方式,符合**__cdecl**调用约定(C/C++程序的默认调用约定,在此不作赘述),在该约定下,可以看到压栈顺序是逆序的,右边的参数先进栈,左边的参数后进栈,栈顶指针esp指向栈中第1个可用的数据项。 +push 操作就是 x86 架构下典型的压栈方式,符合**\_\_cdecl**调用约定(C/C++程序的默认调用约定,在此不作赘述),在该约定下,可以看到压栈顺序是逆序的,右边的参数先进栈,左边的参数后进栈,栈顶指针 esp 指向栈中第 1 个可用的数据项。 在调用函数时,调用者依次将参数压入栈,然后调用函数。函数被调用以后,在栈中取得数据并进行计算,函数计算结束后,由调用者或者函数本身修改栈,使栈恢复原样(平衡栈数据)。 -现在将程序运行到call指令之前,查看OD的栈区数据,可以看到显示Arg1=5,Arg2=6,显然这两个参数已经被压栈。 +现在将程序运行到 call 指令之前,查看 OD 的栈区数据,可以看到显示 Arg1=5,Arg2=6,显然这两个参数已经被压栈。 ![image-20220327221037201](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221037201.png) -进入add函数后,可以看到程序将arg1存入eax寄存器,再和arg2相加,就完成了计算。 +进入 add 函数后,可以看到程序将 arg1 存入 eax 寄存器,再和 arg2 相加,就完成了计算。 ![image-20220327221100245](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221100245.png) @@ -185,11 +184,11 @@ int add(int x,int y) } ``` -进入OD,再次回到add函数中。 +进入 OD,再次回到 add 函数中。 ![image-20220327221142426](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221142426.png) -`mov eax, [local.2]`是将计算的最后结果就保存在eax寄存器中,eax就作为存放返回值的寄存器。 +`mov eax, [local.2]`是将计算的最后结果就保存在 eax 寄存器中,eax 就作为存放返回值的寄存器。 ![image-20220327221206970](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327221206970.png) @@ -214,15 +213,15 @@ int main(int argc,char* argv[]) } ``` -这里定义了一个`max`函数,接收`a`和`b`的地址,将其中较大数放入变量`a`中。使用OD,进入`main`函数。 +这里定义了一个`max`函数,接收`a`和`b`的地址,将其中较大数放入变量`a`中。使用 OD,进入`main`函数。 ![image-20220327220253195](./assets/c10e40ab02e343e3afa9fb19b5619042/image-20220327220253195.png) 进入`max`函数,`mov eax, [arg.1]`和`mov ecx, [arg.2]`是将参数`a`和`b`的值加载到两个寄存器。 -可以看到`cmp`指令,这是一个用于比较大小的指令,紧跟着的是条件跳转指令,表示如果a 参考书目: 《Go程序设计语言》 -> +> 参考书目: 《Go 程序设计语言》 #### 快速入门 -如下是hello world程序: +如下是 hello world 程序: ```go // hello.go @@ -37,19 +37,19 @@ func main() { 终端执行 `go run hello.go`。 -Go代码是用包来组织的,包类似于其他语言中的库和模块。 +Go 代码是用包来组织的,包类似于其他语言中的库和模块。 `package main`指明了这个文件属于哪个包。 -后面跟着导入的是其他包的列表,fmt用于格式化输出和扫描输入。 +后面跟着导入的是其他包的列表,fmt 用于格式化输出和扫描输入。 -main包比较特殊,它用来定义一个独立的可执行程序,而不是库。import声明必须跟在package声明之后。import导入声明后,是组成程序的函数。 +main 包比较特殊,它用来定义一个独立的可执行程序,而不是库。import 声明必须跟在 package 声明之后。import 导入声明后,是组成程序的函数。 -一个函数的声明由func关键字、函数名、参数列表(main函数为空)、返回值列表和函数体构成。 +一个函数的声明由 func 关键字、函数名、参数列表(main 函数为空)、返回值列表和函数体构成。 ###### 命令行参数 -命令行参数以os包中Args名字的变量供程序访问,在os包外面,使用os.Args这个名字,这是一个字符串slice。 +命令行参数以 os 包中 Args 名字的变量供程序访问,在 os 包外面,使用 os.Args 这个名字,这是一个字符串 slice。 ```go // echo.go 输出命令行参数 @@ -76,9 +76,9 @@ $ go build echo.go hello ``` -var 关键字声明了两个string类型的变量s和sep。变量可以声明的时候初始化。如果变量没有明确地初始化,它将隐式初始化这个类型的空值。 +var 关键字声明了两个 string 类型的变量 s 和 sep。变量可以声明的时候初始化。如果变量没有明确地初始化,它将隐式初始化这个类型的空值。 -for 是 go里面唯一的循环语句。 +for 是 go 里面唯一的循环语句。 ```go for initlization; condition; post { @@ -86,11 +86,11 @@ for initlization; condition; post { } ``` -可选的initialization(初始化)语句在循环开始之前执行。如果存在,它必须是一个简单的语句。三部分都是可省的,如果三部分都不存在,只有一个for,那就是无限循环。 +可选的 initialization(初始化)语句在循环开始之前执行。如果存在,它必须是一个简单的语句。三部分都是可省的,如果三部分都不存在,只有一个 for,那就是无限循环。 -另一种形式的for循环是在字符串或slice数据上迭代。 +另一种形式的 for 循环是在字符串或 slice 数据上迭代。 -如下是第二种echo程序: +如下是第二种 echo 程序: ```go // echo.go @@ -111,9 +111,9 @@ func main() { } ``` -每一次迭代,range都产生一对值: 索引和这个索引处元素的值。因为这个例子里用不到索引,但是语法上range循环需要处理。应次也必须处理索引。可以将索引赋予一个临时变量,然后忽略它,但是**go不允许存在无用的变量**。选择使用**空标识符**"__"。空标识符可以用在任何语法需要变量名但逻辑不需要的地方。 +每一次迭代,range 都产生一对值: 索引和这个索引处元素的值。因为这个例子里用不到索引,但是语法上 range 循环需要处理。应次也必须处理索引。可以将索引赋予一个临时变量,然后忽略它,但是**go 不允许存在无用的变量**。选择使用**空标识符**"\_\_"。空标识符可以用在任何语法需要变量名但逻辑不需要的地方。 -如果有大量的数据要处理,这样做的代价会比较大。可以使用strings包中的`Join`函数。 +如果有大量的数据要处理,这样做的代价会比较大。可以使用 strings 包中的`Join`函数。 ```go package main @@ -131,7 +131,7 @@ func main() { ###### 找出重复行 -如下程序要输出标准输入中出现次数大于1的行,前面是次数。 +如下程序要输出标准输入中出现次数大于 1 的行,前面是次数。 ```go package main @@ -156,21 +156,21 @@ func main() { } ``` -在上述这个程序中,引入了if语句、map类型和bufio包。 +在上述这个程序中,引入了 if 语句、map 类型和 bufio 包。 -像for一样,if语句中的条件部分也从不放在圆括号里。 +像 for 一样,if 语句中的条件部分也从不放在圆括号里。 -map存储一个键值对集合。在这里map的键是字符串,值是数字。内置的函数make可以用来新建map,它还可以有其他用途。 +map 存储一个键值对集合。在这里 map 的键是字符串,值是数字。内置的函数 make 可以用来新建 map,它还可以有其他用途。 `counts := make(map[string]int)` -每次从输入读取一行内容,这一行就作为map中的键,对应的值递增1。键在map中不存在时也是没有问题的。为了输出结果,使用基于range的for循环。 +每次从输入读取一行内容,这一行就作为 map 中的键,对应的值递增 1。键在 map 中不存在时也是没有问题的。为了输出结果,使用基于 range 的 for 循环。 -bufio包,使用它可以简便和高效地处理输入和输出。其中一个最有用的特性是称为扫描器(Scanner)的类型,可以读取输入,以行或者单词为单位断开。 +bufio 包,使用它可以简便和高效地处理输入和输出。其中一个最有用的特性是称为扫描器(Scanner)的类型,可以读取输入,以行或者单词为单位断开。 `input := bufio.NewScanner(os.Stdin)` -Printf函数有超过10个转义字符: +Printf 函数有超过 10 个转义字符: | verb | 描述 | | -------- | ---------------------------- | @@ -247,7 +247,7 @@ $ ./main test.txt 上述程序是采用"流式"模式读取输入,然后按需拆分为行。 -这里引入一个ReadFile函数(从io/ioutil包导入),它读取整个命名文件的内容,还引入一个strings.Split函数,将一个字符串分割为一个由子串组成的slice: +这里引入一个 ReadFile 函数(从 io/ioutil 包导入),它读取整个命名文件的内容,还引入一个 strings.Split 函数,将一个字符串分割为一个由子串组成的 slice: ```go package main @@ -279,11 +279,11 @@ func main() { } ``` -ReadFile函数返回一个可以转化成字符串的字节slice,这样它可以被strings.Split分割。 +ReadFile 函数返回一个可以转化成字符串的字节 slice,这样它可以被 strings.Split 分割。 -###### **获取一个URL** +###### **获取一个 URL** -Go提供了一系列包,在net包下面分组管理,使用它们可以方便地通过互联网发送和接受信息。 +Go 提供了一系列包,在 net 包下面分组管理,使用它们可以方便地通过互联网发送和接受信息。 ```go package main @@ -313,9 +313,9 @@ func main() { } ``` -程序fetch展示从互联网获取信息的最小需求,它获取每个指定URL的内容,然后不加解析地输出。fetch来自curl工具。 +程序 fetch 展示从互联网获取信息的最小需求,它获取每个指定 URL 的内容,然后不加解析地输出。fetch 来自 curl 工具。 -这个程序使用的函数来自两个包: net/http和io/ioutil。http.Get函数产生一个HTTP请求,如果没有出错,返回结果存在响应结构resp里面,其中resp的Body域包含服务器端响应的一个可读取数据流。随后ioutil.ReadAll读取整个响应结果并存入b。 +这个程序使用的函数来自两个包: net/http 和 io/ioutil。http.Get 函数产生一个 HTTP 请求,如果没有出错,返回结果存在响应结构 resp 里面,其中 resp 的 Body 域包含服务器端响应的一个可读取数据流。随后 ioutil.ReadAll 读取整个响应结果并存入 b。 ```go package main @@ -345,7 +345,7 @@ func main() { } ``` -关闭Body数据流来避免资源泄露。 +关闭 Body 数据流来避免资源泄露。 运行结果: @@ -396,7 +396,7 @@ func main() { } ``` -###### 并发获取多个URL +###### 并发获取多个 URL ```go package main @@ -449,15 +449,15 @@ $ ./fetchall http://www.baidu.com http://www.qq.com 0.14s elapsed ``` -这个进程可以并发获取很多URL内容,于是这个进程使用的时间不超过耗时最长时间的任务。这个程序不保存响应内容,但会报告每个响应的大小和花费的时间。 +这个进程可以并发获取很多 URL 内容,于是这个进程使用的时间不超过耗时最长时间的任务。这个程序不保存响应内容,但会报告每个响应的大小和花费的时间。 -gorotine是一个并发执行的函数。通道是一种允许某一进程向另一种进程传递制定类型的值的通信机制。main函数在一个goroutine中执行,然后go语句创建额外的goroutine。 +gorotine 是一个并发执行的函数。通道是一种允许某一进程向另一种进程传递制定类型的值的通信机制。main 函数在一个 goroutine 中执行,然后 go 语句创建额外的 goroutine。 -main函数使用make创建一 个字符串通道。对于每个命令行参数,go语句在第一轮循环中启动一个新的goroutine,它异步调用fetch来使用http.Get获取URL内容。io.Copy函数读取响应的内容,然后通过写入ioutil.Discard输出流进行丢弃。Copy返回字节数和错误信息。每一个结果返回时,fetch发送一行汇总信息到通道ch。main中第二轮循环接收并且输出那些汇总行。 +main 函数使用 make 创建一 个字符串通道。对于每个命令行参数,go 语句在第一轮循环中启动一个新的 goroutine,它异步调用 fetch 来使用 http.Get 获取 URL 内容。io.Copy 函数读取响应的内容,然后通过写入 ioutil.Discard 输出流进行丢弃。Copy 返回字节数和错误信息。每一个结果返回时,fetch 发送一行汇总信息到通道 ch。main 中第二轮循环接收并且输出那些汇总行。 -###### 一个WEB服务器 +###### 一个 WEB 服务器 -如下代码,实现一个简单的服务器,将返回服务器URL路径部分: +如下代码,实现一个简单的服务器,将返回服务器 URL 路径部分: ```go package main @@ -485,7 +485,7 @@ $ ./fetch http://localhost:8000/help URL.Path = "/help" ``` -这里的库函数做了大部分工作。main函数将一个处理函数和以/开头的URL链接在一起,代表所有的URL使用这个函数处理,然后启动服务器监听8000端口处的请求。一个请求由http.Request类型的结构体表示,它包含很多关联的域,其中一个是所请求的URL。当一个请求到达时,它被转交给处理函数,并从请求的URL中提取路径部分,使用fmt.Printf格式化,然后作为响应发送回去。 +这里的库函数做了大部分工作。main 函数将一个处理函数和以/开头的 URL 链接在一起,代表所有的 URL 使用这个函数处理,然后启动服务器监听 8000 端口处的请求。一个请求由 http.Request 类型的结构体表示,它包含很多关联的域,其中一个是所请求的 URL。当一个请求到达时,它被转交给处理函数,并从请求的 URL 中提取路径部分,使用 fmt.Printf 格式化,然后作为响应发送回去。 为服务器添加功能也很简单,如下程序会返回收到的请求数量: @@ -534,11 +534,11 @@ $ ./fetch http://localhost:8000/count Count 2 ``` -这个服务器有两个处理函数,通过请求的URL来决定哪一个被调用: 请求/count调用counter,其他的调用handler。 +这个服务器有两个处理函数,通过请求的 URL 来决定哪一个被调用: 请求/count 调用 counter,其他的调用 handler。 -以/结尾的处理模式匹配所有含有这个前缀的URL。在后台,对于每个传入的请求,服务器在不同的goroutine中运行该处理函数,这样它可以同时处理多个请求。 +以/结尾的处理模式匹配所有含有这个前缀的 URL。在后台,对于每个传入的请求,服务器在不同的 goroutine 中运行该处理函数,这样它可以同时处理多个请求。 -然而,如果两个并发的请求试图同时更新计数值count,count可能会不一致地增加,程序会产生一个严重的竞态BUG。为了避免该问题,必须确保最多只有一个goroutine在同一时间访问变量,这正是mu.Lock()和mu.Unlock()语句的作用。 +然而,如果两个并发的请求试图同时更新计数值 count,count 可能会不一致地增加,程序会产生一个严重的竞态 BUG。为了避免该问题,必须确保最多只有一个 goroutine 在同一时间访问变量,这正是 mu.Lock()和 mu.Unlock()语句的作用。 修改处理函数,使其可以报告接收到的消息头和表单数据,这样可以方便服务器审查和调试请求。 @@ -585,9 +585,9 @@ RemoteAddr = "127.0.0.1:47766" #### 程序结构 -声明是给一个程序实体**命名**,并且设定其部分或全部属性。有4个主要声明: 变量(var)、常量(const)、类型(type)函数(func)。 +声明是给一个程序实体**命名**,并且设定其部分或全部属性。有 4 个主要声明: 变量(var)、常量(const)、类型(type)函数(func)。 -Go程序存储在一个或多个以.go为后缀的文件里。每一个文件以package声明开头,表明文件属于哪个包。package 声明后面是import声明,然后是*包级别*的类型、变量、常量、函数的声明,不区分顺序。 +Go 程序存储在一个或多个以.go 为后缀的文件里。每一个文件以 package 声明开头,表明文件属于哪个包。package 声明后面是 import 声明,然后是*包级别*的类型、变量、常量、函数的声明,不区分顺序。 例如,下面的程序声明一个常量、一个函数和一对变量: @@ -608,13 +608,13 @@ func main() { // 输出: boiling point = 212 F or 100 C ``` -常量boilingF是一个包级别的声明(main包),f和c是属于main函数的局部变量。包级别的实体名字不仅对于包含其声明的源文件可见,而且对于同一个包里面的所有源文件可见。 +常量 boilingF 是一个包级别的声明(main 包),f 和 c 是属于 main 函数的局部变量。包级别的实体名字不仅对于包含其声明的源文件可见,而且对于同一个包里面的所有源文件可见。 另一方面,局部声明仅仅是在声明所在的函数内部可见,并且可能对于函数中的一小块区域可见。 **函数的声明**包含一个名字、参数列表(由函数的调用者提供的变量)、一个可选的返回值列表,以及函数体。 -下面的函数fToC封装了温度转换的逻辑,这样可以只定义一次而在多个地方使用。 +下面的函数 fToC 封装了温度转换的逻辑,这样可以只定义一次而在多个地方使用。 ```go package main @@ -644,17 +644,17 @@ func fToC(f float64) float64 { 类型和表达式部分可以省略一个,但不能都省略。 -如果类型省略,它的类型将由初始化表达式决定。如果表达式省略,其初始值对应于类型的零值,因此Go中不存在未初始化变量。 +如果类型省略,它的类型将由初始化表达式决定。如果表达式省略,其初始值对应于类型的零值,因此 Go 中不存在未初始化变量。 ###### 短变量声明 在函数中,一种称作**短变量声明**的可选形式可以用来初始化局部变量。 -形式: `name := expression`,name的类型由expression的类型来决定。 +形式: `name := expression`,name 的类型由 expression 的类型来决定。 在局部变量的声明和初始化主要使用短声明。 -var声明通常是为那些跟初始化表达式类型不一致的局部变量保留的,或者用于后面才对变量赋值以及变量初始值不重要的情况。 +var 声明通常是为那些跟初始化表达式类型不一致的局部变量保留的,或者用于后面才对变量赋值以及变量初始值不重要的情况。 ```go i := 100 @@ -666,10 +666,10 @@ i,j := 0,1 指针的值是一个变量的地址。 -如果一个变量声明为`var x int`,表达式&x获取一个指向整型变量的指针。 +如果一个变量声明为`var x int`,表达式&x 获取一个指向整型变量的指针。 ```go -x := 1 +x := 1 p := &x // p 是整型指针 只想x fmt.Println(*p) // "1" *p = 2 // 等价于x = 2 @@ -678,7 +678,7 @@ fmt.Println(x) // 结果"2" 每个聚合类型变量的组成都是变量,所以也有一个地址。 -指针类型的零值是nil。 +指针类型的零值是 nil。 函数可以返回局部变量的地址。 @@ -704,7 +704,7 @@ incr(&v) // v 等于 2 fmt.Println(incr(&v)) // "3" ``` -指针对于flag包是很关键的,它使用程序的命令行参数来设置整个程序内某些变量的值。 +指针对于 flag 包是很关键的,它使用程序的命令行参数来设置整个程序内某些变量的值。 ```go package main @@ -727,9 +727,9 @@ func main() { } ``` -flag.Bool函数创建一个新的布尔标识变量,它有3个参数。变量sep和n是指向标识变量的指针,必须通过sep和n来访问。 +flag.Bool 函数创建一个新的布尔标识变量,它有 3 个参数。变量 sep 和 n 是指向标识变量的指针,必须通过 sep 和 n 来访问。 -当程序运行前,在使用标识前,必须调用flag.Parse来更新标识变量的默认值。非标识参数也可以从flag.Args()返回的字符串slice来访问。如果flag.Parse遇到错误,它输出一条帮助信息,然后调用os.Exit(2)来结束程序。 +当程序运行前,在使用标识前,必须调用 flag.Parse 来更新标识变量的默认值。非标识参数也可以从 flag.Args()返回的字符串 slice 来访问。如果 flag.Parse 遇到错误,它输出一条帮助信息,然后调用 os.Exit(2)来结束程序。 运行示例: diff --git a/src/pages/posts/blogs/01.技术/02.GO语言/assets/5973f095d19f42f3b0649a0e2f52f006/image-20220419101405456.png b/src/pages/posts/blogs/技术/GO语言/assets/5973f095d19f42f3b0649a0e2f52f006/image-20220419101405456.png similarity index 100% rename from src/pages/posts/blogs/01.技术/02.GO语言/assets/5973f095d19f42f3b0649a0e2f52f006/image-20220419101405456.png rename to src/pages/posts/blogs/技术/GO语言/assets/5973f095d19f42f3b0649a0e2f52f006/image-20220419101405456.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/08.Linux笔记-信号.md b/src/pages/posts/blogs/技术/Linux/Linux笔记-信号.md similarity index 77% rename from src/pages/posts/blogs/01.技术/03.Linux/08.Linux笔记-信号.md rename to src/pages/posts/blogs/技术/Linux/Linux笔记-信号.md index 60e763f..852a3f8 100644 --- a/src/pages/posts/blogs/01.技术/03.Linux/08.Linux笔记-信号.md +++ b/src/pages/posts/blogs/技术/Linux/Linux笔记-信号.md @@ -1,18 +1,19 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Linux笔记 - 信号 -date: 2022-04-05 13:13:28 -categories: +pubDate: 2022-04-05 13:13:28 +categories: - 技术 - Linux cover: ./assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png tid: linux-note-signal description: 有关linux信号的一系列笔记。 permalink: /pages/aff776/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- ## **Linux 信号** @@ -20,11 +21,10 @@ tags: 信号本质上是整数,用户模式下用来模拟硬件中断。 - 什么是硬件中断?先理解为硬件引发的中断。 -- 什么是中断?简言之,就是让CPU停下当前干的事转而去处理新的情况。 +- 什么是中断?简言之,就是让 CPU 停下当前干的事转而去处理新的情况。 - 信号是谁产生的?可以由硬件、内核和进程产生。 - -例如在终端上用`Ctrl+C`,可以结束掉当前终端进程,本质上是发送SIGINT信号。 +例如在终端上用`Ctrl+C`,可以结束掉当前终端进程,本质上是发送 SIGINT 信号。 如下是一个实例程序,该程序循环打印数字。运行起来,看看`Ctrl+C`能不能中止它: @@ -52,15 +52,15 @@ int main() } ``` -如下所示,现在使用Ctrl+C是没办法中断这个程序的: +如下所示,现在使用 Ctrl+C 是没办法中断这个程序的: ![signal-1](./assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png) -这里可以用man命令查看一下signal函数的帮助文档: +这里可以用 man 命令查看一下 signal 函数的帮助文档: ![signal-2](./assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png) -signal关联上了一个信号处理函数,来处理信号。 +signal 关联上了一个信号处理函数,来处理信号。 现在修改这个代码,添加一行打印当前进程号,然后打开两个终端,一个终端运行上面的程序,一个终端尝试`kill`命令来发送信号: @@ -74,13 +74,13 @@ kill 要指定参数: **信号处理的过程** -进程A在运行,内核、硬件或者其他进程发送信号给进程A。进程A接收到信号后,直接做信号本身规定的对应处理或者做事先注册好的信号处理。如上面signal函数就是注册信号处理,hand函数替换了本身默认的信号处理。当然信号是可以屏蔽的,不作任何处理。 +进程 A 在运行,内核、硬件或者其他进程发送信号给进程 A。进程 A 接收到信号后,直接做信号本身规定的对应处理或者做事先注册好的信号处理。如上面 signal 函数就是注册信号处理,hand 函数替换了本身默认的信号处理。当然信号是可以屏蔽的,不作任何处理。 -Linux有哪些信号类型: +Linux 有哪些信号类型: ![signal-5](./assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png) - Linux 信号有64个,分为不可靠信号(非实时,1-31,Unix提供)和可靠信号(32-64,后来扩充的)。又有系统自带的标准信号和用户自定义的信号。 +Linux 信号有 64 个,分为不可靠信号(非实时,1-31,Unix 提供)和可靠信号(32-64,后来扩充的)。又有系统自带的标准信号和用户自定义的信号。 介绍几个命令或函数: @@ -183,7 +183,7 @@ int main(void) #include int main(int argc,char* argv[]) -{ +{ int pid = atoi(argv[1]); int sig = atoi(argv[2]); printf("pid:%d sig:%d\n",argv[1],argv[2]); @@ -204,11 +204,11 @@ int main(int argc,char* argv[]) 也试试发送其他数据,联合体中还有一个指针类型的成员。 -## Linux信号(续) +## Linux 信号(续) > 参考网站: Github、《极客时间》 -现在从底层角度来观赏Linux信号机制。 +现在从底层角度来观赏 Linux 信号机制。 首先看信号的具体作用: @@ -216,13 +216,13 @@ int main(int argc,char* argv[]) ![signal-15](./assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png) -如上文所提,处理信号有3种方式:执行默认操作,捕获信号和忽略信号 +如上文所提,处理信号有 3 种方式:执行默认操作,捕获信号和忽略信号 -设置信号处理有两种方式: signal和sigaction +设置信号处理有两种方式: signal 和 sigaction -signal将一个动作和信号关联,sigaction也是将一个动作和信号关联,但这个动作用一个结构体表示了,处理信号将更加细致 +signal 将一个动作和信号关联,sigaction 也是将一个动作和信号关联,但这个动作用一个结构体表示了,处理信号将更加细致 -siganal不是系统调用,而是glibc封装的一个函数,实现如下: +siganal 不是系统调用,而是 glibc 封装的一个函数,实现如下: ```c # define signal __sysv_signal @@ -242,9 +242,9 @@ __sysv_signal (int sig, __sighandler_t handler) weak_alias (__sysv_signal, sysv_signal) ``` -这里可以看到 sa_flags 设置了一个SA_ONESHOT,这意味着信号处理函数只作用一次,用完一次后就返回默认行为 +这里可以看到 sa_flags 设置了一个 SA_ONESHOT,这意味着信号处理函数只作用一次,用完一次后就返回默认行为 -同时设置了SA_NOMASK,通过 __sigemptyset,将 sa_mask 设置为空。这样的设置表示在这个信号处理函数执行过程中,如果再有其他信号,哪怕相同的信号到来的时候,这个信号处理函数会被中断。如果一个信号处理函数真的被其他信号中断,问题也不大,因为当处理完了其他的信号处理函数后,还会回来接着处理这个信号处理函数的,但是对于相同的信号就有点尴尬了。一般的思路应该是,当某一个信号的信号处理函数运行的时候,暂时屏蔽这个信号,屏蔽并不意味着信号一定丢失,而是暂存,这样能够做到信号处理函数对于相同的信号,处理完一个再处理下一个,这样信号处理函数的逻辑要简单得多。 +同时设置了 SA_NOMASK,通过 \_\_sigemptyset,将 sa_mask 设置为空。这样的设置表示在这个信号处理函数执行过程中,如果再有其他信号,哪怕相同的信号到来的时候,这个信号处理函数会被中断。如果一个信号处理函数真的被其他信号中断,问题也不大,因为当处理完了其他的信号处理函数后,还会回来接着处理这个信号处理函数的,但是对于相同的信号就有点尴尬了。一般的思路应该是,当某一个信号的信号处理函数运行的时候,暂时屏蔽这个信号,屏蔽并不意味着信号一定丢失,而是暂存,这样能够做到信号处理函数对于相同的信号,处理完一个再处理下一个,这样信号处理函数的逻辑要简单得多。 还有一个设置就是设置了 SA_INTERRUPT,清除了 SA_RESTART。信号的到来时间是不可预期的,有可能程序正在调用某个漫长的系统调用的时候,突然到来一个信号,中断了这个系统调用,去执行信号处理函数。那么执行完后信号处理函数,系统调用怎么办? @@ -252,9 +252,9 @@ weak_alias (__sysv_signal, sysv_signal) 另外一种处理方法是 SA_RESTART。这个时候系统调用会被自动重新启动,不需要调用方自己写代码。当然也可能存在问题,例如从终端读入一个字符,这个时候用户在终端输入一个'a'字符,在处理'a'字符的时候被信号中断了,等信号处理完毕,再次读入一个字符的时候,如果用户不再输入,就停在那里了,需要用户再次输入同一个字符。 -可知signal函数是受到限制的,因此,建议使用 sigaction 函数,根据自己的需要定制参数。 +可知 signal 函数是受到限制的,因此,建议使用 sigaction 函数,根据自己的需要定制参数。 -下面是glibc中的实现: +下面是 glibc 中的实现: ```c int diff --git a/src/pages/posts/blogs/01.技术/03.Linux/07.Linux笔记-文件I-O.md b/src/pages/posts/blogs/技术/Linux/Linux笔记-文件I-O.md similarity index 99% rename from src/pages/posts/blogs/01.技术/03.Linux/07.Linux笔记-文件I-O.md rename to src/pages/posts/blogs/技术/Linux/Linux笔记-文件I-O.md index 2eb4db4..a7de756 100644 --- a/src/pages/posts/blogs/01.技术/03.Linux/07.Linux笔记-文件I-O.md +++ b/src/pages/posts/blogs/技术/Linux/Linux笔记-文件I-O.md @@ -1,18 +1,19 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Linux笔记 - 文件I/O -date: 2022-03-19 22:38:56 -categories: +pubDate: 2022-03-19 22:38:56 +categories: - 技术 - Linux cover: ./assets/cbea6761a0164906b8396942cf61c664/20220320105749.png tid: linux-note-file-io description: 有关linux文件io的一系列笔记。 permalink: /pages/82d273/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- ## Linux 文件系统结构 diff --git a/src/pages/posts/blogs/01.技术/03.Linux/06.Linux笔记-进程.md b/src/pages/posts/blogs/技术/Linux/Linux笔记-进程.md similarity index 87% rename from src/pages/posts/blogs/01.技术/03.Linux/06.Linux笔记-进程.md rename to src/pages/posts/blogs/技术/Linux/Linux笔记-进程.md index 680c441..a175ad4 100644 --- a/src/pages/posts/blogs/01.技术/03.Linux/06.Linux笔记-进程.md +++ b/src/pages/posts/blogs/技术/Linux/Linux笔记-进程.md @@ -1,21 +1,22 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Linux笔记 - 进程 -date: 2022-04-05 13:13:35 -categories: +pubDate: 2022-04-05 13:13:35 +categories: - 技术 - Linux cover: ./assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png tid: linux-note-process description: 有关linux进程的一系列笔记。 permalink: /pages/324bec/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- -## Linux进程 +## Linux 进程 本文会简单讲述进程创建和进程间通信。 @@ -39,11 +40,11 @@ tags: ![process-4](./assets/f835945d5de246bcabdff51dd984aaf2/process-4.png) -在终端输入`top`,输入q可以退出: +在终端输入`top`,输入 q 可以退出: ![process-5](./assets/f835945d5de246bcabdff51dd984aaf2/process-5.png) -Linux系统上可以管理多个进程,进程被分时分片处理。 +Linux 系统上可以管理多个进程,进程被分时分片处理。 下面演示在程序中如何创建进程: @@ -95,9 +96,9 @@ int main(void) ![process-10](./assets/f835945d5de246bcabdff51dd984aaf2/process-10.png) -根据fork函数的返回值来看是在子进程中还是父进程中,调用成功的话,父进程中返回值是子进程的ID,子进程中是0。实际上这里fork返回了两次。 +根据 fork 函数的返回值来看是在子进程中还是父进程中,调用成功的话,父进程中返回值是子进程的 ID,子进程中是 0。实际上这里 fork 返回了两次。 -fork做了两件事,第一件是复制结构,将父进程的数据结构都复制了一份。 +fork 做了两件事,第一件是复制结构,将父进程的数据结构都复制了一份。 第二件事就是唤醒新进程,让子进程运行起来。 @@ -132,7 +133,7 @@ int main(void) } ``` -在代码中定义了一个变量n,初始值为10,子进程的n同样初始为10: +在代码中定义了一个变量 n,初始值为 10,子进程的 n 同样初始为 10: ![process-11](./assets/f835945d5de246bcabdff51dd984aaf2/process-11.png) @@ -140,7 +141,7 @@ int main(void) 有一种情况,父进程创建了子进程,父进程先于子进程结束,子进程资源没有被释放,就会变成僵尸进程,持续占用系统资源(内核中进程树会保存进程的数据,树中节点会保存进程的一些数据)。 -子进程结束前,会向父进程发送SIGCHILD信号,父进程收到信号后,回收子进程资源,然后父进程再结束。父进程可以写一个wait函数,等待子进程发送SIGCHILD信号。 +子进程结束前,会向父进程发送 SIGCHILD 信号,父进程收到信号后,回收子进程资源,然后父进程再结束。父进程可以写一个 wait 函数,等待子进程发送 SIGCHILD 信号。 ![process-12](./assets/f835945d5de246bcabdff51dd984aaf2/process-12.png) @@ -166,7 +167,7 @@ int main(void) { } ``` -使用wait函数就是要等待子进程打印完所有数字,父进程才结束。 +使用 wait 函数就是要等待子进程打印完所有数字,父进程才结束。 最后看看守护进程。 @@ -176,11 +177,11 @@ int main(void) { ![process-13](./assets/f835945d5de246bcabdff51dd984aaf2/process-13.png) -TPGID为-1的话,就说明是守护进程。 +TPGID 为-1 的话,就说明是守护进程。 如果要把一个进程变成守护进程,要先`kill`其父进程,同时摆脱终端的控制。 -要摆脱终端的控制,就要关闭三个文件描述符号:标准输入设备,标准输出设备,标准错误输出设备,然后重定向当前进程IO操作到/dev/null (黑洞设备)。然后要创建新的会话,摆脱原有会话进程组的控制。 +要摆脱终端的控制,就要关闭三个文件描述符号:标准输入设备,标准输出设备,标准错误输出设备,然后重定向当前进程 IO 操作到/dev/null (黑洞设备)。然后要创建新的会话,摆脱原有会话进程组的控制。 这里要提到进程的组织形式:多个进程组成一个进程组,多个进程组组成一个会话。这里不详细解释会话是什么。 @@ -198,11 +199,11 @@ TPGID为-1的话,就说明是守护进程。 第二种: -     1. 重设文件权限 `umask;` +1. 重设文件权限 `umask;`     2. 创建子进程 `fork`;     3. 结束父进程;     4. 创建新会话 `setsid;` -     5. 防止子进程成为僵尸进程 忽略SIGCHILD SIGUP信号; +     5. 防止子进程成为僵尸进程 忽略 SIGCHILD SIGUP 信号;     6. 改变当前工作目录 `chdir`;     7. 重定向文件描述符号 `open dup(fd,0) dup(fd,1)` . @@ -275,7 +276,7 @@ int main(void) 上文提到,`fork`子进程会拷贝父进程的数据,因此父子进程间通信还是比较简单的。 -第一种通信方式,较为朴素,使用普通文件,进程A将要传递的信息放入这个文件,进程B再去读这个文件即可。父子进程间可通过文件描述符号,非父子进程之间就只能通过具体文件来通信。 +第一种通信方式,较为朴素,使用普通文件,进程 A 将要传递的信息放入这个文件,进程 B 再去读这个文件即可。父子进程间可通过文件描述符号,非父子进程之间就只能通过具体文件来通信。 第二种方式,文件映射虚拟内存 `mmap`。 @@ -283,7 +284,7 @@ int main(void) 除此之外,还有信号、共享内存、消息队列、信号量和网络可用于通信。 -本文主要讲前3种。 +本文主要讲前 3 种。 下面代码简单演示了第一种: @@ -306,7 +307,7 @@ int main(void) exit(-1); } printf("创建文件成功\n"); - if (fork()) + if (fork()) { int n = 0; while(true) { @@ -317,14 +318,14 @@ int main(void) n++; } } - else + else { int m; while(true) { sleep(1); int fd = open("test.dat",O_RDONLY); read(fd,&m,4); - close(fd); + close(fd); printf(">> %d\n",m); } } @@ -337,7 +338,7 @@ int main(void) 下面讨论管道。 -管道也是FIFO结构,分为两种,匿名管道和有名管道。 +管道也是 FIFO 结构,分为两种,匿名管道和有名管道。 父子进程使用匿名管道。 @@ -396,7 +397,7 @@ int main(void) 接着演示有名管道,流程如下: -| 进程A | 进程B | +| 进程 A | 进程 B | | ------------------- | ------------------ | | 创建管道文件 mkfifo | | | 打开管道文件 | 打开管道文件 | @@ -407,7 +408,7 @@ int main(void) ![process-19](./assets/f835945d5de246bcabdff51dd984aaf2/process-19.png) -进程A的代码: +进程 A 的代码: ```c #include @@ -450,7 +451,7 @@ int main(void) } ``` -进程B: +进程 B: ```c #include diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/20220320105749.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/20220320105749.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/20220320105749.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/20220320105749.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320093722657.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320093722657.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320093722657.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320093722657.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095118775.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095118775.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095118775.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095118775.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095155376.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095155376.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095155376.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095155376.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095200261.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095200261.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095200261.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320095200261.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100348242.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100348242.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100348242.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100348242.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100405899.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100405899.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100405899.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100405899.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100449488.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100449488.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100449488.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320100449488.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101157474.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101157474.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101157474.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101157474.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101227035.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101227035.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101227035.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101227035.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101434997.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101434997.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101434997.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101434997.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101454081.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101454081.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101454081.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101454081.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101504852.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101504852.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101504852.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101504852.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101732493.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101732493.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101732493.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101732493.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101745292.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101745292.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101745292.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101745292.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101820792.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101820792.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101820792.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101820792.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101824816.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101824816.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101824816.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101824816.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101844194.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101844194.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101844194.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101844194.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101854044.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101854044.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101854044.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320101854044.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102217610.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102217610.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102217610.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102217610.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102222415.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102222415.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102222415.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102222415.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102302686.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102302686.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102302686.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102302686.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102333633.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102333633.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102333633.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102333633.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102355312.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102355312.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102355312.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102355312.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102440403.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102440403.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102440403.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102440403.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102453240.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102453240.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102453240.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320102453240.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103210374.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103210374.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103210374.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103210374.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103621058.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103621058.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103621058.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320103621058.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105413049.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105413049.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105413049.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105413049.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105426083.png b/src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105426083.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105426083.png rename to src/pages/posts/blogs/技术/Linux/assets/cbea6761a0164906b8396942cf61c664/image-20220320105426083.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/20220320105749.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/7cb86c73b9e73893e6b0e0433d476928.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/7cb86c73b9e73893e6b0e0433d476928.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/7cb86c73b9e73893e6b0e0433d476928.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/7cb86c73b9e73893e6b0e0433d476928.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-1.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-10.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-10.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-10.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-10.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-11.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-11.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-11.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-11.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-12.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-12.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-12.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-12.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-13.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-13.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-13.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-13.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-14.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-14.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-14.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-14.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-15.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-2.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-3.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-4.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-5.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-6.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-7.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-8.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png b/src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png rename to src/pages/posts/blogs/技术/Linux/assets/dfc39c2948664aa78df4a4b4aa11bb2c/signal-9.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/20220320105749.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-1.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-1.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-1.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-1.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-10.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-10.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-10.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-10.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-11.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-11.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-11.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-11.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-12.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-12.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-12.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-12.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-13.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-13.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-13.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-13.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-14.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-14.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-14.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-14.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-15.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-15.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-15.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-15.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-16.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-16.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-16.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-16.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-17.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-17.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-17.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-17.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-18.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-18.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-18.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-18.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-19.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-19.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-19.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-19.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-2.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-2.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-2.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-2.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-20.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-20.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-20.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-20.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-21.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-21.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-21.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-21.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-22.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-22.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-22.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-22.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-3.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-3.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-3.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-3.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-4.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-4.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-4.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-4.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-5.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-5.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-5.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-5.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-6.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-6.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-6.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-6.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-7.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-7.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-7.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-7.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-8.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-8.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-8.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-8.png diff --git a/src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-9.png b/src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-9.png similarity index 100% rename from src/pages/posts/blogs/01.技术/03.Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-9.png rename to src/pages/posts/blogs/技术/Linux/assets/f835945d5de246bcabdff51dd984aaf2/process-9.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/10.Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md b/src/pages/posts/blogs/技术/Python/Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md similarity index 77% rename from src/pages/posts/blogs/01.技术/04.Python/10.Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md rename to src/pages/posts/blogs/技术/Python/Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md index 16032c4..2c9c6ce 100644 --- a/src/pages/posts/blogs/01.技术/04.Python/10.Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md +++ b/src/pages/posts/blogs/技术/Python/Python爬虫实战-爬取TIOBE-TOP20语言排行榜.md @@ -1,31 +1,32 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Python爬虫实战 - 爬取TIOBE TOP20语言排行榜 -date: 2022-04-05 13:14:13 -categories: +pubDate: 2022-04-05 +categories: - 技术 - Python cover: ./assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png tid: python-spider-tiobe-top description: 使用python爬虫的实践记录。 permalink: /pages/019940/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- -## Python爬虫实战 - 爬取TIOBE TOP20语言排行榜 +## Python 爬虫实战 - 爬取 TIOBE TOP20 语言排行榜 URL: [index | TIOBE - The Software Quality Company](https://www.tiobe.com/tiobe-index/) -IDE: PyCharm Professional +IDE: PyCharm Professional -要爬取的是排名前20的语言榜单,并将其存成文本文件和生成词云。 +要爬取的是排名前 20 的语言榜单,并将其存成文本文件和生成词云。 ![python-spider-1](./assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png) -这个榜单包括6列,分别是2022年3月的排名(Mar 2022)、2021年3月的排名(Mar 2021)、增减、程序语言(Programming Language)、占比(Ratings)、变化率(Change)。 +这个榜单包括 6 列,分别是 2022 年 3 月的排名(Mar 2022)、2021 年 3 月的排名(Mar 2021)、增减、程序语言(Programming Language)、占比(Ratings)、变化率(Change)。 #### 前置准备 @@ -38,17 +39,17 @@ import re import wordcloud ``` -requests是用来发起https请求,并获取结果的。BeautifulSoup用于解析网页html代码,re用于正则匹配,wordcloud用于生成词云。 +requests 是用来发起 https 请求,并获取结果的。BeautifulSoup 用于解析网页 html 代码,re 用于正则匹配,wordcloud 用于生成词云。 -检查网页源代码,可以发现整个榜单放id为top20的table标签下: +检查网页源代码,可以发现整个榜单放 id 为 top20 的 table 标签下: ![python-spider-2](./assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png) -榜单的主体在这个table标签的tbody标签下: +榜单的主体在这个 table 标签的 tbody 标签下: ![python-spider-3](./assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png) -而每一行都被划分在tbody一个tr标签下: +而每一行都被划分在 tbody 一个 tr 标签下: ![python-spider-4](./assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png) @@ -63,13 +64,13 @@ soup = BeautifulSoup(res.text,"html.parser") table = soup.find("table", id="top20").find("tbody").find_all("tr") ``` -上述代码获取了网页html源码并解析,返回一个soup对象,使用find和find_all函数根据标签查找,获取tr标签下数据组成的列表。 +上述代码获取了网页 html 源码并解析,返回一个 soup 对象,使用 find 和 find_all 函数根据标签查找,获取 tr 标签下数据组成的列表。 接下来将其打印出来看看: ![python-spider-5](./assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png) -打印出了每一个tr标签下的内容,要获取的数据就在其中: +打印出了每一个 tr 标签下的内容,要获取的数据就在其中: ```python for item in table: @@ -90,16 +91,16 @@ for item in table: 这时派上用场的是正则表达式。 -这里使用re模块中的search函数: +这里使用 re 模块中的 search 函数: ```python re.search(pattern, string, flags=0) # 扫描整个字符串并返回第一个成功的匹配。 ``` -| 参数 | 描述 | -| ------- | ------------------------------------------------------------ | -| pattern | 匹配的正则表达式 | -| string | 要匹配的字符串 | +| 参数 | 描述 | +| ------- | ---------------------------------------------------------------------- | +| pattern | 匹配的正则表达式 | +| string | 要匹配的字符串 | | flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 | 不难发现,在上面爬到的文本中,每一行的第一个数字就是语言的当前排名(1,2,3...),因此这是固定的,后面紧跟的数字是去年排名,再跟着的若干单词是语言的名字,随后两个百分数就是占比和变化率。 @@ -112,7 +113,7 @@ re.search(pattern, string, flags=0) # 扫描整个字符串并返回第一个成 接下来要匹配占比,显然这个百分数后面都会跟着一个正号或负号,因此表达式可以写成 -"(\d+.([0-9]*?)%+)|(\d+.([0-9]*?)%-)",最后剩下的是变化率,这个百分数之前都。有正负号,所以可以直接写出"-(.*?)%|+(.*?)%"。最后得到的结果用.group()函数取出即可。 +"(\d+.([0-9]_?)%+)|(\d+.([0-9]_?)%-)",最后剩下的是变化率,这个百分数之前都。有正负号,所以可以直接写出"-(._?)%|+(._?)%"。最后得到的结果用.group()函数取出即可。 每一行提取出的数据放到一个元组里: @@ -136,7 +137,7 @@ for item in table: 因为最后的结果要保存,所以要定义一个列表,将元组放到列表中。 -考虑到要生成词云,所以同样要定义一个字典,与程序语言名称为key,以占比为值,这里要把百分比的%去掉,然后转化为浮点数: +考虑到要生成词云,所以同样要定义一个字典,与程序语言名称为 key,以占比为值,这里要把百分比的%去掉,然后转化为浮点数: ```python words = {} @@ -167,9 +168,9 @@ for item in result: f.close() ``` -上述代码中使用了格式化字符串,利用了format函数,利用open函数打开一个文件,指定标志为"w+",使用write函数向其中写入数据,使用close函数最后关闭文件。 +上述代码中使用了格式化字符串,利用了 format 函数,利用 open 函数打开一个文件,指定标志为"w+",使用 write 函数向其中写入数据,使用 close 函数最后关闭文件。 -如下是生成词云的代码,width和height指定长宽,background_color制定背景色: +如下是生成词云的代码,width 和 height 指定长宽,background_color 制定背景色: ```python w = wordcloud.WordCloud(width=1000, height=700, background_color="white") @@ -177,9 +178,9 @@ w.generate_from_frequencies(words) w.to_file("result.png") ``` -generate_from_frequencies接收一个字典。 +generate_from_frequencies 接收一个字典。 -最后to_file生成最后的图片文件。 +最后 to_file 生成最后的图片文件。 完整代码如下: diff --git a/src/pages/posts/blogs/01.技术/04.Python/09.Python爬虫实战-获取王者荣耀英雄大全.md b/src/pages/posts/blogs/技术/Python/Python爬虫实战-获取王者荣耀英雄大全.md similarity index 86% rename from src/pages/posts/blogs/01.技术/04.Python/09.Python爬虫实战-获取王者荣耀英雄大全.md rename to src/pages/posts/blogs/技术/Python/Python爬虫实战-获取王者荣耀英雄大全.md index 6a04f93..0bfcb23 100644 --- a/src/pages/posts/blogs/01.技术/04.Python/09.Python爬虫实战-获取王者荣耀英雄大全.md +++ b/src/pages/posts/blogs/技术/Python/Python爬虫实战-获取王者荣耀英雄大全.md @@ -1,21 +1,22 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Python爬虫实战-获取王者荣耀英雄大全 -date: 2022-04-17 14:07:55 -categories: +pubDate: 2022-04-17 14:07:55 +categories: - 技术 - Python cover: ./assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png tid: python-spider-wzry-hero description: 使用python爬虫的实践记录,王者荣耀篇。 permalink: /pages/b8d343/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- -## Python爬虫实战-获取王者荣耀英雄大全 +## Python 爬虫实战-获取王者荣耀英雄大全 URL: https://pvp.qq.com/web201605/herolist.shtml @@ -25,17 +26,17 @@ URL: https://pvp.qq.com/web201605/herolist.shtml ![python-wzry-1](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png) -不难发现,这是静态网页,对于众多英雄的信息,并未使用js渲染,这貌似是个软柿子? +不难发现,这是静态网页,对于众多英雄的信息,并未使用 js 渲染,这貌似是个软柿子? -按下F12使用开发者工具,点击Doc,查看请求的Reponse,可以看到众多英雄的信息在这个静态文档列举了出来,于是似乎只要按照html标签就可以轻松获取信息(*后面会解释,这实际上是个坑,先暂且按照这个思路进行*)。 +按下 F12 使用开发者工具,点击 Doc,查看请求的 Reponse,可以看到众多英雄的信息在这个静态文档列举了出来,于是似乎只要按照 html 标签就可以轻松获取信息(_后面会解释,这实际上是个坑,先暂且按照这个思路进行_)。 ![python-wzry-2](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png) -拼接li标签下对应的链接(https://pvp.qq.com/web201605/ + herodetail/***.html),就可以访问到指定英雄对应的链接,如下所示: +拼接 li 标签下对应的链接(https://pvp.qq.com/web201605/ + herodetail/\*\*\*.html),就可以访问到指定英雄对应的链接,如下所示: ![python-wzry-3](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png) -拼接的URL和访问的页面如下所示: +拼接的 URL 和访问的页面如下所示: ![python-wzry-4](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png) @@ -53,7 +54,7 @@ from bs4 import BeautifulSoup import re ``` -之后编写代码的流程也很清晰明了,先通过主页面获取所以英雄的名称及其对应的链接,因为该网页使用了GBK编码,所以要进行转码。 +之后编写代码的流程也很清晰明了,先通过主页面获取所以英雄的名称及其对应的链接,因为该网页使用了 GBK 编码,所以要进行转码。 代码如下: @@ -84,21 +85,21 @@ get_herolist() ![python-wzry-6](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png) -下面访问单个英雄的链接,理清HTML结构后就可以获取数据。 +下面访问单个英雄的链接,理清 HTML 结构后就可以获取数据。 -英雄的称号在h3标签中: +英雄的称号在 h3 标签中: ![python-wzry-7](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png) -英雄的属性在class="cover-list"的标签中,每个属性的信息在li标签中,每个属性的值其实就是横条的长度。 +英雄的属性在 class="cover-list"的标签中,每个属性的信息在 li 标签中,每个属性的值其实就是横条的长度。 ![python-wzry-8](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png) -这个值可以在li标签下的i标签中找到,只要取出style的值即可,这是一个百分数字符串,取这个字符串中":"和"%"之间的字符串,得到一个数字,这个数字就可以代表属性值的大小。 +这个值可以在 li 标签下的 i 标签中找到,只要取出 style 的值即可,这是一个百分数字符串,取这个字符串中":"和"%"之间的字符串,得到一个数字,这个数字就可以代表属性值的大小。 ![python-wzry-9](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png) -英雄的职业虽然没有以文本的形式显示出来,但如下`i`标签中的class值明显是和职业有关的: +英雄的职业虽然没有以文本的形式显示出来,但如下`i`标签中的 class 值明显是和职业有关的: ![python-wzry-10](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png) @@ -136,17 +137,17 @@ def get_heroinfo(): 首先定义了一个字典来存放英雄职业对应关系,然后遍历上一段代码获取到的列表,取出每个元素中的链接,进行访问。 -对每个链接再做一次请求,获取HTML文档后,借助标签进行数据提取,只要按照上文中说明的流程即可。我这里选择将属性值封装进一个列表。 +对每个链接再做一次请求,获取 HTML 文档后,借助标签进行数据提取,只要按照上文中说明的流程即可。我这里选择将属性值封装进一个列表。 我还想获得英雄关系,能便于我在选英雄时具有针对性... ![python-wzry-13](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png) -观察HTML代码,可以看到3大关系都放在如下3个标签中: +观察 HTML 代码,可以看到 3 大关系都放在如下 3 个标签中: ![python-wzry-14](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png) -一个关系中有两个英雄,分别放在li标签下,而a标签下存放的路径,就指向了这个英雄: +一个关系中有两个英雄,分别放在 li 标签下,而 a 标签下存放的路径,就指向了这个英雄: ![python-wzry-15](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png) @@ -241,7 +242,7 @@ get_heroinfo() 这是因为字典中没有这个键,这说明了什么? -说明了最开始爬到的诸多英雄,是有缺失的。访问一下这个528.shtml对应的页面: +说明了最开始爬到的诸多英雄,是有缺失的。访问一下这个 528.shtml 对应的页面: ![python-wzry-19](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png) @@ -261,17 +262,17 @@ get_heroinfo() ![python-wzry-22](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png) -再看看这让人匪夷所思的URL,搞不好数据还是停留在2016年的... +再看看这让人匪夷所思的 URL,搞不好数据还是停留在 2016 年的... -再看看请求头,发现status code是304并非200,可见发生了网页重定向: +再看看请求头,发现 status code 是 304 并非 200,可见发生了网页重定向: ![python-wzry-23](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png) -就不详细解释304的意思了,直接百度 [分析HTTP请求返回304状态码 - 百度文库](https://wenku.baidu.com/view/97ccaaa6d7d8d15abe23482fb4daa58da0111ca5.html)。 +就不详细解释 304 的意思了,直接百度 [分析 HTTP 请求返回 304 状态码 - 百度文库](https://wenku.baidu.com/view/97ccaaa6d7d8d15abe23482fb4daa58da0111ca5.html)。 遇到这种问题并非没有解决方法,但我就不继续挖坑了,因为我更乐意另辟蹊径。 -在XHR中发现了一条请求,返回的是json数据。 +在 XHR 中发现了一条请求,返回的是 json 数据。 ![python-wzry-24](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png) @@ -293,7 +294,7 @@ for result in results: ![python-wzry-25](./assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png) -之前以为静态网页就是软柿子了,但现在这个json数据似乎更加简明。所以说,我们不能局限在经验里。 +之前以为静态网页就是软柿子了,但现在这个 json 数据似乎更加简明。所以说,我们不能局限在经验里。 #### 改善代码 @@ -375,21 +376,21 @@ get_heroinfo() #### 数据存储 -下面实现将数据保存到excel。 +下面实现将数据保存到 excel。 -一个Excel文档也称为一个工作簿(workbook),每个工作簿里可以有多个工作表(worksheet),当前打开的工作表又叫活动表。 +一个 Excel 文档也称为一个工作簿(workbook),每个工作簿里可以有多个工作表(worksheet),当前打开的工作表又叫活动表。 ![](./assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png) -每个工作表里有行和列,特定的行与列相交的方格称为单元格(cell)。比如上图第A列和第1行相交的方格可以直接表示为A1单元格。 +每个工作表里有行和列,特定的行与列相交的方格称为单元格(cell)。比如上图第 A 列和第 1 行相交的方格可以直接表示为 A1 单元格。 -通过openpyxl.Workbook()函数就可以创建新的工作簿。 +通过 openpyxl.Workbook()函数就可以创建新的工作簿。 创建完新的工作簿后,还得获取工作表。不然程序会无所适从,不知道要把内容写入哪张工作表里。 添加完工作表,就能来操作单元格,往单元格里写入内容。 -使用append函数,就可以添加一行。 +使用 append 函数,就可以添加一行。 代码如下: @@ -550,4 +551,3 @@ if __name__ == '__main__': get_equiplist() save_excel() ``` - diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/006ARE9vgy1fwemc30vd5j303y052q2r.jpg b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/006ARE9vgy1fwemc30vd5j303y052q2r.jpg similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/006ARE9vgy1fwemc30vd5j303y052q2r.jpg rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/006ARE9vgy1fwemc30vd5j303y052q2r.jpg diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/crawler-l6-8-2019111.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/data-mining.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-1.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-10.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-11.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-11.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-11.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-11.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-12.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-12.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-12.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-12.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-13.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-14.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-15.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-16.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-16.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-16.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-16.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-17.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-17.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-17.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-17.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-18.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-18.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-18.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-18.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-19.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-2.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-21.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-21.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-21.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-21.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-22.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-23.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-24.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-25.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-26.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-26.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-26.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-26.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-28.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-28.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-28.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-28.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-29.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-29.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-29.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-29.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-3.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-4.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-5.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-5.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-5.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-5.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-6.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-7.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-8.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png b/src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png rename to src/pages/posts/blogs/技术/Python/assets/7e03f38d60aa4dec9f98cc3f3c137189/python-wzry-9.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/data-mining.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-1.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-2.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-3.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-4.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-5.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-6.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-6.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-6.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-6.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-7.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-7.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-7.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-7.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-8.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-8.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-8.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-8.png diff --git a/src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-9.png b/src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-9.png similarity index 100% rename from src/pages/posts/blogs/01.技术/04.Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-9.png rename to src/pages/posts/blogs/技术/Python/assets/867f99abfc5c46528fb1d3e570087ed9/python-spider-9.png diff --git a/src/pages/posts/blogs/更多/99.友情链接.md b/src/pages/posts/blogs/更多/99.友情链接.md new file mode 100644 index 0000000..aec9067 --- /dev/null +++ b/src/pages/posts/blogs/更多/99.友情链接.md @@ -0,0 +1,51 @@ +--- +layout: "../../../../layouts/MarkdownPost.astro" +title: 友情链接 +pubDate: 2019-12-25 14:27:01 +permalink: /friends +article: false +sidebar: false +author: + name: nbtca + link: https://github.com/nbtca +--- + + + +::: cardList + +```yaml +# - name: 麋鹿鲁哟 +# desc: 大道至简,知易行难 +# avatar: ./assets/82707d577b914020b54384a615b0676e/20200122153807.jpg # 可选 +# link: https://www.cnblogs.com/miluluyo/ # 可选 +# bgColor: '#CBEAFA' # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号 +# textColor: '#6854A1' # 可选,默认var(--textColor) +- name: 鲁冠泽的博客 + link: https://cimoc.cn/ + avatar: ./assets/82707d577b914020b54384a615b0676e/cimoccn.png + descr: Java, Web。 +- name: 江蕾的博客 + link: https://www.cnblogs.com/JLay + avatar: ./assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png + descr: 前端。 +- name: 黄文轩的博客 + link: https://www.cnblogs.com/N3ptune + avatar: ./assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png + descr: 网安, Linux和C/C++。 +- name: 陈学书的博客 + link: https://www.cnblogs.com/Flat-White + avatar: ./assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png + descr: Mac, 人工智能, Web和流水账。 +- name: 王纯的博客 + link: https://chundot.org + avatar: ./assets/82707d577b914020b54384a615b0676e/avatar.png + descr: Web。 +- name: 章晟玮的博客 + link: https://bcscb.xyz/ + avatar: https://cdn.bcscb.xyz/img/1.jpg + descr: 算法记录。 +``` diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/20200122153807.jpg b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/20200122153807.jpg similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/20200122153807.jpg rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/20200122153807.jpg diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/4J9NfH1UZD3sz5I.png diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/DoEH51Nj97Ah64a.png diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/VjBGkQ6c58vH4l9.png diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/avatar.png b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/avatar.png similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/avatar.png rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/avatar.png diff --git a/src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/cimoccn.png b/src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/cimoccn.png similarity index 100% rename from src/pages/posts/blogs/02.更多/assets/82707d577b914020b54384a615b0676e/cimoccn.png rename to src/pages/posts/blogs/更多/assets/82707d577b914020b54384a615b0676e/cimoccn.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191552434.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191552434.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191552434.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191552434.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191605526.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191605526.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191605526.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330191605526.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194742864.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194742864.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194742864.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194742864.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194805471.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194805471.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194805471.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194805471.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194913160.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194913160.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194913160.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194913160.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195134746.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195134746.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195134746.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195134746.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195213303.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195213303.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195213303.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195213303.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195242736.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195242736.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195242736.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195242736.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195408233.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195408233.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195408233.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195408233.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195541775.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195541775.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195541775.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195541775.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195559752.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195559752.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195559752.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195559752.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195619070.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195619070.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195619070.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195619070.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195637768.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195637768.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195637768.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195637768.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203752439.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203752439.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203752439.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203752439.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203833874.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203833874.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203833874.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203833874.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204327843.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204327843.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204327843.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204327843.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204448123.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204448123.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204448123.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204448123.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204510290.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204510290.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204510290.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204510290.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png b/src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png rename to src/pages/posts/blogs/更多/学习/assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/3R1HVIyfDLmTbdg.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/3R1HVIyfDLmTbdg.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/3R1HVIyfDLmTbdg.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/3R1HVIyfDLmTbdg.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/8cWuBzF4XeAjdE2.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/8cWuBzF4XeAjdE2.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/8cWuBzF4XeAjdE2.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/8cWuBzF4XeAjdE2.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/TedcPw8KplHf2IY.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/TedcPw8KplHf2IY.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/TedcPw8KplHf2IY.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/TedcPw8KplHf2IY.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/WIliEaTm82ZBFGN.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/WIliEaTm82ZBFGN.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/WIliEaTm82ZBFGN.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/WIliEaTm82ZBFGN.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203252544.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203252544.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203252544.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203252544.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203716083.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203716083.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203716083.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025203716083.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025204559387.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025204559387.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025204559387.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025204559387.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025205452863.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025205452863.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025205452863.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025205452863.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025211048557.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025211048557.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025211048557.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025211048557.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025212005574.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025212005574.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025212005574.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211025212005574.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153545952.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153545952.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153545952.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153545952.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153649933.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153649933.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153649933.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153649933.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153717317.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153717317.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153717317.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211026153717317.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211027193202773.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211027193202773.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211027193202773.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/image-20211027193202773.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/lUJINBQbGVD87c4.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/lUJINBQbGVD87c4.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/lUJINBQbGVD87c4.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/lUJINBQbGVD87c4.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/normal.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/normal.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/normal.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/normal.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/try-code.png b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/try-code.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/try-code.png rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/try-code.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/u7QD2qsrLR3YUeb.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/u7QD2qsrLR3YUeb.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/u7QD2qsrLR3YUeb.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/u7QD2qsrLR3YUeb.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-command.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-command.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-command.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-command.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-copy-by-line.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-copy-by-line.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-copy-by-line.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-copy-by-line.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-emmet.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-multi-cursor-.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-multi-cursor-.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-multi-cursor-.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-multi-cursor-.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-new-file.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-new-file.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-new-file.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-new-file.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-suggest.gif b/src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-suggest.gif similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-suggest.gif rename to src/pages/posts/blogs/更多/学习/assets/35fac4da06bf4822880f4412473dee9f/vscode-suggest.gif diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/0cffb62a9bd44a8794e39b8204af3c3c.jpg b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/0cffb62a9bd44a8794e39b8204af3c3c.jpg similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/0cffb62a9bd44a8794e39b8204af3c3c.jpg rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/0cffb62a9bd44a8794e39b8204af3c3c.jpg diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/1752ab3dc7184f5cb69d4c76f743ba0e.jpg b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/1752ab3dc7184f5cb69d4c76f743ba0e.jpg similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/1752ab3dc7184f5cb69d4c76f743ba0e.jpg rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/1752ab3dc7184f5cb69d4c76f743ba0e.jpg diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312212521.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312212521.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312212521.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312212521.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312213204.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312213204.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312213204.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312213204.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214337.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214337.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214337.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214337.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214440.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214440.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214440.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214440.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214619.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214619.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214619.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214619.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214716.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214716.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214716.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/20220312214716.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/2a79fe27baf444f18c22804cedcd1f92.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/2a79fe27baf444f18c22804cedcd1f92.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/2a79fe27baf444f18c22804cedcd1f92.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/2a79fe27baf444f18c22804cedcd1f92.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/449e3766442942fd900d42257d98a143.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/449e3766442942fd900d42257d98a143.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/449e3766442942fd900d42257d98a143.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/449e3766442942fd900d42257d98a143.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/58769db089e54955afcda8adbda96706.jpg b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/58769db089e54955afcda8adbda96706.jpg similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/58769db089e54955afcda8adbda96706.jpg rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/58769db089e54955afcda8adbda96706.jpg diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/5ddecb4846354f308fd6b4402c24ef44.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/5ddecb4846354f308fd6b4402c24ef44.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/5ddecb4846354f308fd6b4402c24ef44.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/5ddecb4846354f308fd6b4402c24ef44.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/DfcfL0.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/Oj6hze.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/a19adc7c1f1644cab755c52557b6c39d.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/a19adc7c1f1644cab755c52557b6c39d.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/a19adc7c1f1644cab755c52557b6c39d.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/a19adc7c1f1644cab755c52557b6c39d.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/ad53676ed8604c47bdfc11626c82bf8d.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/ad53676ed8604c47bdfc11626c82bf8d.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/ad53676ed8604c47bdfc11626c82bf8d.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/ad53676ed8604c47bdfc11626c82bf8d.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/b709751067bc4bf0ae6c7d47faa5507d.jpg b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/b709751067bc4bf0ae6c7d47faa5507d.jpg similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/b709751067bc4bf0ae6c7d47faa5507d.jpg rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/b709751067bc4bf0ae6c7d47faa5507d.jpg diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/bdc30a798d5f400dbc7cadd4212fcdae.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/bdc30a798d5f400dbc7cadd4212fcdae.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/bdc30a798d5f400dbc7cadd4212fcdae.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/bdc30a798d5f400dbc7cadd4212fcdae.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c44da6e39be844a7880a8933b2a8d3d6.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c44da6e39be844a7880a8933b2a8d3d6.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c44da6e39be844a7880a8933b2a8d3d6.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c44da6e39be844a7880a8933b2a8d3d6.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c5289004de6d4fc2bcb88eda253d2586.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c5289004de6d4fc2bcb88eda253d2586.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c5289004de6d4fc2bcb88eda253d2586.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/c5289004de6d4fc2bcb88eda253d2586.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/jnNsb2.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png b/src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png similarity index 100% rename from src/pages/posts/blogs/02.更多/01.学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png rename to src/pages/posts/blogs/更多/学习/assets/b1fb69a768564b46a6b42a8efdc6bd13/uUVHli.png diff --git a/src/pages/posts/blogs/02.更多/01.学习/11.vscode操作指北.md b/src/pages/posts/blogs/更多/学习/vscode操作指北.md similarity index 98% rename from src/pages/posts/blogs/02.更多/01.学习/11.vscode操作指北.md rename to src/pages/posts/blogs/更多/学习/vscode操作指北.md index e052244..756b394 100644 --- a/src/pages/posts/blogs/02.更多/01.学习/11.vscode操作指北.md +++ b/src/pages/posts/blogs/更多/学习/vscode操作指北.md @@ -1,18 +1,19 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: Visual Studio Code入门操作指北 tid: try-vscode -date: 2022-03-04 10:23:23 +pubDate: 2022-03-04 10:23:23 cover: ./assets/35fac4da06bf4822880f4412473dee9f/try-code.png -categories: +categories: - 更多 - 学习 description: vscode入门指北,介绍一些常用操作。 permalink: /pages/e8dae9/ -author: +author: name: chundot link: https://chundot.github.io -tags: - - +tags: + - --- # Visual Studio Code 入门指北 diff --git a/src/pages/posts/blogs/02.更多/01.学习/03.寝室软路由记录.md b/src/pages/posts/blogs/更多/学习/寝室软路由记录.md similarity index 98% rename from src/pages/posts/blogs/02.更多/01.学习/03.寝室软路由记录.md rename to src/pages/posts/blogs/更多/学习/寝室软路由记录.md index fddfccd..5d00717 100644 --- a/src/pages/posts/blogs/02.更多/01.学习/03.寝室软路由记录.md +++ b/src/pages/posts/blogs/更多/学习/寝室软路由记录.md @@ -1,18 +1,19 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: 寝室软路由记录 tid: unraid-notes -date: 2022-03-12 23:21:59 -categories: +pubDate: 2022-03-12 23:21:59 +categories: - 更多 - 学习 cover: ./assets/b1fb69a768564b46a6b42a8efdc6bd13/93LwmCW57GOt2lh.png description: 寝室软路由的记录,unraid的折腾和各种体验,文件存储,离线下载,游戏服务器…… permalink: /pages/a8d792/ -author: +author: name: jollari link: https://github.com/Jolanyu -tags: - - +tags: + - --- # 寝室软路由记录 diff --git a/src/pages/posts/blogs/02.更多/01.学习/02.逆向工程小实战.md b/src/pages/posts/blogs/更多/学习/逆向工程小实战.md similarity index 71% rename from src/pages/posts/blogs/02.更多/01.学习/02.逆向工程小实战.md rename to src/pages/posts/blogs/更多/学习/逆向工程小实战.md index cd6fe35..8d9054e 100644 --- a/src/pages/posts/blogs/02.更多/01.学习/02.逆向工程小实战.md +++ b/src/pages/posts/blogs/更多/学习/逆向工程小实战.md @@ -1,22 +1,21 @@ --- +layout: "../../../../../layouts/MarkdownPost.astro" title: 逆向工程实战 -date: 2022-03-30 11:17:47 -categories: +pubDate: 2022-03-30 11:17:47 +categories: - 更多 - 学习 cover: ./assets/0eab0906726b4c17a9a170d62d5f96cb/20220330205540.png tid: reverse-practice description: 逆向破解的一系列教程。 permalink: /pages/07d5c5/ -author: +author: name: N3ptune link: https://www.cnblogs.com/N3ptune -tags: - - +tags: + - --- - - # 逆向工程实战 ## 破解软件序列号 @@ -47,11 +46,11 @@ tags: 采用这种方法,可以使内存中不出现明码。 -现在使用OllyDBG调试该程序: +现在使用 OllyDBG 调试该程序: ![image-20220330195111975](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195111975.png) -在程序的开头可以看见一些win32窗口程序的启动代码。 +在程序的开头可以看见一些 win32 窗口程序的启动代码。 例如`RegisterClass`和`CreateWindow`函数都是一些创建窗口的必要操作,但这些并非是关注的重点: @@ -69,7 +68,7 @@ tags: 观察代码可知,这里的操作是弹窗,调用`MessageBox`函数,告知用户输入错误,在此处打上断点。 -按F9,执行到底,可以发现窗口被完全显示了出来,现在再点开注册对话框,向name输入"test",向序列号输入"123456": +按 F9,执行到底,可以发现窗口被完全显示了出来,现在再点开注册对话框,向 name 输入"test",向序列号输入"123456": ![image-20220330195316160](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195316160.png) @@ -81,9 +80,9 @@ tags: ![image-20220330195423616](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195423616.png) -不难推测,这两个push字符串的操作紧跟着的两个call分别都调用了各自的转换函数,即上文提到的F和F2,在这两个地方下断点。 +不难推测,这两个 push 字符串的操作紧跟着的两个 call 分别都调用了各自的转换函数,即上文提到的 F 和 F2,在这两个地方下断点。 -`Ctrl+F2`重启程序,按F9后点开注册对话框,输入和之前一样的字符,运行到断点处: +`Ctrl+F2`重启程序,按 F9 后点开注册对话框,输入和之前一样的字符,运行到断点处: ![image-20220330195523647](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330195523647.png) @@ -113,7 +112,7 @@ tags: ![image-20220330194855414](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194855414.png) -程序完美地越过了上一个call,没有引发报错弹窗: +程序完美地越过了上一个 call,没有引发报错弹窗: ![image-20220330194831295](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194831295.png) @@ -127,37 +126,37 @@ tags: ### 算法逆向 -现在来尝试还原两个加密函数,现在回车进入第一个加密函数F1(call 0040137E处): +现在来尝试还原两个加密函数,现在回车进入第一个加密函数 F1(call 0040137E 处): ![image-20220330194659075](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194659075.png) -第一句代码是将esp+0x4地址处的数据放入寄存器,显然这是压入栈的字符串"test"的首地址,在后续的一系列操作结束后,会将这个值再从栈取出,来指向字符串首地址。 +第一句代码是将 esp+0x4 地址处的数据放入寄存器,显然这是压入栈的字符串"test"的首地址,在后续的一系列操作结束后,会将这个值再从栈取出,来指向字符串首地址。 -`push esi`是将esi寄存器的值入栈,mov指令是取字符串中的 1 个字节,test al,al是判断是否为 0 ,实际上是在判断是否到了字符串的末尾: +`push esi`是将 esi 寄存器的值入栈,mov 指令是取字符串中的 1 个字节,test al,al 是判断是否为 0 ,实际上是在判断是否到了字符串的末尾: ![image-20220330194630302](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194630302.png) -如果到了末尾,那么test指令就会修改标志寄存器对应的比特位,下一行的je指令就会被执行,直接跳转到其他地方。 +如果到了末尾,那么 test 指令就会修改标志寄存器对应的比特位,下一行的 je 指令就会被执行,直接跳转到其他地方。 -如果没有到末尾,那么这一句指令不会被执行,而是继续顺序往下执行。cmp al,0x41的作用是比较,在上面的操作中,al已经存入了字符串中的 1 个字节,那么这一步操作实际上是在比较字符ASCII值的大小,配合jb指令可以判断是否为字母,如果不是字母则跳转到004013AC,这个地址就是弹出错误窗口的代码处: +如果没有到末尾,那么这一句指令不会被执行,而是继续顺序往下执行。cmp al,0x41 的作用是比较,在上面的操作中,al 已经存入了字符串中的 1 个字节,那么这一步操作实际上是在比较字符 ASCII 值的大小,配合 jb 指令可以判断是否为字母,如果不是字母则跳转到 004013AC,这个地址就是弹出错误窗口的代码处: ![image-20220330194610223](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194610223.png) -同理`cmp al,0x5A`是和字母Z比较,配合`jnb`指令,判断是否为小写字母,如果是小写字母,则跳到00401394 ,执行call 004013D2,查看004013D2处代码: +同理`cmp al,0x5A`是和字母 Z 比较,配合`jnb`指令,判断是否为小写字母,如果是小写字母,则跳到 00401394 ,执行 call 004013D2,查看 004013D2 处代码: ![image-20220330194547967](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194547967.png) -`sub al,0x20`是将al中的值减去0x20,实际上是将ACII码减去0x20,目的是将小写字母转换为大写字母,然后再将结果放到原来的地址[esi]中。 +`sub al,0x20`是将 al 中的值减去 0x20,实际上是将 ACII 码减去 0x20,目的是将小写字母转换为大写字母,然后再将结果放到原来的地址[esi]中。 -`inc esi`,是将esi中的值自加 1 ,在代码中的目的是指向字符串中的下一个字符,可以当成一个“指针”,转换大小写后同样要将esi加 1 以指向下一个字符,因此这里有两处`inc esi`。 +`inc esi`,是将 esi 中的值自加 1 ,在代码中的目的是指向字符串中的下一个字符,可以当成一个“指针”,转换大小写后同样要将 esi 加 1 以指向下一个字符,因此这里有两处`inc esi`。 下一个`jmp`指令是回跳到前面的代码地址,显然这是在循环中。那么这个循环的退出条件显然是上文提到的字符串中的字符全被取完。 ![image-20220330194516902](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194516902.png) -循环过后,`pop esi`的目的是重新指向字符串首地址,将最初压入栈的esi+0x4地址处的值放入esi。 +循环过后,`pop esi`的目的是重新指向字符串首地址,将最初压入栈的 esi+0x4 地址处的值放入 esi。 -现在重新指向字符串首地址后,又执行了call 004013C2,现在查看对应代码: +现在重新指向字符串首地址后,又执行了 call 004013C2,现在查看对应代码: ![image-20220330194453624](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194453624.png) @@ -165,17 +164,17 @@ tags: 下面的`mov`操作和上文提到过的一样,是取一个字符,`je`同样是条件判断,结合下面的`inc`指令和`jmp`指令来看,循环取出 1 个字符进行操作,当字符取完则跳到`retn`指令。 -未取完字符时,执行add edi,ebx。 +未取完字符时,执行 add edi,ebx。 -bl存储的数据是ebx寄存器中数据的低 8 位,或者说是ebx的低字节(ebx的高 8 位是bh,低 8 位是bl),现在ebx的高 8 位都是 0 ,那么实际上ebx存储的就是字符的值。因为add指令要求所操作的寄存器宽度一样,所以不能直接拿bl进行运算。 +bl 存储的数据是 ebx 寄存器中数据的低 8 位,或者说是 ebx 的低字节(ebx 的高 8 位是 bh,低 8 位是 bl),现在 ebx 的高 8 位都是 0 ,那么实际上 ebx 存储的就是字符的值。因为 add 指令要求所操作的寄存器宽度一样,所以不能直接拿 bl 进行运算。 -那么这一步add的操作就是将字符的值加到edi里,整个代码的作用是循环将用户输入的字符的值加到一个变量里。 +那么这一步 add 的操作就是将字符的值加到 edi 里,整个代码的作用是循环将用户输入的字符的值加到一个变量里。 -函数结束后,edi中保存的就是所以字符值的和,`xor edi,0x5678`就是将这个和与0x5678做异或运算。 +函数结束后,edi 中保存的就是所以字符值的和,`xor edi,0x5678`就是将这个和与 0x5678 做异或运算。 -那么到这里,整个函数已经很清晰了。这个函数在做的操作是循环取出整个字符串的每个字符,如果不是字母则报错,如果是小写字母则减0x20转成大写字母,同时将这些字符的值求和,与0x5678异或。 +那么到这里,整个函数已经很清晰了。这个函数在做的操作是循环取出整个字符串的每个字符,如果不是字母则报错,如果是小写字母则减 0x20 转成大写字母,同时将这些字符的值求和,与 0x5678 异或。 -现在可以轻松写出对应的C语言代码: +现在可以轻松写出对应的 C 语言代码: ```c int F1(char *name) { @@ -194,19 +193,19 @@ int F1(char *name) { } ``` -下面就看F2的代码: +下面就看 F2 的代码: ![image-20220330194426456](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194426456.png) -前 3 步`xor`都是将寄存器清 0 ,下面的`mov`是取出字符串首地址放入esi,esi作为指针指向字符串首地址。 +前 3 步`xor`都是将寄存器清 0 ,下面的`mov`是取出字符串首地址放入 esi,esi 作为指针指向字符串首地址。 -`mov al,0xA`将eax的值设置为0xA,紧接着的`mov bl`,...、`test bl,bl` 和`je` ... 是从字符串取出一个字符和判0 。 +`mov al,0xA`将 eax 的值设置为 0xA,紧接着的`mov bl`,...、`test bl,bl` 和`je` ... 是从字符串取出一个字符和判 0 。 -sub b1,0x30是将寄存器中的值减去0x30,即是将字符的值减去0x30,`imul edi,eax`是将edi和eax作乘法,这里eax已经赋值为 10 了,因此这条指令等价于edi = edi * 10。 +sub b1,0x30 是将寄存器中的值减去 0x30,即是将字符的值减去 0x30,`imul edi,eax`是将 edi 和 eax 作乘法,这里 eax 已经赋值为 10 了,因此这条指令等价于 edi = edi \* 10。 -其后的add指令是将edi的值与ebx的值相加。 +其后的 add 指令是将 edi 的值与 ebx 的值相加。 -这几条语句连贯起来看,其实就是 edi = (edi*10) + (字符-0x30),循环这个操作。整个循环结束后将edi的值与0x1234异或,放入ebx作为返回值。 +这几条语句连贯起来看,其实就是 edi = (edi\*10) + (字符-0x30),循环这个操作。整个循环结束后将 edi 的值与 0x1234 异或,放入 ebx 作为返回值。 分析后,可以很轻松还原出下列代码: @@ -221,21 +220,20 @@ int F2(char *code) { } ``` -从上述代码不难看出,代码中的循环实际上是将数字字符串转化为int型纯数字("123456"->123456)。 +从上述代码不难看出,代码中的循环实际上是将数字字符串转化为 int 型纯数字("123456"->123456)。 -现在只要上述两个函数的返回k1与k2相等,即可注册成功。 +现在只要上述两个函数的返回 k1 与 k2 相等,即可注册成功。 -编写注册机时要对函数F1或F2进行逆变换,如果不能就只能穷举了。 +编写注册机时要对函数 F1 或 F2 进行逆变换,如果不能就只能穷举了。 异或运算是可以求逆的,还有这里有个小细节要注意: ![image-20220330194354839](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194354839.png) -观察`GetDlgItemTextA`的参数可知,该函数只读入11(0xB)个字符,末尾的 0 用去 1 个,那么实际的name字符串只有10个字符。 +观察`GetDlgItemTextA`的参数可知,该函数只读入 11(0xB)个字符,末尾的 0 用去 1 个,那么实际的 name 字符串只有 10 个字符。 下面是完整的注册机代码: - ```c #include int keygen(char *name) { @@ -260,6 +258,7 @@ int main(void) { return 0; } ``` + 输入该注册码,注册成功! ![image-20220330194322408](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330194322408.png) @@ -278,9 +277,9 @@ int main(void) { 有一类程序,每次运行时都有时间限制,例如运行 10 分钟或者 20 分钟就停止,必须重新运行程序才可正常工作。 -这类程序里有一个计时器来统计程序运行的时间。在Windows系统中,有如下选择可以实现一个计时器。 +这类程序里有一个计时器来统计程序运行的时间。在 Windows 系统中,有如下选择可以实现一个计时器。 -#### SetTimer函数 +#### SetTimer 函数 微软官方文档中函数原型如下: @@ -293,13 +292,13 @@ UINT_PTR SetTimer( - `hWnd` :窗口句柄,若计时器到时,系统会向这个窗口发送`WM_TIMER`消息; - `nIDEvent` :计时器标识; - `uElapse` :指定计时器时间间隔; -- `TIMEPROC` :回调函数。若计时器超时,系统将调用这个函数。如果为NULL,若计时器超时,将向相应的窗口发送`WM_TIMER`消息。 +- `TIMEPROC` :回调函数。若计时器超时,系统将调用这个函数。如果为 NULL,若计时器超时,将向相应的窗口发送`WM_TIMER`消息。 -应用程序可在初始化时调用这个API函数,向系统申请一个计时器并指定计时器的时间间隔,同时获得一个处理计时器超时的回调函数。 +应用程序可在初始化时调用这个 API 函数,向系统申请一个计时器并指定计时器的时间间隔,同时获得一个处理计时器超时的回调函数。 若计时器超时,系统会向申请该计时器的窗口过程发送消息`WM_TIMER`,或者调用程序提供的回调函数。 -`SetTimer`函数是以Windows消息的方式工作的,精度受到了一定的限制。 +`SetTimer`函数是以 Windows 消息的方式工作的,精度受到了一定的限制。 当程序不需要计时器时,可以调用`KillTimer`函数来销毁。 @@ -376,7 +375,7 @@ void CALLBACK TimeProc(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTime) { } ``` -上述代码创建了一个窗口和一个计时器,设置visual studio链接器的子系统为窗口: +上述代码创建了一个窗口和一个计时器,设置 visual studio 链接器的子系统为窗口: ![image-20220330204302596](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204302596.png) @@ -384,29 +383,28 @@ void CALLBACK TimeProc(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTime) { ![image-20220330201027856](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330201027856.png) - 运行结果上所示,定时器每 1 秒弹出一个窗口。 #### 高精度多媒体计时器 -多媒体计时器的精度可以达到 1 毫秒,应用程序可以通过调用TimeSetEvent函数来启动一个多媒体计时器。 +多媒体计时器的精度可以达到 1 毫秒,应用程序可以通过调用 TimeSetEvent 函数来启动一个多媒体计时器。 ```c MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent); ``` -#### GetTickCount函数 +#### GetTickCount 函数 -Windows提供了API函数GetTickCount(),该函数返回的是系统自成功启动以来所经过的时间(以毫秒为 +Windows 提供了 API 函数 GetTickCount(),该函数返回的是系统自成功启动以来所经过的时间(以毫秒为 单位)。将该函数的两次返回值相减,就能知道程序已经运行了多久,这个函数的精度取决于系统的设 置。 -#### timeGetTime函数 +#### timeGetTime 函数 -多媒体计时器函数timeGetTime也可以返回windows自启动后所经过的时间(以毫秒为单位) +多媒体计时器函数 timeGetTime 也可以返回 windows 自启动后所经过的时间(以毫秒为单位) ### 拆解时间限制保护 @@ -416,11 +414,11 @@ Windows提供了API函数GetTickCount(),该函数返回的是系统自成功 只要下方的计时器走到 20 ,程序就会自动退出。 -书中提示这个程序使用了`SetTimer`函数,将其放入OllyDBG进行调试: +书中提示这个程序使用了`SetTimer`函数,将其放入 OllyDBG 进行调试: ![image-20220330204357729](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204357729.png) -右击界面-> **search for**-> **All intermodular calls** 打开调用API列表: +右击界面-> **search for**-> **All intermodular calls** 打开调用 API 列表: ![image-20220330204421684](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204421684.png) @@ -434,7 +432,7 @@ Windows提供了API函数GetTickCount(),该函数返回的是系统自成功 `jmp`指令使得执行流会越过`SetTimer`。 -按F9直接运行,可以发现,下方的计时数字消失了,证明计时器已经成功被拆除: +按 F9 直接运行,可以发现,下方的计时数字消失了,证明计时器已经成功被拆除: ![image-20220330204531250](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204531250.png) @@ -442,15 +440,15 @@ Windows提供了API函数GetTickCount(),该函数返回的是系统自成功 ![image-20220330204958834](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204958834.png) -这里可以发现一个比较,实际上eax存取的是当前计时,超过0x13则跳到另一处代码,此处代码执行的是`SendMessage`函数,向窗口发送`WM_CLOSE`消息来关闭窗口: +这里可以发现一个比较,实际上 eax 存取的是当前计时,超过 0x13 则跳到另一处代码,此处代码执行的是`SendMessage`函数,向窗口发送`WM_CLOSE`消息来关闭窗口: ![image-20220330205025475](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205025475.png) -可以修改这里的代码,将跳转语句修改为nop: +可以修改这里的代码,将跳转语句修改为 nop: ![image-20220330205052442](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205052442.png) -现在按F9,直接运行: +现在按 F9,直接运行: ![image-20220330205126602](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330205126602.png) @@ -466,7 +464,7 @@ Windows提供了API函数GetTickCount(),该函数返回的是系统自成功 考虑周全的话,软件最少要保存两个时间值,一个时间值是上述说的安装时间,另一个是最近运行的时间。 -用于获取时间的API函数有`GetSystemTime`、`GetLocalTime`和`GetFileTime`,调试时可以考虑在这些函数上下断点。 +用于获取时间的 API 函数有`GetSystemTime`、`GetLocalTime`和`GetFileTime`,调试时可以考虑在这些函数上下断点。 也可以利用`RegMon`、`FileMon`之类的软件进行监控,找到时间存放的位置。 @@ -476,7 +474,7 @@ Windows提供了API函数GetTickCount(),该函数返回的是系统自成功 ### 前置介绍 -这类程序一般是Demo版,其菜单或窗口中的部分选项是灰色的,无法使用。 +这类程序一般是 Demo 版,其菜单或窗口中的部分选项是灰色的,无法使用。 这种功能受限的程序一般分两种: @@ -506,11 +504,11 @@ BOOL EnableWindow([in] HWND hWnd, [in] BOOL bEnable); ![image-20220330204030266](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204030266.png) -放入OllyDBG进行调试: +放入 OllyDBG 进行调试: ![image-20220330204000672](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330204000672.png) -进入API列表: +进入 API 列表: ![image-20220330203859800](./assets/0eab0906726b4c17a9a170d62d5f96cb/image-20220330203859800.png) diff --git a/src/pages/posts/blogs/00.目录页/01.技术.md b/src/pages/posts/blogs/目录页/技术.md similarity index 100% rename from src/pages/posts/blogs/00.目录页/01.技术.md rename to src/pages/posts/blogs/目录页/技术.md diff --git a/src/pages/posts/blogs/00.目录页/02.更多.md b/src/pages/posts/blogs/目录页/更多.md similarity index 100% rename from src/pages/posts/blogs/00.目录页/02.更多.md rename to src/pages/posts/blogs/目录页/更多.md