Linux / 명령어 / man - 명령어 매뉴얼 확인

man은 리눅스 시스템에 설치된 명령어, 설정 파일, 시스템 호출, 라이브러리 함수 등의 설명서를 터미널에서 읽는 명령어입니다. 기본적으로 man 명령어를 실행하면 사용법, 옵션, 종료 상태, 관련 문서를 확인할 수 있습니다.

인터넷에서 찾은 예제가 현재 시스템의 버전과 다를 수 있으므로, 실제 작업 전에는 해당 시스템에 설치된 매뉴얼 페이지(man page)를 확인하는 습관이 좋습니다. 이 글에서는 매뉴얼을 여는 방법부터 섹션 선택, 키워드 검색, 셸 내장 명령 확인과 문제 해결까지 설명합니다.

man 명령어란?

man은 system reference manuals를 보여 주는 인터페이스입니다. 인수로 페이지 이름을 주면 설정된 경로에서 매뉴얼을 찾아 형식을 정리한 뒤 화면 단위로 보여 줍니다. 대개 less가 화면 표시 프로그램인 페이저(pager)로 사용되지만, 시스템 설정과 MANPAGER 또는 PAGER 환경 변수에 따라 달라질 수 있습니다.

매뉴얼 페이지는 man 프로그램 하나가 모두 제공하는 것이 아닙니다. 각 명령이나 라이브러리의 패키지가 자신의 문서를 함께 설치하는 방식이므로, 같은 배포판이라도 설치된 패키지와 버전에 따라 볼 수 있는 페이지가 다릅니다.

기본 문법과 첫 번째 예제

가장 많이 사용하는 문법은 다음과 같습니다. 대괄호는 선택 항목이라는 뜻이므로 실제 명령에는 입력하지 않습니다.

man [옵션] [[섹션] 페이지...]

ls 명령어의 매뉴얼을 열려면 다음과 같이 실행합니다.

man ls

특정 섹션의 페이지를 열고 싶다면 페이지 이름 앞에 섹션 번호를 지정합니다.

man 5 passwd

위 명령은 passwd 명령이 아니라 /etc/passwd 파일 형식을 설명하는 섹션 5의 페이지를 엽니다. man passwd처럼 섹션을 생략하면 미리 정해진 순서로 검색하여 처음 발견한 페이지만 보여 줍니다.

매뉴얼 화면에서 이동하고 검색하는 방법

아래 키는 페이저가 less일 때 일반적으로 사용할 수 있습니다. 다른 페이저가 설정되어 있다면 키 동작이 다를 수 있습니다.

키 동작
Space, Page Down 다음 화면으로 이동합니다.
b, Page Up 이전 화면으로 이동합니다.
↑, ↓ 한 줄씩 위나 아래로 이동합니다.
g 문서의 처음으로 이동합니다.
G 문서의 끝으로 이동합니다.
/문자열 현재 위치에서 아래 방향으로 문자열을 검색합니다.
?문자열 현재 위치에서 위 방향으로 문자열을 검색합니다.
n, N 다음 검색 결과 또는 이전 검색 결과로 이동합니다.
h 페이저의 도움말을 엽니다.
q 매뉴얼을 종료합니다.

예를 들어 man ls를 연 다음 /-a를 입력하고 Enter를 누르면 -a가 등장하는 위치를 찾을 수 있습니다. 짧은 옵션은 본문의 다른 단어와도 일치할 수 있으므로, 필요하면 --all처럼 긴 옵션 이름이나 설명의 핵심 단어를 검색하는 편이 빠릅니다.

매뉴얼 페이지의 구성 읽기

페이지마다 모든 항목이 있는 것은 아니지만, 일반적인 명령어 매뉴얼은 다음과 같은 구역으로 구성됩니다.

구역 내용
NAME 페이지 이름과 기능을 한 줄로 요약합니다.
SYNOPSIS 명령이나 함수의 사용 형식을 보여 줍니다.
DESCRIPTION 동작 방식과 사용 목적을 자세히 설명합니다.
OPTIONS 사용 가능한 옵션과 각 옵션의 효과를 설명합니다.
EXIT STATUS 정상 종료와 오류를 구분하는 종료 상태를 설명합니다.
ENVIRONMENT 동작에 영향을 주는 환경 변수를 설명합니다.
FILES 관련 설정 파일, 데이터 파일과 경로를 보여 줍니다.
EXAMPLES 실제 사용 예제를 제공합니다. 페이지에 따라 없을 수 있습니다.
SEE ALSO 함께 읽으면 좋은 다른 매뉴얼 페이지를 안내합니다.

