当前位置: 首页 > article >正文

~/.bashrc、 ~/.bash_profile、~/.profile、 /etc/profile几个配置文件的区别

在 Linux 系统中,.bashrc, .bash_profile, .profile/etc/profile 这几个文件都有各自的用途,它们在不同的场景下被加载和执行。下面是对这几个文件的区别和作用的详细介绍:

1. ~/.bashrc

  • 描述:这个文件是针对每个用户的 bash shell 的个人配置文件。
  • 加载时机:每当用户打开一个新的交互式终端窗口(或标签页)时,~/.bashrc 就会被读取并执行一次。
  • 用途:通常用于设置个人的环境变量、别名定义、shell 函数以及其他个性化配置。
  • 示例内容
    # Source global definitions
    if [ -f /etc/bashrc ]; then
      . /etc/bashrc
    fi
    
    # User specific aliases and functions
    alias ll='ls -l'
    

2. ~/.bash_profile

  • 描述:也是针对每个用户的 bash shell 的个人配置文件,但是它的加载优先级高于 ~/.bashrc
  • 加载时机:在用户登录系统时被读取和执行一次。
  • 用途:通常用于设置全局环境变量,例如 JAVA_HOMEPATH 等。
  • 示例内容
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
      . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    

3. ~/.profile

  • 描述:针对每个用户的个人配置文件,适用于所有 shell(不仅仅是 bash)。
  • 加载时机:在用户登录系统时被读取和执行一次。
  • 用途:通常用于设置适用于所有 shell 的环境变量。
  • 示例内容
    # The default umask is set in /etc/profile; for setting the umask
    # for ssh logins, install and configure the libpam-umask package.
    #umask 022
    
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
      # include .bashrc if it exists
      if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
      fi
    fi
    
    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
      PATH="$HOME/bin:$PATH"
    fi
    

4. /etc/profile

  • 描述:系统范围内的配置文件,适用于所有用户和所有 shell(不仅仅是 bash)。
  • 加载时机:在用户登录系统时被读取和执行一次。
  • 用途:通常用于设置系统范围内的环境变量和其他全局配置。
  • 示例内容
    # System-wide .profile file for the Bourne shell (sh(1)) and
    # Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
    
    # If not running interactively, don't do anything
    case $- in
      *i*) ;;
        *) return;;
    esac
    
    # Set PATH for Debian/GNU systems.
    # if "$PATH" is not set up correctly, this can cause problems!
    if [ -z "$PATH" ] || [ "$PATH" = ":/" ]; then
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    fi
    
    # Add an additional PATH entry, if it exists
    if [ -d /usr/games/bonus ]; then
      PATH="$PATH:/usr/games/bonus"
    fi
    
    # set PATH so it includes /usr/local/bin and user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
      PATH="$HOME/bin:$PATH"
    fi
    

总结

  • ~/.bashrc:适用于每个用户的 bash shell,每次打开新的终端窗口时加载。
  • ~/.bash_profile:适用于每个用户的 bash shell,登录时加载,可以包含 ~/.bashrc
  • ~/.profile:适用于每个用户的所有 shell,登录时加载。
  • /etc/profile:适用于所有用户的系统范围配置,登录时加载。

根据需求,我们可以选择合适的地方来配置环境变量或其他个性化设置。通常,如果只需要配置 bash shell 的个性化设置,可以使用 ~/.bashrc;如果需要设置全局环境变量,可以使用 ~/.bash_profile~/.profile。系统级别的配置则放在 /etc/profile 中。


http://www.kler.cn/a/291436.html

相关文章:

  • C程序设计:数据在数组中的交换
  • Python vs PHP:哪种语言更适合网页抓取
  • 【音视频工具系列】streamEye 工具分析 H264 码流详细教程
  • Linux:进程概念
  • Milvus×EasyAi:如何用java从零搭建人脸识别应用
  • kubernates实战
  • 亚马逊卖家测评为什么要自己养账号呢?不懂快进来看看
  • 计算机二级真题--程序设计大题 章节
  • 【多线程】方法中定义的局部变量是否为线程安全的?
  • 适用于 Visual Studio 的 C++ 万能头
  • Hadoop运行jps没有datanode节点【已解决】
  • 常用的限流算法-令牌桶(Token Bucket)php版
  • Python将Latex公式插入到Word中
  • leetcode回文链表
  • 【动态规划-背包问题】
  • 黑马程序员Python数据挖掘|1Jupyter Notebook的使用
  • Spring介绍和Log4j2
  • Flask的上下文管理流程
  • 探索前沿科技:在本地系统上安装和使用Style TTS2进行高质量语音合成
  • 交换机堆叠配置
  • js vue 获取当前日志转为年月日
  • Linux操作系统 :文件管理(实验报告)
  • Java MVC
  • Netty实现WebSocket及分布式解决方案
  • 构建专业技能:MySQL数据备份策略的培训与实践
  • Notepad++ 安装部署教程