আমার একটি হোস্টেড ডেবিয়ান সার্ভার রয়েছে। আমি যখন ssh এর মাধ্যমে লগ ইন করি, তখন আমি sh পরিবেশের সাথে অভ্যর্থনা জানাই। বাশ পরিবেশে শুরু করার ফলে আমি কীভাবে এটি পরিবর্তন করব?
আমার একটি হোস্টেড ডেবিয়ান সার্ভার রয়েছে। আমি যখন ssh এর মাধ্যমে লগ ইন করি, তখন আমি sh পরিবেশের সাথে অভ্যর্থনা জানাই। বাশ পরিবেশে শুরু করার ফলে আমি কীভাবে এটি পরিবর্তন করব?
উত্তর:
নিয়মিত ব্যবহারকারী হিসাবে আপনি chsh
কমান্ডটি ব্যবহার করে আপনার ডিফল্ট লগইন শেল পরিবর্তন করতে পারেন । এখানে একটি উদাহরণ:
chsh -s /bin/bash
আর একটি বিকল্প হ'ল ব্যবহারকারীকে মূল হিসাবে ব্যবহার করুন:
usermod -s /bin/bash username
adduser
এটি ডিফল্টরূপে ব্যাশে সেট করা উচিত। ডিফল্টটি কনফিগার করা আছে /etc/adduser.conf
। অন্যথায় শেলটি স্পষ্টভাবে উল্লেখ করুন useradd
।
/etc/passwd
সর্বশেষ এন্ট্রিটি যেখানে ডিফল্ট শেল সেখানে আপনি সম্পাদনা করেন। এটি তৈরি করুন /bin/bash
।
বিকল্পভাবে, আপনি /bin/sh
ব্যাশ না হওয়ার কারণে সিস্টেমের ডিফল্ট পরিবর্তন করতে পারেন ।
/bin/sh
হ'ল ডিফল্ট করে /bin/dash
। এবং এটির জন্য অন্যান্য দুটি উত্তরগুলির জন্য একইরকম এবং বিভিন্ন উপায়ে একই প্রান্তে পৌঁছানো। যাই হোক.
/etc/passwd
অত্যন্ত নিরুৎসাহিত। একটি সম্পাদনা ভুল সমস্ত ব্যবহারকারীর জন্য লগইনগুলি ভাঙ্গতে পারে, পুনরুদ্ধার মিডিয়া বা মেরামত করতে একক ব্যবহারকারী মোডে বুট প্রয়োজন boot usermod
পরিবর্তনের মতো সরঞ্জাম রয়েছে /etc/passwd
।
/etc/passwd
।
/bin/bash
করা , যার অনাকাঙ্ক্ষিত ফলাফল হতে পারে। /bin/sh
--posix
/bin/bash
সমস্ত বছর সমস্ত মেশিনে আমার শেল হিসাবে ব্যবহার করে আসছি। আপনার আরও দৃ concrete় যুক্তি দরকার।
/bin/sh
সাম্প্রতিক উবুন্টু রিলিজগুলিতে ডিফল্ট সিস্টেম শেলটি কনফিগার করা আছে /bin/dash
। কেবল নিম্নলিখিত কমান্ডটি চালিয়ে:
sudo dpkg-reconfigure dash
আপনি এটির পুরানো ডিফল্টটিতে ফিরে যেতে পারেন /bin/bash
।
এটির সাহায্যে আপনি bash
কোনও ব্যবহারকারীর সেটিংস (না chsh
বা usermod
) পরিবর্তন না করে ইন্টারেক্টিভ শেল হিসাবে আকাঙ্ক্ষিত প্রভাব অর্জন করতে পারেন এবং এটি বর্তমানে শেল সেট থাকা সমস্ত ব্যবহারকারীদের জন্য কাজ করবে /bin/sh
।
এর একমাত্র ছোট ছোট দিক রয়েছে: উবুন্টু বুটের সময়টি সামান্য বাড়তে পারে, কারণ dash
লোড করতে কম মেমরি লাগে এবং চালাতে কিছুটা দ্রুত লাগে (অবাক হওয়ার কিছু নেই - এটি বৈশিষ্ট্যে এতটাই সীমাবদ্ধ)। তবে আমি মনে করি এটি বিশেষত হোস্টিং পরিবেশের জন্য এই প্রভাবটি পরিমাপ করা বরং আরও কঠিন হবে।
এছাড়াও, শেল স্ক্রিপ্টগুলি সঠিকভাবে কাজ করতে ব্যর্থ হয় তা দেখে কখনও কখনও বিরক্ত হয় কারণ তারা কিছু bash
উন্নত বৈশিষ্ট্য ব্যবহার করে যা দ্বারা সমর্থিত নয় dash
। এই রেসিপিটি ব্যবহার করে তা নিশ্চিত হবে না।
আরও তথ্যের জন্য, এই সমস্যাটি সম্পর্কে উবুন্টু উইকি দেখুন ।
/bin/sh
পসিক্স সামঞ্জস্যপূর্ণ শেল স্ক্রিপ্টগুলির জন্য দোভাষী হিসাবে ব্যবহৃত হয় - এটি অগত্যা সেরা ইন্টারেক্টিভ শেল নয়; আপনি যদি bash
নিজের সিস্টেম শেল হতে চান তবে আপনার পছন্দমত লগইন শেলটি chsh
বা সঠিক adduser
কল ব্যবহার করে সেট করা উচিত । dpkg-reconfigure
ইউজারএ zsh চায় এবং ইউজারবি বাশ চায় এবং উভয়ই / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / শেল ব্যবহার করতে চায় bin
zsh
এবং তাদের কাছে ইউজারবি রয়েছে bash
। ইউজারসি যদি এটিতে কনফিগার করা থাকে sh
তবে তার কাছে bash
এটি বর্তমানে নতুন ব্যবহারকারীদের জন্য উবুন্টু ডিফল্ট
dpkg-reconfigure zsh
সেট করার মতো কিছু প্রস্তাবিত যা কোনও ধরনের অচলাবস্থা; আমি মূলত বলছি যে লগইন শেলটিকে শেলটিতে সেট করা পছন্দ করা হয় যে আপনি / বিন / এসকে একটি ভাল লগইন শেল তৈরি করতে হুপের মধ্য দিয়ে না গিয়ে ব্যবহার করতে চান to zsh
dpkg-reconfigure dash
dash
dpkg-reconfigure dash
না হয়ে sh
পয়েন্ট করতে পারে । অন্য সমস্ত শেলগুলি এখনও অক্ষত থাকবে। bash
dash
যে ক্ষেত্রে আপনি কোনও ভাগ করা অ্যাকাউন্ট (যে কোনও কারণে) ব্যবহার করার চেষ্টা করছেন এবং ডিফল্ট শেলটি পরিবর্তন করতে পারবেন না, তারপরে আপনি চালাতে পারেন
ssh -t <user@hostname> bash -l
আপনার যদি অন্য কোনও শেল থেকে আপনার পরিবেশ রক্ষা করা প্রয়োজন, তবে আপনি প্রথমে সেই শেলটি চালাতে পারেন; উদাহরণ স্বরূপ
ssh -t <user@hostname> ksh -c bash -l
-l
বিকল্পটি কেন ?