Làm cách nào để sử dụng trang man để tìm hiểu cách sử dụng lệnh?


92

Trong khi nghiên cứu một vấn đề khác, tôi đã gặp một lệnh ,

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

mà tôi muốn tìm hiểu thêm về. Vì vậy, tôi đã chạy man xargsvà nhận được đầu ra sau đây:

XARGS(1)                    General Commands Manual                   XARGS(1)

NAME
       xargs - build and execute command lines from standard input

SYNOPSIS
       xargs  [-0prtx]  [-E  eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
       [-d delimiter] [--delimiter delimiter]  [-I  replace-str]  [-i[replace-
       str]]    [--replace[=replace-str]]   [-l[max-lines]]   [-L   max-lines]
       [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s  max-
       chars]  [--max-chars=max-chars]  [-P max-procs] [--max-procs=max-procs]
       [--interactive]      [--verbose]      [--exit]      [--no-run-if-empty]
       [--arg-file=file]   [--show-limits]   [--version]   [--help]   [command
       [initial-arguments]]

DESCRIPTION
       This manual page documents the GNU version of xargs...

Tôi đang cố gắng cải thiện việc sử dụng tài liệu để tìm hiểu về các chương trình Linux, nhưng phần "Tóm tắt" đó đang khiến người dùng mới sợ hãi. Nó thực sự trông giống như vô nghĩa so với man locatehoặc man free.

Cho đến nay, tôi hiểu rằng dấu ngoặc vuông có nghĩa là tùy chọn và dấu ngoặc lồng có nghĩa là tùy chọn trong tùy chọn. Nhưng làm thế nào tôi có thể tạo ra một lệnh hợp lệ với điều đó?

Tôi không yêu cầu giúp đỡ với xargs ở đây. Tôi đang tìm kiếm sự giúp đỡ để giải thích một trang người đàn ông để hiểu các lệnh phức tạp. Tôi muốn ngừng làm cho các blog web được Google lập chỉ mục và trợ giúp cá nhân từ những người khác cách tiếp cận đầu tiên của tôi để học các lệnh Linux.


17
Tiếp tục đọc trang người đàn ông. Phần "TÙY CHỌN" giải thích tất cả các tùy chọn có sẵn trong phần "SYNOPSIS".
Giăng

7
bắt đầu vớiman man
mikeerv

14
Thường xuyên hơn không, đi thẳng xuống dưới và tìm phần ví dụ.
teppic

9
Và đừng chỉ quét trang man để tìm từ khóa. Thực sự đọc nó! Những hành vi kỳ lạ được cho là thường được giải thích tốt.
FloHimelf

6
sau khi man manđọc man intro.
mikeerv

Câu trả lời:


102

Chà, đây là cách rất riêng của tôi để đọc các trang:

Người đàn ông

Khi bạn mở một manpage bằng cách sử dụng manlệnh, đầu ra sẽ được hiển thị / render bằng lesshoặc morelệnh, hoặc bất kỳ lệnh khác sẽ được thiết lập như máy nhắn tin của bạn (manpager).

Nếu bạn đang sử dụng Linux, có lẽ bạn được phục vụ với cơ sở hạ tầng người đàn ông đã được cấu hình để sử dụng /usr/bin/less -is(trừ khi bạn đã cài đặt một số bản phân phối tối thiểu) như man(1), giải thích trên phần Tùy chọn của nó:

-P pager
Specify which pager to use. This option overrides the MANPAGER environment variable, 
which in turn overrides the PAGER variable. By default, man uses /usr/bin/less -is.

Trên FreeBSD và OpenBSD chỉ là vấn đề chỉnh sửa MANPAGERbiến môi trường vì chúng chủ yếu sẽ sử dụng morevà một số tính năng như tìm kiếm và tô sáng văn bản có thể bị thiếu.

Có một câu trả lời tốt cho câu hỏi về sự khác biệt more, lessmostở đây (không bao giờ được sử dụng most). Khả năng cuộn lùi và cuộn về phía trước theo trang bằng Spacehoặc cả hai cách theo dòng hoặc (cũng, sử dụng vicác ràng buộc jk) là điều cần thiết trong khi duyệt các trang. Nhấn htrong khi sử dụng lessđể xem tóm tắt các lệnh có sẵn.

Và đó là lý do tại sao tôi khuyên bạn nên sử dụng lesslàm máy nhắn tin cho người đàn ông của mình. lesscó một số tính năng cần thiết sẽ được sử dụng trong câu trả lời này.

Làm thế nào là một lệnh được định dạng?

Các quy ước về tiện ích : Thông số kỹ thuật cơ sở nhóm mở Vấn đề 7 - Phiên bản IEEE Std 1003.1, 2013. Bạn nên truy cập liên kết đó trước khi cố gắng hiểu một trang web. Tham chiếu trực tuyến này mô tả cú pháp đối số của các tiện ích tiêu chuẩn và giới thiệu thuật ngữ được sử dụng trong suốt POSIX.1-2017 để mô tả các đối số được xử lý bởi các tiện ích. Điều này cũng sẽ gián tiếp giúp bạn cập nhật về ý nghĩa thực sự của các từ như tham số, đối số, tùy chọn đối số ...

Người đứng đầu của bất kỳ trang web nào sẽ trông ít khó hiểu hơn đối với bạn sau khi hiểu được ký hiệu của các quy ước tiện ích:

utility_name[-a][-b][-c option_argument]
    [-d|-e][-f[option_argument]][operand...]

Có trong tâm trí những gì bạn muốn làm.

Khi thực hiện nghiên cứu của bạn về xargsbạn đã làm điều đó cho một purpouse, phải không? Bạn có một nhu cầu cụ thể đó là đọc đầu ra tiêu chuẩn và thực thi các lệnh dựa trên đầu ra đó.

Nhưng, khi tôi không biết tôi muốn lệnh nào?

Sử dụng man -khoặc apropos(chúng là tương đương). Nếu tôi không biết cách tìm tập tin : man -k file | grep search. Đọc các mô tả và tìm thấy một trong đó sẽ phù hợp hơn với nhu cầu của bạn. Thí dụ:

apropos -r '^report'
bashbug (1)          - report a bug in bash
df (1)               - report file system disk space usage
e2freefrag (8)       - report free space fragmentation information
filefrag (8)         - report on file fragmentation
iwgetid (8)          - Report ESSID, NWID or AP/Cell Address of wireless network
kbd_mode (1)         - report or set the keyboard mode
lastlog (8)          - reports the most recent login of all users or of a given user
pmap (1)             - report memory map of a process
ps (1)               - report a snapshot of the current processes.
pwdx (1)             - report current working directory of a process
uniq (1)             - report or omit repeated lines
vmstat (8)           - Report virtual memory statistics

Apropose hoạt động với các biểu thức thông thường theo mặc định, ( man apropos, đọc mô tả và tìm hiểu xem cái gì -r) và trong ví dụ này tôi đang tìm mọi trang chủ nơi mô tả bắt đầu bằng "báo cáo".

Để tìm thông tin liên quan đến việc đọc xử lý đầu vào / đầu ra tiêu chuẩn và tiếp cận xargsnhư một tùy chọn có thể:

man -k command| grep input
xargs (1)            - build and execute command lines from standard input

Luôn đọc DESCRIPTIONtrước khi bắt đầu

Hãy dành thời gian và đọc mô tả. Chỉ cần đọc mô tả của xargslệnh chúng ta sẽ biết rằng:

  • xargsđọc từ STDIN và thực thi lệnh cần thiết. Điều này cũng có nghĩa là bạn sẽ cần có một số kiến ​​thức về cách hoạt động của đầu vào tiêu chuẩn và cách thao tác thông qua các đường ống để ra lệnh chuỗi
  • Các hành vi mặc định là hành động như thế nào /bin/echo. Điều này cung cấp cho bạn một mẹo nhỏ rằng nếu bạn cần xâu chuỗi nhiều hơn một xargs, bạn không cần sử dụng echo để in.
  • Chúng tôi cũng đã học được rằng tên tập tin unix có thể chứa các dòng trống và dòng mới, rằng đây có thể là một vấn đề và đối số -0là một cách để ngăn chặn mọi thứ bùng nổ bằng cách sử dụng dấu tách ký tự null. Mô tả cảnh báo bạn rằng lệnh đang được sử dụng làm đầu vào cũng cần hỗ trợ tính năng này và GNU cũng findhỗ trợ nó. Tuyệt quá. Chúng tôi sử dụng rất nhiều tìm thấy với xargs.
  • xargs sẽ dừng lại nếu đạt trạng thái thoát 255.

Một số mô tả rất ngắn và đó thường là do phần mềm hoạt động theo cách rất đơn giản. Thậm chí đừng nghĩ đến việc bỏ qua phần này của trang web ;)

