TomHouse
type: channel
link: http://blog.fangsiyuan.top/
description: 一个年更站点
items: 如何在 Linux 中设置 SSH 免密码登录
items: vLLM双卡配置说明
items: GLM-4.7 部署 + llama.cpp 双卡
items: 通过 frp + SSH 远程操作本系统
items: Ubuntu 24.04（内核 6.17）上对 UGREEN WiFi6 AX300（AIC8800）驱动的适配与安装过程
items: Cherry Studio 在 WSL 中的安装说明
items: 基于 Windows 11 + AMD 8060S（统一内存 128GB）环境的llama.cpp 使用指南
items: AMD Ryzen AI MAX+ 395 ROCm WSL2 安装VLLM指南
items: PostgreSQL 安装和使用指南
items: Linux 中新增用户的方法

如何在 Linux 中设置 SSH 免密码登录
type: item
date: 2026-02-26T15:55:29+08:00
description: 第一步：在A中生成密钥在A进入~/.ssh文件夹，执行以下命令：ssh-keygen -t rsa一路回车后，在~/.ssh下会生成 id_rsa，和 id_rsa.pub，其中id_rsa是密钥，id_rsa.pub是公钥。第二步：把在 A 机生成的 id_rsa.pub 拷贝到 B 机上。怎么跨主机复制文件呢，下面的命令可以做到：(假设放在 B 的 tmp 目录中)scp id_rsa.pub root@B:/tmp //scp -r是拷贝文件夹 # 举个例子：将服务器的/www/api/ 复制到本地的~/www（在本地执行） scp -r root@101.200.52.143:/www/api/ ~/www 第三步：将刚才拷贝的 id_rsa.pub 公钥文件拷贝到 B 的 authorized_keys 目录中（没有就创建，注意权限不能是777，可以设置成700或者400）：cd ~/.ssh cat /tmp/id_rsa.pub>>authorized_keys

vLLM双卡配置说明
type: item
date: 2026-02-24T23:14:00+08:00
description: 双卡配置说明（3080 Ti 20G + 1070 8G）重要结论vLLM 不支持 GTX 1070：需要 Compute Capability 7.0+，1070 为 6.1，无法用 vLLM 跑推理或放 KV cache。推荐用法：仅用 3080 Ti 跑 vLLM，通过 CUDA_VISIBLE_DEVICES=0 指定（假设 3080 Ti 为 0 号卡）。1070：可留给 Ollama / 其他支持老显卡的推理、或桌面/显示用；当前方案下不参与 vLLM。指定使用 3080 Ti先确认哪张是 3080 Ti（通常 20G 的那张）：nvidia-smi --query-gpu=index,name,memory.total --format=csv假设 3080 Ti 是 0，则所有 vLLM 命令前加：export CUDA_VISIBLE_DEVICES=0 # 然后正常启动 vllm serve ...或在 Python 里（在 import vllm 之前）：import os os.environ["CUDA_VISIBLE_DEVICES"] = "0"16G 内存注意vLLM 主要吃 显存，16G 系统内存一般够用。避免同时开太多占内存的应用（浏览器、多个大模型服务等），否则易 OOM 或卡顿。推荐本地 Agent 模型（20G 显存）模型显存约说明Qwen2.5-7B-Instruct~16GB FP16通用、工具调用/agent 支持好Qwen2.5-14B-Instruct~28GB FP16 → ~18GB 量化能力更强，需 AWQ/GPTQ 等 4bitDeepSeek-R1-7B~16GB推理/思考链、agent 向Qwen2.5-1.5B/3B-Instruct很低轻量 agent/路由建议：主 agent 用 Qwen2.5-7B-Instruct 或 DeepSeek-R1-7B，20G 可轻松跑；若上 14B，需量化（如 TheBloke/Qwen2.5-14B-Instruct-AWQ）。再「挂一个 DeepSeek」若指再跑一个 DeepSeek（如 R1/CoT 等）：同卡 3080 Ti：两个模型不能同时加载进 20G，可起两个 vLLM 服务不同端口、按需启停，或一个 vLLM + 一个用 API 调远程。1070：不能用 vLLM；可用 Ollama 在 1070 上跑小模型（如 qwen2.5:3b），与 3080 Ti 上的 vLLM 分工。一键只让 vLLM 用 3080 Ti 的示例# 仅用 0 号卡（请按 nvidia-smi 确认 3080 Ti 的 index） export CUDA_VISIBLE_DEVICES=0 source /home/fsy/Desktop/VLLM/.venv/bin/activate vllm serve Qwen/Qwen2.5-7B-Instruct --trust-remote-code --port 8000#!/usr/bin/env python3 """vLLM 本地离线推理示例。首次运行会从 HuggingFace 拉取模型。""" # 仅用 3080 Ti 时，在 import vllm 前设置（或在终端 export CUDA_VISIBLE_DEVICES=0） # import os; os.environ["CUDA_VISIBLE_DEVICES"] = "0" from vllm import LLM from vllm.sampling_params import SamplingParams # Agent 推荐（20G）：Qwen/Qwen2.5-7B-Instruct、deepseek-ai/DeepSeek-R1-7B # 14B 需量化：如 TheBloke/Qwen2.5-14B-Instruct-AWQ MODEL = "Qwen/Qwen2.5-7B-Instruct" def main(): # 初始化引擎（首次会加载模型到 GPU） llm = LLM(model=MODEL, trust_remote_code=True) sampling_params = SamplingParams(temperature=0.7, max_tokens=256) prompts = ["你好，请用一句话介绍你自己。", "1+1=?"] outputs = llm.generate(prompts, sampling_params) for out in outputs: print("输入:", out.prompt) print("输出:", out.outputs[0].te…

