2>/dev/null کیا کرتا ہے؟

What Exactly Does 2 Dev Null Do



چاہے آپ نئے لینکس صارف ہوں یا تجربہ کار بش پروگرامر ہوں ، یہ بہت ممکن ہے کہ آپ کو خفیہ کمانڈ 2>/dev/null کا سامنا کرنا پڑا ہو۔ اگرچہ یہ کمانڈ تکنیکی طور پر پیچیدہ نظر آتی ہے ، اس کا مقصد بہت آسان ہے۔ اس سے مراد ایک کالا آلہ ہے جو مختلف کمانڈز کے آؤٹ پٹ کو دبانے کے لیے استعمال ہوتا ہے۔ یہ مضمون 2>/dev/null کمانڈ کے ہر حصے کو توڑ دے گا ، اس کے مقصد کی وضاحت کرے گا ، اور اس کے استعمال کی مثالیں دیکھیں گے۔

نال ڈیوائس - '/dev/null'

تمام لینکس پر مبنی نظاموں میں ایک خصوصیت ہوتی ہے جسے ورچوئل ڈیوائس کہتے ہیں۔ یہ ورچوئل ڈیوائسز آپریٹنگ سسٹم میں اصل فائلوں کی طرح بات چیت کرتی ہیں۔ ایسے ورچوئل ڈیوائسز کا کام اصلی ڈیوائسز کی طرح ہوتا ہے۔ وہ ڈیٹا لکھنے اور پڑھنے کے لیے استعمال ہوتے ہیں۔ دونوں کے مابین بنیادی فرق یہ ہے کہ ورچوئل ڈیوائسز کا ڈیٹا آپریٹنگ سسٹم فراہم کرتا ہے۔







/dev/null ایک کالا آلہ ہے - ایک خاص قسم کا ورچوئل ڈیوائس۔ یہ ہر لینکس سسٹم میں موجود ہے ، اور اس ڈیوائس کا مقصد اسے بھیجی گئی کسی بھی چیز کو ضائع کرنا اور اینڈ آف فائل (EOF) پڑھنا ہے۔ زیادہ تر ورچوئل آلات ڈیٹا پڑھنے کے لیے استعمال ہوتے ہیں۔ تاہم ، /dev /null منفرد ہے کیونکہ یہ اس کو لکھے گئے کسی بھی ڈیٹا کو دبانے کے لیے استعمال ہوتا ہے۔ آسان الفاظ میں ، یہ کسی بھی ڈیٹا کے لیے بلیک ہول کے طور پر کام کرتا ہے جو اسے لینکس آپریٹنگ سسٹم میں لکھا جاتا ہے۔



اب ، آئیے 2> /dev /null کمانڈ کے باقی حصوں پر ایک نظر ڈالیں۔



فائل ڈسریکٹر - '2'

لینکس میں ہر کمانڈ پر عملدرآمد تین منسلک فائلیں بناتا ہے: معیاری ان پٹ ، معیاری آؤٹ پٹ ، اور معیاری خرابی فائلیں۔ لینکس آپریٹنگ سسٹم ان فائلوں میں سے ہر ایک کو غیر منفی عدد کے ساتھ حوالہ دیتا ہے۔





  • معیاری ان پٹ کے لیے '0'۔
  • معیاری پیداوار کے لیے '1'۔
  • معیاری غلطی کے لیے '2'۔

معیاری ان پٹ ، معیاری آؤٹ پٹ ، اور معیاری خرابی کے سلسلے کی تکنیکی شرائط بالترتیب stdin ، stdout اور stderr ہیں۔

ہم جانتے ہیں کہ کمانڈ '2>/dev/null' میں نمبر 2 معیاری خرابی (stderr) سٹریم سے مراد ہے۔



فائل ری ڈائریکٹ آپریٹر - '>'

