Thủ thuật và mẹo tìm thông tin trong trang man [đã đóng]


80

Có ai có bất kỳ thủ thuật và lời khuyên cho việc tìm kiếm thông tin trong các trang người đàn ông?


1
man --help/ man -hvà anh chị em hoàn thiện hơn của nó man mancó các mẹo tìm kiếm và điều hướng.
Anton Tarasenko

Câu trả lời:


51

Hãy chú ý đến số phần: Giả sử bạn muốn giúp đỡ printf. có ít nhất hai trong số chúng: in shell và in C. Phiên bản bash của printf nằm trong phần 1, phiên bản C nằm trong phần 3 hoặc 3C. Nếu bạn không biết cái nào bạn muốn, hãy nhập man -a printfvà tất cả các trang thủ công sẽ được hiển thị.

Nếu những gì bạn đang tìm kiếm là định dạng của printf với tất cả các mã% và nó không xuất hiện trên trang man printf, bạn có thể chuyển đến các trang man liên quan được liệt kê trong đoạn XEM CSONG. Bạn có thể tìm thấy một cái gì đó như formats(5), gợi ý bạn gõ man 5 formats.

Nếu bạn cảm thấy khó chịu khi man printfcung cấp cho bạn printf (1) và tất cả những gì bạn muốn là printf (3), bạn phải thay đổi thứ tự các thư mục được quét trong MANPATHbiến môi trường và đặt các thư mục cho ngôn ngữ C trước các lệnh cho shell. Điều này cũng có thể xảy ra khi các trang man của Fortran hoặc TCL / Tk được liệt kê trước các trang C.

Nếu bạn không biết bắt đầu từ đâu, hãy gõ man introhoặc man -s <section> intro. Điều này cung cấp cho bạn một bản tóm tắt các lệnh của phần được yêu cầu.

Các phần được xác định rõ:

  • 1 là cho các lệnh shell,
  • 2 là cho các cuộc gọi hệ thống,
  • 3 là dành cho giao diện lập trình (đôi khi là 3C cho C, 3F cho Fortran ...)
  • 5 là cho các định dạng tệp và các quy tắc khác như định dạng printf hoặc regex.

Cuối cùng nhưng không kém phần quan trọng: thông tin được cung cấp trong các trang man không dư thừa, vì vậy hãy đọc kỹ từ đầu đến cuối để tăng cơ hội tìm thấy những gì bạn cần.


11
Trên hầu hết các hệ thống, bạn có thể kiểm tra man manđể xem mô tả đầy đủ về các phần khác nhau.
Steven D

1
Sẽ thật tuyệt nếu có một chương trình tìm kiếm một trang bằng «từ khóa». Tức là gần đây tôi không thể nhớ tên của hàm c để tìm chuỗi con (và strstr()) và tôi không có internet xung quanh.
Hi-Angel

3
@ Hi-Angel man -k substringhoặc apropos substringsẽ giúp bạn.
Kusalananda

58

Nhập dấu gạch chéo /và sau đó nhập chuỗi để tìm kiếm. Sau đó tiếp tục nhấn nđể đến mục tiếp theo


37

tìm kiếm người đàn ông

Điều này sẽ cung cấp cho bạn một danh sách tất cả các trang man liên quan đến 'tìm kiếm'.


2
Và để liệt kê tất cả các trang man liên quan đến 'tìm kiếm' trong phần cụ thể (ví dụ số 3), người ta có thể sử dụng trang này: man -k search -s 3 Cũng được đề cập trong superuser.com/a/677969/599957
kenichi

Tôi biết những bình luận như thế này được tán thành, nhưng cảm ơn, cảm ơn, cảm ơn! Tôi thực sự đã tìm kiếm một lệnh như thế này lâu hơn tôi quan tâm thừa nhận ... năm !!
MikeyE

19

Như @Steven D nói, đừng quên các infotrang.

Ngoài ra, đừng bị đe dọa bởi các infotrang. Tôi biết nhiều người không sử dụng các trang thông tin vì hệ thống điều hướng tích hợp. Giải pháp yêu thích của tôi là dẫn các trang thông tin qua less:

