উত্তর:
Ditionতিহ্যগতভাবে, ইউনিক্স সিস্টেমে প্রতি ব্যবহারকারীর এনভায়রনমেন্ট ভেরিয়েবলগুলি সংজ্ঞায়িত করার জায়গাটি ~/.profile। লগইন শেলটি (যেমন আপনি লগ ইন করার পরে শুরু হওয়া প্রোগ্রাম এবং আপনি এতে কমান্ড টাইপ করতে পারেন) এই ফাইলটি পড়তে পারে তবে শর্ত হয় যে লগইন শেলটি বোর্ন-সামঞ্জস্যপূর্ণ শেল।
বাশ একটি বোর্ন-সামঞ্জস্যপূর্ণ শেল। লগইন শেল হিসাবে যখন এটি আহ্বান করা হয় তখন ~/.bash_profileএই ফাইলটি উপস্থিত থাকে এবং ~/.profileযদি ~/.bash_profileনা থাকে তবে তা পড়ে।
থাম্বের নিয়ম হিসাবে, আপনি যদি নিজের পাসওয়ার্ডটি পাঠ্য মোডে টাইপ করেন (যেমন, কোনও পাঠ্য কনসোলে বা ssh সহ দূরবর্তীভাবে), তবে আপনি যে শেলটি পাবেন সেটি লগইন শেল।
তবে, আপনি যদি কোনও গ্রাফিকাল প্রোগ্রামে আপনার পাসওয়ার্ডটি টাইপ করেন এবং গ্রাফিকাল পরিবেশে লগইন করেন তবে এটি সাধারণ লগইন শেলটিকে বাইপাস করে। .profileএই ক্ষেত্রে পড়া হয় কিনা গ্রাফিকাল সেশনটি কীভাবে সেট আপ করা হয় তার উপর নির্ভর করে; উদাহরণস্বরূপ এটি লিনাক্স বিতরণ, ডিসপ্লে ম্যানেজার এবং ডেস্কটপ পরিবেশের মধ্যে পরিবর্তিত হয় between কখনও কখনও চেইনের একটি প্রোগ্রাম স্পষ্টভাবে একটি লগইন শেলটি আহ্বান করে; কখনও কখনও প্রোগ্রামগুলির মধ্যে একটি স্পষ্টভাবে পড়ে ~/.profile; এবং কখনও কখনও এর কিছুই ~/.profileহয় না এবং পড়ে না।
পরিবর্তনশীলতার উদাহরণ দেওয়ার জন্য, উবুন্টু 10.04-তে, জড়িত স্ক্রিপ্টগুলির দিকে তাত্ক্ষণিকভাবে আমি বলতে পারি: আপনি যদি কেডিএম বা এলএক্সডিএম দিয়ে লগ ইন করেন ~/.bash_profileতবে তা যদি পড়ে থাকে তবে ~/.profileঅন্যথায়; আপনি জিডিএম দিয়ে লগ ইন করলে কেবল ~/.profileপঠিত হয়; আপনি যদি এক্সডিএম দিয়ে লগ ইন করেন ~/.profileতবে তা পড়বে না।
আমার জানা সমস্ত সিস্টেম প্রতি ব্যবহারকারী পরিবেশের ভেরিয়েবলগুলি সেট করার কোনও উপায় সরবরাহ করে। দুর্ভাগ্যক্রমে কোন সাধারণ উত্তর নেই।
মনে রাখবেন যে কখনও কখনও আপনি হয় পরিবেশের ভেরিয়েবলগুলি সেট করতে ~/.bashrcবা জিইউআই পরিবেশে প্রতিটি টার্মিনালে লগইন শেল শুরু করার জন্য সুপারিশগুলি দেখতে পাবেন । দুটোই খারাপ ধারণা; এর অন্যতম কারণ আপনি যে সমস্যার মুখোমুখি হলেন তা হ'ল আপনার পরিবেশের ভেরিয়েবলগুলি কেবলমাত্র টার্মিনালের মাধ্যমে শুরু হওয়া প্রোগ্রামগুলিতে পাওয়া যায় এবং প্রোগ্রামগুলিতে সরাসরি আইকন বা মেনু বা কীবোর্ড শর্টকাট দিয়ে শুরু হয় না।
.profileপড়া হয় যখন আপনি লগ ইন এনভায়রনমেন্ট ভেরিয়েবল রাখতাম। .bashrcকাজ না করে, এবং আপনার দৃশ্যকল্প দেখায় যে: (সম্ভবতঃ গুই) আবেদন যে এই শেল আপনার এনভায়রনমেন্ট ভেরিয়েবল থাকা উচিত চালায়, তবে যদি আপনি তাদের মধ্যে সংজ্ঞায়িত .bashrc, এটা doesn ' টি।
এর সুনির্দিষ্ট উত্তরটি ব্যাশ স্টার্টআপ ফাইলগুলিতে ব্যাশ ম্যান পৃষ্ঠা বিভাগে রয়েছে । "যখন একটি ইন্টারেক্টিভ শেল যা লগইন শেল নয় এটি শুরু করা হয়, বাশ file / .bashrc থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে, যদি সেই ফাইলটি বিদ্যমান থাকে।"
আপনার অন্যান্য প্রশ্নের জবাবগুলি নির্দেশ করে যে আসলটি আসলে চলবে না bash। ইমাকস eshellহয় না bash। eshellবোঝা .bashrcযাচ্ছে যে বোঝা হবে তেমনি ত্রুটিযুক্ত হিসাবে বোঝা zshবা cshলোড হবে .bashrc। এটি আলাদা শেল shell
আমি দুটি বিকল্প দেখতে পাচ্ছি:
bashএবং এর জন্য এলিস্প কোড উত্পন্ন করে eshell।নকল ছাড়াই কোনও পথে কোনও ডিরেক্টরি যুক্ত করার বিষয়ে আপনি আলোচনায় আগ্রহীও হতে পারেন ।
আপনার PATH কে আপনার ~ /। প্রোফাইলে সেট করা কেবলমাত্র কাজ করা উচিত। ব্যাশ অন্তর্ভুক্ত করার বিষয়ে আমি জানি প্রতিটি পসিক্স-অনুগত বা বোর্নের মতো শেল লগইন করে সেই ফাইলটি পড়বে। আপনি যদি এই ফাইলটিতে পরিবর্তন করেন তবে পরিবর্তনগুলি কার্যকর করতে আপনাকে লগ আউট করতে হবে এবং আবার লগ ইন করতে হবে। যেহেতু PATH আপনার লগইন প্রক্রিয়াটির পরিবেশের অংশ তাই এটি পরবর্তীকালে শুরু হওয়া প্রতিটি শেলের কাছে রফতানি করা উচিত।