From 845850871ae23ee3eb0b009006db5a33aa53c3f4 Mon Sep 17 00:00:00 2001 From: dichgrem Date: Fri, 21 Nov 2025 18:43:00 +0800 Subject: [PATCH] style:add_highlight --- content/Network-How-email-works-1.md | 2 +- content/Network-How-email-works-2.md | 8 +- content/Network-ISPs.md | 2 +- content/Network-aria2.md | 21 ++--- content/Network-cdn.md | 22 +++--- content/Network-docker.md | 58 +++++++------- content/Network-ssh.md | 10 +-- content/Network-yt-dlp.md | 14 ++-- content/about-Junk-cleanup.md | 30 +++---- content/about-RSS-Read.md | 2 +- content/about-baci.md | 26 +++---- content/about-blog.md | 20 ++--- content/about-gfs.md | 12 +-- content/about-git.md | 112 +++++++++++++-------------- content/about-gpg.md | 16 ++-- content/about-lazyvim.md | 16 ++-- content/about-mechrev-keyboard.md | 18 ++--- content/about-server-set.md | 82 ++++++++++---------- content/about-virtual.md | 20 ++--- content/awesome-PVE-MCSM.md | 14 ++-- content/awesome-android-TV.md | 20 ++--- content/awesome-android-root.md | 8 +- content/awesome-arch-linux.md | 74 +++++++++--------- content/awesome-openwrt.md | 60 +++++++------- content/awesome-vm-android.md | 64 +++++++-------- content/linux-0-start.md | 4 +- content/linux-2-stm32.md | 22 +++--- content/linux-3-android-dev.md | 2 +- content/windows-2-set.md | 36 ++++----- content/windows-5-py.md | 60 +++++++------- content/windows-6-c.md | 2 +- 31 files changed, 429 insertions(+), 428 deletions(-) diff --git a/content/Network-How-email-works-1.md b/content/Network-How-email-works-1.md index e668c8b..6f4dd8d 100644 --- a/content/Network-How-email-works-1.md +++ b/content/Network-How-email-works-1.md @@ -120,7 +120,7 @@ DKIM (DomainKeys Identified Mail) 的缩写,允许发送者通过在邮件的 经过了 SPF 和 DKIM 的保证,是不是就可以完美的发送接收邮件了?其实并不能,我们通过邮件后台来看一下邮件的原始文本。 -```` +````bash MIME-Version: 1.0 Return-Path: xxx@fake.com DKIM-Signature: d=fake.com,b=adceabkekd12 diff --git a/content/Network-How-email-works-2.md b/content/Network-How-email-works-2.md index 1c80842..91a8bc4 100644 --- a/content/Network-How-email-works-2.md +++ b/content/Network-How-email-works-2.md @@ -13,15 +13,15 @@ tags = ["Network"] ## VPS上的配置 ### 修改VPS hostname -``` +```bash hostnamectl set-hostname mail.your-domain.com ``` ### 修改hosts文件 -``` +```bash vim /etc/hosts ``` 添加一行 -``` +```bash 127.0.1.1 localhost.localdomain mail.your-domain.com ``` @@ -30,7 +30,7 @@ vim /etc/hosts docker compose文件示例: -``` +```yaml version: '3.7' services: diff --git a/content/Network-ISPs.md b/content/Network-ISPs.md index 0f43ebe..323a9a5 100644 --- a/content/Network-ISPs.md +++ b/content/Network-ISPs.md @@ -68,7 +68,7 @@ nexttrace --queries 3 --parallel-requests 4 example.com nexttrace --table --no-rdns www.example.org ``` ### 示例 -``` +```bash ❯ nexttrace 38.207.170.5x NextTrace v1.4.0 2025-04-16T01:10:07Z dccc41b [NextTrace API] preferred API IP - 198.18.0.61 - 601.41ms - 🐠 (Relay) → Misaka.HKG diff --git a/content/Network-aria2.md b/content/Network-aria2.md index 57e8c58..09aaddd 100644 --- a/content/Network-aria2.md +++ b/content/Network-aria2.md @@ -36,7 +36,7 @@ Aria2 有以下几个特点: 首先下载[aria2-1.37.0-win-64bit-build1.zip](https://github.com/aria2/aria2/releases/tag/release-1.37.0),将下载好的文件解压并放到你喜欢的目录下,设置系统环境变量,类似``D:\DATA\Data\AriaNg-1.3.10-AllInOne``,随后即可在 CMD 中使用``aria2c -v``查看Aria2 。 然后创建一个配置文件``C:\Users\<你>\.aria2\aria2.conf``,内容如下: -``` +```conf # 下载目录 dir=C:/Users/<你>/Downloads @@ -53,7 +53,7 @@ rpc-secret=<你的密码> ``` 随后在这个项目中[winsw](https://github.com/winsw/winsw)下载 WinSW-x64.exe到一个目录,并重命名为 aria2-service.exe,并在同目录下创建``aria2-service.xml``,内容如下: -``` +```xml aria2 Aria2 Service @@ -71,16 +71,16 @@ rpc-secret=<你的密码> Arch linux 和大部分常规发行版可以适用此方法。 首先安装aria2本体: -``` +```bash paru -S aria2 ``` 随后创建配置文件 -``` +```bash nano /home//.config/aria2/aria2.conf ``` 内容为 -``` +```conf enable-rpc=true rpc-listen-all=true rpc-allow-origin-all=true @@ -92,11 +92,11 @@ save-session=/home//.config/aria2/aria2.session save-session-interval=60 ``` 保存退出;随后创建守护进程以便开机自启动: -``` +```bash nano ~/.config/systemd/user/aria2.service ``` 写入: -``` +```conf [Unit] Description=Aria2 Daemon After=network.target @@ -110,18 +110,18 @@ WantedBy=default.target ``` 在更新配置文件和服务文件后,执行以下命令以重启服务: -``` +```bash systemctl --user daemon-reload systemctl --user enable aria2.service systemctl --user start aria2.service ``` 使用以下命令检查服务状态: -``` +```bash systemctl --user status aria2.service ``` ### Nixos -``` +```nix { lib, pkgs, username, ... }: { services.aria2.enable = false; @@ -151,6 +151,7 @@ systemctl --user status aria2.service }; } ``` + ## 命令行用法 如果你不想用浏览器插件或者面板,也可以直接使用命令行操作: diff --git a/content/Network-cdn.md b/content/Network-cdn.md index 71b60c8..cc9d2b2 100644 --- a/content/Network-cdn.md +++ b/content/Network-cdn.md @@ -182,7 +182,7 @@ Netlify在考虑到CDN成本以及可用性的情况下选择了以下这些地 > 需要注意的是有些CDN的回源IP并不用作节点IP,比如Cloudflare的回源IP仅作回源IP使用,如果要获取Cloudflare的节点IP,可前往https://bgp.tools/as/13335#prefixes。而有些CDN的回源IP同时被用作CDN节点,比如BunnyCDN和Gcore CDN。 Cloudflare -``` +```bash # https://www.cloudflare.com/ips-v4 103.21.244.0/22 103.22.200.0/22 @@ -210,45 +210,45 @@ Cloudflare 2c0f:f248::/32 ``` Gcore -``` +```bash https://api.gcore.com/cdn/public-ip-list ``` BunnyCDN -``` +```bash https://api.bunny.net/system/edgeserverlist https://api.bunny.net/system/edgeserverlist/plain ``` Cloudfront -``` +```bash https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips https://files.imunify360.com/static/whitelist/v2/cloudfront-cdn.txt ``` CDN77 -``` +```bash https://files.imunify360.com/static/whitelist/v2/cdn77.txt ``` Fastly -``` +```bash https://api.fastly.com/public-ip-list ``` Keycdn -``` +```bash https://www.keycdn.com/shield-prefixes.json ``` quic.cloud -``` +```bash https://quic.cloud/ips ``` Google CDN -``` +```bash https://files.imunify360.com/static/whitelist/v2/google-cdn.txt ``` CacheFly -``` +```bash https://cachefly.cachefly.net/ips/cdn.txt ``` Akaima -``` +```bash https://techdocs.akamai.com/origin-ip-acl/docs/update-your-origin-server ``` --- diff --git a/content/Network-docker.md b/content/Network-docker.md index 75f03b4..d5f3574 100644 --- a/content/Network-docker.md +++ b/content/Network-docker.md @@ -13,7 +13,7 @@ tags = ["Network"] 这里以Debian12为例: - 官方安装脚本: -``` +```bash curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` @@ -21,31 +21,31 @@ sudo sh get-docker.sh 使用以下命令安装此方法的先决条件: -```` +````bash sudo apt update && sudo apt install ca-certificates curl gnupg ```` 创建一个目录来存储密钥环: -```` +````bash sudo install -m 0755 -d /etc/apt/keyrings ```` 使用给定的命令下载 GPG 密钥并将其存储在 `/etc/apt/keyrings/etc/apt/keyrings` 目录中: -```` +````bash curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ```` 使用 chmod 命令更改 docker.gpg 文件的权限: -```` +````bash sudo chmod a+r /etc/apt/keyrings/docker.gpg ```` 使用以下命令为 Docker 设置存储库: -```` +````bash echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ @@ -53,7 +53,7 @@ echo \ ```` 现在可以使用以下命令更新存储库索引并安装 Docker: -```` +````bash sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ```` @@ -177,34 +177,34 @@ sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io do > 删除所有 Docker 容器和 Docker 本身 1. 首先停止所有正在运行的容器: -``` +```bash docker stop $(docker ps -aq) ``` 2. 删除所有容器 删除所有容器(包括停止的容器): -``` +```bash docker rm $(docker ps -aq) ``` 3. 删除所有镜像 -``` +```bash docker rmi $(docker images -q) ``` 4. 删除所有网络 -``` +```bash docker network prune -f ``` 5. 删除所有未使用的卷 -``` +```bash docker volume prune -f ``` 6. 卸载 Docker 如果您希望完全删除 Docker 本身,可以执行以下命令: -``` +```bash sudo apt-get purge docker-ce docker-ce-cli containerd.io sudo apt-get autoremove --purge sudo rm -rf /var/lib/docker @@ -221,7 +221,7 @@ sudo rm -rf /etc/docker - 方法:创建两个 docker-compose 文件,并``使用同一个外部 Docker 网络``使两个服务互联。 0. 首先``创建好工作目录``,例如: -``` +```bash . └── docker ├── docker-compose.nginx.yml @@ -234,13 +234,13 @@ sudo rm -rf /etc/docker ``` 1. 在启动服务前,首先创建一个 Docker 外部网络(例如命名为 nginx): -``` +```bash docker network create nginx ``` 这样,无论是哪个 docker-compose 项目中的容器,只要加入此网络,就能直接通信。 2. 编写 searxng 的 docker-compose 文件 -``` +```yaml version: '3' services: @@ -268,7 +268,7 @@ networks: 3. 编写 Nginx 的 docker-compose 文件 创建 nginx 的 docker-compose 文件,例如: -``` +```yaml version: '3' services: @@ -291,7 +291,7 @@ networks: external: true ``` 4. 编写 Nginx 配置文件 -``` +```conf server { listen 80; server_name searxng.dich.bid; @@ -320,11 +320,11 @@ server { 5. 启动服务 - 启动 searxng 服务: -``` +```bash docker-compose -f docker-compose.searxng.yml up -d ``` - 启动 nginx 服务: -``` +```bash docker-compose -f docker-compose.nginx.yml up -d ``` 由于两者都加入了外部网络 nginx,nginx 内的``proxy_pass http://searxng:8080``就能解析到 searxng 容器,实现反向代理效果。现在,访问``http://ip:18080``就可以访问Searxng搜索引擎。 @@ -337,7 +337,7 @@ docker-compose -f docker-compose.nginx.yml up -d 1. 证书生成 - 如果只是用于测试可以生成自签名证书: -``` +```bash mkdir -p /home/dich/docker/nginx/certs openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /home/dich/docker/nginx/certs/privkey.pem \ @@ -346,7 +346,7 @@ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ ``` 2. 更改searxng.conf: -``` +```conf server { listen 443 ssl; server_name searxng.dich.bid; @@ -385,7 +385,7 @@ server { ``` 3. 更改docker-compose.nginx.yml -``` +```yaml version: '3' services: @@ -412,11 +412,11 @@ networks: 4. 启动新配置 - 重启容器 -``` +```bash sudo docker compose -f docker-compose.nginx.yml up -d ``` - 查看日志 -``` +```bash sudo docker logs searxng ``` ## Caddy @@ -424,7 +424,7 @@ sudo docker logs searxng > Caddy 自 2015 年起用 Go 语言重写,定位为“开箱即用”的现代 Web 服务器,内置自动 Let’s Encrypt 证书管理和续期,默认支持 HTTP/2 及 HTTP/3(QUIC),并通过简洁明了的 Caddyfile 语法极大降低配置成本. 0. 示例结构: -``` +```bash . └── compose ├── certs @@ -437,11 +437,11 @@ sudo docker logs searxng └── Caddyfile ``` 1. 同样创建名为Caddy的docker网络: -``` +```bash docker network create caddy ``` 2. 编写Caddy的compose,可以看到caddy可以自带签发证书: -``` +```yaml version: '3.7' # 自动签发模式 @@ -498,7 +498,7 @@ networks: external: true ``` 3. 编写Caddyfile,可以看到自动开启HTTPS模式: -``` +```conf # 自动签发模式 searxng.dich.bid { reverse_proxy searxng:8080 { diff --git a/content/Network-ssh.md b/content/Network-ssh.md index 69c3fe7..283c819 100644 --- a/content/Network-ssh.md +++ b/content/Network-ssh.md @@ -28,7 +28,7 @@ SSH 1 协议存在一些安全漏洞,所以``1996年又提出了 SSH 2 协议 李华是一个大学生,现在他买了一台服务器,公网IPv4为114.514.114.514,李华打算连到上面看看: -``` +```bash ssh -p 22 root@114.514.114.514 ``` 随后命令行弹出了密码输入,李华输入了初始密码114514,成功登录了进去;现在每次登录只要输入一行命令就可以,大功告成! @@ -39,7 +39,7 @@ ssh -p 22 root@114.514.114.514 于是,李华查阅了资料,发现有一篇博客[乱七八糟:服务器初始化与安全设置](https://blog.dich.bid/about-server-set/),于是他将openssh-server的端口改成了2333,并开启了fail2ban,这下应该安全了! -``` +```bash ### 更换SSH端口 使用root账户或已经有sudo权限的用户登录到系统。 @@ -88,7 +88,7 @@ sudo systemctl status fail2ban 但是服务器依然在被爆破,李华又又研究了以下教程,决定将自己的服务器由密码登录改为密钥登录,这下没有牛马来爆破了! -``` +```bash #### 执行以下命令生成.pub后缀的公钥和无后缀的密钥: ssh-keygen @@ -140,7 +140,7 @@ sudo cat /etc/ssh/sshd_config | grep -E 'PasswordAuthentication|PubkeyAuthentica 随后,李华在.ssh文件夹下创建了一个文件,名为``config``,并在其中写入以下内容: -``` +```bash Host US HostName 114.514.114.514 User root @@ -167,7 +167,7 @@ Host US 首先,将.ssh文件夹中的config进行修改,把私钥文件改为公钥文件,同时创建对应的``~/.ssh/US.pub``公钥文件,里面是以ssh-ed25519或者ssh-rsa开头的公钥. -``` +```bash Host US HostName 114.514.114.514 User root diff --git a/content/Network-yt-dlp.md b/content/Network-yt-dlp.md index 37f45e0..02e173d 100644 --- a/content/Network-yt-dlp.md +++ b/content/Network-yt-dlp.md @@ -54,7 +54,7 @@ python3 -m pip install -U yt-dlp - Arch / Manjaro:`sudo pacman -S yt-dlp` - Fedora:`sudo dnf install yt-dlp` - Nixos: -``` +```nix {pkgs, ...}: { home.packages = with pkgs; [ peazip @@ -74,7 +74,7 @@ python3 -m pip install -U yt-dlp - **下载B站带字幕视频**: -``` +```bash yt-dlp "https://www.bilibili.com/video/BVxxxxx" --write-subs --embed-subs --sub-langs all,-live_chat --write-subs: 将字幕文件下载为单独文件 (如 .vtt 或 .ass) @@ -87,11 +87,11 @@ yt-dlp "https://www.bilibili.com/video/BVxxxxx" --write-subs --embed-subs --sub- - **下载YouTube视频** 先使用这个命令查看可用格式: -``` +```bash yt-dlp -F https://www.youtube.com/watch?v=xxxxxxxxxxxx ``` 然后它会列举出所有可用的格式,如下: -``` +```bash [youtube] MgtOAVOXBWo: Downloading webpage [youtube] MgtOAVOXBWo: Downloading tv client config [youtube] MgtOAVOXBWo: Downloading tv player API JSON @@ -121,13 +121,13 @@ sb0 mhtml 160x90 0 │ mhtml │ images 623 mp4 2560x1440 60 │ ~ 1.00GiB 8945k m3u8 │ vp09.00.50.08 8945k video only Untested ``` 我们下载312和233,即视频和音频,使用以下命令: -``` +```bash yt-dlp -f "312+233" -o "<新视频的名字,要短一点>.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxxx ``` 这行命令会自动将下载的312的1080p/H.264的视频和233的音频合并为一个mp4视频,注意新的名称不能太长,否则会下载失败。 如果要下载带字幕的视频,则使用 -``` +```bash yt-dlp -f "312+233" --write-subs --write-auto-subs --embed-subs --sub-langs "zh.*,en.*" -o "<新视频的名字,要短一点>.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxx ``` 这个命令会: @@ -139,7 +139,7 @@ yt-dlp -f "312+233" --write-subs --write-auto-subs --embed-subs --sub-langs "zh. - 参数说明 -``` +```bash --write-subs: 下载手动字幕 --write-auto-subs: 下载自动生成的字幕 --embed-subs: 将字幕嵌入到视频中 diff --git a/content/about-Junk-cleanup.md b/content/about-Junk-cleanup.md index 347993c..eb20a98 100644 --- a/content/about-Junk-cleanup.md +++ b/content/about-Junk-cleanup.md @@ -103,35 +103,35 @@ tags = ["乱七八糟"] 8. **Docker日志文件**: 使用 `docker ps -a` 命令查找你感兴趣的容器的 ID。 - ```` - docker ps -a - ```` +````bash +docker ps -a +```` 进入容器的日志目录,路径类似于 `/var/lib/docker/containers//`。 - ```` - cd /var/lib/docker/containers// - ```` +````bash +cd /var/lib/docker/containers// +```` 使用命令清理或删除日志文件。你可以删除所有日志文件,或者只删除特定的日志文件。 - ```` - # 删除所有日志文件 - rm *.log - - # 删除特定日志文件(例如 stdout 和 stderr) - rm *-json.log - ```` +````bash +# 删除所有日志文件 +rm *.log + +# 删除特定日志文件(例如 stdout 和 stderr) +rm *-json.log +```` ## **Arch Linux 安装备份** 你可以定期备份 Arch Linux 安装的软件列表,以便在需要时轻松还原。 -```` +````bash pacman -Qqe > package-list.txt ```` 这将列出所有已安装的软件包,并将其保存到文件 `package-list.txt` 中。在还原系统时,你可以使用以下命令: -```` +````bash sudo pacman -S --needed - < package-list.txt ```` diff --git a/content/about-RSS-Read.md b/content/about-RSS-Read.md index acbba21..26d8805 100644 --- a/content/about-RSS-Read.md +++ b/content/about-RSS-Read.md @@ -141,7 +141,7 @@ RSS客户端非常丰富,包括 Android 端,IOS 端,Windows 端,linux (3)在文件中写入以下内容并保存: -``` +```yaml version: '3.4' services: diff --git a/content/about-baci.md b/content/about-baci.md index 651483a..b0b3133 100644 --- a/content/about-baci.md +++ b/content/about-baci.md @@ -18,7 +18,7 @@ tags = ["乱七八糟"] > 作者:Bill Bynum/Tracy Camp 威廉玛丽学院/科罗拉多矿业学院 2002年11月5日 ## 目录 -``` +```bash 1. 引言 2. C-- 编译器语法 3. 并发结构 @@ -238,7 +238,7 @@ v(sem); 为帮助解释信号量的使用,我们提供以下简短示例: -``` +```java BACI System: C-- to PCODE Compiler, 09:24 2 May 2002 Source file: semexample.cm Sun Apr 28 20:40:12 2002 line pc @@ -277,7 +277,7 @@ line pc 我们使用以下命令生成上述编译器列表: -``` +```bash prompt% bacc semexample Pcode and tables are stored in semexample.pco Compilation listing is stored in semexample.lst @@ -285,7 +285,7 @@ Compilation listing is stored in semexample.lst 然后可以使用 BACI PCODE 解释器执行 semexample.pco 文件: -``` +```bash prompt% bainterp semexample Source file: semexample.cm Sun Apr 28 20:40:12 2002 Executing PCODE ... @@ -295,7 +295,7 @@ before p(count) value of count is 1 这是程序可能产生的三种可能输出之一。另外两种可能的程序输出是: -``` +```bash prompt% bainterp semexample Source file: semexample.cm Sun Apr 28 20:40:12 2002 Executing PCODE ... @@ -303,7 +303,7 @@ before p(count) value of count is 0 before v(count) value of count is 0 ``` -``` +```bash prompt% bainterp semexample Source file: semexample.cm Sun Apr 28 20:40:12 2002 Executing PCODE ... @@ -534,7 +534,7 @@ sprintf(x,".%12d. .%-20s. .%q. .%08X.",202,y,z,0x3c03); 以下列表由 C-- BACI 编译器生成。行号右侧的数字是开始该行的指令的 PCODE 偏移量。BACI 编译器从文件 "incremen.cm" 创建此列表。该列表被放置在文件 "incremen.lst" 中。还创建了一个 "incremen.pco" 文件;此文件由解释器使用。 -``` +```java BACI System: C-- to PCODE Compiler, 09:24 2 May 2002 Source file: incremen.cm Wed Oct 22 21:18:02 1997 line pc @@ -566,7 +566,7 @@ line pc 以下列表由 BACI 解释器生成。解释器执行编译到文件 "incremen.pco" 中的程序。 -``` +```java Source file: incremen.cm Wed Oct 22 21:18:02 1997 Executing PCODE ... C n =1 i =A n =1 C2 i = @@ -600,7 +600,7 @@ dos2unix ~/Git/java/baci/scripts/baci ``` - 编写baci脚本 -``` +```bash #!/usr/bin/env bash # 定位到项目根目录(包含 javabaci 子目录的目录) BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" @@ -613,19 +613,19 @@ exec java -cp "$CLASSPATH" "$@" ``` - 给baci授予可执行权限 -``` +```bash chmod +x ~/Git/java/baci/scripts/baci ``` - 添加系统环境变量 -``` +```bash fish_add_path ~/Git/java/baci/scripts ``` - 查看baci是否存在 -``` +```bash which baci ``` - 现在即可编译运行 -``` +```bash baci bacc ex3_1.cm baci bainterp ex3_1 ``` diff --git a/content/about-blog.md b/content/about-blog.md index b5dcc2e..6c3bbf8 100644 --- a/content/about-blog.md +++ b/content/about-blog.md @@ -24,7 +24,7 @@ tags = ["乱七八糟"] - 首先你需要有一台自己的云服务器,建议在1核1G以上配置,并安装Debian系统; - 随后我们安装1panel,执行以下命令一键安装: -``` +```bash curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh ``` > 1panel依赖于docker,如果实现没有安装docker,脚本会帮你安装。 @@ -54,33 +54,33 @@ curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_ 1. **安装Hugo**:选择好你的框架与主题后(这里以hugo为例子),随后安装hugo以及对应的依赖: - **Windows** -``` +```bash # 打开以管理员模式运行的PowerShell,输入命令安装 Hugo Extended: winget install Hugo.Hugo.Extended ``` - **Arch linux** -``` +```bash paru -S hugo ``` - **检查版本** -``` +```bash hugo version ``` 2. **创建新的 Hugo 站点**:选择一个文件夹打开命令行,执行: -``` +```bash hugo new site myblog ``` 该命令会在``myblog``文件夹下生成hugo的基础目录。 3. **安装主题**,这里以[hugo-blog-awesome](https://jamstackthemes.dev/theme/hugo-blog-awesome/)主题为例: -``` +```bash cd myblog git clone https://github.com/hugo-sid/hugo-blog-awesome.git themes/hugo-blog-awesome ``` 并在``hugo.toml``顶层添加: -``` +```bash theme = "hugo-blog-awesome" ``` 这样 Hugo 在构建时会从 themes/ 目录加载主题文件。后续可使用``git pull``获取主题更新。 @@ -88,7 +88,7 @@ theme = "hugo-blog-awesome" > 你也可以直接用theme中的文件夹替换掉项目根目录下的同名文件夹,并再次修改。 4. **写入文章**:使用 Hugo 提供的命令创建新文章: -``` +```bash hugo new posts/hello-world.md ``` 该命令会在``content/posts/``下生成 Markdown 文件,打开后修改``title、date、tags``等前缀然后撰写 Markdown 正文, Markdown 编辑器参考[前文](https://blog.dich.bid/about-markdown/)。 @@ -96,7 +96,7 @@ hugo new posts/hello-world.md > 注意md文章头部和正文之间得使用````隔断 5. **本地测试**:在项目根目录运行: -``` +```bash hugo server -D ``` 然后在浏览器访问``http://localhost:1313``即可实时预览并查看更新效果。 @@ -136,7 +136,7 @@ hugo server -D 由于我所使用的平台不支持zola,因此我直接在本地编译public并推送,这样时间久了.git文件夹大小会非常大(记录public的变化),我又不想将zola的二进制包放入目录下,因此有了这个办法: -``` +```bash # 安装git-filter-repo工具 paru git-filter-repo # 清理public相关的历史 diff --git a/content/about-gfs.md b/content/about-gfs.md index 04ee2bb..df9dea3 100644 --- a/content/about-gfs.md +++ b/content/about-gfs.md @@ -26,19 +26,19 @@ tags = ["乱七八糟"] ## 免密码运行TUN模式: - 检查 polkit 服务是否正在运行 -``` +```bash systemctl status polkit ``` - 若返回状态为除 active (running) 之外的结果,运行 -``` +```bash sudo systemctl enable --now polkit ``` - 创建 polkit 策略 -``` +```bash sudo vi /etc/polkit-1/rules.d/99-nopassword.rules ``` - 添加以下内容并保存退出 -``` +```bash polkit.addRule(function (action, subject) { if ( (action.id == "org.freedesktop.resolve1.set-domains" || @@ -53,11 +53,11 @@ polkit.addRule(function (action, subject) { }); ``` - 将当前用户添加至 wheel 组中,注意Debian 与衍生系统需要先创建 wheel 组,然后运行: -``` +```bash sudo usermod -G wheel 当前用户 ``` - 重新加载 polkit 使更改生效 -``` +```bash sudo systemctl restart polkit ``` diff --git a/content/about-git.md b/content/about-git.md index 7717640..a3010e3 100644 --- a/content/about-git.md +++ b/content/about-git.md @@ -32,13 +32,13 @@ tags = ["乱七八糟"] **方法一** 创建新文件夹,在你的项目目录中运行以下命令: -``` +```bash git init --initial-branch=main ``` 这里设置默认仓库主分支名称为 main,避免因为 main/master 名称不同导致的推送问题。 > Git目前默认的主分支为 master,和 github 默认分支 main 不同,这使得默认配置下 git 往往连接失败。除了创建的时候设定外还可以通过以下方法改变默认分支。 -``` +```bash git config --global init.defaultBranch main //将默认分支修改成main ``` **方法二** @@ -55,25 +55,25 @@ git config --global init.defaultBranch main //将默认分支修改成main Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。 - 显示当前的Git配置 -``` +```bash git config --list ``` - 编辑Git配置文件 -``` +```bash git config -e [--global] ``` - 设置提交代码时的用户信息 -``` +```bash git config [--global] user.name "[name]" git config [--global] user.email "[email address]" ``` - 设置大小写敏感(windows不区分大小写的解决办法) -``` +```bash git config core.ignorecase false ``` - 配置git默认使用的编辑器 -``` +```bash git config --global core.editor "nvim" ``` @@ -82,18 +82,18 @@ git config --global core.editor "nvim" 连接到远程仓库并推送需要证明你有权写入仓库。早期Github可以使用密码认证,现在则使用密钥认证。 - 生成密钥: -``` +```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 生成的文件位于``~/.ssh/config``路径下,带.pub后缀的文件为公钥,不带.pub后缀的为私钥,使用``cat ~/.ssh/id_rsa.pub``将公钥添加到github/gitee的设置-SSH中。 - 随后使用 `ssh-add` 命令将生成的密钥添加到 SSH 代理中。 -``` +```bash ssh-add ~/.ssh/github_key ssh-add ~/.ssh/gitee_key ``` - 在 `~/.ssh/config` 文件中配置不同的主机别名以及相应的密钥文件。编辑该文件并添加内容,例如: -``` +```bash # GitHub repository 1 Host github1 @@ -116,32 +116,32 @@ Host github2 ``` - 连接到github: -``` +```bash ssh -T git@github.com ``` - 添加远程仓库: -``` +```bash git remote add origin # 例如:git remote add origin git@github.com:Dichgrem/dichos.git ``` > 如果你运行``git remote -v``发现URL为HTTP格式则可以用下面的命令改为Git格式: -``` +```bash # 例如:git remote set-url origin git@github.com:Dichgrem/dichos.git ``` ## 创建分支 -``` +```bash git branch main ``` 这将创建一个名为 main 的分支。 - 删除分支 -``` +```bash git branch -d master ``` - 使用大写强制删除 -``` +```bash git branch -D master ``` @@ -149,56 +149,56 @@ git branch -D master ## 添加和提交 你可以提出更改(把它们添加到暂存区),使用如下命令: -``` +```bash git add git add * ``` 这是 git 基本工作流程的第一步;使用如下命令以实际提交改动: -``` +```bash git commit -m "代码提交信息" # 例如:git commit -m "Initial commit" ``` 现在,你的改动已经提交到了 **HEAD**,但是还没到你的远端仓库。 - 添加指定文件到暂存区 -``` +```bash git add [file1] [file2] ... ``` - 添加指定目录到暂存区,包括子目录 -``` +```bash git add [dir] ``` - 添加当前目录的所有文件到暂存区 -``` +```bash git add . ``` 添加每个变化前,都会要求确认 - 对于同一个文件的多处变化,可以实现分次提交 -``` +```bash git add -p ``` - 删除工作区文件,并且将这次删除放入暂存区 -``` +```bash git rm [file1] [file2] ... ``` - 停止追踪指定文件,但该文件会保留在工作区 -``` +```bash git rm --cached [file] ``` - 改名文件,并且将这个改名放入暂存区 -``` +```bash git mv [file-original] [file-renamed] ``` ## 推送改动 你的改动现在已经在本地仓库的 **HEAD** 中了。执行如下命令以将这些改动提交到远端仓库: -``` +```bash git push origin main ``` 可以把 **main** 换成你想要推送的任何分支,如**master**或者**test** 如果你的远程仓库是最新的,可以使用以下命令更新本地仓库: -``` +```bash git pull ``` @@ -208,7 +208,7 @@ git pull - GPG方式 -``` +```bash sudo pacman -S gnupg //安装 GPG gpg --full-generate-key //生成 GPG 密钥 gpg --list-secret-keys --keyid-format=long //查看你生成的密钥 ID @@ -221,7 +221,7 @@ gpg --armor --export ABCDEF1234567890 //导出公钥并添加到 GitHub - SSH方式 可以用你平时登录 GitHub 的同一个 SSH 密钥: -``` +```bash git config --global gpg.format ssh //让 Git 使用 SSH 格式签名 git config --global user.signingkey ~/.ssh/Github.pub //指定使用的 SSH 公钥 git config --global commit.gpgsign true //表示自动签名所有提交 @@ -231,17 +231,17 @@ git config --global commit.gpgsign true //表示自动签名所有提交 - 本地查看 首先创建这个文件: -``` +```bash mkdir -p ~/.ssh nano ~/.ssh/allowed_signers ``` 写入你的 ``test@mail.com ssh-ed25519 AAAABBBBBBBBBBBBBBBBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx``并保存。 随后配置Git信任该文件: -``` +```bash git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers ``` 随后使用``git log --show-signature``即可查看本地log中的 -``` +```bash Good "git" signature for test@mail.com with ED25519 key SHA256:ssh-ed25519 AAAABBBBBBBBBBBBBBBBBBBBB ``` @@ -250,24 +250,24 @@ Good "git" signature for test@mail.com with ED25519 key SHA256:ssh-ed25519 AAAAB 分支是用来将特性开发绝缘开来的。比如你在本地的test分支新增了一个功能,想要合并到主分支中。 创建一个叫做“test”的分支,并切换过去: -``` +```bash git checkout -b test ``` 新增某些功能后切换回主分支: -``` +```bash git checkout master ``` 在主分支上执行合并操作,将 test 分支的改动合并到主分支: -``` +```bash git merge test ``` 推送完成后可以把新建的分支删掉: -``` +```bash git branch -d test ``` ### 分支常用操作 -``` +```bash - 列出所有本地分支 git branch @@ -351,36 +351,36 @@ Git 提供两种类型的标签: - 创建附注标签 使用 -a 参数表示“annotated”,并用 -m 提供标签说明。例如,给当前提交创建一个名为 v1.0 的附注标签: -``` +```bash git tag -a v1.0 -m "发布版本 v1.0" ``` 这会在 Git 数据库中生成一个完整的标签对象,可通过 git show v1.0 查看标签信息和对应的提交详情。 如果需要给旧提交贴标签,可以在命令末尾指定提交的 SHA 值(部分 SHA 也可): -``` +```bash git tag -a v1.0 -m "发布版本 v1.0" ``` - 创建轻量标签 直接指定标签名即可,不加任何参数: -``` +```bash git tag v1.0-light ``` 轻量标签仅仅是一个提交引用,因此查看时不会显示附加信息。 ### 列出标签 - 列出所有标签 -``` +```bash git tag ``` - 还可以使用通配符过滤: -``` +```bash git tag -l "v1.*" ``` 这样便于管理和筛选大量标签。 - 查看标签详细信息 -``` +```bash git show v1.0 ``` 这会显示标签对象的元数据以及对应的提交记录。 @@ -388,45 +388,45 @@ git show v1.0 ### 推送标签 ``默认情况下,git push 不会将本地标签推送到远程仓库。推送标签有两种方式:`` - 推送单个标签 -``` +```bash git push origin v1.0 ``` - 一次性推送所有标签 -``` +```bash git push origin --tags ``` ### 删除标签 - 删除本地标签 -``` +```bash git tag -d v1.0 ``` - 删除远程标签 -``` +```bash git push origin --delete v1.0 ``` ## 日志 如果你想了解本地仓库的历史记录,最简单的命令就是使用: -``` +```bash git log ``` - 只看某一个人的提交记录: -``` +```bash git log --author=bob ``` - 一个压缩后的每一条提交记录只占一行的输出: -``` +```bash git log --pretty=oneline ``` - 看看哪些文件改变了: -``` +```bash git log --name-status ``` ## 生成补丁 比如你修改了项目中的``fs/proc/base.c``,然后 -``` +```bash git add fs/proc/base.c git commit -m "fix:base" git format-patch origin/16.0 @@ -435,13 +435,13 @@ git format-patch origin/16.0 ## 删除前一个提交记录 有时候手滑或者不想使用一个commit说明,可以用以下命令撤销上一个 commit: -``` +```bash git reset --soft HEAD~1 ``` 这个命令会撤销上一个 commit,但保留文件修改(代码仍然在工作区)。适用于 想要重新提交(amend)或调整 commit 的情况。 如果你想彻底删除更改(不保留代码修改),可以使用: -``` +```bash git reset --hard HEAD~1 ``` > 注意:--hard 会清除未提交的更改,无法恢复。 @@ -450,7 +450,7 @@ git reset --hard HEAD~1 ### 📁 `.git` 目录结构概览 -``` +```bash .git/ ├── HEAD ├── config @@ -527,7 +527,7 @@ Fixes #123 这可以在提交后自动关闭相关问题。 ### 常见的 Commit 类型 -``` +```bash - feat:新功能的添加 示例:feat(user): 添加用户注册功能 diff --git a/content/about-gpg.md b/content/about-gpg.md index 5d3d6cd..de036c3 100644 --- a/content/about-gpg.md +++ b/content/about-gpg.md @@ -52,19 +52,19 @@ tags = ["乱七八糟"] ## 安装 GnuPG -``` +```bash paru -S gnupg ``` ## 生成公钥与私钥 使用如下命令: -``` +```bash gpg --full-generate-key ``` 生成流程: -``` +```bash gpg (GnuPG) 2.4.7; Copyright (C) 2024 g10 Code GmbH This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. @@ -116,7 +116,7 @@ generator a better chance to gain enough entropy. ``` ## 列出密钥 -``` +```bash gpg --list-secret-keys --keyid-format long ``` @@ -126,18 +126,18 @@ gpg --list-secret-keys --keyid-format long 例如上传你的 key: -``` +```bash gpg --send-keys <你的Long‑Key‑ID> ``` 默认为你的 gpg.conf 中配置的 keyserver,也可以显式指定: -``` +```bash gpg --keyserver hkps://keys.openpgp.org --send-keys ``` 也可以使用如下命令导出公钥为可读 ASCII 格式,类似ssh-keys,随后即可发布在个人博客上等等。 -``` +```bash gpg --armor --export > mypubkey.asc ``` @@ -145,7 +145,7 @@ gpg --armor --export > mypubkey.asc 如果怀疑密钥被泄露或被中间人替换,立即发布“撤销证书”(revocation certificate)并上传到 keyserver。 -``` +```bash gpg --gen-revoke > revoke.asc ``` 上传撤销证书后,所有人都能知道该公钥已不再可信。 diff --git a/content/about-lazyvim.md b/content/about-lazyvim.md index 948c183..1c3b934 100644 --- a/content/about-lazyvim.md +++ b/content/about-lazyvim.md @@ -19,27 +19,27 @@ tags = ["乱七八糟"] ## 安装 首先安装neovim,在arch linux上是: -``` +```bash paru -S neovim ``` 在Ubuntu上是 -``` +```bash sudo add-apt-repository ppa:neovim-ppa/unstable sudo apt update sudo apt install -y \ neovim git curl unzip build-essential ripgrep fd-find ``` 备份现有配置: -``` +```bash mv ~/.config/nvim ~/.config/nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak ``` 克隆 LazyVim Starter 模板: -``` +```bash git clone https://github.com/LazyVim/starter ~/.config/nvim ``` 启动 Neovim: -``` +```bash nvim ``` 首次启动时,LazyVim 会自动安装并配置所需的插件。 @@ -47,7 +47,7 @@ nvim ## 结构 LazyVim 的配置目录通常位于``~/.config/nvim/``中: -``` +``` bash ~/.config/nvim ❯ tree . @@ -231,7 +231,7 @@ LazyVim 默认使用`` 作为 ``,\ 作为````, 在``~/config/nvim/lua/plugins/``下新建一个mp.lua,写入如下配置: -``` +```lua return { { "iamcco/markdown-preview.nvim", @@ -243,7 +243,7 @@ return { ``` 随后即可在 Neovim 中打开一个 Markdown 文件,执行以下命令启动预览:​ -``` +```bash :MarkdownPreview ``` diff --git a/content/about-mechrev-keyboard.md b/content/about-mechrev-keyboard.md index c0cc7b7..747ce94 100644 --- a/content/about-mechrev-keyboard.md +++ b/content/about-mechrev-keyboard.md @@ -19,7 +19,7 @@ tags = ["乱七八糟"] ## 三.解决方法 既然是高低电平表述的错误,那么我们只需建立DSDT 表副本,将其修改,然后让它优先启动,从而让键盘配置正常;另外还存在 BIOS 修复,内核编译的方法,比较复杂,这里不做说明。 -``` +```bash 首先建立一个DSDT文件夹: sudo su mkdir -p /home/dsdt @@ -75,7 +75,7 @@ reboot ### 修复wifi驱动 -``` +```bash # 内核小于5.18的 git clone https://github.com/HRex39/rtl8852be.git # 内核大于等于5.18的 @@ -89,7 +89,7 @@ sudo modprobe 8852be ### 修复蓝牙驱动 -``` +```bash # 内核=5.15 git clone https://github.com/HRex39/rtl8852be_bt.git -b 5.15 # 内核=5.18 @@ -104,13 +104,13 @@ sudo make install 首先去amd官网下载最新的linux-amd驱动: -```` +````bash https://www.amd.com/zh-hans/support/linux-drivers // 22.20 for Ubuntu 20.04.5 HWE ```` 修改Deepin为ubuntu -```` +````bash sudo vim /etc/os-release // ID=Deepin => ID=ubuntu sudo apt install ./amdgpu-install_22.20.50200-1_all.deb @@ -128,7 +128,7 @@ sudo apt install inxi clinfo `inxi -G` -```` +````bash Graphics: Device-1: AMD Rembrandt driver: amdgpu v: kernel Display: x11 server: X.Org 1.20.11 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa resolution: 1920x1080~60Hz @@ -138,14 +138,14 @@ Graphics: Device-1: AMD Rembrandt driver: amdgpu v: kernel 最后还原最初的修改: -```` +````bash sudo vim /etc/os-release // ID=ubuntu => ID=Deepin sudo apt purge amdgpu-install ```` 看下效果图: -```` +````bash ➜ ~ glxinfo -B name of display: :0 display: :0 screen: 0 @@ -193,7 +193,7 @@ OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 安装下面的三方电源管理工具 `Boost Changer`,选择 `Performance`策略即可 -```` +````bash wget https://github.com/nbebaw/boostchanger/releases/download/v4.4.0/boostchanger_4.4.0_amd64.deb ```` ## 参考 diff --git a/content/about-server-set.md b/content/about-server-set.md index 02bcd1d..a6df159 100644 --- a/content/about-server-set.md +++ b/content/about-server-set.md @@ -22,7 +22,7 @@ tags = ["乱七八糟"] - **cn 域名有被停用的风险**。2008 年,有人以跳水奥运冠军吴敏霞拼音注册了 wuminxia.cn,[结果被中国互联网络信息中心(CNNIC)回收了域名](https://www.cnbeta.com/articles/tech/62209.htm),并转交给国家体育总局。此域名在 2021 年 2 月 28 日被优视科技[注册](https://whois.cnnic.cn/WhoisServlet?queryType=Domain&domain=wuminxia.cn),呵呵。2009 年,牛博网被域名注册商万网停止解析。 ## VPS -``` +```bash # 更新系统 apt update && apt upgrade -y apt install wget curl vim sudo neofetch @@ -33,15 +33,15 @@ sudo usermod -aG sudo xxx ## BBR - 查询系统所支持的拥塞控制算法 -```` +````bash sysctl net.ipv4.tcp_available_congestion_control ```` - 查询正在使用中的拥塞控制算法(Linux 绝大部分系统默认为 Cubic 算法) -```` +````bash sysctl net.ipv4.tcp_congestion_control ```` - 指定拥塞控制算法为 bbr -```` +````bash echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf && sysctl -p ```` @@ -56,43 +56,43 @@ echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf && sysctl -p 打开SSH配置文件`sshd_config`,可以使用文本编辑器如nano或vi。以下是使用nano编辑器的示例: -```` +````bash sudo vim /etc/ssh/sshd_config ```` 在配置文件中找到以下行: -```` +````bash Port 22 ```` 这是SSH默认的端口号,你可以将其更改为你想要的任何未被占用的端口号。例如,将端口更改为2222: -```` +````bash Port 2222 ```` 保存并关闭文本编辑器。重新启动SSH服务,以应用更改: -```` +````bash sudo service ssh restart ```` 或者,如果你的系统使用systemd,可以使用以下命令: -```` +````bash sudo systemctl restart ssh ```` ### 安装 UFW -```` +````bash sudo apt install ufw ```` **如果你在远程位置连接你的服务器,在启用 UFW 防火墙之前,你必须显式允许进来的 SSH 连接。否则,你将永远都无法连接到机器上。** -```` +````bash sudo ufw allow 22/tcp ```` @@ -100,37 +100,37 @@ sudo ufw allow 22/tcp **启动 UFW** -```` +````bash sudo ufw enable ```` ### 安装 Fail2ban -```` +````bash sudo apt-get install fail2ban ```` **2、Debian 12 及以上的版本需要手动安装 rsyslog** -```` +````bash sudo apt-get install rsyslog ```` **3、启动 Fail2ban 服务** -```` +````bash sudo systemctl start fail2ban ```` **4、开机自启动** -```` +````bash sudo systemctl enable fail2ban ```` **5、查看 Fail2ban 服务状态。** -```` +````bash sudo systemctl status fail2ban ```` @@ -139,7 +139,7 @@ sudo systemctl status fail2ban ### 改为密钥登录 - 执行以下命令生成.pub后缀的公钥和无后缀的密钥: -``` +```bash ssh-keygen ``` 注意不同密钥对名称不能相同;同时可以为这两个文件用密码加密; @@ -147,11 +147,11 @@ ssh-keygen - 随后将.pub后缀的公钥中的内容写入服务器的``~/.ssh/authorized_keys``中; - 使用以下命令编译服务器的SSH配置: -``` +```bash vim /etc/ssh/sshd_config ``` 将其中的该行改为``PasswordAuthentication no``,保存退出;随后使用 -``` +```bash sudo systemctl restart sshd ``` 重启SSH即可禁用密码登录; @@ -159,7 +159,7 @@ sudo systemctl restart sshd - 将**PermitRootLogin**一栏改为**PermitRootLogin prohibit-password**,即可实现仅root用户密钥登录; - 使用以下命令查看输出, -``` +```bash sudo cat /etc/ssh/sshd_config | grep -E 'PasswordAuthentication|PubkeyAuthentication' ``` 如有**PasswordAuthentication no → 禁用密码登录**以及**PubkeyAuthentication yes → 允许密钥登录**则成功。 @@ -170,33 +170,33 @@ sudo cat /etc/ssh/sshd_config | grep -E 'PasswordAuthentication|PubkeyAuthentica - ALL -``` +```bash apt install curl wget gpg vim nano sudo neofetch openssh-server ``` - C/C++ -``` +```bash sudo apt install build-essential gdb cmake clangd clang-format libstdc++-dev ``` - Miniconda -``` +```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh ``` - UV -``` +```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` - Docker -``` +```bash curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` - OpenCV -``` +```bash sudo apt install tree libx11-dev libgtk-3-dev freeglut3-dev libopencv-dev libdlib-dev ``` - Vmware -``` +```bash sudo apt install open-vm-tools sudo apt install open-vm-tools-desktop ``` @@ -211,7 +211,7 @@ Set-Content "$env:USERPROFILE\.ssh\known_hosts" 执行如下命令一键安装 1Panel: -```` +````bash curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh ```` @@ -220,27 +220,27 @@ curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_ ### 禁用 IPv6 手动 禁用 VPS 的 IPv6 命令: -``` +```bash sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 ``` 如果想重启系统也生效, 执行: -``` +```bash echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf echo 'net.ipv6.conf.default.disable_ipv6=1' >> /etc/sysctl.conf ``` 手动 启用 VPS 的 IPv6 命令: -``` +```bash sysctl -w net.ipv6.conf.all.disable_ipv6=0 sysctl -w net.ipv6.conf.default.disable_ipv6=0 ``` 重新载入 sysctl 配置 -``` +```bash sysctl --system # reload sysctl ``` 如果重载, 还无效果, 可能要 reboot 重启下. 查看 VPS 的 IPv6 信息 -``` +```bash ip -6 addr show scope global 或者 curl ipv6.ip.sb @@ -253,13 +253,13 @@ ip -6 addr show scope global - 然后在VPS上输入以下命令: -``` +```bash mkdir -p ./.well-known/pki-validation ``` - 随后在ZeroSSL中将所给出的类似**B992F08CB46748D02E4C553A4038BC.txt**复制; - 将从ZeroSSL下载得到的文件打开,复制里面的东西形成以下的格式:``将pki-validation/之后EOF之前的内容``替换为你自己的。 -``` +```bash cat << EOF | sudo tee ./.well-known/pki-validation/B992F08CB46748D02E4C553A4038BC.txt 254563C20918258D661E7D43D6A43A2A258857E191977DD5F740FBB9ABD25279 comodoca.com @@ -268,7 +268,7 @@ EOF ``` 随后在VPS上运行该命令。 - 开启一个临时HTTP服务器: -``` +```bash python3 -m http.server 80 ``` - 随后即可在ZeroSSL中验证证书并开启SSL。 @@ -285,15 +285,15 @@ python3 -m http.server 80 - 进入恢复模式后,选择`root – Drop to root shell prompt`进入 root shell(不需要密码)。 - 挂载文件系统为可写模式: -``` +```bash mount -o remount,rw / ``` - 将用户添加到 sudo 组: -``` +```bash usermod -aG sudo 用户名 ``` - 重启计算机: -``` +```bash reboot ``` @@ -315,7 +315,7 @@ sudo apt update ``` 3. 搜索可用内核 -``` +```bash apt search xanmod sudo apt install linux-image-6.8.6-x64v3-xanmod1 linux-headers-6.8.6-x64v3-xanmod1 ``` diff --git a/content/about-virtual.md b/content/about-virtual.md index e5e4d59..540ed1d 100644 --- a/content/about-virtual.md +++ b/content/about-virtual.md @@ -72,13 +72,13 @@ Hyper-V 是微软内建的虚拟化平台(native hypervisor)。开启后, * PowerShell(以管理员权限运行): -``` +```bash Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All ``` * DISM(部署映像服务和管理工具): -``` +```bash DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V ``` @@ -90,23 +90,23 @@ DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V ## 关闭 Hyper-V * PowerShell(管理员权限): -``` +```bash Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All ``` * DISM: -``` +```bash DISM /Online /Disable-Feature:Microsoft-Hyper-V ``` * 用 bcdedit 修改启动配置,使系统启动时不加载 Hypervisor(Hyper-V 的虚拟化内核)但保留功能安装: -``` +```bash bcdedit /set hypervisorlaunchtype off ``` 若要恢复加载,则: -``` +```bash bcdedit /set hypervisorlaunchtype auto ``` * Windows 功能 GUI 中,取消勾选 Hyper-V 相应项。 @@ -118,21 +118,21 @@ bcdedit /set hypervisorlaunchtype auto 1. **给 VMware 或 VirtualBox 使用环境临时关闭 Hyper-V** -``` +```bash bcdedit /set hypervisorlaunchtype off ``` 然后重启 Windows,就能让这些软件正常启动虚拟机。要还原 Hyper-V,改为 `auto` 或 `on`: -``` +```bash bcdedit /set hypervisorlaunchtype auto ``` 2. **从命令行完全关闭 Hyper-V 功能** -```powershell +```bash Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All ``` 或者用 DISM: -``` +```bash DISM /Online /Disable-Feature:Microsoft-Hyper-V ``` diff --git a/content/awesome-PVE-MCSM.md b/content/awesome-PVE-MCSM.md index 3eb56e8..1391db8 100644 --- a/content/awesome-PVE-MCSM.md +++ b/content/awesome-PVE-MCSM.md @@ -52,14 +52,14 @@ MCSManager 面板(简称:MCSM 面板)是一款全中文,轻量级,开 ## 换源 **禁用 Ceph 企业仓库:** -``` +```bash nano /etc/apt/sources.list.d/ceph.list ``` 将文件内容注释掉或删除。 **编辑仓库源文件:** -``` +```bash nano /etc/apt/sources.list.d/pve-enterprise.list ``` 将文件内容注释掉或删除; @@ -67,11 +67,11 @@ nano /etc/apt/sources.list.d/pve-enterprise.list **启用社区仓库:** 确保社区仓库已启用。编辑社区仓库文件: -``` +```bash nano /etc/apt/sources.list.d/pve-no-subscription.list ``` 确保文件内容如下: -``` +```bash deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription ``` ## 二.新建虚拟机并安装Debian @@ -95,12 +95,12 @@ deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription 在安装步骤进入到选择安装的桌面环境和软件时, 键入 Ctrl+Alt+F2 可以看到从图形界面转到了tty命令终端, 键入 Enter 这里修改软件源配置文件 -``` +```bash nano /target/etc/apt/sources.list ``` 修改debian-security源地址  `http://mirrors.ustc.edu.cn ` 目测最快 -``` +```bash deb http://mirrors.ustc.edu.cn/debian-security bullseye-security main ``` 修改后 Ctrl+X 退出保存,然后退出终端重新进入界面继续安装,键入 Ctrl+Alt+F5。 @@ -144,7 +144,7 @@ deb http://mirrors.ustc.edu.cn/debian-security bullseye-security main 在 PVE-防火墙中打开它们。如果还是不行,执行如下命令: -``` +```bash systemctl stop firewalld systemctl disable firewalld diff --git a/content/awesome-android-TV.md b/content/awesome-android-TV.md index af3caae..96caf79 100644 --- a/content/awesome-android-TV.md +++ b/content/awesome-android-TV.md @@ -79,7 +79,7 @@ X86还是Arm?两者之间各有优点,截止到今天各种Arm电视盒子 - 随后在设置 > 设备首选项 > 关于 > 状态中找到并记下IP 地址,然后用ADB连接上去,这里使用命令``adb connect :<端口> ``,随后在ATV端授权连接,例如: -``` +```bash ❯ adb connect 192.168.1.666:9527 connected to 192.168.1.666:9527 @@ -93,7 +93,7 @@ xxxxxxxxx sideload **一些 ADB 常用命令**: -``` +```bash adb reboot #将重启 Android 设备。 adb reboot recovery #将设备重新启动到恢复模式。 @@ -136,13 +136,13 @@ adb kill server #切断 PC 和 Android TV 之间的连接。 1. ADB连接:连接到ADB成功后我们使用``adb shell``进入shell,随后使用命令``pm list packages``列出所有软件包; -``` +```bash pm list packages -s 列出系统软件包 pm list packages -3 列出第三方软件包 ``` 2. 获取包名:对于暂时无法确定包名的软件,可以先打开,再使用 -``` +```bash adb shell dumpsys activity activities | grep mResumedActivity ``` @@ -150,13 +150,13 @@ adb shell dumpsys activity activities | grep mResumedActivity 3. 删除软件:可以先使用 -``` +```bash pm disable-user --user 0 com.dangbei1.tvlauncher ``` 禁用软件,确认没有问题之后再用 -``` +```bash pm uninstall -k --user 0 com.dangbei1.tvlauncher ``` @@ -164,20 +164,20 @@ pm uninstall -k --user 0 com.dangbei1.tvlauncher 4. 备份软件:对于想要备份的软件,可以使用1和2中的方法获取软件包名,然后使用例如以下命令: -``` +```bash adb shell pm path org.videolan.vlc package:/data/app/~~hY2Y0_PdaDlasfVwkUNcoQ==/org.videolan.vlc-WnNhCJLQUJdZYYzUxzBNBA==/base.apk ``` 获取到安装路径,随后将apk包拿走就可以: -``` +```bash adb pull /data/app/~~hY2Y0_PdaDlasfVwkUNcoQ==/org.videolan.vlc-WnNhCJLQUJdZYYzUxzBNBA==/base.apk ./Downloads/ ``` 5. 备份分区:如果你想要修改当前系统的img,可以用adb提取并导出 -``` +```bash # 确定分区对应关系 ls -l /dev/block ls -l /dev/block/platform @@ -202,7 +202,7 @@ adb pull /sdcard/odm.img ``` 5. 修改桌面:可以进入安卓原生设置里面将默认主屏幕应用改为ATV,代替掉自带的桌面,并使用 -``` +```bash adb shell pm disable-user --user 0 com.google.android.tvlauncher adb shell pm disable-user --user 0 com.google.android.tungsten.setupwraith ``` diff --git a/content/awesome-android-root.md b/content/awesome-android-root.md index a6ca94a..ab36a46 100644 --- a/content/awesome-android-root.md +++ b/content/awesome-android-root.md @@ -140,12 +140,12 @@ tags = ["综合工程"] **使用adb备份分区** -``` +```bash adb shell ls -l /dev/block/bootdevice/by-name ``` 可以看到有很多分区,例如这些 -``` +```bash ... lrwxrwxrwx 1 root root 15 1970-12-24 11:30 frp -> /dev/block/sda5 lrwxrwxrwx 1 root root 16 1970-12-24 11:30 fsc -> /dev/block/sdf13 @@ -156,14 +156,14 @@ lrwxrwxrwx 1 root root 16 1970-12-24 11:30 hyp_b -> /dev/block/sde40 ``` 随后使用root备份分区到手机上 -``` +```bash adb root adb shell "dd if=/dev/block/sda2 of=/sdcard/partition_backup/persist.img" ``` 然后可以上传到PC端 -``` +```bash adb pull /sdcard/partition_backup/ ./backup/ ``` diff --git a/content/awesome-arch-linux.md b/content/awesome-arch-linux.md index a053020..7c90a92 100644 --- a/content/awesome-arch-linux.md +++ b/content/awesome-arch-linux.md @@ -31,7 +31,7 @@ tags = ["综合工程"] 随后安装常用开源软件(KDE环境省略file和wayland) -``` +```bash # gui paru -S floorp-bin keepassxc qemu-full virt-manager materialgram-bin legcord-bin onlyoffice-bin localsend-bin kazumi-bin foliate vlc krita qtscrcpy strawberry oculante obs-studio @@ -90,7 +90,7 @@ paru -S hyprland waybar wofi network-manager-applet swww wl-gammarelay-rs bright 输入法我们采用雾凇拼音,即前面我们安装的fcitx5系列软件包的一个输入方案,这里我们使用[自动部署脚本](https://github.com/Mark24Code/rime-auto-deploy): -``` +```bash # step1: 克隆/下载 latest 最新的稳定版到本地 git clone --depth=1 https://github.com/Mark24Code/rime-auto-deploy.git --branch latest # step2: 进入项目目录 @@ -109,7 +109,7 @@ cd rime-auto-deploy 安装完毕后可以看到KDE的界面较为简陋,这里给出笔者的美化配置: - 在设置中找到Colors&Themes,分别设置为: -``` +```bash - Color:Breeze Dark - Application Style:Breeze - Plasma Style:Sweet @@ -164,27 +164,27 @@ V2EX Polish(V站美化) 如果Grub引导菜单中没有windows选项,可以通过以下方法添加: - 安装 os-prober:首先确保系统中安装了 os-prober,这是一个用于检测其他操作系统的工具。 -``` +```bash sudo pacman -S os-prober sudo os-prober ``` - 打开 /etc/default/grub 文件进行编辑: -``` +```bash sudo nano /etc/default/grub # 确保 GRUB_DISABLE_OS_PROBER 设置为 false ``` - 保存文件并退出编辑器后,运行以下命令更新 GRUB 配置: -``` +```bash sudo grub-mkconfig -o /boot/grub/grub.cfg ``` 或者``手动添加``: -``` +```bash nano /etc/grub.d/40_custom ``` -``` +```bash #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the @@ -204,26 +204,26 @@ menuentry "Windows 11 (Manual)" { 如果virt-manager报错无法找到Qemu,则: - ​如果 libvirtd 服务未运行,virt-manager 将无法连接到虚拟化环境。​ -``` +```bash sudo systemctl start libvirtd sudo systemctl enable libvirtd ``` - 用户权限问题:​​将当前用户添加到 libvirt 组,以获得必要的权限。​ -``` +```bash sudo usermod -aG libvirt $(whoami) ``` - 虚拟网络未激活:​virt-manager 可能无法连接到默认的虚拟网络。​ -``` +```bash sudo virsh net-start default ``` 默认网络在系统启动时自动启动,可以执行: -``` +```bash sudo virsh net-autostart default ``` - 配置文件权限问题:​配置文件的权限设置可能导致访问问题。 -``` +```bash sudo chown $(whoami):libvirt /var/run/libvirt/libvirt-sock ``` 随后安装虚拟机,流程大概为``选择镜像和系统类型--设置CPU/内存--设置空间大小--编辑配置项--开启UEFI引导和3D加速``. @@ -231,7 +231,7 @@ sudo chown $(whoami):libvirt /var/run/libvirt/libvirt-sock **开启3D加速:** - NIC: -``` +```xml @@ -240,7 +240,7 @@ sudo chown $(whoami):libvirt /var/run/libvirt/libvirt-sock ``` - video virtio: -``` +```xml