GLM-4.7 部署 + llama.cpp 双卡
type: item
date: 2026-02-24T23:13:00+08:00
description: GLM-4.7 部署 + llama.cpp 双卡（3080 Ti 推理 / 1070 cache）一、GLM-4.7 有没有能部署的版本？有。GLM-4.7-Flash 已开源，适合本地部署：架构：30B MoE，约 3B 活跃参数，推理显存约等于 3B 级显存：4-bit 量化约 16–18GB，3080 Ti 20G 足够能力：200K 上下文、工具调用、思考链，适合 agent获取 GGUF（给 llama.cpp 用）：lmstudio-community/GLM-4.7-Flash-GGUF：Q4_K_M / Q6_K / Q8_0bartowski/zai-org_GLM-4.7-Flash-GGUF：更多量化（Q2_K～Q8_0、IQ 系列等）推荐 20G 显存用 Q4_K_M 或 Q5_K_M。二、用 llama.cpp 实现「3080 Ti 推理 + 1070 做 cache」llama.cpp 支持多卡时：-ts / --tensor-split：按比例把模型层分到多张卡（如 -ts 1,0 = 全部在 GPU0）--main-gpu / -mg：指定哪张卡放 KV cache 和小张量（中间结果）因此可以：模型权重全部放在 3080 Ti（推理算力在这张卡）KV cache 和小张量放在 1070（--main-gpu 指向 1070）前提：3080 Ti 建议为 GPU 0，1070 为 GPU 1（用 nvidia-smi 看顺序，必要时在 BIOS/系统里调）。下面按 0=3080Ti、1=1070 写。1. llama.cpp 编译（CUDA）克隆与基础编译：git clone https://github.com/ggml-org/llama.cpp cd llama.cpp mkdir build && cd build cmake .. -DGGML_CUDA=ON cmake --build . --config Release -j可执行文件在 build/bin/，例如 llama-cli、server。若编译时出现 nvcc: Terminated / Compilation terminated，多为内存不足，改用少并行数：cmake --build . --config Release -j2 # 或 -j1若 CMake 报 CUDA Toolkit not found / Could not find nvcc，按下面处理。1.1 确认本机是否有 nvccwhich nvcc # 或 ls /usr/local/cuda*/bin/nvcc 2>/dev/null || ls /usr/bin/nvcc 2>/dev/null有输出则记下该路径的上一级目录（如 /usr/local/cuda 或 /usr/local/cuda-12.6），用作下面的 CUDAToolkit_ROOT。1.2 有 nvcc：指定 CUDAToolkit_ROOT 再配置cd ~/Desktop/llama.cpp/build rm -rf * # 把 /usr/local/cuda 换成你本机 CUDA 实际路径 cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda cmake --build . --config Release -j2若 CUDA 在其它路径，例如 /usr/local/cuda-12.6：cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda-12.61.3 没有 nvcc：安装 CUDA Toolkit# 先看驱动支持的 CUDA 版本 nvidia-smi # 右上角 "CUDA Version: 12.x" 表示驱动支持到该版本 # Ubuntu 安装 CUDA 12（按你系统选对应 repo） wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6装好后可设置环境变量（可写入 ~/.bashrc）：export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY…

