Co to jest Linux równoważny plikom programu Windows?

179

W systemie Windows większość aplikacji i danych aplikacji jest przechowywana w specjalnym katalogu znanym jako C:\Program Files(i czasami C:\Program Files (x86)). Czym jest Ubuntu / Linux równoważny tej ścieżce? Czy jest jeszcze jeden?

Kaz Wolfe
źródło
2
Jeśli chcesz wiedzieć, gdzie są pliki konkretnego pakietu, możesz użyć menedżera pakietów Synaptic. Po prostu wyszukaj pakiet i zobacz jego zainstalowane pliki.
Asmerito,
6
Myślę, że to pytanie zostałoby poprawione przez powód, dla którego chciałbym znaleźć odpowiednik. Istnieje różnica między, na przykład: „zobaczmy, co zainstalowałem, a tym, co mogę uruchomić”, i „Próbuję znaleźć zapisaną grę tego / tego oprogramowania, aby się z tym bawić.” a może nawet „Podejrzewam jakiś plik ustawień / plik ini dla tego programu, który mogę poprawić”. Mogą to być pytania „Pliki programu”, ale tutaj można znaleźć inne odpowiedzi.
Nanne
4
Powiązane (ale prawdopodobnie nie należy ich uważać za duplikat): Jak zrozumieć układ systemu plików Ubuntu?
Eliah Kagan

Odpowiedzi:

104

/bini /usr/bintam są skrypty, które uruchamiają programy. Prawdopodobnie jest to bezpośredni odpowiednik „Program Files” /usr/share( patrz Standard hierarchii systemu plików ). Ten katalog zawiera różne pliki pomocnicze dla większości programów.

Nautilus pokazuje / usr / share

Prawdopodobnie nie ma bezpośredniego odpowiednika, ponieważ, na przykład, pliki bibliotek są udostępniane w całym systemie (in /lib), a opcje są albo określone przez użytkownika (w katalogu osobistym użytkownika), albo znajdują się w uniwersalnej lokalizacji /etc.

Więc zainstalowanie programu za pomocą pliku deb, repozytorium lub kompilacji prawdopodobnie umieści pliki we wszystkich tych lokalizacjach.

[EDYCJA] I, jak zauważają inni, jest też /sbini /usr/sbin. Plus /usr/local/bin, /opt/bina nawet /usr/games/. Zdecydowanie nie jest to bezpośrednie porównanie c:\program files!

Scaine
źródło
4
Jak o /opt? Widziałem wcześniej, że posiada wiele programów (zwykle zamkniętych lub opartych na aplikacjach) w podobny sposób jak Program Files.
Kupiakos
Wydaje się, że idzie w tym kierunku, wraz z pojawieniem się Centrum Oprogramowania Ubuntu, które zapewnia tam swoje gry. Ale nawet wtedy nie jest to bezpośrednie porównanie, prawda? Może jednak najbliższa rzecz w tych dniach.
Scaine
Zobacz askubuntu.com/a/294492/41499, po co /optjest katalog.
Gerhard Burger
/usr/local/binjest półczęstą lokalizacją oprogramowania, które może nie być powszechnie używane przez użytkownika / firmę.
Mark Stewart
A w jaki sposób ten system operacyjny jest lepszy niż Windows? Przełączyłem się na to, aby spróbować, czy to lepiej dla rozwoju sieci. Ale nie rozumiem tych rzeczy związanych z hierarchią ... Zainstalowałem PhpStorm i teraz jest on w 1238128 folderach ..
Toma Tomov
84

Późna odpowiedź - Stworzyłem mapę drogową dla początkujących. Jeśli szukają pliku, ale nie wiedzą, gdzie go szukać, mogą z grubsza nawigować po mapie. Możesz pobrać plik PNG w wysokiej rozdzielczości tutaj . Powiązany post można znaleźć tutaj . Będę aktualizował zarówno plik, jak i post, gdy tylko pozwoli na to czas, uwzględniając przydatne komentarze.

d4nyll
źródło
6
ta odpowiedź jest ignorowana, powinna być na górze.
voldemort
83

EDYCJA: Zobacz także odpowiedź d4nyll poniżej, aby uzyskać doskonałą i przyjazną dla początkujących mapę!

