নৈমিত্তিক ব্যবহারের জন্য zsh এ সার্থক? [বন্ধ]


192

ম্যাক ওএস এক্সের ডিফল্ট শেলটি bash, যা আমি সাধারণত ব্যবহার করে খুশি। আমি শুধু এটি মঞ্জুর জন্য গ্রহণ। এটি যদি আরও বেশি জিনিস স্বয়ংক্রিয়ভাবে সম্পন্ন করে তবে এটি খুব সুন্দর হবে এবং আমি zshএই বিষয়ে ভাল জিনিস শুনেছি । কমান্ড লাইনে আমার জীবন এতটা খারাপ নয় বলে আমার খুব কম পরিমাণে আমার কমান্ড লাইন ব্যবহারের উন্নতি করতে সেটিংসের সাথে ঘন্টার পর ঘন্টা ব্যয় করার ঝোঁক নেই।

(আমি যেমন এটি বুঝতে পারি, bashআরও চতুরতার সাথে অটো-সম্পূর্ণ করার জন্যও কনফিগার করা যেতে পারে It's এটি কনফিগারেশন আমি সমস্ত আগ্রহী নই))

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


@ রডনি আমাতো এবং @ ভলকান ইগ্রার যথাক্রমে আটকে থাকার bashএবং স্যুইচ করার দুটি ভাল কারণ দিয়েছেন zsh। দেখে মনে হচ্ছে আমাকে দুজনেরই তদন্ত করতে হবে! আচ্ছা ভালো:)

যুক্তির উভয় পক্ষের মতামত নিয়ে কেউ আছেন?


14
যেহেতু zsh (প্রায়) বাশের সুপারসেট, আপনি zsh এ যাওয়ার সাথে বাশের মতো এটি ব্যবহার শুরু করতে পারেন। তারপরে আপনি একবারে zsh রত্ন শিখতে পারেন।
অরিপ

আপনার যদি কিছুটা ব্যাশ কাস্টমাইজেশন থাকে এবং আপনি প্রায়শই ইমাসের অভ্যন্তরে শেলটি ব্যবহার করেন তবে এটি তুচ্ছ মনে হয় না। : আমি সংশ্লিষ্ট প্রশ্ন পোস্ট stackoverflow.com/questions/13326879/...
justingordon

শুধুমাত্র জিনিস আমি zsh সম্পর্কে অপছন্দ (উবুন্টু উপর অন্তত) আপনি পাবেন এটি নিজে কনফিগার করতে যে প্রথমবার এটি শুরু (এটা পরিবর্তে কিছু বিবেকী অক্ষমতা আপনি পরে সঙ্গে মেরামত উপর করতে পারেন যে প্রদানের) হয়। যদি আপনি এটি অতিক্রম করতে পারেন, zsh সেরা!
zrajm

উত্তর:


68

নৈমিত্তিক ব্যবহারের জন্য আপনি সম্ভবত ব্যাশের সাথে লেগে থাকা এবং কেবল ব্যাশ সমাপ্তি ইনস্টল করা থেকে ভাল।

এটি ইনস্টল করা বেশ সহজ, http://www.caliban.org/bash/index.shtml# কমপ্লিকেশন থেকে ব্যাশ-সমাপ্তি -20060301.tar.gz ধরুন এবং এর সাথে এটি বের করুন

tar -xzvf bash-completion-20060301.tar.gz

তারপরে বাশ_কম্পশন / বাশ_কম্প্লেশন ফাইলটি / ইত্যাদি সাথে অনুলিপি করুন

sudo cp bash_completion/bash_completion /etc

যা আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ করবে। আপনি সম্ভবত কোনও অতিরিক্ত সমাপ্তির স্ক্রিপ্টগুলির জন্য একটি /etc/bash_completion.d ডিরেক্টরি বানাতে চাইবেন (উদাহরণস্বরূপ আমার সেখানে গিট সমাপ্তির স্ক্রিপ্ট রয়েছে)।

একবার এটি শেষ হয়ে গেলে আপনার হোম ডিরেক্টরিতে .bash_profile ফাইলটি রয়েছে কিনা তা নিশ্চিত করা

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

