Windows
- Sysinternals Suite, live.sysinternals.com
- IObit Uninstaller Free, Geek Uninstaller
- Snipaste
- Fork
- Paint.NET
- OpenArk
- LockHunter
- Honeyview
- TreeSizeFree-Portable
- etcher
- ContextMenuManager
- 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+IHNjcnlwdCAzeTlwaUU5blluQStWNCty ZzdEQ01BIDE4CnFHdHp0dksyUHd6ZkVZWU5MMmtxMzNENjd0MWtJQ0JjZmdzVGoy enU4TWsKLS0tIGFwUE1sd0pCYXZVWVBtalI3Z3MzOThEM3lEbkxoZ2dXRm1QVmZ1 ZTJqSzgK7t4RDEnDkEBTku3Tira3mCZHZDDPbQ3BtnLAzx/vT4gT9/xygaXEEosz LINQKXBwOfyMBsem3brnQz5D5FKtvV7lH4jqoQKyN6MdCTjo9AvYTn1eCecYs115 1FJN1Hep73ZCDC16krayRt6RCgI7sA5MqFEeEI+Z8PWjCTnK2zYu3+g1BDOEI0En 0U3k2Sr8uPObJzTUEX4q2Kc0L3yl2ZJvNok8Hu2Go0gkjdMtX46PfKv23uky9i2L KLJMrZPckKe9p+auG+iTVdvYgeyM27mifCXX1k6QVvnfadgTyo//vSryVhQZ96NQ LErnCABu6D4kWvyIUlShYYNyYPalkr39AE55UTPPl0uJy85Bkux2MC3fH/OMai0k o3r61NaTkvZuFpao3gs9VzLEcSdQgPSLl3T9Fj55omdSYzEKCmYJyZ7Iq+ysWZrP YUBNpadKVd2UlMENoCnwjxFpa46OPQFUvU8/iouQ1fyIgGhNMXxj74rYvJl9iiFM Rlf/+jKGi3WtStyXgs5XZRTo9c6Gwe72SUU7FhlcHF2QBHK69fUvVLEoBytfFf4Q i8DBPffBU/RHB8LjbbemylAZFpgI8djXwSgSkgtVdeakkUbv7yFmUwNtduKJXT+A NOgozU+c+2INrVVwD3yTM4NVA/vWZRmt0mpXgrwv6Nx5gW9fKGaNZR9oxm1VX/7Z pad15WqO/7SejQr2vvXN5UXMbgQQGCpnuEu1Uq7wjPiNd+J3a2YTN5hrIOD3Jz/D ciaadktkZKPTZhAU3ocxS48XZjqavFwHHHJPr2bdPrCZFBt1jlirW532fScNYu8Q PFZTcWpvsgyaXH5wOPDnU+tF8UHTKVUEtxaL/eBHXF8UOW2vNjyAR11AZh4vhz/8 neqIc7UrW9WikXTpRSVgF1DV9Fc1oLOcRla0+wvMAIKQ25zozJpeemrQo0B3RS5u mgnPdM54FhIcUPW0dLSa/PpP7Pe3Yz3j0bP4hL90WXOcBXlX/Ixl6ImgwZeVa2Ff 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 uoKN31IztVU/vErOB+x84lZ2yI4FclV5NA== -----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