web-dev-qa-db-ja.com

ドキュメントを取得するためのコマンド、ユーティリティ、またはビルトインをどのように区別しますか?

私はBashスクリプトを実行していますが、これらのコマンドのどれが誰のものであるかが混乱することがあります。 man xxxが機能する場合と機能しない場合があるため、--helpまたはinfoを使用します。これらの機能のほとんどは、コマンドの説明を表示するために使用します。誰がどのコマンドが何に属しているかを知る方法を教えてもらえますか? Bashビルトイン、GNUユーティリティなど).

9
user198436

typeを使用して、次のことを確認できます。

$ type echo
echo is a Shell builtin
$ type Sudo
sudo is /usr/bin/Sudo

Bashビルトインの場合、help echoのようにhelpを使用します。

6
choroba

一部の組み込みコマンドは、効率化のために含まれており、そもそも外部コマンドとして存在します。例えば:

$ 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

組み込みコマンドと外部コマンドの詳細な分析は nix&Linux にあります。


echoなどのデュアルビルトイン/外部コマンドのヘルプを得る限り、2つの選択肢があります。 1つの方法は、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.
3