কম্পিউটার টিউটোরিয়াল

মাস্টার লিনাক্স টার্মিনাল:পাইপিং এবং পুনঃনির্দেশের জন্য বিশেষজ্ঞ গাইড

মাস্টার লিনাক্স টার্মিনাল:পাইপিং এবং পুনঃনির্দেশের জন্য বিশেষজ্ঞ গাইড

লিনাক্সে কমান্ড লাইন ইন্টারফেস আপনার সিস্টেমে বিভিন্ন কাজ সম্পাদন করার একটি শক্তিশালী উপায় প্রদান করে। এর শিকড়ের কারণে, লিনাক্সের টার্মিনালে বেক করা অনেক বৈশিষ্ট্য রয়েছে।

এই শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে দুটি হল পাইপিং এবং পুনঃনির্দেশ। এই বৈশিষ্ট্যগুলি আপনাকে অন্যান্য কমান্ড এবং ফাইলগুলিতে এবং থেকে কমান্ডের আউটপুট এবং ইনপুট পুনঃনির্দেশ করতে সক্ষম করে৷

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

পূর্বশর্ত

এই নির্দেশিকাটি সম্পূর্ণরূপে বোঝার জন্য, আপনার অন্তত:

থাকতে হবে
  • লিনাক্স অপারেটিং সিস্টেমের প্রাথমিক ধারণা।
  • লিনাক্স কমান্ড লাইনের সাথে কাজ করার প্রাথমিক অভিজ্ঞতা।
  • কমান্ডগুলি চেষ্টা করার জন্য একটি লিনাক্স কমান্ড লাইনে অ্যাক্সেস করুন।

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

লিনাক্সে পাইপিং কি?

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

পাইপিংয়ের একটি সাধারণ উদাহরণ হল যখন আপনি একটি কমান্ডের আউটপুট নেন এবং অন্য কমান্ডে ইনপুট হিসাবে ব্যবহার করেন। পাইপ (|) মেটাক্যারেক্টারটি এটি অর্জন করতে ব্যবহৃত হয়।

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

পাইপিংয়ের মূল বিষয়গুলি

pipe ব্যবহার করার মৌলিক সিনট্যাক্স কমান্ড নিম্নরূপ:

command1 | command2 | command3 | ... | commandN

উপরের সিনট্যাক্সে, টার্মিনাল বাম থেকে ডানে কমান্ডগুলি চালাবে। এটি command1 দিয়ে শুরু হবে , এবং তারপর আউটপুট command2 এ ইনপুট হবে . command2 এর আউটপুট তারপর command3 এর ইনপুট হিসাবে ব্যবহার করা হবে এবং তাই পাইপিং সম্পর্কে ভাল জিনিস হল যে আপনি যতগুলি চান ততগুলি কমান্ড চেইন করতে পারেন৷

পাইপিং উদাহরণ

নিচে pipe ব্যবহার করার কয়েকটি উদাহরণ দেওয়া হল বিভিন্ন কাজ সঞ্চালনের নির্দেশ।

1. ফাইল এবং ডিরেক্টরির সংখ্যা গণনা

ls -l | wc -l

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

ls -l এর আউটপুট কমান্ড তারপর দ্বিতীয় বিভাগে পাইপ করা হয়. wc -l কমান্ড ls -l এর আউটপুট থেকে লাইনের সংখ্যা গণনা করে প্রথম বিভাগে কমান্ড দিন এবং ফলাফলটি টার্মিনালে প্রিন্ট করে।

2. ফাইল এবং ডিরেক্টরির তালিকা সাজানো

ls | sort

উপরের কমান্ডে, ls কমান্ড বর্তমান ডিরেক্টরিতে ফাইল এবং ডিরেক্টরিগুলির তালিকা আউটপুট করবে। তালিকাটি তারপর sort এ পাইপ করা হয় কমান্ড, যা তাদের বর্ণানুক্রমিকভাবে সাজায় এবং ফলাফলটিকে টার্মিনালে প্রিন্ট করে।

3. একটি ফাইল থেকে অনন্য শব্দ সাজান এবং প্রদর্শন করুন

cat words.txt | sort -r | uniq