SYNOPSIS에서는 표기 방식도 중요합니다. 굵게 표시된 문자열은 그대로 입력하는 항목, 기울임꼴은 사용자가 바꿔 넣을 값인 경우가 일반적입니다. [ ]는 선택 항목, ...는 반복 가능한 항목을 뜻합니다. 다만 페이지 작성 방식과 출력 환경에 따라 표현에 차이가 있을 수 있으므로 해당 페이지의 설명도 함께 읽어야 합니다.

매뉴얼 섹션 번호의 의미

리눅스 매뉴얼은 문서의 성격에 따라 섹션으로 구분됩니다. 같은 이름의 페이지가 여러 섹션에 존재할 수 있기 때문에 오류 없이 원하는 문서를 찾으려면 섹션 번호를 알아 두는 것이 좋습니다.

섹션 분류 예
1 실행 프로그램과 셸 명령 ls(1), grep(1)
2 시스템 호출 open(2), read(2)
3 라이브러리 호출 printf(3), malloc(3)
4 특수 파일과 장치 null(4), 장치 인터페이스
5 파일 형식과 규약 passwd(5), fstab(5)
6 게임 설치된 게임의 매뉴얼
7 기타 주제와 규약 signal(7), man-pages(7)
8 시스템 관리 명령 mount(8), useradd(8)
9 커널 루틴 비표준 섹션이며 모든 시스템에 있지는 않음

문서에서 passwd(1) 또는 passwd(5)처럼 이름 뒤에 붙은 숫자를 볼 수 있습니다. 이 숫자는 버전이 아니라 매뉴얼 섹션입니다. 각각 다음과 같이 열 수 있습니다.

man 1 passwd
man 5 passwd

같은 이름의 페이지를 찾는 방법

일치하는 모든 섹션 확인하기

-a는 검색 순서에서 발견한 모든 페이지를 차례로 보여 줍니다. 첫 페이지를 종료하면 다음 페이지를 열지 묻거나 바로 다음 문서를 표시하는 등 세부 동작은 구현과 설정에 따라 달라질 수 있습니다.

man -a passwd

-f는 페이지 이름과 짧은 설명을 출력합니다. 보통 whatis와 같은 용도로 사용합니다.

man -f passwd
whatis passwd

특정 섹션만 열기

원하는 섹션을 알고 있다면 번호를 명시하는 것이 가장 정확합니다. 공백으로 구분하는 형식 외에도 일부 man 구현에서는 passwd.5 또는 인용한 'passwd(5)' 형식을 지원합니다.

man 5 passwd
man passwd.5
man 'passwd(5)'

이식성을 중시한다면 이해하기 쉽고 널리 쓰이는 man 5 passwd 형식을 사용하는 것이 무난합니다.

이름을 모를 때 키워드로 찾는 방법

이름과 짧은 설명 검색하기

man -k는 매뉴얼 페이지의 이름과 짧은 설명에서 키워드를 검색합니다. apropos도 같은 목적에 사용됩니다.

man -k "copy files"
apropos "copy files"

검색어는 정규 표현식으로 처리될 수 있으므로 특수 문자가 포함되면 셸과 검색 규칙을 모두 고려해야 합니다. 단순한 문구는 위 예제처럼 따옴표로 묶는 편이 안전합니다.

매뉴얼 본문 전체 검색하기

-K는 이름과 요약이 아니라 매뉴얼 본문에서 문자열을 찾습니다. 설치된 문서가 많으면 시간이 오래 걸릴 수 있으므로 먼저 -k로 검색하고, 필요할 때만 사용하는 것이 좋습니다.

man -K "environment variable"

특정 섹션으로 범위를 줄이면 검색 시간을 줄일 수 있습니다.

man -K 5 "password database"

자주 사용하는 man 옵션

아래 옵션은 Linux에서 널리 쓰이는 man-db 구현을 기준으로 정리했습니다. 다른 운영체제나 구현에서는 지원 여부와 의미가 다를 수 있으므로 man man으로 현재 시스템의 설명을 확인하는 것이 가장 정확합니다.

옵션 설명
-a, --all 이름이 일치하는 모든 매뉴얼 페이지를 표시합니다.
-f, --whatis 페이지 이름과 짧은 설명을 출력합니다.
-k, --apropos 이름과 짧은 설명에서 키워드를 검색합니다.
-K, --global-apropos 모든 매뉴얼 페이지의 본문에서 문자열을 검색합니다.
-w, --where 페이지를 열지 않고 원본 매뉴얼 파일의 위치를 출력합니다.
-l, --local-file 검색 경로 대신 지정한 로컬 매뉴얼 파일을 표시합니다.
-L 로케일, --locale=로케일 해당 실행에서 사용할 로케일을 지정합니다.
-M 경로, --manpath=경로 매뉴얼 페이지를 찾을 경로를 직접 지정합니다.

