Các lệnh có sẵn trong cửa sổ trang man được ghi lại ở đâu và các lệnh này có phụ thuộc vào hệ thống không?


9

Đã sử dụng Linux trong nhiều năm, tôi đột nhiên thấy rằng tôi không biết sử dụng manlệnh đúng cách. Người ta biết rằng người ta có thể gõ qđể thoát khỏi một trang người đàn ông, /để tìm kiếm và những người khác. Tôi không biết, tuy nhiên, những tài liệu này ở đâu. Tôi đã thử man man man -a man info manvà Googling, không có may mắn.

Vui lòng chỉ cho tôi đến đúng vị trí để tìm kiếm thông tin này, ngay cả khi nó đúng man manvà tôi đã bỏ qua nó, nó hoàn toàn ổn, hãy cho tôi biết.

Các lệnh này có khác nhau đối với các HĐH khác nhau hay cho các bản phân phối Linux khác nhau không?


Không phải trang người đàn ông vừa xem less? (Ít nhất là trên bản phân phối của tôi, ít nhất, và hhiển thị tóm tắt các lesslệnh)
Rastapopoulos

@Rastapopoulos Không phải trang người đàn ông vừa xem less? Không. Bởi vì lesskhông phải là một tiện ích tiêu chuẩn.
Andrew Henle

Tôi cho rằng bạn có thể sử dụng readlink -f /usr/bin/pagerhoặc readlink -f $(which pager)để tìm ra máy nhắn tin nào bạn có (theo mặc định /bin/less) so với manmáy nhắn tin đã sử dụng. Nó có thể (nên) hoạt động trực tiếpman pager
Hastur

2
Nếu bạn đọc trang người đàn ông của mình bằng cách sử dụng morehoặc less, bạn có thể nhập hđể được giúp đỡ. (hoặc bạn chỉ có thể sử dụng emacs...)
Alex Vong

1
Nếu bạn gõ ?hoặc htại dấu nhắc máy nhắn tin, nó sẽ cung cấp cho bạn một danh sách các lệnh.
Barmar

Câu trả lời:


11

Nó thực sự đúng trong trang hướng dẫn sử dụng man, trong phân nhóm "Kiểm soát đầu ra được định dạng" và được lặp lại sau trong phần "MÔI TRƯỜNG" cho biện pháp tốt:

Theo mặc định, con người sử dụng pager -s.
Các trang hướng dẫn giải thích cách có một hệ thống các biến môi trường và các tùy chọn dòng lệnh ( PAGER, MANPAGER--pager) cho trọng mặc định.

Đây là cách nó đọc trên các hệ thống như Debian Linux. Ngược lại, trên các hệ thống như Oracle Linux, man-dbgói đã được xây dựng với một mặc định khác, tuy nhiên vẫn được phản ánh ngay trong trang hướng dẫn ở cùng một nơi:

Theo mặc định, con người sử dụng less -s.

Các man-dbnỗ lực gói tự động dò tìm, tại thời gian biên dịch, mà mặc định pager để build-in để lệnh, và tài liệu trang hướng dẫn của nó, ra khỏi less, morepager.

Trên các hệ thống như Debian Linux, pagerlệnh là một phần của hệ thống "thay thế" và có thể ánh xạ tới một trong một số lệnh thực tế:

jdebp% update-thay thế - danh sách máy nhắn tin
/ thùng / ít hơn
/ thùng / nhiều hơn
/ usr / thùng / pg
/ usr / bin / w3m
jdebp%

Vì vậy, người ta tư vấn các trang hướng dẫn tương ứng của họ về cách điều khiển chúng từ bàn phím, theo lựa chọn thay thế nào đã được chọn. Sử dụng một cách hiệu quả, hệ thống thay thế Debian giữ cho trang thủ công đồng bộ với lệnh đã chọn, vì vậy việc đọc trang hướng dẫn này khá đơn giản:

người đàn ông máy nhắn tin


5

Man sử dụng một máy nhắn tin để hiển thị nội dung.

Các chi tiết chính xác phụ thuộc vào phiên bản manbạn đang sử dụng.

Đối với phiên bản được sử dụng trên nhiều hệ thống:

  • Nếu tùy chọn -p pagerđược đưa ra thì máy nhắn tin đó được sử dụng.
  • Mặt khác, nếu biến môi trường MANPAGERđược đặt, nó được sử dụng.
  • Nếu không, nếu PAGERđược thiết lập, nó được sử dụng.
  • Nếu không, mặc định là sử dụng /usr/bin/less

Nếu trang thủ công ở định dạng HTML thì BROWSERđược sử dụng thay vì MANPAGER/PAGER

Debian sử dụng man-dbcó các mặc định khác nhau.

