BLCL的博客小馆

归档 · 2023

首页

关于

归档

Shell 脚本中 set -ex 命令的作用

刚刚学会了一个很实用的 shell 命令 set -ex,在这里分享一下。 稍有常识的人都能看出,这是 set 命令加上了 -e 和 -x 两个参数 (废话么这不是)。那么,我就把这两个参数拆开,分别说一下它在脚本中的用处。 set -e先说说 set -e,这个参数的含义是,当命令发生错误的时候,停止脚本的执行。 通常来说,我们会习惯于使用 && 来实现这样的功能,比如: 123#!/bin/bashecho 1 && rm non-existent-file && echo 2 但是,写成一行呢,可读性有点差,分成多行的话,也得注意换行符 \ 和 && 号,我就有过好几次忘了加这俩东西,还是挺麻烦的是吧。 更麻烦的是,&&a..

更多

分环境为 Git 指定单独的配置

有的小伙伴,在公司需要使用公司的 Git 来干活,同时自己也有些托管在 GitHub 等其他仓库的代码,在这种情况下会有一个烦恼,就是怎么样在多个仓库之间使用不同的配置。比如在公司仓库和个人仓库之间使用不同的身份信息,或者在公司仓库和个人仓库之间,使用不同的 GPG 签名。 在 2.13 版本之前,大概你就只能单独为每一个仓库单独设定这些信息了,但是,在 2.13 这个版本中,Git 引入了一个名为 “按条件引入”(Conditional includes) 的功能。这个功能允许用户通过指定一定的条件,来使 Git 从不同的配置文件中取得配置项。 准备工作“按条件引入” 功能可以根据目录或者分支来决定使用哪个配置,显然根据分支无法区分工作环境和私人环境,所以首先需要分别为工作环境和私人环境创建各自的目..

更多
loading..

使用 Tailscale 部署虚拟局域网

最近折腾了下用 Tailscale 搭建虚拟局域网,在这里记录一下折腾的过程和一些心得。 什么是 Tailscale说起 Tailscale,就不得不提到最近很火的 Mesh VPN 这个概念。 经典的 VPN 是作为一个网关,让外网用户通过它来访问内网。比如传统的 L2TP VPN: 但是 Mesh VPN 提出了一种全新的拓扑结构,这种结构中每个节点之间都相互连接,不再存在中心的 VPN 服务器。 上图提到的 Wireguard 就是一个 Mesh VPN 的实现,但是 Wireguard 配置比较繁琐,维护成本也比较高,所以 Tailscale 在基于 Wireguard 的基础上做了一些优化,比如用于 NAT 穿透的 DERP 协议、建立了公网 coordinator 服务器用于下发配置,..

更多
loading..

配置 Caddy 作为静态网站服务器和前置代理

之前听闻有个新的 Web Server,名曰 Caddy,其配置简单,还默认启用 HTTP/2,并且可以自动申请 Let’s Encrypt 的 HTTPS 证书。试用了一番,觉得不错,便把这个博客的服务程序换成了 Caddy。在这里呢,记录一下安装和配置的过程。 安装万事第一步,先安装。 下载页面概览打开 Caddy的下载页面,页面的内容简洁明了,左侧是 4 个要配置的项,右侧是每个配置项实际的内容。 选择运行平台首先,选择好 Caddy 要在哪个操作系统下运行。Caddy 支持的平台还是足够多的,而且覆盖到了主流的操作系统,所以甭管您是 Windows,还是 Linux,抑或是 BSD,都可以运行 Caddy。因为我的服务器运行的是 64 位 Ubuntu,所以选择 Linux 64-bit。 ..

更多
1456