उबंटू फाइल सिस्टम लेआउट को कैसे समझें?


220

विंडोज में शायद अधिष्ठापन ड्राइव (मेरे मामले में) में केवल कुछ महत्वपूर्ण फ़ोल्डर्स (महत्वपूर्ण रूप से विंडोज फाइल सिस्टम की मेरी तार्किक तस्वीर में महत्वपूर्ण) का मतलब है C:\। अर्थात् Program Filesऔर Windows। मैं बस Windowsफ़ोल्डर से दूर रहता हूं और "प्रोग्राम हटाएं फ़ाइलें जोड़ें" program filesविंडोज के फ़ोल्डर को संभालने के लिए पर्याप्त है । बेशक वहाँ एक फ़ोल्डर है Usersजहाँ उपयोगकर्ता (जो प्रवेश नहीं हैं) केवल अपने फ़ोल्डर तक पहुँच सकते हैं।

इस प्रकार विंडोज फाइल सिस्टम के बारे में मेरे दिमाग में कुछ स्तर पर स्पष्ट तस्वीर है। उबंटू में, जब मैं स्थान पर पहुंचता हूं, तो /फ़ोल्डरों की एक विशाल सूची होती है, जिनमें से अधिकांश में मेरे पास कोई सुराग नहीं होता है कि उनके पास क्या है। /binफ़ोल्डर के बराबर हो रहा है Windowsखिड़कियों में फ़ोल्डर। /usrफ़ोल्डर लगता है यह के बराबर है जैसे UsersWindows में फ़ोल्डर। लेकिन यहां तक ​​कि /homeफ़ोल्डर ऐसा लगता है कि यह बिल को फिट कर सकता है।

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

यह सवाल एक बड़े सवाल का हिस्सा है जिसे मैं और अधिक जवाबदेह बनाने के लिए बंट रहा हूं। मूल प्रश्न यहां पाया जा सकता है:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/


3
Unix & Linux पर डायरेक्टरी-स्ट्रक्चर टैग भी देखें । सभी लिनक्स वितरण एक ही मॉडल का पालन करते हैं।
गिल्स

आपके सभी उत्तरों के लिए धन्यवाद। मैं कुछ बिंदुओं के बारे में थोड़ा उलझन में हूं: विंडोज में आमतौर पर सेटअप सभी उपयोगकर्ताओं के लिए एक सॉफ्टवेयर स्थापित करने के लिए एक विकल्प के माध्यम से प्रदान करता है। उबुन्टु में वह भेद कैसे करें? इसके अलावा, विकास की सॉफ्टवेयर्स को उनके IDEs में कॉन्फ़िगर करने में यह एक सामान्य समस्या है। विंडोज़ में, उदाहरण के लिए, "प्रोग्राम फाइल्स \ miktex \ bin" में "pdflatex.exe" फाइल है। इस प्रकार मैं इस फाइल को IDE इंगित कर सकता हूं और इसे कॉन्फ़िगर कर सकता हूं। उबंटू में इस प्रक्रिया के बारे में कैसे जाना जाए? सॉफ्टवेयर के साथ जुड़ी सामान्य बाइनरी फाइल कहां है (कॉन्फ़िगरेशन बिंदु से जासूसी)?
शशांक सावंत

2
उबंटू में, आप सामान्य रूप से सभी उपयोगकर्ताओं के लिए सॉफ़्टवेयर स्थापित करते हैं। पैकेज मैनेजर के माध्यम से आप जो कुछ भी करते हैं वह सभी उपयोगकर्ताओं के लिए है। मैं आपकी टिप्पणी के बाकी हिस्सों को नहीं समझता; कोई "बाइनरी फ़ाइल" किसी सॉफ़्टवेयर से संबद्ध "कॉन्फ़िगर" नहीं करता है। आपको इसे एक अलग प्रश्न के रूप में पूछना चाहिए, और जो आप करने की कोशिश कर रहे हैं उसका बेहतर विवरण दें।
गाइल्स

समझ गया। मैं एक नया प्रश्न तैयार करूंगा। फिर भी यहाँ मेरा क्या अर्थ है, इसकी संक्षिप्त व्याख्या है: विंडोज़ में, .exe फ़ाइलें आसानी से स्थित हो सकती हैं। उदाहरण के लिए: "C: \ Python27 \ python.exe"। इसलिए मुझे पता है कि पायथन कार्यक्रम कहां से शुरू होता है। अब अगर मुझे ग्रहण आईडीई का उपयोग करना है, तो मैं बस इसे python.exe को इंगित कर सकता हूं, और यही मेरा मतलब है "कॉन्फ़िगर"। मैंने पायथन के लिए आईडीई को कॉन्फ़िगर किया है। उबंटू में जहां प्रोग्राम स्थापित किया गया है, वह स्थान कहां है? यह वही है जो अभी भी मुझे पैदा करता है।
शशांक सावंत

