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를 사용하세요. 다른 기본 명령은 리눅스 명령어 목록과 개요에서 확인할 수 있습니다.

공식 문서 참고

같은 카테고리의 다른 글
Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux screen 명령어로 원격 터미널 세션을 분리하고 다시 연결하는 방법을 설명합니다. 세션·창 관리, 로그 기록, 문제 해결과 nohup·tmux·systemd의 차이를 정리합니다.

Linux / 명령어 / jobs - 현재 셸의 작업 목록 확인

Linux / 명령어 / jobs - 현재 셸의 작업 목록 확인

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

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux zip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / tail - 파일의 마지막 내용과 로그 실시간 확인

Linux / 명령어 / tail - 파일의 마지막 내용과 로그 실시간 확인

Linux tail 명령어로 파일의 마지막 행과 바이트를 확인하고 새로 추가되는 로그를 추적하는 방법을 설명합니다. -n, -f, -F 차이와 로그 로테이션, 필터링 및 여러 파일 모니터링 예제를 정리합니다.

Linux / 명령어 / df - 파일 시스템의 남은 용량 확인

Linux / 명령어 / df - 파일 시스템의 남은 용량 확인

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

Linux / 명령어 / file - 파일 종류와 형식 확인

Linux / 명령어 / file - 파일 종류와 형식 확인

Linux file 명령어로 확장자와 관계없이 실제 파일 형식, MIME 유형과 문자 인코딩을 확인하는 방법을 설명합니다. 심볼릭 링크, 압축 파일, 여러 파일 검사와 스크립트 활용법도 정리합니다.

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux dd 명령어로 파일과 블록 장치 데이터를 복사하고 변환하는 방법을 설명합니다. if와 of, 블록 크기, 진행률, 디스크 이미지 생성·복원 및 대상 장치 오지정 위험을 정리합니다.

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux find 명령어로 경로, 이름, 종류, 크기, 시간과 권한 조건을 조합해 파일을 찾는 방법을 설명합니다. 안전한 exec 사용과 삭제 전 검증도 다룹니다.

Linux / 명령어 / uniq - 인접한 중복 행 정리

Linux / 명령어 / uniq - 인접한 중복 행 정리

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

Linux / 리눅스 Bash 명령어 연결 연산자: ;, &&, ||, &, | 사용법

Linux / 리눅스 Bash 명령어 연결 연산자: ;, &&, ||, &, | 사용법

리눅스 Bash의 ;, &&, ||, &, |, |&, ! 차이를 종료 상태와 실제 예제로 설명합니다. 조건부 실행, 백그라운드 작업, 파이프라인과 pipefail 사용법까지 정리합니다.