深入理解Linux bash:入门与特性

需积分: 9 1 下载量 123 浏览量 更新于2024-09-19 收藏 46KB DOC 举报
本文档是一份关于Bash shell的基础笔记,主要针对GNU/Linux系统进行讲解。Bash是GNU/Linux平台的默认shell,它在系统中具有主导地位,支持多种特性,使其成为开发者和系统管理者的常用工具。 首先,Linux系统支持多种shell类型,这些信息在`/etc/shells`文件中列出,而用户默认的登录shell则记录在`/etc/passwd`文件中。通过直接输入特定shell程序名,如`$sh`,可以临时切换到其他shell,例如sh-3.00版本,但要返回到bash,可以通过`exit`命令或者按`Ctrl`+`d`组合键。 Bash的特色主要体现在以下几个方面: 1. 命令行参数:相较于基础的sh,Bash支持传递字符串参数,并且提供了更丰富的配置选项。 2. 启动配置文件:Bash在启动时会读取多个启动文件,允许用户在启动时设置默认行为,这部分内容后续将深入探讨。 3. 交互性:Bash作为交互式shell,允许用户实时输入和处理命令。 4. 条件表达式和算术运算:Bash提供了丰富的逻辑控制和数学计算功能。 5. 别名:用户可以定义简短的别名,方便日常操作。 6. 数组处理:Bash支持数组操作,用于组织和处理多元素数据。 7. 目录栈:管理工作目录的历史记录,方便导航。 8. 受限版bash(rbash):提供了一种受限模式,可能用于安全限制用户的Shell能力。 关于Bash命令的执行,Bash根据不同类型的命令采取不同的执行策略: 1. 可执行程序:Bash采用fork-exec模型,创建一个新的子bash进程来执行,父子进程间的环境隔离确保了安全性。 2. 内置命令:Bash直接执行内置命令,无需额外进程,效率较高。 3. Bash脚本:有两种执行方式: - 当通过`$./foo.sh`直接执行时,与执行可执行程序类似,逐行读取并执行。 - 当使用`$source ./foo.sh`时,执行过程类似于内嵌命令,不创建新的bash实例,这在脚本中更改环境变量时尤为重要,因为只有使用`source`命令,才会影响当前的bash环境。 这份笔记为初学者提供了关于Bash的基础知识,包括其在Linux系统中的角色、与其它shell的区别以及常见的命令执行模式。后续章节可能会详细讲解Bash的配置文件、条件语句和其他高级特性。