लिनक्स 'विंडोज प्रोग्राम फाइल्स के बराबर है?


179

विंडोज के तहत, अधिकांश एप्लिकेशन और एप्लिकेशन डेटा को एक विशेष निर्देशिका में संग्रहीत किया जाता है C:\Program Files(और कभी-कभी C:\Program Files (x86))। इस रास्ते के बराबर उबंटू / लिनक्स क्या है? वहाँ भी एक है?


2
यदि आप जानना चाहते हैं कि विशिष्ट पैकेज की फाइलें कहां हैं, तो आप Synaptic पैकेज प्रबंधक का उपयोग कर सकते हैं। बस पैकेज की खोज करें, और इसकी स्थापित फाइलें देखें।
Asmerito

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

4
संबंधित (लेकिन शायद एक डुप्लिकेट नहीं माना जाना चाहिए): उबंटू फाइल सिस्टम लेआउट को कैसे समझें?
एलियाह कगन

जवाबों:


104

/binऔर /usr/binवह जगह है जहां स्क्रिप्ट है कि कार्यक्रमों को शुरू करते हैं। "प्रोग्राम फाइल्स" के प्रत्यक्ष समकक्ष हालांकि संभवतः /usr/share( फाइलसिस्टम पदानुक्रम मानक देखें )। उस निर्देशिका में अधिकांश कार्यक्रमों के लिए विभिन्न समर्थन फाइलें हैं।

Nautilus दिखा / usr / शेयर

संभवतः कोई प्रत्यक्ष समकक्ष नहीं है, क्योंकि, उदाहरण के लिए, लाइब्रेरी फ़ाइलों को सिस्टम में ( /lib) में साझा किया जाता है और विकल्प या तो उपयोगकर्ता द्वारा निर्दिष्ट (उपयोगकर्ता के होम निर्देशिका में) या सार्वभौमिक रूप से स्थित होते हैं /etc

इसलिए एक डिबेट फ़ाइल, रिपॉजिटरी या बिल्ड के माध्यम से एक प्रोग्राम स्थापित करने से इन सभी स्थानों में फ़ाइलों को रखने की संभावना होगी।

[संपादित करें] और दूसरों के रूप में, नोट भी है /sbinऔर /usr/sbin। प्लस /usr/local/bin, /opt/binऔर यहां तक ​​कि /usr/games/। तो निश्चित रूप से प्रत्यक्ष तुलना नहीं c:\program files!


4
कैसे के बारे में /opt? मैंने देखा है कि एक समान तरीके से पहले कई (आमतौर पर बंद-स्रोत या ऐप-आधारित) कार्यक्रमों को पकड़ो Program Files
कुपियाकोस

ऐसा लगता है कि उबंटू सॉफ्टवेयर सेंटर के आगमन के साथ, अपने खेल को वहां पहुंचाने के लिए, निश्चित रूप से। लेकिन फिर भी, शायद ही प्रत्यक्ष तुलना, वास्तव में, क्या यह है? इन दिनों हालांकि निकटतम बात हो सकती है।
Scaine

निर्देशिका क्या है इसके लिए askubuntu.com/a/294492/41499 देखें /opt
गेरहार्ड बर्गर

/usr/local/binसॉफ़्टवेयर के लिए एक सामान्य स्थान है जो आमतौर पर उपयोगकर्ता / कंपनी द्वारा उपयोग नहीं किया जा सकता है।
मार्क स्टीवर्ट

और यह ओएस विंडोज से बेहतर कैसे है? मैंने इसे वेब डेवेलपमेंट के लिए यह शर्त लगाने की कोशिश की है। लेकिन मैं उन पदानुक्रम चीजों को नहीं समझ सकता ... मैंने PhpStorm स्थापित किया है और यह अब 1238128 फ़ोल्डरों में है ..
टोमा टोमोव

84

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


6
इस जवाब को नजरअंदाज किया जाता है यह शीर्ष पर होना चाहिए।
वोल्डेमॉर्ट

83

