bashrc和profile区别

转载请注明出处:

  1. 作用与目的:
    • .bashrc:这个文件主要用于配置和自定义用户的终端环境和行为。每次启动新的终端时,.bashrc文件都会被执行,加载用户设置的环境变量、别名、函数等。这使得用户能够根据自己的喜好和需求来定制终端的行为和外观。
    • profile(通常指的是~/.profile/etc/profile):这个文件主要用于在用户登录时设置环境变量和运行命令。对于/etc/profile,它是为系统的每个用户设置环境信息的,并在用户第一次登录时被执行。而~/.profile则允许用户为每个登录会话定制特定的环境设置。
  2. 执行时机:
    • .bashrc:在用户登录时以及每次打开新的shell时都会被读取和执行。这意味着.bashrc中的设置会影响到用户在当前终端会话中的所有操作。
    • profile:主要在用户登录时执行一次。因此,它通常用于设置一些需要在整个登录会话期间保持不变的环境变量和命令。
  3. 内容与应用范围:
    • .bashrc:通常包含与终端环境和行为相关的设置,如别名、函数、提示符样式、颜色等。这些设置主要影响用户在终端中的交互体验。
    • profile:通常用于设置全局的环境变量和命令,这些变量和命令对于用户的整个登录会话都是可见的。此外,/etc/profile还可能从/etc/profile.d/目录中搜集其他的shell设置。
  4. 使用情境:
    • 如果你希望自定义终端的外观和行为,比如修改提示符样式、添加别名等,你应该在.bashrc中进行配置。
    • 如果你需要设置一些全局的环境变量或命令,这些变量和命令需要在整个登录会话期间都可用,你应该在profile文件中进行配置。

5.bashrc 使用示例

    • 设置环境变量:

      复制代码
      # 在.bashrc文件的末尾添加以下行,设置PATH环境变量以包含用户本地bin目录  
      export PATH="$PATH:$HOME/.local/bin"
    • 定义别名:

      复制代码
      # 使用alias定义别名,将ll作为ls -lha的简写  
      alias ll='ls -lha'
    • 加载其他脚本:

      复制代码
      # 加载自定义的bash脚本文件  
      if [ -f ~/.bash_custom ]; then  
          . ~/.bash_custom  
      fi
    • 注意事项:

      • .bashrc文件在用户每次启动新的非登录shell时都会执行。
      • 修改.bashrc后,可以通过执行source ~/.bashrc命令使更改立即生效,或者关闭并重新打开终端。

6. profile 使用示例

    • 设置全局环境变量:

      复制代码
      # 在/etc/profile文件的末尾添加以下行,设置JAVA_HOME环境变量  
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  
      export PATH="$PATH:$JAVA_HOME/bin"
    • 加载用户级启动脚本:

      复制代码
      # 在~/.profile文件的末尾添加以下行,加载用户自定义的启动脚本  
      if [ -f ~/.profile_custom ]; then  
          . ~/.profile_custom  
      fi
    • 定义登录时执行的命令:

      复制代码
      # 当用户登录时,显示一条欢迎消息  
      echo "Welcome, $USER. Enjoy your session!"
    • 注意事项:

      • profile文件在用户登录时执行一次,并影响整个登录会话。
      • 修改/etc/profile需要系统管理员权限,而修改~/.profile则只需要用户权限。
      • 修改profile文件后,用户可能需要注销并重新登录才能使更改生效。
相关推荐
zzzhpzhpzzz几秒前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云3 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
o(╥﹏╥)37 分钟前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
娶不到胡一菲的汪大东41 分钟前
Ubuntu概述
linux·运维·ubuntu
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
那就举个栗子!1 小时前
Ubuntu 20.04下Kinect2驱动环境配置与测试【稳定无坑版】
linux·ubuntu
灯火不休➴1 小时前
[Xshell] Xshell的下载安装使用、连接linux、 上传文件到linux系统-详解(附下载链接)
linux·运维·服务器
Lukea111 小时前
【新教程】Ubuntu server 24.04配置无线网WiFi
linux·ubuntu·教程
小峰编程1 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
卜及中1 小时前
【Linux】资源隔离机制 — 命名空间(Namespace)详解
linux·服务器·php