通过 frp + SSH 远程操作本系统
type: item
date: 2026-02-24T22:53:00+08:00
description: 通过 frp + SSH 远程操作本系统1. 前置本机已安装 frp 客户端 frpc，且服务端 vc.fangsiyuan.top:10070 已部署 frps 并允许你的 token。本机 SSH 服务 已安装并监听 22 端口（sudo systemctl status ssh）。2. 配置文件客户端配置：frp/frpc.toml（放在 frp 客户端目录中）当前包含：ssh — TCP 代理，服务端端口 10022 → 本机 127.0.0.1:22若本机 SSH 不在本机 22，或 NAS 的 IP/端口不同，在 frpc.toml 里改对应 localIP/localPort。3. 启动 frp 客户端# 前台运行（调试用） frpc -c /usr/local/bin/frpc.toml建议用 systemd 常驻（见下节）。4. 远程 SSH 连接frpc 正常连上服务端后，在任意一台能访问 vc.fangsiyuan.top 的电脑上执行：ssh -p 10022 你的本机用户名@vc.fangsiyuan.top例如本机用户名为 fsy：ssh -p 10022 fsy@vc.fangsiyuan.top即通过 frp 的 10022 端口连到本机 22，实现远程操作本系统。5. systemd 常驻（可选）若 frpc 安装在 PATH 中，可建服务：sudo tee /etc/systemd/system/frpc.service << 'EOF' [Unit] Description=frp client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frpc -c /usr/local/bin/frpc.toml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now frpc sudo systemctl status frpc若 frpc 不在 /usr/bin/frpc，把 ExecStart 里的路径改成 which frpc 的结果。6. 注意服务端需在 frps 中开放 10022（或你用的 remotePort），否则 SSH 隧道不通。token 和端口仅作示例，实际部署注意安全与权限。

Ubuntu 24.04（内核 6.17）上对 UGREEN WiFi6 AX300（AIC8800）驱动的适配与安装过程
type: item
date: 2026-02-23T13:49:22+08:00
description: AIC8800 WiFi 驱动：6.17 内核适配与安装总结记一次在Ubuntu 24.04（内核 6.17）上对 UGREEN WiFi6 AX300（AIC8800）驱动的适配与安装过程。资源下载绿联官方驱动下载（Linux） 绿联 Wi-Fi 6 无线网卡 AX300 系列驱动（Linux 系统） 适用型号：CM760-25262、CM761-35263、CM860-75511、CM957-75614 | 文件版本：V1.6一、背景与问题终端沙箱报错 在 Cursor 中出现 “Terminal sandbox could not start”，与 Linux 6.2+ 的 AppArmor 有关。可安装官方 AppArmor 包或使用 ~/.cursor/sandbox.json 中 "type": "insecure_none" 临时关闭沙箱。驱动编译失败 执行 sudo apt install curl 时触发了未配置完成的 aic8800fdrvpackage，其 post-install 脚本在编译内核模块时失败，原因包括：内核 6.17 中 del_timer / del_timer_sync 已改为 timer_delete / timer_delete_sync5.4+ 中 wakeup_source_create/add/remove/destroy 已移除，需用 wakeup_source_register / wakeup_source_unregistercfg80211 回调 set_wiphy_params、set_tx_power 增加 radio_idx 参数cfg80211_rx_spurious_frame、cfg80211_rx_unexpected_4addr_frame 增加 link_id 参数定时器回调中 from_timer 需改为 container_of 等适配部分 switch 需要显式 fallthrough 以消除 -Wimplicit-fallthrough 报错二、源码修改清单（6.17 内核适配）驱动源码路径：aic8800_linux_drvier/drivers/aic8800/aic8800_fdrv/（及同目录下相关文件）。文件修改内容aicwf_tcp_ack.c增加 #include <linux/timer.h>rwnx_compat.h增加 #include <linux/timer.h>；6.2+ 用宏将 del_timer/del_timer_sync 映射为 timer_delete/timer_delete_sync；6.2+ 为 from_timer 提供兼容宏（实际多数处已改为 container_of）rwnx_wakelock.c5.4+ 使用 wakeup_source_register(dev,name) 与 wakeup_source_unregister(ws)；rwnx_wakeup_init 改为接收 struct rwnx_hw * 以传入 dev；rwnx_wakeup_deinit 在 5.4+ 仅调用 wakeup_source_unregisterrwnx_wakelock.hrwnx_wakeup_init 声明改为 (struct rwnx_hw *, const char *)；增加 struct rwnx_hw 前向声明rwnx_main.c增加 #include <linux/timer.h>；set_wiphy_params 在 6.2+ 增加 int radio_idx；set_tx_power 在 6.2+ 增加 int radio_idx；定时器回调中用 container_of(t, struct rwnx_hw, p2p_alive_timer) 等替代 from_timer；多处 switch 增加 fallthrough;rwnx_rx.c增加 #include <linux/timer.h>；6.2+ 对 cfg80211_rx_spurious_frame / cfg80211_rx_unexpected_4addr_frame 增加第三参数 link_id（传 -1）；defrag_timeout_cb、reord_timeout_handler 中用 container_of(t, struct defrag_ctrl_info, defrag_timer) 等替代 from_timerrwnx_tx.c一处 switch 增加 fallthrough;aicwf_sdio.c定时器回调中用 container_of(t, struct aic_sdio_dev, tim…