संपादित करें: एक उत्कृष्ट और शुरुआती-अनुकूल मानचित्र के लिए नीचे d4nyll का उत्तर भी देखें !

PATHपर्यावरण चर क्या है, क्या .desktopफाइलें हैं, और विभिन्न लिनक्स कमांड्स का उपयोग करके एक विशिष्ट कार्यक्रम कैसे प्राप्त करें के बारे में अधिक जानकारी के लिए नीचे दिए गए मेरे जवाब पढ़ें ।

मूल उत्तर:


कोई सरल उत्तर नहीं है।

/bin, /usr/binऔर/usr/share

के रूप में अन्य उत्तर में उल्लेख किया है, तो आप के अंतर्गत सबसे निष्पादनयोग्य पा सकते हैं /binया /usr/bin, और समर्थन फ़ाइलों में स्थापित कर रहे हैं /usr/share

/usr/local तथा /opt

हालांकि अधिक निर्देशिकाएं हैं जिनमें उबंटू अनुप्रयोग स्थापित करता है। PATHचर, जो एक में प्रवेश किया आदेश के लिए खोज करने के लिए जहां निर्धारित करता है, तो आप एक सुराग दे सकता है, मेरा तरह लग रहा है ( echo $PATHएक टर्मिनल में):

/usr/local/cuda/bin:/usr/local/texlive/2012/bin/x86_64-linux:/usr/games:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

