Tôi có thư mục trên Dropbox với toàn cầu, mỗi hệ điều hành, và mỗi configs vỏ máy:
$ ls ~/Dropbox/shell/bash
bashbootstrap bashrc
bashrc-Darwin bashrc-Darwin-laptopname bashrc-Darwin-mininame
bashrc-Linux bashrc-Linux-machineone bashrc-Linux-machinetwo
bashrc
được nạp trên mỗi máy, bashrc-Linux
, bashrc-Darwin
được nạp vào hệ điều hành của mình, và một số configs cụ thể cho từng máy. (Nhân tiện, Darwin là tên của hạt nhân giống như BSD của OS X.)
Mối quan hệ nào với nhau là tệp bashbootstrap
. Nó tải mỗi tập tin cấu hình áp dụng theo thứ tự tăng tính đặc hiệu, điều này cho phép mỗi hệ điều hành và mỗi máy ghi đè để có ưu tiên cao hơn. Ngoài ra, chúng tôi âm thầm bỏ qua các tệp cấu hình bị thiếu; bạn không cần phải tạo các tệp cấu hình trống cho mỗi máy của bạn để giữ cho tập lệnh trở nên vui vẻ.
Trên một máy tính mới, sau khi cài đặt Dropbox trên ~/Dropbox
, tôi di chuyển đi những mặc định .bashrc
và chỉ liên kết mềm các tập tin bootstrap vào chỗ của nó thay vì:
$ mv ~/.bashrc ~/.bashrc.bak
$ ln -s ~/Dropbox/shell/bash/bashbootstrap ~/.bashrc
Oh, và đây là những nội dung của file 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"
Một lưu ý cuối cùng, tập lệnh này cũng cung cấp ba bí danh tiện lợi để chỉnh sửa tệp cấu hình Bash của bạn mà không phải nhớ vị trí chúng được lưu trữ.
editbashrc
: Chỉnh sửa các tập tin cấu hình toàn cầu.
editosbashrc
: Chỉnh sửa tệp cấu hình dành riêng cho hệ điều hành.
editlocalbashrc
: Chỉnh sửa tệp cấu hình dành riêng cho máy.
Tôi chỉ thử nghiệm điều này trên Bash, nhưng nó có thể hoạt động trên các Bash khác như vỏ. Nhưng, như họ nói, số dặm của bạn có thể thay đổi.
Tôi đã đăng một bài đăng trên blog về số này here.