Đọc man manđể biết chi tiết


Cảm ơn bạn vì câu trả lời. Trong khi câu trả lời giải thích cách thức manhoạt động, tôi muốn hỏi bạn nếu bạn có thể giúp tôi chỉ cho đúng nơi mà hành vi này được ghi lại. Cảm ơn bạn.
Weijun Zhou

Trong man manđầu ra của tôi (một lần nữa, manphiên bản: 2.6.3), nó nói rằng "theo mặc định, ít sử dụng hơn.", Vì vậy tôi mong đợi điều này phụ thuộc vào phiên bản và hệ thống?
Weijun Zhou

1
Đây chỉ là một ví dụ về triết lý Unix tiêu chuẩn: các lệnh nhỏ và đơn giản hoạt động trên các luồng văn bản và thực hiện chính xác một điều và làm tốt điều đó. Định dạng một hướng dẫn và phân trang là hai điều đó là lý do tại sao chúng được thực hiện bởi hai công cụ khác nhau. Bằng cách này, công cụ phân trang có thể được sử dụng lại cho các tác vụ khác, không chỉ để hiển thị các trang thủ công.
Jörg W Mittag

2

Nhờ @Rastapopoulos, tôi tìm thấy một dòng liên quan đến lesstrong man manmột hộp Linux cũ ( manphiên bản: 1.6f) trong phần MÔI TRƯỜNG nêu rõ,

BROWSER Tên của một trình duyệt sẽ sử dụng để hiển thị các trang hướng dẫn HTML. Nếu nó không được đặt, /usr/bin/lessđược sử dụng.

Tuy nhiên, trên hộp mới hơn ( manphiên bản: 2.6.3), dòng này đã được thay thế bởi

BROWSER Nếu $ BROWSER được đặt, giá trị của nó là danh sách các lệnh được phân tách bằng dấu hai chấm, mỗi lệnh lần lượt được sử dụng để thử khởi động trình duyệt web cho man --html. Trong mỗi lệnh,% s được thay thế bằng một tệp? Tên chứa đầu ra HTML từ groff, %% được thay thế bằng một dấu phần trăm (%) và% c được thay thế bằng dấu hai chấm (:).

Dựa trên những thông tin này, tôi tin rằng nó được định dạng lesstheo mặc định (ít nhất là cho trường hợp đầu tiên). Tuy nhiên, ngay cả khi đây là trường hợp, nó được ghi lại theo cách mà tôi dường như không rõ ràng (hoặc tôi đã học manlệnh sai cách).


2

Không có cách nào thực sự để trả lời đầy đủ câu hỏi của bạn nói chung cho các hệ điều hành khác nhau, vì việc mantriển khai không thực sự được chỉ định đầy đủ.

Câu trả lời theo tiêu chuẩn POSIX, không dành riêng cho Linux có thể được tìm thấy trong tài liệu POSIXman :

TÊN

man - display system documentation

TÓM TẮC

man [-k] name...

...

BIẾN MÔI TRƯỜNG

Các biến môi trường sau đây sẽ ảnh hưởng đến việc thực hiện của con người:

LANG

Cung cấp một giá trị mặc định cho các biến quốc tế không được đặt hoặc null. (Xem Biến quốc tế hóa XBD để biết mức độ ưu tiên của các biến quốc tế hóa được sử dụng để xác định các giá trị của danh mục địa phương.)

LC_ALL

Nếu được đặt thành giá trị chuỗi không trống, ghi đè giá trị của tất cả các biến quốc tế hóa khác.

LC_CTYPE

Xác định miền địa phương để giải thích các chuỗi byte dữ liệu văn bản dưới dạng ký tự (ví dụ: byte đơn trái ngược với ký tự nhiều byte trong đối số và trong cơ sở dữ liệu tóm tắt). Giá trị của LC_CTYPE không cần ảnh hưởng đến định dạng của thông tin được viết về toán hạng tên.

LC_MESSAGES

Xác định ngôn ngữ nên được sử dụng để ảnh hưởng đến định dạng và nội dung của thông báo chẩn đoán được ghi vào lỗi tiêu chuẩn và thông báo thông tin được ghi vào đầu ra tiêu chuẩn.

NLSPATH

Xác định vị trí của danh mục tin nhắn để xử lý LC_MESSAGES.

PAGER

Xác định lệnh lọc đầu ra để ghi đầu ra vào thiết bị đầu cuối. Bất kỳ chuỗi nào được chấp nhận dưới dạng toán hạng lệnh_ chuỗi cho lệnh sẽ hợp lệ. Khi đầu ra tiêu chuẩn là một thiết bị đầu cuối, đầu ra trang tham chiếu sẽ được dẫn qua lệnh. Nếu biến PAGER là null hoặc không được đặt, lệnh sẽ là một hoặc một tiện ích phân trang khác được ghi lại trong tài liệu hệ thống.sh-cmore