जैसा कि आप देख सकते हैं कि कुछ सॉफ़्टवेयर स्थापित हैं /usr/localऔर उनकी अपनी निर्देशिका और है bin। एक और जगह जहां कई कार्यक्रम स्थापित किए जाते हैं /opt। इन स्थानों के गुणों को फाइलसिस्टम पदानुक्रम मानक द्वारा समझाया गया है , जो बहुत अच्छा पढ़ा गया है। दुर्भाग्य से, के बीच का अंतर /optऔर /usr/localबहुत अच्छी तरह से समझाया नहीं गया है, यूनिक्स स्टैकएक्सचेंज पर किसी ने अधिक विस्तृत विवरण दिया था:

  • /usr/localआमतौर पर मेक कमांड का उपयोग करके प्रशासक द्वारा निर्मित फाइलों को स्थापित करने के लिए एक जगह है। यह विचार उन फाइलों के साथ टकराव से बचने का है जो ऑपरेटिंग सिस्टम का हिस्सा हैं जो या तो ओवरराइट हो जाएंगे या स्थानीय लोगों को अधिलेखित कर देंगे। जैसे। /usr/bin/fooओएस /usr/local/bin/fooका एक हिस्सा है, जबकि एक स्थानीय विकल्प है,
  • /optएक निर्देशिका है जो अपने स्वयं के उपनिर्देशिका में प्रत्येक अप्रकाशित पैकेज को स्थापित करने के लिए है। वे पहले से ही एक स्वतंत्र तीसरे पक्ष के सॉफ्टवेयर वितरक द्वारा प्रदान किए गए पूरे पैकेज बनाए गए हैं। उदाहरण के लिए someappमें स्थापित किया जाएगा /opt/someapp, इसका एक कमांड /opt/someapp/bin/foo[और फिर आमतौर पर एक प्रतीकात्मक लिंक में एक binनिर्देशिका में बनाया जाता है PATH, या प्रोग्राम को डेस्कटॉप फ़ाइल (नीचे देखें) से बुलाया जाता है।

एक विशिष्ट कार्यक्रम या आदेश ढूँढना

.desktop फ़ाइलें

यह पता लगाने के लिए कि एक विशिष्ट प्रोग्राम कहाँ स्थापित है, आप कई चरणों को कर सकते हैं। सबसे पहले आपको इसकी .desktopफाइल ढूंढनी होगी । विंडोज में शॉर्टकट्स के लिए डेस्कटॉप फाइलें सिमुलर होती हैं, और सिस्टम एप्लिकेशन के लिए वे इसमें स्थित होते हैं /usr/share/applications। उन अनुप्रयोगों के लिए डेस्कटॉप फाइलें जो केवल वर्तमान उपयोगकर्ता के लिए उपलब्ध हैं ~/.local/share/applications। उदाहरण के लिए Google Chrome लें, जिसमें डेस्कटॉप फ़ाइल है /usr/share/applications/google-chrome.desktopऔर जो लाइन शुरू होती है उसकी तलाश करें Exec=, यह निर्धारित करता है कि Google Chrome कैसे शुरू किया जाए। इसे कहते हैं:

Exec=/opt/google/chrome/google-chrome

तो आपको पता है कि Google Chrome में है /opt

अब मोज़िला फ़ायरफ़ॉक्स के लिए जो में स्थित है /usr/share/applications/firefox.desktop। यह बस कहता है

Exec=firefox %u

पहली बार में यह इतना मदद नहीं करता है, लेकिन फिर आपको एहसास होता है कि firefoxएक ऐसी निर्देशिका में होना चाहिए जो PATHचर में हो (सबसे अधिक संभावना है bin), और हम इसे देख सकते हैं (नीचे देखें)।

आदेशों को देख रहे हैं

आदेशों को देखने के लिए आप एक या निम्न में अधिक उपयोग कर सकते हैं: type, whichऔर whereis(मैं उनके मार्गदर्शन पृष्ठों के लिए एक लिंक शामिल किया है ऑनलाइन)।

  • प्रकार : यह एक कमांड का वर्णन करता है, और इंगित करता है कि कमांड नाम के रूप में इसका उपयोग कैसे किया जाएगा। एक कमांड के लिए संभावित प्रकार हैं:

    1. उपनाम (शेल उर्फ)
    2. फ़ंक्शन (शेल फ़ंक्शन)
    3. बिलिन (शेल बिलिन)
    4. फ़ाइल (डिस्क फ़ाइल)
    5. कीवर्ड (शेल आरक्षित शब्द)

    (प्रकार स्वयं एक शेल बिल्डिन है, इसे इसके साथ आज़माएँ type type: P)

    निष्पादन type firefoxहमें देता है

    firefox is /usr/bin/firefox
    

    जो हम जानना चाहते थे

यदि कोई कमांड एक फाइल है (जिसे आपने चेक किया था type) तो आप भी उपयोग कर सकते हैं:

  • जो : कमांड का पूरा रास्ता दिखाता है,

    निष्पादन which firefoxहमें देता है

     /usr/bin/firefox
    
  • जहाँ : बाइनरी, स्रोत और मैनुअल पेज फ़ाइलों को एक कमांड के लिए खोजें।

    निष्पादन whereis firefoxहमें देता है

    firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
    

बोनस

आप के /usr/bin/firefoxसाथ करीब का निरीक्षण कर सकते हैं ls -l /usr/bin/firefoxऔर यह देता है:

/usr/bin/firefox -> ../lib/firefox/firefox.sh*

ऐसा प्रतीत होता है कि /usr/bin/firefoxयह 'केवल' लिपि की प्रतीकात्मक कड़ी है /usr/lib/firefox/firefox.sh। यदि आप उस स्क्रिप्ट का निरीक्षण करते हैं जो आपको पता चलता है कि स्क्रिप्ट कॉल करती है /usr/lib/firefox/firefox
अब आप शांति में रह सकते हैं :)


बहुत अच्छा जवाब। एक प्रश्न, प्रतीकात्मक लिंक क्या है? क्या यह विंडोज शॉर्टकट के बराबर है?
काजी इरफान

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

प्रतीकात्मक लिंक और इसके विपरीत .desktop फ़ाइल का उपयोग कोई क्यों करेगा?
क़ाज़ी इरफ़ान

