📝 开发笔记

记录那些总是记不住的命令和配置流程

🆕 新设备环境配置

系统配置

OpenSkills 安装

# 安装 Anthropic 官方技能库
npx openskills install anthropics/skills

# 同步到 AGENTS.md
npx openskills sync -y

# 查看已安装的技能
npx openskills list

# 读取特定技能
npx openskills read skill-creator

Git 配置

# 配置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 配置 SSH Key
ssh-keygen -t ed25519 -C "your.email@example.com"
cat ~/.ssh/id_ed25519.pub  # 复制到 GitHub/GitLab

# 测试连接
ssh -T git@github.com

Node.js 环境

# 使用 nvm 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 安装 LTS 版本
nvm install --lts
nvm use --lts

# 配置 npm 国内镜像(可选)
npm config set registry https://registry.npmmirror.com

Docker 环境

# Ubuntu/Debian
curl -fsSL https://get.docker.com | bash
sudo usermod -aG docker $USER

# WSL2 环境
# 使用 Docker Desktop for Windows

# 验证安装
docker --version
docker compose version

常用工具

# 安装 zsh + oh-my-zsh
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 安装 fzf(模糊搜索)
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

# 安装 ripgrep(快速搜索)
sudo apt install ripgrep

# 安装 bat(更好的 cat)
sudo apt install bat

🐳 Docker 常用命令

容器

容器管理

# 启动服务
docker compose up -d

# 查看日志
docker compose logs -f [service-name]

# 停止服务
docker compose down

# 重启服务
docker compose restart [service-name]

# 进入容器
docker exec -it [container-name] bash

清理资源

# 删除所有停止的容器
docker container prune

# 删除未使用的镜像
docker image prune -a

# 删除未使用的卷
docker volume prune

# 清理所有未使用资源
docker system prune -a --volumes

镜像操作

# 构建镜像
docker build -t image-name:tag .

# 查看镜像
docker images

# 删除镜像
docker rmi image-name:tag

# 拉取镜像
docker pull image-name:tag

🦊 GitLab 运维

DevOps

GitLab 管理

# 查看状态
docker exec -it gitlab gitlab-ctl status

# 重启服务
docker exec -it gitlab gitlab-ctl restart

# 查看日志
docker exec -it gitlab gitlab-ctl tail

# 进入控制台
docker exec -it gitlab gitlab-rails console

Runner 配置

# 注册 Runner
docker exec -it gitlab-runner gitlab-runner register

# 查看 Runner 列表
docker exec -it gitlab-runner gitlab-runner list

# 验证 Runner
docker exec -it gitlab-runner gitlab-runner verify

备份恢复

# 创建备份
docker exec -it gitlab gitlab-backup create

# 恢复备份
docker exec -it gitlab gitlab-backup restore BACKUP=timestamp

# 备份配置文件(需单独备份)
# - /etc/gitlab/gitlab-secrets.json
# - /etc/gitlab/gitlab.rb

🌐 网络调试

网络

端口检查

# 查看端口占用
sudo lsof -i :PORT
sudo netstat -tuln | grep PORT

# 测试端口连通性
nc -zv host port
telnet host port

# 查看所有监听端口
sudo ss -tulpn

DNS 调试

# DNS 查询
nslookup domain.com
dig domain.com

# 查看 DNS 缓存
systemd-resolve --statistics

# 清除 DNS 缓存
sudo systemd-resolve --flush-caches

HTTP 调试

# curl 常用选项
curl -I https://example.com  # 只看 headers
curl -v https://example.com  # 详细输出
curl -L https://example.com  # 跟随重定向
curl -X POST -d "data" url   # POST 请求

# 测试 SSL 证书
openssl s_client -connect domain.com:443

🐧 Linux 常用命令

系统

文件操作

# 查找文件
find /path -name "filename"
fd filename  # 更快的 find

# 文件内容搜索
grep -r "pattern" /path
rg "pattern"  # 更快的 grep

# 批量重命名
rename 's/old/new/' *.txt

# 文件权限
chmod 755 file    # rwxr-xr-x
chmod 644 file    # rw-r--r--
chown user:group file

系统监控

# 进程监控
htop
ps aux | grep process

# 磁盘使用
df -h
du -sh *

# 内存使用
free -h

# 实时日志
tail -f /var/log/syslog
journalctl -f

文本处理

# awk 示例
awk '{print $1}' file.txt

# sed 替换
sed 's/old/new/g' file.txt

# 统计行数
wc -l file.txt

# 排序去重
sort file.txt | uniq

🔐 SSH 技巧

安全

SSH 配置

# ~/.ssh/config 配置示例
Host myserver
    HostName 192.168.1.100
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

# 使用配置
ssh myserver

SSH 隧道

# 本地端口转发
ssh -L local_port:remote_host:remote_port user@ssh_server

# 远程端口转发
ssh -R remote_port:local_host:local_port user@ssh_server

# 动态端口转发(SOCKS 代理)
ssh -D 1080 user@ssh_server

文件传输

# SCP 传输
scp file.txt user@host:/remote/path
scp -r folder/ user@host:/remote/path

# rsync 同步
rsync -avz --progress source/ user@host:/dest/
rsync -avz --delete source/ dest/  # 删除目标多余文件