ড্রপবক্সের সাহায্যে মেশিনে .bashrc ভাগ করে নেওয়ার ক্ষেত্রে প্রতিক্রিয়া?


22

আমি প্রচুর বিভিন্ন মেশিনে কাজ করি, সমস্ত চলমান উবুন্টু (সর্বদা একই সংস্করণ নয়)। আমার প্রম্পটে আমার কিছু সত্যিকারের বেসিক কাস্টমাইজেশন রয়েছে যা আমি সমস্ত মেশিনে উপলব্ধ রাখতে চাই।

আমি বর্তমানে ড্রপবক্স ব্যবহার করি এবং আমার অন্যান্য "ডট ফাইলগুলি" যেমন আমার .vim / .vimrc .gitconfig .ackrc সংরক্ষণ করি। আমি তারপরে তাদের কেবল আমার ড্রপবক্স ফোল্ডার থেকে আমার হোম ফোল্ডারে লিঙ্ক করব। ভাল, সিঙ্কে সমস্ত মেশিন।

আমি নিশ্চিত নই যে আমার বাশার্ক দিয়ে এই জাতীয় কিছু করার ফলস্বরূপ। কেউ কি প্রস্তাব দিতে পারেন? বাশার্কে আলাদা ফাইল লোড করার সহজ উপায়?

উত্তর:


28

আমি কোনও আসল প্রতিক্রিয়া দেখছি না, তবে আমি মনে করি এটি সেখানে কী রয়েছে তার উপর নির্ভর করে! যদি এটি কেবল দ্রুত উপস্বাদ হয় যা সর্বত্র একইরকম কাজ করে এবং প্রসাধনী সামগ্রী, আমি কোনও সমস্যা দেখি না।

আপনি হয় কেবল .bashrcআপনার ড্রপবক্স ফোল্ডারে কোথাও সরিয়ে নিতে পারেন এবং তারপরে প্রতিটি মেশিনে এটি সিমিলিংক করতে পারেন।

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

আমার বাড়িতে আমার ফোল্ডারে বেশ কয়েকটি ডটফিল রয়েছে যা আসলে আমার ড্রপবক্স অ্যাকাউন্টে ভাগ করা ফোল্ডারগুলিতে প্রতীকী।

অন্য বিকল্পটি হ'ল আপনি নিজের ড্রপবক্স ফোল্ডারের ভিতরে একটি ফাইল তৈরি করতে পারেন যা আপনার দ্বারা উত্সাহিত হবে .bashrc:

অর্থাৎ আপনার মধ্যে .bashrc, রাখুন:

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

এবং তারপরে একটি বাশার্ক-ভাগ করা-সেটিংস ফাইল তৈরি করুন যা আপনি সমস্ত মেশিনে ব্যবহার করতে চান এমন সামগ্রী এবং আপনি এখনও আলাদা .bashrcফাইল রাখতে পারেন ।

(আপনি sourceযেমন ঠিক তেমন সংক্ষিপ্ত .বিবরণও দিতে পারেন))


আপনার উদাহরণ অনুসারে আমার অন্যান্য ডট ফাইলগুলি সেট আপ করা আছে, আমি কেবল বাশের সাথে তেমন পরিচিত নই এবং উবুন্টু যে সমস্ত ডিফল্ট জিনিস সেখানে রাখে তা "বিশেষ" সম্পর্কে আমি নিশ্চিত নই। আমি এগিয়ে যেতে এবং আপনার প্রস্তাবিত উত্স পদ্ধতিটি ব্যবহার করতে যাচ্ছি। ধন্যবাদ!
অ্যালান পিবডি

8

আমি যে মূল ঝুঁকিটি ভাবতে পারি তা হ'ল আপনাকে অবশ্যই মনে রাখতে হবে যে সিঙ্ক্রোনাইজেশন ব্যাক আপ করার মতো নয়। কোনও ভুল আপনার সমস্ত মেশিনে সিঙ্ক করা হবে।

আপনার অ্যাডে আলাদা ফাইল অন্তর্ভুক্ত করার ~/.bashrcজন্য এরকম কিছু:

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

যেখানে ~ / .foo পৃথক ফাইল।


