Hi, 这里是我的博客

记录一些技术笔记和日常

tmux 使用入门

SSH 进服务器干活,断开连接任务就中断了,用 tmux 可以解决这个问题。顺便整理一下常用操作。 安装 # Arch Linux sudo pacman -S tmux # Debian/Ubuntu sudo apt install tmux 核心概念 Session(会话) └── Window(窗口) └── Pane(窗格) Session:一个独立的工作空间,断开 SSH 后依然在后台运行 Window:Session 里的标签页 Pane:Window 里的分割区域 前缀键 tmux 所有快捷键都要先按前缀键,默认是 Ctrl + b。后面用 <prefix> 表示。 Session 操作 # 新建 session tmux tmux new -s work # 指定名称 # 查看所有 session tmux ls # 接入 session(断开后重连) tmux attach tmux attach -t work # 接入指定 session # 在 tmux 内分离(不关闭,后台运行) <prefix> d # 重命名 session <prefix> $ # 关闭 session tmux kill-session -t work Window 操作 <prefix> c 新建窗口 <prefix> w 列出所有窗口 <prefix> n 下一个窗口 <prefix> p 上一个窗口 <prefix> 0-9 跳转到指定编号的窗口 <prefix> , 重命名当前窗口 <prefix> & 关闭当前窗口 Pane 操作 <prefix> % 垂直分割(左右) <prefix> " 水平分割(上下) <prefix> 方向键 切换 pane <prefix> z 最大化/恢复当前 pane <prefix> x 关闭当前 pane <prefix> { 把当前 pane 向左移动 <prefix> } 把当前 pane 向右移动 调整 pane 大小:按住 <prefix> 不放,再按方向键。 ...

April 28, 2026 · 2 min · waawo

VPS 初始化配置清单

每次拿到新 VPS 都要做一遍同样的事,整理成清单备用。 1. 更换 root 密码 拿到机器第一件事: passwd 2. 更新系统 # Debian/Ubuntu apt update && apt upgrade -y # 安装常用工具 apt install -y curl wget git vim htop ufw fail2ban 3. 创建普通用户 不要直接用 root 操作: adduser waawo usermod -aG sudo waawo # 切换到新用户 su - waawo 4. 配置 SSH 密钥登录 在本机生成密钥(如果还没有的话): ssh-keygen -t ed25519 -C "your@email.com" 把公钥上传到服务器: ssh-copy-id waawo@your-server-ip 或者手动复制 ~/.ssh/id_ed25519.pub 内容到服务器的 ~/.ssh/authorized_keys。 5. 禁用 SSH 密码登录 确认密钥登录正常后,再修改 /etc/ssh/sshd_config: ...

March 30, 2026 · 1 min · waawo

Nginx 配置笔记

Nginx 配置写多了有些细节总记不住,统一整理在这里。 安装 # Debian/Ubuntu sudo apt install nginx # Arch Linux sudo pacman -S nginx # 启动 sudo systemctl enable --now nginx 配置文件结构 /etc/nginx/ ├── nginx.conf # 主配置文件 ├── conf.d/ # 通常在这里放站点配置 └── sites-enabled/ # 部分发行版用这个目录 nginx.conf 主体结构: worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; include conf.d/*.conf; } 静态站点 server { listen 80; server_name example.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } } HTTPS 配置 有了证书之后: ...

February 22, 2026 · 2 min · waawo

Docker 基础使用备忘

Docker 命令总是记了忘忘了查,干脆整理一份备忘。 安装 Arch Linux 上直接用 pacman: sudo pacman -S docker docker-compose sudo systemctl enable --now docker # 把当前用户加入 docker 组,避免每次都 sudo sudo usermod -aG docker $USER # 需要重新登录才生效 镜像操作 # 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx docker pull nginx:1.25 # 指定版本 # 查看本地镜像 docker images # 删除镜像 docker rmi nginx docker rmi $(docker images -q) # 删除所有镜像 容器操作 # 运行容器 docker run nginx # 前台运行 docker run -d nginx # 后台运行 docker run -d -p 8080:80 nginx # 映射端口 docker run -d -p 8080:80 --name web nginx # 命名容器 # 进入容器 docker exec -it web bash docker exec -it web sh # 如果没有 bash # 查看容器 docker ps # 运行中的容器 docker ps -a # 所有容器(含已停止) # 停止 / 启动 / 删除 docker stop web docker start web docker rm web docker rm -f web # 强制删除(运行中也能删) # 查看日志 docker logs web docker logs web -f # 实时跟踪 docker logs web --tail 50 # 最后 50 行 数据卷 容器删了数据就没了,用 volume 持久化: ...

January 16, 2026 · 2 min · waawo

Neovim 配置折腾记录

