শেল স্ক্রিপ্টিং কী এবং কেন এটি ব্যবহার করা উচিত

শেল স্ক্রিপ্টিং কী এবং কেন এটি ব্যবহার করা উচিত

শেল একটি লিনাক্স বা ইউনিক্স অপারেটিং সিস্টেমের মধ্যে একটি প্রোগ্রাম যা আপনাকে সিস্টেম দ্বারা এক্সিকিউশনের জন্য কমান্ড প্রবেশ করতে দেয়। যখন একটি লিনাক্স কম্পিউটারে একটি টার্মিনাল উইন্ডো খোলা হয়, তখন এটি শেল প্রোগ্রাম শুরু করে যা কমান্ড প্রবেশের জন্য একটি ইন্টারফেস উপস্থাপন করে। এই ইন্টারফেসটি কমান্ড লাইন ইন্টারফেস নামে পরিচিত। যখন একটি কমান্ড প্রবেশ করা হয়, এটি শেল দ্বারা চালিত হয় এবং আউটপুট স্ক্রিনে প্রদর্শিত হয়।





ইন্টারেক্টিভভাবে কমান্ড গ্রহণ ও চালাতে সক্ষম হওয়ার পাশাপাশি, শেল একটি ফাইলে সংরক্ষিত কমান্ডও চালাতে পারে। মৃত্যুদণ্ডের এই পদ্ধতিটি নামে পরিচিত শেল স্ক্রিপ্টিং , এবং এই নিবন্ধে আমরা শেল স্ক্রিপ্টিং এর মূল বিষয়গুলি আবরণ করি।





1. শেলের ইতিহাস

১s০ -এর দশকে ইউনিক্স থেকে শুরু করে, সেখানে একটি শেল প্রোগ্রাম ছিল ভি 6 শেল কেন থমসন দ্বারা উন্নত। এটি একটি ইন্টারেক্টিভ শেল ছিল এবং স্ক্রিপ্টিং ক্ষমতার অভাব ছিল।





এটি দ্বারা অনুসরণ করা হয়েছিল বোর্ন শেল 1977 সালে এবং আজকের জন্য ডিফল্ট শেল হিসাবে ব্যবহৃত হয় মূল অ্যাকাউন্ট এই শেল স্ক্রিপ্টিং দক্ষতা যোগ করেছে যা বছরের পর বছর ধরে অনুশীলনে অত্যন্ত দরকারী প্রমাণিত হয়েছে।

1980 -এর দশকে শেলের আরও বিকাশ অনেক জনপ্রিয় শেল রূপের জন্ম দেয়, যার মধ্যে সবচেয়ে জনপ্রিয় ছিল সি-শেল এবং কর্ন শেল । এই শেলগুলির প্রতিটি তার নিজস্ব সিনট্যাক্স নিয়ে এসেছিল যা কিছু ক্ষেত্রে, মূল শেল থেকে একেবারে আলাদা ছিল।



বর্তমানে সবচেয়ে জনপ্রিয় শাঁসগুলির মধ্যে একটি হল ব্যাশ শেল । ব্যাশ মানে বোর্ন-অ্যাগেইন-শেল এবং মূল বোর্ন শেলের একটি ব্যাপকভাবে উন্নত রূপ।

টুইটারে কীভাবে শব্দ নি mশব্দ করা যায়

এই নিবন্ধে, আমরা জন্য শেল স্ক্রিপ্টিং বর্ণনা ব্যাশ শেল





2. একটি শেল স্ক্রিপ্ট চালানো

আপনি কিভাবে একটি শেল স্ক্রিপ্ট চালান? সরল। শুধু শেল একটি যুক্তি হিসাবে স্ক্রিপ্ট পাথ পাস:

একটি নমুনা শেল স্ক্রিপ্ট:





echo 'hello world'

নিম্নরূপ এটি চালান:

$ bash hello.sh
# prints
hello world

বিঃদ্রঃ: শেলের জন্য LF অক্ষর (লাইন-ফিড) দ্বারা লাইন সমাপ্ত করা প্রয়োজন। আপনি যদি আপনার শেল স্ক্রিপ্টটি উইন্ডোজে লিখেন এবং এটি সরাসরি একটি লিনাক্স সিস্টেমে চালানোর চেষ্টা করেন, তাহলে আপনি ত্রুটির মধ্যে পড়তে পারেন। উইন্ডোজ লাইন সমাপ্তির জন্য CR-LF কম্বিনেশন (ক্যারেজ-রিটার্ন-লাইন-ফিড) ব্যবহার করে। এটি শুধুমাত্র এলএফ রূপান্তরিত করা প্রয়োজন। এটি করার উপায়গুলির জন্য আপনার উইন্ডোজ সম্পাদক পরীক্ষা করুন।

