চিত্র হাজার কথা বলে এবং নিচের চিত্রটি লিনাক্স-এর 작동 방식 সম্পর্কে সব কিছু বলে।
আরও পড়ুন
- ৫টি শেল স্ক্রিপ্ট শেল প্রোগ্রামিং শেখতে – পার্ট II
- লিনাক্স BASH স্ক্রিপ্টিংর জগতে সৈলিং – পার্ট III
লিনাক্স শেল বোঝা
- শেল: একটি কমান্ড-লাইন ইন্টারপ্রেটার যা একজন ব্যবহারকারীকে অপারেটিং সিস্টেম-এর সাথে সংযুক্ত করে এবং কমান্ড এক্সিকিউট করতে বা টেক্সট স্ক্রিপ্ট তৈরি করতে দেয়।
- প্রসেস: একটি ব্যবহারকারী সিস্টেমে যে কোনো টাস্ক চালায় সেটি প্রসেস कहलায়। একটি প্রসেস কেবল একটি টাস্ক থেকে কিছুটা জটিল।
- ফাইল: এটি হার্ড ডিস্ক (HDD)-এ অবস্থান করে এবং একটি ব্যবহারকারী-এর स्वামিত্বাধীন ডেটা ধারণ করে।
- X-উইন্ডোজ aka উইন্ডোজ: লিনাক্সের একটি মোড যেখানে স্ক্রিন (মনিটর) ছোট ছোট "부분"-এ বিভক্ত হতে পারে যাকে উইন্ডোজ বলা হয়, যা একটি ব্যবহারকারী-কে একই সময়ে একাধিক কাজ করতে দেয় এবং/অথবা সহজে একটি টাস্ক থেকে অন্য একটি টাস্কে স্যুইচ করতে দেয় এবং গ্রাফিক্স সুন্দরভাবে দেখতে দেয়।
- টেক্সট টার্মিনাল: একটি মনিটর যাতে শুধু টেক্সট সামগ্রী প্রদর্শন করার ক্ষমতা থাকে, গ্রাফিক্স নেই বা খুব বেসিক গ্রাফিক্স ডিসপ্লে থাকে।
- সেশন: সিস্টেমে লগ ইন এবং লগ আউট-এর মধ্যের সময়।
স্ট্যান্ডার্ড লিনাক্স ডিস্ট্রিবিউশনে শেলের প্রকারভেদ
Bourne shell : Bourne shell ছিল প্রাথমিক ভার্সনগুলিতে ব্যবহৃত প্রধান শেলগুলোর একটি এবং একটি ডি ফ্যাক্টো স্ট্যান্ডার্ড बन गया। এটি Stephen Bourne লিখেছেন Bell Labs-এ। প্রতিটি ইউনিক্স-লাইক সিস্টেমে Bourne shell-সঙ্গে কমপ্যাটিবল কমপক্ষে একটি শেল থাকে। Bourne shell প্রোগ্রামের নাম হল "sh" এবং এটি সাধারণত ফাইল সিস্টেম হায়ারার্কিতে /bin/sh-এ অবস্থিত।
C shell: C shellটি Bill Joy विकसিত করেছেন Berkeley Software Distribution-এর জন্য। এর সিনট্যাক্স C প্রোগ্রামিং ল্যাঙ্গুয়েজ অনুকরণ করা হয়েছে। এটি প্রাথমিকভাবে ইন্টারঅ্যাক্টিভ টার্মিনাল ব্যবহারের জন্য ব্যবহৃত হয়, কিন্তু স্ক্রিপ্টিং এবং অপারেটিং সিস্টেম কন্ট্রোলের জন্য কম ব্যবহার করা হয়। C shell-এ অনেক ইন্টারঅ্যাক্টিভ কমান্ড থাকে।
মজা শুরু! (লিনাক্স শেল)
কমান্ড-লাইন ব্যবহারকারীর জন্য হাজার হাজার কমান্ড রয়েছে, সেগুলো সব মনে রাখা সম্ভব? হা! সহজেই সম্ভব নয়। কম্পিউটারের असली শক্তি হল আপনার কাজ সহজ করা, আপনাকে প্রক্রিয়াটি অটোমেট করতে হবে এবং তাই আপনাকে স্ক্রিপ্টের প্রয়োজন।
স্ক্রিপ্ট হচ্ছে কমান্ডগুলোর একটি সংকলন, যা একটি ফাইলে সংরক্ষিত থাকে। শেল এই ফাইলটি পড়ে এবং কমান্ডগুলোর ওপর কাজ করে যেন সেগুলো কীবোর্ডে টাইপ করা হয়েছে। শেল স্ক্রিপ্টকে صحيح মানে শক্তিশালী করার জন্য বিভিন্ন উপযোগী প্রোগ্রামিং ফিচারও প্রদান করে।
শেল প্রোগ্রামিংর বেসিকস
- লিনাক্স শেল পেতে হলে আপনাকে একটি টার্মিনাল শুরু করতে হবে।
- আপনার কোন শেল আছে তা দেখতে, রান করুন: echo $SHELL।
- লিনাক্সে, ডলার সাইন ($) একটি শেল ভেরিয়েবলের প্রতীক।
- echo কমান্ড শুধু আপনি যা টাইপ করবেন সেটি রিটার্ন করে।
- পাইপলাইন ইনস্ট্রাকশন (|) অনেক কমান্ড চেইন করার সময় সাহায্য করে।
- লিনাক্স কমান্ডগুলোর নিজস্ব সিনট্যাক্স থাকে, লিনাক্স আপনার যেকোনো ভুল কখনো ক্ষমা করবে না। আপনি যদি কমান্ড ভুল দেন, আপনি ফেল করবেন না বা কিছু ক্ষতি করবেন না, কিন্তু এটি কাজ করবে না।
- #!/bin/sh – এটিকে শিব্যাং (shebang) বলা হয়। এটি একটি শেল স্ক্রিপ্টের শুরুতে লেখা হয় এবং এটি /bin/sh প্রোগ্রামে ইনস্ট্রাকশন পাস করে।
শেল স্ক্রিপ্ট সম্পর্কে
শেল স্ক্রিপ্ট শুধু একটি সিম্পল টেক্সট ফাইল যার এক্সটেনশন ".sh" এবং যেটির এক্সিকিউটেবল পারমিশন থাকে।
স্ক্রিপ্ট লেখা এবং এক্সিকিউট করার প্রক্রিয়া
- টার্মিনাল খুলুন।
- যেখানে স্ক্রিপ্ট তৈরি করতে চান সেখানে cd কমান্ড ব্যবহার করে নেভিগেট করুন।
- Cd (এন্টার) [এটি প্রম্পটকে আপনার হোম ডিরেক্টরি-তে আনবে]।
- touch hello.sh (এখানে আমরা স্ক্রিপ্টের নাম hello রেখেছি, মনে রাখবেন .sh এক্সটেনশন বাধ্যতামূলক)।
- vi hello.sh (nano hello.sh) [আপনার পছন্দের এডিটর ব্যবহার করে স্ক্রিপ্টটি এডিট করুন]।
- chmod 744 hello.sh (স্ক্রিপ্টকে এক্সিকিউটেবল করা)।
- sh hello.sh বা ./hello.sh (স্ক্রিপ্ট চালানো)
আপনার প্রথম স্ক্রিপ্ট লিখুন
#!/bin/bash # My first script echo "Hello World!"
উপরের লাইনগুলো একটি টেক্সট ফাইলে সংরক্ষণ করুন, এক্সিকিউটেবল করুন এবং উপরে বর্ণনাকৃতভাবে চালান।
নমুনা আউটপুট
Hello World!
উপরের কোডে।
#!/bin/bash (এটি শিব্যাং।) # My first script (এটি কমেন্ট, '#' এর পরে যা কিছু থাকে তা কমেন্ট) echo "Hello World!" (এই স্ক্রিপ্টের মূল অংশ)
আপনার দ্বিতীয় স্ক্রিপ্ট লিখুন
ঠিক আছে, পরবর্তী স্ক্রিপ্টে যাক। এই স্ক্রিপ্টটি আপনার "username" বলে দেবে এবং চলমান প্রসেস গুলো লিস্ট করবে।
#! /bin/bash echo "Hello $USER" echo "Hey i am" $USER "and will be telling you about the current processes" echo "Running processes List" ps
উপরের কোড দিয়ে একটি ফাইল তৈরি করুন, যেকোনো নাম দিন কিন্তু এক্সটেনশন ".sh" রাখুন, এক্সিকিউটেবল করুন এবং আপনার টার্মিনাল থেকে চালান।
নমুনা আউটপুট
Hello tecmint Hey i am tecmint and will be telling you about the current processes Running processes List PID TTY TIME CMD 1111 pts/0 00:00:00 bash 1287 pts/0 00:00:00 sh 1288 pts/0 00:00:00 ps
এটা কুল লাগলো? স্ক্রিপ্ট লিখা একটা আইডিয়া পাওয়া এবং পাইপলাইন কমান্ড লিখার মতো সহজ। কিছু সীমাবদ্ধতাও আছে। শেল স্ক্রিপ্ট সংক্ষিপ্ত ফাইলসিস্টেম অপারেশন এবং পাইপের মাধ্যমে ফিল্টার এবং কমান্ড লাইন টুলের বিদ্যমান কার্যকারিতার সংমিশ্রণ স্ক্রিপ্ট করার জন্য عالی।
যখন আপনার প্রয়োজন বড় হবে – चाहে ফাংশনালিটি, রবাস্টনেস, পারফরম্যান্স, এফিশিয়েন্সি ইত্যাদি – তখন আপনি আরও ফুল-ফিচার্ড ল্যাঙ্গুয়েজে যেতে পারেন।
আপনার যদি ইতিমধ্যে C/Perl/Python প্রোগ্রামিং ল্যাঙ্গুয়েজ বা অন্য কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ জানেন, তবে স্ক্রিপ্টিং ল্যাঙ্গুয়েজ শিখতে বেশি কঠিন হবে না।
আপনার তৃতীয় স্ক্রিপ্ট লিখুন
এই আর্টিকেলের জন্য আমাদের তৃতীয় এবং শেষ স্ক্রিপ্ট লিখতে যাচ্ছি। এই স্ক্রিপ্টটি একটি ইন্টারঅ্যাক্টিভ স্ক্রিপ্ট হিসেবে কাজ করে। আপনি কেন নিজে এই সহজ কিন্তু ইন্টারঅ্যাক্টিভ স্ক্রিপ্টটি এক্সিকিউট করবেন না এবং আমাদের বলবেন না আপনি কেমন লাগলেন।
#! /bin/bash echo "Hey what's Your First Name?"; read a; echo "welcome Mr./Mrs. $a, would you like to tell us, Your Last Name"; read b; echo "Thanks Mr./Mrs. $a $b for telling us your name"; echo "*******************" echo "Mr./Mrs. $b, it's time to say you good bye"
নমুনা আউটপুট
Hey what's Your First Name? Avishek welcome Mr./Mrs. Avishek, would you like to tell us, Your Last Name Kumar Thanks Mr./Mrs. Avishek Kumar for telling us your name ****************************************************** Mr./Mrs. Kumar, it's time to say you good bye
এটি শেষ নয়। আমরা আপনাদের স্ক্রিপ্টিংর স্বাদ দিতে চেষ্টা করেছি। আমাদের ভবিষ্যতের আর্টিকেলে আমরা এই স্ক্রিপ্টিং ল্যাঙ্গুয়েজ টপিকটি, বরং কখনোই শেষ না হওয়া এই স্ক্রিপ্টিং ল্যাঙ্গুয়েজ টপিকটি, আরও বিস্তারিত আলোচনা করব। আপনার মূল্যবান মতামত কমেন্টে 높이 মূল্যায়িত, লাইক এবং শেয়ার করুন এবং আমাদের ছড়িয়ে দিতে সাহায্য করুন। তখন পর্যন্ত শান্ত থাকুন, কানেক্টেড থাকুন, টিউন্ড থাকুন।
আরও পড়ুন : 5 Shell Scripts to Learn Shell Programming – Part II