如果你平时花大量时间在命令行上,那么你可能会有想要自定义Shell环境的想法。今天,这篇文章将向您解释如何实现您的想法。实际上,您可以通过创建别名、将新目录添加到环境变量$PATH或更改shell提示符的外观来节省命令行时间。在寻找解决方案的过程中,你可能看过一些教程,比如将配置文件放在.bashrc或.bash_profile中,或者将配置放在另一个BashShell中可以读取和执行的文件中。下面给大家解释一下Bash启动文件与.bashrc和.bash_profile的区别:InteractiveLogin和Non-LoginShellBash在调用时,会从一组启动文件中读取并执行命令。至于读取哪些文件是确定的取决于shell是作为交互式登录还是作为非登录shell被调用。事实上,Shell可以是交互式的,也可以是非交互式的。简单来说,交互式shell就是对用户终端进行读写操作的shell,而非交互式shell就是与终端完全没有关系的shell。值得注意的是,交互式shell可以是登录shell,也可以是非登录shell。可以在多种情况下调用登录shell,一种是当用户通过ssh或本地远程登录到终端时,另一种是使用--login选项启动Bash时。就像在shell提示符下键入bash或打开新的Gnome终端选项卡时一样。从登录shell调用交互式非登录shell。Bash启动文件当Bash作为交互式登录shell被调用时,它会查找/etc/profile文件,如果存在,它会运行文件中列出的命令。Bash然后按以下顺序搜索~/.bash_profile、~/.bash_login和~/.profile文件,并在它找到的第一个文件中执行命令。当Bash作为交互式非登录shell被调用时,它会从~/.bashrc文件中读取并执行命令,该文件必须存在且可读。.bashrc和.bash_profiles之间的差异.bash_profile在Bash作为交互式登录shell调用时读取和执行,而.bashrc在交互式非登录shell启动时执行。一般使用.bash_profile来运行只运行一次的命令,比如运行自定义环境变量PATH的命令。每次启动新shell时应运行的命令,包括别名和函数、自定义提示、历史自定义等,应放在.bashrc文件中。通常,~/.bash_profile中包含的命令都是从.bashrc文件派生出来的,如下所示:这意味着每次登录终端时都会读取并执行以上两个文件。大多数Linux发行版使用~/.profile而不是~/.bash_profile。因为~/.profile文件可以被所有shell读取,而~/.bash_profile只能被Bashshell读取。如果你的系统上没有我上面提到的启动文件,你也可以自己创建它们。结束语最后,我们来总结一下今天所讲的要点。.bash_profile和.bashrc是包含调用Bash时运行的shell命令的文件。.bash_profile可以在交互式登录shell上读取和执行,而.bashrc可以在非登录shell上读取和执行。如果您对.bashrc文件还有疑问,或者有更好的修改shell提示的方法,欢迎留言告诉我!最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以加入我的行列,把这本电子书做得更加完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站
