11

私はかなりアクティブなコマンドラインユーザーであり、いたるところにシェルアカウントがあります。MacBook、Linuxデスクトップマシン、Linuxサーバー、XP上のCygwin、あなたはそれに名前を付けます。

すべてのプラットフォームで利用できる限られたツールを使用して、これらすべてのマシン間でシェル構成(など)の同期を.bashrc維持するにはどうすればよいですか?.vimrc

私はrsyncかなり限られた方法で使用しており、必要なときにいくつかのファイルを手動でコピーする必要がありますが、すべてのマシンで同じ基本的なシェル環境をセットアップするための標準的な方法が必要です。シェルアカウント管理戦略を教えてください。

4

4 に答える 4

15

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-Linuxbashrc-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 .

于 2011-07-29T16:18:08.943 に答える
2

私は過去にこれにバージョン管理を使用しました(svnmercurialなど)。独自のサーバーをセットアップすることも、ホストされたサーバーを使用することもできます。 Dropboxも機能します。

于 2008-10-20T12:41:22.683 に答える
0

ソース管理にアクセスできる場合は、チェックインするだけです。こうすることで、複数のマシン間でそれらを同期し、必要に応じて比較/ロールバックできます。CVS / SVNを使用していない場合は、無料のオプションを利用できます。

于 2008-10-20T12:42:17.287 に答える