Cherry Studio 在 WSL 中的安装说明
type: item
date: 2026-02-23T00:48:48+08:00
description: Cherry Studio 在 WSL 中的安装说明环境WSL2（Ubuntu Noble / 24.04）使用 WSLg 显示图形界面（Windows 11）1. 安装 deb 包cd "/mnt/c/users/12828/desktop/新建文件夹" sudo dpkg -i Cherry-Studio-1.7.19-amd64.deb若出现依赖错误，执行：sudo apt-get update sudo apt-get install -f仍有缺失依赖时可手动安装：sudo apt-get install libnotify4 libnss3 libxss1 xdg-utils libsecret-1-0然后再次执行：sudo dpkg -i Cherry-Studio-1.7.19-amd64.deb2. 声音库（解决 libasound.so.2）Ubuntu 24 中包名为 libasound2t64：sudo apt-get install libasound2t643. 启动方式可执行文件位于 /opt/Cherry Studio/，未加入 PATH，需用完整路径：/opt/Cherry\ Studio/CherryStudio可选：创建软链接，之后可直接用 cherrystudio 命令：sudo ln -sf "/opt/Cherry Studio/CherryStudio" /usr/local/bin/cherrystudio然后：cherrystudio4. 中文显示修复（方框 □□□□）安装中文字体：sudo apt-get install fonts-noto-cjk可选备用：sudo apt-get install fonts-wqy-zenhei安装后关闭并重新打开 Cherry Studio。5. Emoji 显示修复安装 emoji 字体并刷新字体缓存：sudo apt-get install fonts-noto-color-emoji fc-cache -fv可选：sudo apt-get install fonts-emojione fc-cache -fv安装后关闭并重新打开 Cherry Studio。6. 一键安装依赖（可选）若在新 WSL 或新系统上重装，可先执行以下命令再装 deb：sudo apt-get update sudo apt-get install -f libasound2t64 fonts-noto-cjk fonts-noto-color-emoji fc-cache -fv然后再执行本文第 1 步的 dpkg -i。7. 注意事项WSLg：需 Windows 11，WSL 2，图形会直接显示在 Windows 桌面。Windows 10：需在 Windows 安装 X 服务器（如 VcXsrv），并在 WSL 中设置 export DISPLAY=... 后再运行 Cherry Studio。每次修改字体或安装新字体后，建议重启 Cherry Studio 以生效。

