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: 用于设置用户个人的环境变量、别名、函数等。
相关推荐
AcrelGHP20 分钟前
光储充微电网能量管理系统:构建绿色、高效、安全的能源未来
大数据·运维·人工智能
带土12 小时前
3. vim上手
linux·编辑器·vim
prettyxian2 小时前
【linux】基础开发工具(2)vim
linux·vim
西岭千秋雪_2 小时前
Zookeeper监听机制
java·linux·服务器·spring·zookeeper
冬夜戏雪3 小时前
[尚庭公寓P91-P104-及服务器服务的连接]
运维·服务器
Jewel Q3 小时前
防火墙NAT策略处理流程
运维·服务器·网络
失重外太空啦3 小时前
NFS服务器的搭建
运维·服务器·网络
矮油0_o3 小时前
15.套接字和标准I/O
服务器·c语言·网络·网络编程·socket
利刃大大3 小时前
【高并发服务器】十二、LoopThreadPool线程池管理模块
服务器·c++·项目
爱奥尼欧4 小时前
【Linux笔记】网络部分——网络层IP协议
linux·网络·笔记