Linux 系统 ~/.bashrc ~/.profile ~/.bash_profile /etc/profile等这几个start_files 的介绍,和执行顺序

Posted by : on

Category : linux


在Ubuntu及其类似的Linux发行版中,~/.bashrc, ~/.profile, ~/.bash_profile, 和 /etc/profile 是用于配置用户环境和系统环境的重要文件。它们各自的作用、执行时机和顺序如下:

  1. /etc/profile:
    • 作用: 这是一个全局配置文件,用于设置整个系统中所有用户共用的环境变量和启动任务。
    • 执行时机: 当用户通过登录shell(非图形界面的登录)登录时执行一次。它对所有用户都有效,包括root用户。
  2. ~/.profile:
    • 作用: 用户级别的配置文件,用于设置特定用户环境变量和启动任务。它是每个用户主目录下的个人化设置文件。
    • 执行时机: 对于非登录的交互式shell(比如通过terminal直接登录),在bash shell启动时执行。如果存在~/.bash_profile~/.bash_login,则可能不会执行此文件,因为bash遵循特定的查找规则(见下文)。
  3. ~/.bashrc:
    • 作用: 主要用于配置用户交互式shell的环境变量和别名等。每次用户打开一个新的终端窗口或tab时都会执行。
    • 执行时机: 每次用户启动一个交互式bash shell时执行,无论是登录shell还是非登录shell。
  4. ~/.bash_profile:
    • 作用: 类似于~/.profile,但更专门针对bash shell。通常用于设置bash特有的环境变量和启动程序。
    • 执行时机: 当用户通过登录shell登录时,如果此文件存在,bash会优先执行它而不是~/.profile。这意味着你可以在这里放置需要在登录时执行但又希望仅限于bash的命令。

执行顺序:

  • 对于登录shell:
    1. /etc/profile
    2. 如果存在,则按以下顺序查找并执行第一个存在的文件:~/.bash_profile, ~/.bash_login, ~/.profile。一旦其中一个被执行,其余的将被忽略。
  • 对于非登录的交互式shell(如通过terminal启动的新窗口):
    1. /etc/bash.bashrc (全局bash配置)
    2. ~/.bashrc (用户特定的bash配置)

注意,/etc/bash.bashrc是系统级的bash初始化脚本,它会在每个bash shell启动时读取,但通常会在~/.bashrc之前执行,且不是通过上述start_files直接提及,但它在理解bash环境配置时同样重要。

每个用户可以根据自己的需求定制这些文件来优化个人工作环境。


About MJ XIE
MJ XIE

Mobile Network Marketing Explorer In The Plush Industry, Living in Hangzhou, China

Email : info@mayrino.com

Website : https://mayrino.com

About MJ XIE

Hey, my name is MJ Xie, I have been working in my own company for more than 10 years. I majored in CS in university. Before 2008, I worked as a backend engineer for 5 years. Since 2009, I transferred to the plush industry , I will continue to focus on the faux fur plush industry. If you have any questions about knowledge of plush faux fur ,please feel free contact me at once, I will reply as soon as possible.

Star