Linux文件 profile、bashrc、bash_profile区别
Linux系统中,有三种文件 出现的非常频繁,那就是 profile、bash_profile、bashrc 文件。
1、profile
作用
profile,路径:/etc/profile,用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。
当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。
在profile中设置环境变量
一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。
当必须添加时,我们可以按以下方式添加:
如,添加一个 HOST 值为 xx.cn的环境变量:
export HOST=xx.cn
添加时,可以在行尾使用;号,也可以不使用。
一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。
添加环境变量后,需要重新登录才能生效,也可以使用 source 命令强制立即生效:
source /etc/profile
查看是否生效可以使用 echo 命令:
$ echo $HOST
xx.cn
2、bashrc
bashrc 文件用于配置函数或别名。bashrc 文件有两种级别:
- 系统级
- 用户级
系统级
系统级的位于/etc/bashrc,对所有用户生效。
用户级
用户级的位于~/.bashrc,仅对当前用户生效。
bashrc 文件只会对指定的 shell 类型起作用,bashrc 只会被 bash shell 调用。
3、bash_profile
bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的 profile 目录下。
这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。
和 profile 文件类似,bash_profile 也会在用户登录(login)时生效,也可以用于设置环境变理。
但与 profile 不同,bash_profile 只会对当前用户生效。
4、差异总结
这三种文件类型的差异用一句话表述就是:
/etc/profile,/etc/bashrc 是系统全局环境变量设定;
~/.profile,~/.bashrc用户家目录下的私有环境变量设定。
当登入系统时候获得一个 shell 进程时,其读取环境设定档如下:

