যদি আমি একটি OS X এর মধ্যে আমার ব্যাশ শেল পরীক্ষা (10.6.4) যেমন টাইপ করে যেমন টার্মিনাল, echo $0
, আমার শেল সামনে একটি ড্যাশ, এই মত হল: -bash
। এই ড্যাশ মানে কি?
যদি আমি একটি OS X এর মধ্যে আমার ব্যাশ শেল পরীক্ষা (10.6.4) যেমন টাইপ করে যেমন টার্মিনাল, echo $0
, আমার শেল সামনে একটি ড্যাশ, এই মত হল: -bash
। এই ড্যাশ মানে কি?
উত্তর:
এর অর্থ এটি bash
লগইন শেল হিসাবে ডাকা হয়।
man bash
বলেছেন:
লগইন শেল এমন একটি যার আর্গুমেন্ট শূন্যের প্রথম অক্ষর a
-
বা--login
বিকল্পটি দিয়ে শুরু করা হয়েছে ।যখন বাশকে একটি ইন্টারেক্টিভ লগইন শেল বা বিকল্প হিসাবে একটি ইন্টারেক্টিভ শেল হিসাবে ডাকা হয়
--login
, এটি প্রথমে ফাইলটি থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে/etc/profile
, যদি সেই ফাইলটি বিদ্যমান থাকে। যে ফাইল পড়ার পর, এটা জন্য দেখায়~/.bash_profile
,~/.bash_login
এবং~/.profile
, যাতে, এবং পড়ে এবং প্রথম এক যে বিদ্যমান এবং পাঠযোগ্য থেকে, executes কমান্ড।--noprofile
বিকল্প ব্যবহার করা যেতে পারে যখন শেল এই আচরণ বাধা হতে শুরু করেছে।লগইন শেলটি যখন প্রস্থান করে, বাশ
~/.bash_logout
উপস্থিত থাকে তবে ফাইলটি থেকে আদেশগুলি পড়ে এবং সম্পাদন করে ।
আপনি login -pf
আপনার ps
আউটপুট খুঁজে পাবেন , যা ডিফল্টরূপে লগইন শেল শুরু করে।
দৌড়াতে চেষ্টা করুন login -pf
এবং login -pfl
পার্থক্যটি দেখুন। man login
পার্থক্য বর্ণনা করে:
-l
লগইন দ্বারা নির্বাহিত প্রোগ্রামকে বলে যে এটি কোনও লগইন সেশন নয় (কনভেনশন অনুসারে একটি লগইন সেশনটি হাইফেনের প্রথম চরিত্র হিসাবে প্রোগ্রামটিতে সংকেতযুক্তargv[0]
; এই বিকল্পটি এটি অক্ষম করে), এবং এটিchdir(2)
ব্যবহারকারীর হোম ডিরেক্টরিতে প্রবেশ করা থেকে বাধা দেয় । ডিফল্ট হিফেন যুক্ত করা (এটি লগইন সেশন)।
echo $0
: যদি আমি echo $0
টার্মিনালটি টাইপ করি ctrl + alt + f1
তবে ফলাফল হয় -bash
; তবে আমি যদি এটি টাইমিনাল টাইপ করি তবে এটি ctrl + alt + t
ফলাফল হয় bash
(কোনও অগ্রণী ড্যাশ নেই)। কেন আপনি ব্যাখ্যা করতে পারেন?
--login
আর্গুমেন্টের সাথে চালু করা হয় , এটি এতে পরিবর্তন করে না argv[0]
তবে লগইন শেল হিসাবে কাজ করে।
man
উদ্ধৃত করেছেন