Linux中,~/.bashrc和/etc/profile的区别,以及全局变量的配置

~/.bashrc/etc/profile 都是用于配置用户环境的文件,但它们在用途、执行时机和适用范围上有所不同。以下是详细的区别:

~/.bashrc

  • 作用 : ~/.bashrc 是一个用户级别的配置文件,用于设置用户的 shell 环境。它通常用于配置用户的个性化环境,如别名、函数和环境变量等。

  • 执行时机 : ~/.bashrc 在每次启动一个新的交互式非登录 Bash shell 时被执行。也就是说,每次你打开一个新的终端窗口或启动一个新的终端会话时,~/.bashrc 会被读取和执行。

  • 适用范围 : 只对当前用户有效。每个用户都有自己的 ~/.bashrc 文件,这些文件是独立的。

  • 配置示例:

    bash 复制代码
    # ~/.bashrc
    alias ll='ls -la'
    export PATH=$PATH:$HOME/bin

/etc/profile

  • 作用 : /etc/profile 是一个系统范围的配置文件,用于设置系统级别的环境变量和启动脚本。它适用于所有用户,并用于设置系统范围的环境。

  • 执行时机 : /etc/profile 在用户登录到系统时(通过控制台、SSH、或其他登录方式)被执行。这包括登录 shell 会话。

  • 适用范围 : 对所有用户有效。无论是哪个用户登录系统,/etc/profile 都会被读取和执行。

  • 配置示例:

    bash 复制代码
    # /etc/profile
    export PATH=$PATH:/usr/local/bin
    export EDITOR=vim

总结

  • ~/.bashrc:

    • 用途: 用户级别的个性化配置
    • 执行时机: 每次启动新的交互式非登录 shell
    • 适用范围: 当前用户
  • /etc/profile:

    • 用途: 系统级别的全局配置
    • 执行时机: 用户登录时
    • 适用范围: 所有用户

补充信息

登录 Shell 和非登录 Shell 的关系

非登录 Shell 是在已经登录的 Shell 会话中启动的,通常不需要重新验证身份。它是在一个已经认证的环境下进行的操作。例如,当你在登录到系统后打开一个新的终端窗口或标签页时,你启动的是一个非登录 Shell。

  • 登录 Shell:

    • 需要进行身份验证。
    • 是用户首次登录时启动的 Shell。
    • 读取 /etc/profile~/.bash_profile~/.bash_login~/.profile 等文件。
  • 非登录 Shell:

    • 不需要重新身份验证。
    • 在已登录的 Shell 会话中启动,通常由用户打开一个新的终端窗口或标签页,或者从现有的终端中启动新的 Shell。
    • 读取 ~/.bashrc 文件。

在这种设置下,登录 Shell 环境被创建并认证后,你可以在该环境下启动多个非登录 Shell,而不需要再次进行身份验证。

Linux中全局变量配置,/etc/profile.d还是/etc/profile
  • 典型配置 :
    • /etc/profile: 用于设置所有用户的全局环境变量和系统级别的配置。
    • ~/.bashrc: 用于设置用户个人的环境变量、别名、函数等。
相关推荐
大树885 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush45 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5205 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz6 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工6 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智7 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩7 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_7 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化