<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.zenroly.com/index.php?action=history&amp;feed=atom&amp;title=%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E5%B1%95%E7%A4%BA</id>
	<title>代码高亮展示 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zenroly.com/index.php?action=history&amp;feed=atom&amp;title=%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E5%B1%95%E7%A4%BA"/>
	<link rel="alternate" type="text/html" href="https://wiki.zenroly.com/index.php?title=%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E5%B1%95%E7%A4%BA&amp;action=history"/>
	<updated>2026-10-09T17:27:04Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.zenroly.com/index.php?title=%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E5%B1%95%E7%A4%BA&amp;diff=61&amp;oldid=prev</id>
		<title>Bill：​创建页面，内容为“ == bash ==  &lt;syntaxhighlight lang=&quot;bash&quot;&gt;#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR=&quot;/home/bill/Backup/wiki_backup&quot;  # 数据库备份（改用mariadb-dump消除弃用警告） mariadb-dump -u mediawiki_user -pmediawiki666 mediawiki_db &gt; ${BACKUP_DIR}/db_${DATE}.sql  # 打包wiki程序与附件 tar -zcf ${BACKUP_DIR}/file_${DATE}.tar.gz /srv/www/mediawiki-1.45.3  # 删除7天以上旧备份文件 find ${BACKUP_DIR} -maxdepth 1 -name &quot;*.sql&quot; -mtime +7 -delete…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.zenroly.com/index.php?title=%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E5%B1%95%E7%A4%BA&amp;diff=61&amp;oldid=prev"/>
		<updated>2026-06-25T09:47:26Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“ == bash ==  &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR=&amp;quot;/home/bill/Backup/wiki_backup&amp;quot;  # 数据库备份（改用mariadb-dump消除弃用警告） mariadb-dump -u mediawiki_user -pmediawiki666 mediawiki_db &amp;gt; ${BACKUP_DIR}/db_${DATE}.sql  # 打包wiki程序与附件 tar -zcf ${BACKUP_DIR}/file_${DATE}.tar.gz /srv/www/mediawiki-1.45.3  # 删除7天以上旧备份文件 find ${BACKUP_DIR} -maxdepth 1 -name &amp;quot;*.sql&amp;quot; -mtime +7 -delete…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== bash ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
