শেখা কঠিন কাজ, এবং কেউ কাজ পছন্দ করে না। এর মানে, ব্যাশ শেখা কতটুকু সহজ কেননা, এটা আপনার কাছে কাজের মতো লাগতে পারে। যদি, অবশ্যই, আপনি গেমিংয়ের মাধ্যমে না শিখেন।
আপনি মনে করবেন ব্যাশ টার্মিনাল ব্যবহার শেখানোর জন্য বাহিরে অনেক গেম থাকবে না, এবং আপনি সঠিক হবেন। সিরিয়াস পিসি গেমাররা জানেন Fallout সিরিজে ভল্টে টার্মিনাল-ভিত্তিক কম্পিউটার থাকে, যা কম্পিউটারের সাথে টেক্সটের মাধ্যমে ইন্টারফেস করার ধারণাকে স্বাভাবিক বানাতে সাহায্য করে, কিন্তু Alpine বা Emacs-এর মতো অ্যাপ্লিকেশন ফিচার থাকার باড়তি, Fallout খেলা আপনাকে রিয়েল লাইফে ব্যবহার যোগ্য কমান্ড বা অ্যাপ্লিকেশন শিখাতে পারে না। Fallout সিরিজ কখনো সরাসরি লিনাক্সে পোর্ট করা হয়নি (যদিও এটি Steam-এর ওপেন সোর্স Proton-এর মাধ্যমে খেলা যায়)। Wasteland সিরিজের আধুনিক এন্ট্রিগুলো যেগুলো Fallout-এর পূর্বসূরী, লিনাক্স টার্গেট করে, তাই আপনি যদি ইন-গেম টার্মিনাল অনুভব করতে চান, আপনি আপনার লিনাক্স গেমিং পিসিতে Wasteland 2 এবং Wasteland 3 খেলতে পারেন। Shadowrun সিরিজও লিনাক্স টার্গেট করে, এবং এতে টার্মিনাল-ভিত্তিক ইন্টারঅ্যাকশন প্রচুর, যদিও এটি মাঝেমধ্যে ব্লেজিং হট সিম সিকোয়েন্স দ্বারা ছায়াগ্রস্ত হয়ে যায়।
যদিও সেই গেমগুলো কম্পিউটার টার্মিনালের প্রতি একটি মজার দৃষ্টিভঙ্গি নেয় এবং ওপেন সোর্স সিস্টেমে চলে, কিন্তু কোনটিই নিজে ওপেন সোর্স নয়। যাইহোক, কমপক্ষে দুটি গেম আছে যা লোকেদের টেক্সট কমান্ডের মাধ্যমে সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার শেখানোর জন্য একটি সিরিয়াস, এবং সিরিয়াসলি ফান, দৃষ্টিভঙ্গি নেয়। এবং সবচেয়ে ভালো কথা, সেগুলো ওপেন সোর্স।
Bashcrawl
আপনি Colossal Cave Adventure-র কথা শুনতে পারেন, একটি পুরানো টেক্সট-ভিত্তিক, ইন্টারঅ্যাক্টিভ গেম "choose your own adventure" বইয়ের শৈলীতে। আধুনিক কম্পিউটারিস্টরা DOS বা ProDOS কমান্ড লাইনে এদের জড়িতভাবে খেলত, সঠিক সিনট্যাক্স এবং জ্যাঙ্কি ফ্যান্টাসি লজিক (যেকোনো সরকাস্টিক হ্যাকার দ্বারা ইন্টারপ্রেট করা) এর সঠিক কম্বিনেশন খুঁজে বের করতে চেষ্টা করত গেম জিততে। কল্পনা করুন কতটা প্রোডাক্টিভ হতে পারত এই সংগ্রাম যদি চ্যালেঞ্জটি হয়, একটি ভার্চুয়াল মিডieval ডাঞ্জন এক্সপ্লোর করার পাশাপাশি, বৈধ ব্যাশ কমান্ড রিকাল করা। সেটিই Bashcrawl-এর পিচ, একটি ব্যাশ-ভিত্তিক ডাঞ্জন ক্রল যা আপনি ব্যাশ কমান্ড শিখে এবং ব্যবহার করে খেলেন।
Bashcrawl-এ, একটি "ডাঞ্জন" আপনার কম্পিউটারে ডিরেক্টরি এবং ফাইলস्वरূপ তৈরি হয়। আপনি cd কমান্ড ব্যবহার করে ডাঞ্জনের প্রতিটি রুমে ডিরেক্টরি চেঞ্জ করে ডাঞ্জন এক্সপ্লোর করেন। ডিরেক্টরিগুলোর মাধ্যমে এগিয়ে যাওয়ার সাথে সাথে, আপনি ls -F দিয়ে ফাইল পরীক্ষা করেন, cat দিয়ে ফাইল পড়েন, ট্রেজার কালেক্ট করার জন্য ভেরিয়েবল সেট করেন, এবং মন্স্টার লড়াই করার জন্য স্ক্রিপ্ট রান করেন। গেমে আপনি যা কিছু করেন সেটি একটি বৈধ ব্যাশ কমান্ড যা আপনি পরে রিয়েল লাইফে ব্যবহার করতে পারেন, এবং গেম খেলা ব্যাশ প্র্যাকটিস প্রদান করে কারণ "গেম"টি আপনার কম্পিউটারের ওপর বাস্তব ডিরেক্টরি এবং ফাইলগুলো থেকে বানানো।
$ cd entrance/
$ ls
cellar scroll
$ cat scroll
It is pitch black in these catacombs.
You have a magical spell that lists all items in a room.
To see in the dark, type: ls
To move around, type: cd <directory>
EXAMPLE:
$ ls
$ cd cellar
Remember to cast ``ls`` when you get into the next room!
$
Bashcrawl ইনস্টল করুন
Bashcrawl খেলার আগে, আপনার সিস্টেমে Bash বা Zsh থাকতে হবে। লিনাক্স, BSD, এবং MacOS বাই ডিফল্ট Bash সহ আসে। উইন্ডোজ ব্যবহারকারীরা Cygwin বা WSL ডাউনলোড ও ইনস্টল করতে পারেন বা লিনাক্স ট্রাই করতে পারেন।
Bashcrawl ইনস্টল করতে, Firefox বা আপনার পছন্দের ওয়েব ব্রাউজারে GitLab-এ নেভিগেট করুন। পেজের ডান পাশে, Download আইকনে ক্লিক করুন (Find file বাটনের ডানে)।
Download পপ-আপ মেনুতে, গেমের লেটেস্ট ভার্সন ডাউনলোড করতে Zip বাটনে ক্লিক করুন।
ডাউনলোড হওয়ার পর, আর্কাইভটি আনজিপ করুন।
অথবা, আপনি যদি টার্মিনালে অবিলম্বে কাজ শুরু করতে চান, আপনি Git ব্যবহার করতে পারেন:
$ git clone https://gitlab.com/slackermedia/bashcrawl.git bashcrawl
শুরু করা
আপনি যে প্রায় সব নতুন সফটওয়্যার প্যাকেজ ডাউনলোড করেন, আপনাকে প্রথমে README ফাইলটি পড়তে হবে। আপনি bashcrawl ডিরেক্টরিতে README.md ফাইলে ডাবল-ক্লিক করেও এটি করতে পারেন। Mac-এ, আপনার কম্পিউটার হয়তো না জানে কোন অ্যাপ্লিকেশন দিয়ে ফাইলটি খুলতে হবে; আপনি যেকোনো টেক্সট এডিটর বা LibreOffice ব্যবহার করতে পারেন। README.md আপনাকে একদম সঠিকভাবে বলে দেবে গেম কীভাবে শুরু করতে হয়, টার্মিনালে গেমে কীভাবে যেতে হয়, এবং গেম শুরু করার জন্য আপনাকে প্রথমে কী কমান্ড ইস্যু করতে হবে। আপনি যদি README ফাইলটি পড়তে ব্যর্থ হন, গেম ডিফল্টভাবেই জিতবে (যদিও সেটি আপনাকে বता পারবে না কারণ আপনি এটিকে খেলেননি)।
Bashcrawl অতিরিক্ত চতুর বা উন্নত হওয়ার জন্য নয়। বরং, এটি নতুন ব্যবহারকারীদের জন্য স্পষ্ট হওয়ার আগ্রহে যতটা সম্ভব সহজ। আদর্শভাবে, একজন নতুন ব্যাশ ব্যবহারকারী গেম থেকে ব্যাশের কিছু বেসিক শিখতে পারে, এবং তারপর গেমের মেকানিক্স, যার মধ্যে এটিকে চালানোর সহজ স্ক্রিপ্টগুলো, খুঁজে পেতে পারে, এবং আরও বেশি ব্যাশ শিখতে পারে। এছাড়া, নতুন ব্যাশ ব্যবহারকারী Bashcrawl-এর বিদ্যমান কন্টেন্টের উদাহরণ ফলো করে নিজেদের ডাঞ্জন ডিজাইন করতে পারে, এবং কোডিং শেখার চেয়ে ভালো উপায় নেই একটি গেম বানানো।
Command Line Heroes: BASH
Bashcrawl.absolutes beginners-র জন্য। আপনি যদি নিয়মিত ভাবে ব্যাশ ব্যবহার করেন, আপনি খুব সম্ভবত Bashcrawl-কে আউটস্মার্ট করার চেষ্টা করবেন ফাইলগুলোকে যেসবভাবে একজন নতুন ব্যবহারকারী জানেনা সেসবভাবে দেখে। আপনি যদি একজন ইন্টারমিডিয়েট বা অ্যাডভান্সড ব্যাশ ব্যবহারকারী হন, তবে আপনাকে Command Line Heroes: BASH ট্রাই করা উচিত।
গেমটি সহজ: একটি নির্দিষ্ট সময়ের মধ্যে আপনি যতটা সম্ভব বৈধ কমান্ড ভাবতে পারেন টাইপ করুন। এটা সহজ শোনাচ্ছে। একজন ব্যাশ ব্যবহারকারী হিসেবে, আপনি প্রতিদিন অনেক কমান্ড ব্যবহার করেন। একজন লিনাক্স ব্যবহারকারী হিসেবে, আপনি জানেন কোথায় কমান্ডের তালিকা পাওয়া যায়; util-linux প্যাকেজ একলেই ১০০টিরও বেশি কমান্ড ধারণ করে! প্রশ্ন হল, কাউন্টডাউনের প্রেশার আন্ডারে কী 그중 কোনো কমান্ড আপনার আঙ্গুলের আগলে উপলব্ধ?
এই গেমটি সহজ শোনায় কারণ এটি সহজ! সিদ্ধান্তে, এটি ফ্ল্যাশকার্ডের মতো, শুধু উল্টো। প্র্যাকটিসে, এটি আপনার জ্ঞান এবং রিক্যাল পরীক্ষার একটি মজার উপায়। এবং অবশ্যই, এটি ওপেন সোর্স, Open Jam-এর 크리에이터রা দ্বারা ডেভেলপ করা।
ইনস্টল করা
আপনি Command Line Heroes: Bash অনলাইনে খেলতে পারেন, বা GitHub থেকে সোর্স কোড ডাউনলোড করতে পারেন।
গেমটি Node.js-এ লেখা, তাই যদি আপনি গেম ডেভেলপ করতে সাহায্য না করতে চান, অনলাইনে খেলা জ্যাদা সেনসিবল।
ব্যাশে মাইনসইপার
আপনি যদি একজন অ্যাডভান্সড ব্যাশ ব্যবহারকারী হন, এবং আপনি ইতিমধ্যে বেশ কিছু ব্যাশ স্ক্রিপ্ট লিখেছেন, তবে আপনি সম্ভবত শুধু ব্যাশ শেখার বিয়ন্দে চলে গেছেন। একটি আসল চ্যালেঞ্জের জন্য, আপনি একটি গেম খেলার বদলে প্রোগ্রাম করার চেষ্টা করতে পারেন। একটু চিন্তা এবং দু-তিন দুপুরের কাজের সাথে, জনপ্রিয় গেম Minesweeper সম্পূর্ণরূপে ব্যাশে ইমপ্লিমেন্ট করা যায়। আপনি নিজে প্রথমে গেমটি লিখতে চেষ্টা করতে পারেন, তারপর Abhishek Tamrakar-এর আর্টিকেল রেফার করুন সেটি কীভাবে সে সম্পন্ন করেছেন সেটি জানার জন্য।

