맨페이지 별칭

맨페이지 별칭

일부 매뉴얼 페이지는 한 페이지에 여러 명령/기능을 문서화하며, man 명령은 일반적으로 각 명령/기능에 대한 올바른 매뉴얼 페이지를 제공합니다.

예: 많은 시스템의 malloc/free/calloc/realloc에 ​​대한 매뉴얼 페이지

사람들은 그러한 조회를 위해 어떤 메커니즘을 사용합니까?

지금까지 내가 만난 것은 다음과 같습니다.

  • 아래의 심볼릭 링크/usr/share/man/manX
  • .so manX/foo소스 지시문 만 포함하는 Alias ​​매뉴얼 페이지

물론 맨 페이지의 하드 링크와 복사본도 떠오릅니다.

man 명령이 다른 메커니즘을 지원합니까?

예를 들어 이 카테고리 이름을 정의하는 중앙 색인 파일이 있습니까?

답변1

OpenBSD에서 각 man디렉토리(예: /usr/share/man기본 시스템과 관련된 매뉴얼)에는mandoc.db매주 실행되는 크론 작업으로 생성된 데이터베이스makewhatis.

이러한 데이터베이스는 특정 문자열에 대한 다양한 수동 소스(roff 소스 파일)를 구문 분석하여 생성되며 다음을 통해 생성됩니다.man유용. 색인의 내용 중 하나는 OpenBSD를 사용하는 매뉴얼 섹션 조판 .Nm의 ("이름") 매크로가 참조하는 문자열 입니다..Sh NAMEmdoc매크로.

예를 들어, 처음에 소스 코드의 일부malloc(3)수동 입력/usr/share/man/man3/malloc.3다음과 같습니다.

.Dd $Mdocdate: May 19 2019 $
.Dt MALLOC 3
.Os
.Sh NAME
.Nm malloc ,
.Nm calloc ,
.Nm realloc ,
.Nm free ,
.Nm reallocarray ,
.Nm recallocarray ,
.Nm freezero ,
.Nm aligned_alloc ,
.Nm malloc_conceal ,
.Nm calloc_conceal
.Nd memory allocation and deallocation
.Sh SYNOPSIS

도구 는 각 값을 색인화 makewhatis하며 .Nm사용자가 나열된 기능(예:)에 대한 매뉴얼을 요청하면 명령은 man소스의 렌더링된 버전을 표시합니다.malloc.3man free

OpenBSD 기본 시스템과 관련되지 않은 매뉴얼(예: 아래의 타사 매뉴얼 /usr/local/man)도 로 구문 분석되지만 makewhatis이러한 매뉴얼은 roff 태그를 사용하지 않는 경우가 많기 때문에 mdoc(일반적으로 다른 매크로 패키지를 사용하여 Linux용으로 작성됨) 다른 매크로 값에서 사용하는 태그를 색인화합니다( .TH타이틀 매크로).

일부 타사 프로그램은 설명서를 복제하고 다른 이름을 지정하는 경우에도 개별 도구나 기능에 대해 별도의 설명서를 배포하는 것 같습니다. 기호 및/또는 하드 링크를 사용하는 것도 일반적인 솔루션입니다.

다른 사람들은 조금 더 똑똑합니다. zzip_fread(3)전체 매뉴얼 소스(패키지의 일부) 는 다음과 같습니다 zziplib.

.so man3/zzip_read.3

즉, 파서가 다른 파일을 읽도록 하는 매크로를 포함합니다.

관련 정보