.Bashrc এ রফতানি PATH লাইন কী করে?


9

আমি লিনাক্সে তেমন আছি না এবং টিউটোরিয়ালের পরে আমারও নিম্নলিখিত সন্দেহ আছে।

আমাকে bashrcফাইলটি পরিবর্তন করতে হবে। এই ফাইলটিতে কোন ধরণের সেটিংস রয়েছে? আমি মনে করি বাশ শেল পরিবেশের সাথে সম্পর্কিত কিছু তবে আমি এটি সম্পর্কে তেমন নিশ্চিত নই।

আমাকে এই লাইনটি sertোকাতে হবে:

export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH

এই লাইনটি ঠিক কী করে?

আমি মনে করি যে exportস্টেটমেন্টটি একটি নতুন ভেরিয়েবল তৈরি করতে ব্যবহৃত হয় যা এটি অন্যান্য প্রোগ্রামের জন্য উপলব্ধ হয়।

তবে এই লাইনটি ঠিক কী করে? কি PATHভেরিয়েবলের নাম যে আমি সংজ্ঞা করছি? কী $HOME?

মানে কি :মধ্যে প্রতীক PATH=$HOME/.local/binএবং $HOME/.local/usr/binএবং $PATHঅধ্যায় পূর্ববর্তী এক্সপ্রেশনে?

এই অভিব্যক্তিটির অর্থ কী?


আইটেমগুলির মধ্যে হ'ল প্রতিটি বিভাগের জন্য পৃথককারী। এটি ছাড়া আপনার পথটি একটানা চলতে থাকবে এবং কাজ করবে না।
টেরেন্স

উবুন্টুতে এই ধরণের PATHপরিবর্তনগুলি ~/.profileফাইলে ইতিমধ্যে হয়ে গেছে , সুতরাং একই ধরণের জিনিসগুলি করা কিছুটা বেমানান ~/.bashrc~/.profileপ্রয়োজনে ইতিমধ্যে কোডটি সংশোধন করা ভাল আইএমও । বর্তমানে ডিফল্ট ~/.profileফাইলটিতে এই লাইনটি অন্তর্ভুক্ত রয়েছে:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
গুনার হেজালমারসন

@ গুন্নারহাজালমারসন: কিছু পরিস্থিতি রয়েছে যা .প্রফাইল এবং .বাশ্রাককে আলাদা করে তোলে। প্রোফাইলে ফাইলটি লগইন শেল দ্বারা পার্স করা হয় সাবসেল দ্বারা নয়। তবে যেহেতু আপনাকে সাব-শেল শুরু করার জন্য আপনাকে যে কোনও উপায়ে লগইন করতে হবে এটি ঠিক আছে কারণ সাব-শেলগুলি inherit পাথ উত্তরাধিকারী হবে। .Bashrc ফাইলটি লগইন শেল দ্বারা বিশ্লেষণ করা হবে না তবে সাব-শেল দ্বারা পার্স করা হবে। পার্থক্যটি আসে যখন আপনার কাছে এমন কিছু জিনিস থাকে যা লগইন শেলগুলির শিশু নয় (সম্ভবত কিছু অভিনব অটোমেশন স্ক্রিপ্ট যা অন্য স্ক্রিপ্টগুলিকে গিট কমিট হুক বলে calls) - প্রোফাইলে কোনও কিছু পড়তে হবে না তাই তারা এড়ানো হবে
slebetman

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

উত্তর:


16

এই প্রশ্নে উল্লিখিত সমস্ত কিছু পুনরায় কাটাতে,

exportঅংশ

exportলাইন মানে যে পরিবর্তনশীল যে আপনার ডিক্লেয়ার পরে এটি চাইল্ড প্রসেস থেকে অ্যাক্সেস করা যাবে। অন্য কথায়, প্রক্রিয়াগুলি exportশেলের পরিবেশের মাধ্যমে কীওয়ার্ডের পরে ঘোষিত চলকটি অ্যাক্সেস করতে সক্ষম হবে । সুতরাং, যদি আপনি ভালো কিছু করেনি export FOO="BAR"এবং তারপর আপনার শেল পরিবেশে পরিবর্তন sourced, আপনি টাইপ করতে পারে $FOOএবং পেতে BAR

PATHঅংশ

পাথ লাইনটি যেমনটি আপনি বলেছেন ঠিক তেমন: এটি PATHশেল পরিবেশের জন্য নামযুক্ত একটি পরিবর্তনশীল ঘোষণা করে। বাশ পরিবেশে PATHকম্পিউটার প্রোগ্রামগুলির সন্ধান কোথায় তা সংজ্ঞায়নের একটি বিশেষ উদ্দেশ্য রয়েছে purpose এটি আপনাকে সম্পূর্ণ ডিরেক্টরি টাইপ না করে স্ক্রিপ্টগুলির জন্য কাস্টম কমান্ডগুলি টাইপ করতে দেয়। নোট করুন যে PATH ডিফল্টরূপে রফতানির জন্য চিহ্নিত করা হয়েছে, সুতরাং এই লাইনটি নতুন করে লিখতে হবে না। যদিও এটি আঘাত করে না।

$HOMEমধ্যে PATHপরিবর্তনশীল

PATHভেরিয়েবলের জন্য নির্ধারিত পথের শুরুতে $HOMEঘোষিত হয়। এর অর্থ হ'ল কম্পিউটারটি সঞ্চিত মানটি বেশ পরিমাণে দখল করবে HOMEএবং এটি পড়ার সময় বাকী লাইনের সামনে কপি-পেস্ট করবে।

:উভয় পাথ মধ্যে

:বাক্যে কমা দেওয়ার সমতুল্য। এটি কেবল তিনটি ডিরেক্টরি পৃথক করে। এই তিনটি ডিরেক্টরি ছাড়া, কনসোলটি প্রাপ্ত কমান্ডগুলিকে স্বীকৃতি দেবে না। এই তিনটি স্থান হ'ল তিনটি ডিরেক্টরি যা সাধারণত স্ক্রিপ্ট / কমান্ড ফাইল সংরক্ষণ করার জন্য ব্যবহৃত হয় এবং তাই ফাইলের পুরো পথটি না লিখে টার্মিনালের মাধ্যমে অ্যাক্সেসযোগ্য হওয়া উচিত।


দুর্দান্ত উত্তর! "রফতানি লাইনটির অর্থ আপনি যে পরিবর্তনশীলটি শিশু প্রসেসের জন্য অ্যাক্সেসযোগ্য হবেন তার পরে আপনি ঘোষণা করেন" এই শিশুরা যে টার্মিনালটি প্রসারণ করে সেখান থেকে আমি একটি কমান্ড চালাব?
ভাদসাম্বার

5

PATHপরিবর্তনশীল জানি ব্যাশ যেখানে এক্সিকিউটেবল প্রোগ্রামের জন্য দেখুন, তাই যদি আপনি একটি স্ক্রিপ্ট বা অন্য কিছু এক্সিকিউটেবল ফাইল আছে দেয় $HOME/.local/binপরিবর্তন, PATHআপনি টাইপ করুন এবং যে ফাইল ঠিক মত আপনি না চালানোর দেওয়া হবে lsবা df

exportকেবলমাত্র PATHব্যাশ থেকে চালিত অন্যান্য প্রোগ্রামগুলির জন্য সেই পরিবর্তনশীলটি উপলব্ধ করার অর্থ ।

হিসাবে : , এটি প্রতিটি ডিরেক্টরি জন্য কেবল একটি বিভাজক। এটি শব্দের তালিকার কমা হিসাবে একই, এর চেয়ে বেশি কিছুই নয়।

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