DATE=$(date +%Y%m%d)&lt;br /&gt;
BACKUP_DIR=&amp;quot;/home/bill/Backup/wiki_backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 数据库备份（改用mariadb-dump消除弃用警告）&lt;br /&gt;
mariadb-dump -u mediawiki_user -pmediawiki666 mediawiki_db &amp;gt; ${BACKUP_DIR}/db_${DATE}.sql&lt;br /&gt;
&lt;br /&gt;
# 打包wiki程序与附件&lt;br /&gt;
tar -zcf ${BACKUP_DIR}/file_${DATE}.tar.gz /srv/www/mediawiki-1.45.3&lt;br /&gt;
&lt;br /&gt;
# 删除7天以上旧备份文件&lt;br /&gt;
find ${BACKUP_DIR} -maxdepth 1 -name &amp;quot;*.sql&amp;quot; -mtime +7 -delete&lt;br /&gt;
find ${BACKUP_DIR} -maxdepth 1 -name &amp;quot;*.tar.gz&amp;quot; -mtime +7 -delete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== latex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;latex&amp;quot;&amp;gt;% ==============================================&lt;br /&gt;
% 【全局前置文件】所有配置统一存放&lt;br /&gt;
% 作者：bill｜专为个人千页知识库定制&lt;br /&gt;
% ==============================================&lt;br /&gt;
\documentclass[12pt,a4paper,openany]{ctexbook}&lt;br /&gt;
\usepackage[margin=2.5cm]{geometry}&lt;br /&gt;
&lt;br /&gt;
% 基础必带包&lt;br /&gt;
\usepackage{amsmath,amssymb,amsfonts}&lt;br /&gt;
\usepackage{graphicx}&lt;br /&gt;
\usepackage{booktabs}&lt;br /&gt;
\usepackage{listings}&lt;br /&gt;
\usepackage{xcolor}&lt;br /&gt;
\usepackage{fancyhdr}&lt;br /&gt;
\usepackage{tocbibind}&lt;br /&gt;
\usepackage{hyperref}&lt;br /&gt;
\usepackage{url}&lt;br /&gt;
\usepackage{framed}&lt;br /&gt;
&lt;br /&gt;
% 进阶排版（笔记刚需）&lt;br /&gt;
\usepackage{titletoc}&lt;br /&gt;
\usepackage{enumitem}&lt;br /&gt;
\usepackage{multicol}&lt;br /&gt;
\usepackage{multirow}&lt;br /&gt;
\usepackage{makecell}&lt;br /&gt;
\usepackage{float}&lt;br /&gt;
\usepackage{caption}&lt;br /&gt;
\usepackage{subcaption}&lt;br /&gt;
\usepackage{tikz}&lt;br /&gt;
\usetikzlibrary{arrows,shapes,positioning}&lt;br /&gt;
&lt;br /&gt;
% ===================== 护眼自定义配色（低饱和不伤眼） =====================&lt;br /&gt;
\definecolor{cBlue}{RGB}{25,70,140}&lt;br /&gt;
\definecolor{cGreen}{RGB}{18,110,50}&lt;br /&gt;
\definecolor{cOrange}{RGB}{150,80,0}&lt;br /&gt;
\definecolor{cRed}{RGB}{140,15,15}&lt;br /&gt;
\definecolor{cGray}{RGB}{85,85,85}&lt;br /&gt;
\definecolor{cBgGray}{RGB}{247,247,247}&lt;br /&gt;
\definecolor{cHintBg}{RGB}{240,248,255}&lt;br /&gt;
\definecolor{cWarnBg}{RGB}{255,248,240}&lt;br /&gt;
\definecolor{cImportantBg}{RGB}{245,250,245}&lt;br /&gt;
&lt;br /&gt;
% ===================== 笔记专用环境框（四种永久通用） =====================&lt;br /&gt;
% 1.重点框（绿色背景）&lt;br /&gt;
\newenvironment{重点}{%&lt;br /&gt;
    \begin{framed}\color{cGreen}\textbf{【重点知识】}\ignorespaces&lt;br /&gt;
}{\end{framed}}&lt;br /&gt;
&lt;br /&gt;
% 2.警告框（橙色背景）&lt;br /&gt;
\newenvironment{警告}{%&lt;br /&gt;
    \begin{framed}\color{cOrange}\textbf{【风险警告】}\ignorespaces&lt;br /&gt;
}{\end{framed}}&lt;br /&gt;
&lt;br /&gt;
% 3.提示框（蓝色背景）&lt;br /&gt;
\newenvironment{提示}{%&lt;br /&gt;
    \begin{framed}\color{cBlue}\textbf{【技巧提示】}\ignorespaces&lt;br /&gt;
}{\end{framed}}&lt;br /&gt;
&lt;br /&gt;
% 4.摘抄框（灰色斜体）&lt;br /&gt;
\newenvironment{摘抄}{%&lt;br /&gt;
    \begin{quote}\small\itshape\color{cGray}\ignorespaces&lt;br /&gt;
}{\end{quote}}&lt;br /&gt;
&lt;br /&gt;
% ===================== 页眉页脚（千页书籍风格） =====================&lt;br /&gt;
\setlength{\headheight}{15pt}&lt;br /&gt;
\pagestyle{fancy}&lt;br /&gt;
\fancyhf{}&lt;br /&gt;
\lhead{\leftmark}&lt;br /&gt;
\rhead{\rightmark}&lt;br /&gt;
\cfoot{第 \thepage 页}&lt;br /&gt;
\renewcommand{\headrulewidth}{0.3pt}&lt;br /&gt;
&lt;br /&gt;
% ===================== 代码块（护眼、全语言通用） =====================&lt;br /&gt;
\lstset{&lt;br /&gt;
    basicstyle=\ttfamily\small,&lt;br /&gt;
    keywordstyle=\color{cBlue},&lt;br /&gt;
    commentstyle=\color{cGray},&lt;br /&gt;
    stringstyle=\color{cGreen},&lt;br /&gt;
    frame=single,&lt;br /&gt;
    breaklines=true,&lt;br /&gt;
    numbers=left,&lt;br /&gt;
    numberstyle=\tiny\color{cGray},&lt;br /&gt;
    backgroundcolor=\color{cBgGray},&lt;br /&gt;
    showstringspaces=false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% ===================== 超链接（PDF可跳转、反向搜索） =====================&lt;br /&gt;
\hypersetup{&lt;br /&gt;
    colorlinks=true,&lt;br /&gt;
    linkcolor=cBlue,&lt;br /&gt;
    citecolor=cRed,&lt;br /&gt;
    urlcolor=cBlue,&lt;br /&gt;
    bookmarksopen=true,&lt;br /&gt;
    bookmarksnumbered=true,&lt;br /&gt;
    pdfstartview=FitH,&lt;br /&gt;
    pdfcreator=Bill Notebook,&lt;br /&gt;
    breaklinks=true,&lt;br /&gt;
    synctex=true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% ===================== 全局排版优化（中文阅读优化） =====================&lt;br /&gt;
\setlength{\parindent}{2em}&lt;br /&gt;
\setlength{\parskip}{0.4em}&lt;br /&gt;
\renewcommand{\baselinestretch}{1.32}&lt;br /&gt;
\setlist[itemize]{leftmargin=*,itemsep=0.25em}&lt;br /&gt;
\setlist[enumerate]{leftmargin=*,itemsep=0.25em}&lt;br /&gt;
&lt;br /&gt;
% ===================== 自定义命令（以后频繁偷懒用） =====================&lt;br /&gt;
\newcommand{\linkurl}[2]{\href{#1}{\textcolor{cBlue}{\underline{#2}}}}&lt;br /&gt;
\newcommand{\codeinline}[1]{\texttt{#1}}&lt;br /&gt;
\newcommand{\mathkey}[1]{\boldsymbol{\color{cRed}#1}}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== python ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;py&amp;quot;&amp;gt;#!/usr/bin/env python3&lt;br /&gt;
import time&lt;br /&gt;
from pathlib import Path&lt;br /&gt;
import shutil&lt;br /&gt;
&lt;br /&gt;
BASE = Path(&amp;quot;/home/bill/.local/share/fcitx5/rime&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# 改用拆分后的独立文件&lt;br /&gt;
ZIKU_FILE = BASE / &amp;quot;origin/ziku.yaml&amp;quot;&lt;br /&gt;
CIKU_FILE = BASE / &amp;quot;origin/ciku.yaml&amp;quot;&lt;br /&gt;
BOOST = BASE / &amp;quot;xqzm_boost.dict.yaml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 保留原有预留文件（暂不使用）&lt;br /&gt;
CUSTOM = BASE / &amp;quot;xqzm_custom.dict.yaml&amp;quot;&lt;br /&gt;
BREVITY = BASE / &amp;quot;xqzm_brevity.dict.yaml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OUTPUT = BASE / &amp;quot;xqzm_generated.dict.yaml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 1. 备份旧输出文件&lt;br /&gt;
# -------------------------&lt;br /&gt;
ts = time.strftime(&amp;quot;%Y%m%d-%H%M%S&amp;quot;)&lt;br /&gt;
if OUTPUT.exists():&lt;br /&gt;
    backup = BASE / f&amp;quot;xqzm_generated.dict.yaml.bak.{ts}&amp;quot;&lt;br /&gt;
    shutil.copy2(OUTPUT, backup)&lt;br /&gt;
    print(f&amp;quot;[OK] backup -&amp;gt; {backup}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 2. 通用读取函数&lt;br /&gt;
# -------------------------&lt;br /&gt;
def load(path):&lt;br /&gt;
    if not path.exists():&lt;br /&gt;
        return []&lt;br /&gt;
    return path.read_text(encoding=&amp;quot;utf-8&amp;quot;).splitlines()&lt;br /&gt;
&lt;br /&gt;
# 直接读取已拆分好的字库、词库、提权词条&lt;br /&gt;
ziku = load(ZIKU_FILE)&lt;br /&gt;
ciku = load(CIKU_FILE)&lt;br /&gt;
boost = load(BOOST)&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 3. 合并 boost 提权词条到词库&lt;br /&gt;
# -------------------------&lt;br /&gt;
ciku += boost&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 4. 去重：按(字词, 编码) 唯一校验&lt;br /&gt;
# -------------------------&lt;br /&gt;
seen = set()&lt;br /&gt;
dedup = []&lt;br /&gt;
for line in ciku:&lt;br /&gt;
    parts = line.split(&amp;quot;\t&amp;quot;)&lt;br /&gt;
    if len(parts) &amp;lt; 3:&lt;br /&gt;
        continue&lt;br /&gt;
    key = (parts[0], parts[1])&lt;br /&gt;
    if key in seen:&lt;br /&gt;
        continue&lt;br /&gt;
    seen.add(key)&lt;br /&gt;
    dedup.append(line)&lt;br /&gt;
ciku = dedup&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 5. 排序规则：编码升序，权重降序&lt;br /&gt;
# -------------------------&lt;br /&gt;
def sort_key(line):&lt;br /&gt;
    parts = line.split(&amp;quot;\t&amp;quot;)&lt;br /&gt;
    if len(parts) &amp;lt; 3:&lt;br /&gt;
        return (&amp;quot;zzz&amp;quot;, 0)&lt;br /&gt;
    code = parts[1]&lt;br /&gt;
    try:&lt;br /&gt;
        weight = int(parts[2])&lt;br /&gt;
    except:&lt;br /&gt;
        weight = 0&lt;br /&gt;
    return (code, -weight)&lt;br /&gt;
&lt;br /&gt;
ciku.sort(key=sort_key)&lt;br /&gt;
&lt;br /&gt;
# -------------------------&lt;br /&gt;
# 6. 拼接最终内容：字库在前 + 处理后的词库在后&lt;br /&gt;
# -------------------------&lt;br /&gt;
new_content = ziku + ciku&lt;br /&gt;
&lt;br /&gt;
# 写入最终码表&lt;br /&gt;
OUTPUT.write_text(&amp;quot;\n&amp;quot;.join(new_content) + &amp;quot;\n&amp;quot;, encoding=&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[OK] generated:&amp;quot;, OUTPUT)&lt;br /&gt;
print(f&amp;quot;[INFO] ziku={len(ziku)}&amp;quot;)&lt;br /&gt;
print(f&amp;quot;[INFO] ciku={len(ciku)} (merged + dedup + sorted)&amp;quot;)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[分类:测试]]&lt;/div&gt;</summary>
		<author><name>Bill</name></author>
	</entry>
</feed>