কেন প্রোফাইলে (এবং .brcrc নয়) ~ / বিনকে পথে যুক্ত করে?


9

যেহেতু .bashrcবেশি "জেনেরিক" (যে .profileসূত্রে এটি সূত্র ধরে) তাই "অন্তর্ভুক্ত ~/binকরার পথে" পদ্ধতিটি কেন ভিতরে নেই .bashrc? ব্যবহারকারী এটি লগ-ইন শেলটিতে কেন চান না? (বিশেষত আজকাল, যেখানে নন-লগইন শেলগুলি বেশি দেখা যায় *))

আমি জানি আমি ম্যানুয়ালি এই জাতীয় পরিবর্তন করতে পারি তবে এর কারণ আছে কিনা তা জানতে চাই।

* এটি প্রমাণ করতে পারে না, তবে আমি মনে করি এটিই কেস।

উত্তর:


13

~/.bashrcএবং /etc/bash.bashrcপ্রতিবার একটি ইন্টারেক্টিভ bashশেল শুরু হওয়ার সাথে সাথে চালানো হয়।

বিপরীতে, ~/.profileএবং /etc/profileপ্রতিবার যে কোনও লগইন শেল শুরু হওয়ার সাথে সাথে চালানো হয়। সুতরাং এটি bashশেল হতে হবে না, তবে এটি লগইন শেল হতে হবে (এবং অনেকগুলি bashশেল উদাহরণ লগইন শেল নয় )।

  • একটি bashশেল শেল যেখানে শেল প্রোগ্রাম যা এটি উপলব্ধ করা হয় bashযেমন, বরং অন্য কিছু প্রোগ্রাম পরিবর্তে, dash
  • লগইন শেল হ'ল একটি শেল যা লগইনের জন্য ব্যবহারকারী ইন্টারফেস (গ্রাফিকাল বা কমান্ড-লাইন) সরবরাহ করার জন্য স্বয়ংক্রিয়ভাবে শুরু হয়। লগইন শেলটি বের হয়ে গেলে লগইন সমাপ্ত হয় termin

অতএব, একটি প্রশংসা স্থাপন করা PATHযা কোনও bashrcফাইলের মধ্যে প্রবেশগুলিকে সংযোজন করে :

  1. শেলটি না থাকলে কিছুই করবেন না bash, যা প্রায়শই হয়। উদাহরণস্বরূপ, PATHআপনি যখন কোনও গ্রাফিকাল লগইন সেশনে থাকবেন তখন তা সংশোধিত হবে। মনে রাখবেন, PATHকমান্ড-লাইন প্রোগ্রামগুলি দ্বারা কেবল ব্যবহৃত হয় না।

  2. নেস্টেড bashশেলগুলির উপস্থিতিতে এটি বারবার যুক্ত করুন । সুতরাং, যদি আপনি কোনও শেলের মধ্যে একটি শেল শুরু করেন - যা বিভিন্ন কারণে বিভিন্ন কারণে - এটি খুব সাধারণ - তবে আপনার একাধিক ~/binএন্ট্রি আপনার স্ট্যাক করা থাকবে PATH। এটি PATHপরিবেশের পরিবর্তনযোগ্য পড়তে অসুবিধাজনক করে তোলে এবং কখনও কখনও কর্মক্ষমতা হ্রাস করে।

এগুলি অযাচিত হবে। সুতরাং এটি একটি ফাইলে রাখা ভুলbashrc হবে; এটা সত্যিই অন্তর্গত ~/.profile~/.profileজন্য সঠিক জায়গা :

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

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


আমি বুঝেছি. তবে এই সিদ্ধান্তটি আমার পক্ষে এখনও কার্যকর হয় না। যদি এখনই কোনও টার্মিনাল খোলা থাকে তবে এটি কেবল .brcrc লোড হয়, তবে আমি আমার ব্যক্তিগত বিনটি দেখতে সক্ষম হব না।
Borges

@ বর্গস যদি ডিফল্ট কনফিগারেশন আপনার পক্ষে ভাল না কাজ করে তবে আপনার এটিকে পরিবর্তন করতে দ্বিধা করা উচিত। (এটি সর্বোপরি আপনার কম্পিউটার। বা কমপক্ষে আপনার অ্যাকাউন্ট।) তবে এটি এককালীন জিনিস বলে মনে হচ্ছে। এটি হ'ল binআপনি যখন লগইন করবেন তখন আপনার ব্যক্তিগত ডিরেক্টরি উপস্থিত ছিল না এবং এই লগইন সেশনের সময় আপনি এটি তৈরি করেছেন sounds আপনি যদি লগ আউট করে এবং পিছনে প্রবেশ করেন তবে এটি আপনার হবে PATH। যেহেতু আপনার ব্যক্তিগত binডিরেক্টরি তৈরি করা এমন এক জিনিস যা কেবল একবার করা দরকার তাই এটি এক সময়ের অসুবিধা।
এলিয়াহ কাগান

3

এটি কারণ traditionতিহ্যগতভাবে পরিবেশের পরিবর্তনশীলগুলি কেবলমাত্র /etc/profileবা ভিতরে যায় .profilebashrcফাইল alias লেখা, প্রম্পট সেটিংস, শেল অপশন এবং তাই ঘোষণা ভালো জিনিস (যেমন জিনিস আছে যা শেল সরাসরি সম্পর্কযুক্ত) জন্য।

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