1
@iamcreasy .desktop फ़ाइलें आप अतिरिक्त जानकारी जोड़ सकते हैं, जैसे विवरण और आइकन (यहां एक उदाहरण देखें: standard.freedesktop.org/desktop-entry-spec/latest/apa.html ), यह एक 'नियमित' फ़ाइल है । एक प्रतीकात्मक लिंक एक 'विशेष' फ़ाइल है जो केवल दूसरी फ़ाइल से लिंक करती है। मुझे यह ठीक से समझाना कठिन लगता है, लेकिन शायद आप यहाँ एक बेहतर उत्तर पा सकते हैं: superuser.com/questions/253935/…
गेरहार्ड बर्गर

18

कोई एकल निर्देशिका नहीं है जो प्रोग्राम फ़ाइल फ़ोल्डर के बिल्कुल बराबर है । जिस तरह से लिनक्स चीजों की व्यवस्था करता है वह विंडोज से बहुत अलग है।

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

लेकिन लिनक्स में जब कोई प्रोग्राम इंस्टॉल होता है, तो अलग-अलग जगहों पर अलग-अलग तरह की फाइलें कॉपी की जाती हैं। Executables की प्रतिलिपि / usr / bin , लाइब्रेरी फ़ाइलों को / usr / lib , प्रलेखन को एक या अधिक / usr / आदमी , / usr / जानकारी और / usr / doc पर कॉपी की जाती है । यदि कॉन्फ़िगरेशन फ़ाइलें हैं, तो वे आमतौर पर उपयोगकर्ता के होम डायरेक्टरी या / आदि में होती हैं


क्या फ़ाइलों के संबंध में उनके आवेदन के आधार पर फाइलों के इस समूहीकरण का कोई कारण है जो फाइलों से संबंधित हैं? क्या "यूनिक्स फ़ाइल ग्रुपिंग स्टाइल" आम तौर पर सिस्टम प्रशासक के दृष्टिकोण से अधिक सुविधाजनक है?
जोजमैन

1
ज़रुरी नहीं। इसकी एक डिजाइन पसंद है कि उन्होंने मुझे लगता है। हालांकि यह "आदमी", "जानकारी" या कई अन्य जैसी उपयोगिताओं को सक्षम बनाता है जो इस फ़ाइल संरचना पर निर्भर करते हैं। उदाहरण के लिए "आदमी" जानता है कि प्रत्येक कमांड के लिए दस्तावेज कहां देखें। यदि डॉक्स का कोई मानक स्थान नहीं है, तो आदमी काम नहीं कर सकता है।
BinW

10

C:\Program Filesफ़ोल्डर होगा /usr/binउबंटू में। /binअधिक पसंद है C:\windows

फाइलसिस्टम पदानुक्रम के मैनुअल पेज से :

/bin      This directory contains executable programs which are needed  in
          single user mode and to bring the system up or repair it.
/usr/bin
          This is the primary directory  for  executable  programs.   Most
          programs  executed  by  normal  users  which  are not needed for
          booting or for repairing the system and which are not  installed
          locally should be placed in this directory.

उबंटू में खिड़कियों की तुलना में एक अलग संरचना है। Ubuntu एक निर्देशिका में लगभग सभी अनुप्रयोगों को रखता है, कहते हैं /usr/bin। विंडोज एक नया फ़ोल्डर बनायेगा, कहेगा Mozilla Firefox, और इसमें विन्यास, निष्पादक, DLL, चित्र इत्यादि जोड़ देगा। उबंटू उन्हें विभाजित करता है, निष्पादक अंदर जाते हैं /usr/bin, सिस्टम-वाइड कॉन्फ़िगरेशन में /etc, साझा किए गए ऑब्जेक्ट /usr/lib, छवियों में /usr/share...


5

लिनक्स 'प्रोग्राम फाइल्स' पूरे पदानुक्रम में है। यह हो सकता है पर /usr/bin, /bin, /opt/..., या किसी अन्य निर्देशिका में।

