Shell 在 Linux 下有多种用途。Linux 用户环境由以下组件组成:
- 内核- Linux操作系统的核心。
- Shell——提供用户和内核之间的接口。
- 终端仿真器 - xterm 程序是 X Window 系统的终端仿真器。它允许用户输入命令并在屏幕上显示结果。
- Linux 桌面和Windows 管理器- Linux 桌面是各种软件应用程序的集合。它包括文件管理器、窗口管理器、终端模拟器等等。KDE和Gnome是 Linux 中完整桌面环境的两个示例。
登录
用户可以在运行级别# 3 中本地登录到控制台,或者在运行级别# 5 中以图形方式登录到控制台(级别编号可能因发行版而异)。在这两种情况下,您都需要提供用户名和密码。Bash 使用以下初始化和启动文件:
- /etc/profile - 系统范围的初始化文件,为登录 shell 执行。
- /etc/bash.bashrc - 系统范围内的每个交互式 shell 启动文件。这是一个非标准文件,您的发行版上可能不存在。即使它存在,也不会被获取,除非它在另一个启动文件中显式完成。
- /etc/bash.logout - 系统范围的登录 shell 清理文件,在登录 shell 退出时执行。
- $HOME/ .bash_profile - 个人初始化文件,为登录 shell 执行。
- $HOME/ .bashrc - 每个交互式 shell 的单独启动文件。
- $HOME/ .bash_logout - 单独的登录 shell 清理文件,在登录 shell 退出时执行。
- $HOME/ .inputrc - 单独的readline初始化文件。
Bash 启动脚本
登录时执行的命令脚本以设置环境。例如,设置JAVA_HOME路径。
登录外壳
登录 shell 是您登录系统时启动的第一个 shell。登录 shell 设置导出到非登录 shell 的环境。当用户登录时,登录 shell 调用以下命令:
- 当用户登录运行级别# 3 时, /etc/profile首先运行(级别编号可能因发行版而异)。
- $HOME/ .bash_profile、 $HOME/ .bash_login和 $HOME/ .profile在用户按该顺序登录时第二个运行。$HOME/ .bash_profile调用 $HOME/ .bashrc,后者调用/etc/bashrc ( /etc/bash.bashrc )。
非登录外壳
- 当启动非登录 shell 的交互式 shell时,bash 会从/etc/bash.bashrc或/etc/bashrc和 $HOME/ .bashrc读取并执行命令(如果这些文件存在)。首先,它调用 $HOME/ .bashrc。这调用/etc/bash.bashrc,后者调用/etc/profile.d。
Bash 注销脚本
- 当登录shell 退出时,bash 会从文件 $HOME/ .bash_logout(如果存在)读取并执行命令。