کسی عمل کے لیے 'lsof' کمانڈ استعمال کرنے کے لیے گائیڈ
اگر آپ لینکس یا یونکس سسٹم کے اکثر صارف ہیں تو آپ نے یہ جملہ ضرور سنا ہوگا، "لینکس میں، ہر چیز ایک فائل ہے"۔ اسے تصور کی حد سے زیادہ آسان بنانے کے طور پر درجہ بندی کیا جا سکتا ہے لیکن یہ لینکس سسٹم میں فائلیں کیسے کام کرتی ہیں اس کو سمجھنے میں بہت مددگار ثابت ہوتی ہے۔
لینکس کے ماحول میں ظاہر ہونے والی ہر چیز کا فائل ہونا ضروری نہیں ہے۔ بعض اوقات یہ ایک عمل ہو سکتا ہے، یہ ایک خاص فائل ہو سکتی ہے جو ہارڈ ویئر کی معلومات، ڈائریکٹریز اور دیگر چیزوں کی نمائندگی کرتی ہے۔
یہ ٹیوٹوریل آپ کو ان تمام فائلوں کی تلاش میں لے جائے گا جو لینکس میں کسی خاص عمل کے لیے کھلی ہیں۔
کا تعارف lsof
کمانڈ
لینکس سسٹم کی خوبصورتی یہ ہے کہ آپ ٹرمینل کے ذریعے اپنے پورے سسٹم کو کنٹرول اور مینیج کر سکتے ہیں، بشرطیکہ آپ کمانڈز کو اچھی طرح جانتے ہوں۔ ایک بار جب کمانڈز معلوم ہوجائیں تو پھر ٹرمینل کے تمام کام ایک کیک واک بن جاتے ہیں۔
lsof
سے مراد 'کھلی فائلوں کی فہرست' ایک بار جب آپ کمانڈ کا لمبا ورژن جان لیں تو آپ کے لیے کمانڈ کو سمجھنا اور نتیجہ خیز انداز میں استعمال کرنا بہت آسان ہو جاتا ہے۔
دی lsof
کمانڈ کھلی فائلوں، ساکٹوں اور پائپوں کی فہرست دکھاتا ہے۔ آپ اس کمانڈ کا استعمال کرتے ہوئے آسانی سے کھلی فائلوں کو تلاش کر سکتے ہیں۔ جب lsof
کمانڈ کو بغیر کسی آپشن کے استعمال کیا جاتا ہے یہ تمام کھلی فائلوں کو ان فعال عملوں کے حوالے سے دکھاتا ہے جو چل رہے ہیں۔
نوٹ: یقینی بنائیں کہ آپ استعمال کرتے ہیں۔ sudo
احکامات پر عمل کرتے ہوئے.
کا استعمال کرتے ہوئے lsof
کمانڈ
ہم آؤٹ پٹ کا مطالعہ کریں گے۔ lsof
تفصیل سے حکم دیں. درج ذیل کمانڈ کا مطالعہ کریں۔
sudo lsof | کم
نوٹ: اگر ہم براہ راست چلاتے ہیں۔ lsof
کمانڈ، آؤٹ پٹ بہت بڑا ہونے والا ہے اور آگے بڑھنے کے لیے الجھن پیدا کر سکتا ہے۔ لہذا، یہاں میں نے استعمال کیا ہے lsof | کم
ٹیوٹوریل کی سہولت کے لیے کمانڈ۔
آؤٹ پٹ:
gaurav@ubuntu:~$ sudo lsof | کم COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME kdevtmpfs 31 روٹ cwd DIR 0,6 4400 2 / kdevtmpfs 31 root rtd DIR 0,6 4400 2 / kdevtmpfs 31 نامعلوم روٹ / txt3w / نامعلوم جڑ DIR 8,8 4096 2 / netns 32 root rtd DIR 8,8 4096 2 / netns 32 روٹ txt نامعلوم /proc/32/exe rcu_tasks 33 روٹ cwd DIR 8,8 4096 2 / rcu_tasks DIR 8,8 4096 2 / rcu_tasks DIR28, DIR28 روٹ / rcu_tasks 33 جڑ txt نامعلوم /proc/33/exe kauditd 34 root cwd DIR 8,8 4096 2 / kauditd 34 root rtd DIR 8,8 4096 2 / kauditd 34 root txt نامعلوم /proc/34/exe
ذیل میں وہ صفات ہیں جو استعمال کرتے ہوئے ظاہر ہوتی ہیں۔ lsof
کمانڈ.
پیرامیٹر | تفصیل |
---|---|
کمانڈ | اس کمانڈ کا نام دکھاتا ہے جو فائل کو کھولتا ہے۔ |
پی آئی ڈی | عمل کا شناخت کنندہ نمبر جو فائل کو کھولتا ہے۔ |
TID | تھریڈ شناخت کنندہ نمبر۔ یہ یا تو تھریڈ یا ٹاسک نمبر ہو سکتا ہے۔ |
صارف | یوزر آئی ڈی یا اس صارف کا نام جو اس عمل کا مالک ہے۔ |
ایف ڈی | فائل کا فائل ڈسکرپٹر دکھاتا ہے۔ |
قسم | فائل سے وابستہ نوڈ کی قسم۔ |
ڈیوائس | ڈیوائس نمبر دکھاتا ہے۔ |
سائز/آف | بائٹس میں فائل کا سائز دکھاتا ہے۔ |
نوڈ | انوڈ نمبر کو ڈائریکٹری یا پیرنٹ ڈائرکٹری دکھاتا ہے۔ |
نام | فائل سسٹم کا نام دکھاتا ہے جہاں یہ عمل واقع ہے۔ |
عمل کی فہرست بنانا
سب سے پہلے اور سب سے اہم بات یہ ہے کہ آپ کے لیے وہ عمل جو چل رہے ہیں اور ان کے متعلقہ عمل کی شناخت حاصل کریں۔ لینکس مختلف قسم کے کمانڈز فراہم کرتا ہے تاکہ عمل کی فہرست کے ساتھ ان کی صفات جیسے PID، صارف، ڈائریکٹری وغیرہ۔
آپ کمانڈ استعمال کرسکتے ہیں جیسے سب سے اوپر
, پی ایس
, htop
, pstree
ٹرمینل پر عمل کی فہرست بنانے کے لیے۔
پورے ٹیوٹوریل کے دوران، میں استعمال کروں گا۔ سب سے اوپر
ایسا کرنے کا حکم. دی سب سے اوپر
کمانڈ چلانے والے نظام کا ایک متحرک ریئل ٹائم منظر فراہم کرتا ہے۔ یہ ان تمام عملوں اور دھاگوں کو بھی دکھاتا ہے جو فی الحال لینکس کرنل کے زیر انتظام ہیں۔ کے آؤٹ پٹ کو چیک کرنے کے لیے نیچے دیے گئے بلاک کا مطالعہ کریں۔ سب سے اوپر
کمانڈ.
نحو:
sudo ٹاپ
آؤٹ پٹ:
gaurav@ubuntu:~$sudo top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2703 gaurav 20 0 4286124 1.142g 103584 R 88.2 30.5 87:4782872082082082080 ویب سائٹ 34،41 mongod 13765 گورو 20 0 2931568 131408 47496 ایس 5.9 3.3 1: 42،34 ویب کے مواد کے 1 جڑ 20 0 225904 6824 4900 ایس 0.0 0.2 0: 27،25 systemd 2 جڑ 20 0 0 0 0 S 0.0 0.0 0: 00،05 kthreadd 4 جڑ 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 6 روٹ 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 7 روٹ 20 0 0 0 0 S 0.0 0.0 0.0 0.0 0 0 0 S 0.0 0.0 0.0 8/08 soft 0.0 8/08 0 0 I 0.0 0.0 0:22.32 rcu_sched 9 روٹ 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh 10 جڑ rt 0 0 0 0 S 0.0 0.0 0:03.13 mig
مندرجہ بالا بلاک میں، ہم ایک جگہ پر عمل سے متعلق تمام معلومات دیکھ سکتے ہیں۔ یہاں سے ہم تلاش کر سکتے ہیں پی آئی ڈی
جس کے عمل میں ہمیں کھلی فائلوں کو استعمال کرتے ہوئے ڈسپلے کرنا ہے۔ lsof
کمانڈ.
لیکن اگر آپ صرف ایک خاص عمل کی پراسیس آئی ڈی معلوم کرنا چاہتے ہیں اور دیگر ناپسندیدہ عمل سے بچنا چاہتے ہیں تو درج ذیل کمانڈ کا استعمال کریں۔
نحو:
sudo ٹاپ | grep [Process_Name]
مثال:
gaurav@ubuntu:~$ ٹاپ | 53،63 GNOME-terminal- 13819 گورو 20 0 803336 19728 9160 ایس 1.0 0.5 0: 53،66 GNOME-terminal- 13819 گورو 20 0 803336 19728 9160 ایس 0.3 0.5 0: 53.67 GNOME grep کرنے ٹرمینل 13819 گورو 20 0 803336 19728 9160 0،3 0،5 0 S -ٹرمینل- gaurav@ubuntu:~$
یہاں ہم نے خاص طور پر اس پراسیس کی پراسیس آئی ڈی ظاہر کی ہے جس کے نام میں سٹرنگ 'ٹرمینل' ہے۔ یہ طریقہ کارآمد ہوتا ہے جب آپ مکمل عمل کے نام یا PID سے ناواقف ہوں۔
PID کا استعمال کرتے ہوئے ایک عمل سے متعلق کھلی فائلوں کو ظاہر کرنا
اوپر والے بلاک میں، ہم نے سیکھا کہ ٹاپ کمانڈ کی مدد سے پراسیس سے متعلق معلومات کیسے حاصل کی جاتی ہیں۔ اب ہم استعمال کریں گے۔ پی آئی ڈی
سسٹم پر کسی بھی عمل سے مطابقت رکھتا ہے اور اس عمل سے متعلق کھلی فائلوں کی فہرست کو ظاہر کرنے کی کوشش کریں lsof
کمانڈ.
اوپر دیے گئے آؤٹ پٹ سے، آئیے PID 1173 کے مطابق عمل کو لیتے ہیں جس پر روشنی ڈالی گئی ہے۔ ہم استعمال کریں گے lsof -p [PID]
ایسا کرنے کا حکم.
نحو:
sudo lsof -p [PID]
یہ کمانڈ عمل کی PID کو بطور ان پٹ لیتی ہے اور اس PID سے متعلقہ تمام فائلوں کی فہرست بناتی ہے۔
آؤٹ پٹ:
gaurav@ubuntu:~$ sudo lsof -p 1173 lsof: انتباہ: can't stat() fuse.gvfsd-fuse فائل سسٹم /run/user/1000/gvfs آؤٹ پٹ معلومات نامکمل ہو سکتی ہے۔ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mongod 1173 mongodb cwd DIR 8,8 4096 2 / mongod 1173 mongodb rtd DIR 8,8 4096 2 / mongod 1173 mongodb/t, mongodb38889t / mongod 1173 mongodb38889t 1173 mongodb mem REG 8,8 71776 2624380 /lib/x86_64-linux-gnu/libnss_myhostname.so.2 mongod 1173 mongodb mem REG 8,8 101168 2624643 mongodb 101168 mem REG 8,8 26936 2624439 /lib/x86_64-linux-gnu/libnss_dns-2.27.so mongod 1173 mongodb mem REG 8,8 10160 2626002 /lib/x86_64-linux-gnu 8,8 47568 2624441 /lib/x86_64-linux-gnu/libnss_files-2.27.so mongod 1173 mongodb mem REG 8,8 3004224 2909671 /usr/lib/locale/locale/locale1203g/mod53ng/locale/locale/locale204mod53g lib/x86_64-linux-gnu/libc-2.27.so mongod 1173 mongodb mem REG 8,8 144976 2624627 /lib/x86_64-linux-gnu/libpthread-2.27.so mongod REG 1173/libpthread-2.27.so mongod REG 62618/6487 x86_64-linux-gnu/libgcc_s.so.1 mongod 1173 mongodb me m REG 8,8 1700792 2622735 /lib/x86_64-linux-gnu/libm-2.27.so mongod 1173 mongodb mem REG 8,8 14560 2621535 /lib/x86_64-linux-gnu/libm-linux 8,8 31680 2624646 /lib/x86_64-linux-gnu/librt-2.27.so mongod 1173 mongodb mem REG 8,8 2357760 2890079 /usr/lib/x86_64/librt-2.27.so mongod :~$
پروسیس ID 1713 کے ساتھ جو فائلیں اس عمل کے لیے کھلی ہیں وہ استعمال کرکے دکھائی جاتی ہیں۔ lsof
کمانڈ.
نوٹ: GNOME صارفین کو درج ذیل انتباہ کا سامنا کرنا پڑ سکتا ہے۔ آپ اسے محفوظ طریقے سے نظر انداز کر سکتے ہیں۔
lsof: وارننگ: can't stat() fuse.gvfsd-fuse فائل سسٹم /run/user/1000/gvfs آؤٹ پٹ کی معلومات نامکمل ہو سکتی ہے۔
عمل کے نام کا استعمال کرتے ہوئے کسی عمل سے متعلق کھلی فائلوں کی فہرست بنانا
دی lsof
کمانڈ آپ کو عمل کے ناموں کا استعمال کرتے ہوئے کھلی فائلوں کی فہرست بنانے کا اختیار بھی فراہم کرتا ہے۔ کمانڈ کو ان پٹ سٹرنگ کے طور پر نام فراہم کیے جائیں۔ اس اختیار کو استعمال کرنے کے لیے نیچے دیے گئے نحو کو دیکھیں۔
نحو:
sudo lsof -c [عمل کا نام]
مثال:
sudo lsof -c mysql
آؤٹ پٹ:
gaurav@ubuntu:~$ sudo lsof -c mysql lsof: انتباہ: نہیں کر سکتے stat() fuse.gvfsd-fuse فائل سسٹم /run/user/1000/gvfs آؤٹ پٹ معلومات نامکمل ہو سکتی ہے۔ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1266 mysql cwd DIR 8,8 4096 3154135 /var/lib/mysql mysqld 1266 mysql rtd DIR 8,8 Rqs/t26182612618912618961896 mysql /sbin/mysqld mysqld 1266 mysql mem REG 8,8 6288 5505444 /usr/lib/mysql/plugin/auth_socket.so mysqld 1266 mysql DEL REG 0,18 28127 mysql27, REG18 mysql27 /[Eq8127/[Q81] aio] mysqld 1266 mysql DEL REG 0,18 28125 /[aio] mysqld 1266 mysql mem REG 8,8 47568 2624441 /lib/x86_64-linux-gnu/libnss_files /26m26m26mmy26m/26m26m/libnss. lib/x86_64-linux-gnu/libnss_nis-2.27.so mysqld 1266 mysql mem REG 8,8 39744 2624438 /lib/x86_64-linux-gnu/libnss_compat-2.27.so
آؤٹ پٹ اس کے جیسا ہو گا جس میں Process نام کے بجائے Process ID استعمال کیا جاتا ہے۔
نیٹ ورک کنکشن کے ذریعہ کھولی گئی فائلوں کی فہرست
لینکس میں، فائلیں آپ کے نیٹ ورک کنکشن، ہارڈویئر کنکشن وغیرہ کے بارے میں معلومات کی شکل میں بھی ہوسکتی ہیں۔ lsof
نیٹ ورک کنکشن کے ذریعہ کھولی گئی فائلوں کی فہرست بنانے کے لئے کمانڈ۔ درج ذیل طریقہ استعمال کریں۔
sudo lsof -i
آؤٹ پٹ:
gaurav@ubuntu:~$ sudo lsof -i کمانڈ پی آئی ڈی یوزر ایف ڈی ٹائپ ڈیوائس سائز/آف نوڈ کا نام systemd-r 969 systemd-resolve 12u IPv4 17357 0t0 UDP لوکل ہوسٹ: ڈومین systemd-r 969 systemd-resolve local T3CP70t510 domain (listen) systemd-r 969 systemd-resolve 15u IPv4 1685575 0t0 UDP ubuntu:48090->_gateway:domain avahi-dae 1028 avahi 12u IPv4 23810 0t0 UDP *:mdns8v1010UDP *:mdns8v10va avahi-ڈییئ 1028 avahi 14U IPv4 کی 23812 0t0 UDP *: 58999 avahi-ڈییئ 1028 avahi 15U IPv6 کی 23813 0t0 UDP *: 37512 mongod 1173 mongodb 6U IPv4 کی 28149 0t0 TCP لوکل ہوسٹ: 27017 (سننے) mysqld 1266 کیو ایل 19u IPv4 کی 25992 0t0 TCP لوکل ہوسٹ: mysql (LISTEN) apache2 1283 روٹ 4u IPv6 28140 0t0 TCP *:http (LISTEN) gaurav@ubuntu:~$
یہاں ہم ان فائلوں کے بارے میں معلومات دیکھ سکتے ہیں جو نیٹ ورک کنکشن کے ذریعے کھلی ہیں۔ lsof -i
کمانڈ.
نتیجہ
اس آسان ٹیوٹوریل میں، ہم نے سیکھا ہے کہ لینکس میں کسی پروسیس کے لیے کھلی فائلوں کی فہرست مختلف طریقوں کو استعمال کرتے ہوئے جو استعمال میں آسان ہیں۔ کے مزید استعمال کے لیے lsof
حکم، دیکھیں lsof
آدمی صفحہ.