基于 Windows 11 + AMD 8060S（统一内存 128GB）环境的llama.cpp 使用指南
type: item
date: 2026-02-22T00:45:00+08:00
description: llama.cpp 使用指南基于 Windows 11 + AMD 8060S（统一内存 128GB）环境整理。文件下载llama.cpp 程序（含 llama-cli、llama-server）官方 Releases 页面（推荐从这里选对应平台压缩包）： https://github.com/ggml-org/llama.cpp/releasesWindows 常用构建（在当页的 Assets 里找）：Vulkan（AMD 显卡推荐）：llama-*-bin-win-vulkan-x64.zip仅 CPU：llama-*-bin-win-cpu-x64.zipCUDA（NVIDIA）：llama-*-bin-win-cuda-*.zip 不要用 rocm / hip 的 Windows 包，在 Win 上易报错。官网说明： https://llama-cpp.com/GGUF 模型Hugging Face（搜索模型名 + GGUF）： https://huggingface.co/models?search=ggufQwen 官方（如 Qwen3-Coder-Next）： https://huggingface.co/Qwen 在模型页的 "Files and versions" 中选 .gguf 文件或分片包下载。ModelScope 魔搭（国内访问较稳，可搜 GGUF）： https://www.modelscope.cn 模型库中搜索模型名或「GGUF」，在模型页下载 .gguf 或分片。Youtu-VL-4B-Instruct-GGUF（腾讯优图 4B 视觉语言模型）： https://www.modelscope.cn/models/Tencent-YouTu-Research/Youtu-VL-4B-Instruct-GGUF/summary 在模型页「Files」中下载主模型 .gguf；若提供 mmproj-*.gguf 等多模态投影文件，需一并下载并与主模型同目录或按说明指定。Unsloth（预量化 GGUF，含 Dynamic 2.0 等）： https://huggingface.co/unsloth 在 Unsloth 组织下按模型名选仓库，在 "Files and versions" 中下载 GGUF；说明见 https://docs.unsloth.ai。解压 llama.cpp 的 zip 后，将 llama-cli.exe、llama-server.exe 等与模型路径配置好即可使用（见下文）。1. 基本运行1.1 命令行（llama-cli）# 指定模型路径（分片模型只需指定第一个文件，会自动加载其余分片） ./llama-cli.exe -m "E:\models\Qwen3-Coder-Next\Qwen3-Coder-Next\Qwen3-Coder-Next-REAM-MXFP4_MOE.gguf"1.2 强制 CPU（GPU 报错时）./llama-cli.exe -m "你的模型路径.gguf" -ngl 0-ngl 0 表示不加载任何层到 GPU，全部用 CPU。2. Windows 下 GPU 后端说明后端说明ROCm/HIP主要为 Linux 设计，在 Windows 上对新卡（如 gfx1151）支持差，易出现 ROCm error: unspecified launch failure。VulkanAMD 在 Windows 上推荐，需使用带 Vulkan 的 llama.cpp 发行版。CPU-ngl 0，最稳定。若下载的是「Vulkan 版」但日志里仍出现 ROCm/ggml-hip，说明同目录下存在 HIP 相关 DLL 被优先加载。可临时重命名禁用：Rename-Item ggml-hip.dll ggml-hip.dll.bak Rename-Item hipblas.dll hipblas.dll.bak Rename-Item libhipblaslt.dll libhipblaslt.dll.bak然后重新运行，程序会使用 Vulkan。 注意：若本身是 ROCm 专用构建（如路径含 llamacpp-rocm），需从官方 releases 重新下载 Vulkan 或 MSVC 版本，而不是仅改 DLL。3. llama-server 部署3.1 基础启动./llama-server.exe -m "模型路径.gguf" --port 8080 --host 0.0.0.0启动后访问：http://localhost:8080。3.2 常用参数速查参数含义示例-m模型路径必填-c / --ctx-size上下文长度（token 数）-c 2048 或 -…

