我的笔记
苟日新,日日新,又日新。
由于人的记忆力是有限的,所以我们应该记录自己常年积累的知识。
tools
Powershell
一.开启 powershell
-
win + R输入powershell -
管理员身份运行
Ctrl + Shift + Enter
PowerShell 升级和 Windows Terminal 配置
- 查看 PowerShell 当前版本
$PSVersionTable
- 更新 PowerShell
添加中科大镜像源
winget source add --name winget --arg https://mirrors.ustc.edu.cn/winget-source
winget search PowerShell # 查询可用的 PowerShell 包
- 安装(微软发布的 PowerShell)
winget install --id Microsoft.PowerShell --source winget
- 打开 Windows Terminal 的 settings.json 并修改配置(示例,替换为你的 GUID)
{
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"profiles": {
"list": [
{
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore",
"hidden": false
}
]
}
}
二. 文件相关命令
- 进入文件夹
cd .\
- 返回上级目录
cd ..
- 创建目录 / 文件
mkdir .\NewFolder
ni .\file.txt -ItemType File
- 删除文件或目录
rm .\file.txt
- 移动 / 重命名
mv .\source.txt .\dest.txt
- 使用 VS Code 打开当前目录
code .
- 清空回收站(无提示)
Clear-RecycleBin -Force -Confirm:$false
三. 常用命令
环境变量
- 显示环境变量
gci env:
- 设置(追加)环境变量路径
$env:Path += ";C:\你的\路径"
网络配置
- 显示本机 IP
ipconfig
- 测试网络连通性
ping <IP 或 主机名>
- 关闭防火墙(谨慎)
netsh advfirewall set allprofiles state off
- 显示网络统计信息
netstat -an
- 显示本地路由表
route print
- 显示/查询防火墙规则
Get-NetFirewallRule
winget
window提供的包管理工具,类似于apt-get、yum等。
更新
- 查看winget源
winget source list
- 更新源
winget source update
- 更新软件
winget upgrade --all
常用软件
- vscode
winget install Microsoft.VisualStudioCode -s winget
- git
winget install Git.Git -s winget
- chrome
winget install Google.Chrome -s winget
- 7zip
winget install 7zip.7zip -s winget
- JLC EDA Pro
winget install JLC.LCEDA.Pro -s winget
- arduino
winget install ArduinoSA.IDE.stable -s winget
- bandizip
winget install Bandisoft.Bandizip -s winget
- draw.io
winget install JGraph.Draw io.Desktop -s winget
- obs-studio
winget install OBSProject.OBSStudio -s winget
- telegram
winget install Telegram.TelegramDesktop -s winget
- nano
winget install okibcn.nano -s winget
- vim
winget install vim.vim -s winget
- wireguard
winget install WireGuard.WireGuard -s winget
winget install Tencent.QQ -s winget
winget install Tencent.WeChat -s winget
Oh my posh
PowerShell 提示符美化工具。
安装和更新
安装
winget install JanDeDobbeleer.OhMyPosh -s winget
检查版本
oh-my-posh version
通过 winget 安装后,通常不需要手动追加
Path。
更新
winget upgrade JanDeDobbeleer.OhMyPosh -s winget
主题配置(推荐:落地到本地文件)
下面以 aliens 为例,执行一次即可:
$themeDir = Join-Path $HOME "Documents\PowerShell\themes"
New-Item -ItemType Directory -Force -Path $themeDir | Out-Null
$themeFile = Join-Path $themeDir "aliens.omp.json"
Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/aliens.omp.json" `
-OutFile $themeFile
在 $PROFILE 中加入:
$ompTheme = Join-Path $HOME "Documents\PowerShell\themes\aliens.omp.json"
if (Test-Path $ompTheme) {
$ompShell = if ($PSVersionTable.PSEdition -eq "Core") { "pwsh" } else { "powershell" }
oh-my-posh init $ompShell --config $ompTheme | Invoke-Expression
}
立即生效:
. $PROFILE
主题配置(不落地文件,直接用 URL)
如果你不想下载主题文件,也可以直接用远程配置:
oh-my-posh init pwsh --config "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/agnosterplus.omp.json" | Invoke-Expression
注意事项
- 某些环境下
$env:POSH_THEMES_PATH为空,不建议直接依赖它拼接主题路径。 - 图标显示异常(方块/问号)时,先安装 Nerd Font:
oh-my-posh font install Meslo --headless
- 安装字体后,确保终端字体已切换到 Nerd Font(例如
MesloLGLDZ Nerd Font):
- Windows Terminal:
settings.json中设置profiles.defaults.font.face - VS Code:
settings.json中设置terminal.integrated.fontFamily
- 如果使用 Windows PowerShell 遇到
running scripts is disabled on this system,建议切换到 PowerShell 7 (pwsh) 作为默认终端。
主题列表
Git
一.安装 Git
-
官网下载 下载
-
Windows下载
winget install --id Git.Git -e --source winget
- Linux 下载
sudo apt-get install git # Debian/Ubuntu
sudo yum install git # CentOS/RHEL
二.配置 Git
在 powershell 中输入git检测是否配置完成
配置用户
- 初始化 Git 仓库
git init
- 设置用户名和邮箱
git config user.name 'ptsfdtz'
git config user.email 'pitousanfadetuzi@gmail.com'
- 查看邮箱用户配置
git config --list
- 配置 git
进入 gitconfig 文件
code ~/.gitconfig # vscode
添加以下内容
[user]
name=ptsfdtz
email=pitousanfadetuzi@gmail.com
[http]
proxy=http://127.0.0.1:7890
[https]
proxy=http://127.0.0.1:7890
[init]
defaultBranch=main
[pull]
ff=only
令 git 使用 clash 代理
三.初次提交模板
- 项目初始化
git init
echo "# README" > README.md
git add README.md
git commit -m "First commit"
- 添加远程仓库链接
git remote add origin #仓库链接
- 默认分支 main
git branch -M main
- 提交到 github 仓库
git push -f -u origin main
四.常用命令
- 查看当前状态
git status
- 查看提交记录
git log
- 回退到上一个版本
git reset --hard HEAD^
- 回退到上上个版本
git reset --hard HEAD^^
- 回退到指定版本
git reset --hard HEAD^^
- 分支相关的操作
git branch ##查看分支
git branch <name> ##创建分支
git checkout <name> ##切换分支
git checkout -b <name> ##创建+切换分支
git merge <name> ##合并某分支到当前分支
git merge --no-ff -m "..." <name> ##使用普通模式合并分支,可以显示合并历史
git branch (-m | -M) <oldbranch> <newbranch> ##重命名分支
git branch -d <name> ##删除分支
git branch -D <name> ##强行删除未合并分支
git log --graph ##查看分支合并图
git log --graph --pretty=oneline --abbrev-commit ##也可以查看分支合并图
git tag <num> ##创建标签
git push --tags ##推送标签
docker
wireguard
一.安装 wireguard
在服务端安装
- 获取 root 权限
sudo i
- 安装 wireguard 软件
apt install wireguard resolvconf -y
- 开启ip转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
二.配置服务端
配置服务端公钥和私钥
- 进入配置存储目录,调整目录权限
sudo su #切换到root用户
cd /etc/wireguard/
umask 077 #调整目录默认权限
- 生成服务器密钥
wg genkey > server.key #生成私钥
wg pubkey < server.key > server.key.pub #通过私钥生成公钥
- 生成客户端密钥(client1)
wg genkey > client1.key #生成私钥
wg pubkey < client1.key > client1.key.pub #通过私钥生成公钥
显示所有生成的密钥
cat server.key && cat server.key.pub && cat client1.key && cat client1.key.pub
创建服务器配置文件
nano /etc/wireguard/wg0.conf
添加服务器配置文件内容
[Interface]
PrivateKey = $(cat server.key) # 填写本机的privatekey 内容
Address = 10.0.8.1 #本机虚拟局域网IP
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#注意eth0需要为本机网卡名称
ListenPort = 50814 # 监听端口
DNS = 8.8.8.8
[Peer]
PublicKey = $(cat client1.key.pub) #自动client1的公钥
AllowedIPs = 10.0.8.10/32 #客户端所使用的IP" > wg0.conf
查看你的默认网卡
ip route list table main default
如果网卡不正确更改默认网卡 将 eth0 改为enp4s0
启动服务
wg-quick up wg0 #启动wg0
wg-quick down wg0 #关闭wg0
配置客户端
- 下载客户端
下载链接:https://www.wireguard.com/install/
- 配置客户端
新建隧道
- 配置隧道
[Interface]
PrivateKey = 6M8HEZioew+vR3i53sPc64Vg40YsuMzh4vI1Lkc88Xo= #此处为client1的私钥
Address = 10.0.8.10 #此处为peer规定的客户端IP
MTU = 1500
[Peer]
PublicKey = Tt5WEa0Vycf4F+TTjR2TAHDfa2onhh+tY8YOIT3cKjI= #此处为server的公钥
AllowedIPs = 10.0.8.0/24 #此处为允许的服务器IP
Endpoint = 114.132.56.178:50814 #服务器对端IP+端口
配置防火墙
允许端口转发
- 进入配置文件
sudo vim /etc/sysctl.conf
- 编辑内容
net.ipv4.ip_forward=1
- 重启防火墙
sudo sysctl -p
重启防火墙
- 查看防火墙是否启动成功
sudo ufw status
- 如果防火墙未启动,则启动防火墙
ufw allow 51820/udp
查看是否连接成功
客户端
ping 10.0.8.1
服务器
sudo tcpdump -envi wg0
设置服务器开机启动wireguard
systemctl enable wg-quick@wg0
参考
nano
一. linux安装
sudo apt update && sudo apt install nano -y # Debian/Ubuntu系统
sudo yum install nano -y # CentOS/RHEL系统
sudo dnf install nano -y # Fedora系统
二. Windows安装
winget install --id Nano.Nano -e --source winget
三. 配置
nano ~/.nanorc
添加以下内容
set linenumbers
set mouse
set autoindent
set softwrap
include "/usr/share/nano/*.nanorc"
四. 使用
nano 文件名
# 保存文件: Ctrl + O
# 退出 nano: Ctrl + X
# 查找文本: Ctrl + W
# 剪切文本: Ctrl + K
# 粘贴文本: Ctrl + U
# 撤销操作: Alt + U
# 重做操作: Alt + E
vim
languages
nodejs
安装NVM
windows下推荐使用nvm-windows
Linux和macOS下推荐使用nvm
使用NVM安装Node.js
nvm install <version>
nvm use <version>
全局安装包
npm install -g <package-name>
- pnpm:
npm install -g pnpm
- yarn:
npm install -g yarn
- typescript:
npm install -g typescript
- ts-node:
npm install -g ts-node
go
安装 Go(Windows)
推荐优先使用 winget 安装:
winget install --id GoLang.Go --source winget --accept-source-agreements --accept-package-agreements
也可以使用官方安装包:
验证安装
go version
go env GOROOT
go env GOPATH
如果命令找不到,先重开终端再试一次。
模块和项目初始化
创建第一个项目
mkdir hello-go
cd hello-go
go mod init hello-go
创建 main.go:
package main
import "fmt"
func main() {
fmt.Println("hello go")
}
运行项目:
go run .
常用命令
go mod tidy
go fmt ./...
go test ./...
go build ./...
常用配置
配置国内代理(可选)
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn
查看当前配置:
go env GOPROXY
go env GOSUMDB
恢复默认:
go env -u GOPROXY
go env -u GOSUMDB
经验总结
go install <module>@latest安装的可执行文件默认在GOPATH\bin。- 如果安装了工具但命令不可用,先确认
GOPATH\bin是否在Path中。 go mod tidy建议作为日常命令,能及时清理和补齐依赖。go test ./...可以快速覆盖整个项目包的基础回归。
python
安装 Python(Windows)
推荐使用 winget 安装官方版本:
winget install --id Python.Python.3.14 --source winget --accept-source-agreements --accept-package-agreements --override "InstallAllUsers=0 PrependPath=1 Include_launcher=1 Include_pip=1"
说明:
PrependPath=1会把 Python 和 Scripts 目录加入Path。Include_launcher=1会安装py启动器。Include_pip=1会安装pip。
验证安装
python --version
pip --version
py --version
如果当前终端提示找不到命令,先重开终端再试。
虚拟环境
创建虚拟环境:
python -m venv .venv
激活虚拟环境(PowerShell):
.\.venv\Scripts\Activate.ps1
退出虚拟环境:
deactivate
常用命令
升级 pip:
python -m pip install --upgrade pip
安装依赖:
pip install <package-name>
导出依赖:
pip freeze > requirements.txt
按依赖文件安装:
pip install -r requirements.txt
经验总结
- 本机实测通过
winget安装后,python.exe、pip.exe、py.exe都已安装在用户目录下:C:\Users\16526\AppData\Local\Programs\Python\Python314\ - 用户级
Path虽然已更新,但当前已打开的终端会话不会自动刷新,重开终端后命令才会直接可用。 - 如果执行
python仍跳转到 Microsoft Store,需要在系统设置中关闭 App Execution Aliases 里的python.exe/python3.exe。 - 验收建议至少检查三项:
python --version、pip --version、py --version。
rust
安装 Rust(Windows)
推荐使用 rustup,方便后续切换工具链和升级。
winget install --id Rustlang.Rustup --source winget --accept-source-agreements --accept-package-agreements
验证安装
rustup --version
rustc --version
cargo --version
如果命令找不到,先重开终端再试一次。
常用命令
更新工具链
rustup update
查看已安装工具链
rustup toolchain list
设置默认工具链
rustup default stable
创建并运行第一个项目
cargo new hello-rust
cd hello-rust
cargo run
经验总结
winget安装Rustlang.Rustup后,~\.cargo\bin会放置rustup/rustc/cargo。- 用户级
Path即使已经包含~\.cargo\bin,当前终端会话也可能还不可见。 - 最稳妥做法是重开终端;如果想每次启动都兜底,可在 PowerShell profile 中补一段:
$cargoBin = Join-Path $HOME ".cargo\bin"
if ((Test-Path $cargoBin) -and -not (($env:Path -split ';') -contains $cargoBin)) {
$env:Path = "$cargoBin;$env:Path"
}
- 验收不要只看
rustup,至少同时确认rustc和cargo版本。
C/C++
devops
ci_cd
kubernetes
nginx
prometheus
grafana
frontend
react
pnpm 和 vite 创建
pnpm create vite my-react-app --template react
cd my-react-app
pnpm install
pnpm run dev
github workflow
name: Deploy to GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
env:
BASE_URL: /${{ github.event.repository.name }}/
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
user_name: "github-actions[bot]"
user_email: "github-actions[bot]@users.noreply.github.com"
vue
nextjs
pnpm 创建
pnpm create next-app my-nextjs-app
cd my-nextjs-app
pnpm install
pnpm run dev
github workflow
name: Deploy Next.js 16 to GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build (Next.js static export)
run: pnpm build
env:
NEXT_PUBLIC_BASE_PATH: /${{ github.event.repository.name }}
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./out
user_name: "github-actions[bot]"
user_email: "github-actions[bot]@users.noreply.github.com"
svelte
vite
tailwindcss
backend
gin
fastapi
desktop
electron
tauri
wails
安装wails
需要安装go 1.18+
go install github.com/wailsapp/wails/v2/cmd/wails@latest