info gpg |less

Bằng cách này, tôi có thể điều hướng các infotrang bằng máy nhắn tin yêu thích của mình. Các infotrang bây giờ sẽ hoạt động giống như mancác trang.


1
này, đó là một mẹo hay về điều hướng
glenn jackman

18

Các apropostiện ích là nghiêm túc tiện dụng cho việc tìm kiếm manpage thích hợp.


1
man -k== apropos, phải không?
phunehehe

1
aproposlà những gì tôi sử dụng tất cả thời gian khi tìm kiếm một cái gì đó không có trang man cho chính nó.
Polemon

1
'man man' nói rằng 'man -k' tương đương với 'apropos -r'. Tôi nghĩ apropos mạnh hơn một chút. Tôi thường sử dụng 'man -k' vì nó ngắn hơn một chút.
Kristof Provost

16

Máy nhắn tin mặc định để đọc một trang người đàn ông là less. Có tài liệu less ở đây .

Đặc biệt:

  • Cuộn lên / xuống bởi một trang: b/ space
  • Cuộn lên / xuống một nửa trang: u/ d
  • Tìm kiếm tiến / lùi: // ?, sau đó nhập một biểu thức chính quy,
    • sau đó nhấn n để đi đến trận đấu tiếp theo hoặc
    • shift+ Nđể đi đến trận đấu trước.
    • Nếu trang được bao phủ bởi các trận đấu không thú vị, hãy nhấn spaceđể đi đến trang tiếp theo.
  • Thêm một @trước biểu thức thông thường để tìm kiếm từ đầu.

Đây là câu trả lời tốt nhất. Thêm điểm để sử dụng các biểu tượng kbd. ;)
Chiramisu

Cuộn lên / xuống bởi một trang cũng có thể được thực hiện với ctrl+space/ f, điều này có thể hữu ích tùy thuộc vào ngón tay bạn thích sử dụng để điều hướng.
joelostblom

8

Luôn luôn kiểm tra những gì trong phần XEM CSONG. Các lệnh hiển thị dưới phần này trong infotrang có thể được chọn bằng cách đặt con trỏ vào lệnh mong muốn và sau đó nhấn phím enter. Thường xuyên tôi tìm thấy các lệnh hoặc chức năng hữu ích khác theo cách đó.


7

Nếu bạn thấy thoải mái hơn với trình soạn thảo của mình so với trình nhắn tin mặc định, bạn có thể đặt MANPAGERtrong môi trường của mình. Ví dụ: tôi có dòng này trong ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"

4

Tôi cho rằng, sử dụng hầu hết máy nhắn tin là một ý tưởng tốt. Máy nhắn tin này rất mạnh, nhưng tính năng chính đối với tôi - hiển thị các trang man màu. Tính năng này cải thiện nhận thức về văn bản đơn giản và dễ dàng tìm kiếm thông tin cần thiết.

Nhìn vào ảnh chụp màn hình đính kèm, văn bản trông rất đẹp phải không?

máy nhắn tin nhiều nhất


2
Bạn đã bỏ qua phần thông tin quan trọng nhất: làm thế nào để tôi sử dụng mostđể xem các trang hướng dẫn.
dùng1968963

2
@ACK_stoverflow - có lẽ không phải là một ý tưởng tốt để đề nghị anh chàng làm điều đó > ~/.bashrcvì nó sẽ ghi đè lên những gì trong đó. Theo tôi, tốt hơn là thêm ( >>) hoặc thêm vôi theo cách thủ công.
vatsug

@vatsug Wow cuộc gọi tốt, đây là những gì bình luận của tôi nên nói: Cài đặt nó và dùng thử : aptitude install most; export MANPAGER="most"; man man. Để làm cho nó vĩnh viễn:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow

4

Trong Linux man, bạn có thể thực hiện man -K string(lưu ý chữ hoa K) để thực hiện tìm kiếm vũ phu của một thuật ngữ nhất định

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

rất hữu ích khi bạn không biết tìm kiếm ở đâu.


3