কমান্ড হিসাবে সরাসরি শেল স্ক্রিপ্ট চালানোর আরেকটি উপায় রয়েছে। নিচের লাইনটি সন্নিবেশ করান ( হ্যাশব্যাং ঘোষণা) আপনার শেল স্ক্রিপ্টের প্রথম লাইন হিসাবে।

কিভাবে আইফোনে ভিডিও এডিট করা যায়
#!/bin/bash

এই পরিবর্তনের সাথে, আমাদের সহজ শেল স্ক্রিপ্টটি এখন:

#!/bin/bash
echo 'hello world'

এখন, আপনাকে স্ক্রিপ্ট ফাইলটি নিম্নরূপ এক্সিকিউটেবল করতে হবে:

$ chmod +x hello.sh

এই মুহুর্তে, আপনি শেলটি স্পষ্টভাবে উল্লেখ না করে সরাসরি স্ক্রিপ্ট ফাইলটি চালাতে পারেন।

$ hello.sh
# prints
hello world

আসুন এখন শেল স্ক্রিপ্ট ব্যবহারের কিছু সুবিধা দেখি।

3. টাস্ক অটোমেশন

শেল স্ক্রিপ্টগুলি ব্যবহারের প্রথম সুবিধা হল ঘন ঘন সম্পাদিত কাজগুলি স্বয়ংক্রিয় করা। ধরুন আপনার একটি কাজ আছে যা আপনাকে প্রতিদিন করতে হবে। আপনার লিনাক্স সিস্টেমে প্রতিদিন একাধিক কমান্ড চালানোর প্রয়োজন হলে, আপনি এই কমান্ডগুলিকে একটি ফাইলে সংরক্ষণ করতে পারেন এবং স্ক্রিপ্ট চালাতে পারেন। উদাহরণ অন্তর্ভুক্ত:

  • প্রতিদিন একটি ফাইল বা ফোল্ডার আর্কাইভ করুন এবং আপলোড করুন ক্লাউড স্টোরেজ সুবিধা যেমন S3।
  • লগ ফাইলগুলি সংকুচিত করুন যা প্রতিদিন বাড়তে থাকে।
  • স্টকের দাম আনুন, প্রাপ্ত ডেটা বিশ্লেষণ করুন এবং নির্দিষ্ট শর্ত পূরণ হলে একটি ইমেল বা এসএমএস ট্রিগার করুন (খুব বেশি বা খুব কম দাম)।

4. একাধিক কমান্ড একত্রিত করা

ঘন ঘন কাজগুলি স্বয়ংক্রিয় করার পাশাপাশি, আপনি এটিও সুবিধাজনক বলে মনে করতে পারেন যে আপনি একক কমান্ডে একাধিক ক্রমকে একত্রিত করতে পারেন। একটি একক কমান্ড মনে রাখা একাধিক কমান্ডের চেয়ে অনেক সহজ, যে আদেশে সেগুলি কার্যকর করতে হবে তা উল্লেখ না করে।

একটি উদাহরণ লিনাক্স অপারেটিং সিস্টেম নিজেই বুট আপ ক্রম হবে। বুট-আপের অংশ হিসাবে, সিস্টেমটি একটি যথাযথ অবস্থায় পেতে বেশ কয়েকটি কমান্ড কার্যকর করে। এই কমান্ডগুলি আসলে শেল স্ক্রিপ্ট যা অধীনে থাকে /ইত্যাদি ডিরেক্টরি। আপনি যদি এই শেল স্ক্রিপ্টগুলির মধ্যে একটি দেখেন, তাহলে আপনি একটি সিস্টেম বুট করার জটিলতা বুঝতে পারবেন, যা শেল স্ক্রিপ্টের অভাবে আপনার হাতে সম্পাদন করতে হতে পারে।

নীচে একটি নমুনা শেল স্ক্রিপ্ট, /etc/প্রোফাইল , যা প্রত্যেকবার ব্যবহারকারী লগ ইন করার সময় কার্যকর করা হয়। কল্পনা করুন এই কমান্ডগুলি হাতে হাতে টাইপ করুন!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. বিকাশ করা সহজ

C/C ++ এ লেখা একটি নিয়মিত প্রোগ্রামের মধ্যে শেল স্ক্রিপ্টের মতো একই ক্রিয়া সম্পাদন করা সম্ভব। যাইহোক, C/C ++ প্রোগ্রামের চেয়ে শেল স্ক্রিপ্ট লেখা এবং ডিবাগ করা অনেক সহজ। বিশেষ করে সিস্টেম অ্যাডমিনিস্ট্রেশন কাজগুলির জন্য যার মধ্যে বাহ্যিক কমান্ডগুলি সম্পাদন, ফাইল এবং ডিরেক্টরি তৈরি এবং অপসারণ, আউটপুট পুন redনির্দেশ ইত্যাদি অন্তর্ভুক্ত রয়েছে।

