linux profile文件环境变量配置

news2024/11/26 2:02:45

1、profile 文件

profile 文件位于/etc/目录下 /etc/profile , 当登入系统时候获得一个 shell 进程时,其读取环境profile 文件时候会读取,/etc/bash.bashrc,/etc/profile.d 文件下配置的sh文件,所以我们也可以在profile.d 和bash.bashrc 目录下创建sh文件,配置环境变量

 # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

作用

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

profile 环境变量配置

  1. 使用env命令显示所有的环境变量 。在命令提示符下键入env就行了。

set命令显示所有本地定义的Shell变量。

  1. 常见的环境变量

PATH:决定了shell将到哪些目录中寻找命令或程序

HOME:当前用户主目录

MAIL:是指当前用户的邮件存放目录。

SHELL:是指当前用户用的是哪种Shell。

HISTSIZE:是指保存历史命令记录的条数。

LOGNAME:是指当前用户的登录名。

HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

PS1:是基本提示符,对于root用户是#,对于普通用户是$。
  PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My
NewPrompt : ) ”。   # PS1=” Hello,My NewPrompt : ) “

  1. 使用修改.bashrc文件(在用户的家目录下)进行环境变量的编辑,只对当前用户有用。使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。

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 的执行都会使用它一次。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一分钟了解:什么是Image Matting?

1. 基本概念 Image Matting是图像处理领域的一个基本任务,意为“图像背景抠出”或者“抠图”。这项任务在图像处理、影视制作领域广泛应用。比如,拍电影时常用的扣绿,就是演员在绿幕前面表演,后期再把人物抠出来放到一个新的背景…

java网上阅读网站系统eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 网上阅读网站系统是一套完善的web设计系统,对理解JSP java SSM框架 mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发,数据库为Mysql5.0&a…

基于深度学习的菠萝与果叶视觉识别及切断机构设计

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、课题内容二、总体方案确定2.1 方案选择2.2 菠萝的视觉识别流程2.3 菠萝果叶切断机构设计流程 三 基于深度学习的菠萝检测模型3.1 卷积神经网络简介3.2 YOLO卷积神经网络3.3 图像采集与数据制作3.4 数据训练与…

学习笔记三十一:k8s安全管理:认证、授权、准入控制概述SA介绍

K8S安全实战篇之RBAC认证授权-v1 k8s安全管理:认证、授权、准入控制概述认证k8s客户端访问apiserver的几种认证方式客户端认证:BearertokenServiceaccountkubeconfig文件 授权Kubernetes的授权是基于插件形成的,其常用的授权插件有以下几种&a…

垃圾分类箱通过工业4G路由器实现无人值守远程管理

据今年发布的相关数据统计,人们日常生活中每人每天至少能制造1.2kg垃圾,在环保事业中日常垃圾处理已经成为一项紧迫且不可忽视的任务。为了实现城市清洁和环境保护,越来越多的地区开始引入垃圾分类箱。传统的垃圾分类箱管理方式存在着一些不便…

第十五章 EM期望极大算法及其推广

文章目录 导读符号说明混合模型伯努利混合模型(三硬币模型)问题描述三硬币模型的EM算法1.初值2.E步3.M步初值影响p,q 含义 EM算法另外视角Q 函数BMM的EM算法目标函数LEM算法导出 高斯混合模型GMM的EM算法1. 明确隐变量, 初值2. E步,确定Q函数3. M步4. 停止条件 如何应用GMM在聚…

激光雷达的特性总结

激光能识别的上下高度范围是多少? 激光雷达是一种典型的束波型传感器,扫描的射线呈束波状,打到物体上是一个光斑,并且距离越远,光斑越大。激光光斑的大小和激光雷达的制造工艺相关,一般来说在10m处光斑的大小可以达到7cm半径的圆。此外还要考虑到同一个光斑打到不同物体…

掌握DateTimeFormatter,让你的时间格式化更简单

一、介绍 Java 8引入了新的时间日期API,其中DateTimeFormatter是对日期时间格式化的实用类。它提供了一种简便的方法来格式化日期和时间,同时还可以将日期和时间字符串解析为Java对象。 二、特性 DateTimeFormatter具有以下特性: 1. 线程…

vue-cli5.0.x优雅降级,配置项目兼容旧版浏览器

兼容低版本谷歌浏览器 vue-cli5.0.x脚手架下的,如何降低项目版本以适用于底版本的浏览器。 直接使用默认配置打包部署出来的项目再40,60、70版本的谷歌浏览器跑不起来,蓝屏或者浏览器白屏一般这种情况都需要通过Babel去做转换,我…

uniapp原生插件之安卓USB摄像头插件

插件介绍 安卓USB摄像头,支持拍照,录像,停止预览,开启预览,支持多摄像头切换 插件仅支持nvue页面 插件地址 安卓USB摄像头插件 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档地址 uniapp 安…

STM32H750之FreeRTOS学习--------(四)中断管理

四、FreeRTOS中断管理 中断的概念不再过多叙述,学习过逻辑的都知道 中断的执行过程 中断请求 外设产生中断请求(GPIO外部中断、定时器中断等)响应中断 CPU停止执行当前程序,转而去执行中断处理程序(ISR)…

SecureCRT 发送文件内容

当需要连接 Linux 服务器或设备的时候,SecureCRT 是一个利器。有一个工作场景是这样的,工程代码在服务器上编译完后运行,然后用 secureCRT 连接程序的指定端口(用 telnet ),连接上后就往端口里下发配置&…

在美团和阿里6年,很难却也真实...

先简单的说下,本人6年工作经验,曾就职于某大型国企,公司研究院成员,也就职过美团担任高级测试开发工程师,有丰富的高并发大型项目经验。 后端高并发、高性能、高可用性开发,自动化测试框架开发以及软件自动…

@机械装备企业,“专精特新”你需要这样做!

目录 生产过程有4个特点 三大管理难点 01 计划难管控 02 生产难协同 03 现场难管控 机械装备数字化建设怎么做? 01 计划管控 02 生产协同 03 现场数字化 从2021年7月至今,“专精特新”热度一直居高不下,但其实,这一词早在…

大数据可视化分析建模:每个人都是数据分析师

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 第一部分:介…

【嵌入式项目应用】__cJSON基础介绍与代码测试

目录 前言 一、JSON是什么? 1. JSON 基本语法 2. JSON值(value)的类型 3. 逻辑值(true 或 false) 4. null 5. NUMBER 数字(整数或浮点数) 6. STRING 字符串(在双引号""中) 7…

ChatGLM3-6B详细安装过程记录(Linux)

先附上GitHub官方地址: https://github.com/THUDM/ChatGLM3https://github.com/THUDM/ChatGLM3 一、预览 咱们可以先看看完成之后的界面: 1. 基于 Gradio 的网页版 demo 运行以下命令即可打开界面: python web_demo.py 运行界面如下: 2. 基于 Streamlit 的网页版 de…

【23真题】难!均79分!211题目强过985!

今天分享的是23年海南大学838的信号与系统试题及解析。 本套试卷难度分析:22年海南大学838考研真题,我也做过,若有需要戳这里自取!平均分为80-90左右,最高分为133分。本套试题难度中等偏上,题量不多&#…