/Dev /null কি এবং কিভাবে এটি ব্যবহার করবেন

What Is Dev Null How Use It



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

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







কেন আপনি শূন্যে কিছু ফেলে দিতে চান? আসুন দেখে নেওয়া যাক /dev /null কি এবং এর ব্যবহার।



পূর্বশর্ত

/Dev /null এর ব্যবহারে গভীরভাবে ডুব দেওয়ার আগে, আমাদের একটি স্পষ্ট উপলব্ধি থাকতে হবে stdout এবং stderr তথ্য প্রবাহ. এটা পরীক্ষা করো গভীরভাবে নির্দেশিকা stdin , stderr , এবং stdout



আসুন দ্রুত রিফ্রেশ করি। যখনই কোন কমান্ড-লাইন ইউটিলিটি চালানো হয়, এটি দুটি আউটপুট উৎপন্ন করে। আউটপুট যায় stdout এবং ত্রুটি (যদি তৈরি হয়) যায় stderr । ডিফল্টরূপে, এই দুটি ডেটা স্ট্রিম টার্মিনালের সাথে যুক্ত।





উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি ডবল উদ্ধৃতি চিহ্নের মধ্যে স্ট্রিংটি মুদ্রণ করবে। এখানে, আউটপুট সংরক্ষণ করা হয় stdout

$বের করে দিলওহে বিশ্ব



পরবর্তী কমান্ড আমাদের পূর্বে চালানো কমান্ডের প্রস্থান অবস্থা দেখাবে।

$বের করে দিল $?

পূর্ববর্তী কমান্ড সফলভাবে চলার সাথে সাথে প্রস্থান অবস্থা 0. যখন আপনি একটি অবৈধ কমান্ড চালানোর চেষ্টা করেন তখন কি হয়?

$ adfadsf
$বের করে দিল $?

এখন, আমাদের ফাইল বর্ণনাকারী সম্পর্কে জানতে হবে। ইউনিক্স ইকোসিস্টেমে, এগুলি একটি ফাইলে নির্ধারিত পূর্ণসংখ্যা মান। দুটোই stdout (ফাইল বর্ণনাকারী = 1) এবং stderr (ফাইল বর্ণনাকারী = 2) একটি নির্দিষ্ট ফাইল বর্ণনাকারী আছে। ফাইল বর্ণনাকারী (এই অবস্থায় 1 এবং 2) ব্যবহার করে, আমরা stdout এবং stderr অন্যান্য ফাইলগুলিতে।

শুরুর জন্য, নিম্নলিখিত উদাহরণটি পুনর্নির্দেশ করবে stdout একটি টেক্সট ফাইলে ইকো কমান্ড। এখানে, আমরা ফাইল বর্ণনাকারী নির্দিষ্ট করিনি। নির্দিষ্ট না হলে, ব্যাশ ব্যবহার করবে stdout গতানুগতিক.

$বের করে দিলওহে বিশ্ব>log.txt

নিচের কমান্ডটি রিডাইরেক্ট করবে stderr একটি টেক্সট ফাইলে।

$asdfadsa2>error.txt

/Dev /null ব্যবহার করে

আউটপুট /dev /null এ পুনirectনির্দেশিত করা হচ্ছে

এখন, আমরা /dev /null কিভাবে ব্যবহার করতে হয় তা শিখতে প্রস্তুত। প্রথমে, আসুন দেখি কিভাবে স্বাভাবিক আউটপুট এবং ত্রুটি ফিল্টার করা যায়। নিম্নলিখিত কমান্ডে, grep /sys ডিরেক্টরিতে একটি স্ট্রিং (হ্যালো, এই ক্ষেত্রে) অনুসন্ধান করার চেষ্টা করবে।

$খপ্পর -আরহ্যালো/sys/

যাইহোক, এটি অনেক ত্রুটি তৈরি করবে কারণ রুট বিশেষাধিকার ছাড়া, grep অনেকগুলি ফাইল অ্যাক্সেস করতে পারে না। এই ক্ষেত্রে, এর ফলে অনুমতি অস্বীকার করা ত্রুটিগুলি হবে। এখন, পুনireনির্দেশ ব্যবহার করে, আমরা একটি পরিষ্কার আউটপুট পেতে পারি।

