gpt4 book ai didi

shell - 在多台机器上保持 shell 配置同步

转载 作者:行者123 更新时间:2023-12-04 03:18:17 24 4
gpt4 key购买 nike

我是一个非常活跃的命令行用户,我到处都有 shell 帐户。 MacBook、Linux 台式机、Linux 服务器、XP 上的 Cygwin,应有尽有。

如何使用所有平台上可用的有限工具使我的 shell 配置(.bashrc.vimrc 等)在所有这些机器上保持同步?

我一直在使用rsync以一种非常有限的方式,包括在需要时手动复制一些文件,但我想要一种标准方法来在我的所有机器上设置相同的基本 shell 环境。告诉我你的 shell 账户管理策略。

最佳答案

我在 Dropbox 上有具有全局、每个操作系统和每个机器 shell 配置的文件夹:

$ ls ~/Dropbox/shell/bash
bashbootstrap bashrc
bashrc-Darwin bashrc-Darwin-laptopname bashrc-Darwin-mininame
bashrc-Linux bashrc-Linux-machineone bashrc-Linux-machinetwo
bashrc加载到每台机器上, bashrc-Linux , bashrc-Darwin加载在各自的操作系统上,并且几个配置特定于各个机器。 (顺便说一下,Darwin 是 OS X 的类似 BSD 的内核的名称。)

将这一切联系在一起的是 bashbootstrap文件。它以增加特定性的顺序加载每个适用的配置文件,这允许每个操作系统和每个机器覆盖具有更高的优先级。此外,我们默默地跳过丢失的配置文件;你不需要为每台机器创建空配置文件来保持脚本的运行。

在新机器上,在 ~/Dropbox 上安装 Dropbox 后, 我移开默认 .bashrc而只是在其位置符号链接(symbolic link)引导文件:
$ mv ~/.bashrc ~/.bashrc.bak
$ ln -s ~/Dropbox/shell/bash/bashbootstrap ~/.bashrc

哦,这里是 bashbootstrap 的内容文件:
if [ -z "$PS1" ]; then
return
fi

dropboxshelldir=~/Dropbox/shell
dropboxdir=$dropboxshelldir/bash
masterbashrc=$dropboxdir/bashrc
osbashrc=$masterbashrc-`uname`
localbashrc=$osbashrc-`hostname | cut -d. -f1`

echo -n "Applicable shell configs: "
for bashfile in "$masterbashrc" "$osbashrc" "$localbashrc"; do
if [ -r $bashfile ]; then
. $bashfile
echo -n "`basename $bashfile` "
fi
done
echo

# Set convenience aliases
myed=${VISUAL:-${EDITOR:-vim}}
alias editbashrc="$myed $masterbashrc"
alias editosbashrc="$myed $osbashrc"
alias editlocalbashrc="$myed $localbashrc"

最后一点,这个脚本还提供了三个方便的别名来编辑你的 Bash 配置文件,而不必记住它们的存储位置。
  • editbashrc : 编辑全局配置文件。
  • editosbashrc : 编辑特定于操作系统的配置文件。
  • editlocalbashrc : 编辑特定于机器的配置文件。

  • 我只在 Bash 上对此进行了测试,但它可以在其他 Bash 等 shell 上运行。但是,正如他们所说,您的里程可能会有所不同。

    我为此发表了一篇博文 here .

    关于shell - 在多台机器上保持 shell 配置同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/218255/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com