man 명령어: 사용법과 옵션, 섹션 번호와 man -k 검색

리눅스 서버에서 명령이나 설정 파일의 사용법을 확인할 때는 man 명령어로 매뉴얼 페이지를 열고, 이름을 모를 때는 man -k로 짧은 설명을 검색합니다. AlmaLinux 9와 Debian 12 서버에서 passwd 페이지를 찾아본 결과, Debian 12에는 1번 명령 섹션과 5번 파일 형식 섹션 페이지가 함께 있었지만 AlmaLinux 9에는 5번 섹션 페이지가 없었습니다.
아래 출력은 AlmaLinux 9.8 서버의 root 계정과 Debian 12 서버의 일반 계정에서 실행한 결과입니다. 시뮬레이터의 호스트 이름과 접속 주소는 예시 값입니다.
1️⃣ man 명령어 기본 사용법
man 뒤에 명령 이름을 적으면 그 명령의 매뉴얼 페이지가 열립니다. man은 페이지를 페이저 프로그램에 넘겨 한 화면씩 출력하므로, 실행한 뒤 바로 프롬프트로 돌아오지 않습니다. 페이저는 MANPAGER나 PAGER 환경 변수로 정하고, 둘 다 비어 있으면 less를 사용합니다.
출력을 파이프로 넘기면 페이저 없이 글자만 나옵니다. [man ls]의 앞 12줄을 head로 받자 첫 줄에 LS(1)이 있었고, NAME과 SYNOPSIS, DESCRIPTION 절이 차례로 이어졌습니다.
man ls | head -n 12LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci-
fied.첫 줄 LS(1)의 괄호 안 숫자 1은 이 페이지가 들어 있는 섹션 번호입니다.
페이지 안에서는 [Space]로 다음 화면을 보고, [/낱말]과 Enter로 낱말을 찾습니다. [n]은 같은 낱말이 나오는 다음 자리로 옮기고, [q]는 man을 끝냅니다.
없는 이름을 적으면 [No manual entry for] 오류가 나오고, 종료 코드는 16이었습니다.
man no-such-cmd9No manual entry for no-such-cmd9echo $?16man 페이지의 EXIT STATUS 절은 16을 페이지나 파일, 낱말 가운데 하나 이상을 찾지 못했을 때의 값으로 설명합니다. 사용법 오류는 1이라, 스크립트에서 두 경우를 나눠 처리할 수 있습니다.
2️⃣ man 섹션 번호
같은 이름의 페이지가 여러 섹션에 있으면 man은 정해진 섹션 순서대로 찾아 처음 나온 페이지 하나만 엽니다. 섹션은 1부터 9까지 있고, 서버 작업에서 자주 여는 섹션은 1번 명령과 5번 파일 형식, 8번 관리 명령입니다.
| 섹션 | 담는 페이지 | AlmaLinux 9.8 서버에서 본 예 |
|---|---|---|
| 1 | 실행 프로그램과 셸 명령 | ls, passwd, crontab, man |
| 2 | 시스템 호출(커널이 제공하는 함수) | |
| 3 | 라이브러리 함수 | |
| 4 | 특수 파일(주로 /dev 아래) | |
| 5 | 파일 형식과 규약, 예: /etc/passwd | crontab |
| 6 | 게임 | |
| 7 | 기타(매크로 패키지와 규약) | |
| 8 | 시스템 관리 명령, 주로 root용 | useradd, mandb |
| 9 | 커널 루틴(비표준) |
crontab은 명령과 설정 파일 형식이 같은 이름이라 두 섹션에 페이지가 있습니다. [man -f crontab]으로 확인하자 1번과 5번 섹션 줄이 함께 나왔습니다.
man -f crontabcrontab (1) - maintains crontab files for individual users
crontab (5) - files used to schedule the execution of programs섹션 번호 없이 [man crontab]을 실행하면 1번 섹션의 crontab 명령 페이지가 열립니다. 작업 예약 파일의 형식을 보려면 이름 앞에 5를 적습니다.
man 5 crontab | head -n 4CRONTAB(5) File Formats CRONTAB(5)
NAME
crontab - files used to schedule the execution of programs첫 줄이 CRONTAB(5)와 File Formats로 바뀌었고, NAME 줄에도 명령 설명 대신 작업 예약 파일 설명이 나왔습니다.
지정한 섹션에 그 이름의 페이지가 없으면 오류가 나옵니다. AlmaLinux 9.8 서버에서 /etc/passwd 파일 형식을 보려고 [man 5 passwd]를 실행하자 5번 섹션에 페이지가 없다는 오류가 나왔습니다.
man 5 passwdNo manual entry for passwd in section 5Debian 12 서버에서는 [man -f passwd]에 5번 섹션 passwd 줄이 함께 나왔습니다. 어느 섹션에 페이지가 있는지는 서버에 설치된 매뉴얼에 따라 다르므로, 섹션 번호를 붙이기 전에 [man -f]로 먼저 확인합니다.
man -f passwdpasswd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password file8번 섹션에는 계정을 만드는 useradd처럼 주로 root 계정이 실행하는 관리 명령이 들어 있습니다.
man -f useradduseradd (8) - create a new user or update default new user information3️⃣ man 명령어 옵션과 -k, -f 검색
[man -f]는 이름이 같은 페이지의 한 줄 설명을 출력하며, whatis와 같은 동작입니다. AlmaLinux 9.8 서버에서 [man -f passwd]와 [whatis passwd]를 실행하자 같은 두 줄이 나왔습니다.
man -f passwdpasswd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands1ossl 줄은 passwd라는 이름을 함께 쓰는 OpenSSL 명령 페이지입니다.
이름을 모를 때는 [man -k]로 페이지 이름과 짧은 설명을 검색합니다. apropos와 같은 동작이고, 낱말은 정규식으로 읽습니다.
man -k '^passwd'passwd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands^는 줄 맨 앞을 뜻해 passwd로 시작하는 줄만 나왔습니다. 설명에 든 낱말로도 찾을 수 있어, [man -k ‘directory contents’]는 ls와 함께 dir, vdir 페이지를 찾았습니다.
man -k 'directory contents'dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents[man -k]는 NAME 절의 짧은 설명만 검색하므로, 옵션 이름이나 본문 낱말로는 페이지를 찾지 못합니다. 본문까지 찾는 [man -K]는 모든 페이지를 차례로 읽어 시간이 오래 소요됩니다.
찾는 낱말이 없으면 [nothing appropriate]가 나오고, 종료 코드는 16이었습니다.
man -k no-such-word9no-such-word9: nothing appropriate.echo $?16[man -w]는 페이지를 열지 않고 원본 파일의 위치만 출력합니다.
man -w ls/usr/share/man/man1/ls.1.gzman -w 5 crontab/usr/share/man/man5/crontab.5.gz두 파일은 /usr/share/man 아래 man1과 man5 폴더에 있었고, 폴더 이름의 숫자가 섹션 번호와 같았습니다. [man -w 1ossl passwd]로 찾은 1ossl 페이지 파일도 1번 섹션과 같은 man1 폴더에 있었습니다.
옵션은 아래 두 탭에 모았습니다.
| 옵션 | 복사 | 설명 |
|---|---|---|
| -f, --whatis | 이름이 같은 페이지의 한 줄 설명을 출력. whatis와 같은 동작 | |
| -k, --apropos | 페이지 이름과 짧은 설명을 검색. apropos와 같은 동작 | |
| -w, --where, --path, --location | 페이지를 열지 않고 원본 파일의 위치만 출력 | |
| -a, --all | 이름이 맞는 페이지를 차례로 모두 출력 |
| 옵션 | 복사 | 설명 |
|---|---|---|
| -K, --global-apropos | 모든 페이지의 본문에서 낱말을 검색. 시간이 오래 소요 | |
| -S, -s, --sections목록 | 검색할 섹션과 순서를 쉼표나 콜론으로 나눈 목록으로 지정 | |
| -P, --pager페이저 | 페이지를 출력할 페이저를 지정. 기본값은 less | |
| -M, --manpath경로 | 페이지를 찾을 매뉴얼 경로를 지정 | |
| -L, --localelocale | 이번 실행에 사용할 locale을 지정 | |
| -l, --local-file | 시스템 매뉴얼을 검색하지 않고 지정한 파일을 페이지로 출력 | |
| -u, --update | 설치된 페이지의 색인 캐시를 갱신 | |
| -V, --version | 버전 정보를 출력 |
🔲 man 명령어 시뮬레이터
아래 시뮬레이터에서 [man ls]로 페이지를 열고 [Space], [/list], [n], [q] 칩으로 화면을 넘겨 볼 수 있습니다. 같은 가상 서버에서 [man 5 crontab]처럼 섹션 번호를 붙이거나 [man -f], [man -k], [man -w]를 쳐 볼 수 있습니다.
4️⃣ man 페이지 구성
man 페이지는 대문자 제목이 붙은 절로 나뉩니다. 절 제목만 grep으로 뽑아 비교하자, ls 페이지는 옵션 설명이 DESCRIPTION 안에 있었고 crontab 페이지는 OPTIONS 절이 따로 있었습니다.
man ls | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSOman crontab | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHOR절 이름은 페이지마다 조금씩 다르고, 자주 나오는 절은 아래와 같습니다.
| 절 | 담긴 내용 |
|---|---|
| NAME | 이름과 한 줄 설명(man -f와 man -k가 출력하는 줄) |
| SYNOPSIS | 명령을 적는 꼴 |
| DESCRIPTION | 동작 설명(ls 페이지는 옵션 설명도 이 절에) |
| OPTIONS | 옵션마다 한 단락 |
| EXIT STATUS | 종료 코드의 뜻 |
| FILES | 명령이 읽거나 쓰는 파일 |
| SEE ALSO | 함께 볼 페이지 |
SYNOPSIS의 기호는 man 페이지가 정한 규칙을 따릅니다. 대괄호 안은 생략할 수 있습니다. 세로선(|)으로 나뉜 옵션은 함께 쓸 수 없고, 점 셋(…)이 붙은 인자는 여러 번 적을 수 있습니다.
ls의 SYNOPSIS는 ls [OPTION]… [FILE]…이라, 명령어 옵션과 파일 이름 같은 명령행 인자를 모두 생략하거나 여러 개 적을 수 있습니다.
[--help]는 프로그램이 직접 출력하는 사용법 요약이라 페이저 없이 터미널에 바로 나옵니다. [ls --help]의 첫 줄 Usage는 SYNOPSIS와 같은 꼴이었고, 전체 길이는 121줄로 [man ls]의 245줄보다 짧았습니다.
ls --help | head -n 3Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.man 페이지에는 [--help]에 없는 AUTHOR, SEE ALSO 같은 절이 더 있습니다. 옵션 하나를 빨리 볼 때는 [--help]를, 설정 파일 형식이나 종료 코드처럼 절이 나뉜 설명이 필요할 때는 man을 엽니다.
🔢 FAQ & 추천 콘텐츠
ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.