点击打开前言

一个月前,偶然发现,电脑不能搬动,稍微搬动下电脑,它就会黑屏或者死机,只要不动它,就会给面子让我苟且使用。但是最近,也就是一周前,电脑在使用过程中也会发生死机或者黑屏,严重影响使用体验,前一秒还在那认真的的做word,改ppt,下一秒黑屏了,或者屏幕定格,鼠标键盘都不好使了,这样搞下来,一天四五次整个人都不好了。没办法,本想和它和平相处的,如今只能拆开它。第一次拆机,简单请了灰,换个硅脂,没啥卵用。后面又拆了几次,重新插拔了内存和固态硬盘,还是不好使。还重装了系统,依然没有用。一周时间,疯狂汲取死机黑屏问题的原因和解决方法,最后差点去换主板。好在,最后一次 拆机,处在不报任何希望的时候,把内存条的金手指使用橡皮擦擦了一遍,奇迹出现了,问题得到解决。内存条之前没想到去擦,是因为之前在寻找解决方案的时候,视频博主讲解了台式机一般需要去用橡皮擦擦拭内存条,笔记本一般不需要,因此忽略了。所以,大家的笔记本如果和我一样之前没有任何物理(摔碰)化学(进液体)伤害的情况下突然出现黑屏,可以检查下硬盘和内存条的问题。

上次重装系统是七月分这样(博客在装系统之后搭建),总结了一波如何快速安装软件的内容。短短五个月,又重装了一次,然而这次不同,有些博客的文件是在C盘的,C盘清空意味着本地博客环境变了,无法再远程部署hexo到github page。只好重新搭建本地环境,恢复环境的过程不是很顺。记录下遇到的问题,方便以后换电脑,又或者电脑又出故障时能顺溜的恢复博客环境。

主要步骤

  1. 安装git
  2. 安装nodejs
  3. 安装hexo

安装git

git下载地址:https://git-scm.com/

安装git

安装路径推荐安装到C盘以外的盘。

其它安装步骤基本就是一路默认下一步即可。

安装nodejs

nodejs下载地址:https://nodejs.org/

历史版本下载地址

安装nodejs

此处不要勾选,否则会安装很多没有用的东西!!!,对于搭建hexo博客这些模块工具基本用不到,后面需要用到啥模块再安装即可。

同样的,安装路径推荐安装到C盘以外的盘。

其它安装步骤基本就是一路默认下一步即可。

检验是否安装成功

CMD输入:

1
2
node -v
npm -v

验证安装

可能出现的问题和解决方案

问题一:如果输入npm -v,输出的结果是WARN config global --global, --local are deprecated. Use --location=glo bal instead.

报错

解决方案

打开nodejs的安装路径找到如下两个文件

修改文件

把prefix -g 换成 prefix —location=global

修改

修改

问题二:如果输入npm -v 出现Could not determine Node.js install directory:

解决方案

找到安装nodejs的文件夹,我的是“d:\nodejs”,右键这个文件夹点属性,修改其权限。

修改权限

image-20221224172352987

修改模块安装的默认文件夹

避免后面安装的npm模块都在c盘,导致C盘空间越来越小,所以可以修改默认的路径

  • 查看模块安装位置。
1
npm get prefix
  • 查看缓存位置
1
npm get  cache
  • 修改默认文件夹

在安装的路径位置新建node_cache和node_global文件夹(我的nodejs的安装位置是“d:/nodejs”)

1
npm config set prefix "D:\nodejs\node_global"
1
npm config set cache "d:\nodejs\node_cache"

之后安装到node_global的全局模块是需要通过命令行访问的,因此需要把node_global的路径”d:/nodejs/node_global”加入到系统变量的Path变量中。

添加环境变量

安装hexo

先修改npm包为国内镜像源

1
npm config set registry https://registry.npmmirror.com

查看是否修改成功,成功后输出https://registry.npmmirror.com

1
npm config get registry

选择一个盘,新建一个文件夹(作为博客的根目录),我选择”f:/Blog”,把之前备份的blog文件复制到这里

打开Blog文件夹,右键git bash here,打开git命令框,输入

1
npm install hexo-cli -g

等待安装完成,hexo这个模块会安装在之前设置好的模块安装位置,我设置在“d:/nodejs/node_global”

依次打开会看到hexo-cli这个文件夹

然后执行,npm install,安装所需模块。

配置SSH,连接电脑和远程仓库

  • 最终需要生成的文件如下

