설명서를 얻기 위해 명령, 유틸리티 또는 내장을 어떻게 구별합니까? 때로는 작동하지 않기

Bash 스크립팅을 실행하고 있지만 때로는 내가 사용하는 명령 중 누가 누구에게 속하는지 혼란스러워합니다. 때로는 man xxx작동 하지만 때로는 작동하지 않기 때문에 명령에 대한 설명을 표시하기 위해 주로 --help또는 info작동합니다. 누구든지 어떤 명령이 무엇에 속하는지 어떻게 알 수 있습니까? 배쉬 내장, GNU 유틸리티 등



답변

다음 type을 찾아 사용할 수 있습니다 .

$ type echo
echo is a shell builtin
$ type sudo
sudo is /usr/bin/sudo

bash 내장의 경우 help와 같이를 사용하십시오 help echo.


답변

일부 내장 명령은 효율성을 위해 포함되며 처음에는 외부 명령으로 존재합니다. 예를 들면 다음과 같습니다.

$ type -a echo
echo is a shell builtin
echo is /bin/echo

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

내장 및 외부 명령에 대한 자세한 분석은 Unix & Linux 에서 찾을 수 있습니다 .


듀얼 내장 / 외부 명령에 대한 도움을받는 echo한 두 가지 선택이 있습니다. 한 가지 방법은 다음을 사용하는 것입니다 man echo.

ECHO(1)                               User Commands                               ECHO(1)

NAME
       echo - display a line of text

SYNOPSIS
       echo [SHORT-OPTION]... [STRING]...
       echo LONG-OPTION

DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       -E     disable interpretation of backslash escapes (default)

       --help display this help and exit

       --version
              output version information and exit

       If -e is in effect, the following sequences are recognized:

       \\     backslash

       \a     alert (BEL)

 Manual page echo(1) line 1 (press h for help or q to quit)

그리고 당신은 입력 할 수 있습니다 :

$ help echo
echo: echo [-neE] [arg ...]
    Write arguments to the standard output.

    Display the ARGs, separated by a single space character and followed by a
    newline, on the standard output.

    Options:
      -n    do not append a newline
      -e    enable interpretation of the following backslash escapes
      -E    explicitly suppress interpretation of backslash escapes

    `echo' interprets the following backslash-escaped characters:
      \a    alert (bell)
      \b    backspace
      \c    suppress further output
      \e    escape character
      \E    escape character
      \f    form feed
      \n    new line
      \r    carriage return
      \t    horizontal tab
      \v    vertical tab
      \\    backslash
      \0nnn the character whose ASCII code is NNN (octal).  NNN can be
        0 to 3 octal digits
      \xHH  the eight-bit character whose value is HH (hexadecimal).  HH
        can be one or two hex digits

    Exit Status:
    Returns success unless a write error occurs.