Linux, Windows Program Dosyalarına eşdeğerdir?


179

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ı?


2
Belirli bir paketin nerede olduğunu bilmek istiyorsanız, Synaptic paket yöneticisini kullanabilirsiniz. Sadece paketi arayın ve kurulu dosyaları görün.
Asmerito

6
Bence bu soru, bir eşdeğer istemek için bir sebeple geliştirilecektir . Örneğin, "neyi yüklediğimi ve neyi çalıştırabileceğimi görelim" ile "bu / bu yazılım parçasının kaydetme oyununu bulmaya çalışıyorum, bu yüzden onunla uğraşabiliyorum" arasında bir fark var. ve belki de "Ayarlayabildiğim bu program için bazı ayar dosyalarından / ini dosyalarından şüpheleniyorum". Bunların hepsi "Program Dosyaları" sorusu olabilir, ancak burada farklı cevaplar olabilir.
Nanne,

4
İlgili (ancak muhtemelen bir kopya olarak değerlendirilmemelidir): Ubuntu dosya sistemi düzenini nasıl anlayabilirim?
Eliah Kagan

Yanıtlar:


104

/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.

Nautilus gösteren / usr / pay

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!


4
Nasıl hakkında /opt? Daha önce benzer şekilde birçok (genellikle kapalı kaynaklı veya uygulama tabanlı) program bulunduğunu gördüm Program Files.
Kupiakos

Ubuntu Yazılım Merkezi'nin oyunlarını kesinlikle oraya ulaştırmasıyla birlikte bu şekilde gidiyor gibi görünüyor. Ama o zaman bile, neredeyse doğrudan bir karşılaştırma, gerçekten, öyle mi? Bugünlerde en yakın şey olabilir.
Scaine


/usr/local/binbir kullanıcı / şirket tarafından yaygın olarak kullanılamayan yazılımlar için yarı yaygın bir konumdur.
Mark Stewart,

Peki bu işletim sistemi Windows'tan nasıl daha iyi? Bunu denemek için kullandım, web geliştirme için daha iyi. Ama bu hiyerarşi şeylerini anlayamıyorum ... PhpStorm'u yükledim ve şu anda 1238128 klasörde ..
Toma Tomov

84

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.


6
Bu cevap gözardı edilmeli, en üstünde olması gerektiği gibi.
voldemort

83

EDIT: Mükemmel ve yeni başlayanlar için ideal bir harita için ayrıca d4nyll'in cevabına bakınız !

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:


Kolay bir cevap yok.

/bin, /usr/binVe/usr/share

Diğ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 /opt

Ancak 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)].

Belirli bir program veya komut bulma

.desktop Dosyalar

Belirli 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ı ararken

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:

    1. takma ad (kabuk takma adı)
    2. işlevi (kabuk işlevi)
    3. yerleşik (kabuk yerleşik)
    4. dosya (disk dosyası)
    5. anahtar kelime (kabuk ayrılmış kelime)

    (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 :)


Çok güzel cevap. Bir soru, Sembolik Bağlantı nedir? Windows kısayolu mu eşdeğer?
Quazi Irfan

@ iamcreasy teşekkürler! Evet, bunlar bir tür kısayoldur, ancak asıl dosya kopyalarından kaçınmak niyetiyle. Windows kısayolları ile karşılaştırılabilir. örneğin başlangıç ​​menüsü öğeleri oluşturmak için kullanılabilecek masaüstü dosyaları.
Gerhard Burger

Neden birisi .desktop dosyasını sembolik linkler üzerinden kullanmalı?
Quazi Irfan

1
.desktop dosyalarında @iamcreasy böyle bir açıklama ve bir simge (Burada bir örnek bakın: olarak, ekstra bilgi ekleyebilir standards.freedesktop.org/desktop-entry-spec/latest/apa.html ), bir 'normal' dosyası var . Sembolik bir bağlantı, yalnızca başka bir dosyaya bağlanan 'özel' bir dosyadır. Bunu düzgün bir şekilde açıklamakta zorlanıyorum ama belki burada daha iyi bir cevap bulabilirsiniz: superuser.com/questions/253935/…
Gerhard Burger

18

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 .


Bu dosya gruplarının, ait oldukları uygulamaya dayanmak yerine amaçlarına göre herhangi bir nedeni var mı? "Unix dosya gruplama stili" genellikle sistem yöneticisi açısından daha mı uygun?
jojman

1
pek sayılmaz. Sanırım yaptıkları bir tasarım seçimi. Her ne kadar "man", "info" veya bu dosya yapısına bağlı diğer birçok yardımcı program yapmanıza olanak sağlar. Örneğin, "adam" her komut için belgelerin nerede arayacağını bilir. Dokümanların standart bir yeri yoksa, adam çalışamaz.
BinW

10

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, ...


5

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.

  1. Terminalde synapticyayınlayarak yükleyin sudo apt-get install synaptic.
  2. İstediğiniz paketi arayın, arama metni girişinde arama yapın.
  3. Paketi sağ tıklayın ve seçin Properties.
  4. Installed FileSekmeye taşı . Sonuç olarak aynı dpkg -L package_name.
  5. Paket için kurulu tüm dosyaları bulacaksınız.

Bunun nedeni linux'un kurulu dosyayı türüne göre ayrı ayrı dizinlere taşımasıdır.

  • Yürütülebilir /usr/binya da gider /bin.
  • Simge yerel için /usr/share/iconsveya konumuna gider ~/.local/share/icons.
  • Tüm uygulama (taşınabilir) açık /opt.
  • Kısayol genellikle açık /usr/share/applicationsveya açık~/.local/share/applications
  • Hakkında belgeler /usr/share/doc
  • Kütüphane / modül açık /usr/lib

Ve diğer birçok dizin. (CMIIW, düzeltmeyi kabul etme)


3

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.


3

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.


2

Kendi programlarını yüklersen 1 klasör öneririm:


-2

Bak /bin, /usr/binve diyor başka bir şey bin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.