এতে লগইন করার সময় সম্পূর্ণ ফাইলটি লোড করতে load

এটি পরীক্ষা করার জন্য কেবল একটি নতুন টার্মিনাল খুলুন, এবং সিভিএস-এ সম্পূর্ণ করার চেষ্টা করুন এবং এটি আপনাকে সিভিএস বিকল্পগুলির পরিপূরণ তালিকাতে প্রদর্শন করবে।


আমি উপরেরটি চেষ্টা করেছিলাম, তবে পরে যখনই আমি বাশ শুরু করি আমি 4 "আনারি অপারেটর প্রত্যাশিত" এবং 4 "অনেকগুলি আর্গুমেন্ট" ত্রুটি পাই।
আনানফায়

12
আপনি যদি ওএসএক্সে হোমব্রু ব্যবহার করছেন তবে আপনি চালাতে পারেন brew install bash-completion
নাথান ভিলিয়েস্কুসা

3
ব্যাশ-কমপ্লিট 2 আরও ভাল! ওএস এক্সে:brew tap homebrew/versions; brew install bash-completion2
জেরিন

85

ব্যক্তিগতভাবে, আমি zsh পছন্দ করি।

সাধারণত, আপনি সম্ভবত এটির এবং ব্যাশের মধ্যে পার্থক্যটি লক্ষ্য করবেন না, যতক্ষণ না আপনি দ্রুত পুনরাবৃত্ত গ্লোবাইংয়ের মতো কাজগুলি করতে চান:

  • **/*.c উদাহরণ স্বরূপ.

অথবা বিভিন্ন প্রত্যয়গুলির সাথে নির্দিষ্ট প্রোগগুলি সংযুক্ত করতে প্রত্যয় এলিয়াস ব্যবহার করুন, যাতে আপনি তাদের সরাসরি "চালানো" করতে পারেন। নীচের উপনামটি আপনাকে প্রম্পটে কেবলমাত্র টাইপ করে একটি সি উত্স ফাইল "চালাতে" দেয় ./my_program.c- যা টাইপ করলে ঠিক তেমন কাজ করবে vim ./my_program.c। (কোনও ফাইলের আইকনে ডাবল ক্লিক করার সমতুল্য অনুসারে বাছাই করুন))

  • alias -s c=vim

অথবা আজ পরিবর্তিত ফাইলগুলির নাম মুদ্রণ করুন:

  • print *(e:age today now:)

আপনি সম্ভবত এই সমস্ত কিছু বাশে করতে পারেন, তবে zsh এর সাথে আমার অভিজ্ঞতাটি হ'ল যদি আমি কিছু করতে চাই তবে আমি সম্ভবত zsh- প্রেমীদের মধ্যে এটি খুঁজে পেতে পারি । আমি ' ফর্ম বাশ থেকে জেড-শেল ' বইটিও সত্যিই দরকারী বলে মনে করি।

মন নিয়ে দৌড়ঝাঁপ করে খেলে বিশাল সংখ্যক অপশনও বেশ মজাদার!


1
এখানে প্রথম দুটি উদাহরণ আমার কাছে কোনও অর্থ বোঝায় না (একটি নৈমিত্তিক বাশ ব্যবহারকারী যারা zsh এ স্যুইচিংয়ের কথা বিবেচনা করছেন) - আপনি কি "পুনরাবৃত্ত গ্লোব্বিং" এর অর্থ কী বা "বিভিন্ন প্রত্যয় সহ বিশেষ নির্দিষ্ট অগ্রগামী" বলতে কী বোঝাতে পারেন?
অ্যারনসনসওয়েল

5
@ অ্যারনসনোসওয়েল: "রিকার্সিভ গ্লোববিং" এর অর্থ এমন একটি ফাইলের জন্য একটি উপ-ডিরেক্টরি এবং এর সমস্ত সাব-ডাইরেক্টরি অনুসন্ধান করা যাঁর নাম একটি নির্দিষ্ট প্যাটার্নের সাথে মেলে। বাশ এটি ডিফল্টরূপে করে না; আপনি findবা locateপুনরাবৃত্তি অনুসন্ধান করতে হবে। তবে একবার আপনি অন্য প্রোগ্রামটিকে অনুসন্ধান করতে দিলে, আপনি নামের মধ্যে সীমানা (যদি আপনি যত্নবান না হন) পাশাপাশি শেলের অভ্যন্তরীণ গ্ল্যাবিংয়ের ক্ষমতার অ্যাক্সেস হারিয়ে ফেলেন এবং মূলত অন্য প্রোগ্রামটি যা সরবরাহ করে তা করতে হবে, বা পাইপ মত একটি প্রোগ্রামের মাধ্যমে তার আউটপুট grep, awkবা sed(সমস্ত মোটামুটি তাদের নিজস্ব ডানদিকে জটিল)।
সিএইচও

6
এই দিনগুলিতে, আপনি globstarউপরে বর্ণিত হিসাবে পুনরাবৃত্ত অনুসন্ধানের জন্য মঞ্জুরির জন্য বিকল্পটিতে বিকল্প সেট করতে পারেন । খুব নিশ্চিত যে এই উত্তরটি যখন লেখা হয়েছিল তখন হয়নি।
সিএইচও

সঙ্গে glob_star_shortমধ্যে zsh, আপনি এখন কি করতে পারেন **.cযা ব্যাখ্যা করা হয়, **/*.c
পাইথননট

