开发必备基础知识【Linux环境变量文件合集】

开发必备基础知识【Linux环境变量文件合集】

在Linux系统中,环境配置文件用于定制用户的Shell环境,包括定义环境变量、设置命令别名、定义启动脚本等。不同的Shell(如bash、zsh)有着各自对应的配置文件。

.bashrc:每新开一个终端都会执行,配置只影响当前用户的设置

.bashrc:交互式非登录shell配置文件(新开终端窗口就会执行

  • 概念:.bashrc是一个针对Bash shell的配置文件,用于交互式非登录shell会话。这意味着每次你打开一个新的终端窗口或标签页时,.bashrc中的配置就会被加载。
  • 使用场景:
  1. 设置shell别名和函数
  2. 定义环境变量、仅对当前用户的shell会话中有效
  3. 修改命令提示符
  4. 设置shell查找路径:$PATH

示例:在.bashrc,我们通常会这样配置:

# 设置命令别名,在终端输入ll效果实际等于ls -la
alias ll='ls -la'
# $HOME/bin目录添加到搜索路径中
export PATH="$HOME/bin:$PATH"

.bash_profile:只在登录时执行的配置,针对bash shell

.bash_profile:登录shell的配置文件(只在登录时执行一次)

  • 概念:.bash_profile是在登录shell会话开始时加载的配置文件。当你通过图形界面登录、通过SSH远程连接到系统或通过终端登录时,这些文件中的设置就会生效。
  • 使用场景:
  1. 环境变量设置,这些变量在整个登录会话中都有效
  2. 读取其他的配置文件,如:.bashrc

示例:我们通常会在.bash_profile.profie文件中,加载.bashrc。确保我们即使在登录的shell中,.bashrc的配置也可以被应用。

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

.profile:只在登录时执行的配置,兼容多种shell

与.bash_profile效果一样,不过.bash_profile只对bash(shell)有效,.profile兼容多种shell,只要配置了之后,用其他shell登录也能启作用。

.zshrc:zsh(shell)的配置文件,每新开一个终端都会执行

针对zsh终端类型

  • 如果你的默认终端是zsh,当你新开一个窗口时,.bashrc 文件通常不会被自动加载,因为zsh会去查找和执行它自己的配置文件,主要是 .zshrc。.bashrc 是专为bash设计的配置文件,不会在zsh环境下自动应用
# 查看终端类型
echo $SHELL

在这里插入图片描述

总结

  1. .bashrc 和 .zshrc 主要用于非登录Shell,每次启动新终端时都会加载。
  2. .bash_profile 和 .profile 用于登录Shell,仅在用户登录时执行一次。
  • 对于bash用户,.bash_profile 和 .bashrc 常常配合使用,.bash_profile 可以调用 .bashrc 来避免重复配置。
  • zshell用户则主要关注 .zshrc。

①交互式非登录 vs 登录shell:

  • .bashrc适用于每次新开终端时的交互式非登录shell
  • .bash_profile.profile适用于开始一个新的登录shell会话

②加载频率:

  • .bashrc:每次打开新终端窗口或标签时加载
  • .bash_profile.profile仅在登录时加载

③通用性:

  • .profile可以被多种兼容sh的shell读取,而.bash_profile特定于bash

如何选择:

  1. 对于Bash用户:在.bash_profile中设置环境变量,并确保它加载.bashrc
  2. 对于非Bash sh兼容shell用户:使用.profile来设置环境变量。
  3. 通用配置:可以将通用配置放在.profile中,特定于Bash的配置放在.bashrc中。

拓展:

1 ~/.zshrc 与 /etc/zsh/zshrc(当前用户有效与所有用户有效)

①~/.xxxx:实际是当前用户家目录下的配置,因此只对当前用户有效

  • ~/.zshrc:实际是当前用户家目录下的.zshrc配置
  • ~/.bashrc 或 ~/.zshrc(取决于使用的Shell):这些文件中的环境变量配置仅对当前用户在非登录Shell中有效。例如,如果你使用bash作为Shell,那么在~/.bashrc中设置的环境变量只会影响到当前用户。
  • ~/.profile 或 ~/.bash_profile:对于登录Shell,可以在这些文件中设置环境变量,它们也只对当前用户有效。通常,.bash_profile会调用.bashrc来合并配置。

②/etc/xxx:对所有用户都有效,修改的是这台服务器上的配置。类比windows上的用户环境变量与系统环境变量。

  • /etc/profile:这是一个系统级别的配置文件,对所有用户都有效,无论他们使用哪种Shell。在这个文件中设置的环境变量会在所有用户的登录Shell中生效。
  • /etc/bash.bashrc 或 /etc/zsh/zshrc:对于bash或zsh,系统级的rc文件可以用来设置对所有用户都有效的非登录Shell环境变量。例如,系统管理员可能会在这里设置全局的命令别名或提示符配置。

2 export tag1=value1:临时设置环境变量

有时候我们会执行export xxxx=xxx,

# 环境变量 TAG1 被设置为 VALUE1,该设置是临时的,仅对当前的终端会话有效
# 新开一个终端后无法访问到该环境变量
export tag1=value1

3 source /etc/profile

通常我们配置完环境变量后,会执行 source xxxx

  • source /etc/profile 命令的确用于重新加载 /etc/profile 配置文件。这个命令使得在当前Shell会话中立即生效 /etc/profile 中定义的环境变量和配置,而不需要打开新的终端或重新登录
  • 由于 /etc/profile 主要是为全局登录Shell准备的配置文件,对于非登录或交互式的Shell,直接执行这个命令可能不会影响到所有的环境配置。对于bash用户,日常的个性化配置通常放在 ~/.bashrc 或 ~/.bash_profile 中,对于这些用户级的配置文件,使用 source ~/.bashrc 或 source ~/.bash_profile 会更加常见
# 重新加载/etc/profile中的配置,而无需重新登录会话
source /etc/profile

参考文章:https://blog.csdn.net/weixin_39973810/article/details/137281970

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/776801.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用myCobot280和OAK-D OpenCV DepthAI摄像头制作一个实时脸部跟踪的手机支架!

引言 由于YouTube和Netflix的出现,我们开始躺着看手机。然而,长时间用手拿着手机会让人感到疲劳。这次我们制作了一个可以在你眼前保持适当距离并调整位置的自动移动手机支架,让你无需用手拿着手机。请务必试试! 准备工作 这次我们…

[FreeRTOS 基础知识] 互斥量 概念

文章目录 基础知识互斥量互斥量与信号量区别优先级反转优先级继承小结 基础知识 [FreeRTOS 基础知识] 信号量 概念 互斥量 互斥量(Mutex,全称:Mutual Exclusion),在计算机科学中,是一种用于防止多个进程同…

C++20中的指定初始化器(designated initializers)

指定初始化器(designated initializers, 指定初始值设定项)语法如下:C风格指定初始化器语法,初始化数据成员的一种便捷方式 T object { .des1 arg1, .des2 { arg2 } ... }; T object { .des1 arg1, .des2 { arg2 } ... }; 说明: 1.每个指…

leetcode力扣_排序问题

215.数组中的第K个最大元素 鉴于已经将之前学的排序算法忘得差不多了,只会一个冒泡排序法了,就写了一个冒牌排序法,将给的数组按照降序排列,然后取nums[k-1]就是题目要求的,但是提交之后对于有的示例显示”超出时间限制…

竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 …

C++deque容器

文章目录 deque容器概念deque操作deque对象的带参数构造deque头部和末尾的添加移除操作deque的数据存取deque与迭代器deque赋值deque插入deque删除 deque容器概念 deque是双端数组,而vector是单端的。 deque头部和尾部添加或移除元素都非常快速, 但是在中部安插元…

Ros2中goal_handle状态SUCCEED及ACCEPTED及CANCLED在rclpy中的死循环(彻底解决版本)

承接上文,遇到了在动作通信开发中,使用rclpy编写代码进行feedback等操作,但所有逻辑均编写完后,却无法将goal_handle提交为succeed状态,之前的解决方案是更改自己重写的execute()函数名为my_execute()并且在提交SUCCEE…

树莓派学习笔记18:IIC驱动_PCA9685(16路舵机驱动模块)误发

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3: ​ IIC驱动_PCA9685(16路舵机驱动模块) 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 开启树莓…

ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor

如果希望使用ASP.NET Core创建新的 Web 应用程序,应该选择哪种方法?Razor Pages还是 MVC(模型-视图-控制器),又或者使用Web API Vue/React/......。 每种方法都有各自的优点和缺点。 什么是 MVC? 大多数服…

一款免费的PDF编辑软件,内置了OCR功能,识别效果好

主要是想分享给大家他的OCR功能,面对无法编辑的PDF或者图片,如何批量的转成文字或者带有格式的word文档,很多时候或者很多工具做的不理想,今天分享的这款工具应该是目前为止,我遇到的最好的批量OCR工具。他不是简单的O…

NASA和IBM推出INDUS:高级科学研究的综合大模型

在最近的一项研究中,来自美国宇航局和IBM的一组研究人员合作开发了一种模型,该模型可应用于地球科学,天文学,物理学,天体物理学,太阳物理学,行星科学和生物学以及其他多学科学科。当前的模型&am…

Zynq系列FPGA实现SDI视频编解码,基于GTX高速接口,提供5套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx--Kintex系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡器GTX 解串与串化SMPTE SD/HD/3G SDI IP核BT1120转RGB图像缓存视频读取控制HDMI输出RGB转BT1120Gv8500 驱…

Win11右键默认显示更多选项的方法

问题描述 win11系统默认右键菜单显示选项太少,每次需要点一下“显示更多选项”才能得到想要内容。比方说我用notepad打开一个文档,在win11上要先点一下"显示更多选项“,再选择用notepad打开,操作非常反人类。 Win11右键默…

前端面试题18(js字符串特定内容查找方法)

在JavaScript中,有多种方法可以用来查找字符串中的特定内容。以下是一些常用的方法,包括它们的用途和示例代码: 1. indexOf() indexOf() 方法返回指定文本在字符串中第一次出现的索引(位置),如果没有找到…

使用nohup和CUDA_VISIBLE_DEVICES进行GPU训练的教程

文章目录 1. 在单个GPU上训练模型1.1 使用nohup命令运行Python脚本1.2 查看运行中的进程1.3 查看输出日志 2. 在多个GPU上训练模型2.1 启动第一个程序,指定使用第0号GPU2.2 启动第二个程序,指定使用第1号GPU2.3 查看运行中的进程2.4 查看输出日志 3. 总结…

二叉树节点个数(C语言)

目录 问题分析解答递归解答 问题 根据所给的二叉树,求出二叉树的节点个数。 分析 1.如果节点为空,则返回0 2.节点个数 左子树的节点个数右子树的节点个数1 解答 int TreeSize(BTNode* root) {return root NULL ? 0 : TreeSize(root->left) …

读人工智能全传04NP完全问题

1. 问题解决与搜索 1.1. 解决问题的能力无疑是区分人类和其他动物的关键能力之一 1.1.1. 解决问题是需要智慧的 1.2. 汉诺塔 1.2.1. 对于三个金环而言 1.2.1.1. 你不可能找到少于7次的解决方案了 1.2.2. 最初,我们只能选择移动最小的金环,只有将它…

Renesas R7FA8D1BH (Cortex®-M85) ADC模块应用

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 FSP和KEIL配置ADC 2.1 ADC硬件接口 2.2 FSP配置ADC 3 软件功能实现 3.1 FSP生成项目 3.2 FSP ADC模块库函数介绍 3.2.1 库函数列表 3.2.2 函数介绍 4 ADC功能代码 4.1 编写代码 4.2 代码…

盘点各个国家的国宝

中国:熊猫 熊猫已有800万年的历史,和它们同时代的动物都已灭绝,大熊猫生存至今成为“活化石”。 俄罗斯:北极熊 北极熊是世界上最大的陆地食肉动物,体型巨大,性格凶猛。 美国:白头海雕 白头海雕…

Python | Leetcode Python题解之第218题天际线问题

题目: 题解: class Solution:def getSkyline(self, buildings: List[List[int]]) -> List[List[int]]:buildings.sort(keylambda bu:(bu[0],-bu[2],bu[1]))buildings.append([inf,inf,inf])heap [[-inf,-inf,-inf]]ans []for l,r,h in buildings:i…