विंडोज के तहत, अधिकांश एप्लिकेशन और एप्लिकेशन डेटा को एक विशेष निर्देशिका में संग्रहीत किया जाता है C:\Program Files
(और कभी-कभी C:\Program Files (x86)
)। इस रास्ते के बराबर उबंटू / लिनक्स क्या है? वहाँ भी एक है?
विंडोज के तहत, अधिकांश एप्लिकेशन और एप्लिकेशन डेटा को एक विशेष निर्देशिका में संग्रहीत किया जाता है C:\Program Files
(और कभी-कभी C:\Program Files (x86)
)। इस रास्ते के बराबर उबंटू / लिनक्स क्या है? वहाँ भी एक है?
जवाबों:
/bin
और /usr/bin
वह जगह है जहां स्क्रिप्ट है कि कार्यक्रमों को शुरू करते हैं। "प्रोग्राम फाइल्स" के प्रत्यक्ष समकक्ष हालांकि संभवतः /usr/share
( फाइलसिस्टम पदानुक्रम मानक देखें )। उस निर्देशिका में अधिकांश कार्यक्रमों के लिए विभिन्न समर्थन फाइलें हैं।
संभवतः कोई प्रत्यक्ष समकक्ष नहीं है, क्योंकि, उदाहरण के लिए, लाइब्रेरी फ़ाइलों को सिस्टम में ( /lib
) में साझा किया जाता है और विकल्प या तो उपयोगकर्ता द्वारा निर्दिष्ट (उपयोगकर्ता के होम निर्देशिका में) या सार्वभौमिक रूप से स्थित होते हैं /etc
।
इसलिए एक डिबेट फ़ाइल, रिपॉजिटरी या बिल्ड के माध्यम से एक प्रोग्राम स्थापित करने से इन सभी स्थानों में फ़ाइलों को रखने की संभावना होगी।
[संपादित करें] और दूसरों के रूप में, नोट भी है /sbin
और /usr/sbin
। प्लस /usr/local/bin
, /opt/bin
और यहां तक कि /usr/games/
। तो निश्चित रूप से प्रत्यक्ष तुलना नहीं c:\program files
!
/opt
? मैंने देखा है कि एक समान तरीके से पहले कई (आमतौर पर बंद-स्रोत या ऐप-आधारित) कार्यक्रमों को पकड़ो Program Files
।
/opt
।
/usr/local/bin
सॉफ़्टवेयर के लिए एक सामान्य स्थान है जो आमतौर पर उपयोगकर्ता / कंपनी द्वारा उपयोग नहीं किया जा सकता है।
उत्तर उत्तर - मैंने शुरुआती लोगों का अनुसरण करने के लिए एक रोडमैप बनाया है। यदि वे एक फ़ाइल की तलाश कर रहे हैं, लेकिन यह नहीं जानते कि कहाँ देखना है, तो वे मानचित्र का उपयोग मोटे तौर पर नेविगेट करने के लिए कर सकते हैं। आप यहां एक हाई-रेस पीएनजी डाउनलोड कर सकते हैं । आप संबंधित पोस्ट यहां पा सकते हैं । मैं समय और अनुमति के बाद, उपयोगी टिप्पणियों को शामिल करते हुए फाइल और पोस्ट दोनों को अपडेट करता रहूंगा।
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
(मैं उनके मार्गदर्शन पृष्ठों के लिए एक लिंक शामिल किया है ऑनलाइन)।
प्रकार : यह एक कमांड का वर्णन करता है, और इंगित करता है कि कमांड नाम के रूप में इसका उपयोग कैसे किया जाएगा। एक कमांड के लिए संभावित प्रकार हैं:
(प्रकार स्वयं एक शेल बिल्डिन है, इसे इसके साथ आज़माएँ 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
।
अब आप शांति में रह सकते हैं :)
कोई एकल निर्देशिका नहीं है जो प्रोग्राम फ़ाइल फ़ोल्डर के बिल्कुल बराबर है । जिस तरह से लिनक्स चीजों की व्यवस्था करता है वह विंडोज से बहुत अलग है।
विंडोज़ में, हम जो भी प्रोग्राम इंस्टॉल करते हैं, उसे प्रोग्राम फाइल्स डायरेक्टरी के अंदर अपनी खुद की डायरेक्टरी मिलती है। उस निर्देशिका में, विभिन्न प्रकार की फ़ाइलों के लिए आगे उप-निर्देशिकाएँ बनाई जाती हैं। उप-निर्देशिकाओं के लिए कोई निश्चित संरचना नहीं है। कार्यक्रम खुद तय करते हैं कि वे प्रत्येक निर्देशिका को क्या कॉल करना चाहते हैं और वे क्या रखना चाहते हैं।
लेकिन लिनक्स में जब कोई प्रोग्राम इंस्टॉल होता है, तो अलग-अलग जगहों पर अलग-अलग तरह की फाइलें कॉपी की जाती हैं। Executables की प्रतिलिपि / usr / bin , लाइब्रेरी फ़ाइलों को / usr / lib , प्रलेखन को एक या अधिक / usr / आदमी , / usr / जानकारी और / usr / doc पर कॉपी की जाती है । यदि कॉन्फ़िगरेशन फ़ाइलें हैं, तो वे आमतौर पर उपयोगकर्ता के होम डायरेक्टरी या / आदि में होती हैं ।
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
...
लिनक्स 'प्रोग्राम फाइल्स' पूरे पदानुक्रम में है। यह हो सकता है पर /usr/bin
, /bin
, /opt/...
, या किसी अन्य निर्देशिका में।
मुझे लगता है कि आप अपने आवेदन से संबंधित कुछ फ़ाइल खोजने जा रहे हैं। फिर, मेरे पास एक विचार है कि प्रोग्राम इंस्टॉलेशन पर स्थापित फ़ाइलों को कैसे देखा जाए।
synaptic
जारी करके स्थापित करें sudo apt-get install synaptic
।Properties
।Installed File
टैब पर जाएं । परिणाम वही है dpkg -L package_name
।ऐसा इसलिए है क्योंकि लिनक्स स्थापित फ़ाइल को उनके प्रकार के आधार पर अलग से निर्देशिकाओं में ले जाता है।
/usr/bin
या /bin
।/usr/share/icons
या पर जाता है ~/.local/share/icons
।/opt
।/usr/share/applications
या पर~/.local/share/applications
/usr/share/doc
/usr/lib
और कई अन्य निर्देशिकाएं। (CMIIW, सुधार स्वीकार करते हुए)
इस जवाब में जब मैं यूनिक्स कहता हूं तो मेरा मतलब यूनिक्स के साथ-साथ यूनिक्स जैसा ऑपरेटिंग सिस्टम है।
उबंटू में वास्तव में एक प्रोग्राम फ़ोल्डर नहीं है जिसमें प्रत्येक प्रोग्राम के लिए सभी डेटा हैं। यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में, हर फाइल एक टर्मिनल कमांड है। वे भी फाइल कर रहे हैं। जिस तरह से यूनिक्स कार्यक्रमों को संभालता है वह बहुत अव्यवस्थित हो सकता है, और एक ही समय में आयोजित किया जा सकता है।
कार्यक्रमों के लिए आइकन / usr / शेयर / आइकन / * में संग्रहीत किए जाते हैं, प्रोग्राम निष्पादन योग्य आमतौर पर / usr / bin, / bin में संग्रहीत किए जाते हैं, और बिन निर्देशिकाओं के साथ अन्य स्थान (बिन बाइनरी के लिए obv छोटा है)। लाइब्रेरी जो प्रोग्राम पर निर्भर करती हैं, वे / lib में हैं।
तो आप एक कार्यक्रम के लिए सभी डेटा वाले निर्देशिका के साथ समाप्त नहीं होते हैं, लेकिन कार्यक्रम के लिए डेटा फैल गया है। जबकि पहले यह बहुत अव्यवस्थित लगता है, यह पुस्तकालयों और आइकन जैसी मानक चीजों को साझा करने की अनुमति देता है।
प्रत्येक फ़ाइल के लिए अनुमतियों के लिए धन्यवाद, सब कुछ एक फ़ाइल होने का विचार ईमानदार होना बहुत ही शानदार है। यह यूनिक्स MUCH को अन्य ऑपरेटिंग सिस्टम की तुलना में अधिक सुरक्षित बनाता है।
जिस तरह से लिनक्स और विंडोज प्रोग्राम इंस्टॉल होते हैं, वह काफी अलग होता है।
विंडोज में सामान्य पैटर्न एक प्रोग्राम के लिए है; या कार्यक्रमों का एक गुच्छा, एक विक्रेता से C: \ प्रोग्राम \ विक्रेता या कुछ इसी तरह अपनी उप निर्देशिका में जाता है।
लिनक्स में, आपकी फ़ाइलों को उनके फ़ंक्शन के आधार पर विशिष्ट उप निर्देशिकाओं के बीच विभाजित किया जाता है। लाइब्रेरी, आइकन, मैन पेज, लॉग फाइल, कॉन्फ़िगरेशन इत्यादि के लिए निर्देशिकाएं हैं। आप उनमें से कुछ का उपयोग कर सकते हैं, लेकिन सिस्टम उन सभी का प्रबंधन करेगा। वे एक साथ युग्मित नहीं हैं, लेकिन अन्य कार्यक्रमों से समान फ़ाइलों के साथ मौजूद हैं।
इसलिए नियमित लिनक्स कार्यान्वयन में उस विंडोज निर्देशिका संरचना के बराबर कोई वास्तविक नहीं है।