2
@ गिल्स कहते समय सावधान रहें allGoboLinux परियोजना वास्तव में निर्देशिका संरचना की तरह एक और अधिक विंडोज का उपयोग करता है।
new123456

जवाबों:


251

उदाहरण के लिए विकिपीडिया पर आप इस पर पढ़ सकते हैं। अंश:

फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड (FHS) मुख्य निर्देशिकाओं और Linux ऑपरेटिंग सिस्टम में उनकी सामग्री परिभाषित करता है। अधिकांश भाग के लिए, यह पारंपरिक बीएसडी फाइल सिस्टम पदानुक्रम का एक औपचारिककरण और विस्तार है।

एफएचएस को लिनक्स फाउंडेशन द्वारा बनाए रखा गया है, जो एक गैर-लाभकारी संगठन है, जिसमें प्रमुख सॉफ्टवेयर और हार्डवेयर विक्रेता हैं, जैसे कि एचपी, रेड हैट, आईबीएम और डेल। वर्तमान संस्करण 3.0 है, 3 जून 2015 को जारी किया गया।

एक संक्षिप्त विवरण के साथ एक दृश्य प्रतिनिधित्व:

यहां छवि विवरण दर्ज करें

मूल रूप से लिनक्स ने निर्देशिका संरचना को इस बात के आधार पर विभाजित किया है कि आवश्यक अनुमतियों की न्यूनतम राशि के साथ सिस्टम को यथासंभव सुरक्षित बनाने के लिए क्या आवश्यक है। अन्यथा किसी को परिहार्य कार्य के लिए बाध्य होना पड़ता है।

याद रखें कि यूनिक्स और लिनक्स जहां बहु-उपयोगकर्ता प्रणालियों के रूप में बनाया गया था और विंडोज एकल उपयोगकर्ता के लिए बनाया गया था। बाकी सब कुछ उस विचार से समझाया जा सकता है। बहु-उपयोगकर्ता और सुरक्षा होने के बारे में सोचते समय आप हर निर्देशिका की व्याख्या कर सकते हैं।

3 उदाहरण:

  • में: आप फ़ाइलें और निर्देशिका है कि केवल व्यवस्थापक हैं उसी निर्देशिका में इकट्ठे हुए हैं देखेंगे /sbinऔर /usr/sbinऔर /usr/local/sbinप्रणाली के लिए खड़ा है। एक सामान्य उपयोगकर्ता उन कार्यक्रमों को भी शुरू नहीं कर सकता है जो वहां हैं। सामान्य उपयोगकर्ता जो फ़ाइलें प्रारंभ कर सकते हैं, वे / बिन, / usr / bin, / usr / स्थानीय / बिन पर आधारित हैं, जहां यह सबसे तार्किक रूप से निवास करना चाहिए। लेकिन अगर वे केवल व्यवस्थापक हैं तो उन्हें sउस निर्देशिका के संस्करण में जाना चाहिए । एक प्रसिद्ध उपयोगिता कहा जाता है fuser। आप इसके साथ प्रक्रियाओं को मार सकते हैं। यदि कोई सामान्य उपयोगकर्ता इसका उपयोग कर सकता है, तो वह आपके सत्र को मारने में सक्षम होगा।

  • वही इसके लिए जाता है /home: / home / user1 user1 की संपत्ति है। / home / user2 user2 की संपत्ति है। user1 का user1 के घर में कोई व्यवसाय करने वाला सामान नहीं है (और दूसरा तरीका भी सही है: user1 का user2 के घर में कोई व्यवसाय करने वाला सामान नहीं है)। यदि सभी फाइलें / घर में होंगी, तो इसके नीचे कोई उपयोगकर्ता नाम नहीं होगा, तो आपको हर फाइल और अनुमतियों को देना होगा यदि किसी को उन फाइलों को लिखने / निकालने की अनुमति है। एक दुःस्वप्न अगर आपके पास दसियों उपयोगकर्ता हैं।

  • पुस्तकालयों के बारे में जोड़

    /lib/, /usr/lib/और /usr/local/lib/मूल स्थान हैं, मल्टीबिल सिस्टम के अस्तित्व में आने से पहले और मौजूद चीजों को तोड़ने से रोकने के लिए। /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/32- / 64-बिट multilib आविष्कार कर रहे हैं।

