### Linux Bash 知识点详解 #### 一、Bash简介 **Bash**(Bourne-Again SHell)是Linux系统中最常用的命令行解释器之一,它兼容早期的 **sh**(Bourne Shell),同时融合了 **ksh**(Korn Shell)和 **csh**(C Shell)的一些特性,旨在符合 **IEEE POSIX** 规范中的Shell与实用程序部分。 Bash由自由软件基金会(FSF)发布,并自1989年起持续更新,最新版本为2009年发布。通过配置,Bash可以默认实现POSIX规范的要求。 #### 二、Bash的功能 - **执行命令**:Bash可以从标准输入或文件中读取并执行命令。 - **兼容性**:兼容早期的 **sh** 命令语言,并融合了 **ksh** 和 **csh** 的一些有用特性。 - **可配置性**:可以通过设置选项来调整Bash的行为,例如使其默认符合POSIX规范。 #### 三、Bash命令行选项 除了可以在 `set` 命令中设置的单字符选项外,Bash还支持以下命令行选项: - **-c _string_**:如果提供了 `-c` 选项,则从 _string_ 中读取命令。如果有参数跟在字符串后面,这些参数将被赋值给位置参数变量,从 `$0` 开始。 - **-i**:如果 `-i` 选项存在,则 shell 处于交互模式。 - **-l**:使 Bash 行为如同被作为登录 shell 调用一样(见下文关于登录 shell 的说明)。 - **-r**:如果 `-r` 选项存在,shell 将变为受限模式(见下文关于受限 shell 的说明)。 - **-s**:如果 `-s` 选项存在,或者选项处理后没有剩余参数,则从标准输入读取命令。此选项允许在调用交互式 shell 时设置位置参数。 - **-D**:列出所有双引号包围的字符串,这些字符串在当前语言环境不是 `C` 或 `POSIX` 时可能会被翻译。这隐含了 `-n` 选项,不会执行任何命令。 此外,还有一些特殊选项,如 `[--]`,用于指示选项列表的结束;`[--+[]]`,用于设置 shell 选项。 #### 四、交互式 Shell 与登录 Shell - **交互式 Shell**:当 shell 启动时从终端读取命令,并且 shell 未作为其他程序的一部分被调用时,该 shell 被认为是交互式的。交互式 shell 会提示用户输入命令,并执行相应的操作。 - **登录 Shell**:当一个用户登录到系统时启动的第一个 shell 称为登录 shell。登录 shell 通常会读取用户的初始化文件(如 `.bash_profile` 或 `.bash_login`),执行其中的命令来设置环境。 #### 五、受限 Shell (Restricted Shell) 受限 shell 是一种特殊的 shell 模式,其限制了一些功能,以提高安全性。在受限 shell 下,用户无法更改目录,不能执行某些可能对系统安全造成威胁的操作。这种模式通常用于提供有限权限的脚本执行环境。 #### 六、Shell内置命令 Bash 提供了一系列内置命令,如 `cd`、`echo`、`export` 等,它们不需要调用外部程序就能直接执行,从而提高了效率。内置命令还包括 `set` 命令,用于控制 shell 的行为,以及 `shopt` 命令,用于设置和查询 shell 选项。 #### 七、Bash 的国际化支持 Bash 支持国际化设置,可以通过环境变量 `LANG`、`LC_ALL` 等来指定语言环境。当使用 `-D` 选项时,Bash 会列出所有可能受当前语言环境影响的字符串。这对于开发国际化应用程序非常有用。 #### 八、Bash 的配置与定制 Bash 的行为可以通过一系列初始化文件来配置,这些文件包括: - **~/.bashrc**:交互式 shell 在每次启动时都会读取的文件。 - **~/.bash_profile**:登录 shell 在每次启动时都会读取的文件。 - **/etc/bash.bashrc**:全局配置文件,影响所有用户的交互式 shell。 - **/etc/profile**:全局配置文件,影响所有用户的登录 shell。 通过这些文件,用户可以定制 shell 的行为,例如设置环境变量、定义函数、改变提示符等。 #### 总结 Bash 是一个功能强大且高度可配置的 shell,广泛应用于 Linux 系统管理及自动化任务中。通过理解其基本概念和使用方法,用户能够更加高效地利用 Linux 系统进行工作。
- 粉丝: 3
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助