Những điều khác cần chú ý ...

Bạn biết rằng bạn có thể tìm kiếm các tập tin bằng cách sử dụng find. Có rất nhiều lựa chọn và nếu bạn chỉ nhìn vào SYNOPSIS, bạn sẽ bị choáng ngợp bởi những thứ đó. Đó chỉ là phần nổi của tảng băng chìm. Không bao gồm NAME, SYNOPSISDESCRIPTION, bạn sẽ có các phần sau:

  • AUTHORS: những người đã tạo hoặc hỗ trợ trong việc tạo lệnh.

  • BUGS: liệt kê bất kỳ khiếm khuyết đã biết. Có thể chỉ là những hạn chế thực hiện.

  • ENVIRONMENT: Các khía cạnh của shell của bạn có thể bị ảnh hưởng bởi lệnh hoặc các biến sẽ được sử dụng.

  • EXAMPLEShoặc NOTES: Tự giải thích.

  • REPORTING BUGS: Ai bạn sẽ phải liên hệ nếu bạn tìm thấy lỗi trên công cụ này hoặc trong tài liệu của nó.

  • COPYRIGHT: Người đã tạo và từ chối trách nhiệm về phần mềm. Tất cả liên quan đến giấy phép của chính phần mềm.

  • SEE ALSO: Các lệnh, công cụ hoặc các khía cạnh làm việc khác có liên quan đến lệnh này và không thể phù hợp với bất kỳ phần nào khác.

