root
ওএস এক্স-এর জন্য ডিফল্ট শেল /bin/sh
। এটিরও sh
একটি সংস্করণ bash
, তবে বাশ নামের সাথে যুক্ত হলেsh
:
sh
POSIX মান হিসাবে মেনে চলার সময় যতটা সম্ভব নিবিড় historicalতিহাসিক সংস্করণগুলির প্রারম্ভিক আচরণের নকল করার চেষ্টা করে ।
যখন একটি ইন্টারেক্টিভ লগ-ইন শেল হিসাবে প্রার্থনা, অথবা সঙ্গে একটি নন-ইন্টারেক্টিভ শেল হিসাবে --login
বিকল্প, এটা প্রথম করার জন্য প্রচেষ্টার সংখ্যা পড়া এবং থেকে কমান্ডগুলো /etc/profile
এবং ~/.profile
, যাতে। ... sh হিসাবে চিহ্নিত একটি শেল অন্য কোনও স্টার্টআপ ফাইল থেকে কমান্ডগুলি পড়ার এবং সম্পাদন করার চেষ্টা করে না
অর্থাৎ এটা পড়তে না .bash_profile
এ সব কিনা এটি একটি লগ-ইন শেল বা না হিসাবে চালানো হয়েছিল নির্বিশেষে । আপনি .profile
পরিবর্তে ব্যবহার করতে পারেন , বা এমনকি একে অপরের সাথে সিমিলিংক করতে পারেন। আপনার সাথে একটি লগ-ইন শেল আরম্ভ তাহলে su -l
, .profile
সূচনার সময় লোড হয়, কিন্তু .bash_profile
হতে হবে।
আপনি রুটের শেল পরিবর্তন করতেও ব্যবহারdscl
করতে পারেন ( ওএস এক্স-এ শেল নির্ধারণের জন্য এটি ব্যবহার করা /etc/passwd
হয় না )। এর সাহায্যে আপনি রুটের বর্তমান শেলটি পরীক্ষা করতে পারেন dscl . -read /Users/root UserShell
; ডকুমেন্টেশনের সাথে পরামর্শ করুন এবং এটিকে অন্য কোনও কিছুতে পরিবর্তন করার আগে সাবধানতার সাথে চিন্তা করুন।
আর একটি উপায় হ'ল আপনার su
অনুরোধটি bash
অবিলম্বে কার্যকর করতে বাধ্য করার জন্য পরিবর্তন করা।
আপনি যা বলেছেন তা প্রদত্ত, আমি সম্ভবত সিমলিংকের প্রস্তাব দিই, তবে আপনি বাশের পসিক্স মোডে যে পরিবর্তনগুলি করেছেন তা সন্ধান করতে এবং আপনি সেগুলি রাখতে চান কিনা তা স্থির করতে পারেন।