তৃতীয় উদাহরণে দুটি পাইপ দ্বারা সংযুক্ত তিনটি পৃথক কমান্ড রয়েছে। প্রথম কমান্ডটি words.txt এর বিষয়বস্তু আউটপুট করে ফাইল, যা শব্দের একটি তালিকা ধারণ করে।

আউটপুট sort -r এ পাইপ করা হয় কমান্ড, যা শব্দগুলিকে বিপরীত বর্ণানুক্রমিক ক্রমে সাজায়। অবশেষে, সাজানো শব্দগুলিকে uniq এ পাইপ করা হয় কমান্ড, যা সদৃশ অপসারণ করে এবং অনন্য সাজানো শব্দগুলিকে আউটপুট করে।

কেন এবং কখন আপনার কমান্ড পাইপিং লিনাক্স প্রয়োগ করা উচিত?

পাইপিং শুধু সিনট্যাক্স জানার চেয়ে বেশি লাগে। সিনট্যাক্স বেশ সহজ. কার্যকরভাবে পাইপিং ব্যবহার করার জন্য, আপনি এর সারাংশ বুঝতে হবে।

পাইপিংয়ের উদ্দেশ্য হল আপনাকে চেইন কমান্ডে সাহায্য করা, একটির আউটপুট অন্যটির ইনপুট হিসাবে ব্যবহার করে।

পাইপিং বলতে বোঝায় না যে আপনি ক্রমানুসারে নির্বাহ করতে চান এমন সম্পর্কহীন কমান্ডগুলিকে চেইন করার একটি উপায়। আপনি যদি এটি করতে চান, টার্মিনালে আপনার কমান্ড লিখুন এবং নিম্নলিখিত সিনট্যাক্স ব্যবহার করে সেমিকোলন (;) দিয়ে আলাদা করুন:

command1 ; command2 ; ... ; commandN

লিনাক্সে পুনঃনির্দেশ কি?

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

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

পাইপিংয়ের মতো, লিনাক্স পুনর্নির্দেশ করার জন্য বিশেষ অক্ষর প্রদান করে। এখানে লিনাক্সে গুরুত্বপূর্ণ ফাইল-পুনঃনির্দেশ অক্ষর এবং তারা কি করে:

  • > - একটি প্রদত্ত ফাইলে একটি কমান্ডের আউটপুট নির্দেশ করে৷
  • < – একটি প্রদত্ত ফাইলের বিষয়বস্তুকে একটি কমান্ডে নির্দেশ করে।
  • >> - একটি প্রদত্ত ফাইলে একটি কমান্ডের আউটপুট নির্দেশ করে। ফাইল বিদ্যমান থাকলে এবং বিষয়বস্তু থাকলে আউটপুট যোগ করে।
  • 2> - একটি কমান্ড থেকে একটি প্রদত্ত ফাইলে ত্রুটি বার্তা নির্দেশ করে৷
  • 2>> - একটি কমান্ড থেকে একটি প্রদত্ত ফাইলে একটি ত্রুটি বার্তা নির্দেশ করে। ফাইলটি বিদ্যমান থাকলে এবং বিষয়বস্তু থাকলে ত্রুটি বার্তাটি যুক্ত করে৷
  • &> - প্রদত্ত ফাইলে স্ট্যান্ডার্ড আউটপুট এবং ত্রুটি নির্দেশ করে।
  • &>> - প্রদত্ত ফাইলে স্ট্যান্ডার্ড আউটপুট এবং ত্রুটি নির্দেশ করে। যদি ফাইলটি বিদ্যমান থাকে এবং বিষয়বস্তু থাকে তাহলে সেটিতে যুক্ত হয়।

আসুন প্রতিটি ফাইল-পুনঃনির্দেশ অক্ষরকে গভীরভাবে দেখি।

1. > দিয়ে আউটপুট পুনঃনির্দেশ

> প্রতীক আপনাকে একটি নির্দিষ্ট ফাইলে একটি কমান্ডের আউটপুট পুনর্নির্দেশ করতে সক্ষম করে। প্রতীকটি ব্যবহার করে, আপনি আউটপুটটিকে বিদ্যমান যেকোনো ফাইলে পুনঃনির্দেশ করতে পারেন। যদি এটি বিদ্যমান না থাকে, আউটপুট পুনঃনির্দেশ অক্ষর স্বয়ংক্রিয়ভাবে একটি নতুন তৈরি করবে।

