.বাশার্ক, .বাশ_প্রফাইলে এবং। পরিবেশের মধ্যে পার্থক্য কী?


130

আমি বছরের বিভিন্ন * নিক্স-ভিত্তিক সিস্টেম ব্যবহার করেছি এবং মনে হচ্ছে যে আমি যে বাশ ব্যবহার করি তার প্রতিটি স্বাদে কোন স্টার্টআপ স্ক্রিপ্টগুলি চালানো যায় তা সিদ্ধান্ত নেওয়ার জন্য আলাদা অ্যালগরিদম থাকে। এনভায়রনমেন্ট ভেরিয়েবল এবং এলিয়াস সেটআপ করা এবং প্রারম্ভিক বার্তাগুলি (যেমন এমওটিডি) মুদ্রণের মতো কাজের উদ্দেশ্যে, কোন স্টার্টআপ স্ক্রিপ্ট এগুলি করার উপযুক্ত জায়গা?

অনেক কিছু নির্বাণ মধ্যে পার্থক্য কি .bashrc, .bash_profileএবং .environment? আমিও যেমন অন্যান্য ফাইল দেখা করেছি .login, .bash_loginএবং .profile; এগুলি কি কখনও প্রাসঙ্গিক? শারীরিকভাবে লগ ইন করার সময়, এসএসএসের মাধ্যমে দূরবর্তীভাবে লগ ইন করা এবং একটি নতুন টার্মিনাল উইন্ডো খোলার সময় কী কী পার্থক্য রয়েছে? প্ল্যাটফর্মগুলি জুড়ে কোনও গুরুত্বপূর্ণ পার্থক্য রয়েছে (ম্যাক ওএস এক্স (এবং এর টার্মিনাল.এপ সহ) এবং সাইগউইন বাশ)?

উত্তর:


73

শেল কনফিগার ফাইলগুলির সাথে প্রধান পার্থক্যটি হ'ল কিছু কেবল "লগইন" শেলগুলি দ্বারা পড়েন (যেমন আপনি যখন অন্য কোনও হোস্ট থেকে লগইন করেন, বা স্থানীয় ইউনিক্স মেশিনের পাঠ্য কনসোলে লগইন করেন)। এগুলিকে বলা হয়, বলা হয় .loginবা .profileবা .zlogin(আপনি কোন শেল ব্যবহার করছেন তার উপর নির্ভর করে)।

