Có cách nào để xem tài liệu `man` chỉ cho tùy chọn được chỉ định của lệnh


24

Nếu tôi muốn biết ý nghĩa của wget -b, tôi xem hướng dẫn bằng cách man wget, sau đó tìm kiếm -btùy chọn.

   -b
   --background
       Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Tôi muốn nhận được kết quả bằng một lệnh như thế nào man wget -b. (Tất nhiên điều này không hoạt động.)

Có một cách tương tự để làm cho nó có thể?


wget -h | grep '\ -b'
Faheem Mitha

Câu trả lời:


5

Bạn có thể chuyển hướng trang đến awkvà thực hiện phần:

man wget | awk '/^ *-b *.*$/,/^$/{print}'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Phần đó là tất cả mọi thứ nằm giữa một -bvà một dòng trống.


1
{print}có thể được bỏ qua
Costas

Cảm ơn, tôi đã cố gắng sử dụng với GNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)awk version 20070501(OS X), nhưng chỉ hoạt động với 4.0.1.
ironsand

1
.*$cũng có thể được bỏ qua
Walter Tross

22

Nếu bạn dùng lesslàm máy nhắn tin cho đàn ông, bạn có thể thử

LESS="+/^\s+-b" man wget

Ở đâu

  1. +biểu tượng để thực hiện thao tác tiếp theo sau khi lessđã mở
  2. / lệnh để bắt đầu tìm kiếm
  3. ^\s+-bregrec để khớp -btừ đầu dòng

Vì vậy, nếu bạn thích, bạn có thể sắp xếp các hàm phù hợp cho shell

function rman {
#USAGE: rman programm.name option.to.search (with "-" symbol)
LESS="+/^\s+$2" man "$1"
}

và thêm nó vào ~/.bashrcví dụ.


Điều này không hiệu quả với tôi, tôi nghĩ bởi vì nó sẽ không thực hiện kết hợp đa dòng
rb612

14

Khi bạn chạy, man commandbạn có thể nhấn /và sau đó nhập văn bản đơn giản để tìm kiếm. Ví dụ, nhập /-bvà nó sẽ chuyển sang phiên bản đầu tiên của -bvăn bản.


@drewbenn ơi, đẹp quá. Tôi đã luôn nhấn /+ enter để tiếp tục.
lông mịn

10

Tôi đã viết một kịch bản nhỏ để làm điều này được gọi là ông , ví dụ he wget -b.

Chiến lược cơ bản là: tìm kiếm tùy chọn (ví dụ -b) làm từ đầu tiên trên một dòng, sau đó in cho đến tiêu đề tiếp theo hoặc dòng tiếp theo với thụt lề phù hợp.

Nếu bạn không thể sử dụng nó, bạn có thể nhận được một cái gì đó tương tự bằng cách sử dụng cơ bản sed, ví dụ

man wget | sed -ne '/^  *-b/,/^$/p'

Ngoài ra kịch bản desc của bạn là rất hữu ích.
Pandya

Chỉ cần quyết định đổi tên nó thành he, như trong short help, cộng he/ man.
Mikel

Cập nhật để làm việc với ví dụ mới wget -b,.
Mikel

3

Tôi sử dụng đoạn script sau kết nối với notifyshell.com . Tôi đã sao chép nó từ reddit một thời gian trước:

#!/bin/bash
cmd=$1
shift
args=$*
args=${args/ /+}
w3m -dump "http://explainshell.com/explain/$cmd?args=$args"

Tôi đặt tên cho nó rmanvà đặt nó trong của tôi $PATH. Cách sử dụng cho wget -b:

$ rman wget -b    
[logo]

  • about
  •
  • [                    ]

wget(1) -b

The non-interactive network downloader

-b
--background
    Go to background immediately after startup.  If no output file is specified via the -o, output is
    redirected to wget-log.

source manpages: wget

Bạn có thể tinh chỉnh tập lệnh này một chút để không hiển thị rác ngay từ đầu.

EDIT: Tôi đã nhận nó từ đây . Cảm ơn tác giả!


3
Điều quan trọng cần lưu ý là điều này có khả năng ghi lại một cách thực hiện / phiên bản khác của các lệnh từ những lệnh được cài đặt trên máy.
Stéphane Chazelas

Ngoài ra, không có lối thoát và trích dẫn xấu trong mã.
l0b0

Vâng, tôi tự hỏi nếu tôi nên nhấn mạnh điều đó. Tuy nhiên, nếu một tùy chọn cụ thể có nghĩa là một cái gì đó trong một hương vị của chương trình, thì nó thường có nghĩa tương tự trong một hương vị khác. Điều thường xuyên hơn là một số tùy chọn bị thiếu. Một lần nữa, đây chỉ là kinh nghiệm của tôi.
Arkadiusz Drabchot

@ l0b0: Tôi đã không viết mã này, tôi sẽ không sử dụng bash ở nơi đầu tiên
Arkadiusz Drabchot

0

Ngoài ra, nếu bạn greplà GNU grep, bạn có thể sử dụng nó như sau:

man wget | grep -EA3 '^ *-b'

Trong đó -A(phần mở rộng GNU) dành cho số lượng dòng in sau khi khớp dòng (ở đây 3). bạn có thể sử dụng số thích hợp để mô tả đầy đủ.

Thí dụ:

$ man wget | grep -EA3 '^ *-b'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is
           redirected to wget-log.

$ man grep | grep -EA3 '^ *-A'
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing a  group  separator
              (--)  between  contiguous groups of matches.  With the -o or --only-matching option, this has no effect
              and a warning is given.

0

Để có trải nghiệm dòng lệnh, hãy sử dụng phiên bản @Costas.

Đối với phiên bản trọng lượng nhẹ, mansử dụng giao diện văn bản tương tự như less. Điều này có nghĩa là bạn có thể sử dụng các lệnh tương tự như less.

# open manual to wget
man wget

# search for -b
/-b

# use "n" to navigate to next version of -b until you find what you want
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.