你在使用 Git Bash 时出现 Can't get terminal settings: The handle is invalid. 错误,这通常是因为你在 非交互式终端环境中运行 Git Bash 或者终端句柄(handle)无效导致的。 💡 常见出现这个错误的场景 从其他程序调用 Git Bash(如从某个 IDE 或脚本工具中调用 bash.exe) 使用 Windows 的计划任务、任务调度器调用 Git Bash 脚本 使用某些不支持交互式终端的终端模拟器或环境(例如某些版本的 ConEm…

2025年 8月 30日 0条评论 52点热度 0人点赞 frozencola 阅读全文

现在很多云服务运营商免费的HTTPS证书有效期只有3个月,对于个人网站来说,这就很麻烦,现在可以用 Certbot + Crontab 自动申请并定期更新 HTTPS 网站的 SSL 证书,来解决我们这个痛点。 需要云服务器可以看这里:云服务器优惠合集。 1. 安装 Certbot 不同系统安装方式略有不同,这里给你 CentOS / RHEL 和 Debian / Ubuntu 的常用方法。 CentOS / RHEL 7/8/9 # 安装 EPEL sudo yum install epel-release -…

2025年 8月 10日 0条评论 198点热度 1人点赞 frozencola 阅读全文

Makefile 中的变量引用 在 Makefile 中,$ 符号用于变量替换,但它的使用方式有一些细微的区别: 单个 $ 符号($Xxx) 用途:用于引用 Makefile 中定义的变量。 用法:$ 后面可以跟变量名,通常用括号或花括号括起来以明确变量名的边界。 示例: VAR = value all: echo $(VAR) 在这个例子中,$(VAR) 会被替换为 value。 双 $ 符号($$Xxx) 用途:用于在 Makefile 中传递给 shell 的命令中引用 shell 变量。 用法:$$ 会被 …

2024年 12月 26日 0条评论 892点热度 0人点赞 frozencola 阅读全文

什么是goroutine Goroutine是Go语言中的一种轻量级线程,也成为协程,由Go运行时管理。它是Go语言并发编程的核心概念之一。Goroutine的设计使得在Go中实现并发编程变得非常简单和高效。 以下是一些关于Goroutine的关键特性: 轻量级:Goroutine的创建和切换开销非常小。与操作系统级别的线程相比,Goroutine占用的内存和资源更少。一个典型的Goroutine只需要几KB的栈空间,并且栈空间可以根据需要动态增长。 并发执行:Goroutine可以并发执行多个任务。Go运行时会自…

2024年 11月 9日 0条评论 1065点热度 2人点赞 frozencola 阅读全文

什么是AOP面向切面编程 面向切面编程(AOP)通过将横切关注点(cross-cutting concerns)分离出来,提供了一种增强代码模块化和可维护性的方法。 简单来说,AOP就是将公共的模块封装成公共的方法,然后在需要的时候(这个就是切入点),直接就可以调用,而不用在各个对象里面具体的实现。 AOP是一种新的编程方式,它和OOP不同,OOP把系统看作多个对象的交互,AOP把系统分解为不同的关注点,或者称之为切面(Aspect)。这个可以理解为把系统理解为一个流程,一个对象负责流程上的一个节点。 当然,AOP…

2024年 11月 5日 0条评论 1133点热度 0人点赞 frozencola 阅读全文