이 글에서는 리눅스를 비롯한 유닉스 계열 운영체제에서 man 명령어의 용도와 사용 방법을 자세히 설명합니다.
리눅스는 핵심 운영체제인 리눅스 커널과, 여기에 기능을 추가해 주는 다양한 소프트웨어 패키지들로 구성된 모듈화가 잘 되어 있는 운영체제입니다. 이러한 패키지들은 대부분 개별적으로 관리되기 때문에, 시스템마다 설치된 패키지 구성이 서로 다릅니다. 예를 들어 그래픽 디자이너라면 드로잉 도구를 설치하고, 소설을 집필하는 사람이라면 워드 프로세서를 설치하는 식입니다.
모든 시스템이 동일하지 않기 때문에 각 패키지는 자체 문서를 제공하며, 이 문서는 패키지와 함께 설치됩니다. 덕분에 컴퓨터에 설치된 소프트웨어를 사용하는 데 필요한 정보를 언제든 확인할 수 있습니다. 이 문서가 바로 매뉴얼 페이지(manual page)이며, 시스템 매뉴얼의 특정 섹션에 추가됩니다.
man 명령어는 시스템에 설치된 터미널 명령어의 사용자 매뉴얼을 화면에 표시해 줍니다(개발자가 매뉴얼을 제공한 경우). 명령어를 정확히 어떻게 사용해야 하는지 체계적으로 정리된 지침을 제공하며, 유용한 예시까지 함께 포함하는 경우가 많습니다.
man 명령어 기본 문법
man 명령어의 기본 문법은 다음과 같습니다:
man OPTIONS SECTION COMMAND
각 요소를 살펴보면 다음과 같습니다:
- OPTIONS(옵션): 아래 표에 정리된 옵션 목록에서 선택합니다.
- 옵션을 지정하지 않으면 해당 명령어의 전체 사용자 매뉴얼이 표시됩니다.
- SECTION(섹션): 찾고자 하는 매뉴얼 페이지가 속한 섹션을 지정합니다.
- 자주 사용되는 섹션은 아래 표를 참고하세요.
- 섹션을 지정하지 않으면 모든 섹션의 항목이 표시됩니다.
- COMMAND(명령어): 사용자 매뉴얼을 보고 싶은 명령어의 이름입니다.
- 해당 명령어의 매뉴얼이 존재하지 않으면 'No manual entry'라는 메시지가 출력됩니다.
- 기본적으로 less 명령어를 통해 매뉴얼 페이지 내용이 표시됩니다.
- *** 화살표 키로 내용을 탐색할 수 있으며, Q 키를 누르면 매뉴얼을 종료할 수 있습니다! ***
매뉴얼 섹션의 종류
명령어마다 시스템 매뉴얼의 서로 다른 섹션에 매뉴얼 페이지가 배치되어 있습니다:
| 섹션 | 설명 |
|---|---|
| 1 | 실행 프로그램 또는 셸 명령어 |
| 2 | 시스템 호출(커널이 제공하는 함수) |
| 3 | 라이브러리 호출(프로그램 라이브러리 내부의 함수) |
| 4 | 특수 파일(일반적으로 /dev 디렉터리에 위치) |
| 5 | 파일 형식 및 규칙, 예: /etc/passwd |
| 6 | 게임 |
| 7 | 기타 항목(매크로 패키지 및 관례 포함), 예: man(7), groff(7) |
| 8 | 시스템 관리 명령어(보통 root 권한 전용) |
| 9 | 커널 루틴 [비표준] |
섹션을 지정하면 해당 섹션에 속한 매뉴얼 항목만 표시됩니다.
매뉴얼 페이지 자체도 내부적으로 여러 섹션으로 나뉘며, 일반적으로 NAME(이름), SYNOPSIS(개요), CONFIGURATION(구성), DESCRIPTION(설명), OPTIONS(옵션), EXIT STATUS(종료 상태), RETURN VALUE(반환값), ERRORS(오류), ENVIRONMENT(환경), FILES(파일), VERSIONS(버전), CONFORMING TO(표준 준수), NOTES(참고 사항), BUGS(버그), EXAMPLE(예시), AUTHORS(작성자), SEE ALSO(관련 항목) 등으로 구성됩니다.
자주 사용하는 man 명령어 옵션
매뉴얼에서 바로 가져온, 가장 많이 쓰이는 man 명령어 옵션들을 정리했습니다:
| 옵션 | 설명 |
|---|---|
| -a | 기본적으로 man은 가장 적합한 매뉴얼 페이지 하나만 표시한 뒤 종료합니다. 이 옵션을 사용하면 검색어와 이름이 일치하는 모든 매뉴얼 페이지를 강제로 표시합니다. |
| -f | 매뉴얼 페이지의 짧은 설명이 있다면 이를 표시합니다. |
| -k | 매뉴얼 페이지의 짧은 설명에서 키워드를 검색하고 일치하는 결과를 표시합니다. |
| -i | 매뉴얼 페이지 검색 시 대소문자를 구분하지 않습니다(기본값). |
| -I | 매뉴얼 페이지 검색 시 대소문자를 구분합니다. |
| --wildcard | 셸 스타일 와일드카드를 사용하여, 이름이나 설명의 어느 부분이라도 인자와 일치하는 모든 페이지를 표시합니다. |
| -P | 출력에 사용할 페이저(pager)를 지정합니다. 기본값은 less이며, less를 찾을 수 없거나 실행할 수 없는 경우 cat으로 대체됩니다. |
그리고 당연히, man 명령어 자체의 사용자 매뉴얼도 man 명령어로 확인할 수 있습니다! 다음을 실행해 보세요:
man man
이렇게 하면 전체 사용자 매뉴얼과 사용 가능한 모든 옵션 목록을 확인할 수 있습니다.
리눅스 man 명령어 활용 예시
특정 명령어의 가장 관련성 높은 매뉴얼 페이지를 보려면 man 뒤에 명령어 이름을 입력하면 됩니다:
man less
위 명령은 less 명령어의 매뉴얼을 표시합니다. 재미있게도, 이 less 명령어가 바로 man 페이지를 화면에 출력하는 데 사용되는 도구입니다.
-f 옵션을 사용하면 해당 명령어가 속한 섹션과 짧은 설명을 함께 볼 수 있습니다:
man -f mv
위에서 mv 명령어를 조회했으며, 실행 결과는 다음과 같습니다:
mv(1) - move files
즉, mv 명령어가 1번 섹션에 있으며 파일을 이동(move)하는 명령어라는 것을 알려줍니다.
명령어의 매뉴얼 페이지가 어디에 저장되어 있는지 확인하려면 -w 옵션을 사용합니다:
man -w mv
실행 결과는 다음과 같습니다:
/usr/share/man/man1/mv.1
-k 옵션을 사용하면 모든 매뉴얼, 모든 섹션에서 주어진 문자열과 일치하는 항목을 검색합니다:
man -k mv
마무리
man 명령어는 정말 유용한 도구입니다. 인터넷에 연결되어 있지 않거나, 명령어 사용법을 빠르게 다시 확인하고 싶을 때 그 어떤 자료보다 든든한 도움이 됩니다.