Przeczytaj moją odpowiedź poniżej, aby uzyskać więcej informacji o tym PATH, czym jest zmienna środowiskowa, jakie .desktopsą pliki i jak znaleźć określony program za pomocą różnych poleceń linuksowych.

Oryginalna odpowiedź:


Nie ma łatwej odpowiedzi.

/bin, /usr/bini/usr/share

Jak wspomniano w innych odpowiedziach, większość plików wykonywalnych można znaleźć pod /binlub /usr/bin, a pliki pomocy są zainstalowane w /usr/share.

/usr/local i /opt

Istnieje jednak więcej katalogów, w których Ubuntu instaluje aplikacje. PATHZmienna, która określa gdzie szukać wprowadzonego polecenia, może dać wskazówkę, kopalnia wygląda ( echo $PATHw terminalu):

/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

Jak widać, niektóre programy są zainstalowane /usr/locali mają własny katalog oraz bin. Innym miejscem, w którym zainstalowano wiele programów, jest /opt. Właściwości tych lokalizacji są wyjaśnione przez Standard hierarchii systemu plików , który jest bardzo dobrym odczytem. Niestety różnica między /opti /usr/localnie jest bardzo dobrze wyjaśniona, ktoś na wymianie stosów unixa miał bardziej skomplikowane wyjaśnienie:

  • /usr/localto miejsce do instalowania plików zbudowanych przez administratora, zwykle za pomocą polecenia make. Chodzi o to, aby uniknąć kolizji z plikami wchodzącymi w skład systemów operacyjnych, które w przeciwnym razie zostałyby zastąpione lub zastąpiłyby lokalne. na przykład. /usr/bin/foojest częścią systemu operacyjnego, podczas gdy /usr/local/bin/foojest lokalną alternatywą,
  • /optto katalog, w którym każdy z osobnych podkatalogów ma instalować rozpakowane pakiety. Są już zbudowane całe pakiety dostarczone przez niezależnego zewnętrznego dystrybutora oprogramowania. Na przykład someappbyłoby zainstalowane w /opt/someapp, jedno z jego poleceń byłoby w /opt/someapp/bin/foo[a następnie zwykle w jednym z binkatalogów w znajduje się łącze symboliczne PATHlub program jest wywoływany z pliku na pulpicie (patrz poniżej)].

Znajdowanie określonego programu lub polecenia

.desktop akta

Aby dowiedzieć się, gdzie jest zainstalowany określony program, możesz wykonać kilka kroków. Najpierw musisz zlokalizować jego .desktopplik. Pliki na pulpicie są podobne do skrótów w systemie Windows, a dla aplikacji systemowych się w nich znajdują /usr/share/applications. Pliki pulpitu dla aplikacji, które są dostępne tylko dla bieżącego użytkownika, znajdują się w ~/.local/share/applications. Weźmy na przykład Google Chrome, który ma plik na pulpicie /usr/share/applications/google-chrome.desktopi poszukaj linii, która zaczyna się od Exec=, to określa, jak uruchomić Google Chrome. To mówi:

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

Więc wiesz, że Google Chrome już działa /opt.

Teraz dla Mozilla Firefox, która znajduje się w /usr/share/applications/firefox.desktop. To po prostu mówi

Exec=firefox %u

Na początku nie wydaje się to zbytnio pomocne, ale potem zdajesz sobie sprawę, że firefoxmusi to być katalog, który znajduje się w PATHzmiennej (najprawdopodobniej a bin), i możemy to sprawdzić (patrz poniżej).

Wyszukiwanie poleceń

Aby wyszukać polecenia można użyć jednego lub więcej z następujących czynności: type, whichi whereis(podaję link do ich stron podręcznika online).

  • typ : opisuje polecenie i wskazuje, w jaki sposób byłby interpretowany, gdyby był użyty jako nazwa polecenia. Możliwe typy polecenia to:

    1. alias (alias powłoki)
    2. funkcja (funkcja powłoki)
    3. wbudowany (wbudowany shell)
    4. plik (plik na dysku)
    5. słowo kluczowe (słowo zastrzeżone powłoki)

    (sam typ jest wbudowaną powłoką, spróbuj z type type: P)

    Wykonanie type firefoxdaje nam

    firefox is /usr/bin/firefox
    

    i to chcieliśmy wiedzieć

