![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-113.png)
bash shell 本身包含内置命令。如何在不阅读大型 bash 手册页的情况下列出 Linux / Apple OS X / *BSD / Unix 类操作系统上的所有内置 bash 命令?
shell 内置命令只不过是从 shell 调用的命令或函数,直接在 shell 本身中执行。bash shell 直接执行命令,而不调用其他程序。您可以使用命令查看 Bash 内置命令的信息help。有不同类型的内置命令。
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
先决条件 | 巴什 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
美东时间。阅读时间 | 4分钟 |
内置命令类型
- Bourne Shell 内置命令:从 Bourne Shell 继承的内置命令。
- Bash 内置程序 特定于 Bash 的内置程序表。
- 修改 Shell 行为:用于修改 shell 属性和可选行为的内置函数。
- 特殊内置命令:由 POSIX 专门分类的内部命令。
如何查看所有 bash 内置函数
键入以下帮助命令:
这是我所看到的:
$ help
$ help | less
# use the less #
$ help | grep read
GNU bash,版本 4.1.5 ( 1 ) -release ( x86_64-pc-linux-gnu ) 这些 shell 命令是内部定义的。输入“help ”即可查看此列表。 输入“help name”以了解有关函数“name ”的更多信息。 使用“info bash”来了解有关 shell 的更多信息。 使用“man -k ”或“info”来查找有关未在此列表中的命令的更多信息。 名称旁边的星号( * )表示该命令已禁用。 job_spec [ & ] 历史记录[ -c ] [ -d 偏移量] [ n ]或 hist> ( (表达式) ) 如果命令;然后是命令;[埃利夫 C> 。文件名[参数] 作业[ -lnprs ] [ jobspec ... ]或 jobs > : kill [-s sigspec | -n signum | -sigs> [ arg... ] let arg [arg ...] [[ expression ]] local [option] name[=value] ... alias [-p] [name[=value] ... ] logout [n] bg [job_spec ...] mapfile [-n count] [-O origin] [-s c> bind [-lpvsPVS] [-m keymap] [-f filen> popd [-n] [+N | -N] break [n] printf [-v var] format [arguments] builtin [shell-builtin [arg ...]] pushd [-n] [+N | -N | dir] caller [expr] pwd [-LP] case WORD in [PATTERN [| PATTERN]...)> read [-ers] [-a array] [-d delim] [-> cd [-L|-P] [dir] readarray [-n count] [-O origin] [-s> command [-pVv] command [arg ...] readonly [-af] [name[=value] ...] or> compgen [-abcdefgjksuv] [-o option] > return [n] complete [-abcdefgjksuv] [-pr] [-DE] > select NAME [in WORDS ... ;] do COMM> compopt [-o|+o option] [-DE] [name ..> set [--abefhkmnptuvxBCHP] [-o option> continue [n] shift [n] coproc [NAME] command [redirections] shopt [-pqsu] [-o] [optname ...] declare [-aAfFilrtux] [-p] [name[=val> source filename [arguments] dirs [-clpv] [+N] [-N] suspend [-f] disown [-h] [-ar] [jobspec ...] test [expr] echo [-neE] [arg ...] time [-p] pipeline enable [-a] [-dnps] [-f filename] [na> times eval [arg ...] trap [-lp] [[arg] signal_spec ...] exec [-cl] [-a name] [command [argume> true exit [n] type [-afptP] name [name ...] export [-fn] [name[=value] ...] or ex> typeset [-aAfFilrtux] [-p] name[=val> false ulimit [-SHacdefilmnpqrstuvx] [limit> fc [-e ename] [-lnr] [first] [last] o> umask [-p] [-S] [mode] fg [job_spec] unalias [-a] name [name ...] for NAME [in WORDS ... ] ; do COMMAND> unset [-f] [-v] [name ...] for (( exp1; exp2; exp3 )); do COMMAN> until COMMANDS; do COMMANDS; done function name { COMMANDS ; } or name > variables - Names and meanings of so> getopts optstring name [arg] wait [id] hash [-lr] [-p pathname] [-dt] [name > while COMMANDS; do COMMANDS; done help [-dms] [pattern ...] { COMMANDS ; }
This is taken from bash version 5.0.17(1)-release:
$ bash --version
Finding bash shell list of all builtin commands
Another option is to use the compgen command as follows:
$ compgen -b
$ compgen -b | more
Viewing information for Bash built-ins
To get detailed info run the man or help command:
$ help command
$ help read
To just get a list of all built-ins with a short description, execute:
$ help -d
Find syntax and other options for builtins
Use the following syntax ‘ to find out more about the builtins commands:
help name help cd help fg help for help read help :
输出示例:
: : 空命令。 没有效果; 该命令不执行任何操作。 退出状态: 总是成功
查明命令是内部命令还是外部命令
使用type命令或command命令如下:
类型 -a命令名称-此处 类型 -a cd 类型 -a uname 类型 -a : 类型 -a ls
或者
输入 -a cd uname : ls uname
输出示例:
cd 是 shell 内置的 uname 是 /bin/uname : 是 shell 内置的 ls 的别名为“ls --color=auto” ls 是 /bin/ls l 是一个函数 升() { ls --颜色=自动 }
或者
命令 -V ls 命令 -V cd 命令 -V foo
加起来
您了解了内部命令以及如何在使用 Linux 或类 Unix 系统时查看有关这些命令的帮助。获得帮助对于所有开发人员和 Unix 用户都至关重要。我强烈建议您通过在我们的 wiki 中键入以下 man 命令和帮助命令页来阅读 bash 手册页:
$ man bash