글쎄, 이것은 맨 페이지를 읽는 매우 개인적인 방법입니다.
맨 페이지
man
명령을 사용하여 맨 페이지를 열면 less
또는 more
명령 또는 호출기 (manpager)로 설정 될 다른 명령에 의해 출력이 표시 / 렌더링됩니다 .
Linux를 사용하는 경우 아마도 /usr/bin/less -is
(최소 배포판을 설치하지 않은 경우) 을 사용하도록 이미 구성된 man 인프라와 함께 제공되는 경우 man(1)
옵션 섹션에 설명하십시오.
-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.
FreeBSD와 OpenBSD에서는 MANPAGER
환경 변수 를 편집하기 만하면 됩니다. 대부분 환경 변수를 사용하기 때문에 more
검색 및 텍스트 강조 표시와 같은 일부 기능이 누락되었을 수 있습니다.
이 무슨 차이의 질문에 좋은 답변입니다 more
, less
그리고 most
한 여기 (사용되지 않는다 most
). 맨 페이지를 탐색 할 때는 또는 Space로 줄 바꿈 ( 및 바인딩 사용 )을 사용하여 뒤로 또는 뒤로 페이지를 스크롤하는 기능 이 필수적입니다. 사용 하는 동안을 누르면 사용 가능한 명령 요약이 표시됩니다.↓↑vi
jkhless
그렇기 때문에 less
맨 페이저 로 사용하는 것이 좋습니다 . less
이 답변 중에 사용할 몇 가지 필수 기능이 있습니다.
명령은 어떻게 형식화됩니까?
유틸리티 규약 : Open Group Base 사양 Issue 7-IEEE Std 1003.1, 2013 Edition. 맨 페이지를 이해하기 전에 해당 링크를 방문해야합니다. 이 온라인 참조는 표준 유틸리티의 인수 구문을 설명하고 유틸리티가 처리하는 인수를 설명하기 위해 POSIX.1-2017 전체에서 사용되는 용어를 소개합니다. 이것은 또한 매개 변수, 인수, 인수 옵션과 같은 단어의 실제 의미에 대해 간접적으로 업데이트합니다.
유틸리티 규약의 표기법을 이해 한 후 맨 페이지의 헤드는 덜 까다로워 보일 것입니다.
utility_name[-a][-b][-c option_argument]
[-d|-e][-f[option_argument]][operand...]
하고 싶은 일을 명심하십시오.
당신에 대한 조사를 xargs
할 때 당신은 그것을 목적으로 했어요? 표준 출력을 읽고 해당 출력을 기반으로 명령을 실행해야하는 특정 요구가있었습니다.
그러나 내가 원하는 명령을 모를 때?
사용 man -k
또는 apropos
(그들은 동일). 파일을 찾는 방법을 모른다면 : man -k file | grep search
. 설명을 읽고 귀하의 요구에 더 잘 맞는 것을 찾으십시오. 예:
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
Apropos는 기본적으로 정규 표현식으로 작동하고 ( man apropos
, 설명을 읽고 그 내용을 찾습니다 -r
)이 예제에서는 설명이 "report"로 시작하는 모든 맨 페이지를 찾고 있습니다.
표준 입출력 처리를 읽고 xargs
가능한 옵션으로 도달하는 것과 관련된 정보를 찾으려면 다음을 수행하십시오 .
man -k command| grep input
xargs (1) - build and execute command lines from standard input
DESCRIPTION
시작하기 전에 항상
시간을내어 설명을 읽으십시오. xargs
명령에 대한 설명을 읽음으로써 우리는 그것을 배울 것입니다
xargs
STDIN에서 읽고 필요한 명령을 실행합니다. 또한 표준 입력의 작동 방식과 파이프를 통해 명령을 연결하는 방법에 대한 지식이 필요합니다.
- 기본 동작은 다음과 같습니다
/bin/echo
. 이것은 하나 이상의 체인을 연결 xargs
해야하는 경우 에코를 사용하여 인쇄 할 필요가 없다는 팁을 제공합니다 .
- 또한 유닉스 파일 이름에는 공백과 개행 문자가 포함될 수 있으며 이는 문제가 될 수 있으며 인수
-0
는 null 문자 구분 기호를 사용하여 폭발을 방지하는 방법 이라는 것을 배웠습니다 . 설명은 입력으로 사용되는 명령이이 기능도 find
지원해야 하며 GNU가이를 지원함을 경고 합니다. 큰. 우리는로 찾기를 많이 사용합니다 xargs
.
xargs
종료 상태 255에 도달하면 중지됩니다.
일부 설명은 매우 짧으며 일반적으로 소프트웨어가 매우 간단한 방식으로 작동하기 때문입니다. 맨 페이지 의이 부분을 건너 뛸 생각조차하지 마십시오 .)
주의 할 사항
를 사용하여 파일을 검색 할 수 있다는 것을 알고 있습니다 find
. 많은 옵션이 있으며를 보시면 SYNOPSIS
압도 당할 것입니다. 빙산의 일각에 불과합니다. 제외 NAME
, SYNOPSIS
그리고 DESCRIPTION
다음과 같은 부분이있을 것이다 :
AUTHORS
: 명령 생성을 돕거나 도와 준 사람들.
BUGS
: 알려진 결함을 나열합니다. 구현 제한 사항 일 수 있습니다.
ENVIRONMENT
: 명령에 의해 영향을받을 수있는 쉘의 측면 또는 사용될 변수.
EXAMPLES
또는 NOTES
: 자기 설명.
REPORTING BUGS
:이 도구 나 설명서에서 버그를 발견하면 연락해야 할 사람입니다.
COPYRIGHT
: 소프트웨어를 생성하고 면책하는 사람. 모든 소프트웨어 자체의 라이센스와 관련이 있습니다.
SEE ALSO
:이 명령과 관련되어 있고 다른 섹션에는 맞지 않는 다른 명령, 도구 또는 작업 측면.
예제 / 노트 섹션에서 도구의 원하는 측면에 대한 흥미로운 정보를 찾을 수 있습니다.
예
다음 단계 find
에서는 개념 xargs
을 설명하는 것보다 "단순"하기 때문에 개념 으로 설명합니다 (한 명령은 파일을 찾고 다른 명령은 다른 명령 출력의 stdin 및 파이프 라인 실행을 처리합니다). 우리 가이 명령에 대해 전혀 아는 것이 없다고 가정 해 봅시다 .
특정 문제가 있습니다 : .jpg
ftp 서버 폴더 내에서 확장자가 500KiB (KiB = 1024 바이트, 일반적으로 kibibyte) 이상인 모든 파일을 찾아야 합니다.
먼저 매뉴얼을 엽니 다 : man find
. 는 SYNOPSIS
슬림입니다. 매뉴얼에서 내용을 검색해 봅시다 : 유형 /과 원하는 단어 ( size
). -size
특정 크기를 계산 하는 많은 항목 을 색인화 합니다. 붙어있어. 주어진 크기보다 "보다"또는 "보다 작은"으로 검색하는 방법을 모르면 그 사람은 나에게 그것을 보여주지 않습니다.
시도해보고를 쳐서 다음 항목을 찾으십시오 n. 승인. 흥미로운 것을 발견했습니다 : find
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
. 이 예제는 -size +100M
100MB 이상의 파일을 찾을 수 있음을 보여줍니다 . 어떻게 확인할 수 있습니까? 맨 페이지로 이동하여 다른 단어를 검색하십시오.
다시 말씀드립니다 greater
. 를 누르면 g맨 페이지 헤드로 연결됩니다. /greater
첫 번째 항목은 다음과 같습니다.
Numeric arguments can be specified as
+n for **greater** than n,
-n for less than n,
n for exactly n.
잘 들린다. 이 매뉴얼 블록은 우리가 의심 한 것을 확인한 것으로 보입니다. 그러나 이것은 파일 크기에만 적용되는 것은 아닙니다. n
이 맨 페이지에서 찾을 수있는 모든 항목에 적용됩니다 ( "숫자 인수는 다음과 같이 지정할 수 있습니다"라는 구절 참조).
좋은. 이름으로 필터링하는 방법을 찾으십시오 g /insensitive
. 왜? 둔감? 이런 씨발? 우리는 가상의 ftp 서버를 가지고 있는데, 여기에서 "다른 OS"사람들은 확장자가 .jpg
,, .JPG
이고 파일 이름을 지정할 수 .JpG
있습니다. 이것은 우리를 이끌 것입니다 :
-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.
그러나 검색 한 후에 lname
는 심볼릭 링크 만 검색한다는 것을 알 수 있습니다. 우리는 실제 파일을 원합니다. 다음 항목 :
-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.
큰. 나는 이 인수의 대소 문자를 구분하지 않는 버전인지 -name
확인 하기 위해 읽을 필요조차 없습니다 -iname
. 명령을 어셈블 할 수 있습니다.
명령: find /ftp/dir/ -size +500k -iname "*.jpg"
암시 적 의미 : 와일드 카드 ?
는 "단일 위치 *
의 모든 문자"를 나타내고 "0 이상의 모든 문자"를 나타냅니다. -name
매개 변수는 당신이 지식의 요약을 제공 할 것입니다.
모든 명령에 적용되는 팁
일부 옵션, 니모닉 및 "구문 스타일"은 맨 페이지를 전혀 열지 않아도 시간을 벌 수있는 모든 명령을 통해 이동합니다. 그것들은 연습으로 배우고 가장 일반적인 것은 다음과 같습니다.
- 일반적으로
-v
자세한 정보를 의미합니다. -vvv
일부 소프트웨어에서 "매우 상세"변형입니다.
- POSIX 표준에 따라 일반적으로 하나의 대시 인수를 쌓을 수 있습니다. 예 :
tar -xzvf
, cp -Rv
.
- 일반적으로
-R
및 / 또는 -r
재귀를 의미합니다.
- 거의 모든 명령에는
--help
옵션에 대한 간단한 도움말이 있습니다.
--version
소프트웨어 버전을 보여줍니다.
-p
복사 또는 이동 유틸리티에서 "권한 유지"를 의미합니다.
-y
YES 또는 대부분의 경우 "확인없이 진행"을 의미합니다.
위의 내용이 항상 사실은 아닙니다. 예를 들어 -r
스위치는 소프트웨어마다 매우 다른 것을 의미 할 수 있습니다 . 명령이 위험 할 수있는시기를 확인하고 확인하는 것이 좋습니다. 그러나 이것이 일반적인 기본값입니다.
명령의 기본값.
이 답변의 호출기 덩어리에서, 우리는 그 본 less -is
의 호출기입니다 man
. 명령의 기본 동작이 맨 페이지의 분리 된 섹션이나 가장 높은 섹션에 항상 표시되는 것은 아닙니다.
기본값을 찾으려면 옵션을 읽어야합니다. 운이 좋으면 입력 /pager
하면 해당 정보로 연결됩니다. 또한 페이저 (맨 페이지를 스크롤하는 소프트웨어)의 개념을 알아야하며 많은 맨 페이지를 읽은 후에 만 얻을 수있는 것입니다.
왜 중요한가요? 예를 들어 man(1)
Linux ( less -is
pager) 또는 FreeBSD man(1)
에서 읽는 동안 스크롤 및 색상 동작에 차이가있는 경우 인식이 열립니다 .
그리고 SYNOPSIS
구문은 어떻습니까?
명령을 실행하는 데 필요한 모든 정보를 얻은 후 옵션, 옵션 인수 및 피연산자를 인라인으로 결합하여 작업을 수행 할 수 있습니다. 개념 개요 :
- 옵션은 명령 동작을 지시하는 스위치입니다. "이 작업을 수행하십시오 " "이 작업을 수행하지 마십시오 "또는 " 이 방법으로 행동하십시오 ". 스위치라고도합니다.
- 옵션 인수는 옵션이
-t
마운트시 와 같이 이진 (켜기 / 끄기) 이 아닌 경우 파일 시스템 ( -t iso9660
, -t ext2
) 의 유형을 지정하는 대부분의 경우에 사용됩니다 . " 눈을 감고 "또는 " 동물에게 먹이를 주지만 사자 만 먹이십시오 ". 인수라고도합니다.
- 피연산자는 해당 명령이 수행되기를 원하는 것입니다. 를 사용하는 경우
cat file.txt
피연산자는 현재 디렉토리 내의 파일이며 해당 내용은에 표시됩니다 STDOUT
. ls
피연산자가 선택적인 명령입니다. 피연산자 뒤의 세 점 cat
은 여러 피연산자 (파일)에 동시에 작동 할 수 있음을 암시 적 으로 나타냅니다. 일부 명령이 사용할 피연산자 유형을 설정 한 것을 알 수 있습니다. 예:cat [OPTION] [FILE]...
관련 시놉시스 물건 :
이 방법은 언제 작동하지 않습니까?
- 예제가없는 맨 페이지
- 옵션에 대한 간단한 설명이있는 맨 페이지
- 맨 페이지
and
에서 to
, 같은 일반 키워드를 사용하는 경우for
- 설치되지 않은 맨 페이지. 명백한 것처럼 보이지만
lftp
(및 해당 맨 페이지)가 설치되어 있지 않은 경우 다음 을 실행하여보다 정교한 ftp 클라이언트로 적합한 옵션인지 알 수 없습니다man -k ftp
어떤 경우에는 예제가 매우 간단하며 테스트를 수행하거나 최악의 경우 Google 명령을 실행해야합니다.
기타 : 프로그래밍 언어 및 모듈 :
프로그래밍하거나 스크립트를 작성하는 경우 일부 언어에는 perl
( perldocs
), python ( pydocs
) 등과 같은 고유 한 맨 페이지 시스템이 있으며 메소드 / 기능, 변수, 동작 및 모듈에 대한 기타 중요한 정보에 대한 특정 정보를 보유합니다. 당신은 사용하고 배우려고 노력하고 있습니다. 이것은 perl Mail::IMAPClient
모듈을 사용하여 읽지 않은 IMAP 이메일을 다운로드하는 스크립트를 만들 때 유용했습니다 .
man -k
온라인 을 사용 하거나 검색 하여 특정 맨 페이지를 찾아야 합니다. 예 :
[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,
);
... 정규 맨 페이지와 같은 섹션이있는 여기에 다른 것들 ...
파이썬으로 :
[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...
또는 help()
일부 객체에 대한 자세한 내용을 읽으려면 Python 셸 내부 의 기능을 참조하십시오.
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.
보너스 : 이 wtf
명령은 whatis
약어를 사용하여 데이터베이스에 대한 약어가없는 것처럼 작동 하지만 사용자가 검색하는 것은 man 데이터베이스의 일부입니다. 데비안에서이 명령은 bsdgames
패키지의 일부입니다 . 예 :
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