Đừng bỏ qua các infotrang. Nhiều công cụ GNU có các trang thông tin rộng hơn nhiều so với các trang man. Thông thường, phần XEM CSONG sẽ nói "Tài liệu đầy đủ cho foo được duy trì dưới dạng hướng dẫn Texinfo." Điều này đặc biệt đúng với mọi thứ trong gói GNU coreutils.

Ngoài ra, nếu bạn là người dùng emacs, đừng quên bạn có thể đọc các trang thông tin và hướng dẫn mà không cần rời khỏi trình soạn thảo của mình: M-x infoM-x woman.


3

Đối với những trang dài hơn, phức tạp hơn, tôi thấy việc đọc chúng từ máy tính trở nên dễ dàng hơn nhiều (lẻ, tôi biết) và vì vậy tôi có các chức năng này trong .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}

2

Từ câu trả lời của Kristof, nếu bạn (tức là) gõ, man -k chmodbạn sẽ nhận được một danh sách các possibilites. Lưu ý số trong ngoặc đơn, nó có nghĩa là phần cần tìm trong các trang hướng dẫn:

Trên UNIX, bạn có thể thử:

man -s1 chmod Nó sẽ hiển thị trang man cho lệnh chmod

man -s2 chmod nó sẽ hiển thị trang man cho hàm C lib chmod ()

Trên Linux bạn nên thay đổi -scho-S


người đàn ông 1 chmod người đàn ông 2 chmod làm điều tương tự.
Chế độ xem hình elip

2

Xem các trang hướng dẫn trong ứng dụng đồ họa thân thiện với người dùng:

konqueror man:(command)

Đối với mục lục cấp cao nhất:

konqueror man:

Đặc trưng:

  • Nếu bạn nhập một lệnh có khớp trong nhiều phần, nó sẽ đưa bạn đến trang định hướng
  • Đây là một ứng dụng đồ họa, vì vậy bạn không cần phải nhớ các chuỗi khóa khó hiểu để điều hướng trang
  • Nó bao gồm các siêu liên kết đến các trang liên quan (bao gồm các trang "xem thêm")
  • Bạn có thể mở các trang liên quan trong các tab riêng biệt

Nhân tiện, điều này cũng làm việc với info:(command). Một số chương trình cung cấp nhiều thông tin hơn thông qua "thông tin" hơn thông qua "người đàn ông" và konqueror cung cấp giao diện đẹp hơn nhiều để duyệt các trang thông tin này. Lưu ý: Chỉ cần sử dụng info:, cũng hoạt động để có được một bảng mục lục cấp cao nhất.
tộc

Một hiệu ứng tương tự có thể đạt được bằng cách sử dụng gmangói thiết lập máy chủ web manpage tại localhost / cgi-bin / man / man2html .
tộc

Các lựa chọn thay thế trên AskUbfox: Askubfox.com/questions/253705/ cấp
nobar

... yelpLà một sự thay thế giảm trọng lượng nhẹ hơn cho konqueror- mặc dù nó không thiếu việc trình bày một bảng mục lục hoặc một trang định hướng cho các tên được sử dụng trong nhiều phần. Bạn phải phân biệt rõ ràng những điều này bằng cách nối thêm .(section)- ví dụ yelp man:open.2. Bạn cũng có thể sử dụng <kbd> Ctrl-L </ kbd> để mở thanh vị trí.
tộc 1/12/2015

2

Dayum, mọi người! Những câu trả lời phức tạp là gì?! Bất cứ điều gì đã xảy ra với sự đơn giản là chìa khóa cho sự sáng chói và những gì không? Hầu hết các phím vi / vim của bạn sẽ hoạt động ổn định:

/hoặc ?- Tìm kiếm tiến hoặc lùi (như một số kẻ đã đề cập). Trong trường hợp trước đây, một chữ thường n sẽ cuộn qua các trận đấu về phía trước, một chữ N viết hoa sẽ đi lùi. Điều ngược lại là đúng đối với câu hỏi sau - dấu hỏi.

