在我的所有机器上保持我的 zsh 或 bash 配置文件同步

JP *_*shy 12 shell

我在几台不同的机器上工作。我有很多我喜欢我的 shell 的特定东西,或者提示看起来像,或者别名等。

您认为让我的所有机器外壳保持一致的最佳方法是什么?

首先,我知道不同的机器需要不同的路径到 bin 和其他差异,所以我的第一个倾向是在我的配置文件末尾包含一个文件,这是我们将保持同步的文件。

保持文件同步的最佳方法是什么?我可以将文件放在远程系统上,也许可以使用 git 来推送,然后每隔一段时间拉出我的更改。但是,Rsync 不是更适合于此吗?

Ser*_*sta 24

这就是我的做法:

  1. 我从来没有把真正的内容放在~/.bashrcor~/.bash_profile文件上,相反,这些文件只是指向保存在我的主文件夹子目录中的真实配置文件的符号链接,例如~/dotfiles/bashrcand ~/dotfiles/bash_profile

  2. ~/dotfiles使用 Git将文件夹置于源代码控制之下,并托管在 GitHub.com

  3. 当我安装一个新系统时,我只是将 GitHub 存储库克隆到一个新的本地~/dotfiles文件夹并创建所有符号链接(目前是手动的,尽管这一步应该很容易自动化)。

  4. 我对其他配置文件使用相同的过程,例如.hgrc(对于 Mercurial).vimrc和其他几个配置文件。

  5. 每当我编辑其中一个配置文件时,我只需提交并推送到 GitHub,然后拉入其他所有机器。

这仍然有点费力和手动,但我很满意。

这是我~/dotfiles文件夹的当前内容:

~/dotfiles
|-- bash
|   |-- aliases
|   |-- config
|   |-- env
|   `-- promptcolors
|-- bash_profile
|-- bashrc
|-- gitconfig
|-- gvimrc
|-- hg-templates
|   |-- map-cmdline.dlog
|   |-- map-cmdline.nlog
|   |-- map-cmdline.sglog
|   `-- map-cmdline.slog
|-- hgrc
|-- ssh
|   `-- config
|-- vim
|   |-- after
|   |-- colemak-mappings.vim
|   |-- colors
|   |-- doc
|   |-- filetype.vim
|   |-- ftplugin
|   `-- plugin
`-- vimrc
Run Code Online (Sandbox Code Playgroud)

我从伟大的 Peepcode高级命令行截屏视频(在我看来价值 9 美元)中窃取了这个想法。

这就是我保存我的 GitHub 存储库的地方,以防你想看一看。不要期待任何非常有趣的事情,我只是一个 bash/命令行新手。

http://github.com/sergio/dotfiles


小智 6

对于所有仍在尝试为这个问题寻找最佳解决方案的人,现在有一个非常积极维护的工具可以满足您的一切需求以及更多:https :
//github.com/lra/mackup

它远不止同步 zsh 或 bash 配置文件。它可以同步大量工具的设置。本质上,它使用与接受的答案相同的符号链接概念,但将其自动化,因此您只需要两个命令:

  1. mackup backup
  2. mackup restore