Trong Windows, hầu hết các ứng dụng và dữ liệu ứng dụng được lưu trữ trong một thư mục đặc biệt được gọi là C:\Program Files
(và đôi khi C:\Program Files (x86)
). Ubuntu / Linux tương đương với đường dẫn này là gì? Thậm chí có một?
Trong Windows, hầu hết các ứng dụng và dữ liệu ứng dụng được lưu trữ trong một thư mục đặc biệt được gọi là C:\Program Files
(và đôi khi C:\Program Files (x86)
). Ubuntu / Linux tương đương với đường dẫn này là gì? Thậm chí có một?
Câu trả lời:
/bin
và /usr/bin
là nơi các kịch bản bắt đầu các chương trình. Tương đương trực tiếp với "Tệp chương trình" có lẽ là /usr/share
( xem Tiêu chuẩn phân cấp hệ thống tệp ). Thư mục đó chứa các tệp hỗ trợ khác nhau cho hầu hết các chương trình.
Tuy nhiên, có lẽ không có tương đương trực tiếp, vì, ví dụ, các tệp thư viện được chia sẻ trên toàn hệ thống (trong /lib
) và các tùy chọn được người dùng chỉ định (trong thư mục chính của người dùng) hoặc nằm ở vị trí phổ biến /etc
.
Vì vậy, cài đặt chương trình thông qua tệp gỡ lỗi, kho lưu trữ hoặc bản dựng có thể sẽ đặt tệp vào tất cả các vị trí này.
[EDIT] Và như những người khác lưu ý, cũng có /sbin
và /usr/sbin
. Cộng /usr/local/bin
, /opt/bin
và thậm chí /usr/games/
. Vì vậy, chắc chắn không phải là một so sánh trực tiếp với c:\program files
!
/opt
? Tôi đã thấy rằng giữ nhiều chương trình (thường là nguồn đóng hoặc dựa trên ứng dụng) trước đây theo cách tương tự Program Files
.
/opt
thư mục này dùng để làm gì.
/usr/local/bin
là một vị trí bán chung cho phần mềm mà người dùng / công ty không sử dụng phổ biến.
Trả lời muộn - Tôi đã tạo lộ trình cho người mới bắt đầu theo dõi. Nếu họ đang tìm kiếm một tệp nhưng không biết tìm ở đâu, họ có thể sử dụng bản đồ để điều hướng xung quanh. Bạn có thể tải xuống một PNG độ phân giải cao ở đây . Bạn có thể tìm thấy những bài liên quan ở đây . Tôi sẽ tiếp tục cập nhật cả tập tin và bài đăng khi thời gian cho phép, kết hợp những bình luận hữu ích.
Đọc câu trả lời của tôi dưới đây để biết thêm thông tin về PATH
biến môi trường là gì, .desktop
tệp là gì và cách tìm một chương trình cụ thể bằng các lệnh linux khác nhau.
Câu trả lời gốc:
/bin
, /usr/bin
Và/usr/share
Như đã đề cập trong các câu trả lời khác, bạn có thể tìm thấy hầu hết các tệp thực thi trong /bin
hoặc /usr/bin
và các tệp hỗ trợ được cài đặt trong /usr/share
.
/usr/local
và /opt
Tuy nhiên, có nhiều thư mục hơn trong đó Ubuntu cài đặt các ứng dụng. Các PATH
biến, trong đó xác định nơi để tìm kiếm một lệnh nhập vào, có thể cung cấp cho bạn một đầu mối, tôi trông giống như ( echo $PATH
trong một thiết bị đầu cuối):
/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
Như bạn có thể thấy một số phần mềm được cài đặt /usr/local
và có thư mục riêng và bin
. Một nơi khác có nhiều chương trình được cài đặt là /opt
. Các thuộc tính của các vị trí này được giải thích theo Tiêu chuẩn phân cấp hệ thống tập tin , đây là một cách đọc rất tốt. Thật không may, sự khác biệt giữa /opt
và /usr/local
không được giải thích rõ ràng, một người nào đó trên stackexchange unix đã có một lời giải thích phức tạp hơn:
/usr/local
là nơi để cài đặt các tệp được xây dựng bởi quản trị viên, thường bằng cách sử dụng lệnh make. Ý tưởng là để tránh xung đột với các tệp là một phần của hệ điều hành sẽ bị ghi đè hoặc ghi đè lên các tệp cục bộ nếu không. ví dụ. /usr/bin/foo
là một phần của HĐH trong khi /usr/local/bin/foo
là một thay thế cục bộ,/opt
là một thư mục để cài đặt các gói chưa được xử lý mỗi gói trong thư mục con riêng của chúng. Họ đã được xây dựng toàn bộ các gói được cung cấp bởi một nhà phân phối phần mềm độc lập của bên thứ ba. Ví dụ: someapp
sẽ được cài đặt /opt/someapp
, một trong các lệnh của nó sẽ nằm trong /opt/someapp/bin/foo
[và sau đó thường là một liên kết tượng trưng được tạo trong một trong các bin
thư mục trong PATH
hoặc chương trình được gọi từ tệp trên máy tính để bàn (xem bên dưới)]..desktop
các tập tinĐể tìm ra nơi một chương trình cụ thể được cài đặt, bạn có thể thực hiện một số bước. Đầu tiên bạn cần xác định vị trí .desktop
tập tin của nó . Các tệp trên máy tính để bàn tương tự như các phím tắt trong Windows và đối với các ứng dụng hệ thống, chúng được đặt trong đó /usr/share/applications
. Các tập tin máy tính để bàn cho các ứng dụng chỉ có sẵn cho người dùng hiện tại đang ở ~/.local/share/applications
. Lấy ví dụ Google Chrome, có tệp máy tính để bàn /usr/share/applications/google-chrome.desktop
và tìm dòng bắt đầu bằng Exec=
, điều này xác định cách khởi động Google Chrome. Nó nói rằng:
Exec=/opt/google/chrome/google-chrome
Vì vậy, bạn biết Google Chrome đang ở /opt
.
Bây giờ cho Mozilla Firefox được đặt tại /usr/share/applications/firefox.desktop
. Nó chỉ đơn giản nói
Exec=firefox %u
Lúc đầu, điều này dường như không giúp được gì nhiều, nhưng sau đó bạn nhận ra rằng nó firefox
phải nằm trong một thư mục nằm trong PATH
biến (rất có thể là a bin
) và chúng ta có thể tra cứu nó (xem bên dưới).
Để tra cứu lệnh bạn có thể sử dụng một hoặc nhiều điều sau đây: type
, which
và whereis
(tôi đã bao gồm một liên kết đến trang hướng dẫn trực tuyến của họ).
type : nó mô tả một lệnh và cho biết nó sẽ được hiểu như thế nào nếu được sử dụng làm tên lệnh. Các loại có thể cho một lệnh là:
(loại chính nó là một vỏ dựng sẵn, hãy thử với type type
: P)
Thi công type firefox
cho chúng tôi
firefox is /usr/bin/firefox
đó là những gì chúng tôi muốn biết
Nếu một lệnh là một tệp (mà bạn đã kiểm tra type
) thì bạn cũng có thể sử dụng:
trong đó : hiển thị đường dẫn đầy đủ của lệnh,
Thi công which firefox
cho chúng tôi
/usr/bin/firefox
Trong đó : định vị các tệp nhị phân, nguồn và trang thủ công cho một lệnh.
Thi công whereis firefox
cho chúng tôi
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
Thêm
Bạn có thể kiểm tra /usr/bin/firefox
gần hơn với ls -l /usr/bin/firefox
và điều này mang lại:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Dường như đó /usr/bin/firefox
là "chỉ" một liên kết tượng trưng cho kịch bản /usr/lib/firefox/firefox.sh
. Nếu bạn kiểm tra tập lệnh, bạn phát hiện ra rằng tập lệnh gọi /usr/lib/firefox/firefox
.
Bạn có thể yên nghỉ bây giờ :)
Không có thư mục duy nhất tương đương chính xác với thư mục Tệp chương trình . Cách Linux sắp xếp mọi thứ khác rất nhiều so với Windows.
Trong các cửa sổ, mọi chương trình chúng ta cài đặt đều có thư mục riêng trong thư mục Tệp chương trình. Trong thư mục đó, các thư mục con tiếp theo được tạo cho các loại tệp khác nhau. Không có cấu trúc cố định cho các thư mục con. Các chương trình tự quyết định những gì họ muốn gọi mỗi thư mục và nơi họ muốn đặt những gì.
Nhưng trong Linux khi một chương trình được cài đặt, các loại tệp khác nhau được sao chép vào các vị trí khác nhau. Các tệp thực thi được sao chép vào / usr / bin , các tệp thư viện vào / usr / lib , tài liệu tới một hoặc nhiều / usr / man , / usr / thông tin và / usr / doc . Nếu có file cấu hình, chúng thường trong thư mục chính của người dùng hoặc trong / etc .
Các C:\Program Files
thư mục sẽ /usr/bin
trong Ubuntu. /bin
trông giống như C:\windows
.
Từ trang thủ công của hệ thống phân cấp tệp :
/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 có cấu trúc khác với windows. Ubuntu đặt gần như tất cả các ứng dụng trong một thư mục /usr/bin
. Windows sẽ tạo một thư mục mới, nói Mozilla Firefox
và thêm cấu hình, tệp thực thi, DLL, hình ảnh, v.v. vào đó. Ubuntu tách chúng ra, thực thi đi vào /usr/bin
, cấu hình toàn hệ thống /etc
, các đối tượng được chia sẻ trong /usr/lib
, hình ảnh trong /usr/share
, ...
Linux 'Tệp chương trình' nằm trong toàn bộ phân cấp. Nó có thể là trên /usr/bin
, /bin
, /opt/...
, hoặc trong các thư mục khác.
Tôi nghĩ rằng bạn sẽ tìm thấy một số tập tin liên quan đến ứng dụng của bạn. Sau đó, tôi có một ý tưởng về cách xem các tệp được cài đặt khi cài đặt chương trình.
synaptic
bằng cách phát hành sudo apt-get install synaptic
trên thiết bị đầu cuối.Properties
.Installed File
tab. Kết quả giống như dpkg -L package_name
.Đó là bởi vì linux di chuyển tệp đã cài đặt vào các thư mục riêng dựa trên loại của chúng.
/usr/bin
hoặc /bin
./usr/share/icons
hoặc bật ~/.local/share/icons
cho địa phương./opt
./usr/share/applications
hoặc bật~/.local/share/applications
/usr/share/doc
/usr/lib
Và nhiều thư mục khác. (CMIIW, chấp nhận sửa chữa)
Trong câu trả lời này khi tôi nói Unix tôi có nghĩa là Unix cũng như các hệ điều hành giống Unix.
Ubuntu không thực sự có một thư mục chương trình chứa tất cả dữ liệu cho mỗi chương trình. Trong các hệ điều hành giống Unix và Unix, MỌI THỨ là một tệp, thậm chí là các lệnh đầu cuối. Chúng cũng là tập tin. Cách Unix xử lý các chương trình có thể khá hỗn loạn và được tổ chức cùng một lúc.
Các biểu tượng cho các chương trình được lưu trữ trong / usr / share / icon / *, các tệp thực thi chương trình thường được lưu trữ trong / usr / bin, / bin và các vị trí khác có thư mục bin (bin là obv viết tắt của nhị phân). Các thư viện mà các chương trình phụ thuộc vào là trong / lib.
Vì vậy, bạn kết thúc với không phải là một thư mục chứa tất cả dữ liệu cho một chương trình, nhưng dữ liệu cho chương trình trải ra. Mặc dù lúc đầu điều này có vẻ rất vô tổ chức, nó cho phép chia sẻ những thứ tiêu chuẩn như thư viện và biểu tượng.
Nhờ có quyền cho mỗi tệp, ý tưởng về mọi thứ là một tệp rất tuyệt vời để thành thật. Nó làm cho Unix MUCH an toàn hơn các hệ điều hành khác.
Cách mà các chương trình Linux và Windows được cài đặt khá khác nhau.
Mẫu phổ biến trong Windows là dành cho một chương trình; hoặc một loạt các chương trình, từ một nhà cung cấp đi vào thư mục con của chính nó trong C: \ chương trình \ nhà cung cấp hoặc một cái gì đó tương tự.
Trong Linux, các tệp của bạn được phân chia giữa các thư mục con cụ thể tùy thuộc vào chức năng của chúng. Có thư mục cho thư viện, biểu tượng, trang man, Tệp nhật ký, cấu hình, v.v. Bạn có thể sử dụng một số trong số họ, nhưng hệ thống sẽ quản lý tất cả chúng. Chúng không được ghép với nhau, nhưng tồn tại cùng với các tệp tương tự từ các chương trình khác.
Vì vậy, không có cấu trúc thư mục Windows thực sự trong triển khai Linux thông thường.