MacOSX এ জেডএসএইচ ডিফল্ট শেল তৈরি করা [বন্ধ]


99

আমি আমার ম্যাকে zsh ইনস্টল করেছি। এবং এখন আমি এটিকে বাশের পরিবর্তে ডিফল্ট শেল করতে চাই। তবে আমি নিম্নলিখিত ত্রুটিটি নিয়ে চলেছি বলে মনে হচ্ছে:

$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell

4
chsh -lআউটপুট কি করে ? (যদি এটি কাজ না করে তবে এর লিখিত বিষয়বস্তুগুলি কী /etc/shells?) আপনি কি নিশ্চিত যে এটি ব্যর্থ হচ্ছে এবং কেবল সতর্কতা নয়? /usr/bin/zshসেখানে যুক্ত করা কি এই কাজ করে?
এটান রেইজনার

4
chsh: বিকল্পের জন্য একটি আর্গুমেন্ট দরকার - l ব্যবহার: চিপাস [-l অবস্থান] [-u লেখক] [-স শেল] [ব্যবহারকারী]
হর্ষ এমভি

/ বিন / বাশ / বিন / সিএস / বিন / কেএস / বিন / শ / বিন / টিসিএস / বিন / জেডএস
হর্ষ এমভি

এর সাথে কী হয়েছে /bin/zsh?
jxh

4
ডিফল্ট শেলটি এখন zsh এ পরিবর্তন করার আনুষ্ঠানিক উপায় রয়েছে। "আপনার Mac এ ডিফল্ট শেল হিসেবে ব্যবহার করবেন zsh" আপেল দস্তাবেজটি দেখুন support.apple.com/en-ca/HT208050
Anthonyeef

উত্তর:


86

3 সহজ পদক্ষেপ:

  1. which zshএটি আপনাকে zsh এর পথ দেয়
  2. তারপরে chsh -s /bin/zsh বা পৃথক হলে আপনার zsh এর পথে প্রতিস্থাপন করুন
  3. আপনার মেশিনটি পুনরায় চালু করুন

হ্যাঁ যে কাজ করেছে। এটি কি ইয়োসেমাইট নির্দিষ্ট?
হর্ষ এমভি

4
না আমি মনে করি না, এটি কেবল আপনার তথ্যের জন্য ছিল :)
কোয়ান্টিন পেরেজ

8
একই পুরানো প্রশ্নের উপর আরেকটি প্রাসঙ্গিক মন্তব্য যা সমস্যার সমাধান করতে যোগ /usr/bin/zshকরতে বলে says /etc/shells
ব্রাইস

এটি নিখুঁতভাবে কাজ করে
ওলকুনমুস্তফা

4
এটিকে / ইত্যাদি / শেল অনুসারে সেট করুন! 'Ano ন্যানো / ইত্যাদি / শাঁস' দিয়ে zsh পথের সন্ধান করুন। খনি 10.12.2
আমার

190

সঠিক উত্তরটি আপনার সমস্যার সমাধান করা উচিত:

chsh: / usr / bin / zsh: অ-মানক শেল

এটির কারণটি হ'ল কারণ chshকেবল ফাইল / ইত্যাদি / শেলগুলিতে সংজ্ঞায়িত শেলগুলি গ্রহণ করবে, আপনি ম্যানুয়ালটি পড়ার মাধ্যমে দেখতে পাচ্ছেন chsh:

chsh সিস্টেমে কোনও এক্সিকিউটেবল ফাইলের পুরো পথের নামটি গ্রহণ করবে। তবে শেলটি / ইত্যাদি / শেল ফাইলটিতে তালিকাভুক্ত না করা থাকলে এটি একটি সতর্কতা জারি করবে।

এই সমস্যাটি সমাধান করতে এবং zsh কে ডিফল্ট শেল করার জন্য আপনার এইভাবে করা উচিত:

$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)

স্পষ্টতই, আমি ধরে নিই যে zshএটি এখানে আপনার পথে রয়েছে। আপনি যদি উদাহরণস্বরূপ সর্বশেষের zshসাথে ইনস্টল করতে চান তবে এই সমাধানটিও কাজ করবে brew install zsh

সম্পাদনা করুন (মন্তব্যটির জন্য এটিআইএসফ্লোরিয়ানকে ধন্যবাদ) :

আপনার শেল সেটআপের উপর নির্ভর করে আপনি একটি বার্তা পেয়ে যাবেন /etc/shells: Permission denied। আপনি এই সমস্যা সম্পর্কে তথ্য এখানে পেতে পারেন এটি চারপাশে কাজ করতে, পরিবর্তে নিম্নলিখিতটি ব্যবহার করুন:

$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)

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

আমি "বাশ: / ইত্যাদি / শেল পেয়েছি: অনুমতি অস্বীকার করা হয়েছে"। সিস্টেম পছন্দগুলির মাধ্যমে উত্তরটি আমার পক্ষে কাজ করেছিল।
রিকার্ডো স্টুভেন 19

44
যদি আপনি এর /etc/shells: Permission deniedপরিবর্তে ==> এটি করেন: sudo sh -c "echo $(which zsh) >> /etc/shells"
এইআইএসফ্লোরিয়ান

4
stackoverflow.com/a/44547726/99834 - সিস্টেম ফাইলগুলির সাথে ঝামেলা ছাড়াই কাজ করেছে। একই জিনিসটি চালানোর জন্য কেবলমাত্র অনুপস্থিত জিনিসই সিএলআই ভার্সন।
সোরিন

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

52

নিম্নলিখিত কাজগুলি করে আমি এই কাজটি করতে সক্ষম হয়েছি:

  1. সিস্টেম পছন্দগুলিতে যান
  2. "ব্যবহারকারী এবং গোষ্ঠী" এ ক্লিক করুন
  3. পরিবর্তন করতে লকটি ক্লিক করুন।
  4. বর্তমান ব্যবহারকারী -> উন্নত বিকল্পগুলিতে ডান ক্লিক করুন
  5. ড্রপডাউনটিতে লগইন শেলটি / bin / zsh এ পরিবর্তন করুন।
  6. একটি নতুন টার্মিনাল খুলুন এবং এর সাথে যাচাই করুন echo $SHELL

4
যদি আপনি ইনস্টল zsh মাধ্যমে homebrew এটা zsh মধ্যে স্থাপন করবে /usr/local/bin/zsh। অতএব আপনি সম্পাদনা করতে হবে /etc/shellsউবুন্টু অধীনে এবং একটি এন্ট্রি যোগ জন্য /usr/local/bin/zshআগে আপনি zsh এক্সিকিউটেবল ইনস্টল hombrew নির্বাচন করতে পারেন
Baldy

8

আমার কাজ ম্যাকবুকে আমাকে এটি করতে হয়েছিল:

sudo chsh -s /usr/local/bin/zsh my_user_name

তারপরে আমি .bash_profileযখনই খুলি ততবারে আমার টার্মিনালটি জেড-শেলটিতে স্যুইচ করতে আমাকে একটি ফাইল তৈরি করতে হয়েছিল:

touch ~/.bash_profile
echo 'export SHELL=$(which zsh)' >> ~/.bash_profile
echo 'exec $(which zsh) -l' >> ~/.bash_profile

শেষ ধারণাটি এখান থেকে ধার করা হয়েছিল

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