软件使用技巧

CentOS 7 部署简易 HTTP 代理

需要在一台 CentOS 7 系统的小型 VPS 上安装 HTTP 代理。评估了各种方案,最终选择了 Xray。它占用资源最少,安装配置也最简单。

……

CentOS 7 磁盘清理脚本

一台磁盘空间仅 5GB 的 VPS 主机磁盘耗尽。用 du -sh /* 命令检查了一下,除了 swap 占用的 1GB 空间外,剩下就是 /var 目录占用了大头。其中,记录登录失败事件的日志文件 /var/log/btmp 就有上百兆大小。

使用如下命令清理日志和缓存,腾出了 1.5GB 左右的空间:

……

Cloudflare 代理自签名 HTTPS 证书的源站

源站使用 Cloudflare 的 CDN 服务非常方便,只要将 DNS 托管在 Cloudflare 平台,然后设置 DNS 记录时,代理状态勾选「已代理」就行了。不过这一步操作无法选择源站使用的是 HTTP 协议还是 HTTPS 协议,依稀记得有个地方是可以设置的。翻了一遍操作菜单,在左侧导航菜单的「STL/TLS > 概述」里找到了,加密模式有如下四个选项:

  1. 关闭(不安全)
    未应用加密。关闭 SSL 将禁用 HTTPS,浏览器同时会显示警告,指出您的网站不安全。
  2. 灵活
    仅在访问者与 Cloudflare 之间启用加密。这可以避免浏览器发出安全警告,但 Cloudflare 与您的源服务器之间的所有连接均通过 HTTP 建立。
  3. 完全
    启用加密端到端。当您的源服务器支持 SSL 认证但未使用有效的公开可信的证书时,使用此模式。
  4. 完全(严格)
    (推荐模式)启用端到端加密,对源服务器证书强制执行验证。使用 Cloudflare 的源服务器 CA 为您的源服务器生成证书。

不过这个设置是全局的,更改后会对当前站点下所有的 DNS 记录生效。Cloudflare 不支持针对每条 DNS 记录设置单独的加密模式,也不支持 HTTPS -> HTTP 的 Fallback 策略。

……

WSL 使用技巧

Windows Subsystem for Linux 是 Windows 上运行 Linux 环境的兼容层。WSL 有两个版本,分别是 WSL 1 和 WSL 2,后者现在是 Windows 默认安装的版本。两个版本在底层实现上有很大区别,WSL 1 通过 lxss.syslxcore.sys 这两个 Windows 内核驱动来模拟 Linux 内核,而 WSL 2 通过 Hyper-V 虚拟机托管运行了一个经过优化过的 Linux 内核,能够提供完整的 Linux 系统调用,并支持 systemd 和 IPv6。缺点是跨系统的文件系统访问性能比 WSL 1 差很多(但 WSL 2 的文件 IO 性能比 WSL 1 的更好)。因此,当使用 WSL 作为开发环境时,建议不要将源代码存放在 Windows 的文件系统下

……

判断用户是否删除过浏览器历史记录

本文仅适用于 Google Chrome, Microsoft Edge 等使用 Chromium 内核的浏览器。此内核的浏览器会将浏览器的访问历史记录储存在一个 SQLite 数据库文件中,可以用任何支持 SQLite 数据库 GUI 工具打开。常用的免费 SQLite 数据库 GUI 工具有:

在不同的操作系统下, Google Chrome 的历史记录数据库文件默认保存路径如下:

  • Windows: %LOCALAPPDATA%\Google\Chrome\User Data\Default\History
  • Linux: ~/.config/google-chrome/Default/History
  • macOS: /Users/<username>/Library/Application Support/Google/Chrome/Default/History

在 Windows 下, Microsoft Edge 的历史记录数据库文件保存路径为:

……

文本编辑器 CudaText 简体中文汉化包

不久之前,我在 Windows 平台上最常用的文本编辑器还是 Notepad3Notepad++ 。前者用来替换系统自带的记事本;后者用来处理一些稍微复杂,但还没有上升到需要动用专业 IDE 的文本编辑工作。最近发现新版本的 Notepad++ 会频繁卡顿,但由于拖延症和考虑到更换新软件的适应成本,就一直没有想过要换掉它。直到前几周 Notepad++ 被爆出存在多个缓冲区溢出漏洞,特别地,其中还包含了几个可以执行任意代码的高危漏洞。本来作为一个个人维护的开源项目,爆出几个漏洞来也无伤大雅。然而离谱的是,漏洞发现者早在今年四月份就向 Notepad++ 的作者报告了漏洞,但是这几个漏洞一直没有被修复。直到漏洞细节被公开的半个月后,这几个漏洞才得以修复。是时候另觅一款好用的轻量级文本编辑器了。

……

    用 RunDLL32.exe 命令实现 xdg-open

    xdg-open 是 Linux 下的一个命令,可以调用对应的程序来打开目标文件,等同于在文件管理器中双击打开该文件。Ubuntu 用户可以通过执行 sudo apt install xdg-utils -y 来安装 xdg-open 命令,这个命令的用法也很简单:

    xdg-open { file | URL }

    遗憾的是, Windows 系统并没用提供类似的命令,不过我们可以通过 Windows 自带的 rundll32.exe 命令来实现一个类似功能的脚本。

    RunDLL32.exe 用来加载指定的 DLL 文件并调用指定的导出函数。用法如下:

    ……

    Windows 下的 GNU/Linux 命令行工具

    通常想要在 Windows 下运行 Linux 命令有以下几种选择:

    1. WSL
    2. Cygwin
    3. MinGW / MinGW-w64
    4. MSYS2

    不过以上几种方案除了要安装体量巨大(包含完整的工具链)的软件外,还需要切换到相应的运行环境才能执行 Linux 命令,无法在 Windows 命令行中直接运行。

    本文收集了一些 GNU/Linux 命令行工具,它们都可以通过 Scoop 进行安装。

    ……

    从 HeidiSQL 配置文件中找回数据库密码

    HeidiSQL 是 Windows 平台上一个开源数据库管理工具,支持 MariaDB, MySQL, SQL Server, PostgreSQL, SQLite, Interbase 和 Firebird 。HeidiSQL 使用 Delphi 编写,和其他诸如 Navicat, DBeaver 等专业数据库管理工具相比, 它更加轻量、启动和响应速度更快。

    HeidiSQL 将数据库密码加密后保存在配置文件中,不过这种加密方式非常简单。可以在 HeidiSQL 的源代码文件 source/apphelpers.pas 中找到加密和解密算法:

    ……

    通过 Starship 个性化定制 PowerShell 终端

    之前一直使用 Oh My Posh 美化终端提示符。不过 Oh My Posh 配置起来比较麻烦,就一直在使用官方提供的默认配置。然而在默认配置下, Oh My Posh 某些特性在 Windows 下体验不太友好。比如,在提示符中显示无意义的用户名;又或者当前路径过长导致输入命令换行。

    最近试用了一款名叫 Starship 的类似的软件。也许是受到其官网宣传的蛊惑,感觉 Starship 的启动速度确实要比 Oh My Posh 快那么一些。此外, Starship 的配置也要比 Oh My Posh 简单一些。因此,决定抛弃 Oh My Posh ,改用 Starship 。

    ……