ssh文件

可能需要

  • 配置git,在桌面右键Git Bash Here,依次输入下面两条命令:
1
2
git config --global user.email "此处填写注册github账号的邮箱"
git config --global user.name "此处填写github账号的用户名"

成功后会在你的”C://user/你的用户名”下有.gitconfig文件。

  • 配置SSH

    在桌面右键Git Bash Here,输入命令:

1
ssh-keygen -t rsa -C "你的github邮箱"

然后,一路enter,按三次enter。会生成.ssh文件,找到它,这里面的id_rsa.pub就是ssh密钥。

进入你的github账户,在屏幕右上角你的头像上点击下拉箭头,找到settings,点击进去。点击SSH and GPG keys。把你的SSH复制进去。

注意:

  • 此步如果只是生成了id_rsa和id_rsa.pub这两个文件,后续hexo d会出现提示没有权限的错误

  • 生成新的id_rsa和id_rsa.pub后,复制id_rsa.pub到github账号重新更新新的SSH keys。使用githubaction的,复制id_rsa到githubaction的私有仓库更 新HEXO_DEPLOY_PRI。否则同样出现权限错误。

  • 查看文章

权限问题

必须生成known_host文件,known_host字面意思的识别主机,用来存放电脑主机信息的。每台电脑都会有不同的known_host

解决方案

随便git clone某个项目,或者使用以下命令

1
ssh -T git@github.com

输入yes回车即可

输入yes

博客提交和备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@echo off
cd /d E:\BlogRoot
git add .
git commit -m "github action update"
git push origin main

@echo Git 操作完成,等待 3 秒后开始同步备份...
timeout /t 3 /nobreak >nul

:: 检查目标备份目录是否存在
if not exist "P:\备份\hexo_BlogRoot\" (
@echo 错误:目标备份目录 "P:\备份\hexo_BlogRoot\" 不存在!
@echo 请检查后重新运行脚本。
pause
exit /b
)

@echo 开始同步备份...
set start_time=%time%

:: 执行备份,并隐藏详细过程,仅显示文件复制的进度
robocopy "E:\BlogRoot" "P:\备份\hexo_BlogRoot" /MIR /R:0 /W:0 /NFL /NDL /ETA >nul

set end_time=%time%
@echo 备份完成!

:: 计算时间差并格式化为分钟和秒
call :TimeDiff "%start_time%" "%end_time%" elapsed
call :FormatTime %elapsed% formatted_time
@echo 本次备份耗时:%formatted_time%

@echo 操作完成,请按任意键退出。
pause
exit

:TimeDiff
:: 参数:%1 = 开始时间, %2 = 结束时间, %3 = 输出变量名
setlocal enabledelayedexpansion
set "start=%~1"
set "end=%~2"

:: 解析时间为秒 (确保格式一致)
for /f "tokens=1-3 delims=:." %%a in ("%start%") do (
set /a start_sec=1%%a %% 100 * 3600 + %%b * 60 + %%c
)
for /f "tokens=1-3 delims=:." %%a in ("%end%") do (
set /a end_sec=1%%a %% 100 * 3600 + %%b * 60 + %%c
)

:: 处理跨午夜的情况
if !end_sec! lss !start_sec! set /a end_sec+=86400

:: 计算时间差
set /a diff=!end_sec! - !start_sec!
endlocal & set %3=%diff%
goto :eof

:FormatTime
:: 参数:%1 = 秒数, %2 = 输出格式化时间
setlocal enabledelayedexpansion
set /a minutes=%1 / 60
set /a seconds=%1 %% 60

:: 检查时间是否为 0
if %1 equ 0 (
set formatted=不到 1
) else (
if %minutes% gtr 0 (
set formatted=!minutes!!seconds!
) else (
set formatted=!seconds!
)
)
endlocal & set %2=%formatted%
goto :eof

其他问题

  1. hexo: command not found解决方法

  2. 博客根目录盘符发生变化,比如重装系统后,博客根目录从F盘变为E盘

根据提示输入命令即可,如下

1
git config --global --add safe.directory E:/BlogRoot

报错

3.没有权限访问仓库,在倒数第四行询问are you sure you want to continue connecting 时输入yes回车,不要认为默认回车就是yes的意思。

SSH出错

4.ssh连接超时问题

ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. Please make sure you have the correct access rights

坑:ssh: connect to host github.com port 22: Connection refused