সিস্টেম-প্রশস্ত $ PATH ভেরিয়েবল সেটটি কোথায়?


10

আমি উবুন্টু ডেস্কটপ 14.04 ব্যবহার করছি এবং এর মতো আমি নন-লগইন শেলটি ব্যবহার করছি। আমি যখন জিইউআই টার্মিনালটি খুলি, প্রথমে অ-লগইন শেল সেশনগুলি নিম্নলিখিত স্টার্টআপ ফাইলগুলি পড়ুন:

/etc/bash.bashrc
~/.bashrc

নন-লগইন শেলগুলি প্যারেন্ট প্রক্রিয়া থেকে পরিবেশের উত্তরাধিকারী হয়, এটি লগইন শেল, সুতরাং সেশনটি নিম্নলিখিত স্টার্টআপ ফাইলগুলিও পড়ে:

/etc/profile
~/.bash_profile

যাইহোক, আমি খুঁজে পাচ্ছি না $PATHসিস্টেম-ব্যাপী পাথ পছন্দ /bin, /sbin, /usr/bin, /usr/sbin, এই ফাইলগুলির কোনো সেট। $PATHএই ডিরেক্টরিগুলির জন্য সেটটি কোথায় ?

উত্তর:


16

(ডিফল্ট) সিস্টেম প্রশস্ত ফাইলে PATHসেট করা আছে /etc/environment

$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

এটি মূলত বিশ্বব্যাপী পরিবেশ পরিবর্তনশীলগুলি সংরক্ষণ করার জায়গা।


+1, তবে আপনি কি তা জানতে পেরেছেন যে $PATHএটি প্যারেন্ট লগইন শেল দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছে বা এটি প্রতিটি bashউদাহরণের মাধ্যমে পুনরায় লোড হয়েছে কিনা ?
কোস

@ কোস সমস্ত শিশু প্রক্রিয়া অবশ্যই পরিবর্তিত পরিবেশে পরিচালিত না হলে
পিতামাত

আমি লক্ষ্য করেছি যে শেলটি $HOMEভেরিয়েবলটি প্রসারিত করে না বলে মনে হচ্ছে । উদাহরণস্বরূপ, যোগ $HOME/.composer/vendor/binকরার PATHমধ্যে /etc/environmentএই ডিরেক্টরিতে বাইনেরিতে সক্ষম নয় একটি পাথ উপসর্গ ছাড়া নিষ্পন্ন করা হবে। ব্যবহার ~/.composer/vendor/binকরেও কাজ হয় না। আমি এটা সুনির্দিষ্ট পাথ, যেমন যোগ করার জন্য প্রয়োজনীয় খোঁজার করছি: /home/vagrant/.composer/vendor/bin। এটি সম্পর্কিত বলে মনে হচ্ছে (যদিও এই আচরণের ব্যাখ্যা দেয় না): জিজ্ঞাসুবন্টু
বেন জনসন

2
@ বেনজাহনসন এটি কেবল কারণ /etc/environment(এবং ~/.pam/environment) pam_envপিএএম মডিউলটি পড়ে, শেল বা শেল / পরিবেশের ভেরিয়েবলগুলি বোঝে এমন কোনও কিছুই নয়; একই ~সম্প্রসারণ জন্য যায় । সুতরাং, আপনাকে সেখানে নিখুঁত পথটি ব্যবহার করতে হবে।
হেইমাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.