ম্যাক ওএস এক্স (আইটিআরমে) এ লগইন শেল হিসাবে zsh রান কীভাবে করবেন?


149

Zsh যখন ম্যাক ওএস এক্স-এ লগইন শেল হিসাবে সেট করা হয়, যখন এটি আইটর্ম দ্বারা শুরু হয়, zsh বিবেচনা করে না যে এটি লগইন শেল হিসাবে চালিত হচ্ছে, যদিও এটি '-zsh' ('-' হিসাবে শুরু করা হয়েছে আর্গের প্রথম অক্ষর [0]) যার অর্থ এটি লগইন শেল হিসাবে শুরু হওয়া উচিত।

সুতরাং, যখন আমি লগইন শেলটিকে ব্যাশে সেট করি, তখন ব্যাশ এই প্রথম '-' কে $ 0 এ স্বীকৃতি দেয় এবং লগইন শেল হিসাবে চালায় তবে zsh তা করেন না, যদিও মনে হয় এটি হওয়া উচিত।

আর্গ [0] এর মধ্যে zsh '-' কে স্বীকৃতি দেওয়ার, অথবা আইটার্মকে একটি --login কমান্ড লাইনের যুক্তি দিয়ে শেলটি চালিত করার কোনও উপায় আছে কি?


2
আমি জানি যে এটি জিজ্ঞাসা করার পরে অনেক দিন হয়েছে, তবে দয়া করে @ হ্যারল্ড পুতম্যানের উত্তরটি গ্রহণ করার বিষয়টি বিবেচনা করুন। এটি কেবলমাত্র ঠিকানাগুলির উপরে প্রশ্ন জিজ্ঞাসা করা হয়েছিল।
ক্রেগ এস কোটিংহাম

উত্তর:


106

আইটার্মে -> পছন্দসমূহ -> প্রোফাইল ট্যাবে -> সাধারণ বিভাগ কমান্ডটি সেট করে: / বিন / zsh - লগিন

/ বিন / জেডএস - লগিন


1
জেনারেল ট্যাবে এটিরર્મ 2 এর বিকল্প নেই বলে মনে হচ্ছে। লগইন শেল পরিবর্তন না করে কীভাবে এটিার্ম 2 এ অর্জন করবেন?
লয়েড ডিওল্ফ

6
এটি প্রোফাইল ট্যাবে সাধারণ ট্যাব।
হ্যারল্ড পুতম্যান 18

আহা! এটি বিভ্রান্তিকর যে একটি জেনারেল ট্যাব এবং একটি প্রোফাইল> জেনারেল উভয়ই।
লয়েড ডিওল্ফ

2
বা আমার ক্ষেত্রে/usr/local/bin/zsh --login
ইয়ার

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

220
chsh -s $(which zsh)

আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে, তবে একবার আপনি আপনার সেটিংস আপডেট করার পরে machine মেশিনে শুরু হওয়া কোনও নতুন আইটার্ম / টার্মিনাল সেশনগুলি ডিফল্ট zsh এ to


2
দয়া করে, প্রথমে প্রশ্নটি পড়ুন। সমস্যাটি ডিফল্ট শেল সেট করার ক্ষেত্রে নয়, সমস্যাটি হ'ল zsh এটি সনাক্ত করে না যে এটি লগইন শেল হিসাবে শুরু হয়েছিল।
ইভান তারাসভ

1
আহ, আমার ক্ষমা। আপনি কি zi কে ইন্টারেক্টিভ মোডে শুরু করতে বাধ্য করতে -i পতাকা ব্যবহার করার চেষ্টা করেছেন?
ড্যামিয়েন উইলসন

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

45
যদি chshআপনাকে "নন-স্ট্যান্ডার্ড শেল" এর মতো কিছু বলে, এর অর্থ আপনাকে নতুন শেলের পথটি যুক্ত করতে হবে /etc/shells। এটি ঘটতে পারে যদি আপনি উদাহরণস্বরূপ, হোমব্রিউ দ্বারা ইনস্টল করা zsh এর কোনও সংস্করণে পরিবর্তন করে যা এটিকে দেয় /usr/local/bin/zsh
শোভাভনিক

1
chsh -s $(which zsh)সঠিক পথ নিশ্চিত করতে ব্যবহার করা যেতে পারে।
ড্যানিয়েল ডোজেমা

56

সিস্টেম পছন্দসমূহের ব্যবহারকারী ও গোষ্ঠী প্যানেতে যান -> ব্যবহারকারী নির্বাচন করুন -> পরিবর্তন করতে লকটি ক্লিক করুন (নীচে বাম কোণে) -> বর্তমান ব্যবহারকারীকে ডান ক্লিক করুন উন্নত বিকল্পগুলি নির্বাচন করুন ... -> লগইন শেলটি নির্বাচন করুন : / বিন / zsh এবং ঠিক আছে


