Zsh এর তুলনায় বাশের অনন্য বৈশিষ্ট্য


67

আমি বেশ কিছু সময়ের জন্য একটি zsh ব্যবহারকারী হয়েছি (যে tcsh এর আগে এবং সেই csh এর আগে)। আমি এটির সাথে বেশ খুশি, তবে ভাবছিলাম যে বাশের কোনও আকর্ষণীয় বৈশিষ্ট্য রয়েছে যা zsh এ বিদ্যমান নেই। এবং বিপরীতে, zsh বৈশিষ্ট্যগুলি রয়েছে যা বাশে বিদ্যমান নেই। আমার বর্তমান অনুভূতি হ'ল বাশ আরও ভাল:

  • আপনি যদি এর সাথে ইতিমধ্যে পরিচিত হন এবং নতুন সিনট্যাক্স শিখতে না চান।
  • এটি ডিফল্টরূপে সমস্ত * নিক্স মেশিনে উপস্থিত হতে চলেছে, যেখানে zsh অতিরিক্ত ইনস্টল হতে পারে।

এখানে কোনও ধর্মীয় যুদ্ধ শুরু করার চেষ্টা করা হচ্ছে না, এ কারণেই আমি কেবল এমন একটি বৈশিষ্ট্যের সন্ধান করছি যা শেলগুলির মধ্যে একটিতে বিদ্যমান।


10
এক বা অন্য বিষয়গতের জন্য স্বতন্ত্র বৈশিষ্ট্যগুলি কীভাবে রয়েছে? আমি সৎভাবে একটি শিখার সন্ধান করছি না এবং এক বা অপরের পরিচিতিটি স্বীকার করছি এই শেলটি পছন্দ করার পক্ষে ভাল কারণ likely
টিম

উত্তর:


40

zsh ভলক্যানদের জন্য। ;-)

সিরিয়াসলি: ব্যাশ 4.0.০ এর কিছু বৈশিষ্ট্যগুলি কেবল zsh এ পাওয়া যায়, যেমন ** গ্লোববিং:

% ls /usr/src/**/Makefile

সমান:

% find /usr/src -name "Makefile"

তবে স্পষ্টতই আরও শক্তিশালী।

আমার অভিজ্ঞতায় বাশের প্রোগ্রামযোগ্য সম্পূর্ণতা কমপক্ষে কিছু ক্ষেত্রে zsh এর চেয়ে কিছুটা ভাল সম্পাদন করে (উদাহরণস্বরূপ যোগ্যতার জন্য ডেবিয়ান প্যাকেজ সমাপ্ত করে)।

ব্যাশ হয়েছে Alt + .সন্নিবেশ করতে!$

zsh has expansion of all variables, so you can use e.g.

% rm !$<Tab>

for this. zsh can also expand a command in backtics, so

% cat `echo blubb | sed 's/u/a/'`<Tab>

yields

% cat blabb

I find it very useful to expand rm *, as you can see what would be removed and can maybe remove one or two files from the commmand to prevent them from being deleted.

Also nice: using the output from commands for other commands that do not read from stdin but expect a filename:

% diff <(sort foo) <(sort bar)

From what I read bash-completion also supports completing remote filenames over ssh if you use ssh-agent, which used to be a good reason to switch to zsh.

Aliases in zsh can be defined to work on the whole line instead of just at the beginning:

% alias -g ...="../.."
% cd ...

8
ব্যাশ সালে C-M-e"শেল-প্রসারিত লাইন", প্রসারিত হবে যা cat `echo blubb | sed 's/u/a/'` থেকে cat blabbএবং echo $SHELLথেকে echo /bin/bashআমার ক্ষেত্রে। এছাড়াও, C-x *"গ্লোব-প্রসারিত শব্দ", যা প্রসারিত হবে rm *
ভিক্টর

16

আমি উল্লেখ করতে চাই যে বাশ ফ্রিবিএসডি, ওপেনবিএসডি, বা নেটবিএসডি-তে ডিফল্টরূপে ইনস্টল করা নেই এবং এটি সোলারিস 10 এও ডিফল্টরূপে ইনস্টল করা নেই (ওপেনসোলারিস এটির ডিফল্ট হিসাবে রয়েছে), গতবার আমি একটি এআইএক্স ব্যবহার করেছি এবং বা এইচপি-ইউএক্স সার্ভারগুলি এটি ডিফল্টরূপে ইনস্টল করা হয়নি।

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


6
হ্যাঁ তুমিই ঠিক. হায়, এই সমস্ত বিক্রেতারা নিশ্চিতভাবেই অতিরিক্ত প্যাকেজ হিসাবে ব্যাশ ইনস্টল করা খুব সহজ করে তোলে। স্ক্রিপ্টগুলিতে / বিন / শ পিউরিজমের প্রয়োজনীয়তার বিষয়ে উল্লেখ করার জন্য +1।
kubanczyk

