【问题标题】:Syncing terminal setups across machines (VM, server, etc)跨机器(VM、服务器等)同步终端设置
【发布时间】:2015-01-29 11:00:38
【问题描述】:

我最近在我的机器上设置了 Vagrant,我注意到的第一件事是当我 ssh 到我的服务器时,我的终端配置没有同步。

例如,我将 shell 从 bash 更改为 zsh,这为我做了很多美妙的事情(比如删除区分大小写的自动完成)。但是在我的 vagrant 虚拟机上,或者在我的服务器上,所有这些很酷的东西现在都消失了。像我的重要别名之类的东西也没有同步。

现在,同步此类内容的正确方法是什么?

编辑:

因此,目前,当我在本地计算机上创建/删除/编辑别名时,我必须将完全相同的更改复制到我的 VM 和我经常使用的所有其他服务器中。我认为这是一项非常耗时且不必要的任务。

【问题讨论】:

  • 用户的默认 shell 由系统上的用户帐户配置控制(可以使用 chsh 更改或在用户创建时设置)。 shell 行为(别名等)由 shell 初始化脚本控制,这些脚本只是您主目录中的文件(.profile.bash_profile.bashrc.zshrc 等)。你可以复制那些。
  • 对我的问题添加了进一步的解释
  • 最近的一个趋势是使用 git(或其他一些版本控制系统)来对位于一个人的主目录中的各种 rc/config 文件进行版本控制。这样可以轻松地跨机器同步。
  • 有趣,您对此有什么进一步的了解吗?我对这一切完全陌生。
  • 在过去的几年里,互联网上出现了许多关于这个主题的博客文章。我不知道有什么特别的副手。我自己不这样做。

标签: bash shell vagrant


【解决方案1】:

我所做的是对我的点文件进行版本控制,并将它们保存在 github 上。点文件只是根目录中以点开头的文件,例如 .bashrc 或 .zshrc。它们是“不可见”的文件,因此您必须使用 ls -a 而不是 ls 才能看到它们。

这是我的点文件:https://github.com/aharris88/dotfiles

当我在一台新机器上时,我只是将存储库克隆到 ~/dotfiles 然后,我在那里有一个名为 setup.sh 的 bash 脚本,它将可能已经在根目录中的任何旧点文件备份到 ~/dotfiles_old 中。然后它会为 ~/dotfiles 中的文件创建符号链接。

它还会安装 zsh 和 oh-my-zsh(如果尚未安装)。它应该适用于 linux 或 mac os x。

这是一篇描述如何对您的点文件进行版本控制的文章:http://blog.smalleycreative.com/tutorials/using-git-and-github-to-manage-your-dotfiles/

我为准备好新的 mac 所做的另一件事是使用 kitchenplan:https://github.com/kitchenplan/kitchenplan,它可以同步更多设置,但这可能不是您要问的。这是我的厨房计划配置:https://github.com/aharris88/kitchenplan-config

【讨论】:

  • 真的很酷 - 感谢您的回答。您能否参考描述此内容的文章?或者我可以说服你写一篇关于这个主题的文章吗?我喜欢它自动安装 zsh 并设置你的别名。这正是我想要的开始。所有其他的东西(vim 等,似乎有点矫枉过正)。
  • 我添加了指向我的答案的链接
  • 至今仍在使用这个答案?谢谢
猜你喜欢
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多