Bash
Bash প্রোগ্রামিং ভাষা
Bash (বর্ণ উচ্চারণ: [bæʃ]) হল একটি কমান্ড-লাইন শেল এবং প্রোগ্রামিং ভাষা। এটি GNU প্রকল্পের একটি অংশ এবং প্রায় সকল লিনাক্স এবং ইউনিক্স-এর অপারেটিং সিস্টেমে ডিফল্ট শেল হিসেবে ব্যবহৃত হয়। Bash মূলত Bourne shell-এর একটি উন্নত সংস্করণ, যা ব্রেন্ডন পিওয়ার এবং অন্যান্য ডেভেলপারদের দ্বারা তৈরি করা হয়েছে। Bash শুধু একটি কমান্ড ইন্টারপ্রেটার নয়, এটি একটি শক্তিশালী স্ক্রিপ্টিং ভাষা যা সিস্টেম অ্যাডমিনিস্ট্রেশন, অটোমেশন এবং জটিল কাজ সম্পাদনের জন্য ব্যবহৃত হয়।
ইতিহাস
১৯৮৯ সালে ব্রেন্ডন পিওয়ার প্রথম Bash-এর উন্নয়ন শুরু করেন। Bourne shell-এর কিছু সীমাবদ্ধতা দূর করে আরও উন্নত বৈশিষ্ট্য যোগ করার উদ্দেশ্য ছিল এই শেলের। ১৯৯৪ সালে GNU প্রকল্পের অংশ হিসেবে Bash প্রথম প্রকাশিত হয়। সময়ের সাথে সাথে, Bash আরও উন্নত হয়েছে এবং বর্তমানে এটি সবচেয়ে জনপ্রিয় শেলগুলির মধ্যে অন্যতম।
বৈশিষ্ট্যসমূহ
Bash-এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিচে উল্লেখ করা হলো:
- কমান্ড ইন্টারপ্রিটেশন: Bash কমান্ডগুলি পড়ে এবং সেগুলোকে অপারেটিং সিস্টেমের কাছে পাঠায়।
- স্ক্রিপ্টিং: Bash স্ক্রিপ্ট ব্যবহার করে একাধিক কমান্ডকে একটি স্বয়ংক্রিয় প্রক্রিয়ার মাধ্যমে চালানো যায়।
- ভেরিয়েবল: Bash-এ ভেরিয়েবল ব্যবহার করে ডেটা সংরক্ষণ করা যায়।
- কন্ডিশনাল স্টেটমেন্ট: `if`, `else`, `elif` এর মাধ্যমে শর্তসাপেক্ষে কমান্ড চালানো যায়।
- লুপ: `for`, `while`, `until` লুপ ব্যবহার করে পুনরাবৃত্তিমূলক কাজ করা যায়।
- ফাংশন: ফাংশন তৈরি করে কোডকে মডুলার করা যায় এবং পুনরায় ব্যবহার করা যায়।
- ইনপুট/আউটপুট রিডাইরেকশন: কমান্ডের ইনপুট এবং আউটপুট ফাইল বা অন্য কমান্ডের সাথে রিডাইরেক্ট করা যায়।
- পাইপিং: একটি কমান্ডের আউটপুটকে অন্য কমান্ডের ইনপুট হিসেবে ব্যবহার করা যায়।
- গ্লোবিং: ফাইল এবং ডিরেক্টরি নামানোর জন্য ওয়াইল্ডকার্ড ব্যবহার করা যায়।
বেসিক সিনট্যাক্স
Bash স্ক্রিপ্টের মূল সিনট্যাক্স অন্যান্য প্রোগ্রামিং ভাষার মতোই সহজ। নিচে কিছু মৌলিক সিনট্যাক্স উদাহরণ দেওয়া হলো:
- কমান্ড: `ls -l` (ডিরেক্টরির ফাইলগুলো বিস্তারিতভাবে দেখায়)
- ভেরিয়েবল নির্ধারণ: `name="John"`
- ভেরিয়েবল ব্যবহার: `echo "Hello, $name!"`
- কন্ডিশনাল স্টেটমেন্ট:
স্টেটমেন্ট | উদাহরণ | ||||
if | `if [ $age -gt 18 ]; then echo "Adult"; fi` | else | `if [ $age -lt 18 ]; then echo "Minor"; else echo "Adult"; fi` | elif | `if [ $score -ge 90 ]; then echo "A"; elif [ $score -ge 80 ]; then echo "B"; else echo "C"; fi` |
- লুপ:
লুপ | উদাহরণ | ||||
for | `for i in 1 2 3; do echo $i; done` | while | `while [ $count -lt 5 ]; do echo $count; count=$((count+1)); done` | until | `until [ $count -gt 5 ]; do echo $count; count=$((count+1)); done` |
- ফাংশন:
```bash my_function() {
echo "This is a function"
} my_function ```
গুরুত্বপূর্ণ কমান্ডসমূহ
Bash-এ ব্যবহৃত কিছু গুরুত্বপূর্ণ কমান্ড নিচে দেওয়া হলো:
- `ls`: ডিরেক্টরির ফাইল এবং ফোল্ডার তালিকাভুক্ত করে। ফাইল সিস্টেম
- `cd`: ডিরেক্টরি পরিবর্তন করে। ডিরেক্টরি
- `pwd`: বর্তমান ডিরেক্টরির পথ দেখায়। পাথ
- `mkdir`: নতুন ডিরেক্টরি তৈরি করে। ডিরেক্টরি তৈরি
- `rmdir`: খালি ডিরেক্টরি মুছে ফেলে। ডিরেক্টরি মোছা
- `rm`: ফাইল মুছে ফেলে। ফাইল মোছা
- `cp`: ফাইল বা ডিরেক্টরি কপি করে। কপি করা
- `mv`: ফাইল বা ডিরেক্টরি মুভ বা রিনেম করে। মুভ করা
- `cat`: ফাইলের কন্টেন্ট প্রদর্শন করে। ফাইল দেখা
- `echo`: টেক্সট প্রদর্শন করে। আউটপুট
- `grep`: ফাইলের মধ্যে নির্দিষ্ট টেক্সট খুঁজে বের করে। টেক্সট অনুসন্ধান
- `find`: ফাইল খুঁজে বের করে। ফাইল অনুসন্ধান
- `sed`: টেক্সট স্ট্রিম এডিট করে। টেক্সট এডিট করা
- `awk`: টেক্সট প্রসেসিংয়ের জন্য ব্যবহৃত হয়। টেক্সট প্রসেসিং
- `chmod`: ফাইলের পারমিশন পরিবর্তন করে। ফাইল পারমিশন
- `chown`: ফাইলের মালিকানা পরিবর্তন করে। ফাইল মালিকানা
- `ps`: চলমান প্রসেসগুলো দেখায়। প্রসেস
- `kill`: প্রসেস বন্ধ করে। প্রসেস বন্ধ করা
- `top`: সিস্টেমের রিসোর্স ব্যবহারের তথ্য দেখায়। সিস্টেম মনিটরিং
- `df`: ডিস্ক স্পেস ব্যবহারের তথ্য দেখায়। ডিস্ক স্পেস
স্ক্রিপ্টিং উদাহরণ
একটি সাধারণ Bash স্ক্রিপ্টের উদাহরণ নিচে দেওয়া হলো, যা একটি ডিরেক্টরির সব ফাইলের নাম প্রদর্শন করে:
```bash
- !/bin/bash
- ডিরেক্টরির পাথ
directory="/path/to/your/directory"
- ডিরেক্টরির ফাইলগুলো লুপের মাধ্যমে প্রদর্শন করা
for file in "$directory"/*; do
if [ -f "$file" ]; then echo "$file" fi
done ```
এই স্ক্রিপ্টটি প্রথমে ডিরেক্টরির পাথ নির্ধারণ করে, তারপর একটি লুপের মাধ্যমে ডিরেক্টরির প্রতিটি ফাইলের নাম প্রদর্শন করে। `if [ -f "$file" ]` কন্ডিশনটি নিশ্চিত করে যে শুধুমাত্র ফাইলগুলোই প্রদর্শন করা হচ্ছে, ডিরেক্টরি নয়।
Bash-এর ব্যবহার
Bash বিভিন্ন ক্ষেত্রে ব্যবহৃত হয়, তার মধ্যে কয়েকটি নিচে উল্লেখ করা হলো:
- সিস্টেম অ্যাডমিনিস্ট্রেশন: সিস্টেমের রক্ষণাবেক্ষণ এবং ব্যবস্থাপনার জন্য Bash স্ক্রিপ্ট ব্যবহার করা হয়।
- অটোমেশন: পুনরাবৃত্তিমূলক কাজগুলি স্বয়ংক্রিয় করার জন্য Bash স্ক্রিপ্ট ব্যবহার করা হয়।
- ডেভOps: ডেভOps ইঞ্জিনিয়াররা অ্যাপ্লিকেশন তৈরি, পরীক্ষা এবং স্থাপনের জন্য Bash স্ক্রিপ্ট ব্যবহার করেন। ডেভOps
- ডাটা প্রসেসিং: টেক্সট ফাইল থেকে ডেটা নিষ্কাশন এবং প্রক্রিয়াকরণের জন্য Bash স্ক্রিপ্ট ব্যবহার করা হয়।
- ব্যাকআপ এবং পুনরুদ্ধার: সিস্টেমের ব্যাকআপ তৈরি এবং পুনরুদ্ধারের জন্য Bash স্ক্রিপ্ট ব্যবহার করা হয়।
- নেটওয়ার্ক কনফিগারেশন: নেটওয়ার্ক সেটিংস কনফিগার করার জন্য Bash স্ক্রিপ্ট ব্যবহার করা হয়।
Bash এবং অন্যান্য শেল
Bash ছাড়াও আরও অনেক শেল রয়েছে, যেমন:
- Zsh: Zsh একটি শক্তিশালী শেল যা Bash-এর চেয়ে বেশি বৈশিষ্ট্য প্রদান করে। Zsh
- Fish: Fish একটি ব্যবহারকারী-বান্ধব শেল যা স্বয়ংক্রিয় পরামর্শ এবং সিনট্যাক্স হাইলাইটিং প্রদান করে। Fish shell
- Ksh: Ksh Korn shell-এর একটি উন্নত সংস্করণ। Korn shell
- Tcsh: Tcsh C shell-এর একটি উন্নত সংস্করণ। C shell
উন্নত ধারণা
- রেগুলার এক্সপ্রেশন (Regular Expressions): টেক্সট প্যাটার্ন ম্যাচিংয়ের জন্য রেগুলার এক্সপ্রেশন ব্যবহার করা হয়। রেগুলার এক্সপ্রেশন
- অ্যারে (Arrays): একাধিক ভ্যালু সংরক্ষণের জন্য অ্যারে ব্যবহার করা হয়। অ্যারে
- সিগন্যাল হ্যান্ডলিং (Signal Handling): স্ক্রিপ্টে সিগন্যাল (যেমন Ctrl+C) গ্রহণ এবং প্রক্রিয়াকরণের জন্য সিগন্যাল হ্যান্ডলিং ব্যবহার করা হয়। সিগন্যাল
- ইনপুট ভ্যালিডেশন (Input Validation): ব্যবহারকারীর কাছ থেকে ইনপুট নেওয়ার সময় সেটি সঠিক কিনা তা যাচাই করা। ইনপুট ভ্যালিডেশন
- এরর হ্যান্ডলিং (Error Handling): স্ক্রিপ্টে অপ্রত্যাশিত এরর দেখা দিলে তা সঠিকভাবে মোকাবিলা করা। এরর হ্যান্ডলিং
উপসংহার
Bash একটি শক্তিশালী এবং বহুমুখী শেল প্রোগ্রামিং ভাষা। সিস্টেম অ্যাডমিনিস্ট্রেশন থেকে শুরু করে ডেভOps পর্যন্ত বিভিন্ন ক্ষেত্রে এর ব্যবহার রয়েছে। Bash-এর মৌলিক ধারণাগুলি শিখে এবং নিয়মিত অনুশীলনের মাধ্যমে যে কেউ এই ভাষায় দক্ষ হয়ে উঠতে পারে।
কমান্ড-লাইন ইন্টারফেস শেল স্ক্রিপ্টিং লিনাক্স কার্নেল ইউনিক্স অপারেটিং সিস্টেম প্রোগ্রামিং ভাষা ডেটা স্ট্রাকচার অ্যালগরিদম সিস্টেম প্রোগ্রামিং নেটওয়ার্কিং সিকিউরিটি ভার্চুয়ালাইজেশন ক্লাউড কম্পিউটিং ডকার কুবেরনেটিস গিট সফটওয়্যার ডেভেলপমেন্ট টেকনিক্যাল বিশ্লেষণ ভলিউম বিশ্লেষণ ফিনান্সিয়াল মডেলিং ঝুঁকি ব্যবস্থাপনা
এখনই ট্রেডিং শুরু করুন
IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)
আমাদের সম্প্রদায়ে যোগ দিন
আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