'>' علامت کو فائل ری ڈائریکٹ آپریٹر کہا جاتا ہے۔ اس کا مقصد یہ ہے کہ جو اس کے بائیں طرف ہے اسے دائیں طرف کے احکامات کی طرف لے جائے۔ آسان الفاظ میں ، بائیں طرف ڈیٹا کی کوئی بھی تار آپریٹر کے دائیں جانب ہدایت کی جائے گی۔

اب تک ، ہم 2>/dev/null کمانڈ کے ہر جزو کے پیچھے کا مقصد سمجھ چکے ہیں۔ یہ غلطی کا سلسلہ /dev /null پر بھیجتا ہے ، جو اسے خارج کردیتا ہے۔ دوسرے الفاظ میں ، یہ کمانڈ غلطی کے نتائج کو خارج کرنے اور دبانے کے لیے استعمال ہوتی ہے۔ تاہم ، اگر آپ تجربہ کار لینکس تجربہ کار ہیں ، تو آپ /dev /null فائل کے مندرجات کو ٹرمینل میں درج ذیل کمانڈ چلا کر دیکھ سکتے ہیں۔

$ایل ایس - /دیو/خالی

یہ کمانڈ عام طور پر ایسے منظرناموں میں استعمال ہوتی ہے جہاں ہمیں غلطیوں کی بنیاد پر آؤٹ پٹ کو فلٹر کرنے کی ضرورت ہوتی ہے یا جب ہم غلط تفصیل سے وابستہ کسی بھی آؤٹ پٹ کو ضائع کرنا چاہتے ہیں۔ آگے بڑھتے ہوئے ، ہم اوبنٹو سسٹم پر اس کے استعمال کی مثالیں دیکھیں گے۔

2>/dev/null استعمال کرنا۔

چونکہ ہم جانتے ہیں کہ کمانڈ 2>/dev/null غلطیوں کو خارج کرنے کے لیے استعمال کیا جاتا ہے ، یہ ہمیشہ دوسرے کمانڈز کے ساتھ مل کر استعمال کیا جائے گا۔ ہم مندرجہ ذیل مثالوں میں اسی طرح کا نقطہ نظر دیکھیں گے۔ آپ ٹرمینل کو ایپلی کیشنز مینو کے ذریعے یا کی بورڈ شارٹ کٹ Ctrl + Alt + T استعمال کرکے کھول سکتے ہیں۔

پہلی مثال میں ، ہم / sys / ڈائریکٹری میں بے ترتیب سٹرنگ (اس معاملے میں ہیلوورلڈ) کی تلاش کریں گے۔ تلاش کرنے کا حکم grep ہے ، اور اس کی دلیل تلاش کی تار ہوگی۔ اپنی تار تلاش کرنے کے لیے درج ذیل کمانڈ درج کریں۔

$گرفت ہیلوورلڈ/sys/

یہ سرچ کمانڈ متعدد غلطیوں کو ظاہر کرنے کا پابند ہے کیونکہ اسے جڑ تک رسائی کے بغیر استعمال کیا جا رہا ہے۔ ہم ان غلطیوں کو ضائع کرنے کے لیے کمانڈ 2>/dev/null استعمال کرکے اس کی خرابی کا سلسلہ/dev/null بھیجیں گے۔

$گرفت ہیلوورلڈ/sys/ > /دیو/خالی

ہم دیکھ سکتے ہیں کہ کمانڈ کا آؤٹ پٹ پچھلے ایک سے زیادہ صاف اور آسان ہے۔ وجہ یہ ہے کہ غلطیاں 2> /dev /null استعمال کر کے ضائع کی جا رہی ہیں ، اور چونکہ گریپ کمانڈ ہماری سٹرنگ 'ہیلوورلڈ' سے مماثل کوئی فائل ڈھونڈنے سے قاصر تھی ، اس لیے یہ کوئی آؤٹ پٹ نہیں دکھاتی۔

/dev /null کے استعمال کو بہتر طور پر سمجھنے کے لیے ، ہم کسی بھی ویب سائٹ کو پنگ کرنے کی مندرجہ ذیل مثال دیکھیں گے (google.com ہمارے معاملے میں)۔ آپ google.com کو درج ذیل کمانڈ پر عمل کرکے پنگ کرسکتے ہیں۔

