部分 Bash 内置命令的详解

发布于:2025-03-25 ⋅ 阅读:(35) ⋅ 点赞:(0)

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. declaretypeset

  • 功能:声明变量并设置属性。
  • 语法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 -chistory -d offsethistory -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. mapfilereadarray

  • 功能:从标准输入读取行到数组。
  • 语法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 完成
    

网站公告

今日签到

点亮在社区的每一天
去签到