使用Yadm管理Linux配置文件
今年暑假看Missing-course的时候开始意识到备份Linux配置文件的重要性,以后即使切换机器也可以很容易的恢复自己喜欢的编程环境。在简单搜索了几个方式以后,决定使用yadm作为管理工具,并且写了一个模板,便于分享和使用。
使用说明
该仓库的主要用途为使用yadm作为管理工具,通过Github来同步自己的Dotfiles
先在自己当前环境下安装
yadm,具体安装说明参照Installation通过
Use this template或者下载源码的方式,创建并上传到自己的一个仓库中,最好是Private类型在本身没有经过配置
Dotfiles的环境下(或提前备份好自己的Dotfiles)输入以下指令拉取模板到本地进行管理1
yadm clone https://github.com/<your id>/<your repository> --bootstrap在附带
--boostrap的情况下执行完毕上述指令以后将会按默认模板文件使用git来对自己的Dotfiles进行管理
模板介绍
Bootstrap
在clone仓库的时候如果附带了bootstrap将会自动执行以下三件事
- 在以
apt/yum/pacman作为包管理器的情况下安装zsh vim tmux curl wget openssl - 安装
oh-my-zsh,并以p10k为主题。安装zsh-autosuggestions,zsh-syntax-highlighting和zsh-proxy三个插件 - 切换
zsh为当前用户的默认终端
配置文件
.ssh/config
- 取消了域名指纹检查,不需要输入yes同意首次链接
.zshrc
- 配置了
rust国内镜像 - 添加了transfer用于分享文件(输入
transfer /path/to/file即可) - 使用
pws作为powershell.exe的alias,便于wsl环境下使用powershell - 启用了
vi的normal模式,在输入命令的时候按Esc即可
.vimrc
- 参考missing-semster
- 为了便于作为
wsl环境使用,在Windows Terminal下复制粘贴,关闭了鼠标功能
.cargo
- 配置好了
cargo镜像库
gitconfig
- 配置默认使用
~/.gitignore作为全局ignore`文件 - 在使用
https时的验证交由.git-credentials文件纯文本保存密码(有风险,可加密)
加密使用
对于类似.ssh/id_rsa或者.git-credentials文件可以通过yadm自带的encrypt工具进行加密,使用步骤如下
在
.config/yadm/encrypt文件内写入需要加密的文件路径,支持正则匹配假设在
.ssh/目录下所有文件(例如config, id_rsa)都需要进行加密,则在.config/yadm/encrypt写入.ssh/*后输入以下指令(安装openssl为前提)1
yadm encrypt则会要求输入一个密码来进行加密
加密完则会在
.local/share/yadm目录下产生一个archive作为加密打包后的文件,将该文件添加并上传到Github虽然加密文件本身有一定安全性,但为了保险起见还是推荐使用
Private仓库来存储自己的Dotfiles1
2
3yadm add ~/.local/share/yadm/archive
yadm commit -m "add encrypt archive"
yadm push原本的文件此时将会依旧本地存在于(例如
config, id_rsa),但不需要上传到Github当中在下次重装系统/更换环境的时候,如果需要通过
yadm对环境进行复原并解密加密文件,则只需要输入以下指令1
yadm decrypt就会将加密打包的文件解密到对应的文件目录,保证一定的安全性