一个简单 & 可扩展的,用于统一终端操作的 dotfile 管理工具
对 macOS / Linux(Intel)
export OXIDIZER=$HOME/oxidizer
git clone --depth=1 https://github.com/ivaquero/oxidizer.git $OXIDIZER && bash $OXIDIZER/install.sh
- 对中国大陆用户,可设置
BREW_CN
变量来下载安装 Homebrew:
export BREW_CN=1
对 Windows
$env:OXIDIZER = "$HOME\oxidizer"
git clone --depth=1 https://github.com/ivaquero/oxidizer.git $env:OXIDIZER; . $env:OXIDIZER\install.ps1
对于 Cmder 用户,你需要删除
%CMDER_ROOT%\vendor\profile.ps1
的最后一行Set-Item -Path function:\prompt -Value $Prompt -Options ReadOnly
中的-Options ReadOnly
。
安装之后,您可以在custom.sh
中个性化您的系统环境(请参考defaults.sh,通过一下命令打开
edf ox
可使用 upox
命令来更新 Oxidizer
Oxidizer 起初主要为非管理员用户设计,用于快速搭建跨平台统一的工作环境,避免重复和繁琐的环境配置劳动,其具有特点
- 跨平台(主要基于 Rust 工具链)
- 最少依赖 & 最少安装
- 可扩展架构
- 统一接口 & 丝滑操作
- 超级快!(载入时间 < 1 秒)
☑️ 表示默认安装
- coreutils
- 使用 bat 替换
cat
- 使用 lsd 替换
ls
- 使用 uutils-coreutils 替换
coreutils
- 使用 bat 替换
- non-coreutils
更推荐
WezTerm
,自带分屏器
插件位于 oxplugins 和 oxplugins-powershell。
插件缩写 | 类别 | macOS | 自动加载? |
---|---|---|---|
oxpbg |
推荐 | Git | |
oxpom |
系统快捷操作 | macOS | ✓ |
oxpod |
系统快捷操作 | Debian-Based Systems | ✓ |
oxpor |
系统快捷操作 | RedHat-Based Systems | ✓ |
oxpow |
系统快捷操作 | Windows(包括 winget) | ✓ |
oxppb |
包管理器 | Homebrew(macOS & Linux) | ✓ |
oxpps |
包管理器 | Scoop(Windows) | ✓ |
oxppc |
包管理器 | Conda(多语言,主要是 Python) | |
oxppn |
包管理器 | NPM + PNPM(JavaScript) | |
oxpppx |
包管理器 | Pixi(多语言,主要是 Python) | |
oxpptl |
包管理器 | tlmgr(TeXLive) | |
oxpljl |
编程语言 | Julia | |
oxplrb |
编程语言 | Ruby(包括 gem) | |
oxplrs |
编程语言 | Rust(包括 cargo, rustup) | |
oxpcbw |
软件的命令行界面 | Bitwarden | |
oxpces |
软件的命令行界面 | Espanso | |
oxpcjr |
软件的命令行界面 | Jupyter(notebook, lab, book) | |
oxpcol |
软件的命令行界面 | Ollama | |
oxpcvs |
软件的命令行界面 | VSCode | |
oxpuf |
系统工具 | 文件操作 | ✓ |
oxpufm |
系统工具 | 格式转换 | |
oxpunw |
系统工具 | 网络配置 | ✓ |
oxptwr |
终端工具 | 天气(基于 wttr) | |
oxptzj |
终端工具 | Zellij(macOS & Linux) | |
oxpxns |
其他 | 笔记备份(Obsidian & Logseq) |
将对应的缩写放入 ~/oxidizer/custom.sh
的 OX_PLUGINS
即可加载插件
OX_PLUGINS=(
oxpbg
oxpufm
oxplrs
)
Oxidizer 通过 Homebrew
或 Scoop
管理包和软件,以绕过管理员权限的要求。
rff
- 通过
source
刷新
- 通过
edf
- 通过
$EDITOR
编辑(默认:VSCode)
- 通过
brf
- 通过
bat
/cat
浏览文件 - 文件夹:通过
lsd
/ls
浏览
- 通过
rdf
(reduce file)- 还原文件:在
$OX_OXIDE
中覆盖对应的$OX_ELEMENT
文件配置
- 还原文件:在
oxf
(oxidize file)- 氧化文件:在
$OX_ELEMENT
中覆盖对应的$OX_OXIDE
文件配置
- 氧化文件:在
clzf
(catalyze file)- 催化文件:在
$OX_OXYGEN
中覆盖对应的$OX_ELEMENT
文件配置
- 催化文件:在
ppgf
(propagate file)- 传播文件:在
$OX_OXYGEN
中覆盖对应的$OX_OXIDE
文件配置
- 传播文件:在
例如,当你想编辑 ~/.zshrc
,键入 edf zs
。
当你使用 oxf zs
,~/.zshrc
会被复制并保存到 $OX_BACKUP/shell
文件夹。其中,$OX_BACKUP
是可以在 $OXIDIZER/custom.sh
中自定义的备份路径。通过 edf ox
即可轻松打开 custom.sh
文件。
下表罗列了每个配置文件的缩写:
来源 | 代号 | 对应文件 | 定义扩展 |
---|---|---|---|
oxidizer | ox |
custom.sh |
|
zsh | zs |
.zshrc |
built-in |
starship | ss |
starship.toml |
built-in |
wezterm | wz |
wezterm.lua |
custom.sh |
debian | sc |
/etc/apt/sources.list |
oxpod |
scoop | w |
config.json |
oxpps |
winget | w |
settings.json |
oxpow |
git | gi |
.gitignore |
oxpbg |
git | g |
.gitconfig |
oxpbg |
conda | c |
.condarc |
oxppc |
javascript | jsx |
js-pkgs.txt |
oxppn |
npm | n |
.npmrc |
oxppn |
latex | tl |
texlive-pkgs |
oxpptl |
cargo | cg |
config.toml |
oxlrs |
rustup | rs |
settings.toml |
oxlrs |
espanso | es |
default.yml |
oxpces |
espanso | esb |
match/base.yml |
oxpces |
espanso | esx_ |
match/packages |
oxpces |
vscode | vs |
settings.json |
oxpcvs |
vscode | vsk |
keybindings.json |
oxpcvs |
vscode | vss_ |
snippets |
oxpcvs |
vscode | vsx |
vscode-pkgs.txt |
oxpcvs |
jupyter | jr |
jupyter_notebook_config.py |
oxpcjr |
zellij | zj |
config.kdl |
oxptzj |
zellij | zjl_ |
layouts |
oxptzj |
_
表示文件夹,你可以详细查看每个相关文件缩写 these abbreviations closely bybrf [Plugin Abbr.]
oredf [Plugin Abbr.]
.
Oxidizer 使用 ouch 压缩或解压缩文件,提供 3 个快捷命令
zpf
:压缩uzpf
:解压缩lzpf
:显示压缩文件中的内容
back_*
- 文件:将配置文件保存至自定义文件夹
$OX_BACKUP
- 文件:将配置文件保存至自定义文件夹
up_*
- 文件:根据自定义文件夹
$OX_BACKUP
中的配置文件安装
- 文件:根据自定义文件夹
clean_*
- 文件:根据自定义文件夹
$OX_BACKUP
中的配置文件清理
- 文件:根据自定义文件夹
back_*
和 up_*
适用于 brew
,scoop
,conda
,vscode
,espanso
,julia
,tlmgr
,npm
;clean_*
适用于 brew
,conda
。
Oxidizer 致力于为各个包管理器提供统一的接口,以减轻敲击和记忆负担。
后缀 | 操作 | brew b |
scoop s |
conda c |
npm n |
cargo cg |
rustup rs |
julia jl |
pixi px |
gem rb |
tlmgr tl |
---|---|---|---|---|---|---|---|---|---|---|---|
*h |
help | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
*cf |
config | ✅ | ✅ | ✅ | ✅ | ||||||
*is |
install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
*us |
uninstall | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
*up |
update | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
*ups |
update self | ✅ | ✅ | ✅ | |||||||
*ls |
list | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
*lv |
leaves | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
*sc |
search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
*cl |
clean | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
*if |
info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||
*st |
status | ✅ | ✅ | ✅ | ✅ | ||||||
*ck |
check | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
*pn |
pin | ✅ | ✅ | ✅ | |||||||
*upn |
unpin | ✅ | ✅ | ✅ | |||||||
*dp |
depends | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||
*dpr |
needs | ✅ | ✅ | ||||||||
*xa |
add repo | ✅ | ✅ | ✅ | |||||||
*xrm |
remove repo | ✅ | ✅ | ✅ | |||||||
*xls |
list repo | ✅ |
一些包管理器还有项目管理功能
后缀 | 操作 | brew b |
scoop s |
conda c |
npm n |
cargo cg |
rustup rs |
julia jl |
pixi px |
gem rb |
---|---|---|---|---|---|---|---|---|---|---|
*ii |
init | ✅ | ✅ | ✅ | ✅ | |||||
*cr |
create | ✅ | ✅ | ✅ | ✅ | |||||
*b |
build | ✅ | ✅ | ✅ | ||||||
*r |
run | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
*ed |
edit | ✅ | ||||||||
*ct |
cat | ✅ | ✅ | ✅ | ||||||
*ln |
link | ✅ | ||||||||
*ts |
test | ✅ | ✅ | ✅ | ✅ | |||||
*au |
audit | ✅ | ✅ | |||||||
*fx |
fix | ✅ | ✅ | ✅ | ||||||
*pb |
publish | ✅ | ✅ |
部分快捷命令被包含在对应的系统扩展中
ox-os-macos
oxpm
:自启动,包含mas
ox-os-debians
oxpd
:自启动,包含apt
ox-os-windows
oxpw
:自启动,包含winget
、wsl
·
后缀 | 对应操作 | mas m |
apt a |
winget w |
wsl wsl |
---|---|---|---|---|---|
*h |
help | ✅ | ✅ | ✅ | ✅ |
*is |
install | ✅ | ✅ | ✅ | ✅ |
*us |
uninstall | ✅ | ✅ | ✅ | ✅ |
*up |
update | ✅ | ✅ | ✅ | ✅ |
*ups |
update self | ✅ | ✅ | ✅ | |
*ls |
list | ✅ | ✅ | ✅ | |
*lv |
leaves | ||||
*sc |
search | ✅ | ✅ | ||
*cl |
clean | ✅ | ✅ | ✅ | |
*if |
info | ✅ | ✅ | ✅ | |
*st |
status | ✅ | |||
*ck |
check | ✅ | |||
*dp |
depends | ✅ | |||
*xa |
add repo | ✅ | ✅ | ||
*xrm |
remove repo | ✅ | ✅ | ||
*xls |
list repo | ✅ | ✅ |
bris
:brew reinstall 重装bup
:brew upgrade 更新
前缀 c
是一个标志用来严格限制 brew 命令只针对的 casks 操作
-
bisc
:安装 cask -
brisc
:重装 cask -
bupc
:升级 cask -
brp [cask]
:适用于下载文件替换缓存中的 brew cask
请注意,Conda 插件基于 mamba
和 conda-tree
包,需要预先安装
conda install -c conda-forge mamba conda-tree
除了上面包管理提及的 Conda 命令,Conda 插件还提供了 Conda 环境管理的快捷命令,均以 ce
开头
cerat
: 重启环境,类似ceat
ceq
: 退出环境(q
代表kill/quit
)cecr
: 创建环境cerm
: 删除环境,类似ceat
但不删除base
环境cels
: 环境包列表cedf
: 对比环境cern
: 重命名环境cesd
: 改变架构conda-forge subdir
i
: 对osx-64
或linux-64
或win-64
a
: 对osx-arm64
或linux-aarch64
huowin-arm64
p
: 对ppc64le
s
: 对linux-s390x
ceep
: 导出环境
-
gclhs
:删除提交历史
这个项目在 GPL-v3 许可下发布