| 命令 | 描述 |
|---|---|
| & | 在后台启动作业 |
| ((x)) | 执行数学表达式 x |
| . | 在当前 shell 中读取并执行指定文件中的命令 |
| : | 什么都不做,始终成功退出 |
| [ t ] | 对条件表达式 t 进行求值 |
| [[ e ]] | 对条件表达式 e 进行求值 |
| alias | 为指定命令定义别名 |
| bg | 将当前作业置于后台运行 |
| bind | 将组合键绑定到 readline 函数或宏 |
| Break | 退出 for、while、select 或 until 循环 |
| builtin | 执行指定的 shell 内建命令 |
| caller | 返回活动子函数调用的上下文 |
| case | 根据模式有选择地执行命令 |
| cd | 将当前目录切换为指定的目录 |
| command | 执行指定的命令,不进行正常的 shell 查找(也就是说,绕过同名的别名或函数) |
| compgen | 为指定单词生成可能的补全匹配 |
| complete | 显示指定的单词是如何补全的 |
| compopt | 修改指定单词的补全选项 |
| continue | 继续执行 for、while、select 或 until 循环的下一次迭代 |
| coproc | 在后台生成子 shell 并执行指定的命令 |
| declare | 声明变量或变量类型 |
| dirs | 显示当前已保存的目录列表 |
| disown | 从进程作业表中删除指定的作业 |
| echo | 将指定字符串输出到 STDOUT |
| enable | 启用或禁用指定的内建 shell 命令 |
| eval | 将指定的参数拼接成一个命令, 然后执行该命令 |
| exec | 用指定命令替换 shell 进程 |
| exit | 强制 shell 以指定的退出状态码退出 |
| export | 设置可用于子 shell 进程的变量 |
| false | 将结果设置为 false 状态 |
| fc | 从历史记录列表(history list)中选择一组命令 |
| fg | 将作业恢复至前台 |
| for | 对列表中的每一项执行指定的命令 |
| function | 定义一个 shell 脚本函数 |
| getopts | 解析指定的位置参数 |
| hash | 查找并记住指定命令的完整路径名 |
| help | 显示 bash 内建命令的帮助页面 |
| history | 显示命令历史记录 |
| if | 根据条件表达式执行命令 |
| jobs | 列出活动作业 |
| kill | 向指定的进程 ID(PID )发送系统信号 |
| let | 计算数学表达式 |
| local | 在函数中创建局部变量 |
| logout | 退出已登录的 shell |
| mapfile | 从 STDIN 中读取输入并将其放入索引数组(每个数组元素包含一行) popd |
| printf | 使用格式化字符串显示文本 |
| pushd | 向目录栈压入一个目录 |
| pwd | 显示当前工作目录的完整路径名 |
| read | 从 STDIN 读取一行数据并将其中的每个单词赋给指定变量 |
| readarray | 从 STDIN 读取数据行并将其放入索引数组(一个数组元素对应一行) |
| readonly | 从 STDIN 读取一行数据并将其赋给一个不可修改的变量 |
| return | 使函数以某个值退出,该值可由调用脚本(calling script)提取 |
| select | 显示带编号的单词列表, 允许用户进行选择 |
| set | 设置并显示环境变量的值和 shell 属性 |
| shift | 将位置参数依次向前移动一个位置 |
| shopt | 打开/关闭 shell 选项 |
| source | 在当前 shell 中读取并执行指定文件中的命令 |
| suspend | 暂停 shell,直至收到 SIGCONT 信号 |
| test | 根据指定条件返回退出状态码 0 或 1 |
| time | 显示执行指定命令所累计的真实时间(real time)、用户时间和系统时间 |
| times | 显示累计的用户时间和系统时间 |
| trap | 如果接收到特定的系统信号,就执行指定命令 |
| true | 返回为 0 的退出状态码 |
| type | 显示指定的单词作为命令名时, 如何被 shell 解释(也就是显示指定名称是外部命令、内建命令、别名、 shell 关键字或shell 函数) |
| typeset | 声明变量或变量类型 |
| ulimit | 为系统用户设置指定的资源上限 |
| umask | 为新建的文件和目录设置默认权限 |
| unalias | 删除指定的别名 |
| unset | 删除指定的环境变量或 shell 属性 |
| until | 执行指定的命令,直到条件语句返回 true |
| wait | 等待指定的进程结束,返回退出状态码 |
| while | 当条件语句返回 true 时,执行指定的命令 |
| { c; } | 在当前 shell 中指定一组命令 |
bash shell 外部命令
| 命令 | 描述 |
|---|---|
| at | 在未来的特定时间执行指定的脚本或命令 |
| atq | 显示 at 命令队列中的作业 |
| atrm | 从 at 命令队列中删除指定的作业 |
| bash | 执行来自标准输入或指定文件中的命令, 或是启动一个子 shell |
| bc | 使用 bc 的专用语言执行算术运算 |
| bzip2 | 采用 Burrows-Wheeler 块排序文本压缩算法和霍夫曼编码进行压缩 |
| cat | 列出指定文件的内容 |
| chage | 修改指定系统用户账户的密码过期日期 |
| chfn | 修改指定用户账户的备注信息 |
| chgrp | 修改指定文件或目录的属组 |
| chmod | 修改指定文件或目录的权限 |
| chown | 修改指定文件或目录的属主 |
| chpasswd | 读取包含用户名/密码的文件并更新相应用户的密码 |
| chsh | 修改指定用户账户的默认 shell |
| clear | 清空终端仿真器或虚拟控制台终端中的文字 |
| compress | 最初的 Unix 文件压缩工具 |
| cp | 将指定文件复制到另一个位置 |
| crontab | 启动用户的 cron 表文件对应的编辑器(如果允许的话) |
| cut | 打印文件中指定的部分 |
| date | 以各种格式显示日期 |
| df | 显示所有已挂载设备的当前磁盘使用情况 |
| dialog | 在文本终端环境中创建窗口对话框 |
| du | 显示指定目录的磁盘使用情况 |
| emacs | 调用 Emacs 文本编辑器 |
| env | 在修改过的环境中执行指定命令或显示所有的环境变量 |
| exit | 终止当前进程 |
| expr | 执行指定的算术表达式 |
| fdisk | 维护或创建指定磁盘的分区表 |
| file | 查看指定文件的文件类型 |
| find | 查找文件 |
| free | 查看系统可用的和已用的内存 |
| fsck | 检查并根据需要修复指定的文件系统 |
| gawk | 调用 gawk 编辑器 |
| Grep | 在文件中查找指定模式的字符串 |
| gedit | 调用 GNOME 桌面编辑器 |
| getopt | 解析命令选项(包括长格式选项) |
| gdialog | 创建 GNOME Shell 窗口对话框 |
| groups | 显示指定用户的组成员关系 |
| groupadd | 创建新的用户组 |
| groupmod | 修改已有的用户组 |
| gunzip | 出自 GNU 项目的文件解压缩工具,采用 Lempel-Ziv 压缩算法 |
| gzcat | 出自 GNU 项目的压缩文件内容显示工具, 采用 Lempel-Ziv 压缩算法 |
| gzip | 出自 GNU 项目的文件压缩工具, 采用 Lempel-Ziv 压缩算法 |
| head | 显示指定文件的开头部分 |
| kdialog | 创建 KDE 窗口对话框 |
| killall | 根据进程名向运行中的进程发送系统信号 |
| kwrite | 调用 KWrite 文本编辑器 |
| less | 查看文件内容的高级命令 |
| link | 使用别名创建文件链接 |
| ln | 创建指定文件的符号链接或硬链接 |
| ls | 列出目录内容或文件信息 |
| lvcreate | 创建 LVM 卷 |
| lvdisplay | 显示 LVM 卷 |
| lvextend | 增加 LVM 卷的大小 |
| lvreduce | 减少 LVM 卷的大小 |
| mandb | 创建能够使用手册页关键字进行搜索的数据库 |
| man | 显示指定命令或话题的手册页 |
| mkdir | 创建指定目录 |
| mkfs | 使用指定文件系统格式化分区 |
| mktemp | 创建临时文件或目录 |
| more | 显示指定文件的内容,每显示一屏数据后就暂停 |
| mount | 显示或挂载磁盘设备到虚拟文件系统中 |
| mv | 重命名文件或目录 |
| nano | 调用 nano 文本编辑器 |
| nice | 在系统中用指定的优先级运行命令 |
| nohup | 执行指定的命令,同时忽略 SIGHUP 信号 |
| passwd | 修改用户的账户密码 |
| printenv | 显示指定环境变量或所有的环境变量的值 |
| ps | 显示系统中运行进程的信息 |
| pvcreate | 创建物理 LVM 卷 |
| pvdisplay | 显示物理 LVM 卷 |
| Pwd | 显示当前工作目录 |
| renice | 修改系统中运行进程的优先级 |
| rm | 删除指定文件或目录 |
| rmdir | 删除指定的空目录 |
| sed | 调用流编辑器 sed |
| setterm | 修改终端设置 |
| sleep | 在指定的一段时间内暂停 bash shell 操作 |
| sort | 根据指定的顺序对文件内容进行排序 |
| stat | 显示指定文件的相关信息 |
| sudo | 以 root 用户账户身份运行应用程序 |
| tail | 显示指定文件的末尾部分 |
| tar | 将数据和目录归档到单个文件中 |
| tee | 将信息发送到 STDOUT 和 STDIN |
| top | 显示活动进程以及重要的系统统计数据 |
| touch | 新建一个空文件或更新已有文件的时间戳 |
| umount | 从虚拟文件系统中卸载磁盘设备 |
| uptime | 显示系统已经运行了多久 |
| useradd | 新建用户账户 |
| userdel | 删除用户账户 |
| usermod | 修改用户账户 |
| vgchange | 激活或停用 LVM 卷组 |
| vgcreate | 创建 LVM 卷组 |
| vgdisplay | 显示 LVM 卷组 |
| vgextend | 增加 LVM 卷组大小 |
| vgreduce | 减少 LVM 卷组大小 |
| vgremove | 删除 LVM 卷组 |
| vi | 调用 vi 文本编辑器 |
| vim | 调用 vim 文本编辑器 |
| vmstat | 生成一份详尽的系统内存和 CPU 使用情况的报告 |
| wc | 显示文本文件统计情况 |
| whereis | 显示指定命令的相关文件,包括二进制文件、源代码文件以及手册页 |
| which | 查找可执行文件的位置 |
| who | 显示当前系统中的登录用户 |
| whoami | 显示当前用户的用户名 |
| xargs | 从 STDIN 中获取数据项, 构建并执行命令 |
| xterm | 调用 xterm 终端仿真器 |
| zenity | 创建 GNOME Shell 窗口小部件 |
| zip | Windows PKZIP 程序的 Unix 版本 |
bash shell 环境变量
| 命令 | 描述 |
|---|---|
| * | 包含所有命令行参数(以单个文本值的形式) |
| @ | 包含所有命令行参数(以多个文本值的形式) |
| # | 命令行参数数目 |
| ? | 最近使用的前台进程的退出状态码 |
| - | 当前命令行选项标记 |
| $ | 当前 shell 的进程 ID(PID ) |
| ! | 最近执行的后台进程的 PID |
| 0 | 命令行中使用的命令名 |
| _ | shell 的绝对路径名 |
| BASH | 用来调用 shell 的完整路径名 |
| BASHOPTS | 已启用的 shell 选项(以冒号分隔形式显示) |
| BASHPID | 当前 bash shell 的 PID |
| BASH_ALIASES | 数组变量,包含当前所用的别名 |
| BASH_ARGC | 当前函数的参数数量 |
| BASH_ARGV | 数组变量,包含所有的命令行参数 |
| BASH_CMDS | 数组变量,包含命令的内部哈希表 |
| BASH_COMMAND | 当前正在运行的命令名 |
| BASH_ENV | 如果设置的话, 每个 bash 脚本都会尝试在运行前执行由该变量定义的启动文件 |
| BASH_EXECUTION_STRING | 在-c 命令行选项中指定的命令 |
| BASH_LINENO | 数组变量,包含脚本中每个命令的行号 |
| BASH_REMATCH | 数组变量,包含正则表达式所匹配的文本(索引为 0 的元素是整个正则表达式所匹配的部分。索引为 n 的元素是第 n 个带有圆括号的子正则表达式所匹配的部分) |
| BASH_SOURCE | 数组变量,包含 shell 中已定义函数所在源文件名 |
| BASH_SUBSHELL | 当前 shell 生成的子 shell 数目 |
| BASH_VERSINFO | 数组变量,包含当前 bash shell 实例的主版本号和次版本号 |
| BASH_VERSION | 当前 bash shell 实例的版本号 |
| BASH_XTRACEFD | 如果设置为有效的文件描述符整数,则所产生跟踪信息会与诊断和错误消息分开。文件 描述符必须事先执行 set -x |
| BROWSER | 首选 Web 浏览器的绝对路径名 |
| COLUMNS | 当前 bash shell 实例所用的终端宽度 |
| COMP_CWORD | 变量 COMP_WORDS 的索引值, COMP_WORDS 包含当前光标所在的位置 |
| COMP_KEY | 调用补全功能的按键 |
| COMP_LINE | 当前命令行 |
| COMP_POINT | 当前光标位置相对于当前命令起始处的索引 |
| COMP_TYPE | 补全类型对应的整数值 |
| COMP_WORDBREAKS | 在进行单词补全时作为单词分隔符的一组字符 |
| COMP_WORDS | 数组变量,包含当前命令行上的所有单词 |
| COMPREPLY | 数组变量,包含可能的补全结果 |
| COPROC | 数组变量,包含用于匿名协程 I/O 的文件描述符 |
| DBUS_SESSION_BUS_ADDRESS | 当前登录会话的 D-Bus 地址,用于提供连接映射 |
| DE | 当前登录 shell 的桌面环境 |
| DESKTOP_SESSION | 在 LXDE 环境中,包含当前登录 shell 的桌面环境 |
| DIRSTACK | 数组变量,包含目录栈当前内容 |
| DISPLAY | 图形应用程序映射,用于显示图形用户界面的位置 |
| EDITOR | 定义部分 shell 命令使用的默认编辑器 |
| EMACS | 如果设置的话, shell 会认为其使用的是 Emacs shell 缓冲区,同时禁止行编辑功能 |
| ENV | 当 shell 以 POSIX模式调用时,每个 bash 脚本在运行之前都会执行由该环境变量所定义的启动文件 |
| EUID | 当前用户的有效用户 ID (数字形式) |
| FCEDIT | fc 命令使用的默认编辑器 |
| FIGNORE | 以冒号分隔的后缀名列表,在文件名补全时会被忽略 |
| FUNCNAME | 当前执行的 shell 函数的名称 |
| FUNCNEST | 嵌套函数的最高级别 |
| GLOBIGNORE | 以冒号分隔的模式列表, 文件名扩展时会将其忽略 |
| GROUPS | 数组变量,包含当前用户属组 |
| histchars | 控制历史记录扩展,最多可有 3 个字符 |
| HISTCMD | 当前命令在历史记录中的编号 |
| HISTCONTROL | 控制哪些命令会被保存在历史记录列表中 |
| HISTFILE | 保存 shell 历史记录列表的文件名(默认是~/.bash_history) |
| HISTFILESIZE | 历史记录文件(history file)能保存的最大命令数量 |
| HISTIGNORE | 以冒号分隔的模式列表, 用来决定哪些命令不会被保存在历史文件中 |
| HISTSIZE | 能写入历史记录列表(history list)的最大命令数量 |
| HISTTIMEFORMAT | 如果设置的话, 该变量决定了历史文件条目时间戳所使用的格式字符串 |
| HOME | 当前登录会话的主目录名 |
| HOSTALIASES | 文件名, 某些 shell 命令要用到的各种主机名别名都保存在该文件中 |
| HOSTFILE | shell 在补全主机名时要读取的文件名 |
| HOSTNAME | 当前主机名 |
| HOSTTYPE | 当前运行 bash shell 的机器 |
| IFS | 在分割单词时作为分隔符使用的一系列字符 |
| IGNOREEOF | shell 在退出前必须收到的一系列 EOF 字符的数量。如果未设置,则默认是 1 |
| INFODIR | info 命令的搜索目录列表(以冒号分隔) |
| INPUTRC | readline 初始化的文件名(默认是~/.inputrc) |
| INVOCATION_ID | systemd 用于标识登录 shell 和其他单元的 128 位(128-bit)随机标识符 |
| JOURNAL_STREAM | 文件描述符的设备和 inode 编号(十进制格式) 列表(以冒号分隔)。仅当 STDOUT 或 STDERR 连接到日志系统时才设置 |
| LANG | shell 的语言环境种类(locale category) |
| LC_ALL | 定义语言环境种类,能够覆盖 LANG 变量 |
| LC_ADDRESS | 确定地址信息的显示方式 |
| LC_COLLATE | 设置字符串排序时采用的排序规则 |
| LC_CTYPE | 决定如何解释出现在文件名扩展和模式匹配中的字符 |
| LC_IDENTIFICATION | 包含语言环境的元数据信息 |
| LC_MEASUREMENT | 设置用于测量单位的语言环境 |
| LC_MESSAGES | 决定在解释前面带有$的双引号字符串时采用的语言环境设置 |
| LC_MONETARY | 定义货币数值的格式 |
| LC_NAME | 设置名称的格式 |
| LC_NUMERIC | 决定格式化数字时采用的语言环境设置 |
| LC_PAPER | 设置用于纸张标准和格式的语言环境 |
| LC_TELEPHONE | 设置电话号码的结构 |
| LD_LIBRARY_PATH | 以冒号分隔的目录列表, 其中的目录会先于标准库目录被搜索 |
| LC_TIME | 决定格式化日期和时间时采用的语言环境设置 |
| LINENO | 当前正在执行的脚本语句的行号 |
| LINES | 定义了终端上可见的行数 |
| LOGNAME | 当前登录会话的用户名 |
| LS_COLORS | 定义用于显示文件名的颜色 |
| MACHTYPE | 用“CPU–公司–系统”(CPU-company-system)格式定义的系统类型 |
| 如果设置的话,定义当前登录会话的邮件文件会被一些邮件程序间歇地搜索,以查找新邮件 | |
| MAILCHECK | shell 应该多久检查一次新邮件(以秒为单位,默认为 60 秒) |
| MAILPATH | 以冒号分隔的邮件文件名列表,一些邮件程序会间歇性地在其中搜索新邮件 |
| MANPATH | 以冒号分隔的手册页目录列表, 由 man 命令搜索 |
| MAPFILE | 数组变量,当未指定数组变量作为参数时,其中保存了 mapfile 所读入的文本 |
| OLDPWD | shell 先前使用的工作目录 |
| OPTARG | 包含选项所需的参数值, 由 getopts 命令设置 |
| OPTERR | 如果设置为 1 ,则 bash shell 会显示 getopts 命令产生的错误 |
| OPTIND | getopts 命令要处理的下一个参数的索引 |
| OSTYPE | 定义了 shell 所在的操作系统 |
| PAGER | 设置某些 shell 命令在查看文件时使用的分页实用工具 |
| PATH | 以冒号分隔的目录列表, shell 会在其中搜索外部命令 |
| PIPESTATUS | 数组变量,包含前台进程的退出状态 |
| POSIXLY_CORRECT | 如果设置的话, bash 会以 POSIX 模式启动 |
| PPID | bash shell 父进程的 PID |
| PROMPT_COMMAND | 如果设置的话, 在显示命令行主提示符之前执行该命令 |
| PROMPT_DIRTRIM | 用来定义使用提示符字符串\w 或\W 转义时显示的拖尾(trailing)目录名的数量(使用一组英文句点替换被删除的目录名) |
| PS0 | 如果设置的话, 该变量会指定在输入命令之后、执行命令之前,由交互式 shell 显示的内容 |
| PS1 | 主命令行提示符 |
| PS2 | 次命令行提示符 |
| PS3 | select 命令的提示符 |
| PS4 | 在命令行之前显示的提示符(如果使用了 bash 的-x 选项的话) |
| PWD | 当前工作目录 |
| RANDOM | 返回一个介于 0 ~ 32 767 的随机数(对该变量的赋值可作为随机数生成器的种子) |
| READLINE_LINE | 当使用 bind –x 命令时, 保存 Readline 缓冲区的内容 |
| READLINE_POINT | 当使用 bind –x 命令时, 指明了 Readline 缓冲区内容插入点的当前位置 |
| REPLY | read 命令的默认变量 |
| SECONDS | 自 shell 启动到现在的秒数(对其赋值会重置计数器) |
| SHELL | bash shell 的完整路径 |
| SHELLOPTS | 已启用的 bash shell 选项(以冒号分隔) |
| SHLVL | shell 的层级;每启动一个新的 bash shell,该值增加 1 |
| TERM | 登录会话当前使用的终端类型, 相关信息由该变量所指向的文件提供 |
| TERMCAP | 登录会话当前使用的终端类型, 相关信息由该变量提供 |
| TIMEFORMAT | 指定了 shell 的时间显示格式 |
| TMOUT | select 命令和 read 命令在无输入的情况下等待多久(以秒为单位。默认值为 0,表示一直等待) |
| TMPDIR | 目录名, 保存 bash shell 创建的临时文件 |
| TZ | 如果设置的话, 用于指定系统的时区 |
| TZDIR | 定义时区文件所在的目录 |
| UID | 当前用户的真实用户 ID (数字形式) |
| USER | 当前登录会话的用户名 |
| VISUAL | 如果设置的话, 用于定义某些 shell 命令默认使用的全屏编辑器 |