【Tools】chezmoi 跨多台不同的机器管理 dotfiles 的工具

chezmoi是一个跨多台不同的机器管理 dotfiles 的工具,方便每次在新的电脑/服务器的时候不用麻烦的重新配置一些 config 了

dotfile: 简言之就是应用程式的 config,例如~/.vimrc就是dotfile。Linux万物皆文件,Linux 文件名以点开头就会变成隐藏文件,一般也是配置文件,不让一般使用者看到。

1 安装

安装带自定义路径中:

bash 复制代码
sh -c "$(wget -qO- chezmoi.io/getlb)" -- -b $HOME/.local/bin

但是一般由于网络问题连不上,请开启代理,或者配置代理之后使用 proxy 命令:

bash 复制代码
sh -c "$(proxy wget -qO- chezmoi.io/getlb)" -- -b $HOME/.local/bin

由于是自定义安装路径在 $HOME/.local/bin ,所以在 .bashrc 或者 .zshrc 中加入PATH:

bash 复制代码
# echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# source ~/.bashrc
source ~/.zshrc

2 使用

  1. 初始化 chezmoi

    bash 复制代码
    chezmoi init

    这会在 ~/.local/share/chezmoi 中创建一个新的 Git 本地仓库,chezmoi 将在此存储其源状态。

  2. 添加要管理的第一个文件:如将 ~/.bashrc 文件交给 chezmoi 管理

    bash 复制代码
    chezmoi add ~/.bashrc

    ~/.bashrc 会被复制到 ~/.local/share/chezmoi/dot_bashrc

  3. 查看和应用更改

    查看 chezmoi 将对文件系统做出的更改:

    bash 复制代码
    chezmoi diff

    然后应用更改到文件系统:

    bash 复制代码
    chezmoi -v apply
  4. 提交更改到 Git:进入 chezmoi 的源目录使用 Git 提交更改

    bash 复制代码
    chezmoi cd
    git add .
    git commit -m "Initial commit"
  5. 推送到 GitHub:先创建一个名为 dotfiles 的 GitHub 仓库,然后运行以下命令,将 dotfiles 推送到远程仓库:

    bash 复制代码
    git remote add origin git@github.com:$GITHUB_USERNAME/dotfiles.git
    git branch -M main
    git push -u origin main

3 设置新机器

直接通过一行命令即可将在 Github 上的已有的 dotfile 存储库配置到这台新机器上:

bash 复制代码
chezmoi init --apply https://github.com/$GITHUB_USERNAME/dotfiles.git
相关推荐
looking_for__5 分钟前
【Linux】应用层自定义协议与序列化
linux·服务器·网络
云中飞鸿5 分钟前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
唐梓航-求职中5 分钟前
技术-算法-leetcode-1606. 找到处理最多请求的服务器(易懂版)
服务器·算法·leetcode
晚风_END10 分钟前
Linux|操作系统|elasticdump的二进制方式部署
运维·服务器·开发语言·数据库·jenkins·数据库开发·数据库架构
嵌入小生00710 分钟前
Standard IO -- Continuation of Core Function Interfaces (Embedded Linux)
linux·vim·嵌入式·标准io·vscode
Zach_yuan12 分钟前
传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制
linux·网络协议·tcp/ip·udp
独自归家的兔13 分钟前
Ubuntu 系统 systemd timers 详解:替代 crontab 的定时任务进阶方案
linux·运维·ubuntu
Lsir10110_14 分钟前
【Linux】深入解剖页表——分页式存储
linux·运维·服务器
victory043114 分钟前
服务器病毒处理记录
运维·服务器·chrome
爱吃生蚝的于勒15 分钟前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim