man, 명령어 정보를 알아보는 명령어

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시스템콜 관련 매뉴얼
3C 표준 라이브러리 관련 매뉴얼
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 데이터베이스에서 검색해오는데, 해당 문자열이 명령어가 아닌, 설명 부분에 담겨 있어도 그냥 긁어오는 것을 볼 수 있다.