কম্পিউটার

ব্যাশ প্রোগ্রামিং দিয়ে শুরু করুন

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

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

কিভাবে প্রোগ্রামিং শিখবেন

আপনি যদি আগে কখনো কোনো প্রোগ্রামিং না করে থাকেন, তাহলে এটি দুটি ভিন্ন চ্যালেঞ্জের পরিপ্রেক্ষিতে এটি ভাবতে সাহায্য করতে পারে:একটি হল কোড কীভাবে লেখা হয় তা বোঝা, এবং অন্যটি হল কী কোড লিখতে হবে তা বোঝা। আপনি সিনট্যাক্স শিখতে পারেন —কিন্তু ভাষায় আপনার কাছে কোন শব্দ পাওয়া যায় তা না জেনে আপনি বেশিদূর যাবেন না . অনুশীলনে, আপনি একই সাথে উভয় ধারণাই শিখতে শুরু করেন কারণ আপনি সাজানো শব্দ ছাড়া বাক্য গঠন শিখতে পারবেন না, তাই প্রাথমিকভাবে, আপনি মৌলিক কমান্ড এবং মৌলিক প্রোগ্রামিং কাঠামো ব্যবহার করে সহজ কাজগুলি লিখুন। একবার আপনি মৌলিক বিষয়গুলির সাথে স্বাচ্ছন্দ্য বোধ করলে, আপনি আরও বেশি ভাষা অন্বেষণ করতে পারেন যাতে আপনি আপনার প্রোগ্রামগুলিকে আরও বেশি গুরুত্বপূর্ণ জিনিসগুলি করতে পারেন৷

বাশে, বেশিরভাগ শব্দ আপনি লিনাক্স কমান্ড ব্যবহার করেন। সিনট্যাক্স বাশ আপনি যদি ইতিমধ্যেই ঘন ঘন ব্যাশ ব্যবহার করেন, তাহলে ব্যাশ প্রোগ্রামিং-এ রূপান্তর তুলনামূলকভাবে সহজ। কিন্তু আপনি যদি ব্যাশ ব্যবহার না করেন, তাহলে আপনি জানতে পেরে খুশি হবেন যে এটি একটি সহজ ভাষা যা স্বচ্ছতা এবং সরলতার জন্য তৈরি করা হয়েছে।

ইন্টারেক্টিভ ডিজাইন

কখনও কখনও, প্রোগ্রাম শেখার সময় সবচেয়ে কঠিন জিনিস হল কম্পিউটার আপনার জন্য কী করতে পারে। স্পষ্টতই, যদি একটি কম্পিউটার নিজে থেকে আপনি এটির সাথে যা কিছু করতে পারেন তা করতে পারে, তাহলে আপনাকে আর কখনও একটি কম্পিউটার স্পর্শ করতে হবে না। কিন্তু বাস্তবতা হল মানুষ গুরুত্বপূর্ণ। আপনার কম্পিউটার আপনাকে সাহায্য করতে পারে এমন কিছু খুঁজে পাওয়ার চাবিকাঠি হল আপনি সারা সপ্তাহ জুড়ে বারবার যে কাজগুলি করেন সেগুলি লক্ষ্য করা। কম্পিউটার বিশেষ করে পুনরাবৃত্তি পরিচালনা করে।

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

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

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

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

একটি ব্যাশ স্ক্রিপ্টে আর্গুমেন্ট পাস করা

একটি টার্মিনালে একটি কমান্ড চালানো এবং একটি শেল স্ক্রিপ্টে একটি কমান্ড চালানোর মধ্যে পার্থক্য হল যে পূর্ববর্তীটি ইন্টারেক্টিভ। একটি টার্মিনালে, আপনি যেতে যেতে জিনিস সামঞ্জস্য করতে পারেন। উদাহরণস্বরূপ, যদি আমি এইমাত্র example_1.pdf প্রক্রিয়া করি এবং আমি পরবর্তী নথি প্রক্রিয়া করার জন্য প্রস্তুত, আমার কমান্ড মানিয়ে নিতে, আমাকে শুধুমাত্র ফাইলের নাম পরিবর্তন করতে হবে।

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

একটি শেল স্ক্রিপ্টে, কয়েকটি পূর্বনির্ধারিত ভেরিয়েবল রয়েছে যা প্রতিফলিত করে যে একটি স্ক্রিপ্ট কীভাবে শুরু হয়। প্রাথমিক পরিবর্তনশীল হল $0 , এবং এটি স্ক্রিপ্ট শুরু করার জন্য জারি করা কমান্ডের প্রতিনিধিত্ব করে। পরবর্তী ভেরিয়েবল হল $1 , যা শেল স্ক্রিপ্টে পাস করা প্রথম "আর্গুমেন্ট" প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, ইকো হ্যালো কমান্ডে , কমান্ড echo হল $0, এবং হ্যালো শব্দটি হল $1 . কমান্ডে ইকো হ্যালো ওয়ার্ল্ড , কমান্ড echo হল $0 , হ্যালো হল $1 , এবং বিশ্ব হল $2 .

একটি ইন্টারেক্টিভ শেলে:

$ echo hello world
hello world

একটি নন-ইন্টারেক্টিভ শেল স্ক্রিপ্টে, আপনি পারতে পারেন খুব আক্ষরিক ভাবে একই জিনিস করুন। এই পাঠ্যটিকে একটি পাঠ্য ফাইলে টাইপ করুন এবং এটিকে hello.sh হিসাবে সংরক্ষণ করুন৷ :

