Bash,什么是命令,实用程序,内置,我如何区分

我正在运行Bash脚本,但有时我会混淆我使用的这些命令属于谁。 有时man xxx工作,有时不工作,所以我使用--helpinfo ,这些工作大多是显示命令的描述。 谁能告诉我怎么知道什么命令属于什么? Bash内置,GNU实用程序等

您可以使用type来查找:

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

对于bash builtins,请使用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.