यह किसी भी तरह से एक स्थिर अवधारणा नहीं है। अन्य लिनक्स फ्लेवर्स ने इस ले-आउट के लिए ट्विक्स किए। उदाहरण के लिए; वर्तमान में आप FIB के ले-आउट में डेबियन और उबंटू को बहुत बदल कर देखेंगे क्योंकि SSD केवल फाइलों को पढ़ने के साथ बेहतर है। एक नए ले-आउट की दिशा में एक आंदोलन है जहाँ फाइलें 'केवल पढ़ने के लिए' और 'लिखने योग्य' निर्देशिका / समूह में विभाजित होती हैं, इसलिए हमारे पास एक रूट विभाजन हो सकता है जिसे केवल पढ़ा जा सकता है (ssd के लिए विभाजन) और लिखने योग्य (sata hdd)। इसके लिए उपयोग की जाने वाली नई निर्देशिका (छवि में नहीं) है /run/


18
+1 रिनविंड। मुझे छवि पसंद है, वास्तव में एक की तलाश थी।
लुइस अल्वाराडो

5
हा सोचा था कि ध्यान मिलेगा: + @LuisAlvarado
Rinzwind

4
एक बेहतर जवाब नहीं हो सकता है!
शशांक सावंत

1
नहीं था /mntक्या /media, अब है कि कुछ साल पहले?
रोबिनज

9
@ रॉबिनज: भिन्नता यह है कि /mntऐतिहासिक रूप से मैन्युअल रूप से प्रबंधित किया गया है। कई क्षणिक उपकरणों (फ्लैश ड्राइव, आदि) और ऑटो-माउंटिंग मानक बनने के साथ, माउंट पॉइंट को स्वचालित रूप से संभालने की आवश्यकता थी। मौजूदा मैनुअल कॉन्फ़िगरेशन के साथ संघर्ष से बचने के लिए एक नई निर्देशिका की आवश्यकता थी। इस प्रकार, इन दिनों /mntएक सुविधाजनक अस्थायी माउंट बिंदु प्रदान करने की भूमिका के लिए फिर से आरोपित किया गया है।
स्कॉट सेवेरेंस

104

इस कमांड को आज़माएं ...

man 7 hier

आप इस मैनुअल पेज को यहाँ भी देख सकते हैं: http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

आशा है ये मदद करेगा


1
अच्छा निर्णय! मैं हमेशा यह भूल जाता हूं कि एक हमेशा मौजूद रहता है (तब भी जब नेट डाउन होता है;))
रिनविंड

1
आदमी को "यह" नाम दिया जाना चाहिए। :)))
शिखी

man hierअब मेरे पसंदीदा आदेशों में से है! एफएचएस डोको की तुलना में स्पष्टीकरण मेरे लिए स्पष्ट हैं, विशेष रूप से are लोकल टू द मशीन ’और, साइट-वाइड’ के बीच, एक अनुभवहीन उबंटू उपयोगकर्ता के लिए, मध्यम डॉस / विंडोज अनुभव से पार करते हुए।
विसील

BTW संख्या 7 खंड के खड़ा अनेक वस्तुओं का संग्रह hier आदमी पेज के।
पाब्लो ए

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

45

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


फ्लोचार्ट का उत्पादन करने के लिए दिलचस्प और उपयोगी विचार, लेकिन दुर्भाग्य से यह कुछ मृत-समाप्त होता है। मेरा सवाल है कि अगर मैं प्रदर्शन कर रहा हूं तो मुझे mysqldumpफ़ाइल को कहां आउटपुट करना चाहिए?
BadHorsie

@BadHorsie बेशक यह हमेशा आपके विशिष्ट उपयोग के मामले पर निर्भर करेगा, लेकिन इसे एक /home/badhorsie/mysqldumpनिर्देशिका में डंप करना पर्याप्त होगा। यदि आप कई ऐप चला रहे हैं, तो आप प्रत्येक ऐप को चलाने के लिए एक नया उपयोगकर्ता बना सकते हैं और इसे उस ऐप / उपयोगकर्ता की homeनिर्देशिका में डंप कर सकते हैं ।
d4nyll

