zsh থেকে ব্যাশে শেল পরিবর্তন করা হচ্ছে


17

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


আপনি কি পরিবর্তনের পরিণতি সম্পর্কে জিজ্ঞাসা করছেন (যা কোনটিই নয়, আমি এখনই zsh ব্যবহার করছি এবং যখনই পছন্দ করি বাশ এ স্যুইচ করতে পারি) বা আপনি কীভাবে শেলটি কার্যকরভাবে পরিবর্তন করবেন সে সম্পর্কে জিজ্ঞাসা করছেন?
ব্রায়াম

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

উত্তর:


10

আপনার শেল sudo chsh --shell=/bin/bash $USERপরিবর্তন করে, শেলের ক্ষেত্রটি পরিবর্তিত হবে /etc/passwd। এই মানটি শুধুমাত্র লগইন করার সময় পরামর্শ করা হয়, যখন সিস্টেমটি আপনার জন্য কোন শেলটি ব্যবহার করবেন সে সম্পর্কে ধারণা নেই।

চলমান প্রক্রিয়া, কিনা দ্বারা শুরু zsh, bash apacheবা evil_overlord's_programপ্রভাবিত হবে না


শেলটি কি অন্যান্য প্রসেসগুলির প্যারেন্ট প্রক্রিয়াটি চলছে না, বা কেবল নিয়ন্ত্রণকারী টার্মিনাল (এবং শেলটি নয়) প্যারেন্ট প্রক্রিয়া হিসাবে বিবেচিত হবে?
জনমারলিনো 13:50

loginপ্রোগ্রাম সব কিছুর মত, একটি প্রক্রিয়া চলে। এটি আপনাকে প্রবেশ করতে দিলে এটি আপনার ইউআইডি ইত্যাদির সাহায্যে অন্য একটি প্রক্রিয়া তৈরি করে এবং / বিন / বাশ চালায় (/ ইত্যাদি / পাসডাব্লুড থেকে)। বাশ শেলটি STDIN (দ্বারা সেট আপ login) থেকে পড়ে , এবং নন-বিল্টিন কমান্ডগুলি কাঁটাচামচ / সম্পাদন করবে, তাদের সমাপ্তির জন্য অপেক্ষা করবে এবং আরও কমান্ডের জন্য লুপ করবে। ইউনিক্স / লিনাক্সে "কন্ট্রোলিং টার্মিনাল" ধারণাটি কার্যকর নয়।
ওয়ালটিনেটর

26

স্ট্যাক ওভারফ্লো থেকে উত্তর ( zsh থেকে ব্যাশে স্যুইচ করা ):

একটি নতুন শেল দিয়ে আপনার বর্তমান শেলটি প্রতিস্থাপন করতে আপনি কেবল এক্সিকিউট ব্যবহার করতে পারেন:

বাশে স্যুইচ করুন:

exec bash

Zsh এ স্যুইচ করুন:

exec zsh

এটি নতুন টার্মিনাল উইন্ডো বা কোনও কিছুতে প্রভাব ফেলবে না তবে এটি সুবিধাজনক।


এটা কাজ করছে না. স্থির: প্রতিধ্বনি $ শেল / usr / বিন / zsh
সেস

8

আপনার টার্মিনালটি খুলুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

chsh -s $(which bash)

আমি ধরে নিলাম এটি chsh -s / bin / bash এর সমতুল্য
জনমারলিনো

2
which bashএর পরম পথ দিত bash, তাই /bin/bashযেখানে bashঅবস্থিত সেখানে থাকলে একই হবে ।
ryanjdillon

0

ম্যাক ওএস ক্যাটালিনাতে

  1. Zsh এ পরিবর্তন করুন:

    chsh -s /bin/zsh
  2. ব্যাশে পরিবর্তন করুন:

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