Dropbox를 사용하여 여러 컴퓨터에서 .bashrc를 공유하는 데 영향이 있습니까?


22

우분투 (항상 같은 버전은 아님)를 실행하는 많은 다른 컴퓨터에서 작업합니다. 모든 컴퓨터에서 사용할 수 있도록 프롬프트에 대한 기본적인 사용자 정의가 있습니다.

저는 현재 Dropbox를 사용하고 .vim / .vimrc .gitconfig .ackrc와 같은 다른 모든 "도트 파일"을 저장합니다. 그런 다음 Dropbox 폴더에서 홈 폴더로 연결하면됩니다. Voilà, 모든 기계가 동기화되었습니다.

내 bashrc로 이와 같은 일을 할 때의 영향이 무엇인지 확실하지 않습니다. 누구든지 제안을 할 수 있습니까? bashrc에 별도의 파일을로드하는 쉬운 방법일까요?

답변:


28

나는 실제 영향을 보지 못하지만 그것이 당신이 가지고있는 것에 달려 있다고 생각합니다! 모든 곳에서 동일하게 작동하는 빠른 별명과 장식적인 물건이라면 아무런 문제가 없습니다.

.bashrcDropbox 폴더의 특정 위치 로 이동 한 다음 각 컴퓨터에서 심볼릭 링크 할 수 있습니다.

  mkdir -p ~/Dropbox/dotfiles
  mv ~/.bashrc ~/Dropbox/dotfiles/.bashrc
  ln -s ~/Dropbox/dotfiles/.bashrc ~/.bashrc

사실 내 Dropbox 계정의 공유 폴더에 대한 심볼릭 링크 인 홈 폴더에 꽤 많은 도트 파일이 있습니다.

또 다른 옵션은 dropbox 폴더 안에 파일을 만들어서 소스로 만들 수 있다는 것입니다 .bashrc.

즉,에 .bashrc넣으십시오.

source $HOME/Dropbox/dotfiles/bashrc-shared-settings

그런 다음 모든 컴퓨터에서 사용하려는 bashrc 공유 설정 파일을 만들고 별도의 .bashrc파일을 계속 유지할 수 있습니다.

( bash source와 마찬가지로 약어 로 도 사용할 수 있습니다 ..)


나는 당신의 예에 따라 내 다른 도트 파일을 설정했지만, 나는 bash에 너무 익숙하지 않으며 Ubuntu가 넣은 모든 기본 항목이 어떻게 "특별"하는지 확신하지 못했습니다. 계속해서 제안한 소스 방법을 사용하겠습니다. 고맙습니다!
Alan Peabody

8

내가 생각할 수있는 주요 위험은 동기화가 백업과 동일하지 않다는 것을 기억해야한다는 것입니다. 모든 실수는 모든 컴퓨터에 동기화됩니다.

별도의 파일을 ~/.bashrc추가 하려면 다음 과 같이 추가 하십시오 .

if [ -f ~/.foo ]; then
    . ~/.foo
fi

~ / .foo는 별도의 파일입니다.


1
네가 옳아! 그러나 운좋게도 dropbox는 파일의 개정판을 유지하므로 물건은 자동으로 백업됩니다 :)
Alex

큰 제안에 감사드립니다. 나는 두 번째 파일을 수동으로 소싱 할 것이고 아마도이 구문을 사용할 것입니다.
Alan Peabody

6

일반적으로 구성 파일을 중앙 집중화하는 것이 좋습니다! 주어진 OS 또는 호스트 이름을 기반으로 실행되는 것을 사용자 정의하려면 .bashrc에서 다음과 같이 할 수 있습니다.

export HOSTNAME=`hostname | cut -f1 -d'.'`

if [ -f ~/.bash/os/$OSTYPE.sh ]; then
    source ~/.bash/os/$OSTYPE.sh
fi

if [ -f ~/.bash/host/$HOSTNAME.sh ]; then
    source ~/.bash/host/$HOSTNAME.sh
fi

그런 다음 .bash 디렉토리와 그 아래에 oshost 디렉토리를 작성하고 <whatever> .sh 라는 파일에 사용자 정의 설정을 입력하십시오. 여기서 <whatever> 는 os 유형 또는 사용자 정의하려는 호스트입니다.

이 모든 파일을 dropbox에 보관하고 Dropbox 폴더에 link_dropbox 라는 bash 스크립트를 사용하여 파일 을 쉽게 연결할 수 있습니다.

#!/bin/bash

#Array of <source><space><link> target->symlink mappings
linkarray=( "~/Dropbox/config/bashrc ~/.bashrc"
            "~/Dropbox/config/bash ~/.bash"
            "~/Dropbox/config/vimrc ~/.vimrc"
            "~/Dropbox/config/vim ~/.vim"
            "~/Dropbox/config/ssh ~/.ssh"
            "~/Dropbox/config/screenrc ~/.screenrc"
            "~/Dropbox/bin ~/bin" )

#turn off globbing to split each entry on spaces
set -f
for entry in "${linkarray[@]}"
do
    targets=( $entry )
    #eval will expand the tildes
    eval from=${targets[0]}
    eval to=${targets[1]}
        #if the target exists and is not a symlink, err on the side of caution
        if [ -e "$to" -a ! -L "$to" ]
        then
            echo "$to exists and is not a link, skipping..."
        else
            #probably safe to delete an existing symlink
            if [ -e "$to" ]
            then
                rm $to
            fi
            ln -s $from $to
        fi
done

2

Dropbox에서 .bashrc를 많은 다른 구성 파일 (.gitconfig, .vimrc 등)과 함께 심볼릭 링크로 유지합니다.

나는 기계 독립적으로 유지하고 싶을 다른 설정을 위해 파일 끝에 .bashrc_local이라는 파일을 제공합니다.

if [ -f ~/.bashrc_local ]; then
    . ~/.bashrc_local
fi

1

Dropbox와의 동기화는 훌륭하지만 서버에 Dropbox를 설치하지 않으려는 경우 내 방법을 구현할 수 있습니다.

  1. Dropbox 폴더에 공유 bash 설정으로 파일을 만듭니다.

  2. 파일을 마우스 오른쪽 버튼으로 클릭하고 Dropbox 메뉴에서 "링크 공유"를 클릭하십시오.

  3. 그런 다음 "링크 가져 오기"를 클릭하십시오. 공유 링크가 클립 보드에 복사됩니다.

  4. 공유 파일 끝에? dl = 1을 추가하십시오. 이렇게하면 원시 파일을 얻을 수 있습니다. 공유 링크는 이제 내 것과 비슷해야합니다. https://dl.dropbox.com/s/h25q5c3czo6mnjo/shared_bash_settings.sh?dl=1

  5. ~ / .bashrc에이 줄을 추가하십시오

    source $HOME/.bash_shared_settings

  6. 이 명령을 사용하여 원하는 간격으로 cronjob을 작성하십시오 (Dropbox 공유 파일로 바꾸십시오!).

    */30 * * * * curl -sS https://dl.dropbox.com/s/h25q5c3czo6mnjo/shared_bash_settings.sh?dl=1 > ~/.bash_shared_settings; chmod +x ~/.bash_shared_settings;

30 분마다 ~ / .bash_shared_settings 사본이 업데이트됩니다. 세션을 다시로드 할 때마다 최신 변경 사항이 포함됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.