유지 쉘 구성에 동의 여러 컴퓨터
-
03-07-2019 - |
문제
저는 매우 활동적 명령 라인에 사용자와 나는 포탄 계정을 통해 모든 장소입니다.를 들어,리눅스 데스크톱 컴퓨터,리눅스 서버 Cygwin XP 에서,당신은 그것을 이름을 지정합니다.
어떻게 유지할 수 있습니다 내 쉘 구성(.bashrc
, .vimrc
등.) 동기화를 통해 이러한 모든 컴퓨터를 사용하여 제한된 사용할 수 있는 도구를 통해 모든 플랫폼?
용 rsync
에서 매우 제한적으로 포함하는 수동으로 복사하는 일부를 통해 파일을 필요로 할 때 그들을,하지만 나는 원하는 표준 방법에 대한 설정을 동일한 기본적인 쉘 환경의 모든 내 기계입니다.말 쉘 계정 관리 전략입니다.
해결책
나는 폴더에 Dropbox 글로벌당 OS,기 쉘 configs:
$ 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 X BSD 다음과 같습니다.)
무엇을 모두 함께 묶은 bashbootstrap
파일입니다.드는 각 해당 config 파일을 향상하기 위해 특이성,이것은 당 OS 및 기계를 재정의하여 더 높은 우선합니다.또한,우리가 자동으로 건너가 누락 config 파일당신이 필요하지 않을 만들 빈 config 파일에 대한 각각의 기계를 유지하는 스크립트는 행복합니다.
새로운 컴퓨터에 설치한 후,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 config 파일을 기억하지 않고 그들이 어디에 저장됩니다.
editbashrc
: 편집 글로벌 config 파일에 있습니다.editosbashrc
: 편집 OS 를 설정 파일입니다.editlocalbashrc
: 편집기 설정 파일입니다.
내가 테스트에서 이 Bash 지만,일할 수 있는 다른 Bash 다음과 같다.그러나,그들이 말한 대로,당신의 마일리지 달라질 수 있습니다.
나 블로그 게시물에 대한 이 기.