Lưu ý phần RATIONALE, mô tả lý do tại sao mankhông được chỉ định đầy đủ:

CƠ SỞ LÝ LUẬN

Người ta nhận ra rằng tiện ích con người chỉ có ích tối thiểu theo quy định. Ý kiến ​​của các nhà phát triển tiêu chuẩn được phân chia mạnh mẽ về việc con người cần phải cung cấp bao nhiêu hoặc ít thông tin. Tuy nhiên, họ đã cân nhắc rằng việc cung cấp một số cách truy cập tài liệu di động sẽ hỗ trợ tính di động của người dùng. Các đối số chống lại một đặc điểm kỹ thuật đầy đủ hơn là:

  • Số lượng lớn tài liệu không nên được yêu cầu trên một hệ thống không có dung lượng đĩa thừa.

  • Hệ thống thủ công hiện tại không trình bày thông tin theo cách hỗ trợ rất nhiều cho tính di động của người dùng.

  • "Hệ thống trợ giúp tốt hơn" hiện là một lĩnh vực trong đó các nhà cung cấp cảm thấy rằng họ có thể tăng thêm giá trị cho việc triển khai POSIX của họ.

Tùy chọn -f đã được xem xét, nhưng do sự khác biệt trong triển khai, nó không được bao gồm trong tập POSIX.1-2008 này.

Mô tả đã được thay đổi để cụ thể hơn về những gì phải được hiển thị cho một tiện ích. Các nhà phát triển tiêu chuẩn cho rằng nó không đủ để chỉ hiển thị các bản tóm tắt mà không đưa ra một mô tả ngắn về những gì mỗi tùy chọn và toán hạng làm.

Mục nhập "mục đích" được bao gồm trong cơ sở dữ liệu có thể giống với tiêu đề của phần (trừ tiền tố số) từ tập POSIX.1-2008 này cho mỗi tiện ích. Những tiêu đề này tương tự như những cái được sử dụng trong các hệ thống lịch sử cho mục đích này.

Xem mailx để biết lý do liên quan đến trình phân trang mặc định.

Thông báo trước trong mô tả LC_CTYPE đã được thêm vào vì không yêu cầu triển khai cung cấp các trang tham chiếu cho tất cả các địa điểm được hỗ trợ của nó trên mỗi hệ thống; thay đổi LC_CTYPE không nhất thiết phải dịch trang tham chiếu sang ngôn ngữ khác. Điều này tương đương với trạng thái hiện tại của LC_MESSAGES trong POSIX.1-2008 - các thông điệp cụ thể theo địa phương chưa phải là một yêu cầu.

Biến MANPATH lịch sử không được bao gồm trong POSIX vì không có nỗ lực nào được thực hiện để chỉ định các quy ước đặt tên cho các tệp trang tham chiếu, thậm chí không bắt buộc chúng phải là các tệp. Trên một số triển khai, chúng có thể là một cơ sở dữ liệu thực sự, một tệp siêu văn bản hoặc thậm chí các chuỗi cố định trong tệp thực thi của người đàn ông. Các nhà phát triển tiêu chuẩn coi tính di động của các trang tham chiếu nằm ngoài phạm vi công việc của họ. Tuy nhiên, người dùng cần lưu ý rằng MANPATH được triển khai trên một số hệ thống lịch sử và nó có thể được sử dụng để điều chỉnh mẫu tìm kiếm cho các trang tham chiếu từ các danh mục khác nhau (tiện ích, chức năng, định dạng tệp, v.v.) khi quản trị viên hệ thống tiết lộ vị trí và quy ước cho các trang tham khảo trên hệ thống.

...

Thảo luận lý do phân trang từ trang mailx :

Trình phân trang được chọn khi PAGER là null hoặc unset không được chỉ định một phần để cho phép thực hành lịch sử System V sử dụng pg làm mặc định. Bỏ qua chức năng phân trang, chẳng hạn như bằng cách tuyên bố rằng con mèo là người phân trang, sẽ không đáp ứng với ý nghĩa dự định của mô tả này. Tuy nhiên, bất kỳ "người dùng di động" nào cũng sẽ phải thiết lập PAGER một cách rõ ràng để có được trình phân trang ưa thích của mình trên tất cả các hệ thống. Lựa chọn trình phân trang được thực hiện một phần không xác định, không giống như lựa chọn trình soạn thảo VISUAL (bắt buộc là vi) vì hầu hết các máy nhắn tin lịch sử đều theo một chủ đề chung về đầu vào của người dùng, trong khi các trình soạn thảo khác nhau đáng kể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.