কম্পিউটার টিউটোরিয়াল

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা

যখন আপনি আপনার টার্মিনাল খুলেন, সম্ভবত সেটি Bash ব্যবহার করে তার UNIX শেল এনভায়রনমেন্ট হিসেবে। কিন্তু অন্যান্য "শেল" এনভায়রনমেন্টও আছে।

C Shell, Korn Shell, Z Shell, এবং এমনকি Fish Shell-এর মতো অন্যান্য এনভায়রনমেন্ট রয়েছে। এই সব ভিন্ন শেল এনভায়রনমেন্টের নিজস্ব সুবিধা এবং অসুবিধা রয়েছে, এবং আপনাকে আপনার নিজের সিস্টেমে কোনটি ব্যবহার করবেন সেটি বেছে নেওয়ার আগে সেগুলো বিবেচনা করা উচিত।

এই আর্টিকেলে, আমি কিছু জনপ্রিয় শেল এবং তাদের মূল ফিচারগুলো নিয়ে আলোচনা করব যাতে আপনি একটি বেছে নিতে পারেন।

Bash শেল

Bash শেল (বা Bourne Again Shell) হলো একটি UNIX শেল এবং কমান্ড ল্যাঙ্গুয়েজ। এটি GNU প্রজেক্টের জন্য ব্রায়ান ফক্স লিখেছিলেন Bourne Shell (sh)-এর একটি ফ্রি সফ্টওয়্যার রিপ্লেসমেন্ট হিসেবে।

Bash ১৯৮৯ সালে প্রথম রিলিজ হয়েছিল, এবং অধিকাংশ লিনাক্স ডিস্ট্রিবিউশনে এটি ডিফল্ট শেল এনভায়রনমেন্ট। অন্যান্য ডিস্ট্রো, যেমন Kali Linux, Z Shell ব্যবহার করে তাদের ডিফল্ট শেল হিসেবে।

Bash লিনাক্সের স্রষ্টা লাইনাস টরভাল্ডস দ্বারা লিনাক্সে পোর্ট করা প্রথম প্রোগ্রামগুলোর একটি ছিল।

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা Image Source

একটা জিনিস যা আপনি কনফিউজড হবেন না: Bash একটি প্রোগ্রামিং ল্যাঙ্গুয়েজও। তাই এটি একটি "শেল", কিন্তু আপনি Bash-এ বিহেভিয়ার প্রোগ্রামও করতে পারেন। উদাহরণস্বরূপ:

#!/bin/bash echo "Hello World" 

Bash সম্পর্কে মূল পয়েন্টগুলো

  • বেশিরভাগ ইউজার Bash ব্যবহার করে, কারণ অধিকাংশ সিস্টেমে এটি ডিফল্ট শেল এনভায়রনমেন্ট
  • Bash-এ ইনলাইন ワイル্ডকার্ড এক্সপ্রেশন নেই। একটি 와일্ডকার্ড এক্সপ্রেশন হলো যখন আপনি আপনার শেলে প্যাটার্ন সার্চ করতে চান, Regex-এর মতো। তিনটি মূল ワイル্ডকার্ড হলো *, ?, এবং []।
  • আপনি ডিরেক্টরি নাম অটোমেটিক্যালি চেঞ্জ করতে পারবেন না
  • # স্ক্রিপ্টিং-এ কমেন্ট হিসেবে বিবেচিত হয়
  • এতে shopt সেটিংস রয়েছে
  • প্রম্পটে ব্যাকস্ল্যাশ এস্কেপ রয়েছে
  • ইউজার কনফিগারেশন সেটিংস .bashrc-এ থাকে

Z শেল (Zsh)

Z শেল, বা Zsh হলো একটি UNIX শেল যা Bash-এর সাথে খুব সিমিলার। আপনি এটি স্ক্রিপ্টিং এবং কমান্ড ইন্টারপ্রেটার হিসেবে ব্যবহার করতে পারেন।

