在Unix或类似Unix的系统中,该命令的类型为" shell builtin"。像cd,echo这样的命令是shell内置的。有什么办法吗? 列出所有shell内置命令或是否有任何命令可用于列出shell的所有内置命令?
答案 0 :(得分:1)
这取决于shell。因此,请阅读特定shell的文档。
对于bash
,请参阅here。
对于zsh
,请参阅here。
对于fish
,请参阅this。
对于tcsh
(我不推荐,csh considered harmful的STFW),请参阅here。
对于POSIX shell规范,请阅读that。如果你想以某种方式编写" portable" shell脚本,你应该限制自己遵守该规范。
一些救援炮弹有许多内置装置,可用于严重损坏或破损的系统,例如:没有任何/bin/mv
或/bin/cp
executables。例如sash。
有些shell能够加载plugins(不知何故可能定义新的内置函数),或者定义函数。
有些shell有一个受限形式,删除一些内置(特别是cd
)。对于受限制的bash
,请参阅here。
答案 1 :(得分:1)
查找shell的手册页。 应该有一个部分" SHELL BUILTIN COMMANDS"
$ man bash
答案 2 :(得分:0)
TAB显示来自PATH和builtins的可用命令 重置PATH并输入[TAB]两次并回答y
$ PATH=
$ [TAB][TAB]
Display all 123 possibilities? (y or n)
- compgen fg _ooexp_ spwd
: complete fi path startx
! compopt for _pkcon _strip
. _compreply_ function __pkconcomp suspend
.. continue _gdb_ _pkcon_search test
... coproc getopts popd then
[ __dbus_send hash ppwd time
[[ declare help printf times
]] dir history pushd trap
{ dirs if pwd true
} disown in rd type
+ do jobs read typeset
alias done kill readarray ulimit
beep echo l readonly umask
bg elif la rehash unalias
bind else let remount unmount
break enable ll return unset
builtin esac local _scout until
caller eval logout _scpm wait
case exec ls select while
cd exit ls-l set _yast2
_cd_ _exp_ _man_ shift you
cd.. export mapfile shopt _zypper
command false md skipthis
command_not_found_handle fc o source
答案 3 :(得分:0)
只需在shell上输入help
,就会出现一个列表