如何区分用于获取文档的命令、实用程序或内置命令?

如何区分用于获取文档的命令、实用程序或内置命令?

我正在运行 Bash 脚本,但有时我会搞不清楚我使用的这些命令属于谁。有时man xxx有效,有时无效,所以我使用--helpinfo,其中大多数有效,以显示命令的描述。谁能告诉我如何知道哪个命令属于什么?Bash 内置命令、GNU 实用程序等。

答案1

您可以使用type来找出:

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

对于 bash 内建命令,使用help,如help echo

答案2

一些内置命令是为了提高效率而包含的,并且首先作为外部命令存在。例如:

$ 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.

相关内容