echo hello world

এখন স্ক্রিপ্টটি চালান:

$ bash hello.sh
hello world

এটি কাজ করে, কিন্তু এটি একটি স্ক্রিপ্ট ইনপুট নিতে পারে এমন সুবিধা নেয় না। hello.sh পরিবর্তন করুন এটিতে:

echo $1

উদ্ধৃতি চিহ্ন সহ দুটি আর্গুমেন্ট একসাথে গোষ্ঠীবদ্ধ করে স্ক্রিপ্টটি চালান:

$ bash hello.sh "hello bash"
hello bash

আমার পিডিএফ রিডাকশন প্রজেক্টের জন্য, আমার এই ধরনের নন-ইন্টারঅ্যাকটিভিটির প্রকৃত প্রয়োজন ছিল, কারণ প্রতিটি পিডিএফ ঘনীভূত হতে কয়েক মিনিট সময় নেয়। কিন্তু একটি স্ক্রিপ্ট তৈরি করে যা আমার কাছ থেকে ইনপুট গ্রহণ করেছে, আমি স্ক্রিপ্টটিকে একসাথে বেশ কয়েকটি পিডিএফ ফাইল ফিড করতে পারি। স্ক্রিপ্ট প্রতিটিকে ক্রমানুসারে প্রসেস করেছে, যার জন্য আধা ঘন্টা বা তার বেশি সময় লাগতে পারে, কিন্তু এটি আধা ঘন্টা আমি অন্যান্য কাজের জন্য ব্যবহার করতে পারতাম।

প্রবাহ নিয়ন্ত্রণ

ব্যাশ স্ক্রিপ্টগুলি তৈরি করা সম্পূর্ণরূপে গ্রহণযোগ্য যেগুলি, মূলত, আপনার পুনরাবৃত্তি করা কাজটি অর্জনের জন্য আপনি যে সঠিক প্রক্রিয়াটি নিয়েছিলেন তার প্রতিলিপি। যাইহোক, কীভাবে তথ্য প্রবাহিত হয় তা নিয়ন্ত্রণ করে স্ক্রিপ্টগুলিকে আরও শক্তিশালী করা যেতে পারে। ডেটাতে স্ক্রিপ্টের প্রতিক্রিয়া পরিচালনা করার সাধারণ পদ্ধতিগুলি হল:

  • যদি/তাহলে
  • লুপের জন্য
  • লুপ করার সময়
  • কেস বিবৃতি

কম্পিউটারগুলি বুদ্ধিমান নয়, তবে তারা ডেটা তুলনা এবং পার্স করতে ভাল। আপনি যদি সেগুলির মধ্যে কিছু ডেটা বিশ্লেষণ তৈরি করেন তবে স্ক্রিপ্টগুলি অনেক বেশি বুদ্ধিমান বোধ করতে পারে। উদাহরণস্বরূপ, মৌলিক hello.sh প্রতিধ্বনি করার মতো কিছু থাকুক বা না থাকুক স্ক্রিপ্ট চলে:

$ bash hello.sh foo
foo
$ bash hello.sh

$

এটি আরও ব্যবহারকারী-বান্ধব হবে যদি এটি একটি সাহায্য বার্তা প্রদান করে যখন এটি কোনও ইনপুট না পায়৷ এটি একটি if/then বিবৃতি, এবং আপনি যদি Bash একটি মৌলিক উপায়ে ব্যবহার করেন, আপনি সম্ভবত জানেন না যে এই ধরনের একটি বিবৃতি Bash-এ বিদ্যমান। কিন্তু প্রোগ্রামিং এর একটি অংশ হল ভাষা শেখা, এবং একটু গবেষণার মাধ্যমে আপনি যদি/তখন বিবৃতিগুলি সম্পর্কে শিখতে পারেন:

if [ "$1" = "" ]; then
        echo "syntax: $0 WORD"
        echo "If you provide more than one word, enclose them in quotes."
else
        echo "$1"
fi

hello.sh-এর এই নতুন সংস্করণটি চলছে৷ ফলাফল:

$ bash hello.sh 
syntax: hello.sh WORD
If you provide more than one word, enclose them in quotes.
$ bash hello.sh "hello world"
hello world

একটি স্ক্রিপ্টের মাধ্যমে আপনার উপায়ে কাজ করা

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

এই কৌশলগুলি শেখার একটি উপায় হল অন্য লোকের স্ক্রিপ্টগুলি পড়া। লোকেরা কীভাবে তাদের সিস্টেমে রোট কমান্ডগুলি স্বয়ংক্রিয়ভাবে তৈরি করছে তার একটি অনুভূতি পান। আপনার কাছে কী পরিচিত লাগছে তা দেখুন এবং অপরিচিত জিনিসগুলি সম্পর্কে আরও তথ্য সন্ধান করুন৷

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

Bash eBook-এর মাধ্যমে আমাদের প্রোগ্রামিংয়ের ভূমিকা ডাউনলোড করুন!


  1. মাইক্রোসফ্ট টু-ডু দিয়ে কীভাবে শুরু করবেন

  2. কিভাবে মাইক্রোসফট তালিকা দিয়ে শুরু করবেন

  3. কিভাবে Clipchamp দিয়ে শুরু করবেন

  4. কিভাবে আলেক্সা স্কিল দিয়ে শুরু করবেন