bash.bashrc এবং / etc / এনভায়রনমেন্ট ফাইলের মধ্যে পার্থক্য


42

এখনও অবধি আমি bash.bashrcফাইলটিতে আমার পরিবেশের ভেরিয়েবলগুলি সেট করেছিলাম । সম্প্রতি আমাকে /etc/environmentফাইলটি ব্যবহার করতে বলা হয়েছিল । ভাল, উভয় ঠিক আছে।

সুতরাং, তাদের মধ্যে পার্থক্য কি?

আমি এটি googled এবং আমি "বাশার্ক নির্দিষ্ট ব্যবহারকারী এবং পরিবেশের জন্য ব্যবহার করা হয়, সিস্টেম প্রশস্ত"। এখানে বিস্তৃত সিস্টেম বলতে কী বোঝায়? /etc/bash.bashrcআমার মনে হয় পরিবর্তন ব্যবস্থাগুলিও প্রয়োগ করছে। আমি ভুল হলে আমাকে সংশোধন করুন। যে কোনও ধরণের সাহায্যের প্রশংসা করা হবে ..

উত্তর:


35

একটি পার্থক্য হ'ল /etc/environmentকেবল ভেরিয়েবল সংজ্ঞা রয়েছে এবং কোনও ধরণের পরিবর্তনশীল প্রসার / ইন্টারপোলেশন দিয়ে যেতে দেখা যায় না। সুতরাং, আপনি সংজ্ঞাগুলিতে পরিবর্তনগুলি উল্লেখ করতে পারবেন না can't উদাহরণস্বরূপ এটি কাজ করবে না:

A="else"
B="something $A"

বি আক্ষরিক হবে something $A, প্রত্যাশিত নয় something else

এই প্রশ্নটি দেখুন ।

উপায় দ্বারা, উত্তর আপনি Google এর মাধ্যমে পাওয়া একটি ব্যবহারকারীর উল্লেখ করছে বলে মনে হচ্ছে ~/.bashrc, বদলে সিস্টেম-ব্যাপী /etc/bash.bashrc। এটি আপনার বিভ্রান্তির কারণ হতে পারে।


যখন দুটি ফাইল একই জিনিস / ইত্যাদি / পরিবেশ এবং /etc/bash.bashrc করে তখন ~ / .bashrc এর উদ্দেশ্য কী?
trapank

6
/Etc/bash.bashrc কার্যকর করা হয় যদি কোনও ব্যবহারকারী বাশ খোলে। Directory / .bashrc কেবল তখনই কার্যকর করা হয় কেবলমাত্র হোম ডিরেক্টরি ডিরেক্টরি যেখানে এটি সংরক্ষণ করা হয়েছে তার মালিক কোনও ব্যাশ খুললে।
আন্দ্রে স্ট্যানেক

18

/etc/environmentফাইল বুট প্রত্যেক ব্যবহারকারীর জন্য পরিবর্তনশীল সিস্টেম জুড়ে সেট করে। শেলটি কোনও ব্যবহারকারীর দ্বারা খোলার সাথে সাথে কমান্ডগুলি /etc/bash.bashrcকার্যকর করা হয় bash। সুতরাং bashকমপক্ষে একবারে শেল না খোলার পরে ভেরিয়েবলগুলি সেট করা হবে না ।


দুঃখিত আমি লিনাক্সে নবাগত। বাশ শেল খুলবে কোথায়? এবং অন্য জিনিস যখন ব্যাশ শেলটি খোলার পরে এটি / etc / enviornment এ পরিবর্তনশীল সেটটি ওভাররাইড করবে না?
ট্র্যাপাঙ্ক

আমি নিশ্চিত নই / / ইত্যাদি / পরিবেশটি ঠিক কখন কার্যকর হয় তবে আপনি যখন আপনার ডেস্কটপ পরিবেশে প্রবেশ করেন তখন উবুন্টু দ্বারা /etc/bash.bashrc সম্পাদন করা হয়। এই কারণেই যদি আপনি সেখানে ভেরিয়েবলগুলি সেট করেন তবে এটি কাজ করে। আমার অনুমান যে আপনার ডেস্কটপে প্রবেশের আগে বুট করার সময় / etc / পরিবেশ একবারে কার্যকর করা হয় এবং /etc/bash.bashrc এর প্রয়োগটি ভেরিয়েবলগুলি ওভাররাইট করে। তবে আবারও: আমি এ সম্পর্কে নিশ্চিত নই।
আন্দ্রে স্ট্যানেক

4
এটি লগইন উপর, বুট না!
slm

6

এবং আপনি যেমন " সিস্টেম প্রশস্ত " সম্পর্কে জিজ্ঞাসা করছেন :

