精选文章
从 Cloudflare 11.18 全局崩溃事件深度剖析:分布式系统中的容错哲学与配置管理实践
Vibe Coding 实战指南:与 AI 共创、保持流畅、持续成长
Electron实例代码
Electron 实例代码
以下是一些比较实用的Electron的代码。
为应用程序添加右键菜单
这段代码应该添加到 html 中的页面中
<script>
const { remote } = require('electron');
const { Menu, MenuItem } = remote;
const menu = new Menu();
menu.append(new MenuItem({ label: 'MenuItem1', click() { console.log('item 1 clicked') } }));
menu.append(new MenuItem({ type: 'separator' }));
menu.append(new MenuItem({ label: 'MenuItem2', type: 'checkbox', checked: true }));
window.addEventListener('contextmenu', (e) => {
e.preventDefault();
menu.popup({ window: remote.getCurrentWindow() });
}, false);
</script>限制只能运行一个实例的代码
限制只能运行一个实例,需要用到 Electron 的 app.requestSingleInstanceLock()方法,
此方法的返回值表示我们的应用程序实例是否成功取得了锁。 如果它取得锁失败,则可以认为已经有一个实例获取了锁,并且正在运行,我们可以使用 app.quit() 方法立即结束当前实例的运行。
调用 app.requestSingleInstanceLock()方法,会触发前一个实例(如果存在前一个实例)的second-instance事件,我们可以在这个事件里面做点什么,例如激活前一个实例的窗口并获取焦点,示例代码如下
Spring boot 集成log4j2
关于日志的级别
log4j2 总共有 8 个级别,
按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
ThresholdFilter:
level: info
onMatch: ACCEPT #表示匹配该级别及其以上的级别
onMismatch: DENY#表示不匹配该级别以下的级别onMatch=“ACCEPT"匹配>=该级别; onMatch=“DENY"不匹配>=该级别;
git 使用
撤销工作区中的修改
git checkout -- file
这里表示的是将指定的文件在工作区的修改全部撤销,由于只是撤销工作区中的内容,暂存区中的内容是不受影响的。
- 如果文件没有被添加到暂存区,则撤销修改就会回到和版本库一样的状态。
- 如果文件已经添加到暂存区,撤销修改就会回到添加到暂存区后的状态。
撤销暂存区中的修改
git reset HEAD file
git reset既可以回退版本,也可以把暂存区的修改回退到工作区。
Eslint 使用
ESLint
ESLint 是一种静态代码分析工具,用于识别 JavaScript 代码中存在的有问题的模式,可以帮助我们写出语法正确,风格统一的代码。
安装以及使用 ESLint
- 我们可以使用 npm 来安装 ESLint,运行
npm install eslint --save-dev命令安装 ESlint。 - 在项目根目录运行
./node_modules/.bin/eslint --init命令进行初始化操作,初始化的时候根据命令的提示输入一些基本的设置,确认后会在项目的根目录下面生成一个名字为.eslintrc.*(这个在初始化的时候可以选择不同的文件格式,json 或者 yaml 都是可以的)的配置文件。如下图所示

- 安装配置完成之后就可以直接使用了,可以在任何的文件目录或者文件上运行
./node_modules/.bin/eslint yourfile.js
上述的使用只是在本地安装了 eslint,当然我们完全可以把这货安装成全局的,使用
npm install -g eslint,但是呢,全局安装的 eslit 在执行的时候,使用的插件和配置文件还是优先读取本地的,如果在~/目录中存在配置文件,只有在 eslint 没有读取到任何的配置文件的时候才会去读取这里的文件。
Ubuntu 输入法:从搜狗迁移到 Rime
Ubuntu 上的中文输入法一直是痛点。搜狗输入法曾经是主流选择,但存在隐私和稳定性问题。本文推荐迁移到 Rime(中州韻)——一个开源、高度可定制的输入法引擎。
为什么不推荐搜狗输入法
| 问题 | 说明 |
|---|---|
| 闭源 | 代码不透明,无法审计数据收集行为 |
| 隐私风险 | 有联网上传输入内容的嫌疑 |
| 稳定性差 | fcitx4 框架下经常崩溃,需要手动重启进程 |
| 维护滞后 | Linux 版更新缓慢,长期停留在 fcitx4 |
| 依赖封闭生态 | 词库格式不通用,迁移成本高 |
如果之前使用搜狗,以下是之前的安装方式(仅作存档参考):
简单的shell脚本
1.第一个 shell 脚本
#!/bin/bash
#This is my first shell script
date
who这是我们的第一个 shell 脚本,它的功能是打印系统的当前时间和当前用户,我们使用#号来表示注释。但是 shell 脚本的第一行是一个例外,#!告诉 shell 用哪个 shell 来运行脚本,此处我们是使用 bash shell
2.编写一个脚本来获取当前用户环境变量
#!/bin/bash
#dispaay user information from the system
echo "User info for userid: $USER"
echo UID :$UID
echo HOME:$HOME3. 编写一个脚本来使用用户变量
#!/bin/bash
#testing varibles
days=10
guest="Katie"
echo "$guest checked in $days days ago"4.脚本中的反引号的使用
反引号中的内容表示命令本身,反引号允许你将 shell 命令的输出复制给变量。
Linux使用
一、ssh 服务
安装
- 查看 ssh 是否安装
输入命令:
rpm -qa|grep ssh如果没有安装 SSH 则可以输入:yum install openssh-server - 启动 SSH 服 n 务
service sshd start - 设置 ssh 为开机启动
输入命令
chkconfig sshd on即可。 注:若是chkconfig sshd off则禁止 SSH 开机启动。 也可以使用systemctl来开启自启动,systemctl enable sshd
配置
- 修改端口号:修改
/etc/ssh/sshd_config文件,找到 port 修改即可
简单的使用
- 连接服务器
ssh -p [port] user@host - 使用 scp
scp -P port src des(user@host:path)
三、让程序在后台启动
思路:当用户注销或者断开网络的时候,终端会收到 HU(hangup)信号从而关闭其所有的子进程。因此解决方案就有两种,要么让进程忽略 HUP 信号,要么让进程运行在新的会话里面从而成为不属于此终端的子进程。
SSH 免密登录配置指南
SSH(Secure Shell)是 Linux 下最常用的远程连接协议。默认方式需要每次输入密码,通过配置密钥认证可以实现免密登录,提升效率和安全性。
生成密钥对
直接运行 ssh-keygen -t rsa

这样会在用户的 .ssh 文件夹中生成密钥文件:

id_rsa:私钥,保留在本地,不可泄露id_rsa.pub:公钥,需要复制到远程服务器
复制公钥到远程服务器
只需要将其中的 id_rsa.pub 文件复制到目标机器就可以实现无密码访问目的机器了

