AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 512918
Accepted
Pandya
Pandya
Asked: 2014-08-19 05:12:13 +0800 CST2014-08-19 05:12:13 +0800 CST 2014-08-19 05:12:13 +0800 CST

如何列出所有可用的 shell 内置命令?

  • 772

我们知道 bash 支持许多 buitin 命令 ,例如:

$ type type cd help command
type is a shell builtin
cd is a shell builtin
help is a shell builtin
command is a shell builtin

我想获得所有可用的 shell 内置命令的列表。我如何通过命令行做到这一点?

command-line
  • 7 7 个回答
  • 18457 Views

7 个回答

  • Voted
  1. Best Answer
    steeldriver
    2014-08-19T06:36:58+08:002014-08-19T06:36:58+08:00

    您可以使用compgen -bbash shell 获取 shell 内置命令的列表。

    • 25
  2. karel
    2014-08-19T05:15:12+08:002014-08-19T05:15:12+08:00

    从终端类型:

    help
    

    来自help help:

    Display information about builtin commands.
    
    • 21
  3. Pandya
    2014-08-20T04:20:39+08:002014-08-20T04:20:39+08:00

    或者,您可以使用enable命令显示:(@karel 和@steeldriver 的回答都很好。)

    enable -a | cut -d " " -f 2,3
    

    如果任何内置函数被禁用,那么它会-n在输出中显示。

    示例输出:

    $ enable -a | cut -d " " -f 2,3
    .
    :
    [
    alias
    bg
    bind
    break
    builtin
    caller
    cd
    command
    compgen
    complete
    compopt
    continue
    declare
    dirs
    disown
    echo
    enable
    eval
    exec
    exit
    export
    false
    fc
    fg
    getopts
    hash
    help
    history
    jobs
    kill
    let
    local
    logout
    mapfile
    popd
    printf
    pushd
    pwd
    read
    readarray
    readonly
    return
    set
    shift
    shopt
    source
    suspend
    test
    times
    trap
    true
    type
    typeset
    ulimit
    umask
    unalias
    unset
    wait
    
    • 13
  4. wisbucky
    2019-09-05T14:02:01+08:002019-09-05T14:02:01+08:00

    另一种方式:man builtins

    它在顶部显示内置列表,然后在下面显示每个命令的所有详细信息。

    SYNOPSIS
           bash defines the following built-in commands: :, ., [, alias, bg, bind,
           break,  builtin,  case,  cd,  command,  compgen,  complete,   continue,
           declare,  dirs, disown, echo, enable, eval, exec, exit, export, fc, fg,
           getopts, hash, help, history, if, jobs, kill, let, local, logout, popd,
           printf,  pushd, pwd, read, readonly, return, set, shift, shopt, source,
           suspend, test, times, trap,  type,  typeset,  ulimit,  umask,  unalias,
           unset, until, wait, while.
    
    • 3
  5. Nicola Worthington
    2016-09-21T14:09:35+08:002016-09-21T14:09:35+08:00

    对于那些讨厌仅仅为了数据格式化/提取而分叉外部二进制文件的人:

    while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
    
    • 2
  6. Ujjwal Gupta
    2018-01-31T12:37:29+08:002018-01-31T12:37:29+08:00

    只需在终端中输入:

    man bash
    

    这将打开 bash 的手册。向下滚动你会发现SHELL BUILTIN COMMANDS。在这里您可以了解所有内置命令及其作用。如果您想要 txt 格式的手册,请使用此命令

    man bash > FILENAME.txt
    

    现在你有了 bash 手册的文本文件。

    • 1
  7. HaxtraZ
    2020-08-17T18:57:51+08:002020-08-17T18:57:51+08:00

    好吧,bash 是 ubuntu 的默认 shell,现有答案回答得很好。

    对于 zshell,我们可以使用enable命令来列出所有内置函数:

    enable
    

    我的 zshell 有 103 个内置命令:

    enable | wc -l
    

    当然,我们也可以使用enable查询所有的 bash builtins:

    enable | awk '{print $2}'
    
    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve