यह गाइड lsof कमांड का उपयोग करके लिनक्स में खुली फाइलों, सॉकेट्स और पाइप की सूची प्राप्त करने का तरीका बताएगा।
lsof एक बहुत शक्तिशाली लिनक्स कमांड लाइन टूल है। यह लगभग हर लिनक्स वितरण के साथ आता है और आपको खुली फाइलों, सॉकेट्स, और पाइप की सूची देता है।
टूल का सबसे बुनियादी उपयोग कमांड नाम टाइप करना और रिटर्न कुंजी दबाना है, # lsof। यह कमांड एक काफी लंबी सूची लौटानी चाहिए। इस कमांड को चलाने का एक बेहतर तरीका less कमांड के साथ है — # lsof | less

बड़ा करने के लिए क्लिक करें
lsof के साथ less का उपयोग करने से आप आउटपुट को ऊपर और नीचे दोनों ओर स्क्रॉल कर सकते हैं, जिससे इसे पढ़ना आसान हो जाता है। बेशक, कमांड सिर्फ सभी खुली फाइलों का सामान्य आउटपुट देने से कहीं अधिक कर सकता है। यह उन स्थितियों में जीवनरक्षक हो सकता है जहां आप किसी समस्या का निवारण कर रहे हैं।
उदाहरण के लिए, आप lsof को किसी विशेष प्रक्रिया द्वारा खोली गई सभी खुली फाइलों की सूची दे सकते हैं। पहले, # ps -ef कमांड का उपयोग करके प्रोसेस ID प्राप्त करें। फिर कमांड # lsof -p 30646 चलाएं। -p प्रोसेस ID के लिए है, और 30646 एक उदाहरण प्रोसेस ID है जिसे आपको अपने प्रोसेस ID से बदलना चाहिए।

बड़ा करने के लिए क्लिक करें
आप अपने सिस्टम के किसी विशेष भाग से सभी खुली फाइलों, सॉकेट्स आदि को भी खोज सकते हैं। इसलिए, यदि आप /mnt डायरेक्टरी से सभी फाइलें देखना चाहते हैं, तो कमांड # lsof /mnt चलाएं। या, यदि आप किसी विशेष कमांड द्वारा खोली गई सभी प्रक्रियाएं ढूंढना चाहते हैं, तो # lsof -c mysql जैसी लाइन निष्पादित करें, जहां -c "कमांड" के लिए है, और आप mysql को उस कमांड से बदल सकते हैं जिसकी फाइलें आप जांचना चाहते हैं:

बड़ा करने के लिए क्लिक करें
लिनक्स पोर्ट, सॉकेट्स, और डिवाइस को फाइलों के रूप में मानता है। आप किसी विशेष प्रोटोकॉल या यहां तक कि पोर्ट का उपयोग करके सभी कनेक्शन भी खोज सकते हैं। आप कमांड # lsof -i :22 का उपयोग करके अपनी मशीन पर वर्तमान में चल रहे सभी SSH कनेक्शन खोज सकते हैं। या यदि आप अपने कंप्यूटर पर सभी tcp कनेक्शन देखना चाहते हैं तो कमांड # lsof -i TCP चलाएं:

बड़ा करने के लिए क्लिक करें
lsof कई अन्य विकल्पों के साथ एक काफी स्मार्ट कमांड है। इसे अधिकतम करने के तरीके के बारे में अधिक जानकारी के लिए टूल के मैन पेज देखें।