কখনও কখনও প্রোগ্রামিংয়ের কোনো উদ্দেশ্য নেই শুধু শিক্ষা দেওয়া। ব্যাশে একটি গেম প্রোগ্রাম করা হয়তো সেই প্রজেক্ট নয় যেটি আপনার অনলাইন খ্যাতির উপর ডাব রাখবেন, কিন্তু প্রসেসটি মজার এবং জ্ঞানবর্ধক হতে পারে। এবং একটি সমস্যা সম্মুখীন হওয়া যা আপনি কখনো আশা করেননি সেটি নতুন ট্রিক্স শেখার একটি চমৎকার উপায়।
ব্যাশ শিখুন; মজা করুন
আপনি যেভাবে কোনো শিখুন, ব্যাশ একটি শক্তিশালী ইন্টারফেস কারণ এটি আপনাকে আপনার কম্পিউটারকে নির্দেশ দেয় যেটি আপনি চান GUI অ্যাপ্লিকেশনের "middleman" ইন্টারফেসের মাধ্যমে যেতে ছাড়া। কখনও কখনও GUI খুব সাহায্যকারী, কিন্তু অন্য সময় আপনি যেটি খুব ভালো জানেন সেটি থেকে গ্র্যাজুয়েট হতে চান এবং যেটি আপনি দ্রুত বা অটোমেশনের মাধ্যমে করতে পারেন সেটিতে যেতে চান। কারণ ব্যাশ টেক্সট-ভিত্তিক, এটি স্ক্রিপ্ট করা সহজ, যা এটিকে অটোমেটেড জবের জন্য একটি চমৎকার শুরুর বিন্দু বানায়।
ব্যাশ শিখুন পাওয়ার ইউজার হতে শুরু করতে। কিন্তু নিশ্চিত হন আপনি মজা করছেন সেটি করার সময়।