1
তুমি ঠিক বলছো! তবে ভাগ্যক্রমে, ড্রপবক্স আপনার ফাইলগুলির পুনর্বিবেচনাগুলি রাখে, তাই জিনিসগুলি স্বয়ংক্রিয়ভাবে ব্যাক আপ হয়ে যায় :)
অ্যালেক্স

দুর্দান্ত পরামর্শের জন্য ধন্যবাদ, আমি ম্যানুয়ালি একটি দ্বিতীয় ফাইল উত্সাহিত করব এবং আমি সম্ভবত এই বাক্য গঠনটি ব্যবহার করব।
অ্যালান পিবডি

6

সাধারণত, কনফিগারেশন ফাইলগুলি কেন্দ্রীভূত করা ভাল জিনিস! যদি আপনি প্রদত্ত ওএস বা হোস্টনামের ভিত্তিতে কী চলমান তা কাস্টমাইজ করতে চান তবে আপনি আপনার .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 ডিরেক্টরি ও অপারেটিং সিস্টেম এবং হোস্ট যে অধীনে ডিরেক্টরি নামক ফাইলের মধ্যে কোনো কাস্টম সেটিংস করা <যাই হোক না কেন> .sh যেখানে <যাই হোক না কেন> অপারেটিং সিস্টেম টাইপ বা হোস্ট আপনাকে কাস্টমাইজড চাই।

আমি এই সমস্ত ফাইল ড্রপবক্সে রাখি এবং আমার ড্রপবক্স ফোল্ডারে আমার কাছে লিঙ্ক_ড্রপবাক্স নামে একটি বাশ স্ক্রিপ্ট রয়েছে যা এগুলিকে লিঙ্ক করার সুবিধার্থে আমাকে সহায়তা করে:

#!/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

আমি প্রচুর অন্যান্য কনফিগার ফাইল (.gitconfig, .vimrc, ইত্যাদি) এর সাথে আমার .bashrc ড্রপবক্সে সিমলিংকযুক্ত রাখি।

আমি অন্যান্য সেটিংসের জন্য এর শেষে প্রান্তে .bashrc_local নামে একটি ফাইল উত্স করি যা আমি মেশিনকে স্বতন্ত্র রাখতে চাই।

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

1

ড্রপবক্সের সাথে সিঙ্ক করা দুর্দান্ত, তবে আপনি যদি সার্ভারে ড্রপবক্স ইনস্টল করতে না চান তবে আপনি আমার পদ্ধতিটি প্রয়োগ করতে পারেন।

  1. আপনার ড্রপবক্স ফোল্ডারে আপনার ভাগ করা বাশ সেটিংস সহ একটি ফাইল তৈরি করুন।

  2. ফাইলটিতে ডান ক্লিক করুন এবং ড্রপবক্স মেনু থেকে "ভাগ করুন লিঙ্ক" ক্লিক করুন।

  3. তারপরে "লিঙ্ক পান" ক্লিক করুন। এটি আপনার ক্লিপবোর্ডে ভাগ করা লিঙ্কটি অনুলিপি করবে।

  4. ভাগ করা ফাইলটির শেষে? Dl = 1 যুক্ত করুন। এটি আপনাকে কাঁচা ফাইল পেতে দেয়। আপনার ভাগ করা লিঙ্কটি এখন আমার মতো দেখা উচিত: https://dl.rodbox.com/s/h25q5c3czo6mnjo/shared_bash_settings.sh?dl=1

  5. এই লাইনটি ~ / .bashrc এ যুক্ত করুন

    source $HOME/.bash_shared_settings

  6. এই কমান্ডটি ব্যবহার করে আপনার পছন্দের ব্যবধানের সাথে ক্রোনজব তৈরি করুন (আপনার ড্রপবক্স শেয়ার্ড ফাইলের সাথে প্রতিস্থাপন করুন!)

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

এটি প্রতি আধা ঘন্টা পর আপনার copy / .bash_shared_settings এর অনুলিপি আপডেট করবে। প্রতিবার আপনি যখন আপনার সেশনটি পুনরায় লোড করবেন, আপনি সর্বশেষ পরিবর্তনগুলি অন্তর্ভুক্ত করবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.