আমি ব্যবহার zsh 5.3এবং পেতে command not found: ageসঙ্গেprint *(e:age today now:)
টিমো

38

Zsh এ স্যুইচ করুন। আপনার এতে অ্যাক্সেস থাকবে:

  1. zmv: আপনি এটি করতে পারেন: zmv '(*).mp3' '$1.wma'হাজার হাজার ফাইলের জন্য।
  2. zcalc: অত্যন্ত আরামদায়ক ক্যালকুলেটর, এর চেয়ে ভাল bc
  3. zparseopts: আপনার স্ক্রিপ্টে দেওয়া যথেচ্ছ জটিল বিকল্পগুলি পার্স করার জন্য ওয়ান-লাইনার।
  4. autopushd: আপনার আগের ডিরেক্টরিতে ফিরে popdযাওয়ার cdজন্য আপনি সর্বদা করতে পারেন ।
  5. ভাসমান পয়েন্ট সমর্থন। এটি সময়ে সময়ে প্রয়োজন।
  6. সমর্থন hashes। কখনও কখনও এগুলি কেবল একটি মূল বৈশিষ্ট্য।

17
Zmv এর উদাহরণটি zmv '(*)। Mp3' '$ 1.wma' হওয়া উচিত। দয়া করে এটি সংশোধন করুন, এ জাতীয় গাফিলতি উপস্থাপনা অনভিজ্ঞদের জন্য বিভ্রান্তিকর এবং হতাশার হতে পারে।
কেইড

5
@ ট্র্যাভিসবিয়ার autoload zcalc; zcalc(যদিও আমি pythonযখনই আমার কাছে ক্যালকুলেটরের দরকার হয় আমি কেবল টাইপ করি)।
ফ্রান্সিসকো

9
"অটোপশ্ড: আপনার আগের ডিরেক্টরিতে ফিরে আসার জন্য আপনি সিডি পরে সর্বদা পপড করতে পারেন।" শুধু সিডির সমতুল্য নয় -?
minhaz1

4
zmvএবং zcalcবাক্সের বাইরে পাওয়া যায় না। এটি পরিষ্কার নয় যে zmvকেবলমাত্র ফাইলের নাম পরিবর্তন করা হচ্ছে; আমি ভেবেছিলাম আপনি সম্ভবত ফর্ম্যাট রূপান্তর করা হয়েছে। "হ্যাশ" সমর্থনটির অর্থ কী তা আমি জানি না। এই পোস্টটি দেখে মনে হচ্ছে এটি ইতিমধ্যে zsh জানে এমন লোকদের কাছে এটি কেবল "দরকারী"।
এমপেন

1
@ মার্ক এই ক্ষেত্রে, "হ্যাশ" "এসোসিয়েটিভ অ্যারে" এর সমার্থক। bash4 এই উত্তরের কয়েক মাস আগে মুক্তি পেয়েছিল।
চ্যানার

