আমি খোলার প্রতিটি টার্মিনালে কেন আমাকে `উত্স। প্রোফাইল to করতে হবে?


10

আমরা যখন ~/.profileউবুন্টুতে কিছু পরিবর্তনশীল পরিবর্তন করি , তখন আমরা কমান্ডটি কার্যকর করি source .profile। তারপরে পরিবর্তনটি কেবল এই টার্মিনালে কার্যকর । যদি আমরা একটি নতুন টার্মিনাল খুলি তবে আমাদের source .profileআবার কমান্ডটি কার্যকর করতে হবে। সুতরাং মনে হচ্ছে বিভিন্ন টার্মিনালের নিজস্ব পরিবেশ রয়েছে যদিও তারা একই ব্যবহারকারীর অন্তর্ভুক্ত।

প্রতিটি টার্মিনালের নিজস্ব পরিবেশের পথ তৈরি করে কী সুবিধা? দেখে মনে হচ্ছে যে একই টার্মিনাল যা একই ব্যবহারকারীর অন্তর্ভুক্ত একই পরিবেশের পরিবর্তনশীল ভাগ করে নেওয়া ভাল।



যদি আপনার লগইন "শেল" একটি জিইউআই হয়, এটি আপনার জিইউআই এর পরিবর্তে sh এর লগইন স্ক্রিপ্টে ভার সেট করতে খুব বেশি সহায়তা করে না।
ইকগামি

উত্তর:


14

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

বিভিন্ন টার্মিনাল উইন্ডোগুলির আলাদা পরিবেশ রয়েছে এমনটি নয়, তবে এটি বর্তমান সেলের মধ্যেই সোর্সিং চালিত ~/.profileকরে ~/.profile( sourceকমান্ডটি ঠিক এটিই করে)।

বিপরীতে, পরিবর্তনটি ~/.bashrcতত্ক্ষণাত আপনার যে কোনও নতুন টার্মিনাল উইন্ডোটি খোলার বা আপনার টাইপ করে শুরু করা কোনও বাশ শেলকে প্রভাবিত করবে bash, কারণ এটি সমস্ত ইন্টারেক্টিভ বাশ শেল দ্বারা উত্সাহিত হয়।


3

পরিবেশের ভেরিয়েবলগুলি কেবল ব্যবহারকারী পছন্দগুলির জন্য নয়। তারা পিতামাতার প্রক্রিয়া থেকে শুরু করে শিশু প্রক্রিয়াগুলিতে বিভিন্ন ধরণের তথ্য সেটিংয়ের যোগাযোগের জন্য একটি জেনেরিক প্রক্রিয়া।

এমন অনেকগুলি ঘটনা রয়েছে যেখানে কোনও প্রক্রিয়া শুরু হয় কেবলমাত্র প্রক্রিয়াগুলিকে প্রভাবিত করতে নির্দিষ্ট পরিবেশের পরিবর্তনগুলি নির্ধারণ করে । উদাহরণস্বরূপ, কোনও স্ক্রিপ্ট ইচ্ছাকৃতভাবে কমান্ডগুলির জন্য লোকেল সেটিংসটি এটি শুরু করার জন্য পুনরায় সেট করতে পারে, যেমন এটি তাদের থেকে আউটপুটকে বিশ্লেষণ করতে পারে। অনেক বড় সফটওয়্যার প্যাকেজগুলির জন্য বিল্ড স্ক্রিপ্টগুলি makeপরিবেশের ভেরিয়েবলের মাধ্যমে একে অপরের সাথে সমন্বিত হওয়ার নেস্টেড আহবানগুলি ব্যবহার করে । বিশেষায়িত সরঞ্জামগুলিতে programs LD_PRELOAD বা AT PATH দিয়ে কৌশলগুলি চালিয়ে শুরু করা অন্যান্য প্রোগ্রামগুলির কাজের পরিস্থিতি পরিবর্তন করার প্রয়োজন হতে পারে।

একটি দীর্ঘ সংকলন অন্যটিতে চলাকালীন কোনও ব্যবহারকারী যদি আলাদা উইন্ডোতে কিছু করেন তবে কেবল তার জাকের পিছনে তার সমস্ত প্রক্রিয়াগুলির পরিবেশগত পরিবর্তনগুলি জাদুকরভাবে বদলে যাবে, পাগলামি এবং বিশৃঙ্খলার ফলাফল হবে।

অন্যান্য পরিবেশের ভেরিয়েবলগুলিতে নির্দিষ্ট অধিবেশনটির প্রক্রিয়া শুরু হওয়ার বিষয়ে তথ্য থাকে Prog প্রোগ্রামগুলি প্রত্যাশা করে $ টিআরএম নির্দিষ্ট টার্মিনাল (বা টার্মিনাল এমুলেটর) এর সাথে সংযুক্ত সেগুলির কমান্ড সেটটি বর্ণনা করবে; সাধারণ ব্যবহারকারী প্রতি সেটিংটি বিভিন্ন সিস্টেমে বিভিন্ন ধরণের টার্মিনালের সাথে একই সিস্টেমে লগইন করা অসম্ভব করে তোলে making এমনকি যদি আপনার কাছে কেবলমাত্র টার্মিনাল হার্ডওয়্যারটির এক টুকরা থাকে এবং কখনই দূর থেকে লগইন করেন না, যেমন প্রোগ্রামগুলি screenতাদের সেশনের অভ্যন্তরে প্রসেসগুলির জন্য একটি ভিন্ন $ TERM নির্ধারণের উপর নির্ভর করে।

আরও ভাল প্রশ্ন হ'ল আমরা কেন ব্যবহারকারীর পছন্দসই সেটিংসের জন্য প্রতি ব্যবহারকারীর ডাটাবেসের পরিবর্তে প্রসেস-টু-সাব-প্রসেস যোগাযোগ ব্যবস্থা ব্যবহার করব?

উত্তর: কারণ এটি যথেষ্ট ভাল কাজ করে এবং প্রতি ব্যবহারকারী ডাটাবেস তৈরির সুবিধাগুলি এত বড় নয় যে পরিবেশের ভেরিয়েবলের পরিবর্তে সমস্ত কিছু ব্যবহারের পরিবর্তনের কাজটি করা হবে।

(আমি খুব কম পক্ষপাত সেটিংস মনে করতে পারেন যেখানে না হারান কার্যকারিতা না অনুক্রমে উদাহরণস্বরূপ, কিছু ব্যবহারের ক্ষেত্রে যেখানে এটা তাদের কেবলমাত্র একটি স্ক্রিপ্ট নির্বাহ জন্য পরিবর্তন করতে সুবিধাজনক হবে। তাই, সবকিছু এখনও হতে হবে overridable দ্বারা পরিবেশের ভেরিয়েবল, যার ফলে যুক্ত জটিলতা এবং আরও বিভ্রান্ত ব্যবহারকারীদের পরিণতি ঘটে)।

বিকল্পগুলির অস্তিত্ব নেই বলে মনে হয় না । উদাহরণস্বরূপ, এক্স রিসোর্সগুলি প্রতি প্রক্রিয়া পরিবর্তে ডিসপ্লে সেশন অনুযায়ী। কিন্তু তারা কম্যান্ড-লাইন প্রোগ্রাম জন্য অ্যাক্সেসের করা কঠিন - এবং কম্যান্ড-লাইন প্রোগ্রাম সাধারণত দূরবর্তী লগইন যে এমনকি না কাজ করতে হবে আছে একটি এক্স সার্ভারের সাথে সংযোগ করতে।

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