linux中/etc/profile、/etc/profile.d/、/etc/bashrc、~/.bashrc、~/.bash_profile、~/.bash_logout的作用与区别...

本文详细解析了Linux系统中环境变量的设置与不同配置文件的作用,包括/etc/profile、/etc/profile.d/、/etc/bashrc、~/.bashrc、~/.bash_profile和~/.bash_logout等,通过实验展示了它们的执行顺序与应用场景。

 作用:

  /etc/profile:登录时用来设置环境变量,执行文件中的命令,对所有用户生效。

  /etc/profile.d/:登录时和执行bash命令打开子shell时执行目录下所有已.sh结尾的脚本文件中的命令,对所有用户生效。(如果使用的是csh,则执行所有已.csh结尾的文件)

  /etc/bashrc:登录时和执行bash 命令打开子shell时都执行此文件,对所有用户生效。

  ~/.bashrc:类似于/etc/bashrc,不过只对当前用户生效。

  ~/.bash_profile:类似于/etc/profile,不过只对当前用户生效。

  ~/.bash_logout:用户退出主shell时执行该文件,只对当前用户生效。

 

实验:

  首先准备环境,在root用户下执行:

            echo 'echo "/etc/profile"'>>/etc/profile

            echo 'echo "/etc/profile.d/test.sh"'>>/etc/profile.d/test.sh

            echo 'echo "/etc/bashrc"'>>/etc/bashrc

            echo 'echo "~/.bashrc"'>>~/.bashrc

            echo 'echo "~/.bash_profile"'>>~/.bash_profile

            echo 'echo "~/.bash_logout"'>>~/.bash_logout

  退出系统后,重新登录进行测试,

    

  登录时这几个文件的执行顺序一目了然,然后打开子shell,

    

  可以看出打开子shell后执行的几个文件,然后退出子shell,

    

  不执行任何文件,然后切换用户,进行上面的测试,

    

  退回root用户,任何退出主shell,

    

  可以看见此时执行了~/.bash_logut文件。

总结:

  经常上面的实验,相信大家已经了解了这几个文件的作用与执行顺序。

    

转载于:https://www.cnblogs.com/Stong/p/6807123.html

### `.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、付费专栏及课程。

余额充值