关于shell启动时调用的几个配置文件/etc/profile .profile .bash_profile .bashrc等

本文详细介绍了Linux系统中终端配置的工作原理。重点讲述了登录时系统如何加载配置文件,如/etc/profile及用户家目录下的.bash_profile等,并解释了这些文件之间的调用关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux下以.开头的文件为隐藏文件,今天和同事探讨了下.profile,查了下资料,记录一下。


原帖:http://www.linuxdiyf.com/bbs/thread-312980-1-1.html

 

     当用户输入帐号密码登录一个用户终端的时候,那么,首先,系统会读取文件/etc/profile,加载其中的配置,/etc/profile这个文件又会调用几个文件,包括/etc/sysconfig/i18n这个文件用来设置终端的语言信息,/etc/inputrc这个文件主要设置终端的输入方式,比如Ctrl+C之类的情况,还有一个比较重要的就是/etc/profile.d/目录下的脚本文件,那么如果真的需要修改一些全局的bash环境的话,最好是将环境写成一个shell脚本,放在/etc/profile.d/目录中,那么登录的时候,/etc/profile会自动去调用。


      那么,上面说到的是用户登录的时候 ,执行的全局文件,那么在自己的家目录下,还会执行个人的shell配置文件,主要有.bash_profile,.bash_login,.profile这三个文件,一般情况下,你的家目录下应该只有.bash_profile这个文件,因为系统只执行这三个文件中的一个,如果没有找到.bash_profile,才会继续搜索.bash_login,没有的话,搜索.profile。


      用vim编辑器打开.bash_profile,可以看到,这个文件又会调用~/.bashrc这个文件,可以看到一些alias设置,所以,如果你需要设置你自己个人的一些alias和一些环境变量的时候,强烈建议写在这个文件中或者~/.bash_profile中。但是还是写在~/.bashrc中比较好,为什么呢?因为有一种情况,比如你在X window下,直接开启一个命令行终端的话,是不用输入帐号密码登录的,都有印象吧,那么在这个情况下,实际上是不会去读取/etc/profile,~/.bash_profile这些文件的,而是直接读取./bashrc这个文件,所以,如果你想你的环境设置在任何时候都有效的话,建议写入这个文件。


     最后再提一点,那么看~/.bashrc这个文件中的内容,可以看到,这个文件其实还会调用/etc/bashrc文件的内容,用vim打开/etc/bashrc这个文件看看,会发现在这个文件的最后又会调用/etc/profile.d/里面的sh文件,呵呵,很有趣吧~~~其实Linux中很多都是这样,最后都是殊途同归,到一个文件中。


      下面这篇文章给出了终端配置的修改方法

http://blog.youkuaiyun.com/louiswang2009/article/details/5886575

Linux系统中,正确配置环境变量和shell行为对于系统管理至关重要。以下是针对/etc/profile、/etc/bashrc、~/.bash_profile和~/.bashrc文件配置的详细指南: 参考资源链接:[Linux环境配置详解:/etc/profile、/etc/bashrc、~/.bash_profile与~/.bashrc](https://wenku.csdn.net/doc/64978c664ce2147568bcde12?spm=1055.2569.3001.10343) 1. **/etc/profile**: - 此文件是系统级的全局登录脚本,用于设置所有用户共享的环境变量和配置。 - 通常,你可以在此文件中添加全局路径、别名或其他环境变量,这些设置将在每个用户的登录会话中生效。 - 例如,添加新的二进制文件目录到PATH变量中: ```bash export PATH=/new/bin/path:$PATH ``` 2. **/etc/bashrc** 或 **/etc/bash.bashrc**: - 这个文件在启动每一个非登录的bash shell时都会被读取,用于设置全局的bash特定配置。 - 可以在此文件中定义别名、函数等,这些将在所有用户的bash shell中可用。 - 例如,定义一个全局别名用于快速访问常用命令: ```bash alias ll='ls -l' ``` 3. **~/.bash_profile**: - 此文件是用户的个人登录脚本,用于在用户登录时配置个人环境。 - 你可以在其中调用 ~/.bashrc,以及设置只影响当前用户的环境变量。 - 例如,将个人脚本路径加入到PATH中: ```bash export PATH=$HOME/bin:$PATH source ~/.bashrc ``` 4. **~/.bashrc**: - 这个文件是用户的个人shell脚本,用于在启动bash shell时设置环境。 - 在这里可以设置个人喜欢的别名、自定义函数和变量。 - 例如,创建一个别名来快速执行复杂的命令组合: ```bash alias getinfo='ps -ef | grep' ``` 配置这些文件时,需要注意它们的读取顺序和适用范围。/etc/profile 和 /etc/bashrc 影响所有用户,而 ~/.bash_profile 和 ~/.bashrc 仅影响单个用户。在配置时,要确保不会重复设置相同的环境变量,以免引起冲突。 配置完成后,你可以通过运行 `source /etc/profile`、`source ~/.bash_profile` 或 `source ~/.bashrc` 来立即应用更改,或者重新登录或打开新的终端会话来使更改生效。通过这种方式,你可以为Linux系统提供一个高度定制和优化的工作环境。 参考资源链接:[Linux环境配置详解:/etc/profile、/etc/bashrc、~/.bash_profile与~/.bashrc](https://wenku.csdn.net/doc/64978c664ce2147568bcde12?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值