예를 들어 실제로 읽고 있는 ls 매뉴얼 파일의 위치는 다음과 같이 확인합니다.

man -w ls

셸 내장 명령은 help도 함께 사용하기

cd, alias, read처럼 셸 자체가 실행하는 내장 명령은 별도의 실행 파일이 아닐 수 있습니다. Bash에서는 먼저 type으로 명령의 종류를 확인하고, 내장 명령이라면 help를 사용하는 편이 정확하고 빠릅니다.

type cd
help cd
help -m cd

help -m은 도움말을 매뉴얼 페이지와 비슷한 형식으로 보여 줍니다. Bash 전체의 자세한 설명은 다음과 같이 확인할 수 있습니다.

man bash

같은 이름이 별칭(alias), 함수, 셸 내장 명령과 외부 프로그램으로 동시에 존재할 수 있으므로, 실제로 무엇이 실행되는지 확실하지 않으면 type -a 이름으로 모두 확인합니다.

type -a printf

한국어 매뉴얼과 로케일 확인하기

man은 현재 로케일에 맞는 번역 페이지가 설치되어 있으면 해당 문서를 우선 표시할 수 있습니다. 현재 로케일은 다음 명령으로 확인합니다.

locale
echo "$LANG"

영문 원문을 임시로 보고 싶다면 -L 옵션을 사용할 수 있습니다.

man -L C ls

한국어 로케일이 설정되어 있어도 번역된 페이지가 설치되지 않았거나 해당 문서의 번역본이 없으면 영문 페이지가 표시될 수 있습니다. 번역은 원문보다 갱신이 늦을 수 있으므로 옵션이나 동작이 의심스러울 때는 영문 원문과 프로그램 버전도 함께 확인하는 것이 좋습니다.

매뉴얼 페이지가 없을 때 해결하는 방법

명령과 관련 패키지가 설치되었는지 확인하기

No manual entry for ...가 나온다면 페이지 이름이 틀렸거나, 명령 또는 문서 패키지가 설치되지 않았을 수 있습니다. 먼저 명령의 존재 여부와 종류를 확인합니다.

type -a 명령어
command -v 명령어

최소 설치 이미지나 컨테이너에는 man 프로그램과 기본 매뉴얼이 빠져 있기도 합니다. Debian·Ubuntu 계열과 Rocky Linux·RHEL 계열에서는 일반적으로 다음 패키지를 설치합니다.

sudo apt update
sudo apt install man-db manpages
sudo dnf install man-db man-pages

패키지 이름과 저장소 구성은 배포판 및 버전에 따라 다를 수 있습니다. 특정 프로그램의 문서는 해당 프로그램 패키지나 별도의 문서·개발 패키지에 포함될 수 있으므로 배포판의 패키지 검색 기능도 함께 사용합니다.

검색 데이터베이스와 경로 확인하기

man 명령어는 열리는데 man -k 또는 whatis 검색 결과가 없으면 인덱스 데이터베이스가 아직 만들어지지 않았을 수 있습니다. man-db 환경에서는 관리 권한으로 데이터베이스를 갱신할 수 있습니다.

sudo mandb

매뉴얼 검색 경로는 manpath로 확인합니다. 사용자가 MANPATH를 직접 설정하면 기본 검색 경로가 달라질 수 있으므로, 특별한 이유 없이 고정하는 것은 피하는 편이 좋습니다.

manpath
printf '%s\n' "$MANPATH"

실전에서 유용한 사용 예제

옵션을 빠르게 찾기

매뉴얼을 연 뒤 검색 키를 이용하면 긴 문서에서도 필요한 옵션을 빠르게 찾을 수 있습니다.

man tar

화면에서 /--exclude를 입력하고 Enter를 누른 뒤, n과 N으로 검색 결과 사이를 이동합니다.

설정 파일 형식 확인하기

설정 파일을 수정하기 전에는 섹션 5에 관련 페이지가 있는지 확인해 보세요. 필드의 의미, 허용 값, 주석 규칙과 예제가 설명되어 있을 수 있습니다.

man 5 fstab
man 5 ssh_config
man 5 sshd_config

관련 문서를 따라가며 조사하기

한 페이지에서 답을 찾지 못했다면 문서 끝의 SEE ALSO를 확인합니다. 관련 명령, 설정 파일, 시스템 호출과 개념 문서가 이름(섹션) 형식으로 연결되어 있어 검색 범위를 체계적으로 넓힐 수 있습니다.

man 2 open
man 7 path_resolution

man, --help, info는 어떻게 구분하나요?

