বাশ: ব্যবহারকারী থেকে রুটে স্যুইচ করা প্রম্পট সহ সমস্যাগুলির কারণ হয়


0

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

সমস্যাটি যখন আমি রুটটিতে চলে যাই (sudo su, বা sudo bash) এটি আমার ব্যবহারকারীর প্রম্পটটি ব্যবহার করার চেষ্টা করে যা এটি ব্যবহার করতে সক্ষম হবে না কারণ এটি আরভিএম বা হোমব্রু খুঁজে পাবে না। সুতরাং এটি ত্রুটিগুলি প্রদর্শন করে। আমি কীভাবে এটি ঠিক করতে পারি যাতে এটি ত্রুটি প্রদর্শন না করে? (হয় আরভিএম / হোমব্রু এনে যেন আমি এখনও সেই ব্যবহারকারী হয়েছি বা আমার কাস্টম প্রম্পটটি প্রদর্শন না করে)

উত্তর:


1

বিকল্প 1

ন্যায়বিচারের sudo su -পরিবর্তে ব্যবহার করুনsudo su

অতিরিক্ত ড্যাশ একটি সমার্থক শব্দ -lযার জন্য একটি সম্পূর্ণ লগইন অনুকরণ করে। এর অর্থ এটি রুট ব্যবহারকারীর হোম ডিরেক্টরি থেকে কনফিগারেশন ফাইল (.bashrc,। প্রোফাইল, ইত্যাদি) পড়বে।

বিকল্প 2

আপনি যদি নিজের নিজের .bashrc ব্যবহার করার জন্য জেদ করেন, তবে পথে রাখার চেষ্টা করার আগে আরভিএমের অস্তিত্বটি পরীক্ষা করার জন্য একটি পরীক্ষা করুন। এটার মতো কিছু:

type rvm > /dev/null
RVM_EXISTS=$?  # get exit status, 0 if it exists
if [ $RVM_EXISTS ] 
then
    PS1=(your rvm code here)
else
    PS1=(your prompt w/o rvm here)
fi

(পরীক্ষিত না)

বিকল্প 3

বিকল্প 2 হিসাবে আরভিএমের অস্তিত্বের জন্য পরীক্ষা করুন, তবে ডামি আরভিএম বাশ ফাংশন তৈরি করুন যদি এটি উপস্থিত না থাকে এবং পরিবর্তন না করে PS1

type rvm > /dev/null
RVM_EXISTS=$?  # get exit status, 0 if it exists
if [ ! $RVM_EXISTS ] 
then
   rvm () { echo > /dev/null }
fi

0

সিস্টেম ভেরিয়েবল $ PS1 ম্যানিপুলেট করে আপনাকে আপনার প্রম্পট পরিবর্তন করতে হবে

যদি আপনি ডলার সাইন অনুসরণ করে আপনার হোস্টনামটি কেবল প্রদর্শন করতে চান তবে আপনি নিম্নলিখিতটি করতে পারেন: export PS1='h:\W\$'

পরবর্তী বাশ শেলের জন্য আপনার সেটিংস রাখতে, আপনার $ HOM / .Bashrc এ একটি লাইন রাখুন যা দেখতে দেখতে: PS1='\h:\W\$'

ওএস এক্স এবং টার্মিনাল অ্যাপ্লিকেশন হ্যান্ডেল কমান্ড অনুকরণের জন্য ম্যাক ব্যবহারকারীরা নিম্নলিখিতটি নোট করুন: আপনাকে create HOME / .bash_profile ফাইলটি তৈরি করতে হবে এবং নিম্নলিখিত লাইনটি প্রবেশ করতে হবে: উত্স ~ / .bashrc

উৎস


0

আপনি এটি সমস্তই মূলের হোম ডিরেক্টরিতে সেট আপ করতে পারেন যাতে এটি আলাদা .bashrc বা একই ব্যবহার করে (কেবল এমভি এটি)


0

আমি পুরোপুরি নিশ্চিত নই, তবে আমি বিশ্বাস করি যে চলমান sudo -sআপনার সমস্ত পরিবেশের ভেরিয়েবল কার্যকর হওয়ার পরেও রুট শেল শুরু করবে।


0

আমাকে ভোট দিতে দেবে না, তবে ডগ হ্যারিসের সঠিক উত্তর রয়েছে: "সুডো সু ব্যবহার করুন - কেবলমাত্র সুডো সু-এর পরিবর্তে"

এটি করা এখন পর্যন্ত সবচেয়ে সহজ উপায়। এবং এটি কোনও লগইন পরিবেশ অনুমান করার জন্য কোনও ব্যবহারকারীকে সুডো যাওয়ার সময় কাজ করে। আমি ব্যক্তিগতভাবে রুটের লগইন পরিবেশের সাথে গোলযোগ করব না এবং এর পরিবর্তে "sudo su -" ব্যবহার করব।

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