1. :
(冒号)
- 功能:无操作命令,仅扩展参数并执行重定向,返回零退出状态。
- 语法:
: [arguments]
- 示例:
: # 无操作
2. .
(点) 或 source
- 功能:在当前 shell 环境中读取并执行指定文件中的命令,返回文件中最后一个命令的退出状态。
- 语法:
. filename [arguments]
或source filename [arguments]
- 示例:
. script.sh # 执行 script.sh 文件中的命令
3. alias
- 功能:定义或显示别名。
- 语法:
alias [-p] [name[=value] ...
- 示例:
alias ll='ls -l' # 定义别名 ll alias # 显示所有别名
4. bg
- 功能:将挂起的作业放到后台运行。
- 语法:
bg [jobspec ...]
- 示例:
bg %1 # 将作业 1 放到后台运行
5. bind
- 功能:显示或修改 readline 键绑定。
- 语法:
bind [-m keymap] [-lpsvPSV] [-q function] [-u function] [-r keyseq] [-f filename] [-x keyseq:shell-command] keyseq:function-name
- 示例:
bind -l # 列出所有 readline 函数
6. break
- 功能:退出循环。
- 语法:
break [n]
- 示例:
while true; do break; done # 退出循环
7. builtin
- 功能:执行指定的 shell 内置命令。
- 语法:
builtin shell-builtin [arguments]
- 示例:
builtin cd /tmp # 使用内置的 cd 命令
8. cd
- 功能:更改当前工作目录。
- 语法:
cd [-L|[-P [-e]] [dir]
- 示例:
cd /tmp # 切换到 /tmp 目录
9. command
- 功能:执行命令,忽略 shell 函数查找。
- 语法:
command [-pVv] command [arg ...]
- 示例:
command ls # 执行 ls 命令,忽略同名函数
10. compgen
- 功能:生成可能的补全匹配。
- 语法:
compgen [option] [word]
- 示例:
compgen -c # 列出所有命令
11. complete
- 功能:指定如何补全命令参数。
- 语法:
complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]
- 示例:
complete -W "start stop restart" mycommand # 为 mycommand 指定补全选项
12. compopt
- 功能:修改补全选项。
- 语法:
compopt [-o option] [-DE] [+o option] [name]
- 示例:
compopt -o filenames # 设置补全选项为文件名
13. continue
- 功能:继续下一次循环迭代。
- 语法:
continue [n]
- 示例:
for i in 1 2 3; do continue; done # 继续下一次循环
14. declare
或 typeset
- 功能:声明变量并设置属性。
- 语法:
declare [-aAfFgilrtux] [-p] [name[=value] ...
- 示例:
declare -i num=10 # 声明整数变量 num
15. dirs
- 功能:显示目录栈。
- 语法:
dirs [+n] [-n] [-clpv]
- 示例:
dirs # 显示目录栈
16. disown
- 功能:从作业表中移除作业。
- 语法:
disown [-ar] [-h] [jobspec ...]
- 示例:
disown %1 # 移除作业 1
17. echo
- 功能:输出参数。
- 语法:
echo [-neE] [arg ...]
- 示例:
echo "Hello, World!" # 输出 Hello, World!
18. enable
- 功能:启用或禁用 shell 内置命令。
- 语法:
enable [-a] [-dnps] [-f filename] [name ...]
- 示例:
enable -n test # 禁用内置的 test 命令
19. eval
- 功能:将参数作为命令执行。
- 语法:
eval [arg ...]
- 示例:
eval "ls -l" # 执行 ls -l 命令
20. exec
- 功能:用指定命令替换 shell。
- 语法:
exec [-cl] [-a name] [command [arguments]]
- 示例:
exec ls # 用 ls 命令替换当前 shell
21. exit
- 功能:退出 shell。
- 语法:
exit [n]
- 示例:
exit 0 # 退出 shell,返回状态 0
22. export
- 功能:标记变量或函数为导出到后续命令的环境。
- 语法:
export [-fn] [name[=word]] ...
- 示例:
export PATH=$PATH:/usr/local/bin # 导出 PATH 变量
23. fc
- 功能:修复命令(编辑并重新执行历史命令)。
- 语法:
fc [-e ename] [-lnr] [first] [last]
或fc -s [pat=rep] [cmd]
- 示例:
fc -l # 列出最近的历史命令
24. fg
- 功能:将后台作业放到前台运行。
- 语法:
fg [jobspec]
- 示例:
fg %1 # 将作业 1 放到前台运行
25. getopts
- 功能:解析位置参数。
- 语法:
getopts optstring name [args]
- 示例:
getopts ":a:" opt # 解析选项 -a
26. hash
- 功能:记住命令的完整路径。
- 语法:
hash [-lr] [-p filename] [-dt] [name]
- 示例:
hash -r # 清除所有记住的命令路径
27. help
- 功能:显示内置命令的帮助信息。
- 语法:
help [-dms] [pattern]
- 示例:
help cd # 显示 cd 命令的帮助信息
28. history
- 功能:显示或操作命令历史。
- 语法:
history [n]
或history -c
或history -d offset
或history -anrw [filename]
或history -p arg [arg ...]
或history -s arg [arg ...]
- 示例:
history # 显示命令历史
29. jobs
- 功能:列出活动作业。
- 语法:
jobs [-lnprs] [ jobspec ... ]
或jobs -x command [ args ... ]
- 示例:
jobs # 列出所有作业
30. kill
- 功能:向进程发送信号。
- 语法:
kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
或kill -l [sigspec | exit_status]
- 示例:
kill -9 1234 # 向进程 1234 发送 SIGKILL 信号
31. let
- 功能:执行算术表达式。
- 语法:
let arg [arg ...]
- 示例:
let "a = 5 + 5" # 计算 5 + 5
32. local
- 功能:在函数中定义局部变量。
- 语法:
local [option] [name[=value] ...
- 示例:
local var=10 # 定义局部变量 var
33. logout
- 功能:退出登录 shell。
- 语法:
logout
- 示例:
logout # 退出登录 shell
34. mapfile
或 readarray
- 功能:从标准输入读取行到数组。
- 语法:
mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
- 示例:
mapfile -t lines < file.txt # 将 file.txt 的内容读入数组 lines
35. popd
- 功能:从目录栈中移除目录。
- 语法:
popd [-n] [+n] [-n]
- 示例:
popd # 移除目录栈顶的目录
36. printf
- 功能:格式化输出。
- 语法:
printf [-v var] format [arguments]
- 示例:
printf "Hello, %s\n" "World" # 输出 Hello, World
37. pushd
- 功能:将目录添加到目录栈顶。
- 语法:
pushd [-n] [+n] [-n]
或pushd [-n] [dir]
- 示例:
pushd /tmp # 将 /tmp 目录添加到目录栈顶
38. pwd
- 功能:打印当前工作目录的绝对路径。
- 语法:
pwd [-LP]
- 示例:
pwd # 打印当前工作目录
39. read
- 功能:从标准输入读取一行。
- 语法:
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
- 示例:
read -p "Enter your name: " name # 提示用户输入名字
40. readonly
- 功能:标记变量或函数为只读。
- 语法:
readonly [-aAf] [-p] [name[=word] ...]
- 示例:
readonly var=10 # 将变量 var 标记为只读
41. return
- 功能:从函数中返回。
- 语法:
return [n]
- 示例:
return 0 # 从函数中返回,状态为 0
42. set
- 功能:设置或取消设置 shell 选项和位置参数。
- 语法:
set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...]
- 示例:
set -x # 启用命令跟踪
43. shift
- 功能:移动位置参数。
- 语法:
shift [n]
- 示例:
shift # 移动位置参数
44. shopt
- 功能:切换 shell 选项。
- 语法:
shopt [-pqsu] [-o] [optname ...]
- 示例:
shopt -s extglob # 启用扩展模式匹配
45. suspend
- 功能:挂起 shell 的执行。
- 语法:
suspend [-f]
- 示例:
suspend # 挂起 shell
46. test
或 [
- 功能:评估条件表达式。
- 语法:
test expr
或[ expr ]
- 示例:
[ -f file.txt ] # 检查 file.txt 是否存在
47. times
- 功能:打印 shell 和进程的累计用户和系统时间。
- 语法:
times
- 示例:
times # 打印时间信息
48. trap
- 功能:设置信号处理程序。
- 语法:
trap [-lp] [[arg] sigspec ...]
- 示例:
trap "echo 'Signal received'" SIGINT # 捕获 SIGINT 信号
49. type
- 功能:显示命令的类型。
- 语法:
type [-aftpP] name [name ...]
- 示例:
type ls # 显示 ls 命令的类型
50. ulimit
- 功能:控制 shell 和进程的资源限制。
- 语法:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
- 示例:
ulimit -n 1024 # 设置文件描述符限制为 1024
51. umask
- 功能:设置文件创建掩码。
- 语法:
umask [-p] [-S] [mode]
- 示例:
umask 022 # 设置文件创建掩码为 022
52. unalias
- 功能:移除别名。
- 语法:
unalias [-a] [name ...]
- 示例:
unalias ll # 移除别名 ll
53. unset
- 功能:移除变量或函数。
- 语法:
unset [-fv] [name ...]
- 示例:
unset var # 移除变量 var
54. wait
- 功能:等待指定进程并返回其终止状态。
- 语法:
wait [n ...]
- 示例:
wait %1 # 等待作业 1 完成