বাশ সহ পরিবেশের ভেরিয়েবল স্থাপনের জন্য কোন সেটআপ ফাইলগুলি ব্যবহার করা উচিত?


9

আমি জিজ্ঞাসা এবং উত্তর পেয়েছিলাম এখানে , এবং এখানে পথ পরিবর্তনশীল কিভাবে অ্যাপ্লিকেশন সক্রিয় করা হয় উপর নির্ভর করে ভিন্ন পথ নাম আছে।

  • আমি ব্যাশ দিয়ে সফ্টওয়্যারটি কীভাবে শুরু করি তা বিবেচনা না করে কোন সেটআপ ফাইলগুলিতে (.bashrc, .profile, ...) একই PATH ভেরিয়েবল ব্যবহার করা উচিত?

উত্তর:


15

Ditionতিহ্যগতভাবে, ইউনিক্স সিস্টেমে প্রতি ব্যবহারকারীর এনভায়রনমেন্ট ভেরিয়েবলগুলি সংজ্ঞায়িত করার জায়গাটি ~/.profile। লগইন শেলটি (যেমন আপনি লগ ইন করার পরে শুরু হওয়া প্রোগ্রাম এবং আপনি এতে কমান্ড টাইপ করতে পারেন) এই ফাইলটি পড়তে পারে তবে শর্ত হয় যে লগইন শেলটি বোর্ন-সামঞ্জস্যপূর্ণ শেল।

বাশ একটি বোর্ন-সামঞ্জস্যপূর্ণ শেল। লগইন শেল হিসাবে যখন এটি আহ্বান করা হয় তখন ~/.bash_profileএই ফাইলটি উপস্থিত থাকে এবং ~/.profileযদি ~/.bash_profileনা থাকে তবে তা পড়ে।

থাম্বের নিয়ম হিসাবে, আপনি যদি নিজের পাসওয়ার্ডটি পাঠ্য মোডে টাইপ করেন (যেমন, কোনও পাঠ্য কনসোলে বা ssh সহ দূরবর্তীভাবে), তবে আপনি যে শেলটি পাবেন সেটি লগইন শেল।

তবে, আপনি যদি কোনও গ্রাফিকাল প্রোগ্রামে আপনার পাসওয়ার্ডটি টাইপ করেন এবং গ্রাফিকাল পরিবেশে লগইন করেন তবে এটি সাধারণ লগইন শেলটিকে বাইপাস করে। .profileএই ক্ষেত্রে পড়া হয় কিনা গ্রাফিকাল সেশনটি কীভাবে সেট আপ করা হয় তার উপর নির্ভর করে; উদাহরণস্বরূপ এটি লিনাক্স বিতরণ, ডিসপ্লে ম্যানেজার এবং ডেস্কটপ পরিবেশের মধ্যে পরিবর্তিত হয় between কখনও কখনও চেইনের একটি প্রোগ্রাম স্পষ্টভাবে একটি লগইন শেলটি আহ্বান করে; কখনও কখনও প্রোগ্রামগুলির মধ্যে একটি স্পষ্টভাবে পড়ে ~/.profile; এবং কখনও কখনও এর কিছুই ~/.profileহয় না এবং পড়ে না।

পরিবর্তনশীলতার উদাহরণ দেওয়ার জন্য, উবুন্টু 10.04-তে, জড়িত স্ক্রিপ্টগুলির দিকে তাত্ক্ষণিকভাবে আমি বলতে পারি: আপনি যদি কেডিএম বা এলএক্সডিএম দিয়ে লগ ইন করেন ~/.bash_profileতবে তা যদি পড়ে থাকে তবে ~/.profileঅন্যথায়; আপনি জিডিএম দিয়ে লগ ইন করলে কেবল ~/.profileপঠিত হয়; আপনি যদি এক্সডিএম দিয়ে লগ ইন করেন ~/.profileতবে তা পড়বে না।

আমার জানা সমস্ত সিস্টেম প্রতি ব্যবহারকারী পরিবেশের ভেরিয়েবলগুলি সেট করার কোনও উপায় সরবরাহ করে। দুর্ভাগ্যক্রমে কোন সাধারণ উত্তর নেই।

