修改: "2026 Ubuntu \345\256\211\350\243\205.md"

新文件:   "AI\346\212\200\346\234\257/\345\207\206\345\244\207.md"
	修改:     "Docker\346\212\200\346\234\257.md"
	修改:     "Linux\346\212\200\346\234\257.md"
	新文件:   "MinIO\345\270\270\347\224\250\346\223\215\344\275\234.md"
This commit is contained in:
2026-05-27 21:53:49 +08:00
parent 08d36cf2dd
commit c62dd77bed
5 changed files with 286 additions and 50 deletions
+15 -45
View File
@@ -20,7 +20,19 @@ sync 验证数据同步完成
- sudo apt autoclean 清理下载缓存 - sudo apt autoclean 清理下载缓存
- apt list --upgradable 查看可升级的软件包列表 - apt list --upgradable 查看可升级的软件包列表
- sudo apt full-upgrade 彻底的升级(可能移除旧包) - sudo apt full-upgrade 彻底的升级(可能移除旧包)
- sudo apt install 包名 安装软件
- sudo apt remove 包名 删除软件
- sudo apt purge 包名 彻底删除(含配置)
- apt search 关键词 搜索软件
- apt list --installed 查看已安装
- sudo apt autoclean 清理缓存
- 其他包管理工具
- Snap:Ubuntu 官方推广的容器化软件格式,命令为 snap(如 snap install wechat)。
- Flatpak:跨发行版的通用包格式,需先安装 flatpak,然后添加仓库使用。
- dpkg:底层安装工具,用于直接安装 .deb包(如 sudo dpkg -i 包.deb)。
建议:在 Ubuntu 上优先使用 APT,因为它能自动处理依赖关系,且与系统集成度最高。如果找不到某些软件,可以尝试 Snap 或 Flatpak。
## 收藏/软链接 ## 收藏/软链接
@@ -107,6 +119,9 @@ $ flatpak install flathub io.github.ellie_commons.jorts
## 微信开发者工具
https://github.com/msojocs/wechat-web-devtools-linux
@@ -114,42 +129,6 @@ $ flatpak install flathub io.github.ellie_commons.jorts
其他包管理工具
Snap:Ubuntu 官方推广的容器化软件格式,命令为 snap(如 snap install wechat)。
Flatpak:跨发行版的通用包格式,需先安装 flatpak,然后添加仓库使用。
dpkg:底层安装工具,用于直接安装 .deb包(如 sudo dpkg -i 包.deb)。
建议:在 Ubuntu 上优先使用 APT,因为它能自动处理依赖关系,且与系统集成度最高。如果找不到某些软件,可以尝试 Snap 或 Flatpak。
Ubuntu (APT)
更新软件源​
sudo apt update
安装软件​
sudo apt install 包名
删除软件​
sudo apt remove 包名
彻底删除(含配置)
sudo apt purge 包名
搜索软件​
apt search 关键词
查看已安装​
apt list --installed
升级所有软件​
sudo apt upgrade
清理缓存​
sudo apt autoclean
## GNOME 官方扩展网站安装输入法面板 ## GNOME 官方扩展网站安装输入法面板
https://extensions.gnome.org/extension/261/kimpanel/ https://extensions.gnome.org/extension/261/kimpanel/
@@ -232,15 +211,6 @@ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus',
##
### python
```
sudo apt install python3-pip python3-dev
python3 -V 显示 3.12.3
```
## 微信会议 ## 微信会议
+53
View File
@@ -0,0 +1,53 @@
# 准备工作
## 一、CC Switch
先完成 CC Switch 安装
- 下载页面 https://www.ccswitch.io/zh/ 选择 [CC-Switch-v3.15.0-Linux-x86_64.deb ](https://github.com/farion1231/cc-switch/releases/download/v3.15.0/CC-Switch-v3.15.0-Linux-x86_64.deb)
- sudo dpkg -i CC-Switch-v3.15.0-Linux-x86_64.deb
- 进入 CC-Switch 配置 claude 供应商
1. 选择 DouBaoSeed
1. 输入 API Key ark-8f9...
1. 模型映射 - 获取模型列表(选择想用的,如 doubao-seed-2-0-code-preview-latest
1. 测试 & 保存 CC Switch 会自动把正确的 base_url + api_key 写入:~/.claude/settings.json
> 避免 Claude Code 进入官方校验
>
> ```bash
> # 1. 退出 claude 并清所有相关变量
> claude /logout
> unset ANTHROPIC_AUTH_TOKEN ANTHROPIC_API_KEY ANTHROPIC_BASE_URL
>
> # 2. 检查:必须什么都不输出
> env | grep ANTHROPIC
>
> # 3. 清空 Claude 配置(让 CC Switch 全权接管)
> > ~/.claude/settings.json
>
> # 4. 关键:跳过官方首次校验(国内必做)
> echo '{"hasCompletedOnboarding": true}' > ~/.claude.json
> ```
## 二、CLAUDE CODE
Version: 2.1.152
```bash
curl -fsSL https://claude.ai/install.sh | bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
claude 运行 ( 理论上不会出现初始化配置选项,如 Select login method: 选择 2. Anthropic Console account · API usage billing
```
## 三、Claude Code中常用命令
`/status` 查看当前模型和连接状态
`/logout` 清除当前认证状态,退出登录后重新启动 Claude Code,通常会再次弹出登录方式选择界面。
-2
View File
@@ -53,8 +53,6 @@ newgrp docker
``` ```
Docker相关:
给当前用户增加 docker 运行权限 给当前用户增加 docker 运行权限
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
newgrp docker newgrp docker
+13 -3
View File
@@ -1,5 +1,6 @@
```
ss -tunlp | grep -E '9090|789.' 查看 9090 和 789* 端口 ss -tunlp | grep -E '9090|789.' 查看 9090 和 789* 端口
find / -name '*.php' 查询根目录下所有php后缀文件 find / -name '*.php' 查询根目录下所有php后缀文件
for file in *.docx; do pandoc "$file" -o "${file%.docx}.md"; done 批量转换 docx 到 md for file in *.docx; do pandoc "$file" -o "${file%.docx}.md"; done 批量转换 docx 到 md
@@ -11,17 +12,19 @@ Watch -n 1 'ls -l' 每隔1秒执行目录查询
tar -cvf coze-studio.tar coze-studio 创建tar压缩包 tar -cvf coze-studio.tar coze-studio 创建tar压缩包
tar -xvf coze-studio.tar 解压 tar -xvf coze-studio.tar 解压
映射远程目录 Nautilus (GNOME Files) 的“其他位置”输入 sftp://1.95.127.205 映射远程目录 Nautilus (GNOME Files) 的“其他位置”输入 sftp://1.95.127.205
```
sudo apt update
sudo apt upgrade
```
===================================================快捷键 ===================================================快捷键
Alt + F2 运行应用程序 Copilot(AI键) 打开命令行终端 cmd Alt + F2 运行应用程序 Copilot(AI键) 打开命令行终端 cmd
WIN +Alt + → / ← 工作台间切换 WIN + ` 在同一个应用程序的窗口之间切换 WIN +Alt + → / ← 工作台间切换 WIN + ` 在同一个应用程序的窗口之间切换
Shift + 小键盘05 0截屏 1目录 2 firefox 3 邮箱 4Typora 5 记事 . 摄像头 Shift + 小键盘05 0截屏 1目录 2 firefox 3 邮箱 4Typora 5 记事 . 摄像头
Emoji 符号 通过 Firefox 插件输入 Emoji 符号 通过 Firefox 插件输入
```
@@ -36,9 +39,16 @@ G 文末 gg 首行 :set nu 设置行号
========================================================== ==========================================================
``` ```
```
============== ==============
安装 ufw sudo pacman -S ufw 防火墙 安装 ufw sudo pacman -S ufw 防火墙
sudo ufw enable 启用 ufw sudo ufw enable 启用 ufw
sudo ufw default deny incoming 设置默认策略为拒绝所有传入和传出连接 sudo ufw default deny incoming 设置默认策略为拒绝所有传入和传出连接
sudo ufw default deny outgoing sudo ufw default deny outgoing
允许特定的服务和端口。例如,允许 SSH 连接:sudo ufw allow ssh 或者:sudo ufw allow 22/tcp 最后,检查 ufw 的状态:sudo ufw status 允许特定的服务和端口。例如,允许 SSH 连接:sudo ufw allow ssh 或者:sudo ufw allow 22/tcp 最后,检查 ufw 的状态:sudo ufw status
```
+205
View File
@@ -0,0 +1,205 @@
# MinIO 最常用的操作
访问 Web 管理台 https://zgene.cn:9001,用 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD 登录。
可以:创建 bucket、上传下载文件、设置 bucket 权限、生成预签名 URL。
## 安装
```bash
sudo wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
sudo chmod +x /usr/local/bin/mc
mc alias set zgene https://zgene.cn:9000 admin pass*****wd 配置别名:zgene
mc ls zgene 验证:列出所有存储桶
```
## 常用命令
- mc mb zgene/zgene_knowledge # 创建 bucket 桶名必须为小写字母
- mc rb zgene/test # 删除空 bucket,强制删除非空桶 --force
- mc cp ./file.txt zgene/mybucket/ # 上传单个文件
mc ls zgene/photos # 列出
mc cp zgene/photos/trip.jpg ./ # 下载
mc rm zgene/photos/trip.jpg # 删除
mc rb zgene/photos
---
3. Python SDK
pip install minio
from minio import Minio
client = Minio("zgene.cn", access_key="admin", secret_key="xxx", secure=True)
# 上传
client.fput_object("photos", "2026/trip.jpg", "./trip.jpg")
# 获取预签名 URL(用于 Markdown 引用,默认 7 天有效)
url = client.presigned_get_object("photos", "2026/trip.jpg")
print(url)
---
4. Markdown 引用图片
方式一:预签名 URL(私有 bucket,带临时认证)
url = client.presigned_get_object("photos", "trip.jpg")
# https://zgene.cn/oss/photos/trip.jpg?X-Amz-Algorithm=...
![描述](https://zgene.cn/oss/photos/trip.jpg?X-Amz-Algorithm=...)
方式二:public bucket(裸直链,无认证)
mc anonymous set download zgene/photos
![描述](https://zgene.cn/oss/photos/trip.jpg)
---
5. 粘贴上传(在 Console 里)
进入 bucket → 点击 Upload → 支持拖拽、点击选择、Ctrl+V 粘贴。
---
需要更详细的某个部分吗?比如和 Typora/VS Code 集成自动上传?
✻ Brewed for 49s
❯ Typora集成自动上传
● Write(~/桌面/项目集/minioss/typora-minio-upload.py)
脚本已写好,保存为 typora-minio-upload.py
---
配置步骤
1. 安装依赖
pip install minio
2. 创建配置文件
mkdir -p ~/.config/typora-minio
cat > ~/.config/typora-minio/config.json << 'EOF'
{
"endpoint": "zgene.cn",
"access_key": "admin",
"secret_key": "你的密码",
"bucket": "typora",
"secure": true,
"public": true,
"prefix": "2026/"
}
EOF
┌─────────────────────────┬─────────────────────────────────────────────────┐
│ 配置项 │ 说明 │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ endpoint │ 域名,不用加 https:// │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ access_key / secret_key │ MinIO 账号密码 │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ bucket │ 图片存放的 bucket,不存在会自动创建 │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ public │ true 输出固定直链(推荐),false 输出预签名 URL │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ prefix │ 对象前缀,如 2026/ 表示图片放在 typora/2026/ 下 │
└─────────────────────────┴─────────────────────────────────────────────────┘
3. Typora 设置
偏好设置 → 图像:
- 插入图片时:上传图片
- 上传服务设定:Custom Command
- 命令:
python3 /path/to/typora-minio-upload.py
点击"验证图片上传选项"测试。
---
效果
在 Typora 中:
- 粘贴截图 → 自动上传到 MinIO → 返回 URL
- 拖拽图片 → 同上
- 插入本地图片 → 同上
图片 URL 格式:
https://zgene.cn/oss/typora/2026/20260506_143052_image.png
需要我把这个脚本也提交到 minioss 仓库吗?
>已深度思考(用时3秒)
>
>
>
>我们注意到原配置中使用了 `proxy_set_header Host $host;`这可能会导致签名问题,因为MinIO的签名计算依赖于原始的Host头。
>
>根据之前的分析,我们需要将Host头设置为客户端原始请求的Host,即使用 `$http_host`变量,它包含客户端请求中的原始Host头信息。
>
>同时,我们还需要确保其他与签名相关的头被正确传递。
>
>修改建议:
>
>1.
>
> 将 `proxy_set_header Host $host;`改为 `proxy_set_header Host $http_host;`以保留客户端请求的原始Host头。
>
>2.
>
> 另外,MinIO的S3签名可能还需要一些其他的头信息,我们可以参考MinIO官方文档关于Nginx代理的配置。
>
>另外,注意原配置中已经设置了 `proxy_request_buffering off;`和 `proxy_buffering off;`以及 `client_max_body_size 0;`,这是正确的。
>
>修改后的配置如下(只修改了Host头,其他保持不变):
>
>看到了您的配置,问题出在 **`proxy_set_header Host $host;`** 这一行。对于 S3 API 签名验证,这会导致签名不匹配。
>
>## 问题原因
>
>S3 API 签名计算依赖于请求中的 `Host`头。当您使用:
>
>-
>
> `proxy_set_header Host $host;`- 这会重写 Host 头为 Nginx 服务器的主机名
>
>-
>
> 但客户端(mc)发送请求时使用的是包含端口的完整域名:`zgene.cn:9000`
>
>## 解决方案
>
>将 Host 头配置改为以下两种方式之一:
>
>### 方案1:使用 `$http_host`(推荐)
>
>```nginx
>proxy_set_header Host $http_host; # 使用客户端发来的原始 Host 头
>```
>
>