@ पैरानॉयड-पांडा, क्या आप इस बात पर थोड़ा विस्तार कर सकते हैं कि आप छवि को पूर्ण-रिज़ॉल्यूशन के माध्यम से क्लिक करने योग्य नहीं होने के लिए क्यों चुनते हैं? इस पोस्ट में एम्बेडेड संस्करण बहुत ज्यादा अपठनीय है।
वाल्ड्रियस

@waldyrious: यदि आप संशोधन इतिहास को देखते हैं तो आप देखेंगे कि मैंने केवल वर्तनी की गलती को सुधारा था, यह एक अन्य उपयोगकर्ता था जिसने इस विशेष तरीके से छवि को जोड़ा। मेरे साथ करने को कुछ भी नहीं। इसे बेझिझक संपादित करें, मैंने इसे क्लिक-सक्षम बनाने के लिए सही वाक्यविन्यास को याद नहीं किया है।

@ParanoidPanda ठीक यही मैंने किया है। मेरे संपादन ने टाइपो को ठीक किया और छवि को क्लिक करने योग्य बना दिया, और आपकी समीक्षा को अस्वीकार और संपादित करना था , इसलिए मेरा प्रश्न: छवि को क्लिक करने योग्य बनाने में आपने क्या गलत देखा?
वाल्ड्रियस

36

यह निम्नलिखित पाठ निर्देशिका संरचना को दर्शाता है।

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

यहाँ मुख्य घटक हैं:

  1. /boot : बूट लोडर समाहित करता है

  2. /home : उपयोगकर्ताओं के घर निर्देशिकाओं में शामिल है।

  3. /bin : सिस्टम पर सभी उपयोगकर्ताओं द्वारा उपयोग किए जाने वाले सभी निष्पादन योग्य बायनेरी और कमांड यहां स्थित हैं।

  4. /sbin : इसमें आमतौर पर सिस्टम प्रशासक द्वारा उपयोग की जाने वाली प्रणाली निष्पादन योग्य बायनेरी होती है।

  5. /lib : सिस्टम पुस्तकालयों को शामिल करता है जो बायनेरिज़ / बिन और / साइबिन में समर्थन करते हैं।

  6. /etc : नेटवर्क, बूट-टाइम आदि के लिए विन्यास फाइल समाहित करता है।

  7. /dev : इसमें डिवाइस फाइल्स यानी USB, टर्मिनल डिवाइस या सिस्टम से जुड़ी कोई अन्य डिवाइस यहां दिखाई गई है।

  8. /proc : चल रही प्रक्रिया के बारे में जानकारी शामिल है।

  9. /tmp: यह अस्थायी निर्देशिका है जहाँ कई प्रक्रियाएँ आवश्यक अस्थायी फ़ाइलें बनाती हैं। हर बार जब मशीन को बूट किया जाता है तो इसे शुद्ध किया जाता है।

अधिक जानकारी के लिए, Thegeekstuff लिंक जेनेरिक लिनक्स फाइल-सिस्टम को पूरी तरह से समझाता है।


20

\Usersके बराबर है /home। का नाम /usrएक ऐतिहासिक कलाकृति है।

के संयुक्त बराबर \Windowsऔर \Program Filesका संयोजन है /bin, /boot, /etc, /lib, /sbin, /tmp, /usrऔर /var। लिनक्स और विंडोज अलग से स्थापित सॉफ्टवेयर को विभाजित करते हैं। विंडोज ऑपरेटिंग सिस्टम और साथी कार्यक्रमों के बीच अंतर करता है। लिनक्स इस तरह से भेद नहीं करता है; यदि सभी सॉफ़्टवेयर उबंटू (वितरक) के माध्यम से नहीं आते हैं और एक ही डायरेक्टरी पदानुक्रम में स्थापित है, और चूंकि सॉफ़्टवेयर को पैकेज मैनेजर द्वारा ट्रैक किया जाता है, तो प्रत्येक प्रोग्राम को अपनी निर्देशिका में संग्रहीत करने की कोई आवश्यकता नहीं है। लिनक्स पर:

  • /etc सिस्टम कॉन्फ़िगरेशन फ़ाइलों के लिए है: कॉन्फ़िगरेशन फ़ाइलें जो सभी उपयोगकर्ताओं को प्रभावित करती हैं, चाहे वे ऑपरेटिंग सिस्टम पर संपूर्ण या किसी विशिष्ट एप्लिकेशन पर लागू हों।
  • /usr सिस्टम कोड और डेटा (प्रोग्राम, लाइब्रेरी, डॉक्यूमेंटेशन आदि) के लिए है।
  • /varपरिवर्तनशील या अस्थायी डेटा के लिए है: अस्थायी फ़ाइलें, लॉग, पैकेज मैनेजर डेटाबेस, प्रिंटर स्पूल, गेम सेव फाइल्स आदि। /tmpअस्थायी फ़ाइलों के लिए भी है जिन्हें रिबूट में मिटाया जा सकता है।
  • /bin, /libऔर /sbinरूट निर्देशिका में समकक्षों में है /usr। जो फ़ाइल बाहर /usrहैं, वे बूट प्रक्रिया में जल्दी आवश्यक हैं। यह उस समय से एक अवशेष है जब डिस्क छोटे थे और /usrनेटवर्क पर कई वर्कस्टेशनों के बीच साझा की गई फाइल सिस्टम पर हो सकती है, यह वास्तव में अधिकांश प्रणालियों पर उपयोगी अंतर नहीं है।
  • /boot कुछ फ़ाइलें हैं जो केवल ऑपरेटिंग सिस्टम को बूट करने के लिए आवश्यक हैं, और दिन-प्रतिदिन के ऑपरेशन के लिए नहीं।