3
এটি আমার দিনকে বাঁচিয়েছিল। আমি অসক্স ম্যাভেরিক্সে আছি
কিয়েড

এটি ব্রিউ দ্বারা ইনস্টল করা জন্য নয় ডিফল্ট zsh এর জন্য কাজ করে।
ইমাম বক্স

19

শুরুর সময় শেল পরিবর্তন করার কমান্ডটি হয় chsh -s <path_to_shell>। ম্যাক ওএস এক্সের ডিফল্ট শেলগুলি binডিরেক্টরিটির ভিতরে ইনস্টল করা থাকে তাই যদি আপনি ডিফল্টটিতে পরিবর্তন করতে চান zshতবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন

chsh -s /bin/zsh

আপনি যদি এর zshপরে বিভিন্ন সংস্করণ ব্যবহার করেন তবে অ /etc/shells-স্ট্যান্ডার্ড শেল বার্তাটি এড়াতে আপনাকে সেই সংস্করণটি যুক্ত করতে হতে পারে। উদাহরণস্বরূপ, আপনি যদি হোম-ব্রিউয়ের সংস্করণ চান zshতবে আপনাকে /usr/local/bin/zshপূর্বোক্ত ফাইলটি যুক্ত করতে হবে যা আপনি একটি কমান্ডে করতে পারেন sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"এবং তারপরে রান করুন

chsh -s /usr/local/bin/zsh

অথবা আপনি যদি একটি কমান্ডে পুরো কাজটি করতে চান তবে zsh ইতোমধ্যে ইনস্টল করা থাকলে এটিকে অনুলিপি করুন এবং আটকান

sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh

2
আমি মনে করি না যে এই উত্তরটি হ্রাস করা উপযুক্ত ছিল। প্রপস হিসাবে এটিই কেবল /etc/shellsউত্তরটির শরীরে উল্লেখ করেছে।
হেমাটাইজ

1
@ হাইম্যাটহ যেহেতু এটি হ্রাস করা হচ্ছে কারণ এটি জিজ্ঞাসা করা প্রশ্নের উত্তর দেয় নি। এটি সম্পূর্ণ ভিন্ন সম্পর্কযুক্ত প্রশ্নের উত্তর দিয়েছে।
তাবিথা

17

আপনি কি অ্যাকাউন্ট সেটিংসে শেল এন্ট্রি সম্পাদনা করার চেষ্টা করেছেন ?

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


দুর্ভাগ্যক্রমে, এটি কাজ করে না: chsh ব্যবহার করার মতো আমি যে কোনও শেলটি সেট করতে পারি (যতক্ষণ না আমি এই শেলটি / etc / shells তালিকাভুক্ত করেছি) তবে শেলটিতে অগ্রণী পছন্দসমূহ ডায়ালগটি যুক্ত করতে পারে না (আইটার্ম ব্যর্থ হয়) শেল আপ শুরু করার জন্য)।
ইভান তারাসভ

ওএস এক্স-তে কিছু সিনট্যাক্স পরিবর্তিত হয়েছে তবে ব্রায়ানের উপরের ইঙ্গিত অনুসারে আপনার ডিফল্ট শেলটি / বিন / zsh হিসাবে সেট করতে হবে
ইঞ্জিনিয়ার

7
আমি খুব ভালবাসী. আমি এই উত্তরটি এখনই ব্যবহার করেছি, এবং কেবল তখনই বুঝতে পেরেছিলাম যে আমি প্রায় 4 বছর আগে এটি লিখেছিলাম!
ব্রায়ান অগ্নিউ

-2

loginলগইন শেল তৈরি করতে ইউটিলিটিটি ব্যবহার করুন । ধরে নিন যে আপনি লগ ইন করতে চান তার ব্যবহারকারীর নাম অ্যালিস রয়েছে এবং zsh ইনস্টল করা আছে /opt/local/bin/zsh(যেমন, ম্যাকপোর্টসের মাধ্যমে আরও একটি সাম্প্রতিক সংস্করণ ইনস্টল করা হয়েছে)। আইটার্ম 2 এ, পছন্দগুলি, প্রোফাইলগুলিতে যান, আপনি যে প্রোফাইলটি সেট আপ করতে চান তা নির্বাচন করুন এবং কমান্ডটি প্রবেশ করুন :

login -pfq Alice /opt/local/bin/zsh

দেখুন man loginঅপশন আরও বিশদের জন্য।


এটি কোনও উত্তর নয় 100%। হ্যাঁ আপনি কোন শেলটি ডিফল্টরূপে স্প্যান করবেন তা বদলে যাবে, তবে শেলটির "লগইন" ইনস্ট্যান্স কীভাবে তৈরি করা যায় সে সম্পর্কিত কোনও উত্তর নয়, যেমন স্ক্র্যাচ থেকে সমস্ত ভেরিয়েবলগুলি সংস্থান করে।
তাবিথা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.