मैं, वैश्विक साथ ड्रॉपबॉक्स पर फ़ोल्डर है ओएस प्रति, और प्रति मशीन खोल कॉन्फ़िगरेशन:
$ 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
उनके संबंधित OSes पर लोड किए गए हैं, और कई कॉन्फ़िगरेशन विशिष्ट हैं व्यक्तिगत मशीनों के लिए। (वैसे, डार्विन ओएस एक्स के बीएसडी-जैसे कर्नेल का नाम है।)
bashbootstrap
फ़ाइल सभी के साथ क्या संबंध है। यह विशिष्टता बढ़ाने के क्रम में प्रत्येक लागू कॉन्फ़िगरेशन फ़ाइल लोड करता है, यह प्रति ओएस और प्रति मशीन ओवरराइड को उच्च प्राथमिकता के लिए अनुमति देता है। इसके अतिरिक्त, हम चुपचाप गायब कॉन्फ़िगरेशन फ़ाइलों को छोड़ दें; स्क्रिप्ट को खुश रखने के लिए आपको अपनी प्रत्येक मशीन के लिए खाली कॉन्फ़िगरेशन फाइलें बनाने की आवश्यकता नहीं है। यहाँ
$ mv ~/.bashrc ~/.bashrc.bak
$ ln -s ~/Dropbox/shell/bash/bashbootstrap ~/.bashrc
ओह, और bashbootstrap
फ़ाइल की सामग्री हैं:
एक नई मशीन पर, ~/Dropbox
पर ड्रॉपबॉक्स स्थापित करने के बाद, मैं दूर डिफ़ॉल्ट .bashrc
कदम और बस के बजाय उसके स्थान पर बूटस्ट्रैप फ़ाइल सिमलिंक :
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"
एक अंतिम ध्यान दें, इस स्क्रिप्ट भी तीन सुविधा उपनाम जहां वे जमा हो जाती है याद करने के लिए बिना अपने बैश config फ़ाइलें संपादित करने के लिए प्रदान करता है।
editbashrc
: संपादित करें वैश्विक कॉन्फ़िग फ़ाइल।
editosbashrc
: ओएस-विशिष्ट कॉन्फ़िगरेशन फ़ाइल संपादित करें।
editlocalbashrc
: मशीन-विशिष्ट कॉन्फ़िगरेशन फ़ाइल संपादित करें।
मैं केवल बैश पर इस परीक्षण किया है, लेकिन यह गोले की तरह अन्य बैश पर काम कर सके। लेकिन, जैसा कि वे कहते हैं, आपका लाभ भिन्न हो सकता है।
मैंने इस here के बारे में ब्लॉग पोस्ट किया है।