AMD Ryzen AI MAX+ 395 ROCm WSL2 安装VLLM指南
type: item
date: 2026-02-18T12:43:00+08:00
description: AMD Ryzen AI MAX+ 395 ROCm WSL2 安装指南硬件信息CPU: AMD Ryzen AI MAX+ PRO 395GPU: AMD Radeon 8060S (40 CU, 32GB 显存)架构: gfx1151安装步骤1. Windows 端安装1.1 安装 AMD 驱动下载最新驱动：https://www.amd.com/en/support/download/drivers.html运行安装程序，选择 "Custom Install"只勾选 "AMD Chipset Drivers"（其他组件不需要）完成安装并重启1.2 安装 Windows SDK下载：https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/安装时只勾选 "Windows SDK for Desktop C++ Apps"记住安装路径（通常是 C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\）1.3 安装 WSL2# 检查 WSL 版本 wsl --version # 如果未安装，运行 wsl --install -d Ubuntu-24.042. WSL2 端安装2.1 进入 WSL2wsl2.2 检查 Ubuntu 版本lsb_release -a # 确认是 Ubuntu 24.042.3 安装 ROCm 7.2# 下载 ROCm 安装器 wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/noble/amdgpu-install_7.2.70200-1_all.deb # 安装 sudo apt install ./amdgpu-install_7.2.70200-1_all.deb # 更新系统 sudo apt update # 安装依赖 sudo apt install python3-setuptools python3-wheel # 添加用户到 render 和 video 组 sudo usermod -a -G render,video $LOGNAME # 安装 ROCm sudo apt install rocm2.4 验证 ROCm 安装# 检查 ROCm 目录 tree -L 1 /opt # 应该看到 rocm-7.2.0 目录2.5 编译安装 librocdxg安装编译工具sudo apt install cmake git build-essential克隆并编译# 克隆仓库 git clone https://github.com/ROCm/librocdxg.git cd librocdxg # 设置 Windows SDK 路径（根据实际安装路径调整） export win_sdk='/mnt/c/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/' # 编译 mkdir -p build cd build cmake .. -DWIN_SDK="${win_sdk}/shared" make sudo make install2.6 设置环境变量# 临时设置（当前会话有效） export HSA_ENABLE_DXG_DETECTION=1 # 永久设置（添加到 ~/.bashrc） echo 'export HSA_ENABLE_DXG_DETECTION=1' >> ~/.bashrc source ~/.bashrc2.7 验证 GPU 识别rocminfo预期输出：Agent 1: CPU (AMD RYZEN AI MAX+ PRO 395)Agent 2: GPU (gfx1151, AMD Radeon 8060S, 32GB 显存)3. 使用 ROCm3.1 使用 Docker 容器（推荐）docker run -it \ -v /usr/lib/wsl/lib/libdxcore.so:/usr/lib/libdxcore.so \ -v /opt/rocm/lib/librocdxg.so:/usr/lib/librocdxg.so \ -e HSA_ENABLE_DXG_DETECTION=1 \ --device=/dev/dxg \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ --ipc=host \ --shm-size 8G \ rocm/pytorch:latest在容器内测试：import torch pr…

PostgreSQL 安装和使用指南
type: item
date: 2026-01-07T16:06:35+08:00
description: PostgreSQL 安装和使用指南目录概述安装 PostgreSQL基本配置启动和停止服务用户和权限管理数据库操作表和数据操作备份和恢复性能调优基础常用命令总结故障排除概述PostgreSQL 是一个功能强大的开源关系型数据库管理系统，支持 SQL 标准，并提供了许多现代特性，如复杂查询、外键、触发器、视图、事务完整性等。主要特性ACID 事务支持多版本并发控制 (MVCC)支持多种数据类型可扩展的类型系统丰富的索引类型全文搜索JSON 和 JSONB 支持存储过程和函数安装 PostgreSQL在 Ubuntu/Debian 上安装# 更新包列表 sudo apt update # 安装 PostgreSQL sudo apt install postgresql postgresql-contrib # 检查版本 psql --version在 CentOS/RHEL 上安装# 安装 PostgreSQL 仓库 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 安装 PostgreSQL sudo yum install -y postgresql15-server postgresql15-contrib # 初始化数据库 sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 启动服务 sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15在 macOS 上安装# 使用 Homebrew 安装 brew install postgresql # 启动服务 brew services start postgresql使用 Docker 安装# 拉取 PostgreSQL 镜像 docker pull postgres:15 # 运行容器 docker run --name postgres-db -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=mydb -p 5432:5432 -d postgres:15基本配置配置文件位置PostgreSQL 的主要配置文件通常位于：/etc/postgresql/15/main/postgresql.conf (Ubuntu/Debian)/var/lib/pgsql/15/data/postgresql.conf (CentOS/RHEL)/usr/local/var/postgres/postgresql.conf (macOS with Homebrew)常用配置参数# 监听地址 (默认只监听本地) listen_addresses = '*' # 端口 (默认 5432) port = 5432 # 最大连接数 max_connections = 100 # 共享缓冲区大小 (设置为系统内存的 25%) shared_buffers = 256MB # 工作内存 work_mem = 4MB # 维护工作内存 maintenance_work_mem = 64MB # 检查点间隔 checkpoint_completion_target = 0.9 # WAL 日志级别 wal_level = replica # 最大 WAL 发送者进程数 max_wal_senders = 10修改配置后重启服务# Ubuntu/Debian sudo systemctl restart postgresql # CentOS/RHEL sudo systemctl restart postgresql-15 # macOS brew services restart postgresql启动和停止服务系统服务管理# 启动服务 sudo systemctl start postgresql # 停止服务 sudo systemctl stop postgresql # 重启服务 sudo systemctl restart postgresql # 查看状态 sudo systemctl status postgresql # 开机自启 sudo systemctl enable postgresql手动启动# 切换到 postgres 用户 sudo -u postgres -i # 启动 PostgreSQL pg_ctl -D /var/lib/postgresql/15/main start # 停止 Po…

