Unix中的内置命令

时间:2015-10-06 10:50:31

标签: linux shell unix

在Unix或类似Unix的系统中,该命令的类型为" shell builtin"。像cd,echo这样的命令是shell内置的。有什么办法吗? 列出所有shell内置命令或是否有任何命令可用于列出shell的所有内置命令?

4 个答案:

答案 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,就会出现一个列表