/etc/profile, /etc/profile.d, ~/.bash_profile和~/.bashrc文件

本文详细介绍了Linux系统中启动配置文件的作用及其区别,包括全局配置文件/etc/profile和用户级配置文件如~/.bash_profile与~/.bashrc等。阐述了这些文件如何设置环境变量及执行流程。
Linux系统中的/etc/profile, /etc/profile.d, ~/.bash_profile和~/.bashrc文件

当在linux系统中登录bash shell来作为登录shell启动,将查找4个不同的启动文件来处理其中的命令:

  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bash_login
  • $HOME/.profile

/etc/profile文件
/etc/profile文件时bash shell的主默认启动文件。当你登录Linx系统时bash将执行/etc/profile启动文件中的命令
其中在文件底部的export命令:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
将确保这些环境变量对登录shell生成的子进程都可用。
有时修改了/etc/profile文件后,输入ls命令会报错:

-bash: ls: command not found

这时在命令行中执行以下命令:

export PATH=/bin:/usr/bin:$PATH

就不会报错了。
$HOME启动文件
其余3个启动文件具备相同的功能—提供特定用户的启动文件用于定义特定于用户的环境变量。大多数Linux发行版都只有这3者之一:

  • $HOME/.bash_profile

  • $HOME/.bash_login

  • $HOME/.profile
    注意,这3个文件都是以点号开头,表示它们都是隐藏文件。
    /etc/profile是永久性的环境变量,设置的是全局变量,当一个用户登录linux系统或者Login shell启动时,首先要确保执行的启动脚本就是/etc/profile,在这个脚本中设置的一些重要的变量有:

  • PATH:预设可执行文件或命令的搜索路径

  • USER:用户登录时使用的用户名

  • LOGNAME:其值就是$USER

  • HOSTNAME:所使用的主机名

  • MAIL:存放的用户电子邮件的邮箱

  • HISTSIZE:历史记录的行数

  • INPUTRC:存放针对键盘热键的信息

/etc/profile.d目录中存放的是一些应用程序所需的启动脚本,其中包括了颜色、语言、less、vim以及which等命令的一些附加设置。

这些脚本文件之所以能够被自动执行,是因为在/etc/profile中使用一个for循环语句来调用这些脚本,这些脚本文件就是用来设置一些变量和运行一些初始化过程。

**~/.bash_profile:**每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件只执行一次,默认情况下,设置一些环境变量,执行用户的.bashrc文件。只对单个用户生效,设定的为局部变量。

**~/.bashrc:**该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。

### `.bashrc` `.bash_profile` 的区别与用途 `.bashrc` `.bash_profile` 是 Bash shell 中用于定制用户环境的两个关键配置文件,它们在功能使用场景上存在显著差异。 #### `.bashrc` `.bashrc` 文件主要用于交互式非登录 Shell 的配置。当用户打开一个新的终端窗口(例如在图形界面中启动终端模拟器)时,Bash 会加载 `.bashrc` 文件以设置当前 Shell 环境。此文件通常包含别名、函数定义、Shell 选项以及提示符设置等内容。 - **位置**:位于用户的主目录下,路径为 `~/.bashrc`。 - **用途**: - 定义常用命令的别名(如 `alias ll='ls -la'`)[^1]。 - 设置 Shell 提示符(如 `PS1='\u@\h:\w\$ '`)。 - 配置 Shell 选项(如 `shopt -s cdspell`)。 - 加载其他全局配置文件(如 `/etc/bashrc`)[^2]。 #### `.bash_profile` `.bash_profile` 文件则用于交互式登录 Shell 的配置。当用户通过控制台或 SSH 登录系统时,Bash 会执行该文件中的命令,用于初始化用户的登录环境。它通常用于设置环境变量(如 `PATH`、`EDITOR`)、启动守护进程或执行一次性脚本。 - **位置**:位于用户的主目录下,路径为 `~/.bash_profile`。 - **用途**: - 设置全局环境变量(如 `export PATH=$PATH:/usr/local/bin`)[^3]。 - 启动后台服务(如 `gnome-keyring-daemon`)。 - 执行特定于登录环境的初始化脚本。 - 加载 `.bashrc` 文件(确保交互式非登录 Shell 的配置也被应用)[^4]。 ### 常见配置模式 为了确保 `.bashrc` 中的配置在登录 Shell 非登录 Shell 中都能生效,通常会在 `.bash_profile` 中添加如下代码来调用 `.bashrc`: ```bash if [ -f ~/.bashrc ]; then . ~/.bashrc fi ``` 此外,`.bashrc` 文件中也可能会包含以下内容以加载全局配置: ```bash if [ -f /etc/bashrc ]; then . /etc/bashrc fi ``` ### 总结 | 文件 | 触发条件 | 主要用途 | |------------------|------------------------|----------------------------------| | `.bashrc` | 交互式非登录 Shell | 别名、Shell 函数、提示符等 | | `.bash_profile` | 交互式登录 Shell | 环境变量、登录脚本、调用 `.bashrc` |
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值