যাইহোক, বিদ্যমান ফাইলে লেখার সময় আপনার সতর্কতা অবলম্বন করা উচিত কারণ এর বিষয়বস্তু কোনো সতর্কতা ছাড়াই ওভাররাইট করা হবে।

আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আউটপুট পুনর্নির্দেশ করতে পারেন:

command > file

command চালানোর আউটপুট file-এ লেখা হবে স্ট্যান্ডার্ড আউটপুটের পরিবর্তে (বা, অন্য কথায়, টার্মিনালে মুদ্রিত)। আপনি কিভাবে আউটপুট পুনঃনির্দেশ করতে পারেন তার একটি উদাহরণ এখানে দেওয়া হল:

ls -a > contents.txt

উপরের কমান্ডে, বর্তমান ডিরেক্টরির আইটেমগুলির তালিকা (ডটফাইল, ডিরেক্টরি এবং ফাইল সহ) contents.txt-এ লেখা হবে। ফাইল পুনঃনির্দেশের কারণে আপনি টার্মিনালে কোনো আউটপুট দেখতে পাবেন না।

2. >> দিয়ে আউটপুট পুনঃনির্দেশ

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

সিনট্যাক্স নিম্নরূপ:

command >> file

এখানে >> এর সাথে আউটপুট পুনঃনির্দেশ ব্যবহার করার একটি উদাহরণ আগের মত একই ক্রিয়া সম্পাদন করতে:

ls -a >> contents.txt

3. < দিয়ে পুনঃনির্দেশ ইনপুট করুন

< কমান্ড লাইনের অক্ষর আপনাকে কীবোর্ডের পরিবর্তে একটি ফাইল থেকে একটি কমান্ডে ইনপুট পুনর্নির্দেশ করতে দেয়। < ব্যবহার করে ইনপুট পুনঃনির্দেশের সিনট্যাক্স নিম্নরূপ:

command < file

এখানে ইনপুট পুনঃনির্দেশ ব্যবহার করার একটি উদাহরণ:

wc -w < files.txt

উপরের উদাহরণে, আমরা files.txt পাস করছি wc -w-এ ইনপুট হিসাবে কমান্ড, যা ফাইলের শব্দ সংখ্যা গণনা করে। কিন্তু আপনাকে অনেক পরিস্থিতিতে ইনপুট পুনঃনির্দেশ অক্ষর ব্যবহার করতে হবে না কারণ এটি ডিফল্ট আচরণ। উদাহরণস্বরূপ, উপরের কমান্ডটি নিম্নলিখিতগুলির অনুরূপ:

wc -w files.txt

4. 2> এর সাথে ত্রুটি পুনর্নির্দেশ এবং 2>>

কমান্ড লাইনে কাজ করার সময়, আপনার ত্রুটি হতে পারে। উদাহরণস্বরূপ, যদি আপনি উপযুক্ত অনুমতি ছাড়াই একটি ফাইল চালাতে চান। টার্মিনালকে প্রিন্ট করার মাধ্যমে একটি ত্রুটি ছুঁড়তে দেওয়ার পরিবর্তে, আপনি ত্রুটির বার্তাটি কোথায় যেতে হবে তা নির্ধারণ করতে ত্রুটি পুনঃনির্দেশ অক্ষর ব্যবহার করতে পারেন৷

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

ls nonexistent 2> error.txt

উপরের উদাহরণে, টার্মিনাল একটি ত্রুটি নিক্ষেপ করবে কারণ nonexistent নামে কোনো ফাইল নেই . কিন্তু কনসোলে প্রিন্ট করার পরিবর্তে, এটি error.txt-এ সংরক্ষণ করা হবে ত্রুটি পুনর্নির্দেশ অক্ষর কারণে ফাইল. যাইহোক, কোনো ত্রুটি না থাকলে ফাইলটিতে কিছুই থাকবে না।