Hơi phức tạp hơn các tìm kiếm thông qua các biểu thức thông thường. Sự khác biệt giữa man(hoặc less) và VIM là bạn phải sử dụng ký tự esc () để khai báo các siêu ký tự trong biểu thức của bạn khi sử dụng ký tự sau. Tin tốt là khi bạn đang sử dụng ( manhoặc less) trước đây - không quá nhiều. Vì vậy, bạn có thể dễ dàng đặt cái này để sử dụng khi tìm kiếm, ví dụ, một iptablestrang man cho nhiều cụm từ như vậy : /(iptables|rules). Nếu bạn không quen thuộc với các cụm từ thông dụng, điều này có nghĩa là "Tìm kiếm các phiên bản của từ iptablesHOẶCrules". Sau khi nhập cái này và tiếp tục nhấn n, bạn sẽ cuộn qua các kết quả tìm kiếm xen kẽ với kết quả được tô sáng độc đáo cho bạn với các màu khác nhau (thực tế là hai. Haha). Nếu bạn đang cố lướt qua trang và muốn tập trung vào các điều khoản hoặc khái niệm cụ thể - bạn sẽ không bỏ lỡ điều gì!

Và, tất nhiên, để điều hướng nhanh hơn, các tiêu chuẩn thông thường của bạn vivẫn đứng (không có ý định chơi chữ): gghoặc G- bắt đầu / kết thúc tài liệu; (Sửa chữa! Trong manbạn có thể sử dụng tất cả các phím được đề cập bên dưới mà không cần sử dụng Ctrl. viChỉ dành cho ). Ctrl + u or d- Cuộn lên hoặc xuống; Ctrl + b or f- Điều tương tự, chỉ trong những bước nhảy lớn hơn. "Trang lùi hoặc tiến"; ehoặc y- cuộn theo một dòng duy nhất, nhưng tôi nghĩ hầu hết mọi người chỉ muốn sử dụng các phím mũi tên. Tuy nhiên, nếu bạn muốn ở lại "1337" và "không bao giờ rời khỏi nhà" (như tôi làm lol) - đó là cách để đi.

Điều tôi đang cố gắng nói là UNIX có hai hương vị chính của điều khiển chương trình bàn phím, cả hai đều là readlinethư viện: vi và emacs. Tăng số lượng của bạn trong một trong hai (nhưng, tốt nhất là - trong cả hai) và nó sẽ làm cho cuộc sống của bạn bớt phức tạp hơn rất nhiều. Hầu hết các chương trình CLI trong UNIX đều sử dụng một trong hai. BASHsử dụng các điều khiển emacs theo mặc định, nhưng nó có thể dễ dàng được đặt thành "chế độ vi" bằng cách nhập vào set -o vi. Điều tương tự cũng có thể được nói cho các biểu thức thông thường, nhưng điều đó sẽ lạc đề. Tôi thậm chí còn đi xa hơn khi nói rằng cả hai đều là "ngôn ngữ chung" của UNIX.


2

Tương tự nhưng hơi khác với câu trả lời của Rob Hoelz,

Thêm vào đây trong ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Bây giờ vimmanlà một người xem trang tuyệt vời và :Mantừ bên trong Vim (hoặc chỉ đơn giản là nhấn Kvào một từ khóa) là một trình duyệt trang tuyệt vời.


1

Hầu hết chúng ta đều đặt biến PATH. Điều này sẽ chỉ cho bạn cách tự động làm cho đường dẫn tìm kiếm của người đàn ông khớp với lệnh tìm kiếm PATH của bạn.

Giả sử bạn nối đường dẫn của mình để bao gồm các tiện ích cá nhân, dành riêng cho công việc và được cài đặt cục bộ, như export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Là một tác dụng phụ, man foosẽ không hiển thị các trang được lưu trữ tại ~ / man, / nhóm làm việc / người đàn ông hoặc / opt / local / man.

Để giải quyết vấn đề này, tôi sử dụng manpathlệnh để tự động đặt đường dẫn tìm kiếm trang man. Ví dụ: ~ / .bashrc của tôi có như sau. Điều này hoạt động với tôi trên hàng trăm hệ thống khác nhau chạy mọi thứ từ FreeBSD 4.x, Darwin và CentOS 5:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Một số hệ thống (như Apple Leopard) tự động đặt MANPATH, nhưng điều đó có nghĩa là hệ thống của bạn sẽ sử dụng biến MANPATH thay vì sử dụng manpath. Do đó, các trang man cho 'MacPorts' (/ opt / local / man) bị bỏ qua. Tôi muốn tự mình kiểm soát điều này, vì vậy tôi bỏ đặt MANPATH:

