यूनिक्स / लिनक्स - फाइल सिस्टम मूल बातें
एक फ़ाइल सिस्टम एक विभाजन या डिस्क पर फ़ाइलों का एक तार्किक संग्रह है। एक विभाजन सूचना के लिए एक कंटेनर है और यदि वांछित है तो एक संपूर्ण हार्ड ड्राइव को फैला सकता है।
आपकी हार्ड ड्राइव में विभिन्न विभाजन हो सकते हैं जिनमें आमतौर पर केवल एक फ़ाइल सिस्टम होता है, जैसे कि एक फ़ाइल सिस्टम आवास /file system या किसी अन्य से युक्त /home file system।
विभाजन के प्रति एक फाइल सिस्टम विभिन्न फाइल सिस्टम के तार्किक रखरखाव और प्रबंधन के लिए अनुमति देता है।
यूनिक्स में सब कुछ एक फाइल माना जाता है, जिसमें डीवीडी-रोम, यूएसबी डिवाइस और फ्लॉपी ड्राइव जैसे भौतिक उपकरण शामिल हैं।
निर्देशिका संरचना
यूनिक्स फाइल सिस्टम के आधार पर रूट (/) के साथ एक उल्टा-नीचे पेड़ की तरह एक पदानुक्रमित फ़ाइल सिस्टम संरचना का उपयोग करता है, और वहां से फैलने वाली सभी अन्य निर्देशिकाएं।
एक यूनिक्स फाइलसिस्टम फाइलों और निर्देशिकाओं का एक संग्रह है जिसमें निम्नलिखित गुण हैं -
इसकी एक रूट डायरेक्टरी है (/) जिसमें अन्य फाइलें और निर्देशिकाएं हैं।
प्रत्येक फ़ाइल या निर्देशिका को उसके नाम से विशिष्ट रूप से पहचाना जाता है, जिस निर्देशिका में वह रहता है, और एक विशिष्ट पहचानकर्ता, जिसे आमतौर पर कहा जाता है inode।
सम्मेलन द्वारा, रूट डायरेक्टरी को ए inode की संख्या 2 और यह lost+found निर्देशिका एक है inode की संख्या 3। इनोड संख्या0 तथा 1उपयोग नहीं किया जाता है। फ़ाइल इनोड संख्या को निर्दिष्ट करके देखा जा सकता है-i option सेवा ls command।
यह स्वयंभू है। एक फाइलसिस्टम और दूसरे के बीच कोई निर्भरता नहीं हैं।
निर्देशिका के विशिष्ट उद्देश्य हैं और आम तौर पर आसानी से पता लगाने वाली फ़ाइलों के लिए एक ही प्रकार की जानकारी रखते हैं। निम्नलिखित निर्देशिकाएं हैं जो यूनिक्स के प्रमुख संस्करणों पर मौजूद हैं -
अनु क्रमांक। | निर्देशिका और विवरण |
---|---|
1 | / यह रूट डायरेक्टरी है जिसमें फ़ाइल संरचना के शीर्ष स्तर पर केवल निर्देशिकाएं होनी चाहिए |
2 | /bin यह वह जगह है जहां निष्पादन योग्य फाइलें स्थित हैं। ये फाइलें सभी उपयोगकर्ताओं के लिए उपलब्ध हैं |
3 | /dev ये डिवाइस ड्राइवर हैं |
4 | /etc पर्यवेक्षक निर्देशिका कमांड, कॉन्फ़िगरेशन फ़ाइलें, डिस्क कॉन्फ़िगरेशन फ़ाइलें, मान्य उपयोगकर्ता सूची, समूह, ईथरनेट, होस्ट, जहां महत्वपूर्ण संदेश भेजने के लिए |
5 | /lib साझा लाइब्रेरी फ़ाइलें और कभी-कभी अन्य कर्नेल-संबंधित फ़ाइलें शामिल हैं |
6 | /boot सिस्टम बूट करने के लिए फाइल समाहित करता है |
7 | /home उपयोगकर्ताओं और अन्य खातों के लिए होम निर्देशिका शामिल है |
8 | /mnt अन्य अस्थायी फ़ाइल सिस्टम को माउंट करने के लिए उपयोग किया जाता है, जैसे कि cdrom तथा floppy के लिए CD-ROM ड्राइव और floppy diskette drive, क्रमशः |
9 | /proc फ़ाइल द्वारा चिह्नित सभी प्रक्रियाओं को समाहित करता है process number या अन्य जानकारी जो सिस्टम के लिए गतिशील है |
10 | /tmp सिस्टम बूट के बीच उपयोग की जाने वाली अस्थायी फ़ाइलों को रखती है |
1 1 | /usr विविध प्रयोजनों के लिए उपयोग किया जाता है, और कई उपयोगकर्ताओं द्वारा उपयोग किया जा सकता है। प्रशासनिक आदेश, साझा फ़ाइलें, लाइब्रेरी फ़ाइलें और अन्य शामिल हैं |
12 | /var आमतौर पर चर-लंबाई वाली फाइलें जैसे लॉग और प्रिंट फाइलें और किसी अन्य प्रकार की फ़ाइल होती है जिसमें डेटा की एक चर राशि हो सकती है |
13 | /sbin आमतौर पर सिस्टम प्रशासन के लिए बाइनरी (निष्पादन योग्य) फाइलें होती हैं। उदाहरण के लिए,fdisk तथा ifconfig utlities |
14 | /kernel कर्नेल फ़ाइलें शामिल हैं |
फ़ाइल सिस्टम नेविगेट करना
अब जब आप फ़ाइल सिस्टम की मूल बातें समझ गए हैं, तो आप अपनी ज़रूरत की फाइलों पर नेविगेट करना शुरू कर सकते हैं। सिस्टम को नेविगेट करने के लिए निम्नलिखित कमांड का उपयोग किया जाता है -
अनु क्रमांक। | कमांड और विवरण |
---|---|
1 | cat filename एक फ़ाइल नाम प्रदर्शित करता है |
2 | cd dirname आपको पहचानी गई निर्देशिका में ले जाता है |
3 | cp file1 file2 निर्दिष्ट स्थान पर एक फ़ाइल / निर्देशिका की प्रतिलिपि बनाता है |
4 | file filename फ़ाइल प्रकार (द्विआधारी, पाठ, आदि) की पहचान करता है |
5 | find filename dir एक फ़ाइल / निर्देशिका पाता है |
6 | head filename किसी फ़ाइल की शुरुआत दिखाता है |
7 | less filename अंत या शुरुआत से एक फ़ाइल के माध्यम से ब्राउज़ करता है |
8 | ls dirname निर्दिष्ट निर्देशिका की सामग्री को दिखाता है |
9 | mkdir dirname निर्दिष्ट निर्देशिका बनाता है |
10 | more filename शुरुआत से अंत तक एक फ़ाइल के माध्यम से ब्राउज़ करता है |
1 1 | mv file1 file2 के स्थान को ले जाता है, या फ़ाइल / निर्देशिका का नाम बदल देता है |
12 | pwd उपयोगकर्ता को वर्तमान निर्देशिका दिखाता है |
13 | rm filename एक फ़ाइल निकालता है |
14 | rmdir dirname एक निर्देशिका निकालता है |
15 | tail filename किसी फ़ाइल का अंत दिखाता है |
16 | touch filename एक रिक्त फ़ाइल बनाता है या किसी मौजूदा फ़ाइल या उसकी विशेषताओं को संशोधित करता है |
17 | whereis filename किसी फ़ाइल का स्थान दिखाता है |
18 | which filename किसी फ़ाइल का स्थान दिखाता है यदि वह आपके PATH में है |
आप यहां बताए गए प्रत्येक कमांड के लिए पूर्ण सिंटैक्स की जांच करने के लिए Manpage Help का उपयोग कर सकते हैं।
Df कमांड
अपने विभाजन स्थान को प्रबंधित करने का पहला तरीका है df (disk free)आदेश। आदेशdf -k (disk free) प्रदर्शित करता है disk space usage in kilobytes, जैसा कि नीचे दिखाया गया है -
$df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/vzfs 10485760 7836644 2649116 75% / /devices 0 0 0 0% /devices $
कुछ निर्देशिकाएं, जैसे कि /devicesदिखाता है, किबीट में 0, क्षमता के लिए उपयोग किए गए कॉलम और लाभ के साथ-साथ 0%। ये विशेष (या आभासी) फ़ाइल सिस्टम हैं, और यद्यपि वे डिस्क के नीचे / पर रहते हैं, स्वयं द्वारा वे डिस्क स्थान का उपभोग नहीं करते हैं।
df -kउत्पादन आमतौर पर सभी यूनिक्स प्रणालियों पर समान है। यहाँ यह आमतौर पर क्या शामिल है -
अनु क्रमांक। | कॉलम और विवरण |
---|---|
1 | Filesystem भौतिक फ़ाइल सिस्टम नाम |
2 | kbytes संग्रहण माध्यम पर उपलब्ध कुल किलोबाइट स्थान |
3 | used कुल किलोबाइट का उपयोग किया गया स्थान (फाइलों द्वारा) |
4 | avail कुल किलोबाइट उपयोग के लिए उपलब्ध है |
5 | capacity फ़ाइलों द्वारा उपयोग किए जाने वाले कुल स्थान का प्रतिशत |
6 | Mounted on फ़ाइल सिस्टम किस पर आरूढ़ है |
आप उपयोग कर सकते हैं -h (human readable) option आउटपुट को एक प्रारूप में प्रदर्शित करना जो आकार को आसानी से समझने वाली सूचना को दर्शाता है।
डु कमांड
du (disk usage) command आपको किसी विशेष निर्देशिका पर डिस्क स्थान उपयोग दिखाने के लिए निर्देशिकाओं को निर्दिष्ट करने में सक्षम बनाता है।
यदि आप यह निर्धारित करना चाहते हैं कि कोई विशेष निर्देशिका कितनी जगह ले रही है, तो यह कमांड मददगार है। निम्न आदेश प्रत्येक निर्देशिका द्वारा खपत ब्लॉकों की संख्या प्रदर्शित करता है। एक सिंगल ब्लॉक आपके सिस्टम के आधार पर या तो 512 बाइट्स या 1 किलो बाइट ले सकता है।
$du /etc 10 /etc/cron.d 126 /etc/default 6 /etc/dfs ... $
-h विकल्प आउटपुट को समझने में आसान बनाता है -
$du -h /etc 5k /etc/cron.d 63k /etc/default 3k /etc/dfs ... $
फाइल सिस्टम को माउंट करना
सिस्टम द्वारा प्रयोग करने योग्य होने के लिए एक फाइल सिस्टम को माउंट किया जाना चाहिए। यह देखने के लिए कि आपके सिस्टम पर वर्तमान में क्या उपलब्ध है (उपयोग के लिए उपलब्ध है), निम्न कमांड का उपयोग करें -
$ mount /dev/vzfs on / type reiserfs (rw,usrquota,grpquota) proc on /proc type proc (rw,nodiratime) devpts on /dev/pts type devpts (rw) $
/mntनिर्देशिका, यूनिक्स सम्मेलन द्वारा, जहां अस्थायी माउंट (जैसे सीडीरॉम ड्राइव, रिमोट नेटवर्क ड्राइव और फ्लॉपी ड्राइव) स्थित है। यदि आपको एक फ़ाइल सिस्टम माउंट करने की आवश्यकता है, तो आप निम्न सिंटैक्स के साथ माउंट कमांड का उपयोग कर सकते हैं -
mount -t file_system_type device_to_mount directory_to_mount_to
उदाहरण के लिए, यदि आप माउंट करना चाहते हैं CD-ROM निर्देशिका के लिए /mnt/cdrom, आप टाइप कर सकते हैं -
$ mount -t iso9660 /dev/cdrom /mnt/cdrom
यह मानता है कि आपके CD-ROM डिवाइस को कहा जाता है /dev/cdrom और आप इसे माउंट करना चाहते हैं /mnt/cdrom। अधिक विशिष्ट जानकारी या माउंट के लिए माउंट मैन पेज देखें-h मदद जानकारी के लिए कमांड लाइन पर।
बढ़ते जाने के बाद, आप अपने द्वारा बनाए गए आरोह बिंदु के माध्यम से नए उपलब्ध फ़ाइल सिस्टम को नेविगेट करने के लिए सीडी कमांड का उपयोग कर सकते हैं।
फ़ाइल सिस्टम को अनमाउंट करना
अपने सिस्टम से फ़ाइल सिस्टम को अनमाउंट (हटाने) करने के लिए, का उपयोग करें umount माउंट प्वाइंट या डिवाइस की पहचान करके कमांड।
उदाहरण के लिए, to unmount cdrom, निम्न कमांड का उपयोग करें -
$ umount /dev/cdrom
mount command आपको अपनी फ़ाइल सिस्टम तक पहुंचने में सक्षम बनाता है, लेकिन अधिकांश आधुनिक यूनिक्स सिस्टमों पर, automount function इस प्रक्रिया को उपयोगकर्ता के लिए अदृश्य बनाता है और इसके लिए किसी हस्तक्षेप की आवश्यकता नहीं होती है।
उपयोगकर्ता और समूह कोटा
उपयोगकर्ता और समूह कोटा एक ऐसा तंत्र प्रदान करते हैं जिसके द्वारा किसी विशिष्ट समूह के भीतर किसी एकल उपयोगकर्ता या सभी उपयोगकर्ताओं द्वारा उपयोग किए जाने वाले स्थान की मात्रा को प्रशासक द्वारा परिभाषित मूल्य तक सीमित किया जा सकता है।
कोटा लगभग दो सीमाएँ संचालित करता है जो उपयोगकर्ता को कुछ कार्रवाई करने की अनुमति देता है यदि अंतरिक्ष ब्लॉक या डिस्क ब्लॉक की संख्या प्रशासक द्वारा निर्धारित सीमा से अधिक होने लगती है -
Soft Limit - यदि उपयोगकर्ता परिभाषित सीमा से अधिक है, तो एक अनुग्रह अवधि है जो उपयोगकर्ता को कुछ स्थान खाली करने की अनुमति देती है।
Hard Limit - जब हार्ड लिमिट खत्म हो जाती है, तो ग्रेस पीरियड की परवाह किए बिना, कोई और फाइल या ब्लॉक आवंटित नहीं किया जा सकता है।
कोटा को प्रबंधित करने के लिए कई कमांड हैं -
अनु क्रमांक। | कमांड और विवरण |
---|---|
1 | quota उपयोगकर्ता के समूह के लिए डिस्क उपयोग और सीमाएं प्रदर्शित करता है |
2 | edquota यह एक कोटा संपादक है। इस आदेश का उपयोग करके उपयोगकर्ता या समूह कोटा संपादित किया जा सकता है |
3 | quotacheck कोटा फ़ाइलों के डिस्क उपयोग, बनाता है, जाँच और मरम्मत के लिए एक फाइल सिस्टम |
4 | setquota यह एक कमांड लाइन कोटा संपादक है |
5 | quotaon यह सिस्टम के लिए घोषणा करता है कि डिस्क कोटा एक या एक से अधिक फाइल सिस्टम पर सक्षम होना चाहिए |
6 | quotaoff यह सिस्टम के लिए घोषणा करता है कि डिस्क कोटा एक या एक से अधिक फाइल सिस्टम के लिए अक्षम होना चाहिए |
7 | repquota यह निर्दिष्ट फ़ाइल सिस्टम के लिए डिस्क उपयोग और कोटा का सारांश प्रिंट करता है |
आप यहां बताए गए प्रत्येक कमांड के लिए पूर्ण सिंटैक्स की जांच करने के लिए Manpage Help का उपयोग कर सकते हैं।