From 3a0bfea8e39ca6a1e6f4c812386937f01062105c Mon Sep 17 00:00:00 2001 From: Sin Lee Date: Sun, 21 Dec 2025 17:47:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E7=AB=A0+1=20=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 120 +++++++++++++++++++++++ content/posts/linux添加frps为系统启动.md | 44 +++++++++ hugo.toml | 2 + static/favicon.ico | Bin 0 -> 15406 bytes 4 files changed, 166 insertions(+) create mode 100644 README.md create mode 100755 content/posts/linux添加frps为系统启动.md create mode 100644 static/favicon.ico diff --git a/README.md b/README.md new file mode 100644 index 0000000..c094a9d --- /dev/null +++ b/README.md @@ -0,0 +1,120 @@ + +# 🚀 我的 Hugo 博客操作手册 + +这份文档是为了防止我忘记 Hugo 指令而准备的“防呆”指南。 + +--- + +## 1. 常用开发指令 (本地电脑) + +在进行任何操作前,请先进入博客的根目录(即本文件所在的文件夹)。 + +### 🛠️ 启动本地预览(最常用) +```bash +hugo server -D +``` +* **作用**:在本地运行一个实时预览服务器。 +* **参数 `-D`**:表示显示标记为 `draft: true`(草稿)的文章。 +* **查看地址**:在浏览器输入 `http://localhost:1313/`。 +* **注意**:这个命令是动态的,你修改并保存 Markdown 文件后,浏览器会自动刷新。 + +### 📝 新建一篇文章 +```bash +hugo new posts/我的第一篇博客.md +``` +* **作用**:在 `content/posts/` 目录下创建一个新的 Markdown 文件,并带上基础的模板(元数据)。 +* **建议**:文件名尽量不要有空格,可以使用中划线,如 `my-first-post.md`。 + +### 🏗️ 生成静态 HTML 文件 +```bash +hugo +``` +* **作用**:将你的所有 Markdown 源码正式编译成 HTML/CSS/JS。 +* **产出**:所有的静态文件都会生成在根目录下的 `public/` 文件夹中。 +* **场景**:当你准备把网站更新到服务器上时,才运行这个命令。 + +--- + +## 2. 关于“写文章”的说明 + +### 💡 我可以直接把写好的 .md 挪进来吗? +**可以!** 你不需要非得用 `hugo new` 指令。你可以直接把写好的 Markdown 文件直接拖进 `content/posts/` 目录下。 + +**但是(非常重要):** +Hugo 识别文章是靠 Markdown 文件头部的 **Front Matter**(元数据)。如果你直接挪文件,请务必在文章最顶部加上这段代码(以 YAML 格式为例): + +```yaml +--- +title: "文章标题" +date: 2023-10-27T10:00:00+08:00 +draft: false +tags: ["标签1", "标签2"] +categories: ["分类"] +--- +``` + +* **draft: true**:如果是 true,生成网站时这篇文章会被忽略(除非你带了 `-D` 参数)。 +* **date**:Hugo 默认按照这个时间排序,如果时间是未来的时间,文章也不会显示。 + +--- + +## 3. 本地 vs 生产环境 (Linux 服务器) + +你在本地电脑和在 Linux 服务器上的操作可能略有不同,取决于你的部署方式。 + +### 场景 A:在本地生成,上传 `public` 文件夹 +这是最简单的方式。 +1. 本地运行 `hugo`。 +2. 使用 FTP/SCP/Rsync 将本地生成的 `public/` 文件夹里的所有内容发到 Linux 服务器的 Web 目录(如 `/var/www/html`)。 +3. **优势**:服务器不需要安装 Hugo。 + +### 场景 B:在服务器上通过源码生成 +如果你在服务器上也安装了 Hugo,并且通过 Git 同步代码: +1. 在服务器执行 `git pull` 同步源码。 +2. 在服务器执行 `hugo`(不需要带 server)。 +3. 确保你的 Nginx/Apache 指向的是服务器上的 `public` 目录。 + +### ⚠️ 区别提醒 +* **Hugo 版本**:确保本地和服务器的 Hugo 版本尽量一致,尤其是 Extended 版本(如果你使用了高级的 CSS 样式)。 +* **BaseURL**:在根目录的 `hugo.toml` (或 `config.toml`) 中,`baseURL` 必须写成你真实的域名(如 `https://www.example.com/`),否则服务器上的图片或样式可能加载不出来。 + +--- + +## 4. 常见问题排查 (新人必看) + +* **Q: 为什么我新建的文章在浏览器里看不见?** + * 检查文章头部的 `draft` 是不是 `true`。 + * 检查文章头部的 `date` 是不是未来的时间。 + * 如果你没运行 `hugo server -D`,请加上 `-D` 试试。 + +* **Q: 修改了主题配置,但是没生效?** + * 有时候是浏览器缓存。试试在浏览器按下 `Ctrl + F5` 强制刷新。 + * 如果是 Hugo 缓存,可以尝试删除 `resources/` 文件夹后重新运行。 + +* **Q: 怎么更换主题?** + * 主题放在 `themes/` 文件夹。 + * 在 `hugo.toml` 中修改 `theme = "你的主题文件夹名称"`。 + +--- + +## 5. 目录结构速查 +* `content/`:存放你的 Markdown 文章源码。 +* `static/`:存放图片、PDF、图标等原始资源,生成后会直接复制到根目录。 +* `themes/`:存放下载的主题。 +* `public/`:生成的成品网站(不要手动改这里面的代码)。 +* `hugo.toml` / `config.toml`:整个网站的“大脑”,改名字、改域名都在这里。 + +--- + +### ✍️ 每日更新流水账: +1. `cd` 进入目录 +2. `hugo new posts/xxx.md` 或 直接拖入 md 文件 +3. `hugo server -D` 预览效果 +4. 满意后,运行 `hugo` 编译 +5. 将 `public/` 部署到服务器 + +--- + +### 补充建议: +如果你以后还是觉得记命令麻烦,可以在你的项目根目录下新建一个叫 `deploy.sh` 的脚本文件,内容如下: + diff --git a/content/posts/linux添加frps为系统启动.md b/content/posts/linux添加frps为系统启动.md new file mode 100755 index 0000000..a2124af --- /dev/null +++ b/content/posts/linux添加frps为系统启动.md @@ -0,0 +1,44 @@ ++++ +date = '2025-12-21T17:02:45+08:00' +draft = false +title = 'linux添加frps为系统启动' + ++++ +## 增加一个服务(frps), 使用systemctl控制 + + + +cat > /etc/systemd/system/frps.service <lf$wME4Q z2ntG4>~2Ld5d@VeQ3VN#0}k`fJ&fba?Jt1+Q<`;OOp;5On?m zKG_ov%f#f;FU%R8o}NZuPZMrM96^BhIt2T=BH?x*h9x6&X4(HJmG(lT8AYi7X9)CJ z55HrpP?#SLt#-`*OLKnF>lGLrXvT%$KOi+J6nCOL(b-Xsi3!JOpPU?rQays~hgZ-y z*oNAs9JF?n5rpOWZ=SNCTHT1r=}Bk}ldz0WK{cVq9Z4Fp#|ogEG|a(t@y9xCGah&L zLav@dTNlwG)?#=>jLJ?0qQvn?8_mY_^XbJez8K;6^9$n;b?vAiFI8n3@ILqf`ud(C zY9xWyNI<`7$nN`1x;8ZSR6#247v`vxQna;JU`RVCyvy&GsH*M0-=b?rsw@i~`W}p! zrRdQQpjcLc+mh7T_aBVq+kJm*oavmwbE)TLMJeuSp8nujs8HA1UE{o=ABL&rWmsYv z1@p30U5zSDJz8}lbQ$}QM|4dt;Qx}B!U_iYo_UA*YU+GH*=u&0w!{y72D`dDQB_j| zqfsx+cusg*trH~0%ggZ+ORi|Brmh}e?eM}^JH3&RoB_Ff499)Wz-^x=o{2;&TI*FN zn@lFSx%uTpP&a=7sw?2h)gZTHt$=waQg{# zM$1Z;UUn|il%9A|fX(o|_q*cqxo-%c4~4Pv;(PG=HWll3gu!)J7@qYwrWck4{9*#b zzjSWD0FPlFWgOgHXW=Ks1Y?KKEo^YRf)D=^2B|{h=+X|&o0_u1@5pC3abPuk53Pmo z!8P#Qy9&qmtimzUrRV*(!9P3;UwYiYXZtQ=(mLhPx{glj5LF{1IRp`x_L1&gFZ3Xv z4T2tKT^w?9BMK|3AsLmRzOBpAWgVI~K4F2upb_M{zpr%$HsNsc@ULfaVVvq}9@3pK zL^@sR(7KLHG8(lIwO0wS&1OBqL$}PrJbC0p;d7wR#|R=GNW>!a_czgfxV$cK1UAo6 zDa9BbZbyG#Gn9%Eob&rsfO*dU69fqSUk~>k|AlK8cEN1XV05(4spns*9D#+_l}b8L zR+NY<-)$G*H#g?M%VQmq@0^C$!C&D?egwhS690!CCC#CEdYuXelTx5}5|(+Sof9%O`L zXz&?Q;!Yte{X3F7Ij!n^Jt*KnwrkH&Gm=sR(JvK2Zj?jK`>m7VK~)U0Dq>);nw+}# z4A(Ge#8YiMG_<#DBk~w`o1Wp%<*Hglk{ua6l8A?7kBZGQr{K|N9762KT@)(k+sRc= zH5it@^nDn|JbCe~ea3jyFJsRwxBb>>E8->TNRd8(*=oTQ**@G<8Z8b5)*vl^aF)iY zscD$WCU4ZV3Vg8Hm>v4=**VL>Tll+nQZKAkE9=6UNHsEwX6UtAtuR@}(K{dm>x8zJ zauk%dAS6aZHny7V@%ULj#F2ksnHpcXv_s#GBui}DH}}`#R*XOHr-!4aDrX)&Nq5eW zFZK~`hHpVjbCKYmFz;>j^OJ4dS7}qzQ@ABg!H9ksVdr<^xce{Q@BKN!pV|b?jd&tiWKyFqP*nhS)ws-S$Vi9rm z7|KfT(|sg@%rZ8Qb{h`*W&AVSnsc8_f2=qewVGzARZ1wx*5$J{xAFIJ@;@iYw`6>a z6cvl$N75ej83*US=Fn$`f1CIpBTj-y*M$kT@d@7CZZsM(A|6Dqeo#2~HhLF68?~(t z!JIpZ;iS>t+15&y+(VJF5;f!p*Jzqhsj5ewq6qQgbUG*YeLH@?OjWapcXMGa^_e+c zqO6{UzZ?u3p0+37hv8#SaCI~X#e_H0v(hFtlRUlfuWjo(`n)=ti(rcmDHb(KwH>bn zpK*SoC?_7gyi**7e@R(^fT<~rO_~HZzQ1b?Lp0xhT!&%UiwpdJ8Rs|&g=k%NPZ)@Q z-3Fi7B*YCF zNA5?7*Ox-~(DTMLy+!==TJ1-)yyydOo-_zZUlSjS~ z_{{w0&N0xF9-rViodw$%({+~4#e;%M{AT}E;{PRlxFrm0w}+v*bLD=BGkDKyG*myv z3HJ>G-)H$xxE^;~MRd%>w3#0M?KIJOGyX0<-+v7o_g;nT*O#%5_CT)DzZLoCJHCKq z+V{X(oI1P)r;mS(0MGR}L;WPhf{(j>1h0Log;+4t!*S_{57Xf0mx#Rq3D~gvA~qe4 z5Msi754`E7(>Ico zmrwcKVbry>qrUxRyyZ>e&-@yrm}X~ZE&1Uxh@RCV=9r5Pam7=IWh6Bjc{oswj49Bs*couGDJA5Od?uEWW2b*MMmVCY)_?eSSt? zb4Q1$f@04ip-)auI0Gez*WmcW=x9G$o|eq&PR_Nb#0Sj7)5qgilowewI~GK-c*Z~D zZV;r>PW1IRU}UIWu#+4H?u3bqE60Z0T8b%mp`?4`IeNP42se^(LDpa7P<$zO;KTI{ ze4bas>%e=$St!Vh6k^Ug{TLJ!_kWX(5E5^xP6 ze9xZRK>BM7j_!XS!6#ke!Be&YAN?1M*-EVaIS;TYS`IL=rnG#C-(uR`4c(`r;Pl_$y zM_F+^)#rRl_K8}WVcmn7d6bgmVs ztIekT`)|?GR7mwn^#}{uME2V*NGWd5xkEnpZ>tICSg!=<@brc;@>N8Hzbg_+?uUrC zL((ql-B9XAA*FoQz+f{jeY-`-aSqbm^?$(+V;aokCiIVXqP4dM1(gYC8K{LsGYl2U zh;BkJbd_0+UR5_@>#rfDITjrn;=k2Qy5sG{Qy4DSWepgHF=CKFKS4T}XkmJ6-R2kC zo=i)!^!|$+Qat6plJQtxiXn?d_6KsdMQp|G{Dg)h3 z^KAl-O;#xD7R73BQ*4xDxQcQ0kG>z4sR=xim*6JxE{5_aeWrm$EErW75tXUM<0|#=H?za-Wx4Wq#CqrNX?^*)^pYX^R?5^i&#lAZc^T*THS<6%JEH4&&UkJ zu~KX#`$-pkE{)()qLl8}`E@o^G}lV`NbQ6HnG}y+7^}`6eGJY=F)U{{E7@!n>N+7G zlOf4P>#zz1wI-A_nuYu*!!uC)v$CNd@tLi-9#;q1*o#+v6NR+(phl!9&oOtR9PkP zzfCP7+xHndx*Mr(RRoEI>R;81yDx%(;qM%I!tbS!)|>#myVu*t_GWIK21gIJD=#aW-JfJX?(US4;6L z|D(SoyYpY+<^BO~UENAH=~kf*gzvHF;raZx?M1RQlg^0Nnc^eJ1=p(b+3lj5&L*-6 z&INplLvH_pU0?kR^0H&*@r)!MRTWv-{nbBXXYbdFf_rzgW6y!#s zsi7FfMXAWiiV$R*^UhI{rTNeMz%{j8XW^{I_&?P>6Zp@$Vy=&1KWv&{*gI=HE*|N^ zy^O1r$InD-Yo#DN?0=S%jN9a8sVCREaPG}njqjEw%9Y!6jhuY2zTR&1ba&XTFJ=7M zx91ppCJ^nN9 zQn8rgD$N)gAs>@`u4hzlkhl!)ydPX2!ud~UHO8@B--Q^`zq~&01J{*5)jlJ=KSp_1 z6DG(XnIJtePMvK9=AV@6K04{Vmr}jJUD^Fb_RmtXBdkxlK}_}R_IR^Wx>%$4n}(@w z*W>x@UzK3=3+ zyHI^ULX9Kf|6360Ij7+~ABSa8Y?2DKe6NG+Qtw7c({Ps7K4;dV)+|S+t`9v%iBsi= zWr**gB1NTeewV`IRmZN=SqUVa97uX)kYX}cf@AaP7_Kv$j_UvN2Jcjw?th;9+?QGlVtw!NabhLJ7sePGy_9N(CJ4bqr>w0>GdQ|88FbnBm{lq@} zgVB7%k^Hh=V;^KGTxZ7O$@fg8JNK^e|4H$5*Tl=xaa)>7c5@QGSJxw$^oC^o$ML}y z;?Lii1`F9KT$kIX?+|L}3RM+CJyVXn5V_PJDN0bRsuKRsjP)JsGp>0WGb