unset MANPATH
manpath >/dev/null

1

Nếu bạn đang tìm kiếm thông tin liên quan đến một bashBUILTIN (ví dụ như time, disown, set, hay [[), thay vì slogging qua chi tiết bashtrang thông tin hay man bash, bạn có thể nhập help {builtin-keyword}và lấy thông tin cú pháp cơ bản một cách nhanh chóng.


1

Nếu bạn cảm thấy khó chịu khi man printf cung cấp cho bạn printf (1) và tất cả những gì bạn muốn là printf (3), bạn có thể nói với người đàn ông bạn muốn printf từ phần 3 bằng cách đặt phần trước printf, như vậy : man 3 printf, mà không phải thay đổi thứ tự của các thư mục được quét trong biến môi trường MANPATH và đặt các thư mục cho ngôn ngữ C trước các thư mục shell.


1

Tôi chỉ sử dụng grep. Nếu tôi tự hỏi -stùy chọn của readlệnh đã làm gì, tôi sẽ thử các lệnh này cho đến khi nhận được câu trả lời:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

Trong trường hợp này chỉ có infolệnh cung cấp một câu trả lời rõ ràng. Câu trả lời tuyệt vời này cung cấp các chi tiết về các hệ thống trợ giúp khác nhau.


1

man -a printfchỉ mặc định man 1trên máy Linux Mint của tôi. whatis printfcung cấp cho tôi thông tin thích hợp.


1

Ví dụ -u, để tìm hiệu quả cho chuyển đổi ký tự đơn , bạn có thể thường xuyên sử dụng:

/^ *-u($|\s)

Tiết kiệm rất nhiều thời gian nếu nhiều tùy chọn có '-u' làm tiền tố.


Ngoài ra, biểu thức chính này sẽ hữu ích: /-u($|[,\s]) trong trường hợp ký tự tùy chọn được đóng khung bằng dấu phẩy. Nhưng nếu bạn muốn xem tất cả các mục của các tùy chọn nhân vật 'u' (như -u]trong [--udp|-u]các netstatsổ tay), bạn sẽ cần một cái gì đó như thế này: /-u($|[^a-z]) Và nếu vihay vimđược sử dụng như máy nhắn tin: /-u\($\|[^a-z]\)
kenichi

0

Lệnh apropos (1) được sử dụng để tìm kiếm các trang man. Tuy nhiên, hầu hết việc triển khai apropos (1) chỉ tìm kiếm trong phần NAME, điều này rất hạn chế.

NetBSD có triển khai tìm kiếm toàn văn bản của apropos (1), có khả năng tìm kiếm toàn bộ nội dung của các trang man. Ngoài ra còn có một giao diện dựa trên web cho nó: man-k.org , mà bạn có thể dùng thử.


0

nhập mô tả hình ảnh ở đâyNếu bạn cảm thấy khó đọc các trang này vì tất cả các văn bản màu trắng, bạn có thể tô màu chúng. Hầu hết các trang người đàn ông mở với less. Đối với less, tôi sử dụng các cài đặt màu sau đây .bashrctừ đây :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Đây là cho bash và zsh. Đối với most, fish, xtermrxvtxem các liên kết ở trên.

Để đọc thêm:


0

Và đối với những người thích đọc các trang thông tin và người đàn ông trong màn hình cảm ứng, bạn có thể chuyển man / thông tin sang yad hoặc zquil và sử dụng tất cả các tính năng gtk3 như cuộn ngón tay bản địa. Cũng hoạt động tuyệt vời với màn hình refular và chuột:

man cat |yad --text-info 

Bạn cũng có thể sử dụng tiện nghi hoặc bạn có thể thêm các tùy chọn yad như:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Mẹo: bằng cách hiển thị uri yoh có thể nhấp vào liên kết web bên trong trang man bằng chuột / ngón tay.

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.