ব্যাশ
ব্যাশ প্রোগ্রামিং ভাষা
ব্যাশ (Bash) একটি বহুল ব্যবহৃত শেল এবং প্রোগ্রামিং ভাষা। এটি গুনু (GNU) প্রকল্পের একটি অংশ এবং প্রায় সকল লিনাক্স এবং ম্যাকওএস (macOS) সিস্টেমে ডিফল্ট শেল হিসেবে ব্যবহৃত হয়। ব্যাশ মূলত বোর্ন শেল (Bourne Shell) এর একটি উন্নত সংস্করণ, যা আবার বিলুপ্তপ্রায়। ব্যাশ শুধু কমান্ড লেখার জন্য নয়, বরং জটিল প্রোগ্রামিংয়ের জন্য উপযুক্ত।
ব্যাশের ইতিহাস
ব্যাশ এর যাত্রা শুরু হয় ১৯৮৯ সালে ব্রায়ান ফক্স (Brian Fox) এর হাত ধরে। বোর্ন শেলের সীমাবদ্ধতা দূর করে আরও শক্তিশালী এবং ব্যবহারকারী-বান্ধব শেল তৈরির উদ্দেশ্য নিয়ে তিনি কাজ শুরু করেন। পরবর্তীতে, এটি গুনু প্রকল্পের অংশ হিসেবে প্রকাশিত হয় এবং দ্রুত জনপ্রিয়তা লাভ করে।
ব্যাশের বৈশিষ্ট্য
ব্যাশ প্রোগ্রামিং ভাষার কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিচে উল্লেখ করা হলো:
- কমান্ড ইন্টারপ্রিটেশন: ব্যাশ একটি কমান্ড-লাইন ইন্টারপ্রেটার, যা ব্যবহারকারীর কাছ থেকে কমান্ড গ্রহণ করে এবং সেগুলোকে অপারেটিং সিস্টেমে কার্যকর করে।
- স্ক্রিপ্টিং: ব্যাশ স্ক্রিপ্ট লিখে স্বয়ংক্রিয়ভাবে বিভিন্ন কাজ করা যায়। এটি সিস্টেম অ্যাডমিনিস্ট্রেশন, ব্যাকআপ, এবং অন্যান্য পুনরাবৃত্তিমূলক কাজের জন্য খুবই উপযোগী।
- ভেরিয়েবল: ব্যাশে ভেরিয়েবল ব্যবহার করে ডেটা সংরক্ষণ করা যায়। ভেরিয়েবলগুলি বিভিন্ন ডেটা টাইপ যেমন স্ট্রিং, সংখ্যা, এবং অ্যারে ধারণ করতে পারে।
- কন্ডিশনাল স্টেটমেন্ট: ব্যাশে `if`, `else`, `elif` এর মতো কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে শর্তের ভিত্তিতে বিভিন্ন কাজ করা যায়।
- লুপ: `for`, `while`, `until` লুপ ব্যবহার করে পুনরাবৃত্তিমূলক কাজ সহজে করা যায়।
- ফাংশন: ব্যাশে ফাংশন তৈরি করে কোডকে মডুলার এবং পুনর্ব্যবহারযোগ্য করা যায়।
- ইনপুট/আউটপুট রিডাইরেকশন: ব্যাশে ইনপুট এবং আউটপুট রিডাইরেকশন ব্যবহার করে কমান্ডের আউটপুট ফাইল অথবা অন্য কোনো কমান্ডের ইনপুট হিসেবে ব্যবহার করা যায়।
- পাইপিং: পাইপিং এর মাধ্যমে একটি কমান্ডের আউটপুটকে অন্য কমান্ডের ইনপুট হিসেবে পাঠানো যায়।
ব্যাশ স্ক্রিপ্ট লেখার নিয়মাবলী
ব্যাশ স্ক্রিপ্ট লেখার জন্য কিছু নির্দিষ্ট নিয়ম অনুসরণ করতে হয়। নিচে কয়েকটি সাধারণ নিয়ম আলোচনা করা হলো:
- স্ক্রিপ্টের প্রথম লাইন হিসেবে Shebang (`#!`) ব্যবহার করা হয়। এটি নির্দেশ করে যে স্ক্রিপ্টটি কোন ইন্টারপ্রেটার দিয়ে রান করতে হবে। যেমন: `#!/bin/bash`
- কমেন্ট লেখার জন্য `#` চিহ্ন ব্যবহার করা হয়।
- ভেরিয়েবল ঘোষণা করার জন্য `=` চিহ্ন ব্যবহার করা হয়। যেমন: `name="John"`
- স্ক্রিপ্ট ফাইলের এক্সটেনশন `.sh` রাখা হয়।
- স্ক্রিপ্ট রান করার জন্য `chmod +x script.sh` কমান্ড ব্যবহার করে ফাইলটিকে এক্সিকিউটেবল করতে হয়। তারপর `./script.sh` লিখে স্ক্রিপ্টটি চালানো যায়।
ব্যাশে ব্যবহৃত কিছু মৌলিক কমান্ড
ব্যাশে অসংখ্য কমান্ড রয়েছে। এর মধ্যে কিছু মৌলিক কমান্ড নিচে উল্লেখ করা হলো:
কমান্ড | বিবরণ |
`ls` | ডিরেক্টরির ফাইল এবং ফোল্ডারগুলো তালিকাভুক্ত করে। ফাইল সিস্টেম |
`cd` | ডিরেক্টরি পরিবর্তন করে। ডিরেক্টরি |
`pwd` | বর্তমান ডিরেক্টরির পাথ দেখায়। |
`mkdir` | নতুন ডিরেক্টরি তৈরি করে। |
`rmdir` | খালি ডিরেক্টরি মুছে ফেলে। |
`rm` | ফাইল মুছে ফেলে। |
`cp` | ফাইল কপি করে। |
`mv` | ফাইল বা ডিরেক্টরি মুভ বা রিনেম করে। |
`cat` | ফাইলের কন্টেন্ট প্রদর্শন করে। |
`echo` | টেক্সট প্রদর্শন করে। |
`grep` | ফাইলের মধ্যে নির্দিষ্ট টেক্সট খুঁজে বের করে। টেক্সট এডিটর |
`find` | ফাইল খুঁজে বের করে। |
`chmod` | ফাইলের পারমিশন পরিবর্তন করে। ফাইল পারমিশন |
`chown` | ফাইলের মালিকানা পরিবর্তন করে। |
`ps` | চলমান প্রসেসগুলো দেখায়। প্রসেস ম্যানেজমেন্ট |
`kill` | প্রসেস বন্ধ করে। |
`top` | সিস্টেমের রিসোর্স ব্যবহারের তথ্য দেখায়। |
`df` | ডিস্কের ব্যবহার সম্পর্কিত তথ্য দেখায়। |
`du` | ডিরেক্টরির আকার দেখায়। |
ব্যাশ স্ক্রিপ্টিং এর উদাহরণ
একটি সাধারণ ব্যাশ স্ক্রিপ্ট যা "Hello, World!" প্রিন্ট করে:
```bash
- !/bin/bash
echo "Hello, World!" ```
আরেকটি স্ক্রিপ্ট যা ব্যবহারকারীর কাছ থেকে ইনপুট নেয় এবং তাকে অভিবাদন জানায়:
```bash
- !/bin/bash
echo "আপনার নাম কি?" read name echo "হ্যালো, $name!" ```
একটি স্ক্রিপ্ট যা একটি ডিরেক্টরির ফাইলগুলো গণনা করে:
```bash
- !/bin/bash
directory="$1" if [ -z "$directory" ]; then
echo "অনুগ্রহ করে একটি ডিরেক্টরি প্রদান করুন।" exit 1
fi
file_count=$(ls -l "$directory" | grep -v "^d" | wc -l) echo "ডিরেক্টরিতে ফাইলের সংখ্যা: $file_count" ```
ব্যাশ প্রোগ্রামিংয়ের উন্নত ধারণা
ব্যাশ প্রোগ্রামিং-এ আরও কিছু উন্নত ধারণা রয়েছে যা স্ক্রিপ্টগুলোকে আরও শক্তিশালী এবং কার্যকরী করে তোলে:
- অ্যারে: ব্যাশে অ্যারে ব্যবহার করে একাধিক ভেরিয়েবলকে একটি নামে সংরক্ষণ করা যায়।
- ফাংশন: ফাংশন তৈরি করে কোডকে পুনর্ব্যবহারযোগ্য করা যায়।
- রেগুলার এক্সপ্রেশন: রেগুলার এক্সপ্রেশন ব্যবহার করে টেক্সট প্যাটার্ন ম্যাচিং করা যায়। রেগুলার এক্সপ্রেশন
- সিগন্যাল হ্যান্ডলিং: সিগন্যাল হ্যান্ডলিং ব্যবহার করে স্ক্রিপ্টকে বিভিন্ন সিস্টেম ইভেন্টের প্রতি সংবেদনশীল করা যায়।
- ইনপুট ভ্যালিডেশন: ব্যবহারকারীর ইনপুট ভ্যালিডেট করে স্ক্রিপ্টকে আরও নিরাপদ করা যায়।
- এরর হ্যান্ডলিং: স্ক্রিপ্টে এরর হ্যান্ডলিং যোগ করে অপ্রত্যাশিত ত্রুটিগুলি মোকাবেলা করা যায়।
ব্যাশ এবং অন্যান্য প্রোগ্রামিং ভাষার মধ্যে পার্থক্য
ব্যাশ একটি শেল স্ক্রিপ্টিং ভাষা, তাই এটি অন্যান্য প্রোগ্র
এখনই ট্রেডিং শুরু করুন
IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)
আমাদের সম্প্রদায়ে যোগ দিন
আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