মনে রাখবেন যে কখনও কখনও আপনি হয় পরিবেশের ভেরিয়েবলগুলি সেট করতে ~/.bashrcবা জিইউআই পরিবেশে প্রতিটি টার্মিনালে লগইন শেল শুরু করার জন্য সুপারিশগুলি দেখতে পাবেন । দুটোই খারাপ ধারণা; এর অন্যতম কারণ আপনি যে সমস্যার মুখোমুখি হলেন তা হ'ল আপনার পরিবেশের ভেরিয়েবলগুলি কেবলমাত্র টার্মিনালের মাধ্যমে শুরু হওয়া প্রোগ্রামগুলিতে পাওয়া যায় এবং প্রোগ্রামগুলিতে সরাসরি আইকন বা মেনু বা কীবোর্ড শর্টকাট দিয়ে শুরু হয় না।


কিছু অ্যাপ্লিকেশন ইন্টারেক্টিভ নন-লগইন শেলগুলি ডাকে, যার অর্থ। প্রোফাইল এবং .বাশ_প্রোফাইলটি পড়া হয় না। আপনি যদি এই অ্যাপ্লিকেশনগুলির জন্য এনভির ভারসেট সেট করতে চান, তবে এটির একটি উপায় হ'ল তাদের .bashrc এ সেট করা যদিও এটির জন্য এটির জায়গা হবেনা; দেখতে github.com/mobile-shell/mosh/issues/102#issuecomment-12503646
উইলিয়াম

@William .profileপড়া হয় যখন আপনি লগ ইন এনভায়রনমেন্ট ভেরিয়েবল রাখতাম। .bashrcকাজ না করে, এবং আপনার দৃশ্যকল্প দেখায় যে: (সম্ভবতঃ গুই) আবেদন যে এই শেল আপনার এনভায়রনমেন্ট ভেরিয়েবল থাকা উচিত চালায়, তবে যদি আপনি তাদের মধ্যে সংজ্ঞায়িত .bashrc, এটা doesn ' টি।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

মোশ একটি জিইউআই নয়, এটি স্ট্যাশের বিকল্প। আমি এর আচরণের পক্ষ নিচ্ছি না, আমি এবং অন্যদের যে সমস্যার মুখোমুখি হয়েছিল, কেবল তাদেরই সাহায্য করার চেষ্টা করছি, যেমনটি আমি সংযুক্ত গিথুব ইস্যুতে বর্ণনা করেছি।
উইলিয়াম

2

এর সুনির্দিষ্ট উত্তরটি ব্যাশ স্টার্টআপ ফাইলগুলিতে ব্যাশ ম্যান পৃষ্ঠা বিভাগে রয়েছে । "যখন একটি ইন্টারেক্টিভ শেল যা লগইন শেল নয় এটি শুরু করা হয়, বাশ file / .bashrc থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে, যদি সেই ফাইলটি বিদ্যমান থাকে।"

আপনার অন্যান্য প্রশ্নের জবাবগুলি নির্দেশ করে যে আসলটি আসলে চলবে না bash। ইমাকস eshellহয় না basheshellবোঝা .bashrcযাচ্ছে যে বোঝা হবে তেমনি ত্রুটিযুক্ত হিসাবে বোঝা zshবা cshলোড হবে .bashrc। এটি আলাদা শেল shell

আমি দুটি বিকল্প দেখতে পাচ্ছি:

  1. আপনার নিজস্ব স্ক্রিপ্ট তৈরি করুন যা ডিরেক্টরিগুলির একটি তালিকা গ্রহণ করে এবং এর জন্য উপযুক্ত বাশ কোড bashএবং এর জন্য এলিস্প কোড উত্পন্ন করে eshell
  2. আপনার ESHELL বা শেল পরিবেশ পরিবর্তনশীল সেট করুন যাতে আপনি বাস্তবে emacs এর মধ্যে ব্যাশ চালান । এটা যা আমি করি. ইশ এমকেসে বাশ কাজ করে।

নকল ছাড়াই কোনও পথে কোনও ডিরেক্টরি যুক্ত করার বিষয়ে আপনি আলোচনায় আগ্রহীও হতে পারেন


1

আপনার PATH কে আপনার ~ /। প্রোফাইলে সেট করা কেবলমাত্র কাজ করা উচিত। ব্যাশ অন্তর্ভুক্ত করার বিষয়ে আমি জানি প্রতিটি পসিক্স-অনুগত বা বোর্নের মতো শেল লগইন করে সেই ফাইলটি পড়বে। আপনি যদি এই ফাইলটিতে পরিবর্তন করেন তবে পরিবর্তনগুলি কার্যকর করতে আপনাকে লগ আউট করতে হবে এবং আবার লগ ইন করতে হবে। যেহেতু PATH আপনার লগইন প্রক্রিয়াটির পরিবেশের অংশ তাই এটি পরবর্তীকালে শুরু হওয়া প্রতিটি শেলের কাছে রফতানি করা উচিত।

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