Zsh হলো Bourne শেলের একটি এক্সটেনশন অনেক উন্নতির সাথে। Zsh ১৯৯০ সালে পল ফালস্টাড দ্বারা রিলিজ হয়েছিল, এবং এতে Bash, Korn Shell, এবং C Shell-এর কিছু ফিচার শেয়ার করা রয়েছে।

macOS ডিফল্টভাবে Zsh শেল ব্যবহার করে।

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা Image Source

Zsh সম্পর্কে মূল পয়েন্টগুলো

  • টার্মিনাল ব্যবহার করার সময় অটোকম্প্লিশন দেয়। তাই যখন আপনি Tab ↹ প্রেস করেন আপনি যে কমান্ডটি রান করতে চান সেটি অটোকম্প্লিট করার জন্য, নন-সिर्फ এটি আপনার জন্য অটোকম্প্লিট করে বরং অন্যান্য সব সম্ভাব্য ফাইল এবং ডিরেক্টরির একটি ড্রপ-ডাউনও দেখাবে:

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা

  • ইনলাইন ワイル্ডকার্ড এক্সপ্রেশন সাপোর্ট করে
  • Bash-এর চেয়ে অনেক বেশি কনফিগারেবল
  • প্লাগইন এবং থিম সাপোর্ট করে। Zsh-এর জন্য উপলব্ধ প্লাগইন들의 লিস্ট এখানে।

Z শেলের চারদিকেও ফ্রেমওয়ার্ক তৈরি হয়েছে। সবচেয়ে জনপ্রিয়গুলোতে একটি হলো Oh My Zsh, যা Zsh কনফিগারেশন ম্যানেজ করার জন্য একটি কমিউনিটি-ড্রিভেন, ওপেন-সোর্স ফ্রেমওয়ার্ক। (আমি Oh My Zsh ব্যবহার করি 😄)

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা Image Source

Zsh এবং Oh My Zsh সিমিলার কিন্তু একই জিনিস নয়। পুনরাবৃত্তি করতে হলে, Oh My Zsh আপনার Zsh কনফিগারেশন ম্যানেজ করার একটি উপায়, এটি শেলটি নয়।

Fish শেল

Fish একটি UNIX শেল এনভায়রনমেন্ট যাতে ইন্টারঅ্যাক্টিভিটি এবং ইউজাবিলিটি-এ জোর দেওয়া হয়েছে। Zsh-এর বিপরীতে, Fish ডিফল্টভাবে ইউজারকে ইন্টারঅ্যাক্টিভিটি দেয় বলে আশা করে না যে ইউজার নিজে তাদের কনফিগারেশন ইমপ্লিমেন্ট করবে।