$پنگگوگل ڈاٹ کام

اگر ہم تمام ناکام پنگس کو خارج کرنا چاہتے ہیں تو ہم 2>/dev/null کمانڈ استعمال کر سکتے ہیں:

$پنگگوگل ڈاٹ کام> /دیو/خالی

اس صورت میں ، معیاری خرابی کا سلسلہ (جو google.com کو ناکام پنگ دکھاتا ہے) ورچوئل ڈیوائس /dev /null پر بھیجا جاتا ہے جو انہیں خارج کر دیتا ہے۔

تاہم ، اگر ہم صرف ناکام پنگس دیکھنا چاہتے ہیں تو ہم درج ذیل کمانڈ پر عمل کر سکتے ہیں۔

$پنگگوگل ڈاٹ کام> /دیو/خالی

یہاں ، ہم /dev /null ڈیوائس پر سٹینڈرڈ آؤٹ پٹ اسٹریم (stdout) بھیجتے ہیں جو اسے خارج کر دیتا ہے۔ اس کے نتیجے میں ، ہمارے پاس صرف پنگز رہ گئے ہیں جو google.com سرور تک پہنچنے میں ناکام رہے۔ تاہم ، ہمارے معاملے میں ، کوئی ناکام پنگ نہیں تھے۔ ہم stdout اور stderr کو مختلف مقامات پر بھی بھیج سکتے ہیں۔ یہ مددگار ہے اگر ہم آؤٹ پٹ کو ضائع کرنا چاہتے ہیں اور لاگ میں غلطیاں محفوظ کرنا چاہتے ہیں یا اس کے برعکس۔ پنگ کمانڈ کے معیاری آؤٹ پٹ کو خارج کرتے ہوئے آپ غلط پنگز کو ایرر لاگ میں محفوظ کرنے کے لیے درج ذیل کمانڈ چلا سکتے ہیں۔

$پنگگوگل ڈاٹ کام> /دیو/خالی>error.log

مواقع پر ، آپ کمانڈ کے تمام آؤٹ پٹ کو دبانا چاہتے ہیں (بشمول معیاری آؤٹ پٹ اور معیاری غلطیاں)۔ ہم اسے تھوڑا مختلف انداز میں /dev /null آلہ کا استعمال کرکے حاصل کر سکتے ہیں۔ آپ تمام آؤٹ پٹ کو دبانے کے لیے درج ذیل کمانڈ ٹائپ کر سکتے ہیں:

$پنگگوگل ڈاٹ کام> /دیو/خالی> &

نوٹ کریں کہ یہاں احکامات کی ترتیب بہت اہم ہے۔ پنگ کمانڈ پر عمل کرنے کے بعد ، '>/dev/null' سسٹم کو آؤٹ پٹ کو دبانے کے لیے کہتا ہے ، اور '2> & 1' معیاری غلطی کے سلسلے کو معیاری آؤٹ پٹ کی طرف لے جاتا ہے۔ اس طرح ، کمانڈ کی تمام آؤٹ پٹ خارج ہو جاتی ہے۔

نتیجہ

ہم نے اس آرٹیکل میں 2>/dev/null کمانڈ اور سادہ مثالیں تقسیم کی ہیں ، اور امید ہے کہ اب آپ سمجھ گئے ہوں گے کہ اس کا ہر حصہ کیا کرتا ہے۔ تاہم ، یہ آئس برگ کی صرف نوک ہے۔ باش پروگرامنگ میں null ڈیوائسز کئی طریقوں سے استعمال ہوتی ہیں۔ کچھ جدید ترین استعمالات میں فائل کے وجود کی جانچ پڑتال ، پیکیج کی تنصیبات کو خودکار کرنا ، اور سکرپٹ کو ناپسندیدہ استثناء سے بچنے سے بچانا شامل ہے۔