2008-10-20 7 views
8

저는 꽤 적극적인 명령 행 사용자이고 모든 곳에서 쉘 계정을 가지고 있습니다. 맥북, 리눅스 데스크톱 머신, 리눅스 서버, Cygwin에서 XP, 당신은 그것을 이름.쉘 구성을 여러 대의 컴퓨터에서 동기화 유지

모든 플랫폼에서 사용할 수있는 제한된 도구를 사용하여 모든 셸 구성 (.bashrc, .vimrc 등)을 동기화 할 수있는 방법은 무엇입니까?

내가 필요로 할 때 수동으로 일부 파일을 복사하는 꽤 제한된 방식으로 rsync을 사용했지만 모든 컴퓨터에서 동일한 기본 셸 환경을 설정하기위한 표준 방법을 원합니다. 귀하의 쉘 계정 관리 전략을 말씀해주십시오.

답변

12

내가 OS 당, 기계 쉘 CONFIGS 당, 세계와 보관에 폴더가 :

$ ls ~/Dropbox/shell/bash 
bashbootstrap bashrc 
bashrc-Darwin bashrc-Darwin-laptopname bashrc-Darwin-mininame 
bashrc-Linux bashrc-Linux-machineone bashrc-Linux-machinetwo 

bashrcbashrc-Linux가, bashrc-Darwin는 해당 운영체제에로드되는 모든 시스템에로드, 여러 CONFIGS가 특정 개별 머신으로. (그런데, 다윈은 OS X의 BSD와 비슷한 커널의 이름입니다.)

이 모든 것을 하나로 묶는 것은 bashbootstrap 파일입니다. 적용 가능한 각 설정 파일을 특이성이 증가하는 순서로로드합니다. 이렇게하면 OS 단위 및 컴퓨터 단위 재 지정이 더 높은 우선 순위를 가질 수 있습니다. 또한 누락 된 구성 파일을 자동으로 건너 뜁니다. 스크립트를 행복하게 유지하기 위해 각 컴퓨터에 대해 빈 구성 파일을 만들 필요가 없습니다. 새로운 기계에

~/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 구성 파일을 편집 할 때 편리한 별칭을 제공합니다.

  • editbashrc

    :
    편집 글로벌 설정 파일.
  • editosbashrc : OS 고유의 구성 파일을 편집하십시오.
  • editlocalbashrc : 컴퓨터 별 설정 파일을 편집하십시오.

나는 이것을 Bash에서만 테스트했지만 다른 Bash와 같은 쉘에서도 작동 할 수 있습니다. 그러나, 그들이 말한대로, 귀하의 마일리지는 다를 수 있습니다.

나는 here에 관한 블로그 게시물을 만들었습니다.

2

나는 이것을 위해 과거에 버전 컨트롤 (svn, mercurial 등 ...)을 사용했습니다. 자신의 서버를 설정하거나 호스트 된 서버를 사용할 수 있습니다. Dropbox도 작동합니다.

0

소스 제어에 액세스 할 수 있다면이 소스를 확인하면됩니다. 이렇게하면 여러 컴퓨터에서 동기화 할 수 있으므로 필요할 경우 비교/롤백 할 수 있습니다. 직장에서 CVS/SVN이 없다면 무료 옵션을 사용할 수 있습니다.

관련 문제