Wie unterscheide ich zwischen einem Befehl, einem Dienstprogramm oder einer integrierten Funktion zum Abrufen von Dokumentation?

9

Ich führe Bash-Scripting aus, aber manchmal bin ich verwirrt, welcher dieser Befehle zu wem gehört. Manchmal man xxxfunktioniert es, manchmal nicht, also benutze ich --helpoder infomeistens eine dieser Arbeiten, um die Beschreibung des Befehls anzuzeigen. Kann mir jemand sagen, woher ich wissen würde, welcher Befehl zu was gehört? Bash eingebaut, GNU-Dienstprogramm usw.

user198436
quelle

Antworten:

6

Sie können verwenden type, um herauszufinden:

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

Verwenden Sie für Bash-Buildins helpwie in help echo.

Choroba
quelle
3

Einige eingebaute Befehle sind aus Effizienzgründen enthalten und existieren in erster Linie als externe Befehle. Zum Beispiel:

$ 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

Eine detaillierte Analyse der integrierten und externen Befehle finden Sie unter Unix und Linux .


Wenn Sie Hilfe für zwei integrierte / externe Befehle erhalten möchten echo, haben Sie zwei Möglichkeiten. Eine Methode ist die Verwendung von 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)

Und Sie können eingeben:

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