Skip to content

介绍

为了方便/效率不可避免的要使用一些命令行的软件, 有些是纯命令的, 有些是有 TUI 的

命令运行器

用它可以统一管理要运行的命令, 比如 npm, python, shell, cargo 等等

sh
just d # 执行 npm run dev
just b # 执行 npm run build
just r # 执行 rebuild.sh
txt
alias d := dev
alias b := build
alias r := rebuild

dev:
  npm run dev

build:
  npm run build

rebuild:
  ./rebuild.sh
sh
#!/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'

watchexec

静态文件服务器

  • 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 的新兴环境管理工具

多下载工具镜像设置

由于很多编程社区的代码库的服务器都存在国外服务器, 在中国访问速度比较慢

  • nrm 可以为 npm/pnpm 换源, 使用国内镜像站下载
  • crm 可以为 cargo 换源, 使用国内镜像站下载
  • cmirror 可以为多个下载工具换源
工具状态配置文件路径备注
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 命令提示

Released under the MIT License.