Rất có thể bạn sẽ tìm thấy thông tin thú vị về các khía cạnh bạn muốn của một công cụ trên phần ví dụ / ghi chú.

Thí dụ

Trong các bước sau tôi sẽ lấy findví dụ, vì các khái niệm của nó "đơn giản" hơn là xargsgiải thích (một lệnh tìm tệp và các giao dịch khác với thực thi stdin và đường ống của đầu ra lệnh khác). Chúng ta hãy giả vờ rằng chúng ta không biết gì (hoặc rất ít) về lệnh này.

Tôi có một vấn đề cụ thể đó là: Tôi phải tìm mọi tệp có .jpgphần mở rộng và với 500KiB (KiB = 1024 byte, thường được gọi là kibibyte) hoặc có kích thước lớn hơn trong thư mục máy chủ ftp.

Đầu tiên, mở hướng dẫn : man find. Là SYNOPSISmỏng. Hãy tìm kiếm những thứ bên trong hướng dẫn: Nhập /cộng với từ bạn muốn ( size). Nó sẽ lập chỉ mục rất nhiều mục -sizesẽ tính kích thước cụ thể. Bị kẹt. Không biết cách tìm kiếm với "nhiều hơn" hoặc "nhỏ hơn" một kích thước nhất định và người đàn ông không cho tôi thấy điều đó.

Hãy thử xem và tìm kiếm mục tiếp theo được tìm thấy bằng cách nhấn n. ĐỒNG Ý. Tìm thấy một cái gì đó thú vị : find \( -size +100M -fprintf /root/big.txt %-10s %p\n \). Có thể ví dụ này cho chúng ta thấy rằng với -size +100Mnó sẽ tìm thấy các tệp có 100MB trở lên. Làm thế nào tôi có thể xác nhận? Đi đến đầu trang và tìm kiếm các từ khác.

Một lần nữa, hãy thử từ greater. Nhấn gsẽ dẫn chúng tôi đến đầu trang. /greatervà mục đầu tiên là:

 Numeric arguments can be specified as

    +n     for **greater** than n,

    -n     for less than n,

     n      for exactly n.

