linux中bash的内置命令
linux中bash的内置命令详细介绍
在 Linux 的 Bash 中,** 内置命令(Built-in Commands)** 是由 Bash 解释器直接实现的命令,无需调用外部可执行文件,执行效率更高,且功能与 Bash 紧密集成。以下是常用的 Bash 内置命令分类及示例:
一、基础操作命令
| 命令 | 功能描述 |
|---|---|
cd |
切换工作目录(如:cd ~ 切换到用户主目录) |
echo |
输出文本或变量值(如:echo "Hello World") |
pwd |
显示当前工作目录的绝对路径 |
exit |
退出当前 shell 会话 |
help |
查看内置命令的帮助文档(如:help cd) |
type |
查看命令类型(区分内置命令或外部程序,如:type cd 显示 builtin) |
二、文件与目录操作
| 命令 | 功能描述 |
|---|---|
mkdir |
创建目录(内置版本功能较简单,实际常用外部命令 mkdir) |
rmdir |
删除空目录(等价于 rm -d,但仅限空目录) |
pushd/popd |
管理目录栈(pushd 压入目录,popd 弹出目录,配合 dirs 查看栈) |
cd |
切换目录(支持目录栈操作,如 cd - 切换回上一个目录) |
三、变量与环境管理
| 命令 | 功能描述 |
|---|---|
set |
显示或设置 shell 变量及选项(如:set -x 开启调试模式) |
unset |
删除变量或 shell 函数(如:unset MYVAR) |
export |
导出环境变量(供子进程使用,如:export PATH=$PATH:/new/dir) |
readonly |
设置只读变量(不可修改或删除,如:readonly HOSTNAME=localhost) |
env |
显示所有环境变量(也可用于执行命令时临时设置环境变量) |
declare |
声明变量(支持类型限定,如整数、数组等,如:declare -i num=10) |
四、流程控制与脚本编程
以下命令主要用于 Shell 脚本,属于 Bash 内置的逻辑控制关键字:
| 命令 | 功能描述 |
|---|---|
if/else/fi |
条件判断语句(如:if [ $a -gt $b ]; then ... fi) |
for |
循环语句(如:for var in list; do ... done) |
while/until |
循环语句(while 条件为真时执行,until 条件为假时执行) |
case |
模式匹配分支语句(类似其他语言的 switch) |
break/continue |
控制循环流程(break 跳出循环,continue 跳过当前循环迭代) |
shift |
移动脚本参数列表(用于处理可变参数,如 shift 2 移除前两个参数) |
五、作业与进程控制
| 命令 | 功能描述 |
|---|---|
jobs |
列出当前 shell 管理的后台作业 |
bg |
将暂停的作业放到后台运行(如:bg %1 恢复第一个后台作业) |
fg |
将后台作业切换到前台运行(如:fg %1) |
kill |
向进程发送信号(如:kill -9 1234 强制终止进程) |
wait |
等待所有后台作业完成 |
六、权限与选项控制
| 命令 | 功能描述 |
|---|---|
umask |
设置文件 / 目录的默认权限掩码(如:umask 022 表示默认权限 644/755) |
shopt |
设置 Bash 选项(如:shopt -s nullglob 使通配符匹配空文件时忽略) |
七、其他实用命令
| 命令 | 功能描述 |
|---|---|
let/(( )) |
执行算术运算(如:let "a=5+3" 或 (( a=5+3 ))) |
read |
从标准输入读取数据到变量(如:read -p "Enter name: " name) |
true/false |
空操作命令(true 始终返回成功,false 始终返回失败,用于脚本测试) |
eval |
计算并执行字符串中的命令(如:eval "$(command)" 执行动态生成的命令) |
如何查看所有内置命令?
- 使用
help命令列出所有内置命令:bash - 使用
enable命令显示内置命令列表(带-b选项仅显示 shell 内置命令):bash
内置命令 vs 外部命令
- 内置命令:由 Bash 直接实现,无需加载外部程序,通过
type 命令可查看是否为builtin。 - 外部命令:如
ls、cp、rm等,属于独立的可执行文件(通常位于/bin、/usr/bin等目录)。
通过 type 命令区分:
bash
9123type type
掌握这些内置命令可以更高效地编写 Shell 脚本或进行交互式操作,尤其在资源受限环境(如无外部程序时)更为重要。如需具体命令的用法,直接使用 help 命令 即可查看详细文档(如 help export)。