Windows altında, çoğu uygulama ve uygulama verisi C:\Program Files(ve ara sıra C:\Program Files (x86)) olarak bilinen özel bir dizinde saklanır . Ubuntu / Linux bu yola eşdeğer nedir? Bir tane var mı?
Windows altında, çoğu uygulama ve uygulama verisi C:\Program Files(ve ara sıra C:\Program Files (x86)) olarak bilinen özel bir dizinde saklanır . Ubuntu / Linux bu yola eşdeğer nedir? Bir tane var mı?
Yanıtlar:
/binve /usr/binbetiklerin programları başlatan yerdir. "Program Files" ın doğrudan eşdeğeri de muhtemelen /usr/share( bkz. Dosya Sistemi Hiyerarşisi Standardı ). Bu dizinde çoğu program için çeşitli destek dosyaları bulunur.

Bununla birlikte, muhtemelen doğrudan bir eşdeğeri yoktur, çünkü, örneğin, kütüphane dosyaları sistem (in /lib) boyunca paylaşılır ve seçenekler ya kullanıcı tarafından belirlenir (kullanıcının giriş dizininde) ya da evrensel olarak bulunur /etc.
Bu nedenle bir programın bir deb dosyası, havuz veya derleme aracılığıyla kurulması, muhtemelen bu konumların tümüne dosya yerleştirecektir.
[EDIT] Diğerlerinin de belirttiği gibi, /sbinve de var /usr/sbin. Artı /usr/local/bin, /opt/binhatta /usr/games/. Bu yüzden kesinlikle doğrudan bir karşılaştırma c:\program files!
/opt? Daha önce benzer şekilde birçok (genellikle kapalı kaynaklı veya uygulama tabanlı) program bulunduğunu gördüm Program Files.
/usr/local/binbir kullanıcı / şirket tarafından yaygın olarak kullanılamayan yazılımlar için yarı yaygın bir konumdur.
Geç Cevap - Yeni başlayanların izlemesi için bir yol haritası oluşturdum. Bir dosya arıyorlar ancak nereye bakacaklarını bilmiyorlarsa, kabaca gezinmek için haritayı kullanabilirler. Bir res res PNG'yi buradan indirebilirsiniz . İlgili yazıyı burada bulabilirsiniz . Yararlı yorumları içerdiğinde, zaman izin verdiği zaman hem dosyayı hem de postayı güncellemeye devam edeceğim.
PATHOrtam değişkeninin ne olduğu, .desktopdosyaların ne olduğu ve çeşitli linux komutlarını kullanarak belirli bir programın nasıl bulunacağı hakkında daha fazla bilgi için aşağıdaki cevabımı okuyun .
Orijinal cevap:
/bin, /usr/binVe/usr/shareDiğer cevaplarda da belirtildiği gibi, çoğu altında /binveya altında yürütülebilir dosyaları bulabilirsiniz /usr/binve destek dosyaları yüklenir /usr/share.
/usr/local ve /optAncak Ubuntu'nun uygulamaları yüklediği daha fazla dizin var. PATHNerede girilen komutu aramak için belirler değişken, bir ipucu verebilir, maden (benzeyen echo $PATHbir terminal):
/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
Gördüğünüz gibi bazı yazılımlar yüklü /usr/localve kendi dizinleri var ve bin. Birçok programın kurulu olduğu başka bir yer var /opt. Bu konumların özellikleri, çok iyi bir okuma olan Dosya Sistemi Hiyerarşisi Standardı tarafından açıklanmaktadır . Ne yazık ki, arasındaki /optve /usr/localçok iyi açıklanmayan arasındaki fark , unix stackexchange'teki birisinin daha ayrıntılı bir açıklaması oldu:
/usr/localgenellikle make komutunu kullanarak yönetici tarafından oluşturulan dosyaları kurabileceğiniz bir yerdir. Fikir, işletim sistemlerinin bir parçası olan ya da üzerine yazılacak ya da üzerine yazılacak yerel sistemlerin üzerine yazacak dosyaların çakışmasını önlemektir. Örneğin. yerel bir alternatif /usr/bin/fooiken işletim sisteminin bir parçası/usr/local/bin/foo/opther biri kendi alt dizininde birleştirilmemiş paketleri yüklemek için kullanılan bir dizindir. Bunlar zaten bağımsız bir üçüncü taraf yazılım distribütörü tarafından sağlanan bütün paketleri inşa ediyorlar. Örneğin someapp, içine yüklenecek /opt/someappolan komutun bir tanesi /opt/someapp/bin/foo[ve ardından genellikle bindizin içindeki dizinlerden birinde sembolik bir bağlantı kurulur PATHya da program bir masaüstü dosyasından çağrılır (aşağıya bakınız)]..desktop DosyalarBelirli bir programın nereye yüklendiğini bulmak için birkaç adım yapabilirsiniz. İlk önce .desktopdosyasını bulmanız gerekir . Masaüstü dosyaları, Windows'taki kısayollara ve bulundukları sistem uygulamalarına benzerdir /usr/share/applications. Geçerli kullanıcı için kullanılabilir uygulamalar için masaüstü dosyaları içindedir ~/.local/share/applications. Örneğin, masaüstü dosyasına sahip olan Google Chrome'u kullanın ve başlangıçtaki /usr/share/applications/google-chrome.desktopsatırı arayın. Exec=Bu, Google Chrome'un nasıl başlatılacağını belirler. Diyor ki:
Exec=/opt/google/chrome/google-chrome
Yani Google Chrome'un içeride olduğunu biliyorsunuz /opt.
Şimdi bulunan Mozilla Firefox için /usr/share/applications/firefox.desktop. Sadece diyor ki
Exec=firefox %u
İlk başta bu kadar yardımcı görünmüyor, ancak daha sonra değişkende (muhtemelen a ) değişken firefoxolan bir dizinde olması gerektiğini fark edersiniz ve biz de onu görebiliriz (aşağıya bakınız).PATHbin
Komutları aramak için aşağıdakilerden birini veya birkaçını kullanabilirsiniz: type, whichve whereis(ı çevrimiçi kendi el sayfalara bir bağlantı yer verdik).
type : bir komutu açıklar ve bir komut adı olarak kullanılırsa nasıl yorumlanacağını gösterir. Bir komut için olası türler:
(type kendisi bir kabuk yerleşiktir, şunu deneyin type type: P)
Yürütmek type firefoxbize verir
firefox is /usr/bin/firefox
bu bilmek istediğimiz şey
Bir komut (kontrol ettiğiniz) bir dosyaysa, typeaşağıdakileri de kullanabilirsiniz:
hangi : komutun tam yolunu gösterir,
Yürütmek which firefoxbize verir
/usr/bin/firefox
whereis : Bir komut için ikili, kaynak ve manuel sayfa dosyalarını bulun.
Yürütmek whereis firefoxbize verir
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
Bonus
İle /usr/bin/firefoxdaha yakından incelemek ls -l /usr/bin/firefoxve bu verir:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Görünüşe göre /usr/bin/firefoxsenaryo için 'sadece' sembolik bir bağlantı var /usr/lib/firefox/firefox.sh. Eğer betiği incelerseniz betiğin çağırdığını keşfedersiniz /usr/lib/firefox/firefox.
Şimdi huzur içinde yatsın :)
Program Files klasörünün tam karşılığı olan tek bir dizin yoktur . Linux'un işleri düzenleme şekli Windows'dan çok farklı.
Pencerelerde, yüklediğimiz her program kendi Program dizininde kendi dizinine girer. Bu dizinde, farklı dosya türleri için daha fazla alt dizin oluşturulur. Alt dizinler için sabit bir yapı yoktur. Programlar kendileri için her dizine neyi çağırmak istediklerini ve neyi nereye koymak istediklerine karar verirler.
Ancak, bir program yüklendiğinde Linux'ta, farklı tür dosyalar farklı konumlara kopyalanır. Yürütülebilir dosyalar / usr / bin , kütüphane dosyalarına / usr / lib dizinine , / usr / man , / usr / info ve / usr / doc dizinlerinden birine veya daha fazlasına kopyalanır . Yapılandırma dosyaları varsa, bunlar genellikle kullanıcının giriş dizininde veya / etc içindedir .
C:\Program FilesKlasör olacaktır /usr/binUbuntu. /bindaha çok benziyor C:\windows.
Gönderen dosya sistemi hiyerarşisi manuel sayfa :
/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, pencerelerden farklı bir yapıya sahiptir. Ubuntu hemen hemen tüm uygulamaları bir dizine yerleştirir /usr/bin. Windows yeni bir klasör oluşturur, bunları söyler Mozilla Firefoxve içine yapılandırma, çalıştırılabilir dosyalar, DLL'ler, görüntüler vb. Ekler. Ubuntu onları böler, çalıştırılabilir dosyalar /usr/bin, sistem çapında konfigürasyon /etc, paylaşılan nesneler /usr/lib, görüntüler /usr/share, ...
Linux 'Program Files' bütün hiyerarşide. Bu üzerinde olabilir /usr/bin, /bin, /opt/...veya başka dizinlerde.
Başvurunuzla ilgili bir dosya bulacağınızı düşünüyorum. Ardından, program kurulumunda kurulu dosyaların nasıl görüneceğine dair bir fikrim var.
synapticyayınlayarak yükleyin sudo apt-get install synaptic.Properties.Installed FileSekmeye taşı . Sonuç olarak aynı dpkg -L package_name.Bunun nedeni linux'un kurulu dosyayı türüne göre ayrı ayrı dizinlere taşımasıdır.
/usr/binya da gider /bin./usr/share/iconsveya konumuna gider ~/.local/share/icons./opt./usr/share/applicationsveya açık~/.local/share/applications/usr/share/doc/usr/libVe diğer birçok dizin. (CMIIW, düzeltmeyi kabul etme)
Unix derken bu cevabı, Unix gibi işletim sistemleri gibi Unix demek.
Ubuntu'da her program için tüm verileri içeren bir programlar klasörü bulunmuyor. Unix ve Unix benzeri işletim sistemlerinde, HER ŞEY bir dosyadır, hatta terminal komutları bile. Onlar da dosya. Unix'in programları yönetme şekli aynı zamanda oldukça kaotik olabilir ve aynı zamanda organize edilebilir.
Programlar için simgeler / usr / share / icons / * dizininde, program çalıştırılabilir dosyaları genellikle / usr / bin, / bin dizinlerinde ve bin dizinli diğer yerlerde (binary ikili için kısadır) saklanır. Programların bağımlı olduğu kütüphaneler / lib.
Böylece, bir programın tüm verilerini içeren bir dizin değil, programın verileri dağılır. İlk başta bu çok dağınık görünmekle birlikte, kütüphaneler ve simgeler gibi standart şeylerin paylaşımına izin verir.
Her dosya için izinler sayesinde, her şeyin bir dosya olduğu fikri dürüst olmak gerekirse çok zekice. Unix MUCH'i diğer işletim sistemlerinden daha güvenli kılar.
Linux ve Windows programlarının yüklenme şekli oldukça farklı.
Windows'taki yaygın model bir program içindir; veya bir grup programdan C: \ program \ vendor içindeki bir alt dizine veya benzer bir şeye gidiniz.
Linux'ta, dosyalarınız işlevlerine bağlı olarak belirli alt dizinler arasında bölünür. Kütüphaneler, simgeler, kılavuz sayfaları, İşlem kaydı dosyaları, konfigürasyon vb. İçin dizinler vardır. Bazılarını kullanabilirsiniz, ancak sistem hepsini yönetir. Birlikte birleştirilmiş değiller, ancak diğer programlardaki benzer dosyalarla birlikte varlar.
Bu nedenle, düzenli bir Linux uygulamasında bu Windows dizin yapısına gerçek bir eşdeğer yoktur.