Âm thanh tuyệt vời. Có vẻ như khối hướng dẫn này đã xác nhận những gì chúng tôi nghi ngờ. Tuy nhiên, điều này sẽ không chỉ áp dụng cho kích thước tập tin. Nó sẽ áp dụng cho bất kỳ ncái gì có thể tìm thấy trên trang này (như cụm từ đã nói: "Đối số số có thể được chỉ định là").

Tốt Hãy để chúng tôi tìm cách lọc theo tên : g /insensitive. Tại sao? Vô cảm? Wtf? Chúng tôi có một máy chủ ftp giả thuyết, trong đó "mà khác hệ điều hành" mọi người có thể cung cấp cho một tên tập tin với phần mở rộng như .jpg, .JPG, .JpG. Điều này sẽ dẫn chúng ta đến:

-ilname pattern
              Like  -lname,  but  the  match  is  case insensitive.  If the -L
              option or the -follow option is in  effect,  this  test  returns
              false unless the symbolic link is broken.

Tuy nhiên, sau khi bạn tìm kiếm lnamebạn sẽ thấy rằng điều này sẽ chỉ tìm kiếm các liên kết tượng trưng. Chúng tôi muốn các tập tin thực sự. Mục tiếp theo:

   -iname pattern
          Like -name, but the match is case insensitive.  For example, the
          patterns `fo*' and `F??' match  the  file  names  `Foo',  `FOO',
          `foo',  `fOo',  etc.   In these patterns, unlike filename expan‐
          sion by the shell, an initial '.' can be matched by  `*'.   That
          is, find -name *bar will match the file `.foobar'.   Please note
          that you should quote patterns as a matter of course,  otherwise
          the shell will expand any wildcard characters in them.

Tuyệt quá. Tôi thậm chí không cần phải đọc về -nameđể xem đó -inamelà phiên bản không nhạy cảm của trường hợp này. Cho phép tập hợp lệnh:

Chỉ huy: find /ftp/dir/ -size +500k -iname "*.jpg"

Điều gì tiềm ẩn ở đây: Kiến thức mà ký tự ?đại diện cho "bất kỳ ký tự nào tại một vị trí" và *đại diện cho "không hoặc nhiều hơn bất kỳ ký tự nào". Các -nametham số này sẽ cung cấp cho bạn một bản tóm tắt kiến thức này.

Mẹo áp dụng cho tất cả các lệnh

Một số tùy chọn, ghi nhớ và "kiểu cú pháp" di chuyển qua tất cả các lệnh khiến bạn phải mua một thời gian bằng cách không phải mở manpage. Những người được học bằng thực tiễn và phổ biến nhất là:

  • Nói chung, -vcó nghĩa là dài dòng. -vvvlà một biến thể "rất rất dài dòng" trên một số phần mềm.
  • Theo tiêu chuẩn POSIX, thường có thể xếp chồng một đối số gạch ngang. Ví dụ: tar -xzvf, cp -Rv.
  • Nói chung -Rvà / hoặc -rcó nghĩa là đệ quy.
  • Hầu như tất cả các lệnh có một trợ giúp ngắn gọn với --helptùy chọn.
  • --version hiển thị phiên bản của một phần mềm.
  • -p, trên các tiện ích sao chép hoặc di chuyển có nghĩa là "bảo vệ quyền".
  • -y có nghĩa là CÓ, hoặc "tiến hành mà không cần xác nhận" trong hầu hết các trường hợp.

Lưu ý rằng những điều trên không phải lúc nào cũng đúng. Ví dụ, công -rtắc có thể có nghĩa là những thứ rất khác nhau cho các phần mềm khác nhau. Luôn luôn là một ý tưởng tốt để kiểm tra và đảm bảo khi nào một lệnh có thể nguy hiểm, nhưng đây là những mặc định phổ biến.

Giá trị mặc định của lệnh.

Tại phần máy nhắn tin của câu trả lời này, chúng tôi thấy đó less -islà máy nhắn tin của man. Hành vi mặc định của các lệnh không phải lúc nào cũng được hiển thị ở một phần riêng biệt trên các trang hoặc các phần được đặt nhiều nhất.