এটি ২০০৫ সালে আক্সেল লিজেনক্রান্টজ দ্বারা তৈরি হয়েছিল। Fish কে একটি "exotic shell" বলা হয় কারণ এটি POSIX শেল স্ট্যান্ডার্ডস কম্পলাই করে না। [[Source](https://en.wikipedia.org/wiki/Fish_(Unix_shell)]

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা Image Source

Fish সম্পর্কে মূল পয়েন্টগুলো

  • Fish-এ "search as you type" অটোমেটিক সাজেশন রয়েছে আপনার কমান্ড হিস্টরি এবং আপনি যে ডিরেক্টরিতে আছেন সেটির ওপর ভিত্তি করে। Bash-এর হিস্টরি সার্চের মতো, Fish শেলের সার্চ হিস্টরি সবসময় অন থাকে। যাতে ইউজার টার্মিনালে কাজ করার সময় ইন্টারঅ্যাক্টিভ ফিডব্যাক পান।

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা Image Source

  • Fish ফিচারকে কমান্ড হিসেবে পছন্দ করে সিনট্যাক্সের বদলে। এটি ফিচারকে কমান্ডসহ অপশন এবং হেল্প টেক্সটের মাধ্যমে দৃশ্যমান করে
  • Fish ডিফল্টভাবে অনেক কনফিগারেশন সেট করে আসে, তাই এটি অন্যান্য sh অপশন যেমন Zsh-এর চেয়ে আরও বিগিনার-ফ্রেন্ডলি মনে হয়।
  • Fish-এর স্ক্রিপ্টিং ল্যাঙ্গুয়েজ Zsh এবং Bash থেকে ভিন্ন। Zsh বেশি আলিয়াস ব্যবহার করে যখন Fish স্ক্রিপ্টিং ল্যাঙ্গুয়েজে আলিয়াস এড়িয়ে চলে।

আপনি যদি শুধু বেসিক কমান্ড যেমন, cd, cp, vim, ssh, ইত্যাদি ব্যবহার করে স্ক্রিপ্ট বানান, তবে আপনি Fish এবং Bash-এর স্ক্রিপ্টিং ল্যাঙ্গুয়েজের কাজ করার পদ্ধতিতে কোনো পার্থক্য নোটিস করবেন না।

সবচেয়ে বড় পার্থক্যগুলোর একটি হলো যখন আপনি একটি কমান্ড থেকে আউটপুট ক্যাপচার করার চেষ্টা করছেন। Bash-এ আপনি এইভাবে অভ্যস্ত থাকতে পারেন:

todays_date=$(date) echo "Todays date is $todays_date" 

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা

Todays Date is Tue Dec 13 15:29:28 CST 2022 

যেখানে Fish-এ, আউটপুট ক্যাপচার করা ভিন্নভাবে কাজ করে। Fish-এ স্ক্রিপ্টিং-এ ইকুিভ্যালেন্ট এরকম দেখাবে:

set date (date) echo "Todays Date $date" 

সঠিক লিনাক্স শেল বেছে নিন: Bash, Zsh, এবং Fish – ফিচার ও সুবিধা ব্যাখ্যা

todays date is Tue Dec 13 21:35:03 UTC 2022 

উপসংহার

Bash, Z Shell, এবং Fish Shell সবার নিজস্ব মেরিটস রয়েছে, কিছু সিমিলারিটির সাথে। এখন আপনি তাদের সম্পর্কে কিছুটা বেশি জানতে পারলে, আপনি আপনার ওয়ার্ক এনভায়রনমেন্টে যেকোনো একটিকে কার্যকরভাবে ব্যবহার করতে পারবেন।

আপনি যদি আরও কনফিগারেবল কিছু চান, তবে Zsh ব্যবহার করতে পারেন (অথবা Oh My Zsh ইনস্টল করতে পারেন)। আপনি যদি অনেক কনফিগারেশন ছাড়া ইন্টারঅ্যাক্টিভ টার্মিনাল এক্সপেরিয়েন্স চান, তবে Fish শেল ব্যবহার করতে পারেন। আপনি যদি ক্লাসিক ফিল চান, তবে শুধু Bash-এ থাকতে পারেন।

এটি সব আপনার পছন্দ ওপর নির্ভর করে ডেভেলপার হিসেবে – তাই সেই শেলটি বেছে নিন যা আপনার জন্য সবচেয়ে ভালো কাজ করে।

আশা করি এটি আপনাকে সাহায্য করল! পড়ার জন্য ধন্যবাদ 🐚🐚🐚

নিঃশুল্ক কোডিং শিখুন। freeCodeCamp-এর ওপেন সোর্স কারিকুলাম ৪০,০০০-এর বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন।

  1. C++ STL-এ প্রায়োরিটি কিউ (Priority Queue)

  2. জাভাস্ক্রিপ্টে ফর্ম সাবমিশনে বাটন ক্লিক ট্রিগার করে এলার্ট দেখানো

  3. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

  4. HTML ondragend ইভেন্ট অ্যাট্রিবিউট