.বাশ_ প্রোফাইলে স্যুর চলাকালীন সোর্স হয় না


41

আমি একটি ব্যবহারকারী, বলার আছে user1, যা তার পরিবর্তন হয়েছে .bash_profileতাদের, এক পরিবর্তন PATH, যেমন: export PATH=/some/place:$PATH। এই পরিবর্তনটি ঠিক কাজ করে যদি আমি লগ ইন করি user1বা করি su - user1

কিন্তু আমি যদি এর মাধ্যমে একটি কমান্ড চালানোর চেষ্টা suহিসাবে root, যেমন:

su -c test.sh oracle

(পরীক্ষায় রয়েছে echo $PATH)

দেখে মনে হচ্ছে এটির পরিবর্তিত PATH(বা মূলের PATHবিষয়টি)। আমি অনুলিপি .bash_profileকরার চেষ্টাও করেছি .profile, কোনও লাভ হয়নি।

ইহা কি জন্য ঘটিতেছে?



1
অবগতির জন্য - ব্যাশ কনফিগারেশন ফাইল উপর চমৎকার কাজের মধ্যে থাকবেন hacktux.com/bash/bashrc/bash_profile
নিখিল Mulley

উত্তর:


60

ইন্টারেক্টিভ হিসাবে suছাড়া -lবা ব্যবহার করা -শুরু bashহয়, তবে লগ-ইন শেল নয়, যা আপনি নির্দিষ্ট করা ফাইলগুলির কোনওটির থেকে পড়া হয় না। বিকল্প -lবা -বিকল্পটি ব্যবহার করুন বা এতে প্রাসঙ্গিক কনফিগারেশনটি প্রবেশ করুন /root/.bashrc

কনফিগার ফাইলগুলির দ্রুত সংক্ষিপ্তসার:

  • লগইন শেল ( -l/ --login) সার্চ /etc/profileপ্রথম, এবং তারপর প্রথম এটি খুঁজে বের করে: ~/.bash_profile, ~/.bash_login, এবং ~/.profile
  • ইন্টারেক্টিভ কিন্তু অ-লগইন শেল ( -i) পড়ে /etc/bash.bashrcএবং ~/.bashrc, সেই ক্রমে ( --rcfileঅপশনটি ব্যবহার না করা এবং এটি অন্য কোথাও দেখার জন্য না বলা)।
  • অ-ইন্টারেক্টিভ শেল, যেমন, অন্য কোনও প্রোগ্রামের মধ্যে দিয়ে -lবা -iপতাকা ব্যবহার না করেই শুরু করা হয়েছে, BASH_ENVপরিবেশের ভেরিয়েবলের মধ্যে উল্লিখিত ফাইলটি পড়ে ।
  • shলগইন শেল হিসাবে চালিত হলে , এটি পড়তে হবে /etc/profileএবং ~/.profileসেই ক্রমে।
  • shইন্টারেক্টিভ অ-লগইন হিসাবে চালিত হওয়ার সময় এটি উল্লিখিত ফাইলটি পড়ে ENV

5

বাশ আলাদাভাবে আচরণ করে যদি এটি বিশ্বাস করে যে এটি লগইন শেল, যেমন আপনি যখন কোনও সিস্টেমে লগইন করেন তখন প্রথম শেল চালানো হয় on এটি কেবলমাত্র .bash_profileযদি এটি লগইন শেল হয় তবে তা পড়তে পারে। যদি আপনি পরিবর্তে PATHকোডটি এর মধ্যে রাখেন তবে .bashrcএটি কেবল লগইন শেল নয়, সমস্ত ইন্টারেক্টিভ বাশ শেলের জন্য চালানো হবে।


0

বৈজ্ঞানিক লিনাক্স 6 (বা সম্ভবত RHEL 6) এ জিনোম পরিবেশ ব্যবহার করা হলে একটি টার্মিনাল শুরু করুন। Edit-> Profile Preferences-> "Title and Command"ট্যাবে যান । নিশ্চিত হয়ে নিন যে "লগইন শেল হিসাবে রান কমান্ড" চেকবক্সটি চেক করা আছে। আমি দেখতে পেলাম যে জিনোম টার্মিনাল অ্যাপ্লিকেশনটি .bash_profileআমি এটি না করলে আমার এড়ানো হচ্ছে ।

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