Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Hexo——使用总结

Hexo 使用总结


在博客中引用自己的博客

  • 在 _config.yml 中设置属性

    1
    permalink: :title.html
  • 引用方式

    1
    2
    3
    # 引用文档,以引用论文为例
    # 引用的应该是生成时使用的文件路径或者title,后面跟上.html,但是还要根据不同设置来修改,总之就是访问时的链接
    [引用示例](/Notes/Hexo/Hexo——使用总结.html "/Notes/Hexo/Hexo——使用总结.html")

引用示例


导入图片

  • 在同目录下新建与Markdown文档文件名相同的文件夹,将图片存入文件夹中
  • 在Markdown文档中使用特殊语法导入
    1
    {% asset_img picture.png descreption %}

插入LaTex公式

LaTex公式

  • 在线公式编辑地址
  • LaTex公式用法参见LaTex——笔记

借助工具插入公式

MathJax引擎(推荐)
  • 这种方式只需要在是实现时首先添加引擎代码,后面就可以完全像是Latex一样写公式
头部添加
  • 添加头部如下

    1
    2
    <!-- <script src="//cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"  type="text/javascript"></script> -->
    <script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
    1
    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>
    • 说明:
      • 第一个头部可用,在各种浏览器均能正确加载
      • 第二个涉及到https的安全性问题,在部署到GitHub时,某些浏览器上不能正确加载
  • 测试说明:

    • yilla主题下Chrome和Firefox浏览器中不添加上面的头部当前文档也能识别出公式, 其他浏览器未测试
    • next主题下必须加上这个头部才行
写公式
  • 行内公式
    1
    公式如下: \\(\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\\) 所示

公式如下: \(\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\) 所示

  • 行间公式
    1
    公式如下:$$\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$所示

公式如下:$$\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$所示

  • 公式等号对齐

    • 公式如下:

      1
      2
      3
      4
      5
      6
      7
      8
      $$
      \begin{align}
      Q(\theta, \theta^{i}) &= \mathbb{E}\_{Z}[logP(Y,Z|\theta)|Y,\theta^{i}] \\\\
      &= \mathbb{E}\_{Z\sim P(Z|Y,\theta^{i})}[logP(Y,Z|\theta)] \\\\
      &= \sum_{Z} P(Z|Y,\theta^{i})logP(Y,Z|\theta) \\\\
      &= \sum_{Z} logP(Y,Z|\theta)P(Z|Y,\theta^{i})
      \end{align}
      $$

      $$
      \begin{align}
      Q(\theta, \theta^{i}) &= \mathbb{E}_{Z}[logP(Y,Z|\theta)|Y,\theta^{i}] \\
      &= \mathbb{E}_{Z\sim P(Z|Y,\theta^{i})}[logP(Y,Z|\theta)] \\
      &= \sum_{Z} P(Z|Y,\theta^{i})logP(Y,Z|\theta) \\
      &= \sum_{Z} logP(Y,Z|\theta)P(Z|Y,\theta^{i})
      \end{align}
      $$

Google Chart服务器
  • 引用方式
    1
    2
    # <img src="http://chart.googleapis.com/chart?cht=tx&chl=Latex公式" style="border:none;">
    <img src="http://chart.googleapis.com/chart?cht=tx&chl=\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" style="border:none;">
forkosh服务器
  • 引用方式
    1
    2
    <img src="http://www.forkosh.com/mathtex.cgi? Latex公式">
    <img src="http://www.forkosh.com/mathtex.cgi?\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}">

给文字加颜色

  • 给文字添加颜色示例

    1
    <span style="color:red">红色文字</span>

    红色文字

LaTex——省略号

省略号在LaTeX中的使用

  • 参考链接:LaTeX入门(6)
  • 常见的省略号有:“\ldots”,“\cdots”,“\vdots”,“\ddots”等
  • 对于常规的“\ldots”(下),“\cdots”(中),一般来说,使用“\dots”更好些,能够自动适配选择位置
  • “\vdots”,“\ddots”则用在特殊情况下,比如矩阵等

