BNU-FZH

fengzhenhua@outlook.com

一直使用vim-latex 作为编写LaTeX文件的主力,但是虽然之前设置好了Alt键,但是一直用的较少,今天试用了一下Alt相关智能键,特别好用,查阅手册后将这部分使用规则记录下来。

开启Alt键

~/.local/share/nvim/lazy/vim-latex/ftplugin/tex.vim
1
2
let g:Tex_AdvancedMath = 1
set winaltkeys=no

由于我使用的是neovim, 所以设置了上述路径,如果您使用vim请找到对应路径设置即可。缺省时,如果某菜单对应了热键<key>,那么在 Vim 中按Alt-<key> 将使得屏幕焦点转移到菜单栏(menu bar)上。如果因此而产生了冲突,那么需要在$VIM/ftplugin/tex.vim 文件中设置set winaltkeys=no,以使用这些Alt 键相关的宏映射。 ,而我们一般没有这个需要,所以放心开启Alt键即可。

Alt键映射

Alt-L

这是一个多态的、插入模式下的宏映射,根据处于光标之前的字符展开为下列形式之一。光标之前的字符 展开

光标前的字符 替换为相应字符
( 或 ) \left(<++>\right)
[ 或 ] \left[<++>\right]
| \left|<++>\right|
{ \left{<++>\right}
< 或 > \langle<++>\rangle
q \lefteqn{<++>}<++>
其他 \label{<++>}

Alt-B

此插入模式宏映射将前一个字符包括进\mathbf{}中。

Alt-C

插入模式下,该键的多态性如下所示:

  1. 如果前一个字符是一个字母或数字,那么将它转为大写并将其包括进\mathcal{}
  2. 否则插入\cite{}

在可视模式下,它简单地将所选部分包括进\mathcal{}

Alt-I

此宏映射根据光标包括在哪个环境中在光标处插入\item 命令。\item 命令的风格(style)取决于包括它的环境。缺省时,Alt-I 为下列环境定义了风格:

Environment Stle
itemize \item
enumerate \item
theindex \item
thebibliography \item[<+biblabel+>]{<+bibkey+>} <++>
description \item[<+label+>] <++>

Alt-I拥有智能处理嵌套环境的能力。

HEU KMS Activator是知彼而知己开发的KMS激活工具,最新版增加了OEM激活功能,支持Vista/Win7/Server 2008/2012等系统的永久激活,无需联网即可一键激活Windows和Office VL版本。新增Win10数字许可证激活,可用于系统封装后完美激活。此工具无广告、无捆绑、无后门,完全出自“知彼而知己”的正版,适合系统封装爱好者使用。

HEU KMS Activator

注意:高级功能的按钮以“灰色”图标显示,建议详细阅读《用户使用手册》后再行使用。

数字许可证激活简介

  1. Windows10可以通过Windows 7 / 8.1升级、购买的零售版、或OEM等的方式激活,微软会收集计算机的硬件信息并上传到服务器,将其转化为数字许可证,下次重装系统时,联网后微软服务器将重新比对硬件信息,若主要硬件信息不变,系统就会自动予以激活。

  2. 例如已永久激活的Windows7升级到Windows10后,会自动永久激活,基于这种思路,通过从微软服务器获取数字门票(GenuineTicket.xml),完成数字许可证激活(又名数字权利激活)。

  3. 综上,数字许可证激活的方式必须连接到互联网,一旦激活成功,以后重装系统联网后即自动永久激活。

假如使用软件永久激活了Windows7,目前来看,升级到Windows10后会自动激活。此时这台计算机就已经获取到了“数字许可证”,不需要任何其他软件,也不需要安装密钥,只要以后在这台计算机上安装Windows10,联网自动激活。数字许可证激活方式,微软只需一个系统更新即可轻易封杀,然而为了扩大Windows10的市场占有率,此方式被默许。

KMS 激活简介

  1. 通常企业、学校等拥有多台计算机,设想如果安装了 Windows,然后管理员一台一台的去激活,管理起来十分不方便。为了解决这种问题,微软定制了一种 批量授权(Volume)的方法:局域网内的一台计算机作为服务器首先连接到微软的服务器进行激活,然后局域网内的其他计算机向局域网内的这台服务器请求激 活。这种方法即为 Key Management Service,简称 KMS,是微软定制的一种正规 激活方式,下面简要介绍一下激活流程。

  2. 大客户首先购买微软正版“CSVLK”密钥,然后将一台计算机永久激活(联网 或者拨打微软客服电话),这台计算机即可作为服务器(KMS Host),始终保持 开机联网(局域网连接通畅即可)的状态。局域网内的其他计算机(KMS Client)向服务器请求激活,当达到一定数量(激活 Windows 需要 25 台计算机、激活 Office 需要 5 台计算机)的客户端计算机请求激活后,服务器就向客户端注入激 活信息。

  3. KMS 激活后有效期 180 天。默认设置下 KMS Client 会自动向可用的 KMS Host 请求激活(未激活的客户端尝试连接 KMS 的时间间隔为 2 小时,已激活的 客户端尝试连接 KMS 的续订时间间隔为 7 天)。即 KMS Client 激活有效期会始 终保持 173 天以上,前提是 KMS Host 是可用的。

下载地址

之前为大家推荐过软件Ventoy, 实现了一个U盘在手同时安装多个操作系统的强大功能,大大方便了日常工作。今天升级我的Ventoy 后在主页发现原作者又开发了一款神器 iVentoy, 用于通过网络给多台机器启动安装操作系统,现引用其官方的说明,推荐给大家。

简单来说,iVentoy 可以看成是一个增强版的 PXE 服务器。iVentoy 使用极其简单,无需复杂的配置,直接把 ISO 文件放到指定位置,客户机在启动时根据菜单选择要启动的ISO文件即可。iVentoy 同时支持 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式。iVentoy 支持 110 多种常见类型的操作系统 (Windows/WinPE/Linux/VMware)(列表)。

iVentoy 特点

  • 软件使用非常简单 (使用说明)
  • 软件跨平台,支持运行在 Windows 和 Linux 系统中。
  • 软件专门针对PXE场景优化设计,功能灵活。
  • 支持ISO文件直接启动,无需提取内部文件。
其他特点
  • 保留原始ISO文件的启动菜单风格。

  • 启动菜单和文件目录结构一一对应。

  • 同时支持 Legacy BIOS 以及 IA32/X86_64/ARM64 的 UEFI 模式。

  • 支持 110 多种常见的操作系统 (Windows/WinPE/Linux/VMware)。

  • 支持整体及单个ISO文件的启动密码保护。

  • 支持多台设备同时安装不同操作系统。

  • 支持和第三方 DHCP Server 配合工作。说明

  • 支持通过 MAC 地址进行设备过滤。

  • 支持查询 MAC 地址过滤状态。

  • 支持 MAC 地址归属查询。

  • 支持客户端设备信息查询。(厂商名、产品名、序列号等)

  • 提供 HTTP 直接获取 ISO 内部文件的功能。说明

  • 支持启动文件注入功能。 说明

  • 支持注入并自动执行脚本的功能。 说明

  • 支持 Windows 系统的自动安装部署 说明

  • 支持 Linux 系统的自动安装部署 说明

  • Windows/Linux 自动安装脚本中支持变量扩展 说明

  • 自动解决Linux安装过程中缺少网卡驱动的问题。

iVentoy启动截图

在日常工作中,通过改变文件夹的颜色为某个特定颜色可以使其醒目,因此一些重要的或有特定用途的文件夹可以采用此方案。在Gnome3 上我们有一个 Nautilus 的插件folder-color-nautilus来实现,但是它并没有被Archlinux官方收录到pacman仓库,因此大家需要在aur中安装。

  • ArchLinux中安装插件

    for nautilus
    1
    paru -S --noconfirm folder-color-nautilus

  • 其他文件管理器nemocaja

    1
    2
    paru -S --noconfirm folder-color-nemo
    paru -S --noconfirm folder-color-caja

安装完成后,你可以进入文件管理器,右键单击文件夹或文件。你会在上下文菜单中看到 Folder Color 的选项。你将在此处看到颜色和标志选项。

右键菜单

你还可以通过在菜单通过选择“默认”恢复原始文件夹颜色

Shieldsio是一个提供简洁、一致和易读的徽章服务,可以轻松地包含在GitHub的readmes或其他网页中。该服务支持数十种持续集成服务、软件包注册表、分发、应用商店、社交网络、代码覆盖服务和代码分析服务。它被一些世界上最流行的开源项目使用。

根据提示,在左侧选择相关服务, 后根据实例填写右侧的信息,再按右下角Execute生成相应的链接,比如我的博客需要Markdown,则生成Markdown链接后贴到博客中即可。比如我开发的项目有:

Static Badge Static Badge Static Badge Static Badge
Static Badge Static Badge Static Badge Static Badge

为了防止在 Linux 系统中意外删除一些重要文件或目录,除了必要的备份之外,还有一个好方法,就是使用chattr命令。

chattr(Change Attribute)命令

在类 Unix 等发行版中,该命令能够有效防止文件和目录被意外的删除或修改。file 文件在 Linux 中被描述为一个数据结构,chattr 命令在大多数现代 Linux 操作系统中是可用的,可以修改file属性,一旦定义文件的隐藏属性,那么该文件的拥有者和 root 用户也无权操作该文件,只能解除文件的隐藏属性。

命令语法

chattr [operator] [switch] [file]

operator 具有如下操作符:

  • 操作符 +,追加指定属性到文件已存在属性中
  • 操作符-, 删除指定属性
  • 操作符=,直接设置文件属性为指定属性

switch 常用属性指令如下

1
2
3
4
5
6
7
8
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。

其它参数

  • -R:递归处理,将指令目录下的所有文件及子目录一并处理;
  • -v<版本编号>:设置文件或目录版本;
  • -V:显示指令执行过程

设置文件不能被改名,移动删除,增删数据

1
2
3
4
5
6
lsattr rumenz.txt 
---------------- rumenz.txt

chattr +i rumenz.txt
lsattr rumenz.txt
----i----------- rumenz.txt

尝试修改文件

1
2
echo "rumenz.com" rumenz.txt
-bash: rumenz.txt: Permission denied

提示没有权限

删除特殊i权限

1
chattr -i rumenz.txt

设置目录不能建立,移动和删除文件

1
2
3
4
5
6
7
8
9
10
mkdir rumenz && touch rumenz/1.txt
tree
.
└── rumenz
└── 1.txt
lsattr rumenz/
---------------- rumenz/1.txt
chattr +i -R rumenz/
lsattr rumenz/
----i----------- rumenz/1.txt

rumenz目录下创建目录

1
2
mkdir rumenz/one
mkdir: cannot create directory ‘rumenz/one’: Permission denied

提示权限不足

rumenz/1.txt文件中添加数据

1
2
echo "rumenz.com" rumenz/1.txt 
-bash: rumenz/1.txt: Permission denied

删除特殊i权限

1
chattr -i -R rumenz

设置文件只能添加数据,不能修改,删除,移动该文件

1
2
3
4
5
lsattr rumenz.txt
---------------- rumenz.txt
chattr +a rumenz.txt
lsattr rumenz.txt
-----a---------- rumenz.txt

修改rumenz.txt文件内容

1
2
3
echo "rumenz.com" rumenz.txt
-bash: rumenz.txt: Operation not permitted
echo "rumenz.com" >rumenz.txt

修改覆盖rumenz.txt文件内容不行,向后追加可以。

修改文件名

1
2
mv rumenz.txt one.txt
mv: cannot move ‘rumenz.txt’ to ‘one.txt’: Operation not permitted

提示权限不足

设置rumenz目录下只能添加目录,文件,但是不能对里面的文件夹,文件修改,移动,删除。

1
2
3
chattr +a -R rumenz
lsattr rumenz/
-----a---------- rumenz/1.txt

rumenz目录下创建one

1
mkdir rumenz/one

rumenz/one目录重命名

1
2
mv rumenz/one rumenz/tow
mv: cannot move ‘rumenz/one’ to ‘rumenz/tow’: Operation not permitted

rumenz目录下创建文件

1
2
3
touch rumenz/3.txt
ls rumenz/
1.txt 3.txt one

不能删除rumenz/3.txt文件

1
2
rm -rf rumenz/3.txt 
rm: cannot remove ‘rumenz/3.txt’: Operation not permitted

不能被删除

可以修改rumenz/3.txt文件内容

1
2
3
echo "rumenz.com" rumenz/3.txt
cat rumenz/3.txt
rumenz.com

增强版xugit(V5.2)发布

  • 2024-05-09 16:37 完成增强版xugit.sh, 安装后命令仍然为ugit. 后期如果没有重大bug, 尽量不再升级了,因为科研工作紧张。欢迎大家使用增强版xugit.sh, 欢迎反馈您的意见.

  • 2024年05月09日, 完成了增强版U盘同步程序xugit.sh. 写这支程序的动机是为了解决文件夹误删除,同时如果被改名时能够智能找回或重建,此版采用uudi来唯一识别主机上的HOME挂载硬盘和相应的U盘, 它不依赖于U盘和仓库的名称来识别设备,所以可以自动校准电脑和U盘上的仓库,所以我称之为增强版。同时在实现逻辑上比之前的版本也进步了一大截,所以无特别需求的话,您应当下载使用增强版xugit.sh, 安装后其命令仍然为ugit, 使用ugit -h查看帮助信息。

  • 此版,将同步网络的配置内容保存于U盘仓库,不受主机限制,所以配置一次即可走遍天下。同时,也取消了对本地~/.ugitmap的引用,专而将其建立在U盘端,这也可以避免受限于本地,所以更加合理。

  • 增强版还优化了命令,强调易用性,对于同步的和操作实现自动化,仅保留几项常用的操作,所以它更加实用。

  • 为了保留近二十多天的劳动成果,所以同时保存了三个版本的程序,也可以作为大家学习之用,但是未来本人将只维护xugi.sh,同时由于实现逻辑上的巨大差异,增强版xugit.sh直接升级至V5.0, 2024年05月09日版本号V5.2.

ugit V4.0 存在的问题

已经开发成功了ugit软件,基本实现U盘上建立GIT仓库,并且同步到不同电脑。其实现原理为:在U盘上建立仓库,然后在本地电脑写入本地目录U盘仓库的对应关系,然后实现同步。但是这种情况存在问题也是比较严重的,下面说明:

  • 本地仓库名称有可能被用户改变,这种情况下导致本地记录文件.ugitmap的一系列记录失效,因为这些路径不存在。

  • 最初对本地仓库命名时,使用U盘名称@UGIT的模式,如果用户使用了另一个同名的U盘, 尽管通过比对U盘的UUID可以识别出这不是之前的源仓库,但是在本地建立仓库时就会和之前的U盘名称@UGIT冲突。

  • 如果某用户误删除了.ugitmap文件,但是原来建立的仓库还存在,于是在执行同步的时候ugit就无法取得本地和源仓库的对应关系。

ugit V4.1 的改进计划

硬件设备的唯一识别编号为UUID, Linux 让的所有文件识别的唯一编号为 inode, 于是通过这两者建立一一对应关系,就不会存在ugit V4.0的问题。需要做的应当是将.ugitmap删除,同时根据硬盘UUID和U盘UUID取得一一对应关系,同时将系统中的inode自动和U盘仓库建立一一对应关系。实现流程为:

  1. 读取U盘信息,将所有插入电脑的U盘UUID路径存入数组变量待用。

  2. 新的U盘仓库为空时,在该U盘建立映射文件.ugitmap, 加入防删除权限。如果在U盘仓库中已经存在仓库,则使用ls命令,建立仓库路径存入数组变量待用。

    .ugitmap 中记录了克隆过U盘仓库的电脑硬盘UUID和目标文件夹的inode

  3. 读对主机的硬盘信息,如果其不在.ugitmap内,此硬盘没有克隆过U盘仓库, 执行克隆操作,同时将本地上的文件夹inode记录到U盘中的.ugitmap. 如果其在.ugitmap内,则使用findinode/home/$USER内查找路径,建立本地map, 执行同步操作。

  4. 剩下的工作交给ugit V4.0原始程序处理。

  5. 2024-05-08 12:22 暂时记录到此。

格式化一个磁盘, 操作系统就知道您要在磁盘上存放文件了,于是系统为您将建立一个文件指针的一个结构。这个结构存放在磁盘上的起始区中的。

先前的FAT16系统占用的空间相当小,但是它所能支持的最大空间也很小的。

从WIN98后,支持的FAT32系统支持大于4G的空间。为什么会支持这样大么?就是因为它占用了更大的磁盘空间来支持文件的存储表。它是按照磁盘的空间来决定的。

我的磁盘一般是用 NTFS 系统的。因为它的安全性高一些。如果您要在局域网中存放相关的安全信息的话,那都是。而这些根目录的总体信息等等都存放在这里的。下面列出一组数据:

U 盘容量 空白占用
105G 93M
148G 93.8M
223G 96.7M

git mergegit rebase的区别, 如图

merge和rebase的区别

一个事情很容易判断,使用merge会得到一个复杂的路线图,但是rebase会生成一条清晰的发展路线,所以还是建议使用rebase.

之前我找到了三个工具来删除重复文件,目前的工作主力系统为archlinux, 一般选择软件的顺序为官方仓库AurGithub, 因为在之前的三个工具中只有fdupesarchlinux官方仓库收录的工具,所以优先安装了。今天无意间又发现一款官方工具rmlint, 它是一个命令行工具,用于在 Linux 系统中查找和删除重复的和类似 lint 的文件。它有助于识别具有相同内容的文件,以及各种形式的冗余或 lint,例如空文件、损坏的符号链接和孤立文件。使用方法:

  • 切换到要操作的文件目录,执行rmlint, 然后它会生成一个当前目录的重复及空目录等情况列表,同时有一个脚本rmlint.sh和一个目录结构文件rmlint.json.

  • 若要真的执行删除重复的操作,在要操作的目录中执行./rmlint.sh, 然后在弹出的提示中,输入任意内容内执行完毕。

  • 使用教程参考rmlint doc