Dropbox に、グローバル、OS ごと、およびマシンごとのシェル構成を含むフォルダーがあります。
$ 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
はそれぞれの OS にロードされ、いくつかの構成は個々のマシンに固有です。(ちなみに、Darwin は OS X の BSD ライクなカーネルの名前です。)
すべてを結び付けるのはbashbootstrap
ファイルです。適用可能な各構成ファイルを特異性の高い順にロードします。これにより、OS ごとおよびマシンごとのオーバーライドの優先度を高くすることができます。さらに、不足している構成ファイルをサイレントにスキップします。スクリプトを正常に保つために、マシンごとに空の構成ファイルを作成する必要はありません。
新しいマシンでは、Dropbox を にインストールした後~/Dropbox
、デフォルトを離れて、.bashrc
代わりにブートストラップ ファイルをシンボリック リンクするだけです。
$ 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 構成ファイルを編集するための 3 つの便利なエイリアスも用意されています。
editbashrc
:グローバル構成ファイルを編集します。
editosbashrc
: OS 固有の構成ファイルを編集します。
editlocalbashrc
:マシン固有の構成ファイルを編集します。
これは Bash でのみテストしましたが、他の Bash のようなシェルでも動作する可能性があります。しかし、彼らが言うように、走行距離は異なる場合があります。
これについてのブログ投稿を作成しましたhere .