Bạn sẽ phải đọc các tùy chọn để tìm ra mặc định hoặc nếu bạn may mắn, việc gõ /pagersẽ dẫn bạn đến thông tin đó. Điều này cũng đòi hỏi bạn phải biết khái niệm máy nhắn tin (phần mềm cuộn trang này) và đây là điều bạn sẽ chỉ có được sau khi đọc nhiều trang.

Tại sao điều đó quan trọng? Điều này sẽ mở ra nhận thức của bạn nếu bạn tìm thấy sự khác biệt về cuộn và hành vi màu trong khi đọc man(1)trên Linux ( less -ismáy nhắn tin) hoặc FreeBSD man(1)chẳng hạn.

Còn SYNOPSIScú pháp thì sao?

Sau khi nhận được tất cả thông tin cần thiết để thực hiện lệnh, bạn có thể kết hợp các tùy chọn, đối số tùy chọn và toán hạng nội tuyến để thực hiện công việc của mình. Tổng quan về các khái niệm:

  • Tùy chọn là các công tắc ra lệnh cho một hành vi lệnh. " Làm điều này " " không làm điều này " hoặc " hành động theo cách này ". Thường được gọi là công tắc.
  • Đối số tùy chọn được sử dụng trong hầu hết các trường hợp khi tùy chọn không phải là nhị phân (bật / tắt) như -ttrên mount, chỉ định loại hệ thống tệp ( -t iso9660, -t ext2). " Làm điều này với đôi mắt nhắm " hoặc " cho thú ăn, nhưng chỉ những con sư tử ". Cũng được gọi là đối số.
  • Toán tử là những thứ bạn muốn lệnh đó hành động. Nếu bạn sử dụng cat file.txt, toán hạng là một tệp trong thư mục hiện tại của bạn và nội dung của nó sẽ được hiển thị trên đó STDOUT. lslà một lệnh trong đó toán hạng là tùy chọn. Ba dấu chấm sau toán hạng ngầm cho bạn biết rằng catcó thể hành động trên nhiều toán hạng (tệp) cùng một lúc. Bạn có thể nhận thấy rằng một số lệnh đã đặt loại toán hạng mà nó sẽ sử dụng. Thí dụ:cat [OPTION] [FILE]...

Tóm tắt nội dung liên quan:

Khi nào phương pháp này sẽ không hoạt động?

  • Các trang không có ví dụ
  • Trang web nơi các tùy chọn có một lời giải thích ngắn
  • Khi bạn sử dụng các từ khóa chung chung như and, to, forbên trong trang man
  • Các trang không được cài đặt. Điều này có vẻ hiển nhiên nhưng, nếu bạn chưa lftpcài đặt (và các trang của nó), bạn không thể biết đó là một lựa chọn phù hợp như một ứng dụng khách ftp tinh vi hơn bằng cách chạyman -k ftp

Trong một số trường hợp, các ví dụ sẽ khá đơn giản và bạn sẽ phải thực hiện một số lệnh thực thi lệnh của mình để kiểm tra hoặc trong trường hợp xấu nhất là Google.

Khác: Ngôn ngữ lập trình và các mô-đun:

Nếu bạn đang lập trình hoặc chỉ tạo tập lệnh, hãy nhớ rằng một số ngôn ngữ có các hệ thống trang riêng, như perl( perldocs), python ( pydocs), v.v., nắm giữ thông tin cụ thể về phương thức / chức năng, biến, hành vi và thông tin quan trọng khác về mô-đun bạn đang cố gắng sử dụng và học hỏi Điều này hữu ích với tôi khi tôi đang tạo một tập lệnh để tải xuống các email IMAP chưa đọc bằng perl Mail::IMAPClientmô-đun.

Bạn sẽ phải tìm ra những trang cụ thể đó bằng cách sử dụng man -khoặc tìm kiếm trực tuyến. Ví dụ:

[root@host ~]# man -k doc | grep perl
perldoc              (1)  - Look up Perl documentation in Pod format


[root@host ~]# perldoc Mail::IMAPClient
IMAPCLIENT(1)         User Contributed Perl Documentation        IMAPCLIENT(1)