LaTex——笔记

LaTex使用笔记


LaTex公式等号对齐示例

  • LaTex公式等号对齐

    1
    2
    3
    4
    5
    6
    7
    $$
    \begin{align}
    L(x)&=U(x) \\\\
    &=N(x) \\\\
    &=M(x)
    \end{align}
    $$
    • 其中\\表示换行&表示每一行的对齐点
    • 在Markdown文档中要注意\\\\才对应\\,因为\在Markdown文档中是转义字符

      $$
      \begin{align}
      L(x)&=U(x) \\
      &=N(x) \\
      &=M(x)
      \end{align}
      $$


LaTex特殊公式总结

  • LaTex特殊公式总结
    LaTex 符号
    \partial \(\partial\)
    \nabla \(\nabla\)
    \infty \(\infty\)
    \int \(\int\)
    \iint \(\iint\)
    \iiint \(\iiint\)
    \oint \(\oint\)
    \triangle \(\triangle\)
    \bigtriangledown \(\bigtriangledown\)
    \triangleleft \(\triangleleft\)
    \triangleright \(\triangleright\)
    \circ \(\circ\)
    \odot \(\odot\)
    \otimes \(\otimes\)

LaTex公式空格类型总结

  • 公式空格总结表
    LaTex 空格效果
    a\qquad b \(a\qquad b\)
    a\quad b \(a\quad b\)
    a\ b \(a\ b\)
    a; b \(a; b\)
    a, b \(a, b\)
    ab \(ab\)
    a!b \(a!b\)

LaTex公式后面加上序号

  • 公式后面加上序号示例

    1
    $$y(x) = x^{2} \tag{1}$$

    $$y(x) = x^{2} \tag{1}$$


LaTex公式中分段函数的使用

  • 大括号实现分段函数示例

    1
    2
    3
    4
    5
    $$f(x)=
    \begin{cases}
    0& \text{x=0}\\\\
    1& \text{x!=0}
    \end{cases}$$

    $$f(x)=
    \begin{cases}
    0& \text{x=0}\\
    1& \text{x!=0}
    \end{cases}$$


LaTex公式argmax的使用

目标:实现下标在整个argmax下面居中

  • argmax使用(1)

    1
    $$j^{\star}=\mathop{\arg \max}_{j}f(j)$$

    $$j^{\star}=\mathop{\arg \max}_{j}f(j)$$

  • argmax使用(2)

    1
    $$j^{\star}=\underset{j}{\arg \max}f(j)$$

    $$j^{\star}=\underset{j}{\arg \max}f(j)$$

LaTex——编译问题

VSCode环境中引用出错问题排查

  • 参考链接:latex报错:Citation ‘×××ב on page x undefined.与众不同的解决方案

  • 除了排查自身代码问题 && 修改配置文件外,还可以使用命令行重新编译PDF文件,具体流程如下

    • 切换到xxx.tex文件所在目录下

      1
      2
      3
      4
      xelatex xxx
      bibtex xxx
      xelatex xxx
      xelatex xxx
    • 执行以上语句后PDF引用恢复正常

Linux——Logstash时区问题

有时候Linux系统重启或者有修改后会造成时区被修改,默认一般是UTC时间,有时候会变成CST时间
在阿里云主机扩展后出现过一次,造成了Logstash 使用JDBC连接数据库时读取报错:大概是JavaLang::IllegalArgumentException: HOUR_OF_DAY: 2 -> 3这样的错


解决方案:

改系统时区

  • 将系统的时区改回去,然后重启
    1
    2
    3
    4
    # 修改时区命令:	
    timedatectl set-timezone UTC
    # 重启命令:
    shutdown -r now

重启后继续运行之前出错的程序,成功解决问题

