在 Windows 上使用 zsh

本文将在 Windows 上,使用 GitBash 以简单支持 zsh 的使用 安装 Git 下载 zsh 也可以通过这个链接直接下载 安装完成后需要直接在 Git 文件夹中解压,不然无法在 Windows Terminal 直接启动 配置 zsh(此步骤作废) 参考 https://zsh.sourceforge.io/Doc/Release/Files.html#Startup_002fShutdown-Files 配置文件的读取顺序 我们可以通过设置环境变量 ZDOTDIR 来指向存放 zsh 配置文件的文件夹 在正式开始配置之前,需要注意一点: 不要直接使用下载后的 zsh,而是在 GitBash 里面执行 zsh,因为当前的安装方式,直接使用 zsh 会找不到 git 如果将 git 放到 zsh.exe 所在目录,再在 zsh 里面调用 git,会导致 FORK BOMB GitBash 默认使用 zsh vim ~/.bashrc 添加 if [ -t 1 ]; then exec zsh fi 简单美化 我们使用 starship 来作为前端美化我们的 shell 下载方式:(官网安装方法在这里,这里我们直接使用 cargo 安装) cargo install starship --locked 注: 如果你想在 VSCode 中使用如上配置的 zsh,需要修改 ~/.bashrc 而不是 ~/.zshrc, 因为如果按照如上修改,在 VSCode 中,关闭 terminal 后再打开会导致 zsh 卡死,具体原因未知 ...

2024-09-30 · 1 min · sslime336

Hugo 文章图片优雅的保存方式

之前由于文章内容并不多,所使用的图片都是手动放置到 public/imgs 中,编辑器所使用的也都是 VSCode, 而现在需要一个能够通过 Ctrl + V 或者其他更简便的方式复制图片到相应位置,同时能够支持文章中图片预览的的方式: Hugo 的文章一般放置在 content/posts 中,而对于文章还有一种创建方式: hugo new posts/<post-name>/index.md 编辑器设置自动保存的相对目录到 posts/<post-name> 中,即可同时实现图片在编辑器中的预览以及 Hugo 对文章正确的渲染 如果是 VSCode,可以复制图片后直接右键粘贴,图片就回到当前文章(也就是上面的 index.md)的所在位置了

2024-09-18 · 1 min · sslime336

Go walkthrough

Setup Go 官网: https://go.dev/ 下载: https://go.dev/dl/ 安装之前配置环境变量:GOPATH, GOROOT GOPATH, GOROOT? GOPATH:当使用 go get/go install 安装依赖时,会将源码安装在此,若使用 go install,下载完源码后会在本地编译,编译产生的二进制文件也会放在 GOPATH 指定的目录下 GOROOT: Go 会将当前版本的工具链和 std 标准库安装在该变量指定的文件夹中 通过步骤 1 中下载的安装包安装 Go,如果是在 Windows 上,需要手动选择 Go 工具链的安装目录(似乎是没有读取 GOROOT) 安装完成后,在终端输入 go version,查看当前 Go 版本,若出现文件未找到等,关闭当前终端重新打开或者重启电脑再次尝试 GOPATH, GOROOT 等环境变量参考配置 其中, GOPROXY 为 Go 下载依赖的代理,在国内环境可以加速依赖的拉取 GOTMPDIR 在使用 Go 编写程序时,可以使用 go run 命令编译后直接运行当前程序,而该环境变量指向的地址就是 go run 编译时产生的临时文件所放的地址, 如果不设置该变量,对于 Windows 来说,临时文件会放在 C 盘 Temp 文件夹中(其实不设置无伤大雅,Windows 自会在合适的时候清理这些缓存) Go 代码组织 相对于 C/C++ 通过头文件和具体实现分离的设计,Go 在单个源码文件的基础上抽象出来一个 package(包)的概念,一个 package 中可以包含多个 Go 语言源代码,通常是以 .go 结尾的文件,最佳实践,一个 package 对应一个文件夹,文件夹的名字就是 package 的名字 ...

2024-09-14 · 2 min · sslime336

虚拟化和仿真

虚拟化的(大部分)指令是直接跑在真实的 CPU 上的,虚拟机内的指令集与宿主机相同,执行速度接近原生(宿主机)执行的速度。 与虚拟化相对的一个概念是仿真 / 模拟,简单说就是伪造硬件。例如 QEMU 依靠模拟 ARM 处理器在 x86 处理器系统中创建一个 ARM 处理器的虚拟机。 ...

2024-08-04 · 1 min · sslime336

记一次Gitlab Pipeline排错

GitLab 63G 日志填满磁盘导致 Pipline 不能正常运行 ...

2024-07-23 · 1 min · sslime336

堆排序

堆排序通常基于数组,其最优时间复杂度、平均时间复杂度、最坏时间复杂度均为 O(nlogn) 我们常说的优先队列就可以使用堆来实现 ...

2024-04-01 · 2 min · sslime336

Edge 搜索引擎被联想电脑管家劫持

最近打算转移到 Edge 上去,可是发现地址栏搜索时,搜索引擎被劫持了 ...

2023-11-06 · 1 min · sslime336

多云部署 k3s 搭建 Hugo 静态博客

基于 k3s 和两台轻量服务器搭建自己的集群 如果你看到了这篇文章,那么说明该博客已成功部署到了 k3s 集群上,并成功签发了 SSL/TLS 证书以支持 Https 由于白嫖的腾讯云服务器到期,并且我不再想续费,所以博客已经去集群化 :-P,但下面的步骤仍可参考 概述 两台轻量应用服务器部署 k3s 并通过 GitHub Action 完成 Hugo 博客的更新,同时给集群上 SSL/TLS 证书 支持对静态 WEB 的 Https 访问 所有静态页全部保存在 master 节点上,通过挂载的方式使用 Nginx 部署, 同时将 Nginx 的配置文件,一并挂载,方便后续添加路由反代等 原先使用的是 Caddy,但 Caddy 会出现反复重定向的问题 当前配置 阿里云香港 2vCPU 2G Debain Debian GNU/Linux 11 (bullseye) 5.10.0-15-amd64 containerd://1.7.6-k3s1.27 腾讯云上海 2vCPU 2G Debain Debian GNU/Linux 12 (bookworm) 6.1.0-9-amd64 containerd://1.7.6-k3s1.27 k3s 的安装与节点添加 在 k3s 中,分为 master 和 agent 两种类型的 node ...

2023-10-15 · 5 min · sslime336

VSCode yaml 文件报错 `Property <xxx> is not allowed.`

具体表现 在安装了 YAML 插件的 VSCode 中,打开一个 YAML 文件出现了下面的错误: ...

2023-10-13 · 1 min · sslime336

SSH 主机密钥验证失败

最近在用 VSCode SSH Remote 链接服务器的时候经常出现下面的问题,其中比较显眼的报错是: ... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ... ...

2023-10-13 · 1 min · sslime336