13

আপনি যদি ZSH ব্যবহার করতে চান তার জন্য যদি আরও ভাল সমাপ্ত হয় তবে কনফিগারেশনটি বেশ সহজ। এটি আপনার ~ / .zshrc এ রাখুন:

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

তবে জেডএসএইচ-এর অন্যান্য সমস্ত দুর্দান্ত বৈশিষ্ট্যগুলি পরীক্ষা করে দেখার মতো worth উপরের উদাহরণটি আপনাকে ভাল সমাপ্তির সাথে একটি চমত্কার সরল প্রম্পট দেবে। আপনি যদি কনফিগারেশনগুলিতে গলগল করতে না চান তবে জেডএসএইচ আপনার জন্য কি করতে পারে তা দেখতে চান, "zshrc" এর জন্য গুগল এবং আপনি শুরু করতে কনফিগারেশন ব্যবহারের জন্য কিছু প্রস্তুত পাবেন।


3
এটি কী ধরণের জিনিসগুলির জন্য পরিপূর্ণতা যোগ করবে? আমি কী করছি তা না জেনে এলোমেলোভাবে জিনিস যোগ করা পছন্দ করি না।
এমপেন

6

zsh এর একটি কনসোল জিআই কনফিগারেশন জিনিস রয়েছে। আপনি কনফিগারেশন ফাইলগুলির সাথে ঝাঁকুনি ছাড়াই এটি বেশ দ্রুত এবং সহজেই সেট আপ করতে পারেন। আমি মনে করি না এটি সেট আপ করতে আপনার খুব বেশি সময় প্রয়োজন হবে, সম্ভবত 10 সেকেন্ড স্রেফ ডিফল্ট ব্যবহার করে, তাই এগিয়ে যান এবং চেষ্টা করে দেখুন।


10
আপনি এই "কনসোল গুই" কীভাবে অ্যাক্সেস করবেন?
এমপেন

আপনি zshকোনও সম্পর্কিত ডটফাইল ছাড়াই লোড করার সময় এটি প্রথম দেখা যায় । এটি ম্যানুয়ালি পেতে, চেষ্টা করুনautoload -U +X zsh-newuser-install; zsh-newuser-install -f
অ্যাডাম কাটজ

3

স্টাএল একটি উইজার্ডের মতো প্রোগ্রামের কথা বলছে (সিইউআই) যা আপনি প্রথমবার zsh চালানোর পরে স্বশাসিত হন। কিছু প্রশ্নের উত্তর দিন, আপনার জন্য ডিফল্ট এবং এটি কনফিগার করা দেখুন / পরিবর্তন করুন।

আইবিএম বিকাশকারী ওয়ার্কসের zsh এ দুর্দান্ত রিসোর্স রয়েছে।

আমি খুব উন্নত বৈশিষ্ট্য ব্যবহার করি নি এবং এখনও অবধি আমি মারাত্মক পার্থক্যের মুখোমুখি হইনি যা বাশ থেকে আগত কাউকে বাধা দেয়।

কিছু উদাহরণ:

  • !? প্যাটার্ন <ট্যাব> ইতিহাসের মিলের প্যাটার্নে শেষ কমান্ডটিতে স্বয়ংক্রিয়ভাবে পূর্ণ হবে। খুব দরকারী.

  • আপনি আরএইচএসে একটি প্রম্পট কনফিগার করতে পারেন। একটি ব্যবহার হ'ল ডান পাশের প্রম্পট হিসাবে পিডাব্লুডি (বা ভেরিয়েবল প্রস্থের যে কোনও কিছু) প্রদর্শন করার সময় বাম দিকে একটি নির্দিষ্ট প্রস্থের প্রম্পট রাখুন যাতে সমস্ত কমান্ডগুলি ভালভাবে সরে যায়।

  • আপনি একাধিক ফাইল থেকে ইনপুট পুনর্নির্দেশ করতে পারেন (এখনও এটি চেষ্টা করার জন্য): বিড়াল <ফাইল 1 <ফাইল2 <ফাইল3

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