Computer >> कंप्यूटर >  >> प्रणाली >> Linux

खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

लिनक्स के बारे में अच्छी बात यह है कि आप बूट प्रक्रिया से लेकर सॉफ्टवेयर पैकेज की स्थापना तक सब कुछ आसानी से देख और प्रबंधित कर सकते हैं। यहां हम चर्चा करते हैं कि आप खुली फाइलों और उनके उपयोग की प्रक्रियाओं को देखने के लिए लिनक्स में 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 आउटपुट में निम्नलिखित कॉलम हैं:

<टेबल><थेड>कॉलम प्रतिनिधित्व कमांड लक्ष्य फ़ाइल का उपयोग करके प्रक्रिया का नाम दिखाता है। PID फ़ाइल का उपयोग करने वाली प्रक्रिया के लिए विशिष्ट पहचानकर्ता। TID कॉलम थ्रेड आइडेंटिफ़ायर दिखाता है। TASKCMD कार्य कमांड का नाम। उपयोगकर्ता प्रक्रिया चलाने वाले उपयोगकर्ता का उपयोगकर्ता नाम या यूआईडी। FD फाइल और मोड का फाइल डिस्क्रिप्टर। प्रकार लक्ष्य फ़ाइल से संबद्ध नोड। डिवाइस डिवाइस नंबर को कॉमा से अलग किया गया है। आकार/बंद फ़ाइल ऑफ़सेट आकार के बाइट्स में फ़ाइल का आकार नोड स्थानीय फ़ाइल का इनोड मान। inode . दिखाने के लिए आप स्टेट कमांड का उपयोग कर सकते हैं फ़ाइल के लिए जानकारी। नाम फ़ाइल का माउंट बिंदु।

अब जब आप समझ गए हैं कि lsof कमांड प्रिंटआउट की सामग्री क्या दर्शाती है, तो आइए विशिष्ट जानकारी के लिए फ़िल्टर करने के लिए कमांड का उपयोग करें।

विशिष्ट प्रक्रिया के लिए फ़िल्टर कैसे करें

केवल विशिष्ट प्रक्रिया द्वारा खोली गई विशिष्ट फ़ाइलों के लिए फ़िल्टर करने के लिए, हम प्रक्रिया नाम या PID मान का उपयोग कर सकते हैं।

उदाहरण के लिए, फ़ायरफ़ॉक्स प्रक्रिया द्वारा उपयोग की जाने वाली फ़ाइलों को दिखाने के लिए, हम कमांड का उपयोग कर सकते हैं:

sudo lsof -c firefox
खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

कमांड फ़ायरफ़ॉक्स प्रक्रिया द्वारा खोली गई सभी फाइलों को दिखाएगा।

प्रक्रिया आईडी द्वारा फ़िल्टर करने के लिए, हम -p . का उपयोग कर सकते हैं विकल्प और प्रक्रिया आईडी पास करें। आप top का उपयोग कर सकते हैं लक्ष्य प्रक्रिया की प्रक्रिया आईडी प्राप्त करने के लिए आदेश।

उदाहरण के लिए, फ़ायरफ़ॉक्स प्रक्रिया का पीआईडी ​​​​प्राप्त करने के लिए, हम कमांड का उपयोग कर सकते हैं:

sudo ps aux | grep firefox

एक बार जब आपके पास लक्ष्य प्रक्रिया का पीआईडी ​​​​हो जाए, तो खुली फाइलों को दिखाने के लिए lsof का उपयोग करें:

sudo lsof -p 2121
खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

उपरोक्त आदेश निर्दिष्ट पीआईडी ​​के साथ प्रक्रिया द्वारा खोली गई फाइलों को प्रिंट करेगा।

किसी विशिष्ट उपयोगकर्ता के लिए फ़िल्टर कैसे करें

केवल एक विशिष्ट उपयोगकर्ता द्वारा खोली गई फाइलों को देखने के लिए, हम -u . का उपयोग कर सकते हैं झंडा। उदाहरण के लिए, डेबियन उपयोगकर्ता के लिए फ़िल्टर करने के लिए, कमांड का उपयोग करें:

sudo lsof -u debian
खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

किसी विशिष्ट फ़ाइल के लिए फ़िल्टर कैसे करें

मान लीजिए आप केवल प्रक्रिया और उस उपयोगकर्ता को जानना चाहते हैं जिसने एक विशिष्ट फ़ाइल खोली है। ऐसा करने के लिए, फ़ाइल का नाम lsof को पास करें:

sudo lsof /bin/sleep
खुली फाइलों को सूचीबद्ध करने के लिए लिनक्स में lsof कमांड का उपयोग कैसे करें

उपरोक्त केवल विशिष्ट फ़ाइल के लिए फ़िल्टर करेगा और संबंधित जानकारी लौटाएगा, जिसमें उपयोगकर्ता, प्रक्रिया आईडी, और बहुत कुछ शामिल है।

रैपिंग अप

इस सरल ट्यूटोरियल में, हमने चर्चा की कि लिनक्स में lsof कमांड का उपयोग करके खुली फाइलों के बारे में जानकारी के लिए सिस्टम को कैसे क्वेरी किया जाए। टर्मिनल में निर्देशिका की सामग्री को सूचीबद्ध करने के लिए यहां कुछ अतिरिक्त आदेश दिए गए हैं।


  1. लिनक्स में 'इको' कमांड का उपयोग कैसे करें

    चाहे आप लिनक्स के लिए पूरी तरह से नए हों या लंबे समय से लिनक्स डेस्कटॉप का उपयोग कर रहे हों, कुछ ऐसे कमांड हैं जिनका कोई मतलब नहीं है। यह विशेष रूप से सच है यदि आप कभी भी कमांड लाइन में नहीं जाते हैं, जो कि लिनक्स और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम की वास्तविक शक्ति है। इन्हीं में से एक है आदरणीय

  1. लिनक्स में टी कमांड का उपयोग कैसे करें

    यदि आप कभी भी अपने लिनक्स शेल के तहत पाइप और पुनर्निर्देशन का उपयोग करते हैं, तो संभावना है कि आपको कभी-कभी tee का उपयोग करने की भी आवश्यकता होगी। उपयोगिता। टी क्या करती है? एक कमांड जैसे ls आपकी वर्तमान निर्देशिका की सामग्री प्रदर्शित करेगा। दूसरे शब्दों में, यह इन सामग्रियों को स्टडआउट (मानक आउट

  1. Linux और macOS में फ़ाइलों को त्वरित रूप से खोजने के लिए fd का उपयोग कैसे करें

    fd फाइंड कमांड का एक आसान विकल्प है। यह आपके टाइप किए गए कमांड को संक्षिप्त और बिंदु तक रखने के लिए एक संक्षिप्त सिंटैक्स और एक संक्षिप्त कमांड संरचना का उपयोग करता है। हालाँकि, वर्डसिटी की कमी जो fd को टाइप करना आसान बनाती है, उसे समझना अधिक कठिन हो जाता है। fd डिफ़ॉल्ट खोज कमांड की तुलना में अधिक