链接时加参数

  • 在连接mysql-connector时加上一个时区参数

  • 以logstash为例子

    • 在mysql.config中修改连接语句原来为(连接到名称为”docker“的数据库,但是没有指定参数)

      1
      jdbc:mysql://localhost:3306/docker
    • 修改后连接语句为(制定参数为UTC)

      1
      jdbc:mysql://localhost:3306/docker?serverTimezone=UTC

注意,这种方式修改后我的系统时区可为任意的,比如我的系统时区就一直为CST

替换JDBC版本【未测试】

  • 网上有博客指出可以通过换jdbc connector的版本解决问题

Linux——alias功能使用


整体说明

  • 命令别名(alias)是为复杂命令或命令组合创建的“快捷方式”
  • 可以减少重复输入,提高效率

创建别名

  • 别名创建命令

    1
    alias 别名="原命令"
  • 常用别名举例:

    1
    2
    # 创建 ll 别名,替代 ls -l
    alias ll='ls -l'
  • 创建别名后,直接使用别名即可实现与原命令同等效果

    1
    2
    # 输入 ll,相当于执行 ls -l
    ll

别名管理

  • 别名管理命令:
    1
    2
    3
    4
    5
    6
    7
    8
    # 查看所有别名
    alias

    # 查看某个别名的定义
    alias ll

    # 删除 ll 别名
    unalias ll

别名永久生效

  • 以上命令创建的别名是临时的,重新启动终端后会消失,为了长久保留别名,可通过修改配置文件实现

  • 编辑配置文件 :

    1
    2
    3
    4
    5
    # 用 vim 打开配置文件(适用于 bash 终端)
    vim ~/.bashrc

    # 如果你使用的是 zsh 终端,则打开
    vim ~/.zshrc
  • 添加别名定义(在文件末尾添加类似以下内容:):

    1
    2
    3
    4
    5
    6
    7
    8
    # 常用文件列表别名
    alias ll='ls -l'
    alias la='ls -a'
    alias lla='ls -la'

    # 系统管理别名
    alias update='sudo apt update && sudo apt upgrade -y'
    alias reboot='sudo reboot'

附录:常见通用实用别名实践

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安全删除(删除前询问确认)
alias rm='rm -i'

# 带颜色的 grep
alias grep='grep --color=auto'

# 快速回到上级目录
alias ..='cd ..'

# 查看网络连接
alias net='netstat -tulpn'

# 查看磁盘使用情况
alias df='df -h'

# ll 替代 ls -l
alias ll='ls -l'

附录:其他注意点

  • 单引号 ':不解析变量,适合直接替换命令

  • 双引号 ":会解析变量,适合需要动态内容的别名(不常用)

  • 别名优先级高于原始命令,若要执行原始命令,可使用 \[原命令名](比如 \ls)

    1
    \命令名  # 例如:\ls
  • 不要使用系统已有命令作为别名,否则会覆盖原命令

Linux——find命令详解

本文介绍Linux下find命令的使用方法

  • 参考博客: https://www.cnblogs.com/weijiangbao/p/7653588.html

常用方法说明

  • find命令用于在给定目录下查找符合给定条件的文件

  • 用法:

    1
    Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
  • 常用的用法:

    1
    2
    find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
    find 目标目录 选项 查找完成后执行的操作
  • 实例1:

    1
    find . -name "*a*.py" -exec cat {} \; | grep test
    • 解析:将当前文件夹下的名字能匹配*a*.py的文件找出来,并输出其中含有”test”的行
      • .对应path参数,代表搜索路径为当前文件夹, 默认会递归搜索
      • -name "*a*.py"对应选项,指出找文件的筛选条件
      • -exec cat {} \; | grep test指明找到文件后需要执行的操作,{}用于表示前面被固定下来的接受参数, 由于{}后面必须使用分号;,而命令行中分号需要转义字符转义,所以就是\;
        • 注意: 这里{} \;中间必须空一格,且{} \;中间不能加任何字符或命令等
  • 示例2:

    1
    find . -maxdepth 1 -name "test*.py" -exec cat {} \;| grep test
    • 在前面的基础上指定只从第一层目录中查找,不递归

