如何跨多台计算机和 shell 管理配置?

如何跨多台计算机和 shell 管理配置?

我是一名经常出差的技术专家,并不总是与家庭服务器建立可靠的连接。我倾向于在自己的一些机器上在 zsh 和 bash 之间切换。

对于标准化 shell 别名和 shell 之间的变量,您有什么建议或建议?

答案1

基本的事情是将你的点文件置于版本控制之下。当您使用新机器时,请检查它们。

cd
git clone https://github.com/saterhater/home.git

如果计算机没有版本控制工具,您可能至少需要下载一个只读版本。 Github 自动化了这个过程;如果您使用不提供此类功能的其他主机,请将 zip 文件的生成作为提交挂钩。

cd
wget -O - https://github.com/saterhater/home/archive/master.zip | unzip -

至于文件的内容,您显然需要确保它们是可移植的。没有什么神奇的秘诀,只有一些技巧。

  • 确保在旧版本的 shell 下测试您的文件,而不仅仅是您正在使用的 shell。我一直使用较早的 Debian 版本进行 chroot获得各种软件的一系列版本(我的个人配置原则上应该适用于 bash 1.14 和 zsh 2.5,尽管我已经很多年没有使用过那么旧的版本了)。
  • 如果您依赖任何不常见的依赖项,请将其签入您的 VCS,或编写一些自动化程序来下载它。
  • 如果您想在某些功能存在时使用它,但在它不存在时保留后备,请测试该功能而不是测试版本号。它更强大(例如,某些系统可能有夜间构建)。

您可以在 bash 和 zsh 之间共享一些东西,主要是别名和一些函数。键绑定和提示设置不可共享。 Bash 完成功能可以与非旧版本的 zsh 一起使用。如果您有一些代码利用了 zsh 不执行的自动拆分和通配未加引号的变量,您可以运行emulate -L ksh以使 zsh 在函数执行期间切换到 ksh 兼容模式;如果 shell 不是 zsh,则创建emulate一个别名(您可以测试该变量是否存在)。:ZSH_VERSION

相关内容