/etcডিরেক্টরিতে অবস্থিত কনফিগারেশন ফাইলগুলি সিস্টেমের সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য। জন্য /etc/bash.bashrcএই সব এবং সবকিছু যে মেশিনে "বাহিত আবার শেল" ব্যাশ ওরফে ব্যবহার করছে করার মানে হবে। এমনকি যদি আপনি এটির ব্যবহার করে একমাত্র মানুষ হন, তবে সেখানে "প্রযুক্তি ব্যবহারকারীর" প্রভাবিত হতে পারে (কেবল একবার দেখুন এবং /etc/passwd"/ বিন / বাশ" শব্দটি সেখানে কতবার ব্যবহৃত হয়েছে তা পরীক্ষা করুন - বা ব্যবহার করুন grep bash /etc/passwd | wc -lযা আপনাকে দিতে হবে সেই নম্বরটি সরাসরি (অর্থ: "/" / পাসডাব্লু "ফাইল থেকে" বাশ "স্ট্রিং সহ সমস্ত রেখাকে" দখল "করুন, এবং ফলাফলগুলি (" | ")" wc "(শব্দের গণনা) কমান্ডে পাঠিয়ে লাইনগুলি গণনা করুন ( "-l")।

সুতরাং আপনার ব্যবহারকারীর পক্ষে ~/.bashrcপরিবর্তে এটি পরিবর্তন করা অনেক বেশি নিরাপদ (অর্থাত্ ".bashrc" ফাইলটি - একটি প্রধান বিন্দু সহ, হ্যাঁ - আপনার হোম ডিরেক্টরিতে যেমন, যেমন /home/ankur/.bashrc) কেবল আপনার ব্যবহারকারীকে প্রভাবিত করে এবং সমস্ত কিছু একা ফেলে দেয় । /etcসিস্টেম-ব্যাপী পরিবর্তনগুলি আসলেই উদ্দেশ্যযুক্ত হলে কেবলমাত্র ফাইলগুলিতে পরিবর্তন করা উচিত।

পাশাপাশি: উভয় কনফিগারেশন উপস্থিত থাকলে ব্যবহার করা হবে। প্রথমত, সিস্টেম-প্রশস্ত ফাইলটি (এখানে /etc/bash.bashrc:) পড়া হয় এবং "উত্সাহিত" হয় (এটি সেটিংস বর্তমান সেশনে প্রয়োগ করা হয়), এবং তারপরে ব্যবহারকারীরা /home/username/.bashrcএকই হ্যান্ডেল করা হয় এবং এর ফলে গ্লোবাল থেকে সেটিংসে পরিবর্তন বা ওভাররাইট পরিবর্তন করতে পারে /etc/bash.bashrcফাইল।


3

সিস্টেম জুড়ে এবং ব্যবহারকারী ব্যাপক সুযোগ আলোচনা, এক সবচেয়ে গুরুত্বপূর্ণ পার্থক্য নেই বিয়ন্ড /etc/environmentহয় না একটি স্ক্রিপ্ট ছাড়া অন্য ~/.bashrc

আপনি ভেরিয়েবলের ভিতরে /etc/environmentডেরিফার করতে পারবেন না , এর ভেরিয়েবল অ্যাসাইনমেন্ট যা আক্ষরিকভাবে রেখার মান গ্রহণ করে (যেমনটি ইতিমধ্যে রোডমার দ্বারা উল্লিখিত))

আপনি নতুন পথ সংযোজন করার চেষ্টা করে আপনি যদি $PATHভিতরে প্রবেশ করান তবে আপনার উবুন্টু আপনাকে লক আউট করবে/etc/environment

PATH=$PATH:/new_path

যদি আপনার উবুন্টু জিনোম বা ইউনিটি লগইন পৃষ্ঠা ভুল পাসওয়ার্ড না অভিযোগ করে আপনাকে প্রবেশ করতে ব্যর্থ হয়। এবং আপনি সম্প্রতি সংশোধন করেছেন /etc/environment, সম্ভবত এটি ক্ষেত্রে।

একটি ফিক্সটি হ'ল ভার্চুয়াল কনসোল CTRL+ ALT+ F1লগইন কনসোলটি লগইন করা, ম্যানুয়ালি পরীক্ষা করা $PATHএবং /etc/environmentফাইলটি ঠিক করা ।

মতে এই , /etc/environmentপিএএম স্ট্যাকের, যা লাইন দ্বারা এনভায়রনমেন্ট ভেরিয়েবল লাইন মান লোড করা হয়।


-1

দুই এর মধ্যে পার্থক্য যে /etc/enivironmentফাইল সকল ব্যবহারকারীকে জন্য কাজ করবে যখন bash.bashrc ফাইল বিশেষ করে যে ব্যবহারকারী শুধুমাত্র জন্য কাজ করবে। এবং আপনি যদি /etc/environmentফাইলটিতে কিছু ভুল করেন তবে পরিণতিগুলি মারাত্মক হতে পারে যখন আপনি সহজেই / ইত্যাদি / এনভায়রনমেন্ট ফাইলের বিষয়বস্তু অনুলিপি করে bash.bashrc ফাইলে পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে পারেন। তবে প্রথম পছন্দটি bash.bashrcফাইলটিকে এবং তারপরে / ইত্যাদি / এনভায়রনমেন্ট ফাইলে দেওয়া হয়। এমন নয় যে আপনি যদি bash.bashrcফাইলটিতে পরিবর্তন করেন তবে টার্মিনালটি স্থানীয় ব্যবহারকারী ফাইলকে (যেমন, bash.bashrc) এবং তারপরে মূল ফাইলকে (যেমন, /etc/environment) প্রথম পছন্দ দেয় ।


আমি মনে করি আপনি using / .bashrc এবং /etc/bash.bashrc ফাইল গুলিয়ে ফেলছেন। প্রথমটি শেল খোলার ব্যবহারকারীর কাছে স্থানীয়, দ্বিতীয়টি শেল খোলার সমস্ত ব্যবহারকারীদের কাছে বৈশ্বিক।
ডেনিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.