NAME
       Mail::IMAPClient - An IMAP Client API

SYNOPSIS
         use Mail::IMAPClient;

         my $imap = Mail::IMAPClient->new(
           Server   => ’localhost’,
           User     => ’username’,
           Password => ’password’,
           Ssl      => 1,
           Uid      => 1,
         );

... Hàng tấn thứ khác ở đây, với các phần như một trang thông thường ...

Với trăn:

[root@host ~]# pydoc sys
Help on built-in module sys:

NAME
    sys

FILE
    (built-in)

MODULE DOCS
    http://www.python.org/doc/current/lib/module-sys.html

DESCRIPTION
    This module provides access to some objects used or maintained by the
    interpreter and to functions that interact strongly with the interpreter.
...again, another full-featured manpage with interesting info...

Hoặc, chức năng help()bên trong vỏ trăn nếu bạn muốn đọc thêm chi tiết về một số đối tượng:

nwildner@host:~$ python3.6
Python 3.6.7 (default, Oct 21 2018, 08:08:16)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(round)

Help on built-in function round in module builtins:

round(...)
    round(number[, ndigits]) -> number

    Round a number to a given precision in decimal digits (default 0 digits).
    This returns an int when called with one argument, otherwise the
    same type as the number. ndigits may be negative.

Bonus: Các wtflệnh có thể giúp bạn với từ viết tắt và nó hoạt động như whatisnếu không có chữ viết tắt trên đó là cơ sở dữ liệu được tìm thấy, nhưng những gì bạn đang tìm kiếm là một phần của cơ sở dữ liệu người đàn ông. Trên Debian lệnh này là một phần của bsdgamesgói. Ví dụ:

nwildner@host:~$ wtf rtfm
RTFM: read the fine/fucking manual
nwildner@host:~$ wtf afaik
AFAIK: as far as I know
nwildner@host:~$ wtf afak
Gee...  I don't know what afak means...
nwildner@host:~$ wtf tcp
tcp: tcp (7)              - TCP protocol.
nwildner@host:~$ wtf systemd
systemd: systemd (1)          - systemd system and service manager

Bạn cũng có thể làm man find | grep .... Tôi thíchman command | sed -n '/^[[:space:]]*-/,/^$/p'
mikeerv

6
Vâng Bạn có thể. Tôi chỉ giả sử rằng nhà điều hành là "noob" và cố gắng bắt đầu với các trang man :)

3
Câu trả lời này cần phải là kết quả hàng đầu cho "Làm thế nào để tôi sử dụng hiệu quả man?" Cảm ơn bạn và cũng được thực hiện.
dùng1717828

8
@nwildner, bạn xứng đáng nhận được một viên kẹo sau câu trả lời lớn và có công thức như vậy. Làm tốt lắm!
Willian Paixao

6
Tôi nghĩ rằng điều này nên được thêm vào Linux. Như một mantrang tất nhiên.
myaut

38

Điều này được giải thích khá độc đáo trong man man:

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.

   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

Đối với cách bạn phải viết một lệnh hợp lệ từ đó, tốt, bạn không. Bản tóm tắt rất hữu ích khi bạn biết cách hoạt động của một lệnh. Nó có thể giúp bạn làm mới bộ nhớ của bạn. Để hiểu cách hoạt động của lệnh, bạn nên đọc trang man. Đặc biệt là các mô tả của các tùy chọn và phần ví dụ.

Đôi khi tóm tắt là đủ. Ví dụ man ls: trong :

SYNOPSIS
       ls [OPTION]... [FILE]...

Những lần khác, nó là vô ích trừ khi bạn đã biết cách sử dụng lệnh trong câu hỏi. Ví dụ man dd:

   dd [OPERAND]...
   dd OPTION

Vì vậy, kết luận, đừng lo lắng nếu bạn không có bản tóm tắt. Điều đó là bình thường. Đọc trang người đàn ông chính nó.


Cảm ơn bạn đã cho lời khuyên, đặc biệt là đoạn "Như thế nào ...".
dùng1717828

21

