/ usr /, tôi giả sử là người dùng máy tính.
Đóng.
Unix khởi đầu là một hệ điều hành nhiều người dùng, vì vậy nó không phải là "người dùng", mà là " người dùng ", số nhiều.
Trước khi AT & T Unix System V Release 4 (SVR4) ra mắt vào năm 1988 với các công cụ quản lý người dùng mặc định tạo thư mục nhà của người dùng /home
, vị trí thông thường là. /usr
Thư mục của bạn $HOME
có thể /usr/jfw
nằm trên hộp System III .
/usr
cũng kín, sau đó cũng như bây giờ, /usr/bin
, /usr/lib
vv Kinh nghiệm cho thấy, cách ly các thư mục nhà là phương thức quản lý hệ thống tốt, vì vậy với /home
sự thay đổi chính sách trong SVR4, nó để lại đằng sau tất cả mọi thứ bây giờ chúng tôi nghĩ là thuộc trong /usr
.
/usr
vẫn có một lý do chính đáng để giữ tên: những gì bị bỏ lại phía sau là các tệp không cần có sẵn cho đến khi hệ thống được khởi động đủ xa để hỗ trợ sử dụng tương tác thông thường. Điều đó có nghĩa là, những gì bị bỏ lại phía sau là các phần tập trung vào người dùng của HĐH. Điều này có nghĩa là /usr
có thể ở một thể tích vật lý khác, đó là một điều tốt trong thời kỳ ổ cứng 92 MB có kích thước của máy giặt .
Các hệ thống Unix ban đầu đã cẩn thận để tránh các tệp hệ điều hành lõi /usr
để bạn vẫn có thể khởi động vào chế độ một người dùng² ngay cả khi /usr
âm lượng không thể đếm được vì một số lý do. Khối lượng gốc chứa các công cụ đủ để đưa /usr
âm lượng trở lại trực tuyến.
Một số hương vị Unix nay bỏ qua nguyên tắc thiết kế cũ này kể từ khi hệ thống nhúng thậm chí nhỏ có đủ chỗ cho tất cả các tập tin khối lượng gốc truyền thống và tất cả /usr
trên một volume.³ đơn Red Hat Enterprise Linux, Solaris và Cygwin liên kết tượng trưng /bin
đến /usr/bin
và /lib
để /usr/lib
sao cho không có còn bất kỳ sự khác biệt giữa các thư mục này.
... / local / ... rõ ràng là viết tắt của máy tính cục bộ ...
Đúng. Nó đề cập đến thực tế là các tệp theo /usr/local
được cho là đặc biệt cho hệ thống đơn lẻ đó. Các tập tin theo bất kỳ cách nào chung chung nên sống ở nơi khác.
Điều này cũng bắt nguồn từ cách các hệ thống Unix thường được sử dụng từ nhiều thập kỷ trước khi tất cả điều này được chuẩn hóa. Một lần nữa, các đĩa cứng thời đó rất cồng kềnh, thực sự đắt tiền và được lưu trữ rất ít theo tiêu chuẩn ngày nay. Để tiết kiệm tiền và dung lượng trên đĩa, một phòng thí nghiệm máy tính chứa đầy các hộp Unix thường chia sẻ hầu hết /usr
trên NFS hoặc một số giao thức chia sẻ tệp mạng khác, vì vậy mỗi hộp không phải có bản sao dự phòng của riêng mình. hộp sẽ đi theo /usr/local
, đó sẽ là một khối lượng riêng biệt từ /usr
.
Di sản lịch sử này là lý do tại sao nó vẫn là mặc định cho hầu hết các phần mềm Unix của bên thứ ba cài đặt /usr/local
khi cài đặt bằng tay. Hầu hết các phần mềm như vậy sẽ cho phép bạn cài đặt gói ở một nơi khác, nhưng bằng cách không lựa chọn, bạn sẽ có được mặc định an toàn, điều này không can thiệp vào các vị trí cài đặt phổ biến khác với mục đích cụ thể hơn.
Có những lý do tốt để làm cho phần mềm cài đặt ở một nơi khác thay thế. Nhóm macOS của Apple thực hiện điều này khi họ xây dựng, bash
từ mã nguồn GNU Bash . Chúng sử dụng /
làm tiền tố cài đặt, ghi đè /usr/local
mặc định, để Bash kết thúc /bin
.
Một ví dụ khác là cách các hệ thống Linux cũ hơn tách biệt phần mềm GUI của họ /usr/X11R6
, để tách biệt nó khỏi dòng lệnh và curses
phần mềm dựa trên truyền thống . Điều này được thực hiện đơn giản bằng cách ghi đè /usr/local
tiền tố mặc định bằng /usr/X11R6
.⁵
Và / bin là gì?
Nó là viết tắt của "binary", trong ngữ cảnh này có nghĩa là "một tệp không phải là văn bản thuần túy." Hầu hết các tệp như vậy là các tệp thực thi trên hộp Unix, vì vậy hai thuật ngữ này đã trở thành đồng nghĩa trong một số vòng tròn. ("Vui lòng tạo cho tôi một nhị phân cho RHEL 7, Fred.")
File văn bản trên một hộp Unix sống ở nơi khác: /etc
, /usr/include
, /usr/share
vv
Ngày xửa ngày xưa, ngay cả các tập lệnh shell - vốn là các tệp văn bản thuần túy - đã bị loại khỏi các bin
thư mục, nhưng dòng này cũng bị mờ. Ngày nay, các bin
thư mục thường chứa bất kỳ loại tệp thực thi nào, cho dù là "nhị phân" hay không.
Chú thích và lạc đề :
Bản chất nguyên thủy của các công cụ quản lý người dùng trước SVR4 có nghĩa là HOME=/usr/$NAME
lược đồ chỉ được ghi lại như một quy ước, thay vì được thi hành bởi các công cụ phần mềm như một mặc định.
Bạn có thể thấy điều này trên trang 4-8 của " Hướng dẫn dành cho quản trị viên hệ thống AT & T Unix phiên bản 3.2 : tại đây bạn thấy AT & T đề xuất /usr/$NAME
lược đồ cũ trong phiên bản chính cuối cùng của Unix trước khi SVR4 xuất hiện.
Nó khá phổ biến trong các hệ thống Unix cũ hơn cho các quản trị viên hệ thống để chọn một sơ đồ khác có ý nghĩa hơn đối với họ. Con người là con người, điều đó có nghĩa là rất nhiều phương án khác nhau đã được phát minh ra.
Một kế hoạch tôi đã đi qua trước khi /home/$NAME
trở thành tiêu chuẩn là /u/$NAME
.
Một hệ thống khác mà tôi đã sử dụng vào đầu những năm 1990 có rất nhiều người dùng đến mức họ không thể vừa tất cả các thư mục nhà vào một khối vật lý duy nhất, vì vậy họ đã sử dụng một sơ đồ như /u1/$NAME
, /u2/$NAME
v.v., như tôi nhớ. Đĩa nào thư mục nhà của bạn kết thúc chỉ đơn giản là vấn đề cái nào có dung lượng trên đó tại thời điểm tài khoản của bạn được tạo.
Bạn có thể khởi động hộp macOS vào chế độ một người dùng bằng cách nhấn giữ Cmd-Strong khi khởi động. Hãy đi một khi màn hình chuyển sang màu đen và bạn thấy văn bản màu xám nhạt xuất hiện. Nó giống như chạy trong Terminal, nhưng nó chiếm toàn bộ màn hình vì GUI chưa bắt đầu.
Hãy cẩn thận, bạn đang chạy như root
.
Nhập "exit" tại dấu nhắc gốc của một người dùng để thoát khỏi chế độ một người dùng và tiếp tục khởi động vào chế độ GUI của nhiều người dùng.
Các hệ điều hành Unixy vẫn xuất hiện để giữ các tệp chế độ một người dùng quan trọng ngoài /usr
thực tế có thể không làm như vậy trong những ngày này. Tôi đã từng kết xuất hộp FreeBSD 9 không thể khởi động bằng cách chuyển /usr
sang ổ ZFS. Tôi quên rằng các tính năng ZFS-root đã không cập nhật FreeBSD 10, tạo ra Catch 22 : hệ điều hành cần các tệp /usr
để gắn kết /usr
!
Điều đó là đủ tồi tệ, nhưng nếu FreeBSD 9 vẫn không giữ công cụ khởi động một người dùng của nó /usr
, tôi có thể sửa nó tại chỗ. Vì nó sẽ không khởi động ngay cả ở chế độ một người dùng mà /usr
không thể đếm được, rõ ràng truyền thống đó đã bị vi phạm bằng cách nào đó. Tôi đã phải khởi động từ đĩa CD cứu hộ để đưa hệ thống đó hoạt động trở lại.
Đây cũng là nơi chúng tôi nhận được /usr/share
: nó phân tách các tệp có thể được chia sẻ ngay cả giữa các hộp Unix với các loại bộ xử lý khác nhau. Thông thường, tệp văn bản: trang người đàn ông, từ điển, vv
"X11R6" đã đề cập đến phiên bản của Hệ thống X Window làm nền tảng cho GUI của Linux tại thời điểm quy ước này là phổ biến. Các hệ thống Linux thường dừng cách ly phần mềm GUI về thời gian X11R6 được thay thế bằng X.Org .
Các hệ thống Unix ban đầu giữ các tập lệnh shell lõi của chúng /etc
để tránh làm hỏng chúng với các nhị phân thực /bin
.