Jeśli polecenie jest plikiem (który sprawdziłeś type), możesz także użyć:

  • który : pokazuje pełną ścieżkę polecenia,

    Wykonanie which firefoxdaje nam

     /usr/bin/firefox
    
  • whereis : zlokalizuj pliki stron binarnych, źródłowych i stron podręcznika dla polecenia.

    Wykonanie whereis firefoxdaje nam

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

Premia

Możesz sprawdzić /usr/bin/firefoxdokładniej, ls -l /usr/bin/firefoxco daje:

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

Wydaje się, że /usr/bin/firefoxjest to „tylko” symboliczny link do skryptu /usr/lib/firefox/firefox.sh. Jeśli przejrzysz skrypt, odkryjesz, że skrypt go wywołuje /usr/lib/firefox/firefox.
Możesz teraz odpoczywać w pokoju :)

Gerhard Burger
źródło
Całkiem fajna odpowiedź. Jedno pytanie, co to jest Symbolic Link? Czy to skrót do systemu Windows?
Quazi Irfan
@iamcreasy dzięki! Tak, są one rodzajem skrótu, ale ich głównym celem jest unikanie kopiowania plików. Skróty systemu Windows są bardziej podobne do. pliki pulpitu, za pomocą których można na przykład tworzyć elementy menu Start.
Gerhard Burger
Dlaczego ktoś miałby używać pliku .desktop zamiast dowiązań symbolicznych i odwrotnie?
Quazi Irfan
1
@iamcreasy W plikach .desktop możesz dodać dodatkowe informacje, takie jak opis i ikona (patrz przykład tutaj: standard.freedesktop.org/desktop-entry-spec/latest/apa.html ), jest to plik „zwykły” . Dowiązanie symboliczne to plik „specjalny”, który prowadzi tylko do innego pliku. Trudno mi to właściwie wytłumaczyć, ale może znajdziesz lepszą odpowiedź tutaj: superuser.com/questions/253935/…
Gerhard Burger
18

Nie ma jednego katalogu, który byłby dokładnym odpowiednikiem folderu Program Files . Sposób, w jaki Linux porządkuje rzeczy, jest zupełnie inny niż Windows.

W systemie Windows każdy program, który instalujemy, otrzymuje własny katalog w katalogu Program Files. W tym katalogu tworzone są kolejne podkatalogi dla różnego rodzaju plików. Nie ma ustalonej struktury podkatalogów. Programy same decydują, jak chcą nazwać każdy katalog i gdzie chcą je umieścić.

Ale w systemie Linux, gdy program jest zainstalowany, różnego rodzaju pliki są kopiowane do różnych lokalizacji. Pliki wykonywalne są kopiowane do / usr / bin , pliki bibliotek do / usr / lib , dokumentacja do jednego lub więcej z / usr / man , / usr / info i / usr / doc . Jeśli istnieją pliki konfiguracyjne, są one zazwyczaj w katalogu domowym użytkownika lub w / etc .

binW
źródło
Czy jest jakiś powód dla tego grupowania plików na podstawie ich przeznaczenia, a nie aplikacji, do której należą pliki? Czy „Unikalny styl grupowania plików” jest ogólnie wygodniejszy z punktu widzenia administratora systemu?
jojman
1
nie całkiem. Myślę, że to wybór projektowy. Chociaż umożliwia tworzenie narzędzi takich jak „man”, „info” lub wielu innych, które zależą od tej struktury plików. Na przykład „człowiek” wie, gdzie szukać dokumentacji dla każdego polecenia. Jeśli nie ma standardowej lokalizacji dokumentów, człowiek nie może działać.
binW
10

C:\Program FilesFolder będzie /usr/binw Ubuntu. /binwygląda bardziej jak C:\windows.

Ze strony podręcznika hierarchii systemu plików :

/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 ma inną strukturę niż Windows. Powiedzmy, że Ubuntu umieszcza prawie wszystkie aplikacje w jednym katalogu /usr/bin. Windows utworzy, powiedzmy Mozilla Firefox, nowy folder i doda do niego konfigurację, pliki wykonywalne, biblioteki DLL, obrazy itp. Ubuntu dzieli je, włączają się pliki wykonywalne /usr/bin, konfiguracja w /etccałym systemie , współdzielone obiekty /usr/lib, obrazy w /usr/share...

Lekensteyn
źródło
5

„Pliki programów” systemu Linux znajdują się w całej hierarchii. Może to być na /usr/bin, /bin, /opt/...lub w kolejnych katalogach.

Myślę, że znajdziesz jakiś plik związany z twoją aplikacją. Następnie mam pomysł, jak wyglądać pliki instalowane podczas instalacji programu.

  1. Zainstaluj synaptic, wystawiając sudo apt-get install synapticna terminal.
  2. Poszukaj potrzebnego pakietu, wyszukaj po wpisanym tekście.
  3. Kliknij pakiet prawym przyciskiem myszy i wybierz Properties.
  4. Przejdź do Installed Filezakładki. Wynik jest taki sam jak dpkg -L package_name.
  5. Tam znajdziesz wszystkie pliki zainstalowane dla pakietu.

Jest tak, ponieważ linux przenosi zainstalowany plik do katalogów osobno w zależności od ich typu.

  • Plik wykonywalny przechodzi do /usr/binlub /bin.
  • Ikona przechodzi do /usr/share/iconslub włącza się ~/.local/share/iconslokalnie.
  • Cała aplikacja (przenośna) włączona /opt.
  • Skrót zwykle włączony /usr/share/applicationslub włączony~/.local/share/applications
  • Dokumentacja w sprawie /usr/share/doc
  • Biblioteka / moduł włączony /usr/lib

I wiele innych katalogów. (CMIIW, akceptacja korekty)

Abdillah
źródło
3

W tej odpowiedzi, kiedy mówię o Uniksie, mam na myśli Unix oraz systemy operacyjne podobne do Uniksa.

Ubuntu tak naprawdę nie ma folderu programów zawierającego wszystkie dane dla każdego programu. W systemach operacyjnych Unix i podobnych do Unixa WSZYSTKO to plik, nawet polecenia terminalu. To także pliki. Sposób, w jaki Unix obsługuje programy, może być dość chaotyczny i zorganizowany w tym samym czasie.

Ikony programów są przechowywane w / usr / share / icons / *, pliki wykonywalne programów są zwykle przechowywane w / usr / bin, / bin i innych miejscach z katalogami bin (bin jest obv skrót od binarnego). Biblioteki, od których zależą programy, znajdują się w / lib.

W rezultacie nie ma katalogu zawierającego wszystkie dane dla jednego programu, ale dane dla programu są rozłożone. Choć na początku wydaje się to bardzo niezorganizowane, pozwala na udostępnianie standardowych rzeczy, takich jak biblioteki i ikony.

Dzięki uprawnieniom do każdego pliku, pomysł, aby wszystko było plikiem, jest bardzo błyskotliwy, szczerze mówiąc. To sprawia, że ​​UNIX DUŻO jest bezpieczniejszy niż inne systemy operacyjne.

Thomas Boxley
źródło
3

Sposób instalacji programów Linux i Windows jest zupełnie inny.

Częstym wzorem w systemie Windows jest program; lub kilka programów, od jednego dostawcy przejdź do własnego podkatalogu w C: \ Programs \ vendor lub coś podobnego.

W systemie Linux pliki są dzielone między określone podkatalogi w zależności od ich funkcji. Istnieją katalogi bibliotek, ikon, stron podręcznika, plików dziennika, konfiguracji i tak dalej. Możesz użyć niektórych z nich, ale system zarządza nimi wszystkimi. Nie są ze sobą połączone, ale istnieją razem z podobnymi plikami z innych programów.

Tak więc nie ma rzeczywistego odpowiednika tej struktury katalogów Windows w zwykłej implementacji Linuksa.

nieznany użytkownik
źródło
2

Jeśli instalujesz własne programy, polecam 1 folder:

Timo
źródło
-2

Zajrzyj do /bin, /usr/bini cokolwiek innego, co mówi bin.

CPU2
źródło