介绍
为了方便/效率不可避免的要使用一些命令行的软件, 有些是纯命令的, 有些是有 TUI 的
命令运行器
用它可以统一管理要运行的命令, 比如 npm, python, shell, cargo 等等
sh
just d # 执行 npm run dev
just b # 执行 npm run build
just r # 执行 rebuild.shtxt
alias d := dev
alias b := build
alias r := rebuild
dev:
npm run dev
build:
npm run build
rebuild:
./rebuild.shsh
#!/bin/bash
if [[ -d "./build" ]]; then
rm -rf "./build"
fi
if [[ -f "./build.zip" ]]; then
rm -rf "./build.zip"
fi
mkdir "./build"
npm run build
mv dist ./build/
cp -r Dockerfile docker-compose.yaml README.md ./build
zip ./build.zip -r ./build监听文件变化重新执行命令
使用它 + justfile 完成可以替代 nodemon 的功能
sh
# --restart: 强制重新执行命令(npm run dev)
# --debounce 200ms: 限制重启的频率
# --exts: 监听特定文件后缀的文件变化(可以是多个: -e html,css,js)
# --watch: 递归的监听一个目录(或者个一个文件), 缩写: -w, -W:表示不递归
# 'npm run dev': 监听到文件变化后, 要执行的命令字符串
watchexec --restart --debounce 200ms --exts md --watch ./docs 'npm run dev'
静态文件服务器
- static-web-server 一个类似 vscode live-server 插件的命令行工具, Rust编写, 速度飞快
- miniserve 一个类似 filebrowser 的工具, 启动一个服务, 并且将当前工作目录的文件列出来, 可供其他设备访问和下载
多数据库命令行客户端
TUI git 客户端
- gitui rust 编写, 速度飞快, 但是我认为功能不如 lazygit 全面
- lazygit go 编写, 速度很快, 功能全面, 大名鼎鼎
- cz-git 编写符合规范的 git-commit 信息, 而且可以调用ai大模型接口自动生成 git-commit 信息
多语言环境管理
你可能使用过 nvm fnm uv pyenv 等等用于辅助开发的工具, 但是这些工具都有一个问题, 那就是它仅仅为一门编程语言量身定做的, 比如 fnm 只能管理 node 版本, 无法管理 python 版本 虽然他们都很优秀而且小巧且强大, 但是如果有一个工具可以同时管理多个语言的版本就更好了
- nvm 专为 node.js 设计, 用 shell 编写, windows 版本
- fnm 专为 node.js 设计, 用 Rust 编写, 速度飞快, 可兼容多个操作系统
- asdf 老牌多语言环境管理工具, 由 shell 编写
- mise 由 Rust 编写的, 兼容 asdf 的新兴环境管理工具
多下载工具镜像设置
由于很多编程社区的代码库的服务器都存在国外服务器, 在中国访问速度比较慢
| 工具 | 状态 | 配置文件路径 | 备注 |
|---|---|---|---|
| pip (Python) | ✅ 支持 | ~/.pip/pip.conf (Linux/Mac) | 支持 venv 及全局配置 |
| uv (Python) | ✅ 支持 | uv.toml | 优先项目级配置,其次全局 |
| conda (Python) | ✅ 支持 | ~/.condarc | 自动配置 channels |
| npm (Node.js) | ✅ 支持 | ~/.npmrc | |
| docker | ✅ 支持 | /etc/docker/daemon.json | 需 sudo 权限 |
| apt (Ubuntu/Debian) | ✅ 支持 | /etc/apt/sources.list | 智能替换域名,需 sudo |
| cargo (Rust) | ✅ 支持 | ~/.cargo/config.toml | 替换 crates.io 索引 |
| go (Golang) | ✅ 支持 | 环境变量 (GOPROXY) | 使用 go env 管理 |
| brew (Homebrew) | ✅ 支持 | 环境变量 | 提供 export 命令提示 |