मुझे लगता है कि आप अपने आवेदन से संबंधित कुछ फ़ाइल खोजने जा रहे हैं। फिर, मेरे पास एक विचार है कि प्रोग्राम इंस्टॉलेशन पर स्थापित फ़ाइलों को कैसे देखा जाए।

  1. टर्मिनल पर synapticजारी करके स्थापित करें sudo apt-get install synaptic
  2. आप जो पैकेज चाहते हैं, उसे खोज टेक्स्ट इनपुट पर खोजें।
  3. पैकेज को राइट-क्लिक करें और चुनें Properties
  4. Installed Fileटैब पर जाएं । परिणाम वही है dpkg -L package_name
  5. आपको पैकेज के लिए स्थापित सभी फाइलें मिलेंगी।

ऐसा इसलिए है क्योंकि लिनक्स स्थापित फ़ाइल को उनके प्रकार के आधार पर अलग से निर्देशिकाओं में ले जाता है।

  • निष्पादन को जाता है /usr/binया /bin
  • आइकन स्थानीय के लिए /usr/share/iconsया पर जाता है ~/.local/share/icons
  • पूरे आवेदन (पोर्टेबल) पर /opt
  • शॉर्टकट आमतौर पर /usr/share/applicationsया पर~/.local/share/applications
  • पर प्रलेखन /usr/share/doc
  • लाइब्रेरी / मॉड्यूल पर /usr/lib

और कई अन्य निर्देशिकाएं। (CMIIW, सुधार स्वीकार करते हुए)


3

इस जवाब में जब मैं यूनिक्स कहता हूं तो मेरा मतलब यूनिक्स के साथ-साथ यूनिक्स जैसा ऑपरेटिंग सिस्टम है।

उबंटू में वास्तव में एक प्रोग्राम फ़ोल्डर नहीं है जिसमें प्रत्येक प्रोग्राम के लिए सभी डेटा हैं। यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में, हर फाइल एक टर्मिनल कमांड है। वे भी फाइल कर रहे हैं। जिस तरह से यूनिक्स कार्यक्रमों को संभालता है वह बहुत अव्यवस्थित हो सकता है, और एक ही समय में आयोजित किया जा सकता है।

कार्यक्रमों के लिए आइकन / usr / शेयर / आइकन / * में संग्रहीत किए जाते हैं, प्रोग्राम निष्पादन योग्य आमतौर पर / usr / bin, / bin में संग्रहीत किए जाते हैं, और बिन निर्देशिकाओं के साथ अन्य स्थान (बिन बाइनरी के लिए obv छोटा है)। लाइब्रेरी जो प्रोग्राम पर निर्भर करती हैं, वे / lib में हैं।

तो आप एक कार्यक्रम के लिए सभी डेटा वाले निर्देशिका के साथ समाप्त नहीं होते हैं, लेकिन कार्यक्रम के लिए डेटा फैल गया है। जबकि पहले यह बहुत अव्यवस्थित लगता है, यह पुस्तकालयों और आइकन जैसी मानक चीजों को साझा करने की अनुमति देता है।

प्रत्येक फ़ाइल के लिए अनुमतियों के लिए धन्यवाद, सब कुछ एक फ़ाइल होने का विचार ईमानदार होना बहुत ही शानदार है। यह यूनिक्स MUCH को अन्य ऑपरेटिंग सिस्टम की तुलना में अधिक सुरक्षित बनाता है।


3

जिस तरह से लिनक्स और विंडोज प्रोग्राम इंस्टॉल होते हैं, वह काफी अलग होता है।

विंडोज में सामान्य पैटर्न एक प्रोग्राम के लिए है; या कार्यक्रमों का एक गुच्छा, एक विक्रेता से C: \ प्रोग्राम \ विक्रेता या कुछ इसी तरह अपनी उप निर्देशिका में जाता है।

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

इसलिए नियमित लिनक्स कार्यान्वयन में उस विंडोज निर्देशिका संरचना के बराबर कोई वास्तविक नहीं है।


2

यदि आप स्वयं प्रोग्राम स्थापित करते हैं, तो मैं 1 फ़ोल्डर सुझाता हूं:


-2

में देखो /bin, /usr/bin, और कुछ और है कि कहते हैं bin

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