अतिरिक्त निर्देशिकाएं हैं जो किसी भी चीज से मेल नहीं खाती हैं जो कि विंडोज के पास है:

  • /rootउपयोगकर्ता की होम डाइरेक्टरी है। रूट उपयोगकर्ता एक व्यवस्थापक खाता है जो किसी विशेष उपयोगकर्ता से बंधा नहीं है; यह उपयोगकर्ता है जिसे आप चलाते समय बदलते हैं sudo। उबंटू डिफ़ॉल्ट रूप से रूट उपयोगकर्ता को लॉग इन नहीं करने देता है।
  • /mediaऔर /mntआरोह बिंदु हैं: वे वे हैं जहाँ आप अन्य ऑपरेटिंग सिस्टम और रिमोट ड्राइव के फाइल सिस्टम देख सकते हैं। विंडोज समकक्ष अन्य ड्राइव अक्षर हैं।
  • /procऔर /sysसिस्टम जानकारी दिखाएं। विंडोज पर, आपको इस जानकारी को देखने के लिए मेनू या कॉल सिस्टम कमांड के माध्यम से वेड या थर्ड-पार्टी प्रोग्राम इंस्टॉल करना होगा।

उबंटू, अन्य लिनक्स वितरणों की तरह, आमतौर पर लिनक्स फाइलसिस्टम पदानुक्रम मानक का अनुसरण करता है ।


5

उबंटू (सभी यूनिक्स की तरह सिस्टम) एक पदानुक्रमित पेड़ में फाइलों का आयोजन करता है, जहां बच्चों और माता-पिता की टीमों में रिश्तों के बारे में सोचा जाता है। निर्देशिकाओं में अन्य निर्देशिकाओं के साथ-साथ नियमित फाइलें भी हो सकती हैं, जो पेड़ की "पत्तियां" हैं। पेड़ का कोई तत्व एक पथ नाम से संदर्भ हो सकता है; एक निरपेक्ष पथ नाम चरित्र के साथ शुरू होता है / (रूट निर्देशिका की पहचान करना, जिसमें अन्य सभी निर्देशिकाएं और फाइलें शामिल हैं), फिर प्रत्येक बच्चे की निर्देशिका जिसे तत्व तक पहुंचने के लिए ट्रैवर्स किया जाना चाहिए, प्रत्येक को एक / साइन द्वारा अलग किया जाता है।

एक रिश्तेदार पथ नाम वह है जो / के साथ शुरू नहीं होता है; उस स्थिति में, निर्देशिका ट्री को किसी दिए गए बिंदु से शुरू किया जाता है, जो संदर्भ के आधार पर बदलता है, जिसे वर्तमान निर्देशिका कहा जाता है। प्रत्येक निर्देशिका में, दो विशेष निर्देशिकाएँ होती हैं। और .., जो क्रमशः निर्देशिका के लिए और इसके मूल निर्देशिका के लिए संदर्भित करता है।

तथ्य यह है कि सभी फाइलों और निर्देशिकाओं का मतलब एक सामान्य जड़ है, भले ही सिस्टम पर कई अलग-अलग भंडारण उपकरण मौजूद हों, वे सभी को पेड़ में कहीं निर्देशिका के रूप में देखा जाता है, एक बार जब वे वांछित स्थान पर घुड़सवार होते हैं।

यहां उदाहरण और अधिक जानकारी प्राप्त करें :

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.