লিনাক্সে প্রতিটি প্রক্রিয়া তিনটি ডেটা স্ট্রিম তৈরি করে, stdin, stdout, এবং stderr:
- stdin : কীবোর্ডের মাধ্যমে ব্যবহারকারীর কাছ থেকে ইনপুট নেয়
- stdout : স্ক্রিনে আউটপুট প্রদর্শন করে
- stderr : পর্দায় ত্রুটির তথ্য দেখায়
প্রতিটি ডেটা স্ট্রিমের একটি সংখ্যাসূচক আইডি থাকে:
সংখ্যাসূচক আইডি | নাম |
0 | stdin |
ঘ | stdout |
2 | stderr |
আসুন পুনর্নির্দেশকে আরও বিস্তারিতভাবে ব্যাখ্যা করি:
ব্যাশে স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি কীভাবে পুনirectনির্দেশিত করবেন:
কমান্ডের স্ট্যান্ডার্ড আউটপুট পুন redনির্দেশিত করার জন্য, আমরা একটি পুনireনির্দেশ অপারেটর সহ 1 ব্যবহার করব যা> চিহ্নের চেয়ে বড়:
$ls ঘ>stdout.txtউপরের কমান্ডটি একটি ফাইল তৈরি করবে এবং ls কমান্ডের স্ট্যান্ডার্ড আউটপুট stdout.txt ফাইলে রাখবে।
Stdout.txt ফাইলটি পড়তে, ব্যবহার করুন:
$বিড়ালstdout.txt
আমরা কমান্ড ব্যবহার করে একটি ফাইলের পাশাপাশি স্ট্যান্ডার্ড ত্রুটি পুনirectনির্দেশ করতে পারি:
$বিড়ালmyfile.txt2>stderr.txt
Stderr.txt ফাইলটি দেখতে, ব্যবহার করুন:
$বিড়ালstderr.txt
নিশ্চিত করুন যে ব্যবহার 2> চিহ্নের চেয়ে বড় হবে। যেহেতু ডিরেক্টরিতে myfile.txt ফাইল নেই, তাই cat কমান্ড একটি ত্রুটি দেবে যা stderr.txt ফাইলে যুক্ত হবে।
এই স্ট্যান্ডার্ড আউটপুটগুলি একটি একক কমান্ড দিয়েও পুনirectনির্দেশিত করা যেতে পারে, ব্যবহার করুন:
$ls ঘ>stdout.txt2>stderr.txt
Ls কমান্ডের আউটপুট লেখা হবে stdout.txt ফাইল, কিন্তু stderr.txt খালি থাকবে কারণ কোন ত্রুটি হবে না।
এখন stderr.txt এর জন্য করা যাক:
$বিড়ালmyfile.txtঘ>stdout.txt2>stderr.txt
Stderr.txt পড়তে নিচের উল্লিখিত কমান্ডটি ব্যবহার করুন।
$বিড়ালstderr.txt
এবং অবশ্যই, stdout.txt খালি থাকবে।
উপসংহার :
এক্সিকিউটিভ করার সময় লিনাক্স কমান্ড স্ট্যান্ডার্ড আউটপুট দেয় যা একটি সফল আউটপুট বা একটি ত্রুটি আউটপুট হতে পারে। সাধারণত, এই আউটপুটগুলি পুনireনির্দেশ অপারেটর ব্যবহার করে পুন redনির্দেশিত করা যায় না; আমাদের> চিহ্ন সহ নির্দিষ্ট সংখ্যাসূচক আইডি ব্যবহার করতে হবে। এই গাইডে, আমরা উদাহরণ সহ একটি ফাইলে স্ট্যান্ডার্ড আউটপুট রিডাইরেক্ট করার জন্য এই সংখ্যাসূচক কীগুলি কীভাবে ব্যবহার করতে হয় তা শিখেছি।