参数和选项详解

1
find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

参数

  • -print: find命令将匹配的文件输出到标准输出
  • -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和;之间的空格
  • -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

选项

  • -name: 按照文件名查找文件
  • -perm: 按照文件权限来查找文件
  • -prune: 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
  • -user: 按照文件属主来查找文件
  • -group: 按照文件所属的组来查找文件
  • -mtime -n +n: 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项
  • -nogroup: 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
  • -nouser: 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
  • -newer file1 ! file2: 查找更改时间比文件file1新但比文件file2旧的文件
  • -type: 查找某一类型的文件
    • 默认是查找所有类型
参数 文件类型
d 目录
c 字符设备文件
p 管道文件
f 普通文件
l 符号链接文件
b 块设备文件

Linux——exec命令的使用


整体说明

  • Linux Shell 脚本中,exec 命令用于在当前 shell 进程中执行指定的命令,而不是启动一个新的子进程

  • exec 常常用来替换当前 shell 进程,或者重定向文件描述符

  • exec 基本语法如下:

    1
    exec 命令 [参数...]
    • 执行后,当前 shell 进程会被新命令替换,原 shell 脚本后续的内容将不会再执行

exec 替换进程用法

  • 假如在脚本中写:

    1
    2
    3
    4
    #!/bin/bash
    echo "Before exec"
    exec ls -l
    echo "After exec"
    • 输出只会有 “Before exec” 和 ls -l 的结果,而不会有 “After exec”,因为 exec ls -l 之后,脚本所在的 shell 进程已经被 ls 取代,后续语句不会执行

exec 实现文件描述符重定向

  • exec 也常用于重定向输入输出,不会启动新进程,而是改变当前 shell 的文件描述符。例如:

    • 将标准输出重定向到文件:

      1
      2
      exec > output.txt
      echo "This will go to output.txt"
      • 这样,后续所有标准输出都会写入 output.txt 文件
    • 将标准输入重定向为某个文件:

      1
      2
      3
      exec < input.txt
      read line
      echo $line
      • 这样,read 命令会从 input.txt 读取内容
    • 关闭文件描述符:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      # 打开一个文件用于读取,赋予文件描述符3
      exec 3< myfile.txt

      # 通过文件描述符3读取一行
      read line <&3
      echo "读取到的内容: $line"

      # 关闭文件描述符3
      exec 3<&-
      • 这表示关闭文件描述符 3

Python-Jupyter——将ipynb文件转成py文件

jupyter nbconvert --to script test.ipynb 

Anaconda——Python环境和pip包安装方式

文本适用于anaconda,miniforge等包含conda的所有软件

conda对Python虚拟环境的管理方式

  • 虚拟环境均存储在./envs目录下,按照虚拟环境名称命名
  • 在不同虚拟环境下,conda会切换到当前envs目录,从而实现访问不同Python和pip

pip包的管理方式

  • pip对包默认存储在当前虚拟环境下的lib目录下与Python版本有关,比如,lib/python3.10/site-package
  • 具体包的安装路径可使用pip show [package_name]判断
  • pip是一个脚本文件,可以使用vim打开,第一行指定了当前pip对应的Python脚本位置,需要设置准确,第一行必须与当前环境下执行which python的结果一致,如果有问题可以修改到指定目录(特别是手动迁移conda管理的虚拟环境时)

如何迁移Python虚拟环境?

  • 迁移虚拟环境只需要copy envs文件下下的指定环境目录即可,迁移后记得修改pip/pip3文件对应的第一行路径
1…606162…64
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

631 posts
53 tags
GitHub E-Mail
© 2026 Joe Zhou
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4