Một số điều cơ bản để hiểu tóm tắt

  • mỗi [foo]đại diện cho tham số hoặc tham số tùy chọn.
  • khi [foo [ bar ] ]cú pháp được sử dụng, bạn có thể sử dụng foo và bạn có thể thêm thanh.
  • tham số tùy chọn bắt buộc được sử dụng theo cách này [ -S size ], cho biết đối số -S đang chờ kích thước bắt buộc.

Ví dụ : foo [-S size ] filename ...

có nghĩa

  • lệnh là foo
  • tùy chọn -Scó thể được sử dụng, bạn phải nói size(tên cho bạn một gợi ý)
  • đối số bắt buộc là filename(điều này cũng cho bạn một gợi ý, xem man mkdir)
  • elipsis ...cho bạn biết bạn có thể sử dụng nhiều tập tin.

Bạn vẫn phải đi sâu vào trang man để hiểu tùy chọn (trong trường hợp mẫu của tôi ở trên, nội dung -S sizelà gì)


14

mancác trang thường được hiển thị với lessngày nay. Điều đó làm cho nó có thể tìm kiếm thông qua chúng. Tôi sẽ không bận tâm với bản tóm tắt, đặc biệt là không phải vì bạn có một dòng lệnh cụ thể mà bạn muốn hiểu.

Nhấn /và bắt đầu gõ -Ivà sau đó Enter. Lần truy cập đầu tiên sẽ nằm trong bản tóm tắt, lần thứ hai (sử dụng ncho lần tiếp theo) sẽ giúp bạn giải thích chi tiết -I.


11

Một điều quan trọng cần nhớ là bạn không thể chỉ nhìn vào hướng dẫn sử dụng cho một lệnh, trong trường hợp các lệnh thực thi các lệnh khác.

Đối với lệnh ví dụ của bạn

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

Bạn cần thông tin về không chỉ xargsmà còn bash[(điều này có thể có trong testtrang chủ). Bạn cũng có thể cần thông tin trên trình bao của mình (có thể là bash) cho các quy tắc trích dẫn, vì lệnh của bạn bao gồm một chuỗi trích dẫn phức tạp. Tôi đã có thể nói với bạn rằng đối số được trích dẫn là sai (và sai theo cách sẽ chỉ hiển thị khi bạn gặp một tệp có khoảng trắng trong tên); nội tâm "{}"có lẽ nên được '{}'.

Vì vậy, trước tiên bạn sẽ tham khảo trang web xargs và xem [-I replace-str]ý -I {}nghĩa của nó, và [command [initial-arguments]]những gì bashvà mọi thứ sau đó có nghĩa là gì. Sau đó, bạn sẽ tham khảo bashtrang chủ để làm gì -c, v.v.


6

Thêm vào các câu trả lời tuyệt vời đã được đưa ra:

1) Nếu bạn quan tâm đến một tiện ích gnu, đặc biệt là những tiện ích như sedgrepđôi khi, sử dụng infolệnh sẽ mang đến một phiên bản mở rộng rất nhiều của thông tin lệnh. sed, ví dụ, có một phần chi tiết về cách viết biểu thức chính quy và phần khác với một số ví dụ sử dụng rất phức tạp.

2) Đó là một "hướng dẫn". Một hướng dẫn được thiết kế chủ yếu để giúp bạn nhớ các chi tiết của một cái gì đó bạn đã hiểu. Nó được thiết kế để bạn có thể nhận được các chi tiết bạn cần một cách nhanh chóng và thoát ra. (Và cách quá nhiều không có ví dụ sử dụng hoặc chỉ những ví dụ tầm thường.)

Khi tôi cần phải học những điều mới mẻ, thậm chí là một tính năng nhỏ của một lệnh đó không phải là rõ ràng với tôi, tôi đi đến các trang web và tìm kiếm bằng những từ khóa tốt nhất mà tôi có thể nghĩ đến (ví dụ Linux xargs) và thêm từ howto, exampleshoặc tutorial. Điều này rất thường xuyên khá năng suất.

Tôi thường sử dụng duckduckgo vì nó duy trì quyền riêng tư của tôi, nhưng nếu tôi cần kiểm soát nhiều hơn các tìm kiếm của mình, tôi sử dụng Google vì tôi có thể bảo nó chỉ tìm kiếm trong một trang web hoặc chỉ trả về kết quả từ năm ngoái. (Nó có nhiều tùy chọn Tìm kiếm nâng cao khác. Bạn có thể Google chúng .;))