তারপরে আপনার কাছে কনফিগার করা ফাইল রয়েছে যা "ইন্টারেক্টিভ" শেলগুলি দ্বারা পড়া হয় (যেমন একটি টার্মিনালের সাথে সংযুক্ত (বা উইন্ডোনিং সিস্টেমের অধীনে একটি টার্মিনাল এমুলেটর চলমান হিসাবে বলা হয়) এটি নামের সাথে এইগুলি রয়েছে names মত .bashrc, .tcshrc, .zshrc, ইত্যাদি

bashযে এই complicates .bashrcহয় শুধুমাত্র একটি শেল উভয় এর দ্বারা পড়া ইন্টারেক্টিভ এবং অ লগইন যাতে আপনি পাবেন অধিকাংশ লোক শেষ পর্যন্ত তাদের বলছে, .bash_profileএছাড়াও পড়তে .bashrcভালো কিছু সঙ্গে

[[ -r ~/.bashrc ]] && . ~/.bashrc

অন্যান্য শেলগুলি আলাদাভাবে আচরণ করে - যেমন এর সাথে zsh, .zshrcসবসময় একটি ইন্টারেক্টিভ শেলের জন্য পড়া হয়, এটি লগইন হোক বা না হোক।

বাশের জন্য ম্যানুয়াল পৃষ্ঠাটি প্রতিটি ফাইলটি কী পরিস্থিতিতে পড়তে হবে তা ব্যাখ্যা করে। হ্যাঁ, আচরণটি সাধারণত মেশিনগুলির মধ্যে সামঞ্জস্যপূর্ণ।

.profileকেবলমাত্র লগইন স্ক্রিপ্ট ফাইলের নামটি মূলত ব্যবহৃত /bin/shbash, সাধারণত পিছনের সাথে সামঞ্জস্যপূর্ণ হওয়ার সাথে যদি এটি উপস্থিত থাকে তবে /bin/shতা পড়বে .profile


48

এটা সহজ। এটিতে ব্যাখ্যা করা হয়েছে man bash:

/bin/bash
       The bash executable
/etc/profile
       The systemwide initialization file, executed for login shells
~/.bash_profile
       The personal initialization file, executed for login shells
~/.bashrc
       The individual per-interactive-shell startup file
~/.bash_logout
       The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
       Individual readline initialization file

লগইন শেলগুলি হ'ল যা আপনি লগইন করেছেন সেগুলি পড়ে (সুতরাং, কেবলমাত্র এক্সটারেম শুরু করার সময় এগুলি কার্যকর করা হয় না, উদাহরণস্বরূপ)। লগইন করার অন্যান্য উপায় আছে। উদাহরণস্বরূপ এক্স এক্স ম্যানেজার ব্যবহার করা। লগইন সময়ে এগুলি পরিবেশের ভেরিয়েবলগুলি পড়ার এবং রফতানি করার অন্যান্য উপায় রয়েছে।

INVOCATIONম্যানুয়ালটিতে অধ্যায়টি পড়ুন । এটি বলছে "নিম্নলিখিত প্যারাগ্রাফগুলি বর্ণনা করে যে কীভাবে বাশ তার প্রারম্ভিক ফাইলগুলি কার্যকর করে।" , আমি মনে করি এটি একটি স্পট-অন :) এটি "ইন্টারেক্টিভ" শেলটি কী তা ব্যাখ্যা করে।

বাশ সম্পর্কে জানে না .environment। আমি সন্দেহ করি যে এটি আপনার ডিস্ট্রিবিউশনের একটি ফাইল, আপনার চালিত শেলের থেকে পৃথক পরিবেশের ভেরিয়েবল সেট করতে।


1
আপনি /etc/bashrcউত্তর পূরণ করতে পারেন ?
নেমোডেন

9

ধ্রুপদীভাবে, ~/.profileবোর্ন শেল দ্বারা ব্যবহৃত হয় এবং সম্ভবত উত্তরাধিকারের পরিমাপ হিসাবে বাশ দ্বারা সমর্থিত। আবার, ~/.loginএবং ~/.cshrcসি শেল দ্বারা ব্যবহৃত হয়েছিল - আমি নিশ্চিত নই যে বাশ সেগুলি আদৌ ব্যবহার করে।

~/.bash_profileলগইন একবারে ব্যবহার করা হবে। ~/.bashrcস্ক্রিপ্ট প্রত্যেক বার এক একটা শেল শুরু হয় পড়া হয়। এটি /.cshrcসি শেলের সাথে সাদৃশ্যপূর্ণ ।

একটি পরিণতি হ'ল ~/.bashrcস্টেইনটিতে লগ-ইন না করা শেল শুরু করার সময় ওভারহেড হ্রাস করার জন্য যথাসম্ভব লাইটওয়েট (ন্যূনতম) হওয়া উচিত।

আমি বিশ্বাস করি ~/.environmentফাইলটি কর্ন শেলের জন্য একটি উপযুক্ততা ফাইল file


7

আমি এখানে সংক্ষেপণের জন্য .bashrc এবং .bash_profile সম্পর্কিত তথ্য পেয়েছি :

আপনি লগইন করার সময় .bash_profile কার্যকর করা হয়। আপনি যে স্টাফটি রেখেছেন তা আপনার প্যাথ এবং অন্যান্য গুরুত্বপূর্ণ পরিবেশের ভেরিয়েবল হতে পারে।

