Linux / 명령어 / whatis - 명령어의 한 줄 설명 확인
whatis는 매뉴얼 페이지 이름을 검색하여 해당 페이지의 한 줄 설명을 보여 주는 명령어입니다. 명령 이름은 알고 있지만 어떤 기능인지 빠르게 확인하거나, 같은 이름이 여러 매뉴얼 섹션에 있는지 살펴볼 때 유용합니다.
기본적으로 정확한 페이지 이름을 찾으며, man -f도 같은 목적으로 사용할 수 있습니다. 주제나 설명 속 키워드로 폭넓게 찾고 싶다면 whatis보다 apropos가 적합합니다.
whatis 명령어란?
매뉴얼 페이지의 NAME 구역에는 페이지 이름과 짧은 설명이 들어 있습니다. whatis는 man-db 색인 데이터베이스에서 지정한 이름과 일치하는 페이지를 찾아 이 설명을 한 줄로 출력합니다.
매뉴얼 본문을 열지 않기 때문에 여러 명령의 개요를 빠르게 확인하기 좋습니다. 다만 실행 파일의 위치나 셸에서 실제로 선택되는 명령을 알려 주는 도구는 아닙니다.
기본 문법과 출력 읽기
whatis [옵션] 이름...
ls의 한 줄 설명을 확인합니다.
whatis ls
출력은 일반적으로 다음 구조입니다.
ls (1) - list directory contents
ls는 페이지 이름, (1)은 매뉴얼 섹션, 하이픈 뒤는 한 줄 설명입니다. 전체 사용법은 결과의 섹션 번호와 이름을 사용해 엽니다.
man 1 ls
여러 이름을 한 번에 확인하기
인수를 여러 개 지정하면 각 이름의 결과를 함께 볼 수 있습니다.
whatis ls cp mv rm
기본 명령의 역할을 비교하거나 서버에 설치된 매뉴얼을 점검할 때 편리합니다. 어떤 이름이 없더라도 다른 이름의 결과는 출력될 수 있으므로 자동화에서는 최종 종료 상태와 개별 결과를 함께 확인해야 합니다.
같은 이름이 여러 섹션에 있을 때
같은 페이지 이름이 여러 매뉴얼 섹션에 존재하면 whatis는 여러 줄을 출력할 수 있습니다. 대표적인 예로 passwd는 사용자 명령과 파일 형식 문서가 구분됩니다.
whatis passwd
결과에 passwd(1)과 passwd(5)가 보인다면 각각 다음과 같이 엽니다.
man 1 passwd man 5 passwd
괄호 안 숫자는 프로그램 버전이 아니라 매뉴얼 섹션입니다. 명령 사용법은 보통 섹션 1이나 8, 설정 파일 형식은 주로 섹션 5에서 찾습니다.
정규 표현식과 와일드카드 검색
정규 표현식 -r
-r 또는 --regex는 입력한 이름을 정규 표현식으로 해석합니다. 페이지 이름의 일부가 일치해도 결과가 나올 수 있습니다.
whatis -r '^ssh' whatis --regex 'printf$'
정규 표현식의 특수 문자가 셸에서 먼저 해석되지 않도록 따옴표로 묶는 편이 안전합니다.
와일드카드 -w
-w 또는 --wildcard는 셸 스타일 와일드카드 패턴으로 이름을 찾습니다. 확장된 패턴이 페이지 이름 전체와 일치해야 합니다.
whatis -w 'ssh*' whatis --wildcard '*printf*'
따옴표가 없으면 현재 디렉터리의 파일 이름으로 *가 먼저 확장될 수 있습니다.
매뉴얼 섹션 제한하기
-s 또는 --sections로 원하는 섹션만 검색할 수 있습니다.
whatis -s 1 passwd whatis -s 5 passwd whatis --sections=2,3 printf
| 섹션 | 주요 내용 |
|---|---|
| 1 | 일반 사용자 명령과 실행 프로그램 |
| 2 | 시스템 호출 |
| 3 | 라이브러리 함수 |
| 5 | 설정 파일과 파일 형식 |
| 8 | 시스템 관리 명령 |
자주 사용하는 whatis 옵션
| 옵션 | 설명 |
|---|---|
-r, --regex |
입력한 이름을 정규 표현식으로 처리합니다. |
-w, --wildcard |
셸 스타일 와일드카드 패턴으로 검색합니다. |
-s 목록, --sections=목록 |
지정한 매뉴얼 섹션만 검색합니다. |
-l, --long |
터미널 너비에 맞춰 설명이 잘리는 동작을 비활성화합니다. |
-M 경로, --manpath=경로 |
검색할 매뉴얼 계층 경로를 지정합니다. |
-L 로케일, --locale=로케일 |
해당 실행에서 사용할 로케일을 지정합니다. |
whatis와 man -f의 관계
man-db 환경에서 man -f는 whatis와 같은 방식으로 페이지의 짧은 설명을 찾습니다.
whatis printf man -f printf
원하는 형식을 기억하기 쉬운 쪽을 사용하면 됩니다. man -f는 man의 관련 기능으로 기억하기 좋고, whatis는 한 줄 설명을 확인한다는 목적이 이름에 드러납니다.
whatis, apropos, type의 차이
| 명령 | 답하는 질문 |
|---|---|
whatis ls |
이 이름을 가진 매뉴얼 페이지는 무엇을 설명하나요? |
apropos copy |
이 주제와 관련된 매뉴얼 페이지는 무엇인가요? |
type ls |
현재 셸은 이 명령 이름을 어떻게 해석하나요? |
command -v ls |
현재 셸에서 이 명령을 찾을 수 있고 어떤 형태인가요? |
whatis 결과가 있다고 해서 같은 이름의 실행 파일이 현재 PATH에 있다는 뜻은 아닙니다. 반대로 실행 파일이 있어도 매뉴얼 페이지가 설치되지 않았다면 결과가 없을 수 있습니다.
검색 결과가 없을 때 해결하기
페이지 이름과 설치 상태 확인하기
whatis는 기본적으로 정확한 페이지 이름을 찾습니다. 주제나 설명의 단어를 입력했다면 apropos를 사용하고, 실행 파일 존재 여부는 command -v로 확인하세요.
apropos archive command -v tar whatis tar
색인 데이터베이스 갱신하기
매뉴얼을 새로 설치했지만 결과가 나오지 않는다면 man-db 색인이 아직 갱신되지 않았을 수 있습니다.
sudo mandb
시스템이 패키지 설치 과정이나 예약 작업으로 자동 갱신하는 경우도 있습니다. 관리 권한이 없는 환경에서는 사용자 매뉴얼 경로와 배포판 설정을 먼저 확인하세요.
로케일과 MANPATH 확인하기
locale manpath printf '%s\n' "$MANPATH"
특정 로케일의 색인이나 사용자가 지정한 MANPATH 때문에 예상한 문서가 검색되지 않을 수 있습니다.
스크립트에서 결과 사용하기
스크립트에서 매뉴얼 존재 여부를 점검할 수 있지만, 출력 문장은 로케일과 문서 내용에 따라 달라질 수 있습니다. 표시 문자열을 파싱하기보다 종료 상태를 사용하고, 실제 명령 존재 여부를 검사하려는 목적이라면 command -v를 사용하세요.
if whatis "$1" >/dev/null 2>&1; then printf '%s\n' '매뉴얼 설명을 찾았습니다.' else printf '%s\n' '매뉴얼 설명을 찾지 못했습니다.' >&2 fi
자주 묻는 질문
whatis는 명령의 실제 경로를 보여 주나요?
아닙니다. 매뉴얼 페이지의 이름과 설명을 보여 줍니다. 실행 경로와 명령 종류는 type이나 command -v로 확인하세요.
설명에 포함된 단어로 검색하려면 어떻게 하나요?
apropos 키워드 또는 man -k 키워드를 사용합니다. whatis는 기본적으로 페이지 이름을 알고 있을 때 적합합니다.
왜 같은 이름이 여러 줄 출력되나요?
서로 다른 매뉴얼 섹션에 같은 이름의 페이지가 있기 때문입니다. 괄호 안 섹션 번호를 확인하고 man 섹션 이름으로 원하는 페이지를 여세요.
정리
whatis는 알고 있는 매뉴얼 페이지 이름의 역할을 한 줄로 확인하는 도구입니다. 여러 섹션의 동명 페이지를 구분하고, 여러 이름을 빠르게 검토하며, 필요한 문서를 man으로 열기 전에 후보를 확인할 수 있습니다.
기능 키워드로 문서를 찾을 때는 apropos, 실제 명령 해석을 확인할 때는 type이나 command -v를 사용하세요. 다른 기본 명령은 리눅스 명령어 목록과 개요에서 확인할 수 있습니다.









