Linux / 명령어 / apropos - 설명 키워드로 명령어 검색
apropos는 명령 이름을 정확히 모를 때 매뉴얼 페이지의 이름과 한 줄 설명에서 키워드를 검색하는 명령어입니다. 예를 들어 “파일 압축”, “사용자 생성”, “네트워크 주소”처럼 하고 싶은 작업은 알지만 관련 명령을 모를 때 후보를 찾는 데 유용합니다.
man -k도 같은 검색 기능을 제공합니다. 기본 검색어는 정규 표현식으로 처리될 수 있으므로 여러 단어의 관계, 정확히 일치하는 검색, 와일드카드와 셸의 따옴표 규칙을 이해하면 더 정확한 결과를 얻을 수 있습니다.
apropos 명령어란?
각 매뉴얼 페이지에는 이름과 기능을 요약한 짧은 설명이 있습니다. apropos는 man-db의 색인 데이터베이스에서 페이지 이름과 설명을 검색하여 일치하는 항목을 출력합니다.
매뉴얼 본문 전체를 검색하는 명령은 아닙니다. 따라서 결과가 빠르고 주제별 후보를 찾기 좋지만, 설명에 검색어가 들어 있지 않은 페이지는 본문에 관련 내용이 있어도 나오지 않을 수 있습니다.
기본 문법과 결과 읽기
apropos [옵션] 키워드...
파일 복사와 관련된 매뉴얼을 찾는 예제입니다.
apropos copy
일반적인 결과는 다음 구조를 가집니다.
cp (1) - copy files and directories scp (1) - OpenSSH secure file copy
첫 번째 필드는 매뉴얼 페이지 이름, 괄호 안 숫자는 섹션, 하이픈 뒤는 한 줄 설명입니다. 원하는 항목을 찾으면 섹션까지 지정해 정확한 페이지를 엽니다.
man 1 cp man 1 scp
여러 키워드 검색 방식
기본값은 하나라도 일치하면 출력
키워드를 여러 개 지정하면 기본적으로 어느 하나와 일치하는 항목이 출력될 수 있습니다. 검색 범위가 넓어져 결과가 지나치게 많아질 수 있습니다.
apropos network address
모든 키워드가 필요한 경우 -a 사용
-a 또는 --and는 지정한 모든 키워드와 일치하는 항목만 보여 줍니다. 관련 없는 결과를 줄일 때 유용합니다.
apropos -a network address apropos --and user password
여러 단어를 하나의 검색 표현으로 묶으려면 따옴표를 사용할 수 있지만, 기본 검색이 정규 표현식이라는 점도 고려해야 합니다.
정규 표현식, 정확한 검색과 와일드카드
기본 정규 표현식 검색
man-db의 apropos는 기본적으로 키워드를 정규 표현식으로 처리합니다. 점, 대괄호, 별표 같은 문자는 특별한 의미를 가질 수 있으므로 문자 그대로 찾으려면 이스케이프하거나 다른 검색 모드를 사용해야 합니다.
apropos '^ssh' apropos 'file.*system'
첫 번째 예제는 이름이나 설명에서 ssh로 시작하는 부분을, 두 번째 예제는 file 뒤에 임의의 문자가 있고 나중에 system이 나오는 항목을 찾습니다.
정확히 일치시키는 -e
-e 또는 --exact는 키워드를 페이지 이름이나 설명과 정확히 일치시킵니다. 정확한 페이지 이름을 이미 알고 있다면 whatis가 더 단순할 수 있습니다.
apropos -e printf
셸 방식 와일드카드 -w
-w 또는 --wildcard는 키워드를 셸 스타일 와일드카드 패턴으로 처리합니다. 현재 셸이 별표를 파일 이름으로 먼저 확장하지 않도록 패턴을 따옴표로 묶습니다.
apropos -w 'ssh*' apropos --wildcard '*password*'
검색 범위를 섹션으로 제한하기
-s 또는 --sections로 매뉴얼 섹션을 제한하면 같은 이름의 다른 문서나 관련 없는 결과를 줄일 수 있습니다.
apropos -s 1 archive apropos -s 2,3 socket apropos --sections=5 password
| 섹션 | 주요 내용 |
|---|---|
| 1 | 일반 사용자가 실행하는 명령과 프로그램 |
| 2 | 리눅스 커널이 제공하는 시스템 호출 |
| 3 | 프로그램 라이브러리 함수 |
| 5 | 설정 파일과 파일 형식 |
| 8 | 주로 관리자가 사용하는 시스템 관리 명령 |
섹션 목록은 쉼표나 콜론으로 구분할 수 있습니다. 구현과 설치된 문서에 따라 3p, 3perl 같은 하위 섹션이 있을 수 있습니다.
자주 사용하는 apropos 옵션
| 옵션 | 설명 |
|---|---|
-a, --and |
모든 키워드와 일치하는 항목만 출력합니다. |
-e, --exact |
키워드를 페이지 이름이나 설명과 정확히 일치시킵니다. |
-r, --regex |
키워드를 정규 표현식으로 처리합니다. man-db에서는 기본 검색 방식입니다. |
-w, --wildcard |
셸 스타일 와일드카드 패턴으로 검색합니다. |
-s 목록, --sections=목록 |
지정한 매뉴얼 섹션만 검색합니다. |
-l, --long |
터미널 너비에 맞춘 설명 잘림을 비활성화합니다. |
-M 경로, --manpath=경로 |
검색할 매뉴얼 계층 경로를 직접 지정합니다. |
-L 로케일, --locale=로케일 |
검색에 사용할 로케일을 일시적으로 지정합니다. |
apropos와 man -k는 어떤 관계인가요?
man-db 환경에서 man -k는 apropos 검색 옵션을 사용하는 인터페이스입니다. 다음 두 명령은 같은 목적으로 사용할 수 있습니다.
apropos filesystem man -k filesystem
사용 습관에 따라 선택하면 됩니다. 매뉴얼을 찾는 과정임을 강조하려면 man -k, 독립적인 검색 명령으로 기억하려면 apropos가 직관적입니다.
검색 결과가 없을 때 확인할 점
더 일반적인 키워드로 바꾸기
설명에 실제로 포함될 가능성이 높은 영문 단어를 사용하세요. 번역된 매뉴얼이 설치되지 않았다면 한국어 검색어로 결과가 나오지 않을 수 있습니다.
apropos compress apropos archive apropos -a user account
색인 데이터베이스 갱신하기
새 매뉴얼을 설치한 직후이거나 색인이 손상되었다면 apropos 결과가 비어 있을 수 있습니다. man-db 환경에서는 관리 권한으로 색인을 갱신할 수 있습니다.
sudo mandb
mandb는 매뉴얼 페이지 색인 캐시를 만들거나 갱신합니다. 시스템이 패키지 설치 과정이나 주기 작업으로 자동 갱신하는 경우도 있으므로 불필요하게 반복 실행할 필요는 없습니다.
매뉴얼 경로와 로케일 확인하기
manpath printf '%s\n' "$MANPATH" locale
MANPATH를 직접 설정했거나 특수한 경로에 문서를 설치했다면 기본 매뉴얼 계층이 검색에서 빠질 수 있습니다. -M 옵션은 문제를 진단할 때 일시적으로 다른 경로를 지정하는 데 사용할 수 있습니다.
셸 스크립트에서 사용할 때
man-db의 apropos는 정상 실행 시 0, 사용법이나 설정 오류 시 1, 운영 오류 시 2, 일치하는 결과가 없을 때 16을 반환합니다. 단순히 출력이 비어 있는지만 검사하기보다 종료 상태를 구분하면 오류와 검색 결과 없음의 차이를 알 수 있습니다.
if apropos -e "$1" >/dev/null; then printf '%s\n' '일치하는 매뉴얼 항목이 있습니다.' else status=$? printf '검색 실패 또는 결과 없음: status=%d\n' "$status" >&2 fi
종료 상태 값은 다른 구현에서 달라질 수 있습니다. 자동화에 사용하기 전에 현재 시스템의 man apropos를 확인하세요.
apropos와 비슷한 명령 비교
| 명령 | 용도 |
|---|---|
apropos 키워드 |
페이지 이름과 한 줄 설명에서 주제나 키워드를 검색합니다. |
whatis 이름 |
정확한 매뉴얼 페이지 이름의 한 줄 설명을 확인합니다. |
man 이름 |
선택한 매뉴얼 페이지의 전체 내용을 읽습니다. |
man -K 문자열 |
설치된 매뉴얼 본문 전체에서 문자열을 검색합니다. 시간이 오래 걸릴 수 있습니다. |
자주 묻는 질문
한국어로 검색해도 되나요?
한국어 매뉴얼 설명이 설치되어 있고 현재 로케일에서 선택된다면 가능합니다. 많은 시스템에는 영문 설명만 있으므로 결과가 없다면 영문 핵심어로 다시 검색하세요.
검색어에 공백이 있으면 어떻게 하나요?
하나의 표현으로 전달하려면 따옴표로 묶습니다. 여러 개의 독립된 키워드로 전달하고 -a를 사용하면 모든 단어가 각각 일치하는 항목만 찾을 수 있습니다.
which 대신 apropos를 사용하나요?
용도가 다릅니다. apropos는 관련 매뉴얼을 찾고, command -v나 type은 입력한 명령 이름이 실제로 어떻게 해석되는지 확인합니다.
정리
apropos는 이름을 모르는 명령이나 문서를 기능 키워드로 찾을 때 유용합니다. 기본 검색으로 후보를 찾고, -a로 여러 조건을 모두 만족시키며, -s로 섹션을 좁히면 결과를 효율적으로 정리할 수 있습니다.
원하는 페이지를 찾은 뒤에는 섹션 번호와 함께 man으로 여세요. 다른 기본 명령은 리눅스 명령어 목록과 개요에서 확인할 수 있습니다.









