~/.bashrcএবং /etc/bash.bashrcপ্রতিবার একটি ইন্টারেক্টিভ bashশেল শুরু হওয়ার সাথে সাথে চালানো হয়।
বিপরীতে, ~/.profileএবং /etc/profileপ্রতিবার যে কোনও লগইন শেল শুরু হওয়ার সাথে সাথে চালানো হয়। সুতরাং এটি bashশেল হতে হবে না, তবে এটি লগইন শেল হতে হবে (এবং অনেকগুলি bashশেল উদাহরণ লগইন শেল নয় )।
- একটি
bashশেল শেল যেখানে শেল প্রোগ্রাম যা এটি উপলব্ধ করা হয় bashযেমন, বরং অন্য কিছু প্রোগ্রাম পরিবর্তে, dash।
- লগইন শেল হ'ল একটি শেল যা লগইনের জন্য ব্যবহারকারী ইন্টারফেস (গ্রাফিকাল বা কমান্ড-লাইন) সরবরাহ করার জন্য স্বয়ংক্রিয়ভাবে শুরু হয়। লগইন শেলটি বের হয়ে গেলে লগইন সমাপ্ত হয় termin
অতএব, একটি প্রশংসা স্থাপন করা PATHযা কোনও bashrcফাইলের মধ্যে প্রবেশগুলিকে সংযোজন করে :
শেলটি না থাকলে কিছুই করবেন না bash, যা প্রায়শই হয়। উদাহরণস্বরূপ, PATHআপনি যখন কোনও গ্রাফিকাল লগইন সেশনে থাকবেন তখন তা সংশোধিত হবে। মনে রাখবেন, PATHকমান্ড-লাইন প্রোগ্রামগুলি দ্বারা কেবল ব্যবহৃত হয় না।
নেস্টেড bashশেলগুলির উপস্থিতিতে এটি বারবার যুক্ত করুন । সুতরাং, যদি আপনি কোনও শেলের মধ্যে একটি শেল শুরু করেন - যা বিভিন্ন কারণে বিভিন্ন কারণে - এটি খুব সাধারণ - তবে আপনার একাধিক ~/binএন্ট্রি আপনার স্ট্যাক করা থাকবে PATH। এটি PATHপরিবেশের পরিবর্তনযোগ্য পড়তে অসুবিধাজনক করে তোলে এবং কখনও কখনও কর্মক্ষমতা হ্রাস করে।
এগুলি অযাচিত হবে। সুতরাং এটি একটি ফাইলে রাখা ভুলbashrc হবে; এটা সত্যিই অন্তর্গত ~/.profile। ~/.profileজন্য সঠিক জায়গা :
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
নন-লগইন শেলগুলিতে তাদের পিতামাতার হিসাবে লগইন শেল (বা এমন কিছু যা লগইন শেলের মতো আচরণ করে) রয়েছে PATHএবং এই লগইন শেলটি সহ তাদের বেশিরভাগ পরিবেশের ভেরিয়েবলের উত্তরাধিকারী । সুতরাং পাথ-মডিফাইং কমান্ডগুলিতে রাখার ~/.profileজন্য তাদের কার্যকর হওয়ার জন্য আপনাকে লগ আউট এবং পিছনে প্রবেশ করতে হবে তবে এটি লগ-ইন শেলগুলির পরিবেশকেও প্রভাবিত করে (পাশাপাশি যে প্রোগ্রামগুলি শেল নয় সেহেতু পরিবেশগুলি প্রভাবিত করে, যেহেতু প্রতিটি প্রোগ্রাম তার পায় পরিবেশের ভেরিয়েবলগুলির নিজস্ব সেট - একে "পরিবেশ" বলা হয় - এটির মূল প্রক্রিয়া থেকে উত্তরাধিকারসূত্রে প্রাপ্ত)।