लिनक्स के बारे में अच्छी बात यह है कि आप बूट प्रक्रिया से लेकर सॉफ्टवेयर पैकेज की स्थापना तक सब कुछ आसानी से देख और प्रबंधित कर सकते हैं। यहां हम चर्चा करते हैं कि आप खुली फाइलों और उनके उपयोग की प्रक्रियाओं को देखने के लिए लिनक्स में lsof कमांड का उपयोग कैसे कर सकते हैं। इसे देखने का तरीका जानने से आपको यह समझने में मदद मिल सकती है कि सिस्टम कैसे काम करता है और यहां तक कि विशिष्ट प्रक्रियाओं के लिए आवश्यक कार्रवाई भी करता है।
Lsof कमांड
खुली फाइलों और उनके लिए जिम्मेदार उपयोगकर्ताओं या प्रक्रियाओं को देखने के लिए, हम lsof
. का उपयोग करते हैं उपयोगिता। डिफ़ॉल्ट रूप से, lsof
अधिकांश वितरणों में पूर्व-स्थापित है।
हालाँकि, यदि आपने इसे स्थापित नहीं किया है, तो आप इसे अपने सिस्टम पर स्थापित करने के लिए पैकेज प्रबंधक का उपयोग कर सकते हैं।
डेबियन/उबंटू
डेबियन पर, कमांड चलाएँ:
sudo apt-get install lsof
आर्क/मंजारो
मंज़रो और अन्य आर्क-आधारित वितरण पर, कमांड चलाकर pacman का उपयोग करें:
sudo pacman -S lsof
सेंटोस/आरईएचएल/फेडोरा
CentOS और REHL परिवार के लिए, आप dnf का उपयोग कर सकते हैं:
sudo dnf install lsof
Linux प्रक्रिया के लिए खुली फाइलों को सूचीबद्ध करने के लिए lsof कमांड का उपयोग करें
अधिकांश लिनक्स कमांड की तरह, lsof उपयोगिता उपयोग करने के लिए अविश्वसनीय रूप से सरल है। lsof
. कमांड टाइप करके शुरू करें :
sudo lsof
एक बार जब आप ऊपर कमांड चलाते हैं, तो lsof को सिस्टम में खुली फाइलों के बारे में जानकारी वापस करनी चाहिए।
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 8,48 4096 2 / init 1 root rtd DIR 8,48 4096 2 / init 1 root txt REG 0,19 632048 281474976743906 /init init 1 root 0u CHR 1,3 0t0 15362 /dev/null init 1 root 1u CHR 1,3 0t0 15362 /dev/null init 1 root 2u CHR 1,3 0t0 15362 /dev/null init 1 root 3w CHR 1,11 0t0 15367 /dev/kmsg init 1 root 4u sock 0,8 0t0 22689 protocol: AF_VSOCK init 1 root 5r REG 0,4 0 4026532185 mnt init 1 root 6r REG 0,4 0 4026532201 mnt init 1 root 7r DIR 8,48 4096 240 /home/cap init 1 root 8u DIR 8,48 4096 2 / init 1 root 9u sock 0,8 0t0 21853 protocol: AF_VSOCK
नोट: यदि आपके पास sudo विशेषाधिकार हैं, तो sudo
. के साथ कमांड चलाएँ विशिष्ट फ़ाइलों पर "अनुमति अस्वीकृत" त्रुटियों से बचने के लिए।
जैसा कि ऊपर के आउटपुट में दिखाया गया है, lsof आउटपुट में निम्नलिखित कॉलम हैं:
<टेबल><थेड>inode
. दिखाने के लिए आप स्टेट कमांड का उपयोग कर सकते हैं फ़ाइल के लिए जानकारी।अब जब आप समझ गए हैं कि lsof कमांड प्रिंटआउट की सामग्री क्या दर्शाती है, तो आइए विशिष्ट जानकारी के लिए फ़िल्टर करने के लिए कमांड का उपयोग करें।
विशिष्ट प्रक्रिया के लिए फ़िल्टर कैसे करें
केवल विशिष्ट प्रक्रिया द्वारा खोली गई विशिष्ट फ़ाइलों के लिए फ़िल्टर करने के लिए, हम प्रक्रिया नाम या PID मान का उपयोग कर सकते हैं।
उदाहरण के लिए, फ़ायरफ़ॉक्स प्रक्रिया द्वारा उपयोग की जाने वाली फ़ाइलों को दिखाने के लिए, हम कमांड का उपयोग कर सकते हैं:
sudo lsof -c firefox
कमांड फ़ायरफ़ॉक्स प्रक्रिया द्वारा खोली गई सभी फाइलों को दिखाएगा।
प्रक्रिया आईडी द्वारा फ़िल्टर करने के लिए, हम -p
. का उपयोग कर सकते हैं विकल्प और प्रक्रिया आईडी पास करें। आप top
का उपयोग कर सकते हैं लक्ष्य प्रक्रिया की प्रक्रिया आईडी प्राप्त करने के लिए आदेश।
उदाहरण के लिए, फ़ायरफ़ॉक्स प्रक्रिया का पीआईडी प्राप्त करने के लिए, हम कमांड का उपयोग कर सकते हैं:
sudo ps aux | grep firefox
एक बार जब आपके पास लक्ष्य प्रक्रिया का पीआईडी हो जाए, तो खुली फाइलों को दिखाने के लिए lsof का उपयोग करें:
sudo lsof -p 2121
उपरोक्त आदेश निर्दिष्ट पीआईडी के साथ प्रक्रिया द्वारा खोली गई फाइलों को प्रिंट करेगा।
किसी विशिष्ट उपयोगकर्ता के लिए फ़िल्टर कैसे करें
केवल एक विशिष्ट उपयोगकर्ता द्वारा खोली गई फाइलों को देखने के लिए, हम -u
. का उपयोग कर सकते हैं झंडा। उदाहरण के लिए, डेबियन उपयोगकर्ता के लिए फ़िल्टर करने के लिए, कमांड का उपयोग करें:
sudo lsof -u debian
किसी विशिष्ट फ़ाइल के लिए फ़िल्टर कैसे करें
मान लीजिए आप केवल प्रक्रिया और उस उपयोगकर्ता को जानना चाहते हैं जिसने एक विशिष्ट फ़ाइल खोली है। ऐसा करने के लिए, फ़ाइल का नाम lsof को पास करें:
sudo lsof /bin/sleep
उपरोक्त केवल विशिष्ट फ़ाइल के लिए फ़िल्टर करेगा और संबंधित जानकारी लौटाएगा, जिसमें उपयोगकर्ता, प्रक्रिया आईडी, और बहुत कुछ शामिल है।
रैपिंग अप
इस सरल ट्यूटोरियल में, हमने चर्चा की कि लिनक्स में lsof कमांड का उपयोग करके खुली फाइलों के बारे में जानकारी के लिए सिस्टम को कैसे क्वेरी किया जाए। टर्मिनल में निर्देशिका की सामग्री को सूचीबद्ध करने के लिए यहां कुछ अतिरिक्त आदेश दिए गए हैं।