@কুবাঞ্জাইক: আপনি যদি এমন মেশিনে কাজ করছেন যা আপনার কাছে রুট অ্যাক্সেস নেই, তবে এটি ইনস্টল করা এত সহজ নাও হতে পারে, তাই আমি মনে করি এক্স-ইস্টিশনের বিষয়টি দাঁড়িয়েছে। (আমি একগুচ্ছ সোলারিস বাক্সে কাজ করি, এবং সিসাদমিনগুলি সমস্ত খ্যাশি জাঙ্কিজ Last এই রুটটি আমার কাছে কেটে দেওয়া হয়েছিল))
আইকনোক্লাস্ট

12

যদিও আমি একজন ব্যাশ ব্যবহারকারী, আমি zsh এর একটি বৈশিষ্ট্য বেশ দুর্দান্ত: আরপিএস 1 পেয়েছি।

মনে রাখবেন:

  • PS1: বাম সারিবদ্ধ প্রম্পট
  • আরপিএস 1: ডান সারিবদ্ধ প্রম্পট

নমুনা:

কিছু ব্যবহার করার সময়

PS1=’%B(%h) %m%#%b 
RPS1=’(%20<…<%~)'

আপনি বাম দিকে আপনার প্রম্পট পাবেন এবং বর্তমান ডিরেক্টরিটি ডানদিকে ঠেলাবে। এমনকি বর্তমান লাইনটি দীর্ঘ হয়ে যাওয়ার পরে এটি অদৃশ্য হয়ে যায়! এর কারণ zsh আরপিএস 1 কে কম অগ্রাধিকার দিতে যথেষ্ট স্মার্ট।

আপনি এই উদাহরণটির একটি স্ক্রিনশট http://imgur.com/OAZhC এ দেখতে পারেন ।


9

Zsh এর বানান সংশোধন হয়েছে। আপনি যদি কোনও চিঠি (বা আরও) বন্ধ করেন তবে এটি কী বোঝাতে চেয়েছিল তা তা খুঁজে বের করবে।

এটিতে আরও দৃ rob় ট্যাব সমাপ্তি রয়েছে, যা আমি পছন্দ করি।

আপনার পছন্দসই সেটটি সেট করতে Zsh এর একটি ইন্টারেক্টিভ কনফিগারেশন ইউটিলিটি রয়েছে।

কিছু গতি পরীক্ষা বলে যে zsh দ্রুত, তবে আমি কোনও পার্থক্য লক্ষ্য করিনি।


1
ড্যাশের একটি বিচ্ছিন্ন সংস্করণ যা এর বৈশিষ্ট্যগুলির কেবলমাত্র একটি উপসেটকে সমর্থন করে এবং স্ক্রিপ্টগুলিতে দ্রুত চালিত হওয়া উচিত (উদাহরণস্বরূপ, প্রারম্ভিক) হ'ল ড্যাশ।
চকি

zshএমনকি ডিভোরাক কীবোর্ড ব্যবহারের জন্য 'এক লেটার অফ' ভুল টাইপের অনুমতি দেওয়ার জন্য একটি সেটিংস রয়েছে।
vgoff

6

Zsh সমর্থন করে না এমন কোনও ব্যাশ বৈশিষ্ট্য আমি জানি না। Zsh এর নকশা লক্ষ্যটিতে ব্যাশ যুক্ত হওয়া কোনও বৈশিষ্ট্য সমর্থন করা অন্তর্ভুক্ত বলে মনে হচ্ছে।

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

আমি অবশেষে প্রতিটি ইউনিক্স সিস্টেমে একই শেলটি ব্যবহার করতে পারি, আমি যে বৈশিষ্ট্যগুলি কখনও ব্যবহার করব না তার জন্য এটি ভাঙ্গার উপযুক্ত নয়।

জ্যাশ-এর ​​উপস্থিত বৈশিষ্ট্যগুলি যা ব্যাশে উপস্থিত নেই সেগুলি বেশিরভাগই সুন্দর বলে মনে হচ্ছে তবে এটি দিনের বেলাতে গুরুত্বপূর্ণ।


3

ব্যাশের অনেকগুলি বৈশিষ্ট্য রয়েছে যা কেবল zsh এ ব্যবহৃত হত। বাশ পাশাপাশি এখন আপনার 'স্মার্ট ট্যাব সমাপ্তি' থাকতে পারে, যেমন কোনও সাম্প্রতিক উবুন্টু ব্যবহারকারী আবিষ্কার করেছেন।


1

প্রক্রিয়া প্রতিস্থাপন এবং বর্ধিত গ্লোববিং দুটি বৈশিষ্ট্য যা আমি সবচেয়ে বেশি মিস করব। প্রম্পট সেটিংসটি খুব দুর্দান্ত - আপনি কমান্ড লাইনে জটিল বিবৃতি টাইপ করার সময় বাসা বাঁধার মাত্রা দেখে seeing অটোলয়েডিং প্রতিটি শেলটিতে প্রচুর ফাংশন সহ কার্যকর করে তোলে।


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

0