Một mẹo khác:

Đối với các lệnh tôi tham chiếu thường xuyên, tôi lưu trang man trong tệp văn bản

man bash > bashman.txt

và tải tập tin đó vào một cửa sổ khác trong trình soạn thảo văn bản của tôi để tôi có thể lật qua lại, sao chép và dán, v.v. Tôi thường làm cho tập tin chỉ đọc, vì vậy tôi không tình cờ đọc được nó, nhưng vì nó là của tôi bản sao cá nhân, tôi có thể chỉnh sửa nó theo bất kỳ cách nào tôi muốn, thêm thẻ để tôi có thể tìm thấy một phần dễ dàng hơn hoặc thậm chí thêm ghi chú hoặc ví dụ của riêng tôi.

Hạn chế duy nhất cho điều này là trang man gốc có thể được cập nhật và bản sao của tôi là tĩnh.


4

Để nhận trợ giúp nhanh với lệnh cụ thể của bạn, bạn có thể sử dụng Giải thích Shell . Ví dụ lệnh của bạn . Sau khi có được sự hiểu biết cấp cao đầu tiên về cách thức hoạt động của nó, bạn nên tiếp tục với các trang như các câu trả lời khác khuyến nghị.


2

Có các công cụ hữu ích để tìm hiểu thêm về các lệnh linux:

  1. cheatsẽ hiển thị tùy chọn được sử dụng thường xuyên cho một dòng lệnh. Ngoài ra, bạn có thể thêm của riêng bạn command + optionđể được hiển thị thông qua cheatcho một lệnh cụ thể.
  2. bropagescông cụ cung cấp một số ví dụ cho một dòng lệnh, có thể thêm ví dụ của riêng bạn hoặc upvote / downvote ví dụ đã cho sau khi nhận được mã xác minh thông qua bro thanks. Lệnh phải bỏ phiếu sẽ xuất hiện trên đầu brotrang.

1

Tôi đề nghị tldrcho một công cụ toàn diện giống như con người. Trang người đàn ông đơn giản và hướng đến cộng đồng. Trong Ubuntu, bạn có thể cài đặt nó qua snap, nhưng nó cũng có phiên bản cho các bản phân phối khác. Nó cũng cung cấp cho bạn một số ví dụ sử dụng phổ biến. Đề nghị 100%.


0

> Tôi đang tìm kiếm trợ giúp để giải thích một trang man để hiểu các lệnh phức tạp.

Tôi nghĩ đó là sự hiểu lầm ở đây. Điều làm cho Linux / UNIX trở nên mạnh mẽ là bạn có thể xây dựng các lệnh rất dài và hiệu quả bằng cách chuyển hướng thiết bị xuất chuẩn của một lệnh (ở đây locate) sang stdin của một lệnh khác (ở đây, xargs) thông qua một đường ống (| ). Do đó, như Random832 đã nói chính xác, bạn sẽ không tìm thấy một trang nào giải thích lệnh ví dụ của bạn làm gì.

Tôi khuyên bạn nên đọc hướng dẫn về kịch bản shell của Linux; các chi tiết Bash-Scripting Guide là một tài liệu tuyệt vời. Xin đừng bị đe dọa bởi nó; thành thạo Linux đòi hỏi nhiều năm và là một quá trình không bao giờ kết thúc, nhưng bạn có thể học những điều cơ bản trong một khoảng thời gian hợp lý.

Sau đó, hãy tham khảo các trang hướng dẫn khi bạn cần biết chi tiết về một lệnh cụ thể.

Khi bạn đã nắm được ý chính của nó, CommandlinefuBash One-Liners cũng đáng đọc để có được những ví dụ hay.


-1

Để tìm kiếm thứ gì đó cụ thể trong các lệnh trong trang man, bạn có thể sử dụng:

man echo | grep output.

Nhưng để tìm kiếm các công tắc (ví dụ -n), bạn phải sử dụng nó theo cách này:

man echo | grep -- -n
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.