C/C ++ প্রোগ্রামগুলি অনেক নিম্ন স্তরের অপারেশনের জন্য ভালো, যেমন সিস্টেম কল আহ্বান করা, ডেটা স্ট্রাকচার ম্যানিপুলেট করা ইত্যাদি।

6. স্বচ্ছতা

একটি শেল স্ক্রিপ্ট, একটি টেক্সট ফাইল হওয়ার কারণে, এটি সহজেই দেখা যেতে পারে যে এটি কোন কর্ম সম্পাদন করছে। বিপরীতে, C/C ++ (এবং একটি এক্সিকিউটেবলে সংকলিত) এর মতো একটি ভাষায় লিখিত প্রোগ্রাম কি করছে তা জানার একমাত্র উপায় হল যদি এটি আপনাকে বলতে পছন্দ করে বা আপনার সোর্স কোড অ্যাক্সেস থাকে। উদাহরণস্বরূপ, আপনি একটি শেল স্ক্রিপ্ট কোন ফাইল মুছে দিচ্ছে কিনা তা পরীক্ষা করতে পারেন, এবং যদি আপনার সেই ফাইলগুলির প্রয়োজন হয়, তাহলে আপনি সেগুলিকে একটি ভিন্ন স্থানে অনুলিপি করতে পারেন।

নিয়মিত প্রোগ্রামগুলির পরিবর্তে শেল স্ক্রিপ্টগুলির সমস্যা নির্ণয় করাও অনেক সহজ, যেহেতু আপনি সোর্স কোডটি দেখতে পারেন। যে স্ক্রিপ্টটি ব্যর্থ হয়েছে কারণ একটি ডিরেক্টরি নেই? আপনি স্ক্রিপ্ট কোডটি দেখতে পারেন এবং ডিরেক্টরিটি তৈরি করতে পারেন (যদিও একটি ভাল আচরণ করা শেল স্ক্রিপ্টটি পরীক্ষা করা উচিত এবং এই জাতীয় ত্রুটিগুলি এড়াতে এটি তৈরি করা উচিত)।

7. বহনযোগ্য

প্রতি শেল স্ক্রিপ্ট অন্যান্য ইউনিক্স এবং ইউনিক্স-এর মতো অপারেটিং সিস্টেমে স্থানান্তর করা যায় এবং কার্যকর করা যায় (যদি শেল নিজেই উপস্থিত থাকে)। এমনকি বিভিন্ন আর্কিটেকচার যেমন x86, MIPS, Sparc, ইত্যাদি থেকে শেল স্ক্রিপ্ট স্থানান্তর করার সময়, শেল স্ক্রিপ্টগুলি C/C ++ প্রোগ্রামের তুলনায় অনেক বেশি বহনযোগ্য।

সি/সি ++ প্রোগ্রামটি অন্য সিস্টেমে স্থানান্তর এবং ব্যবহার করার একমাত্র উপায় হল সোর্স কোড অনুলিপি করা, প্রোগ্রামটি তৈরি করা এবং এটি চালানোর চেষ্টা করা। তারপরেও, এটি প্রত্যাশা অনুযায়ী কাজ নাও করতে পারে যদি এটি স্থাপত্য-নির্দিষ্ট কোড ব্যবহার করে।

এখন যেহেতু আপনার ধারণা আছে যে শেল স্ক্রিপ্টগুলি এবং তাদের অনেক সুবিধা, আপনি কি সেগুলি আপনার কাজের জন্য ব্যবহার করতে চান না? এগুলি ব্যবহার করার সময় আপনি কোন সমস্যার মুখোমুখি হয়েছেন? দয়া করে নীচের মন্তব্যগুলিতে আমাদের জানান।

কেন আমার বার্তাগুলি বিতরণ করা হয় না বলুন
শেয়ার করুন শেয়ার করুন টুইট ইমেইল আপনার ভার্চুয়ালবক্স লিনাক্স মেশিনগুলিকে সুপারচার্জ করার ৫ টি টিপস

ভার্চুয়াল মেশিন দ্বারা দেওয়া খারাপ পারফরম্যান্সে ক্লান্ত? আপনার ভার্চুয়ালবক্সের কর্মক্ষমতা বাড়ানোর জন্য আপনার যা করা উচিত তা এখানে।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • লিনাক্স ব্যাশ শেল
লেখক সম্পর্কে জয় শ্রীধর(17 নিবন্ধ প্রকাশিত) জয় শ্রীধর থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন