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?
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?
Odpowiedzi:
/bin
i /usr/bin
tam 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.
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ż /sbin
i /usr/sbin
. Plus /usr/local/bin
, /opt/bin
a nawet /usr/games/
. Zdecydowanie nie jest to bezpośrednie porównanie c:\program files
!
/opt
? Widziałem wcześniej, że posiada wiele programów (zwykle zamkniętych lub opartych na aplikacjach) w podobny sposób jak Program Files
.
/opt
jest katalog.
/usr/local/bin
jest półczęstą lokalizacją oprogramowania, które może nie być powszechnie używane przez użytkownika / firmę.
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.
Przeczytaj moją odpowiedź poniżej, aby uzyskać więcej informacji o tym PATH
, czym jest zmienna środowiskowa, jakie .desktop
są pliki i jak znaleźć określony program za pomocą różnych poleceń linuksowych.
Oryginalna odpowiedź:
/bin
, /usr/bin
i/usr/share
Jak wspomniano w innych odpowiedziach, większość plików wykonywalnych można znaleźć pod /bin
lub /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. PATH
Zmienna, która określa gdzie szukać wprowadzonego polecenia, może dać wskazówkę, kopalnia wygląda ( echo $PATH
w 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/local
i 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 /opt
i /usr/local
nie jest bardzo dobrze wyjaśniona, ktoś na wymianie stosów unixa miał bardziej skomplikowane wyjaśnienie:
/usr/local
to 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/foo
jest częścią systemu operacyjnego, podczas gdy /usr/local/bin/foo
jest lokalną alternatywą,/opt
to 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 someapp
byłoby zainstalowane w /opt/someapp
, jedno z jego poleceń byłoby w /opt/someapp/bin/foo
[a następnie zwykle w jednym z bin
katalogów w znajduje się łącze symboliczne PATH
lub program jest wywoływany z pliku na pulpicie (patrz poniżej)]..desktop
aktaAby dowiedzieć się, gdzie jest zainstalowany określony program, możesz wykonać kilka kroków. Najpierw musisz zlokalizować jego .desktop
plik. 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.desktop
i 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 firefox
musi to być katalog, który znajduje się w PATH
zmiennej (najprawdopodobniej a bin
), i możemy to sprawdzić (patrz poniżej).
Aby wyszukać polecenia można użyć jednego lub więcej z następujących czynności: type
, which
i 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:
(sam typ jest wbudowaną powłoką, spróbuj z type type
: P)
Wykonanie type firefox
daje 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 firefox
daje nam
/usr/bin/firefox
whereis : zlokalizuj pliki stron binarnych, źródłowych i stron podręcznika dla polecenia.
Wykonanie whereis firefox
daje 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/firefox
dokładniej, ls -l /usr/bin/firefox
co daje:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Wydaje się, że /usr/bin/firefox
jest 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 :)
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 .
C:\Program Files
Folder będzie /usr/bin
w Ubuntu. /bin
wyglą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 /etc
całym systemie , współdzielone obiekty /usr/lib
, obrazy w /usr/share
...
„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.
synaptic
, wystawiając sudo apt-get install synaptic
na terminal.Properties
.Installed File
zakładki. Wynik jest taki sam jak dpkg -L package_name
.Jest tak, ponieważ linux przenosi zainstalowany plik do katalogów osobno w zależności od ich typu.
/usr/bin
lub /bin
./usr/share/icons
lub włącza się ~/.local/share/icons
lokalnie./opt
./usr/share/applications
lub włączony~/.local/share/applications
/usr/share/doc
/usr/lib
I wiele innych katalogów. (CMIIW, akceptacja korekty)
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.
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.