방법 적합한 상황 특징
명령어 --help 문법과 옵션을 빠르게 훑을 때 짧고 즉시 확인하기 좋지만 지원하지 않는 명령도 있음
man 명령어 옵션의 의미, 파일, 환경 변수와 관련 문서를 자세히 볼 때 현재 시스템에 설치된 참조 문서를 제공함
info 명령어 GNU 프로그램의 장별 설명과 예제를 깊게 읽을 때 하이퍼텍스트 구조이며 별도 Info 문서가 필요함
help 명령어 Bash 내장 명령을 확인할 때 현재 Bash가 제공하는 내장 명령 도움말을 보여 줌

한 가지만 고집하기보다 먼저 --help로 문법을 확인하고, 세부 동작은 man에서 읽으며, 셸 내장 명령은 help를 함께 사용하는 방식이 효율적입니다.

자주 묻는 질문

man 뒤의 숫자는 버전인가요?

아닙니다. printf(1)과 printf(3)의 숫자는 매뉴얼 섹션을 뜻합니다. 섹션 1은 사용자 명령, 섹션 3은 라이브러리 함수를 다루므로 이름이 같아도 서로 다른 문서입니다.

매뉴얼을 종료하려면 어떻게 하나요?

기본 페이저가 less라면 q를 누릅니다. 종료되지 않는다면 현재 사용 중인 페이저의 도움말이나 설정을 확인합니다.

man 페이지 내용이 인터넷 문서와 다른 이유는 무엇인가요?

로컬 매뉴얼은 현재 시스템에 설치된 패키지가 제공하므로 배포판, 패키지 버전과 설치 상태에 따라 달라집니다. 반면 온라인 문서는 더 최신 버전이나 다른 구현을 설명할 수 있습니다. 실제 서버에서 사용할 옵션은 로컬 매뉴얼과 명령어 --version을 기준으로 확인하는 것이 안전합니다.

명령어 이름을 전혀 모르면 어떻게 찾나요?

man -k 키워드 또는 apropos 키워드로 이름과 짧은 설명을 검색합니다. 검색 결과가 너무 많으면 구체적인 단어를 추가하거나 -s 옵션을 지원하는 환경에서 섹션 범위를 제한합니다.

정리

man은 현재 리눅스 시스템에 설치된 참조 문서를 확인하는 가장 기본적인 도구입니다. 단순히 man 명령어만 기억하기보다 섹션 번호, -k 검색, -f 요약, -w 경로 확인과 페이저 검색을 함께 익히면 필요한 정보를 훨씬 빠르게 찾을 수 있습니다.

먼저 man man을 실행해 현재 시스템의 man 구현이 제공하는 옵션을 확인해 보세요. 셸 내장 명령은 help, 짧은 옵션 확인은 --help, GNU 프로그램의 장문 설명은 info를 함께 사용하면 문서 탐색의 빈틈을 줄일 수 있습니다.

공식 문서 참고

같은 카테고리의 다른 글
Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux ssh 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux env 명령어로 환경 변수를 추가·제거하거나 깨끗한 환경에서 프로그램을 실행하는 방법을 설명합니다. env -i·-u·-C, shebang 활용과 printenv와의 차이를 다룹니다.

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux getent 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / sort - 텍스트 행 정렬

Linux / 명령어 / sort - 텍스트 행 정렬

Linux sort 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux which 명령어로 PATH에서 실행 파일 경로를 찾는 방법을 설명합니다. type과 command -v의 차이, 별칭·함수 확인과 스크립트 이식성도 정리합니다.

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux mktemp 명령어로 예측하기 어려운 이름의 임시 파일과 디렉터리를 안전하게 만드는 방법을 설명합니다. 템플릿, TMPDIR, trap을 이용한 정리와 -u 옵션의 위험도 알아봅니다.

Linux / 명령어 / timedatectl - 시간대와 시간 동기화 상태 관리

Linux / 명령어 / timedatectl - 시간대와 시간 동기화 상태 관리

Linux timedatectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / pwd - 현재 작업 디렉터리 경로 확인

Linux / 명령어 / pwd - 현재 작업 디렉터리 경로 확인

Linux pwd 명령어로 현재 작업 디렉터리를 확인하는 방법을 설명합니다. 논리적 경로와 물리적 경로, 셸 내장 명령과 PWD 변수의 차이도 함께 알아봅니다.

Linux / 명령어 / comm - 정렬된 두 파일의 공통·고유 행 비교

Linux / 명령어 / comm - 정렬된 두 파일의 공통·고유 행 비교

Linux comm 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / fdisk - 디스크 파티션 표 확인과 편집

Linux / 명령어 / fdisk - 디스크 파티션 표 확인과 편집

Linux fdisk 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.