$খপ্পর -আরহ্যালো/sys/ 2> /দেব/খালি

আউটপুট অনেক ভালো দেখায়, তাই না? কিছুই না! এই ক্ষেত্রে, grep- এর অনেকগুলি ফাইল অ্যাক্সেস নেই এবং যেগুলি অ্যাক্সেসযোগ্য তার স্ট্রিং হ্যালো নেই।

নিম্নলিখিত উদাহরণে, আমরা গুগলকে পিং করব।

$পিংগুগল কম

যাইহোক, আমরা সেই সব সফল পিং ফলাফল দেখতে চাই না। পরিবর্তে, আমরা কেবল তখনই ত্রুটির দিকে মনোনিবেশ করতে চাই যখন পিং গুগলে পৌঁছাতে পারে না। আমরা যে কিভাবে করব?

$পিংগুগল কম> /দেব/খালি

এখানে, এর বিষয়বস্তু stdout /dev /null এ ফেলে দেওয়া হয়, শুধুমাত্র ত্রুটিগুলি রেখে।

সমস্ত আউটপুট /dev /null এ পুন Redনির্দেশিত করুন

নির্দিষ্ট পরিস্থিতিতে, আউটপুট মোটেও দরকারী নাও হতে পারে। পুনireনির্দেশ ব্যবহার করে, আমরা সমস্ত আউটপুট শূন্যে ফেলে দিতে পারি।

$খপ্পর -আরহ্যালো/sys/ > /দেব/খালি2> &

আসুন এই কমান্ডটি একটু ভাঙি। প্রথমত, আমরা সব ফেলে দিচ্ছি stdout থেকে /dev /null। তারপরে, দ্বিতীয় অংশে, আমরা ব্যাশকে পাঠাতে বলছি stderr প্রতি stdout । এই উদাহরণে, আউটপুট করার কিছুই নেই। যাইহোক, যদি আপনি বিভ্রান্ত হন, আপনি সর্বদা পরীক্ষা করতে পারেন যে কমান্ডটি সফলভাবে চলছে কিনা।

$বের করে দিল $?

মান 2 কারণ কমান্ডটি প্রচুর ত্রুটি তৈরি করেছে।

যদি আপনি এর ফাইল বর্ণনাকারীকে ভুলে যান stdout এবং stderr , নিম্নলিখিত কমান্ড ঠিক কাজ করবে। এটি আগের কমান্ডের আরো সাধারণীকরণ বিন্যাস। দুটোই stdout এবং stderr /dev /null এ পুন redনির্দেশিত হবে।

$খপ্পর -আরহ্যালো/sys/ &> /দেব/খালি

অন্যান্য উদাহরণ

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

$dd যদি=<বড়_ ফাইল> এর=/দেব/খালিঅবস্থা= অগ্রগতিবিএস= 1 মিiflag= সরাসরি

এখানে, আমি বড় ফাইল হিসাবে উবুন্টু 18.04.4 ISO ব্যবহার করেছি।

একইভাবে, আপনি আপনার ইন্টারনেট সংযোগের ডাউনলোডের গতিও পরীক্ষা করতে পারেন।

$wget -ওআর /দেব/খালি<বড়_ ফাইল_লিঙ্ক>

সর্বশেষ ভাবনা

আশা করি, এই /dev /null ফাইলটি সম্পর্কে আপনার স্পষ্ট ধারণা আছে। এটি একটি বিশেষ যন্ত্র যা যদি এটিতে লেখা হয়, বাতিল করে দেয় এবং যদি এটি থেকে পড়ে তবে শূন্য পড়ে। এই আকর্ষণীয় বৈশিষ্ট্যটির প্রকৃত সম্ভাবনা আকর্ষণীয় ব্যাশ স্ক্রিপ্টগুলিতে রয়েছে।

আপনি কি ব্যাশ স্ক্রিপ্টিংয়ে আগ্রহী? চেক আউট ব্যাশ স্ক্রিপ্টিং এর শিক্ষানবিস গাইড

উপভোগ করুন!