- 首先读入全局环境变量设定档
/etc/profile,然后根据其内容读取额外的设定的文档,如/etc/profile.d和/etc/inputrc; - 根据不同使用者帐号,于其家目录内读取
~/.bash_profile; - 读取失败则会读取
~/.bash_login; - 再次失败则读取
~/.profile(这三个文档设定基本上无差别,仅读取上有优先关系); - 最后,根据用户帐号读取
~/.bashrc。
至于~/.profile与~/.bashrc都具有个性化定制功能,但~/.profile可以设定本用户专有的路径、环境变量等,它只能登入的时候执行一次。
~/.bashrc也是某用户专有设定文档,可以设定路径、命令别名,每次 shell script 的执行都会使用它一次。
相关文章:
Linux文件 profile、bashrc、bash_profile区别
Linux系统中,有三种文件 出现的非常频繁,那就是 profile、bash_profile、bashrc 文件。 1、profile 作用 profile,路径:/etc/profile,用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户…...
blender记一下法线烘焙
这里主要记一下使用cage的方式 原理 看起来是从cage发射射线,打中高模了就把对应uv那个地方的rgb改成打中的点的normal的rgb 正事 那么首先需要一个高模 主要是几何要丰富 无所谓UV 然后一个低模,既然上面提到UV,那低模就要展UV, 展完之后…...
【LabVIEW FPGA入门】FPGA 存储器(Memory)
可以使用内存项将数据存储在FPGA块内存中。内存项以2kb为倍数引用FPGA目标上的块内存。每个内存项引用一个单独的地址或地址块,您可以使用内存项访问FPGA上的所有可用内存。如果需要随机访问存储的数据,请使用内存项。 内存项不消耗FPGA上的逻辑资源&…...
vue3+element Plus form 作为子组件,从父组件如何赋值?
刚开始接触vue3时,碰到一个很low的问题,将form作为子组件,在页面中给form表单项输入内容,输入框不显示值,知道问题出在哪,但因为vue3组合式api不熟悉,不知从哪下手... 效果图: 父组…...
Kafka系列之:Exactly-once support
Kafka系列之:Exactly-once support 一、Sink connectors二、Source connectors三、Worker configuration四、ACL requirementsKafka Connect 能够为接收器连接器(从版本 0.11.0 开始)和源连接器(从版本 3.3.0 开始)提供一次性语义。请注意,对一次语义的支持高度依赖于您运…...
Spring Boot2
SpringBoot 配置文件 properties配置文件 application.properties 以配置端口和访问路径为例 server.port8080 yaml配置文件 application.yml / application.yaml server:port: 81 在实际开发中,更常用的是yaml配置文件 yaml层级表示更加明显 yml配置信息书…...
【idea做lua编辑器】IDEA下lua插件报错编辑器打不开(同时安装EmmyLua和Luanalysis这2个插件就报错,保留EmmyLua插件即可)
C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins 同时安装EmmyLua和Luanalysis就报错,删除Luanalysis这个文件夹只使用EmmyLua这个插件即可! 为啥不用vscode呢? 我个人不太喜欢vscode,更喜欢idea&…...
SpringCloud之网关组件Gateway学习
SpringCloud之网关组件Gateway学习 GateWay简介 Spring Cloud Gateway是Spring Cloud的⼀个全新项目,目标是取代Netflix Zuul,它基于Spring5.0SpringBoot2.0WebFlux(基于高性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型…...
全球大型语言模型(LLMS)现状与比较
我用上个博文的工具将一篇ppt转换成了图片,现分享给各位看官。 第一部分:国外大语言模型介绍 1,openai的Chatgpt 免费使用方法1:choose-carhttps://share.freegpts.org/list 免费使用方法2:Shared Chathttps://share…...
Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准
前言 Git Commit 是开发的日常操作, 一个优秀的 Commit Message 不仅有助于他人 Review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是实际工作中却常常被大家忽略,希望通过本文,能够帮助大家规范 Git Commit,并且展示相关 …...
Spark与flink计算引擎工作原理
Spark是大批量分布式计算引擎框架,scale语言开发的,核心技术是弹性分布式数据集(RDD)可以快速在内存中对数据集进行多次迭代,支持复杂的数据挖掘算法及图形计算算法,spark与Hadoop区别主要是spark多个作业之…...
Excel数字乱码怎么回事 Excel数字乱码怎么调回来
在日常工作中,Excel是我们最常使用的数据处理软件之一,它强大的功能使得数据处理变得既简单又高效。然而,用户在使用Excel时偶尔会遇到数字显示为乱码的问题,这不仅影响了数据的阅读,也大大降低了工作效率。那么&#…...
实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)
一、概述 在进行批量操作时经常会利用链表进行存放相应特征的TAG值,以便后续操作,最常见的就是拉伸功能。这里我们以拉伸功能为例子进行说明。 二、常用链表相关函数 UF_MODL_create_list 创建一个链表,并返回链表的头指针。…...
【VSTO开发】遍历 Ribbon 中的所有控件或按钮
在 VSTO(Visual Studio Tools for Office)中,可以通过代码来遍历 Ribbon 中的所有控件或按钮。可以使用 C# 或 VB.NET 等编程语言来实现这个功能。 下面是一个简单的示例代码,演示如何遍历 Ribbon 中的所有控件或按钮:…...
上位机图像处理和嵌入式模块部署(qmacvisual图像识别)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 所谓图像识别,就是对图像进行分类处理,比如说判断图像上面的物体是飞机、还是蝴蝶。在深度学习和卷积神经网络CNN不像现在这…...
当Java 22遇到 SpringBoot 3.3.0!
工程 | JOSH LONG | 0条评论 Java 22发布快乐! Java 22 是一个重大的进步,是一个值得升级版本。有一些重大的最终发布功能,如 Project Panama及一系列更优秀的预览功能。我不可能覆盖它们全部,但我确实想谈谈我最喜爱的一些。我们…...
贪吃蛇(C语言超详细版)
目录 前言: 总览: API: 控制台程序(Console): 设置坐标: COORD: GetStdHandle: STD_OUTPUT_HANDLE参数: SetConsoleCursorPosition: …...
python(django)之流程接口管理后台开发
1、在models.py中加入流程接口表和单一接口表 代码如下: from django.db import models from product.models import Product# Create your models here.class Apitest(models.Model):apitestname models.CharField(流程接口名称, max_length64)apitester model…...
Hive入门
什么是hive? - Hive是Facebook开发并贡献给Hadoop开源社区的。它是建立在 Hadoop体系架构上的一层 SQL抽象,使得数据相关人 员使用他们最为熟悉的SQL语言就可以进行海量数据的处理、 分析和统计工作 - Hive将数据存储于HDFS的数据文件映射为一张数据库…...
【神经网络】得分函数,损失函数~
目录 引言 一、神经网络概述 1 定义 2 基本原理 二、得分函数 1 定义 2 应用方法 3 与神经网络 三、损失函数 1 定义 2实现方法 3 与神经网络 四、得分函数与损失函数的协同作用 1 关系 2 实际应用 六、代码事例 、总结与展望 引言 在人工智能与机…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