আপনি যদি একটি বিদ্যমান ফাইলের বিষয়বস্তু ওভাররাইট করার পরিবর্তে একটি ত্রুটি যুক্ত করতে পারেন, তাহলে 2>> ব্যবহার করুন 2> এর পরিবর্তে .

5. &> দিয়ে আউটপুট এবং ত্রুটি পুনঃনির্দেশ এবং &>>

স্ট্যান্ডার্ড আউটপুট বা স্ট্যান্ডার্ড ত্রুটিগুলিকে একটি ফাইলে পুনঃনির্দেশিত করার পরিবর্তে, &> আপনাকে একই সাথে উভয়ই পুনঃনির্দেশ করতে দেয়। আপনি &> এর কথা ভাবতে পারেন আউটপুট পুনঃনির্দেশ (>) এবং ত্রুটি পুনঃনির্দেশ (2>) অক্ষরগুলিকে একত্রিত করার জন্য একটি সংক্ষিপ্ত বিবরণ হিসাবে৷

&> ব্যবহার করার সিনট্যাক্স নিম্নরূপ:

command &> output.txt

command এর ত্রুটি বা আউটপুট output.txt-এ লেখা ফাইল এখানে একটি উদাহরণ:

ls sample &> output.txt

উপরের কমান্ডে, যদি sample ডিরেক্টরি উপলব্ধ নয় বা উপলব্ধ কিন্তু আপনার পড়ার অনুমতি নেই, একটি উপযুক্ত ত্রুটি output.txt এ লেখা হবে ফাইল কিন্তু যদি এটি বিদ্যমান থাকে এবং আপনার কাছে পড়ার অনুমতি থাকে তবে এর বিষয়বস্তু output.txt-এ আউটপুট হবে ফাইল।

&>> ব্যবহার করা হচ্ছে যদি ফাইলটি বিদ্যমান থাকে এবং বিষয়বস্তু থাকে তাহলে আপনাকে আউটপুট যুক্ত করতে দেয়।

কমান্ড লাইনের শক্তি আনলিশ করতে পাইপিং এবং পুনঃনির্দেশকে কীভাবে একত্রিত করবেন

একত্রে পাইপিং এবং পুনঃনির্দেশ ব্যবহার করা আপনাকে ভারী উত্তোলন ছাড়াই জটিল অপারেশন করতে দেয়। কীভাবে দুটিকে একত্রিত করতে হয় তা শিখে, আপনি কম টাইপিং সহ বিভিন্ন ক্রিয়া সম্পাদনের জন্য জটিল কমান্ড তৈরি করতে পারেন।

একটি উদাহরণ হিসাবে নিম্নলিখিত কমান্ড নিন:

ls | grep ".txt" > text_files.txt

ls কমান্ড বর্তমান ডিরেক্টরির বিষয়বস্তু তালিকাভুক্ত করে। আউটপুট grep এ পাইপ করা হয় টেক্সট ফাইল ফিল্টার করার কমান্ড। অবশেষে, grep এর আউটপুট কমান্ডটি text_files.txt এ পুনঃনির্দেশিত হয় ফাইল

এই সহজ কিন্তু শক্তিশালী উদাহরণ দেখায় যে যখন পাইপিং এবং রিডাইরেকশান আসে, তখন একমাত্র সীমা আপনার মন।

উপসংহার

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

বিচ্ছিন্নতার দুটি বৈশিষ্ট্য শক্তিশালী হতে পারে, তবে আপনি শেষ বিভাগে দেখানো হিসাবে আপনার কমান্ডগুলিতে তাদের একত্রিত করে আরও এগিয়ে যেতে পারেন৷

বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন


  1. লিনাক্সে মুছে ফেলা ফাইলগুলি কীভাবে পুনরুদ্ধার করবেন:একটি ব্যবহারিক ধাপে ধাপে নির্দেশিকা

  2. আপনার টেক ক্যারিয়ার কিকস্টার্ট করুন:2023 এর শীর্ষস্থানীয় অনলাইন কোডিং বুটক্যাম্প এবং কোর্স

  3. HTML DOM অফসেট প্রস্থ সম্পত্তি

  4. CSS চাইল্ড সিলেক্টর