پائپنگ باش اسکرپٹنگ میں ایک طاقتور خصوصیت ہے جو متعدد کمانڈز کو ایک ساتھ جوڑنے کی اجازت دیتی ہے، جس سے ڈیٹا کی موثر ہیرا پھیری اور پروسیسنگ ممکن ہوتی ہے۔ پائپ علامت (|) کا استعمال کرتے ہوئے، ایک کمانڈ کی آؤٹ پٹ بغیر کسی رکاوٹ کے دوسرے کمانڈ کو ان پٹ کے طور پر منتقل کی جا سکتی ہے، جس سے کمانڈز کے درمیان ڈیٹا کا مسلسل بہاؤ پیدا ہوتا ہے۔ یہ تصور لینکس سسٹم ایڈمنسٹریشن میں بنیادی ہے اور سائبر سیکیورٹی کے مختلف کاموں میں اہم کردار ادا کرتا ہے۔
پائپنگ کے استعمال کو سمجھنے کے لیے، معیاری ان پٹ (stdin)، معیاری آؤٹ پٹ (stdout)، اور معیاری غلطی (stderr) کے تصور کو سمجھنا ضروری ہے۔ باش اسکرپٹنگ میں، ہر کمانڈ کے ساتھ یہ تین اسٹریمز منسلک ہوتے ہیں۔ پہلے سے طے شدہ طور پر، stdin کی بورڈ سے ان پٹ حاصل کرتا ہے، stdout ٹرمینل پر آؤٹ پٹ دکھاتا ہے، اور stderr غلطی کے پیغامات دکھاتا ہے۔
پائپنگ ہمیں ایک کمانڈ کے آؤٹ پٹ کو دوسری کمانڈ کے ان پٹ پر ری ڈائریکٹ کرنے کی اجازت دیتی ہے، اس طرح کمانڈز کا ایک سلسلہ بنتا ہے۔ یہ کمانڈ کے درمیان پائپ کی علامت (|) کا استعمال کرکے حاصل کیا جاسکتا ہے۔ مثال کے طور پر، درج ذیل کمانڈ پر غور کریں:
command1 | command2
اس مثال میں، `command1` کی آؤٹ پٹ کو ان پٹ کے طور پر `command2` میں منتقل کیا جاتا ہے۔ یہ `command1` کے آؤٹ پٹ کو `command2` کے ذریعے پروسیس یا فلٹر کرنے کی اجازت دیتا ہے، جو اس کے آؤٹ پٹ کو کسی اور کمانڈ کو منتقل کر سکتا ہے، وغیرہ۔
بڑی مقدار میں ڈیٹا سے نمٹنے یا پیچیدہ کاموں کو انجام دیتے وقت پائپنگ خاص طور پر مفید ہے۔ یہ زیادہ پیچیدہ آپریشنز کو مؤثر طریقے سے حاصل کرنے کے لیے آسان کمانڈز کے امتزاج کو قابل بناتا ہے۔ مثال کے طور پر، ہم کہتے ہیں کہ ہم ایک ڈائریکٹری میں تمام فائلوں کی فہرست بنانا چاہتے ہیں اور پھر ان فائلوں میں ایک مخصوص پیٹرن تلاش کرنا چاہتے ہیں۔ ہم اسے `grep` کمانڈ کے ساتھ `ls` کمانڈ کو پائپ کر کے پورا کر سکتے ہیں:
ls | grep pattern
اس مثال میں، `ls` کمانڈ موجودہ ڈائرکٹری میں تمام فائلوں کی فہرست بناتی ہے، اور اس کے آؤٹ پٹ کو پھر ان پٹ کے طور پر `grep` کمانڈ میں منتقل کیا جاتا ہے۔ `grep` کمانڈ ان پٹ کے اندر مخصوص پیٹرن کو تلاش کرتی ہے جو اسے `ls` سے ملتا ہے اور مماثل لائنوں کو دکھاتا ہے۔
پائپنگ کو متعدد کمانڈز کے ساتھ بھی استعمال کیا جا سکتا ہے، جس سے آپریشنز کا ایک طویل سلسلہ بنتا ہے۔ مثال کے طور پر، مندرجہ ذیل منظر نامے پر غور کریں جہاں ہم تمام چلنے والے عمل کو تلاش کرنا چاہتے ہیں جو ایک مخصوص پورٹ استعمال کر رہے ہیں۔ ہم اسے 'netstat'، 'grep'، اور 'awk' کمانڈز کو ملا کر حاصل کر سکتے ہیں:
netstat -tuln | grep LISTEN | awk '{print $4}'
اس مثال میں، `netstat` کمانڈ نیٹ ورک کے اعداد و شمار دکھاتی ہے۔ اس کے بعد آؤٹ پٹ کو صرف ان لائنوں کو فلٹر کرنے کے لیے `grep` میں منتقل کیا جاتا ہے جس میں لفظ "LISTEN" ہوتا ہے۔ آخر میں، `grep` کا آؤٹ پٹ `awk` کو دیا جاتا ہے، جو چوتھی فیلڈ (پورٹ نمبر) کو نکالتا ہے اور اسے دکھاتا ہے۔
یہ نوٹ کرنا ضروری ہے کہ پائپنگ ایک طاقتور تکنیک ہے، لیکن اسے احتیاط کے ساتھ استعمال کیا جانا چاہیے۔ پائپ لائن میں کمانڈز کا غلط استعمال یا غلط ترتیب غیر متوقع نتائج یا غلطیوں کا باعث بن سکتی ہے۔ مزید برآں، ہو سکتا ہے کہ کچھ کمانڈز پائپنگ کے ساتھ توقع کے مطابق کام نہ کریں، کیونکہ ان کے لیے مخصوص ان پٹ کی ضرورت پڑ سکتی ہے یا ایسا آؤٹ پٹ پیدا ہو سکتا ہے جو پائپنگ کے ساتھ مطابقت نہ رکھتا ہو۔
پائپنگ باش اسکرپٹنگ میں ایک بنیادی تصور ہے جو متعدد کمانڈز کو ایک ساتھ باندھنے کی اجازت دیتا ہے۔ یہ لینکس سسٹم ایڈمنسٹریشن اور سائبر سیکیورٹی کے کاموں کی کارکردگی اور لچک کو بڑھا کر کمانڈز کے درمیان ڈیٹا کے بغیر کسی رکاوٹ کے بہاؤ کو قابل بناتا ہے۔ پائپنگ کی مناسب سمجھ اور استعمال پیچیدہ کاموں کو بہت آسان بنا سکتا ہے اور طاقتور طریقوں سے ڈیٹا کی ہیرا پھیری کو قابل بنا سکتا ہے۔
سے متعلق دیگر حالیہ سوالات اور جوابات Bash کی بنیادی باتیں:
- آپ باش اسکرپٹنگ میں کسی کمانڈ کی صرف معیاری غلطی (stderr) کو کسی فائل میں کیسے بھیج سکتے ہیں؟
- باش اسکرپٹنگ میں مشروط عملدرآمد میں "اور" آپریٹر اور "یا" آپریٹر میں کیا فرق ہے؟
- باش اسکرپٹنگ میں "اگر" بیان کا مقصد کیا ہے؟
- آپ کمانڈ کے آؤٹ پٹ کو باش اسکرپٹنگ میں فائل میں کیسے بھیج سکتے ہیں؟

