¿Cómo distingo entre un comando, una utilidad o un archivo incorporado para obtener documentación?

9

Estoy ejecutando secuencias de comandos Bash, pero a veces me confundo cuál de estos comandos que uso pertenecen a quién. A veces man xxxfunciona, a veces no, así que uso --helpo info, principalmente, uno de estos trabajos para mostrar la descripción del comando. ¿Alguien puede decirme cómo sabría qué comando pertenece a qué? Bash incorporado, utilidad GNU, etc.

usuario198436
fuente

Respuestas:

6

Puedes usar typepara descubrir:

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

Para bash builtins, use help, como en help echo.

choroba
fuente
3

Algunos comandos incorporados se incluyen por razones de eficiencia y existen como comandos externos en primer lugar. Por ejemplo:

$ 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

Se puede encontrar un análisis detallado de los comandos internos y externos en Unix y Linux .


En cuanto a obtener ayuda para comandos internos / externos duales como echotiene dos opciones. Un método es mediante el uso de 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)

Y puedes escribir:

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