এটি এক ধরণের জটিল। প্রথমত, বিশদটি আপনি কী ধরণের শেল চালাচ্ছেন তার উপর নির্ভর করে। নিজেকে চুরি করতে :
আপনি যখন একটি টার্মিনাল এমুলেটর খোলেন ( gnome-terminalউদাহরণস্বরূপ), আপনি একটি ইন্টারেক্টিভ, নন-লগইন শেল হিসাবে পরিচিত যা সম্পাদন করছেন ।
আপনি যখন কমান্ড লাইন থেকে আপনার মেশিনে লগইন করেন বা কমান্ড যেমন su - usernameচালাচ্ছেন আপনি একটি ইন্টারেক্টিভ লগইন শেল চালাচ্ছেন ।
আপনি যখন গ্রাফিকালি লগ ইন করবেন তখন আপনি সম্পূর্ণ ভিন্ন কিছু চালাচ্ছেন। বিশদগুলি আপনার সিস্টেম এবং গ্রাফিকাল পরিবেশের উপর নির্ভর করবে তবে সাধারণভাবে এটি গ্রাফিকাল শেল যা আপনার লগইন নিয়ে কাজ করে। যদিও অনেকগুলি গ্রাফিকাল শেল (উবুন্টু ডিফল্ট সহ) পড়বে /etc/profileএবং ~/.profileসেগুলি সমস্তই করে না।
অবশেষে, আপনি যখন শেল স্ক্রিপ্টটি চালাবেন, এটি একটি অ-ইন্টারেক্টিভ, অ-লগইন শেলটিতে চালিত হবে ।
চালু করা অবস্থায় ব্যাশ করা ফাইলগুলি যে শেলটির ধরণটি চালায় তার উপর নির্ভর করে। নিম্নলিখিতটি man bash(জোর দেওয়া খনি) এর ইনভোকেশন বিভাগের একটি অংশ রয়েছে :
যখন বাশকে একটি ইন্টারেক্টিভ লগইন শেল হিসাবে, বা - লগিন বিকল্পের সাথে একটি অ-ইন্টারেক্টিভ শেল হিসাবে ডাকা হয়, এটি প্রথমে ফাইল / ইত্যাদি / প্রোফাইল থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে , যদি সেই ফাইলটি বিদ্যমান থাকে। এই ফাইলটি পড়ার পরে, এটি সেই ক্রমে ash / .bash_profile, ~ / .bash_login, এবং ~ / । প্রোফাইলে অনুসন্ধান করে এবং উপস্থিত এবং পঠনযোগ্য যা প্রথমটি থেকে আদেশগুলি পড়ে এবং কার্যকর করে। শেলটি এই আচরণটি আটকাতে শুরু করা হলে --noprofile বিকল্পটি ব্যবহার করা যেতে পারে।
লগইন শেল নয় এমন একটি ইন্টারেক্টিভ শেলটি শুরু করা হলে, বাশ /etc/bash.bashrc এবং ~ / .bashrc থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে , যদি এই ফাইলগুলি উপস্থিত থাকে। এটি --norc বিকল্প ব্যবহার করে বাধা দেওয়া হতে পারে। --Rcfile ফাইল অপশনটি বাশকে /etc/bash.bashrc এবং ~ / .bashrc এর পরিবর্তে ফাইল থেকে আদেশগুলি পড়তে এবং সম্পাদন করতে বাধ্য করবে।
সেগুলি ইনিশিয়েশন ফাইল। আপনি /etc/environmentযেখানে বিশ্বব্যাপী পরিবেশগত ভেরিয়েবল সেট করতে পারেন তবে তা স্রোসডের পরিবর্তে পড়েছে (এর ভিতরে থাকা কমান্ডগুলি কার্যকর করা হয় না তবে পরিবর্তনশীল সংজ্ঞা সেট করা থাকে)।
এখন, আপনি যে শুভেচ্ছা দেখছেন সেটি আবার অন্য কিছু। এটি সেট করা আছে /etc/motdএবং এর মাধ্যমে প্রদর্শিত হয় pam_motd। হিসাবে ব্যাখ্যা করা হয়েছে man motd:
সফলভাবে লগইন করার পরে / etc / motd এর সামগ্রীগুলি পাম_মোটড (8) দ্বারা প্রদর্শিত হয় তবে এটি লগইন শেলটি কার্যকর করার ঠিক আগে just
সংক্ষিপ্ত বিবরণ "মোড্ড" বলতে "দিনের বার্তা" বোঝায়, এবং এই ফাইলটি traditionতিহ্যগতভাবে ঠিক সেই জন্য ব্যবহার করা হয়েছে (এটির জন্য সমস্ত ব্যবহারকারীর মেলের চেয়ে অনেক কম ডিস্ক স্পেস প্রয়োজন)।
ডেবিয়ান জিএনইউ / লিনাক্সে, /run/motd.dynamic এর সামগ্রীটি প্রদর্শিত হয়। এই ফাইলটি বুট-এ /etc/init.d/motd দ্বারা উত্পাদিত হয়।
বার্তাটি সরাতে কেবল /etc/motdফাইলটি খালি করুন এবং নিশ্চিত করুন যে উপস্থিত থাকলে কিছুই তৈরি হচ্ছে /etc/init.d/motdনা।
যাইহোক, আপনি যে আউটপুটটি দেখান তার উপর ভিত্তি করে, আপনি লগ ইন করছেন বলে মনে হচ্ছে আপনি sshযার মাধ্যমে আপনি একটি ইন্টারেক্টিভ লগইন শেল চালাচ্ছেন , তার অর্থের জন্য উপরে দেখুন। সুতরাং, সংক্ষেপে, আপনি লগ ইন করার সময় আপনার যে বিষয়গুলির যত্নশীল তা হ'ল (এবং এই ক্রমে):
pam_motdপিএএম লাইব্রেরির মডিউলটির মাধ্যমে এসএসএইচ ডেমন এর সামগ্রীগুলি প্রদর্শন করে /etc/motd। pam_envমডিউল মাধ্যমে , এটি থেকে /etc/environmentএবং পরিবেশের পরিবর্তনশীল সেট করে ~/.pam_environment।
- একটি লগইন শেল শুরু হয়েছে, এবং নিম্নলিখিত ফাইলগুলি ক্রমে পড়া হয়:
/etc/profile
/etc/bash.bashrc(ডিফল্ট উবুন্টু /etc/profileউত্স /etc/bash.bashrc)।
~/.bash_profile। অন্যান্য ফাইলগুলি যা এখানে পড়তে পারে ( ~/.profileএবং ~/.bash_login) তা উপেক্ষা করা হয় কারণ এটি ~/.bash_profileবিদ্যমান।
export SET_IN_ETC_PROFILE=yesমধ্যে/etc/profile,export SET_IN_HOME_ZSHRC=yesমধ্যে~/.zhshrcপুনরায় বুট করার (আমি একটি zsh ব্যবহারকারী am), ইত্যাদি ... তারপর এবং একটি সুন্দরenv|grep SET_INসব গল্প বলা হবে। ডেস্কটপ অ্যাপ্লিকেশন (কোন আপনি টার্মিনাল ব্যবহার না করে ড্যাশ বা ডাব্লুএম থেকে প্রবর্তন করেছেন) কোন ভেরিয়েবলগুলি দেখা যায় তা দেখতে, জিজ্ঞাসাবাবু