.bashrc অ লগইন শেলগুলির জন্য ব্যবহৃত হয়। আমি এর অর্থ কী তা নিশ্চিত নই। আমি জানি যে আপনি যখনই অন্য শেলটি শুরু করেন তখনই রেডহ্যাট এটি কার্যকর করে (আপনি এই ব্যবহারকারীর পক্ষে মামলা করতে পারেন বা কেবল আবার ব্যাশ কল করছেন) আপনি সেখানে এলিয়াস রাখতে পারেন তবে তার অর্থ কী তা আবার আমি নিশ্চিত নই। আমি কেবল এটিকে এড়িয়ে চলেছি।

। প্রোফাইলটি মূলের জন্য .বাশ_ প্রোফাইলের সমতুল্য। আমি মনে করি নামটি অন্য শেল (csh, sh, tcsh) এর পাশাপাশি ব্যবহার করতে দেওয়া হয়েছে। (আপনার ব্যবহারকারী হিসাবে কোনও প্রয়োজন নেই)

হ'ল ভাল ধারণা ... লগআউট, এ। আপনি ডিমনগুলি থামাতে বা এমনকি একটি সামান্য গৃহকর্ম তৈরি করতে চাইতে পারেন। লগ আউট করার সময় আপনি যদি পর্দা সাফ করতে চান তবে আপনি সেখানে "ক্লিয়ার" যুক্ত করতে পারেন।

এছাড়াও এখানে কনফিগারেশন ফাইলগুলির প্রতিটিতে একটি সম্পূর্ণ ফলোআপ রয়েছে

এগুলি সম্ভবত এমনকি ডিস্ট্রো-নির্ভর, কিন্তু যখন তাদের একই নাম হয়, তারা সাধারণত একই বিষয়বস্তু অন্তর্ভুক্ত করে।


4

জোশ স্টায়গার অনুসারে , ম্যাক ওএস এক্সের টার্মিনাল.এপ আসলে প্রতিটি নতুন টার্মিনাল উইন্ডোর ডিফল্টরূপে লগ-ইন শেলের পরিবর্তে লগইন শেল চালায়, .bashrc এর পরিবর্তে .bash_profile কল করে।

তিনি সুপারিশ করেন:

বেশিরভাগ সময় আপনি লগইন এবং নন-লগইন শেলগুলির জন্য দুটি পৃথক কনফিগারেশন ফাইল বজায় রাখতে চান না - যখন আপনি কোনও PATH সেট করেন আপনি চান যে এটি উভয় ক্ষেত্রেই প্রয়োগ হোক। আপনি এটি আপনার .bash_profile ফাইল থেকে .bashrc উত্সাহিত করে, ঠিক তখন প্যাথ এবং সাধারণ সেটিংস .bashrc এ রেখে সমাধান করতে পারেন।

এটি করতে, .বাশ_ প্রোফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

if [ -f ~/.bashrc ]; then 
    source ~/.bashrc 
fi

এখন আপনি যখন কোন কনসোল থেকে আপনার মেশিনে লগইন করবেন .bashrc কল করা হবে।


2

দেখার জন্য একটি ভাল জায়গা হ'ল ব্যাশের ম্যান পৃষ্ঠা। এখানে একটি অনলাইন সংস্করণ। "ইনভোকেশন" বিভাগটি সন্ধান করুন।


0

আমি ডেবিয়ান-ফ্যামিলি ডিস্ট্রো ব্যবহার করেছি যা কার্যকর হয় বলে মনে হয় .profile, তবে তা নয় .bash_profile, যদিও আরএইচইএল ডেরিভেটিভস .bash_profileআগে মৃত্যুদন্ড কার্যকর করে .profile

কোনও লিনাক্স ওএসে কাজ করার জন্য আপনাকে যখন পরিবেশের ভেরিয়েবলগুলি সেট আপ করতে হবে তখন এটি কোনও গোলমাল মনে হচ্ছে।

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