Windows
- LockHunter
- Honeyview
- Snipaste
- Sysinternals Suite, live.sysinternals.com
- TreeSizeFree-Portable
- etcher
- ContextMenuManager
- Fork
- OpenArk
- Geek Uninstaller
- QuickLook
WSL2
Linux
Mac
Tools
Network
C++
Docs
Assembly: x86 Assembly Guide, x86 and amd64 instruction reference
Cryptography: Everything you should know about certificates and PKI but are too afraid to ask, 关于证书(certificate)和公钥基础设施(PKI)的一切(SmallStep, 2018)
Misc
bash 文件中 set 命令的帮助文档
bash -c "help set"让 CPU 使用率达到 100%
while : ; do : ; done关于 kB 和 KiB 的区别
1 kibibyte (KiB) = 1,024 bytes1 kilobyte (kB) = 10**3 bytes1 mebibyte (MiB) = 1,024**2 bytes = 1,048,576 bytes1 megabyte (MB) = 1,000**2 bytes = 10**6 bytes1 gibibyte (GiB) = 1,024**3 bytes = 1,073,741,824 bytes1 gigabyte (GB) = 1,000**3 bytes = 10**9 bytes当表示计算机中数据量的大小时,K、M、G、T等单位之间的进制都是 1024。
当表示网速时,K、M、G、T等单位之间的进制都是 1000。
查找
<和>包裹的字符串,<前不是 ‘`‘ 字符并且>后也不是 ‘`‘ 字符的正则表达式:# (?<!`)<.+?>(?!`) grep -P '(?<!`)<.+?>(?!`)' -R -n .YAML 多行字符串标记对照表
总结
a. `|` 系列:保留原样换行
b. `>` 系列:换行转空格
c. `+`:保留结尾空行
d. `-`:删除结尾空行
举例
测试脚本literal_block: | Line 1 Line 2 Line 3 literal_block_plus: |+ Line 1 Line 2 Line 3 literal_block_strip: |- Line 1 Line 2 Line 3 folded_block: > Line 1 Line 2 Line 3 folded_block_plus: >+ Line 1 Line 2 Line 3 folded_block_strip: >- Line 1 Line 2 Line 3
结果import yaml with open('demo.yaml', 'r', encoding='utf-8') as f: data = yaml.safe_load(f) for key, value in data.items(): print(f"{key}:\n{repr(value)}\n{'-'*40}")literal_block: 'Line 1\nLine 2\nLine 3\n' ---------------------------------------- literal_block_plus: 'Line 1\nLine 2\nLine 3\n\n\n' ---------------------------------------- literal_block_strip: 'Line 1\nLine 2\nLine 3' ---------------------------------------- folded_block: 'Line 1 Line 2 Line 3\n' ---------------------------------------- folded_block_plus: 'Line 1 Line 2 Line 3\n\n\n' ---------------------------------------- folded_block_strip: 'Line 1 Line 2 Line 3' ----------------------------------------处理 iptables 命令可能查看不到规则端口信息的问题
整理 Kubernetes 的 NodePort 规则时可能会遇到使用 iptables 命令查看 KUBE-NODEPORTS 链时无法查看到 tcp 端口的问题。
这个时候就需要使用nft list chain ip nat KUBE-NODEPORTS来查看才行。
nft命令可以通过命令apt install nftables来安装。
与命令iptables-save等价的命令是nft list ruleset。
https://www.reddit.com/r/kubernetes/comments/1bf8rma/nodeport_kubeproxy_v126_no_longer_has_destination/处理无法查看 iptables 中 log 目标输出的日志的问题
可以使用命令echo 1 > /proc/sys/net/netfilter/nf_log_all_netns强制系统记录所有的日志。
https://stackoverflow.com/questions/39632285/how-to-enable-logging-for-iptables-inside-a-docker-container清空 iptables 的所有规则
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t raw -F iptables -t raw -X iptables -t raw -Z iptables -t mangle -F iptables -t mangle -X iptables -t mangle -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z iptables -t filter -F iptables -t filter -X iptables -t filter -Z iptables -t security -F iptables -t security -X iptables -t security -Z ip6tables -P INPUT ACCEPT ip6tables -P FORWARD ACCEPT ip6tables -P OUTPUT ACCEPT ip6tables -t raw -F ip6tables -t raw -X ip6tables -t raw -Z ip6tables -t mangle -F ip6tables -t mangle -X ip6tables -t mangle -Z ip6tables -t nat -F ip6tables -t nat -X ip6tables -t nat -Z ip6tables -t filter -F ip6tables -t filter -X ip6tables -t filter -Z ip6tables -t security -F ip6tables -t security -X ip6tables -t security -Z设置 pip 使用的 mirror
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip config set install.trusted-host mirrors.aliyun.com设置 Ubuntu 使用的 http 代理
在使用 sudo 时,如果想环境变量中的代理设置依然有效,可以编辑 `/etc/sudoers` 文件export http_proxy=http://localhost:7890 export https_proxy=http://localhost:7890 # minikube proxy # https://minikube.sigs.k8s.io/docs/handbook/vpn_and_proxy/ export HTTP_PROXY=http://localhost:7890 export HTTPS_PROXY=https://localhost:7890 export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24 # git http/https proxy git config --global http.proxy http://localhost:7890 git config --global https.proxy http://localhost:7890 # ssh proxy (nc) # 注意 nc 支持 socks 4, socks 5 或者 https 代理,如果要使用 http 代理可以使用 ncat cat << EOF >> ~/.ssh/config Host github.com User git ProxyCommand nc -x localhost:7890 -Xconnect %h %p EOF # ssh proxy (ncat) # ncat command comes from nmap(https://nmap.org/dist/nmap-7.92-setup.exe) cat << EOF >> ~/.ssh/config Host github.com User git ProxyCommand ncat --proxy localhost:7890 --proxy-type http %h %p EOF # or use http proxy when available cat << EOF >> ~/.ssh/config # https://man.openbsd.org/ssh_config Match host github.com exec "ncat -z 127.0.0.1 7890" ProxyCommand ncat --proxy 127.0.0.1:7890 --proxy-type http %h %p EOF # apt proxy cat << EOF | sudo tee /etc/apt/apt.conf.d/proxy.conf Acquire { HTTP::proxy "http://localhost:7890"; HTTPS::proxy "http://localhost:7890"; } EOF # Docker http proxy sudo mkdir -p /etc/systemd/system/docker.service.d cat << EOF | sudo tee /etc/systemd/system/docker.service.d/override.conf [Service] Environment="HTTP_PROXY=http://localhost:7890" Environment="HTTPS_PROXY=http://localhost:7890" EOF sudo systemctl daemon-reload sudo systemctl restart docker.service+ Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"设置 Ubuntu 使用的 mirror
cp /etc/apt/sources.list /etc/apt/sources.list.bak sed -i "s@http://.*archive.ubuntu.com@https://mirrors.bfsu.edu.cn@g" /etc/apt/sources.list sed -i "s@http://.*security.ubuntu.com@https://mirrors.bfsu.edu.cn@g" /etc/apt/sources.list apt updateUbuntu 安装 Docker
镜像:https://mirrors.bfsu.edu.cn/help/docker-cesudo groupadd docker sudo usermod -aG docker $USER newgrp docker
路径为:{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true } }/etc/docker/daemon.json或/var/snap/docker/current/config/daemon.json。修改 Docker 的 cgroup driver 为 systemd
将上面的内容添加到 Docker 的配置文件中,路径一般为:{ + "exec-opts": ["native.cgroupdriver=systemd"] }/etc/docker/daemon.json。Ubuntu 安装 Golang
# https://golang.google.cn/dl/ # https://golang.google.cn/doc/install # https://goproxy.cn/ wget -O - https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz | tar -C $HOME -xz export PATH=$PATH:$HOME/go/bin go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct # ubuntu sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update && sudo apt install golang -yUbuntu 安装 podman 及 podman-compose
修改# podman(https://podman.io/getting-started/installation) sudo apt install podman # podman-compose(https://github.com/containers/podman-compose) sudo apt install python3-pip pip3 install podman-compose # qemu-system sudo apt-get install qemu-system-x86 # gvproxy wget -O gvproxy https://github.com/containers/gvisor-tap-vsock/releases/download/v0.4.0/gvproxy-linux chmod +x gvproxy sudo mv ./gvproxy /usr/libexec/podman//etc/containers/registries.conf文件,让 podman 能够支持从 docker 上拉取镜像+ unqualified-search-registries = ["docker.io", "quay.io"]Ubuntu 安装 Homebrew
# 官网:https://brew.sh/ # 镜像:https://mirrors.bfsu.edu.cn/help/homebrew/ export HOMEBREW_INSTALL_FROM_API=1 export HOMEBREW_API_DOMAIN="https://mirrors.bfsu.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.bfsu.edu.cn/homebrew-bottles" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.bfsu.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.bfsu.edu.cn/git/homebrew/homebrew-core.git" git clone --depth=1 https://mirrors.bfsu.edu.cn/git/homebrew/install.git brew-install /bin/bash brew-install/install.sh rm -rf brew-install test -r ~/.zshrc && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.zshrcCaddy
# To install cloudflare, run the following command # caddy add-package github.com/caddy-dns/cloudflare # https://caddyserver.com/docs/caddyfile/options { #debug log { output file /var/log/caddy/caddy.log format json level ERROR } } # default directives order: https://caddyserver.com/docs/caddyfile/directives#directive-order site { tls !!!email tls { dns cloudflare !!!key } root * /usr/share/caddy file_server #reverse_proxy 127.0.0.1:8080 @websockets { path /ws header Connection upgrade header Upgrade websocket } #reverse_proxy @websockets unix//dev/shm/ws.sock reverse_proxy @websockets 127.0.0.1:9090 }Windows11 开启 DoH
1. 查看系统自带支持的 DoH 服务器地址
2. 添加常用的 DoH 服务器# 方式一 Get-DnsClientDohServerAddress # 方式二 netsh dns show encryption
3. 配置系统网络 在系统设置 "Network & internet > Ethernet" 中将# DNSPod https://www.dnspod.cn/products/publicdns netsh dns add encryption server=119.29.29.29 dohtemplate=https://doh.pub/dns-query autoupgrade=no udpfallback=no netsh dns add encryption server=2402:4e00:: dohtemplate=https://doh.pub/dns-query autoupgrade=no udpfallback=no # AliDNS https://alidns.com/ netsh dns add encryption server=223.5.5.5 dohtemplate=https://dns.alidns.com/dns-query autoupgrade=no udpfallback=no netsh dns add encryption server=223.6.6.6 dohtemplate=https://dns.alidns.com/dns-query autoupgrade=no udpfallback=no netsh dns add encryption server=2400:3200::1 dohtemplate=https://dns.alidns.com/dns-query autoupgrade=no udpfallback=no netsh dns add encryption server=2400:3200:baba::1 dohtemplate=https://dns.alidns.com/dns-query autoupgrade=no udpfallback=noDNS Server assignment由Automatic (DHCP)改为Manual并设置
4. 使用 https://www.dnsleaktest.com/ 测试| IPv4 | On | | Preferred DNS | 119.29.29.29 | | DNS over HTTPS | On (automatic template) | | Fallback to plaintext | Off | | Alternate DNS | | | DNS over HTTPS | Off | | IPv6 | On | | Preferred DNS | 2402:4e00:: | | DNS over HTTPS | On (automatic template) | | Fallback to plaintext | Off | | Alternate DNS | | | DNS over HTTPS | Off |Windows11 中为 WSL2 开启 KVM 支持权限设置
1. 确保内核版本比较新
2. 将用户添加到组 kvm 中# 如果需要更新内核可以手动到 https://www.catalog.update.microsoft.com/Search.aspx?q=wsl 下载预编译好的内核 $ uname -r 5.15.79.1-microsoft-standard-WSL2
3. 修改 https://learn.microsoft.com/en-us/windows/wsl/wsl-config$ sudo usermod -a -G kvm ${USER}
4. 确认 kvm 可用$ cat << EOF | sudo tee /etc/wsl.conf [boot] command = /bin/bash -c 'chown root:lvm /dev/kvm && chmod 660 /dev/kvm' [wsl2] nestedVirtualization=true EOF$ kvm-ok INFO: /dev/kvm exists KVM acceleration can be usedWindows 中为 Hyper-V 中的虚拟机开启虚拟化支持
在 Windows 中以管理员身份打开 powershell
进入虚拟机,确认虚拟化是否已经开启# 查看有哪些虚拟机 $ Get-VM Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- UbuntuServer22.04 Running 0 12288 00:42:38.0460000 Operating normally 9.0 # 查看指定虚拟机是否已经打开了虚拟化 $ Get-VMProcessor -VMName UbuntuServer22.04 | fl | findstr ExposeVirtualizationExtensions ExposeVirtualizationExtensions : False # 开启指定虚拟机的虚拟化支持 $ Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName UbuntuServer22.04 # 确认指定虚拟机开启了虚拟化 $ Get-VMProcessor -VMName UbuntuServer22.04 | fl | findstr ExposeVirtualizationExtensions ExposeVirtualizationExtensions : True$ egrep -o 'vmx|xvm' /proc/cpuinfo vmxWindows 中配置 Hyper-V 中的虚拟机使用 WSL 同网段的静态 IP
首先获取 WSL 的信息
在 Hyper-V Manager 中配置虚拟机使用名为$ ip a show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:51:33:53 brd ff:ff:ff:ff:ff:ff inet 172.31.203.89/20 brd 172.31.207.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:fe51:3353/64 scope link valid_lft forever preferred_lft forever $ ip r default via 172.31.192.1 dev eth0 proto kernelWSL的虚拟交换机,并使用静态的 MAC 地址。
配置 Hyper-V 中的 Ubuntu 虚拟机使用静态 IP 地址172.31.203.100,编辑文件/etc/netplan/50-cloud-init.yaml
然后使用命令network: version: 2 ethernets: eth0: addresses: - 172.31.203.100/20 routes: - to: default via: 172.31.192.1 nameservers: addresses: [172.31.192.1]netplan apply应用修改即可。Windows 11 中允许局域网访问 WSL2
将下面的内容添加到C:\Users\%USERNAME%\.wslconfig文件中
并在 Windows 中使用命令[wsl2] networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true [experimental] hostAddressLoopback=truewsl --shutdown重启 WSL2 后即可生效。 参考:https://learn.microsoft.com/en-us/windows/wsl/wsl-configWindows Terminal 配置
{ "actions": [ { "command": { "action": "copy", "singleLine": false }, "id": "User.copy", "keys": "ctrl+shift+c" }, { "command": "paste", "id": "User.paste", "keys": "ctrl+shift+v" } ], "copyOnSelect": true, "multiLinePasteWarning": false, "defaults": { "adjustIndistinguishableColors": "never", "antialiasingMode": "cleartype", "bellStyle": "taskbar", "closeOnExit": "always", "colorScheme": "Dracula+", "cursorShape": "filledBox", "experimental.retroTerminalEffect": false, "font": { "face": "CaskaydiaMono Nerd Font Propo", "size": 13.0, "weight": "normal" }, "historySize": 9999999, "intenseTextStyle": "all", "opacity": 90, "padding": "6", "suppressApplicationTitle": true, "useAcrylic": true, "useAtlasEngine": true }, "schemes": [ { "background": "#212121", "black": "#21222C", "blue": "#82AAFF", "brightBlack": "#545454", "brightBlue": "#D6ACFF", "brightCyan": "#A4FFFF", "brightGreen": "#69FF94", "brightPurple": "#FF92DF", "brightRed": "#FF6E6E", "brightWhite": "#F8F8F2", "brightYellow": "#FFCB6B", "cursorColor": "#ECEFF4", "cyan": "#8BE9FD", "foreground": "#F8F8F2", "green": "#50FA7B", "name": "Dracula+", "purple": "#C792EA", "red": "#FF5555", "selectionBackground": "#F8F8F2", "white": "#F8F8F2", "yellow": "#FFCB6B" } ] }设置 Artifactory 搭建的 Chocolatey 的镜像
# https://jfrog.com/help/r/artifactory-working-with-chocolatey-packages-in-artifactory/artifactory-working-with-chocolatey-packages-in-artifactory # https://stackoverflow.com/questions/49413259/mirror-chocolatey-with-artifactory choco source add -n artifactory -s="https://artifactory.ubisoft.org/artifactory/api/nuget/choco-remote" --priority 1 --bypass-proxy --allow-self-service choco source disable -n chocolatey choco source enable -n artifactoryProxy
-----BEGIN AGE ENCRYPTED FILE----- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNjcnlwdCBwVHg2dklJcms0LzQvR28r aEQ4S2l3IDE4CjlldWJUZ3JSeVo3Yys5RjhtUGNVS21LWkZoUGh4NUx1ZlA0RVVT eWVEUHMKLS0tIDJFNzJ4RzMyTGNVWWR2WVJsMUh0N2xFNnZiU1dNVURMRE91eDZt bmZzTzgK1eH3aZ8YR6eRUP8/A2bn0lr0h1bjmAPR93RKwBfyk1e4mW5gvKHdz409 SM8KhSzcpHS+x/H9q7reUhOStagYHI6GCjTtplGS7bfTl+TtVxuWcq45fNzbLIVo 7bsIeHaZf4aE06z92BgX3WSKuynCjvnT3602buDBiXErgHyCRXp6TEFV9GTSEeLv 5FUwUxoW58VXpkfvkz0GySeMJ5LU3nrp34MxGU5s62FeSNLSlseNnXfdUNEwumdk 6R4mL+5NIhdRmv1PLVkdfx97q/4MQHcJGZ6Y7F1jlty4KWkU0QEglvBry4x5S0YT Hb1ipVkxlVflwTp6TXkC+H9QCJciDxssGYTaHFgnYvpOfo/i56iBKpJhRyg4xfHm UxPymEgJygxd7tj5J2GCrjb0rRDJs0iP6Fa8wBg52/DP/jlFGTNO60xdKxQtT95t BI2DZlNJGFHYxwxeX86KDdaSn9ZRqNRa09/cDgq9o14u0z0jB2Bm8AVk9Zh1N7jx t3qlfEuvX5cI4MyvnkXWVCKAE6F8T492IbmW/uEsqN/UHDK2VTSifG1Fdnj0UMcj IhOawPceyhyagT7eKrMbTVGnirMxwyZNQZLx81njaRrb/lt+T/10AtDxGwSH3maH 1XeW5atRXw0qktB34It3FFTMRJv0DDsHr+vXxdTdIyc7H9KznNgoxKqffHvB/VTJ a/ySNkIRLYneAjPHlCnffPEAZEgDw69zrEkNjjhVoXSB/AQK4Znj3GmB4v/1N505 fmtKoeAqhyXBAFov4vtOEP0QDINuo2riy005RYKajs6yfbI2Hus3+GMnTVo1ufXr uSI2GbLVJjTP5wL1tvu7V8EBL4qm5rUhJTDAIiIDQV0KvzIsZVAiYScNi+wueylu gHMUu9EOUerqygFOnPMcdFiwxcngOTgxevnX4KEIrVa41U52OsrY9BuNqxwQ+0FH v7tqEDwgGYLcFj8F2w6b5Id91lJcgZuuHv8RFtF+9IlqRI95VBNT6ztnZb4MmQ7S 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 -----END AGE ENCRYPTED FILE-----Ollama Continue config
# OLLAMA_CONTEXT_LENGTH=8192 # OLLAMA_FLASH_ATTENTION=1 # OLLAMA_KV_CACHE_TYPE=q4_0 # OLLAMA_NUM_PARALLEL=8 # OLLAMA_KEEP_ALIVE=30m name: Local Agent version: 1.0.0 schema: v1 models: - name: Autodetect provider: ollama model: AUTODETECT apiBase: http://localhost:11434 roles: - apply - autocomplete - chat - edit - embed - rerank - summarize requestOptions: noProxy: - localhost extraBodyProperties: keep_alive: -1 # https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF repetition_penalty: 1.05 defaultCompletionOptions: temperature: 0.7 topP: 0.8 topK: 20 maxTokens: 65536 capabilities: - tool_use chatOptions: baseSystemMessage: You are an expert software developer. You give helpful and concise responses. context: - provider: file - provider: code - provider: diff - provider: currentFile - provider: terminal - provider: open - provider: tree - provider: problems - provider: debugger params: stackDepth: 3 - provider: repo-map params: includeSignatures: false # default true - provider: os