ম্যাক ওএস এক্স কীভাবে $ PATH এর মান সেট করে?


12

$ পাথ কীভাবে সেট করা যায় সে সম্পর্কে আমার একটি প্রাথমিক ধারণা আছে, তবে ম্যাক ওএস all পাথের সাথে যুক্ত হওয়া সমস্ত পাথ যেখানে ম্যাক ওএস পায় তা পুরোপুরি বর্ণনা করে এমন কোনও ডকুমেন্টেশন আছে কি? আমি ভালো জিনিস সচেতন আছি /etc/profile, /etc/pathsএবং /etc/profile.d, কিন্তু অন্যান্য স্ক্রিপ্ট অবশেষে $ PATH- এর মান প্রভাবিত করেন? আমি অ-লগইন এবং লগইন শেল ( .bashrc, .bash_profile) এর মধ্যেও খুব পরিচিত নই, তবে আমি মূল পার্থক্য সম্পর্কে অবগত।

উত্তর:


9

সাধারণত, আপনার PATH শেল দ্বারা সেট করা হয়। বাশের জন্য, ম্যানুয়ালটিতে সমস্ত কিছু ব্যাখ্যা করা আছে । আপনি খোলার man bashজন্য এবং INVOCATIONঅংশে এড়িয়ে যেতে পারেন ।

একটি ইন্টারেক্টিভ লগইন শেল হিসাবে, বা - লগিন সহ আমন্ত্রিত

বাশকে একটি ইন্টারেক্টিভ লগইন শেল হিসাবে, বা - লগিন বিকল্পের সাথে একটি অ-ইন্টারেক্টিভ শেল হিসাবে আহ্বান করা হলে, এটি প্রথমে ফাইল / ইত্যাদি / প্রোফাইল থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে, যদি সেই ফাইলটি উপস্থিত থাকে। এই ফাইলটি পড়ার পরে, এটি সেই ক্রমে ash / .bash_profile, ash / .bash_login, এবং ~ /। প্রোফাইলে অনুসন্ধান করে এবং উপস্থিত এবং পঠনযোগ্য যা প্রথমটি থেকে আদেশগুলি পড়ে এবং কার্যকর করে।

ইন্টারেক্টিভ অ-লগইন শেল হিসাবে আহ্বান করা হয়েছে

লগইন শেল নয় এমন একটি ইন্টারেক্টিভ শেলটি যখন শুরু হয়, বাশ file / .bashrc থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে, যদি সেই ফাইলটি বিদ্যমান থাকে। ওএস এক্স-এ, অতিরিক্তভাবে, path_helperএর লিখিত সামগ্রীগুলি পড়ে /etc/paths.dএবং সেগুলি আপনার পথে যুক্ত করে।

এখানে কীটি হ'ল ওএস এক্স-এ, টার্মিনালটি ডিফল্টরূপে লগইন শেলটি খুলবে, যখন লিনাক্সে শেলগুলি সাধারণত লগইনবিহীন শেল হিসাবে শুরু করা হয়। জোশ স্টায়গার লগইন বনাম নন-লগইন শেলগুলির একটি ভাল ব্যাখ্যা রয়েছে

সুতরাং, কেবলমাত্র এই দুটি তিনটি রয়েছে যেখানে আপনি পথ নির্ধারণ করতে পারেন:

  • /etc/profile(যা কল করে path_helper)
  • /etc/pathsএবং /etc/paths.d(থেকে আহবান করা হয়েছে path_helper)
  • আপনার শেল কনফিগারেশন ফাইল ( .bash_profile)

সংক্ষিপ্ত এবং তথ্যমূলক উত্তরের জন্য ধন্যবাদ। সুতরাং আমি অনুমান করি যে আমি এক ধরণের বুঝতে পেরেছি, তখন কোন স্ক্রিপ্ট / শৈলীগুলি $ पथকে প্রভাবিত করে influence সুতরাং এর অর্থ কী /etc/profileস্ক্রিপ্টটি মূলত ব্যাশ দ্বারা ব্যবহৃত হয়? অন্যান্য শাঁসের সাথে আমার অভিজ্ঞতা নেই তবে আমি ধরে নিই যে তারা কোনও আলাদা কাঠামো অনুসরণ করে?
সাইকো পাঞ্চ

/etc/profileসবচেয়ে (সমস্ত? না 100% নিশ্চিত) শাঁস দ্বারা ব্যবহৃত হয়। এজন্য PATH এর মতো জিনিসগুলি যে কোনও জায়গায় চাইলে রাখা ভাল পছন্দ। .bash_জ্যাশ উদাহরণস্বরূপ .zshrcঅন্যদের পাশাপাশি পড়া বাশ ফাইলগুলি পড়ে । এটি শেলের উপর নির্ভর করে।
slhck

"ওএস এক্সে, অতিরিক্তভাবে, প্যাথ-হেল্পার রয়েছে যা /etc/paths.d এর বিষয়বস্তু পড়ে এবং সেগুলি আপনার পথে যুক্ত করে।" না, ইন্টারেক্টিভ নন-লগইন শেলগুলির জন্য বলা path_helperহয় না (অ ইন্টারেক্টিভ অ-শেলও নয়)। এটি /etc/profileআসলে ইন্টারেক্টিভ লগইন শেলগুলির জন্য বলা হয় called
ম্যাগগিরো

8

এর মধ্যে পাথগুলি /etc/pathsএবং পথ_হেল্পার দ্বারা /etc/paths.d/*সাধারণত যুক্ত করা PATHহয় । চালানো হয় , সুতরাং ব্যাশটি ইন্টারেক্টিভ লগইন শেল হিসাবে আহ্বান করা হলে এটি চালানো হয়, তবে যখন ব্যাশকে লগ-ইন-শেল বা একটি অ-ইন্টারেক্টিভ শেল হিসাবে ডাকা হয়।path_helper/etc/profile

/etc/paths/usr/local/binডিফল্টরূপে শেষে থাকে এবং এটি ডিফল্টরূপে /etc/paths.d/খালি থাকে।

টার্মিনাল এবং আইটার্ম 2 ডিফল্টরূপে লগইন শেল হিসাবে নতুন শেলগুলি খোলায় এবং আপনার কম্পিউটারে এসএসএস করার সময় খোলা শেলটিও লগইন শেল। অন্যান্য প্ল্যাটফর্মগুলিতে অনেক টার্মিনাল এমুলেটর tmuxএবং ইমাসে শেল মোড অ-লগইন শেল হিসাবে নতুন শেলগুলি খোলে।

আমি এই লাইনটি এতে যুক্ত করেছি /etc/launchd.conf:

setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

এটি PATHরুট লঞ্চ করা প্রক্রিয়াটির মান পরিবর্তন করে । মানটি ব্যবহারকারীর প্রবর্তিত প্রক্রিয়াগুলি সহ অন্যান্য সমস্ত প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়। আপনি /etc/launchd.confপুনরায় চালু করে বা launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confপ্রক্রিয়া চালিয়ে ও পুনরায় চালু করে পরিবর্তনগুলিতে প্রয়োগ করতে পারেন ।

ওএস এক্স-এ, ~/.profileআপনি গ্রাফিকালি লগ ইন করার সময় পড়া হয় না। যদি উভয়ই থাকে ~/.bash_profileএবং ~/.profileবিদ্যমান থাকে তবে বাশও পড়ে ~/.profileনা।

~/.MacOSX/environment.plist 10.8 তে কাজ করা বন্ধ করে দিয়েছে।

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