man, 명령어 정보를 알아보는 명령어
on Linux
man 은 여러가지 명령어들에 대한 매뉴얼을 터미널상에 보여주는 명령어다.
매뉴얼 페이지는 less 형식으로 띄워주기 때문에 less 명령어에도 익숙해지는 것이 편하며, 모를 경우 less 화면에서 h 를 누르면 도움말 페이지에도 들어갈 수 있다.
man [섹션] [옵션] [찾을 명령어]처럼 사용하여, 특정 명령어에 대해 특정 섹션을 확인하거나, 해당 맨페이지의 위치를 볼 수 있다.
실제로 매뉴얼 페이지들은 특정 경로 아래에 파일들로써 쭉 저장되어 있고, man 명령어를 사용했을 때 이들을 읽어 less 로 보여주는 것이다.
manpath를 사용하여 man 명령이 어느 경로를 참조하고 있는지 확인할 수 있으며, 일반적으로는 /usr/share/man, /usr/local/man, /usr/local/share/man등이 있다.
| 옵션 | 내용 |
|---|---|
| -w | 맨페이지의 경로 출력 |
| -f | 명령어 이름과 동일한 맨페이지들(여러 섹션들)을 전부 출력 == whatis |
| -k | 명령어 이름을 포함한 맨페이지들을 전부 출력 == apropos |
| -a | 해당 명령어가 가진 모든 섹션 페이지들을 less 로 순서대로 띄워줌 |
| -s | 특정 섹션의 맨페이지를 less 로 띄워줌 |
예를 들어 아래처럼 which 에 대한 맨페이지 경로를 확인할 수 있다.
$ man -w which
/usr/share/man/man1/which.1.gz
man 명령어도 매뉴얼 페이지를 가지고 있으며, 괄호로 표시된 숫자는 섹션을 의미한다. 즉 1번과 7번 섹션에 해당하는 내용의 맨페이지를 확인할 수 있는 것이다.
$ man -f man
man (1) - an interface to the system reference manuals
man (7) - macros to format man pages
섹션은 총 9개로 구분되어 아래와 같이 해당 섹션에서 해당 정보들을 확인할 수 있으며, 명령어마다 제공되지 않는 섹션도 존재한다.
| 섹션 | 내용 |
|---|---|
| 1 | 일반 명령어 관련 매뉴얼 |
| 2 | 시스템콜 관련 매뉴얼 |
| 3 | C 표준 라이브러리 관련 매뉴얼 |
| 4 | 장치 드라이버 / 특수 파일에 대한 정보 |
| 5 | 파일 형식이나 컨벤션에 관한 정보 |
| 6 | 게임이나 화면 보호기에 대한 정보 |
| 7 | 리눅스 파일 표준, 시그널 목록, 프로토콜 등에 대한 정보 |
| 8 | 시스템 관리 명령어 / 데몬 정보 |
| 9 | 커널 관리 정보 |
man 7 man 혹은 man -s 7 man 처럼 특정 섹션 맨페이지를 열어볼 수 있으며, 섹션을 넣지 않을시에는 디폴트로 1번 섹션이 로드된다.
리눅스 시스템에서는 파일 기반의 메타데이터 데이터베이스가 있어, whatis 를 통해 조회가 가능하다.
앞서 -f 옵션은 whatis 명령어와 같다고 했는데, whatis 를 사용해보면 실제로 동일한 것을 확인할 수 있다.
whatis 는 명령에 대한 기능을 한줄로 터미널에 출력해주며, 키워드가 명령어와 완전히 일치한 문자열들에 대해서만 whatis db에서 확인 가능하다.
$ whatis shutdown
shutdown (8) - Halt, power-off or reboot the machine
shutdown (2) - shut down part of a full-duplex connection
$ man -f shutdown
shutdown (8) - Halt, power-off or reboot the machine
shutdown (2) - shut down part of a full-duplex connection
-k 옵션은 apropos 와 동일하며, 마찬가지로 whatis 데이터베이스에서 명령어를 찾아준다.
whatis 와는 다르게 명령어가 동일할 필요는 없고, 문자열이 포함된 모든 내용들을 검색한다는 것이 특징이다.
$ apropos shut
plog (1) - starts up, shuts down or lists the log of PPP connections
poff (1) - starts up, shuts down or lists the log of PPP connections
pon (1) - starts up, shuts down or lists the log of PPP connections
shutdown (2) - shut down part of a full-duplex connection
shutdown (8) - Halt, power-off or reboot the machine
systemd-backlight (8) - Load and save the display backlight brightness at boot and shutdown
...
shut 이라는 문자열을 whatis 데이터베이스에서 검색해오는데, 해당 문자열이 명령어가 아닌, 설명 부분에 담겨 있어도 그냥 긁어오는 것을 볼 수 있다.