আমি ভিআই মোড সমর্থনের কারণে zsh এর অনুরাগী, কিন্তু আমি আবিষ্কার করছি যে এটি খুব বেশি ব্যবহৃত হয় না। আমার মনে হয় আমি পড়লাম যে zsh অন্যান্য শাঁস থেকে জনপ্রিয় বৈশিষ্ট্যগুলি নিতে এবং সেগুলিকে একত্রিত করতে পছন্দ করে (যাতে ব্যাশের সাথে নির্দিষ্ট জিনিস এবং সিএসএসের সাথে নির্দিষ্ট জিনিস দুটিই zsh এ উপলব্ধ)।

কেউ আরও বলেছিলেন যে আমি জেডএস ব্যবহার করে আমার গিক ফ্যাক্টরটিকে নমনীয় করছি, তবে আমি এই গুজবটিকে নিশ্চিত বা অস্বীকার করতে পারি না।


5
এবং হ্যাঁ, বাশের ভিআই-মোড সমর্থনও রয়েছে।
pjz

@ মিলনার: আপনি কী ব্যাখ্যা করতে পারবেন যে বাশ নয় এমন জেডশিতে কোন ধরণের ভিআই মোড সমর্থন? আপনি যদি কমান্ড লাইনে সেট -o vi করার দক্ষতাটি সহজেই বোঝায় তবে তা উভয় ক্ষেত্রেই স্পষ্ট। Zsh এ যদি কিছু বর্ধিত সমর্থন থাকে তবে আপনি কি এটি স্পষ্টভাবে বর্ণনা করতে পারবেন এবং এটি কী যুক্ত করে?
আইকনোক্লাস্ট

-1

জনপ্রিয়তা, # ব্যাশ 430 জন ব্যবহারকারী। #zsh 123 জন ব্যবহারকারী। আমি বিশ্বাস করি যে zsh ওয়েবসাইটের অন্যান্য শাঁসের সাথে zsh এর একটি ভাল তুলনা রয়েছে। zsh এর আরও ভাল vi মোড সমর্থন রয়েছে।


2
জেডএস-এ ভিআই-মোডটি কীভাবে আরও ভাল? আমি একজন ব্যাশ ব্যবহারকারী এবং আমার ভাই-মোড চালু আছে, তাই আমি জানতে চাই যে স্যুইচিংয়ে কোনও লাভ আছে কিনা।
পিটিম্যান 16'10

1
@ptman: zsh এর প্রম্পটটি মোডটি বলতে (সন্নিবেশ / স্বাভাবিক) করা যেতে পারে। রিডলাইন এটি করতে পারে না। প্রম্পটারটি আরও নমনীয়: আপনার সিনট্যাক্স হাইলাইটিং ইত্যাদি থাকতে পারে!
unPress325680

@ প্রোগো: আহ! খুব সুন্দর. এখন আমি শুধু পারে zsh মধ্যে ষষ্ঠ মোড ব্যবহার শুরু করুন। এটি এখনও পর্যন্ত ইমাস মোডের সাথে লেগে থাকার জন্য আমার অন্যতম কারণ ছিল।
আইকনোক্লাস্ট

ব্রান্ডন @ ব্র্যান্ডন যে সামান্য বর্ধন আমার পক্ষে শাঁস স্যুইচ করার কারণ ছিল।
unPress325680

-1

কমান্ড লাইনের / বিন / শ স্ক্রিপ্টগুলিতে ব্যবহৃত হতে পারে সেই জন্য বাশ একই বাক্য গঠন ব্যবহার করে।
Zsh এর মধ্যে বাক্য গঠন আলাদা। কার্যকরভাবে zsh ব্যবহার করে আপনাকে উভয়ই মনে রাখতে হবে, যদি আপনি আপনার কমান্ড লাইনে যদি-বা-সময়-বিবৃতি ব্যবহার করছেন


1
আমি if [[ $test = "test" ]]; then echo "success"; else echo "failure"; fiকমান্ড লাইন এবং স্ক্রিপ্ট উভয়ই ব্যবহার করে এটি চেষ্টা করেছি এবং এটি উভয় ক্ষেত্রেই প্রত্যাশার মতো কাজ করেছে। সুতরাং দেখে মনে হবে আপনার নিজের বিষয়গুলি সোজা নেই।
আইকনোক্লাস্ট

এটি নির্ভর করে আপনি / বিন / শ হিসাবে কী ইনস্টল করেছেন on যদি / বিন / শ বাশ হয় তবে আপনি ঠিক বলেছেন। অন্যথায়, বাশের এই সুবিধা নেই। Zsh যদি / বিন / শ হয় তবে zsh এর এই সুবিধা রয়েছে। যে সমস্ত শেল / বিন / এস প্রদান করতে পারে তার সমস্ত দেওয়া, আমি ব্যক্তিগতভাবে কেবল শেল স্ক্রিপ্টিংয়ের জন্য আপনি যে শেলটি চান তা ব্যবহার করার পরামর্শ দিই, যাতে এর অনুপস্থিতি কীভাবে কীভাবে করা যায় তা নিয়ে কোনও উদ্দীপনা না করে উদ্ভট আচরণের পরিবর্তে একটি সুস্পষ্ট ফিক্স যুক্ত ইস্যুটির দিকে নির্দেশ করে points সমাধান।
এড গ্রিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.