Linux 中新增用户的方法
type: item
date: 2026-01-07T14:42:00+08:00
description: Linux 中新增用户的方法目录1. 使用 useradd 命令（推荐）1.1 基本语法1.2 常用选项1.3 示例2. 使用 adduser 命令（交互式，Debian/Ubuntu）2.1 基本用法2.2 特点2.3 示例3. 创建用户后的必要操作3.1 设置密码3.2 赋予 sudo 权限（可选）3.3 验证用户创建3.4 用户主目录管理3.4.1 创建用户主目录3.4.2 复制默认配置文件到主目录3.4.3 修改用户主目录3.4.4 设置主目录权限3.4.5 查看用户主目录3.5 设置登录时的默认账号3.5.1 设置默认登录用户（图形界面）3.5.1.1 使用 systemd 的自动登录（systemd 系统）3.5.1.2 使用 LightDM（Ubuntu/Linux Mint）3.5.1.3 使用 GDM（GNOME 显示管理器）3.5.1.4 使用 SDDM（KDE Plasma）3.5.2 设置默认 Shell3.5.3 设置默认用户组3.5.4 设置默认环境变量3.5.5 设置默认工作目录3.5.6 配置 SSH 默认登录用户3.5.7 设置系统默认用户（系统服务）3.5.8 禁用自动登录（安全考虑）4. 切换用户的方法4.1 使用 su 命令4.1.1 基本语法4.1.2 常用选项4.1.3 示例4.2 使用 sudo 命令4.2.1 基本语法4.2.2 切换到其他用户4.3 使用 sudo -i 命令4.4 使用 sudo -s 命令4.5 退出切换的用户4.6 查看当前用户4.7 su 和 sudo 的区别4.8 实际应用场景4.8.1 临时切换到 root 执行管理任务4.8.2 切换到普通用户测试4.8.3 以其他用户身份运行服务4.9 安全注意事项5. 完整创建用户流程示例5.1 使用 useradd 的完整流程5.2 使用 adduser 的完整流程6. 高级选项6.1 指定用户 ID 范围6.2 创建用户时指定多个附加组6.3 设置用户过期时间7. 相关配置文件7.1 用户信息文件7.2 默认设置文件8. 删除用户8.1 删除用户但保留主目录8.2 删除用户及其主目录9. 修改用户信息9.1 使用 usermod 命令10. 注意事项11. 常见问题排查11.1 用户无法登录11.2 查看用户所属组11.3 查看所有用户1. 使用 useradd 命令（推荐）1.1 基本语法useradd [选项] 用户名1.2 常用选项-m 或 --create-home: 创建用户主目录-d 或 --home-dir HOME_DIR: 指定用户主目录路径-s 或 --shell SHELL: 指定用户的默认 shell-g 或 --gid GROUP: 指定用户的主要组-G 或 --groups GROUPS: 指定用户的附加组（多个组用逗号分隔）-u 或 --uid UID: 指定用户 ID-c 或 --comment COMMENT: 添加用户注释（通常是全名）1.3 示例# 创建用户并自动创建主目录 sudo useradd -m username # 创建用户并指定 shell sudo useradd -m -s /bin/bash username # 创建用户并指定主目录 sudo useradd -m -d /home/customdir username # 创建用户并指定组 sudo useradd -m -g users -G sudo,www-data username # 创建用户并指定 UID sudo useradd -m -u 1001 username # 创建用户并添加注释 sudo useradd -m -c "User Full Name" username2. 使用 adduser 命令（交互式，Debian/Ubuntu）2.1 基本用法sudo adduser username2.2 特点交互式创建用户自动创建主目录自动设置密码自动创建同名组提示输入用户信息（全名、房间号、工作电话等）2.3 示例# 交互式创建用户 sudo adduser username # 非交互式创建用户（跳过提示） sudo adduser --disabled-password --gecos "" username3. 创建用户后的必要操作3.1 设置密码# 使用 passwd 命令设置密码 sudo passwd username3.2 赋予 sudo 权限（可选）# 方法1: 添加到 sudo 组 sudo usermod -aG sudo username # 方法2: 编辑 sudoers 文件 sudo visudo # 添加以下行： # username ALL=…