用了好几年 Vim,去年开始切到 Neovim,体验好了不少。把配置思路记下来,省得下次重装又要从头找。 为什么换 Neovim 原生 Lua 配置,比 Vimscript 好写好读 内置 LSP 支持,不需要装 coc.nvim 之类的大插件 异步渲染,不卡 社区活跃,插件生态比 Vim 好很多 配置目录结构 Neovim 的配置放在 ~/.config/nvim/,我用的结构: ~/.config/nvim/ ├── init.lua # 入口文件 └── lua/ ├── core/ │ ├── options.lua # 基础选项 │ ├── keymaps.lua # 快捷键 │ └── autocmds.lua # 自动命令 └── plugins/ ├── init.lua # 插件列表(lazy.nvim) ├── lsp.lua # LSP 配置 ├── treesitter.lua # 语法高亮 └── ... 包管理器:lazy.nvim 目前最好用的 Neovim 插件管理器,支持懒加载,启动速度快。 init.lua 里引导安装: local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup("plugins") 基础选项 -- lua/core/options.lua local opt = vim.opt opt.number = true -- 显示行号 opt.relativenumber = true -- 相对行号 opt.tabstop = 4 opt.shiftwidth = 4 opt.expandtab = true opt.smartindent = true opt.wrap = false -- 不折行 opt.cursorline = true -- 高亮当前行 opt.termguicolors = true -- 真彩色 opt.signcolumn = "yes" -- 始终显示符号列,避免跳动 opt.scrolloff = 8 -- 光标距顶/底保持 8 行 opt.clipboard = "unnamedplus" -- 与系统剪贴板共享 常用插件 插件 用途 nvim-treesitter 语法高亮和代码结构解析 nvim-lspconfig LSP 配置框架 nvim-cmp 自动补全 telescope.nvim 模糊搜索文件/内容 neo-tree.nvim 文件树 gitsigns.nvim Git 行内标记 lualine.nvim 状态栏 tokyonight.nvim 配色方案 LSP 配置 先装语言服务器,以 Python 为例: ...

December 20, 2025 · 2 min · waawo

Git 日常工作流整理

Git 命令很多,但日常真正用到的就那么几十个,整理一下。 基础配置 刚装好先配置用户信息: git config --global user.name "waawo" git config --global user.email "your@email.com" # 默认分支名改为 main git config --global init.defaultBranch main # 中文文件名不转义 git config --global core.quotepath false 日常操作 # 查看状态 git status git status -s # 简短格式 # 暂存 git add . # 暂存所有 git add src/ # 暂存指定目录 git add -p # 交互式选择要暂存的内容(很好用) # 提交 git commit -m "feat: add user login" git commit --amend # 修改最后一次提交 # 查看历史 git log --oneline git log --oneline --graph # 图形化分支视图 git log -p filename # 查看某个文件的改动历史 分支操作 # 新建并切换 git switch -c feature/login # 切换已有分支 git switch main # 删除分支 git branch -d feature/login # 已合并才能删 git branch -D feature/login # 强制删除 # 查看所有分支 git branch -a 远程操作 # 拉取 git pull # fetch + merge git pull --rebase # fetch + rebase(历史更干净) # 推送 git push origin main git push -u origin feature/login # 首次推送并设置上游 # 查看远程 git remote -v 撤销和回滚 这块最容易混淆,记清楚: ...

November 25, 2025 · 2 min · waawo

systemd 常用命令备忘

用了这么久 Linux 还是会偶尔忘 systemd 的命令,干脆整理一份留着查。 服务管理 # 启动 / 停止 / 重启服务 systemctl start nginx systemctl stop nginx systemctl restart nginx # 重新加载配置(不中断服务) systemctl reload nginx # 查看服务状态 systemctl status nginx # 开机自启 / 禁用自启 systemctl enable nginx systemctl disable nginx # 同时启动并设置开机自启 systemctl enable --now nginx 查看日志 systemd 用 journald 统一管理日志,告别满地散落的 log 文件: # 查看某个服务的日志 journalctl -u nginx # 实时跟踪日志(相当于 tail -f) journalctl -u nginx -f # 查看最近 100 行 journalctl -u nginx -n 100 # 查看某个时间段的日志 journalctl -u nginx --since "2025-10-01" --until "2025-10-18" # 查看本次启动以来的日志 journalctl -u nginx -b # 查看内核日志 journalctl -k 系统状态 # 查看所有运行中的服务 systemctl list-units --type=service --state=running # 查看启动失败的服务 systemctl --failed # 查看系统资源占用(类似 top,但按 cgroup 分组) systemd-cgtop 定时任务 systemd timer 可以替代 cron,优点是能用 journalctl 查日志。 ...

October 18, 2025 · 1 min · waawo

Arch Linux 安装完成后我做了哪些事

装完 Arch 之后每次都要重新折腾一遍,索性记下来备用。 更换国内镜像源 默认的镜像列表速度参差不齐,先换成国内的: # 自动选择最快的镜像 sudo reflector --country China --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist 如果没装 reflector,手动编辑也行,把中科大或清华的源放到最前面就够了。 安装 AUR 助手 官方源的软件有限,yay 是目前用得最多的 AUR 助手: sudo pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si 装完之后 yay 的用法和 pacman 基本一样,搜索、安装、更新都支持。 配置 zsh bash 够用但 zsh 体验更好,配合 oh-my-zsh 省去很多手动配置: sudo pacman -S zsh chsh -s /bin/zsh # 安装 oh-my-zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 常用插件: zsh-autosuggestions:命令补全提示 zsh-syntax-highlighting:语法高亮 z:快速跳转目录 在 .zshrc 的 plugins=() 里加上就行。 ...

September 12, 2025 · 1 min · waawo