Linux登录自动执行脚本
一、所有用户每次登录时自动执行。
1、在/etc/profile文件末尾添加。
将启动命令添加到/etc/profile文件末尾。
2、在/etc/profile.d/目录下添加sh脚本。
在/etc/profile.d/目录下新建sh脚本,设置每次登录自动执行脚本。有用户登录时,/etc/profile会遍历/etc/profile.d/*.sh。不要忘记修改文件权限。
二、指定用户每次登录时自动执行。(此文件在用户的home目录下)
1、在~/.bashrc文件末尾添加。
将启动命令添加到~/.bashrc文件末尾。
如果用的是cshell,就放到~/.cshrc文件末尾
三、脚本间的区别。
1、/etc/profile:此文件为系统的每个用户设置环境信息。当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
2、/etc/bashrc:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
3、 ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息。当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
4、~/.bashrc::该文件包含专用于你的bash shell的bash信息。当登录时以及每次打开新的shell时,该文件都会被读取。
5、~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。
6、~/.bash_profile:该文件是交互式、login方式进入bash运行的,~/.bashrc是交互式non-login方式进入bash运行的,通常二者设置大致相同,所以通常前者会调用后者。
四、利用这个来设置环境变量

更新环境变量文件:
source /etc/profile
或
. /etc/profile
-
读取系统已有环境变量的方法;
-
export 显示当前系统定义的所有环境变量;
-
echo $PATH 输出当前的PATH环境变量的值。

PATH 变量定义的是运行命令的查找路径,以冒号:分割不同的路径。
方式一:export PATH
export PATH=/usr/local/src/python3/bin:$PATH
# 或者把PATH放在前面
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:立即生效
生效期限:当前打开的终端有效,终端关闭后无效
生效范围:当前登录用户
需要加上 $PATH,否则会覆盖原有路径
方式二:vim ~/.bashrc
-
vim ~/.bashrc
-
# 在最后一行加上
-
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:使用相同的用户打开新的终端时生效,或者手动 source ~/.bashrc 生效
生效期限:永久有效
生效范围:当前登录用户
可能会被后续的环境变量文件覆盖了PATH的值
04 方式三:vim ~/.bash_profile
vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:使用相同的用户打开新的终端时生效,或者手动 source ~/.bash_profile 生效
生效期限:永久有效
生效范围:当前登录用户
如果没有 ~/.bash_profile 文件,则可以编辑 ~/.profile 文件或者新建一个
05 方式四:vim /etc/bashrc
# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/bashrc
vim /etc/bashrc
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:使用相同的用户打开新的终端时生效,或者手动source /etc/bashrc生效
生效期限:永久有效
生效范围:所有用户
06 方式五:vim /etc/profile
# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profile
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:使用相同的用户打开新的终端时生效,或者手动source /etc/profile生效
生效期限:永久有效
生效范围:所有用户
07 方式六:vim /etc/environment
# 如果/etc/environment文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/environment
vim /etc/environment
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点:
生效时间:使用相同的用户打开新的终端时生效,或者手动source /etc/environment生效
生效期限:永久有效
生效范围:所有用户
环境变量加载原理解析
01 思考
上述六种环境变量的配置方式, Linux是按什么顺序加载的呢?是否会相互覆盖相同的环境变量呢?
02 环境变量的分类
用户级别环境变量配置文件:
~/.bashrc
~/.profile
~/.bash_profile(centos7 无)
/home/非root用户名/.bashrc
系统级别环境变量配置文件:
/etc/bashrc
/etc/profile
/etc/bash_profile(centos7 无)
/etc/environment
03 环境变量加载顺序
1. /etc/environment
2. /etc/profile
3. /etc/bashrc
4. ~/.profile
5. ~/.bashrc
相关文章:
Linux登录自动执行脚本
一、所有用户每次登录时自动执行。 1、在/etc/profile文件末尾添加。 将启动命令添加到/etc/profile文件末尾。 2、在/etc/profile.d/目录下添加sh脚本。 在/etc/profile.d/目录下新建sh脚本,设置每次登录自动执行脚本。有用户登录时,/etc/profile会遍…...
架构方法、模型、范式、治理
从架构方法、模型、范式、治理等四个方面介绍架构的概念和方法论、典型业务场景下的架构范式、不同架构的治理特点这3个方面的内容...
Linux 安全 - 内核提权
文章目录 前言一、简介1.1 prepare_creds1.2 commit_creds 二、demo参考资料 前言 在这篇文章:Linux 安全 - Credentials 介绍了 Task Credentials 相关的知识点,接下来给出一个内核编程提权的例程。 一、简介 内核模块提权主要借助于 prepare_creds …...
数字三角形加强版题解(组合计数+快速幂+逆元)
Description 一个无限行的数字三角形,第 i 行有 i 个数。第一行的第一个数是 1 ,其他的数满足如下关系:如果用 F[i][j] 表示第 i 行的第 j 个数,那么 F[i][j]A∗F[i−1][j]B∗F[i−1][j−1] (不合法的下标的数为 0 &a…...
MySQL:主从复制-基础复制(6)
环境 主服务器 192.168.254.1 从服务器(1)192.168.254.2 从服务器(2)192.168.253.3 我在主服务器上执行的操作会同步至从服务器 主服务器 yum -y install ntp 我们去配置ntp是需要让从服务器和我们主服务器时间同步 sed -i /…...
盒子模型的基础
盒子模型 边框(border) border可以设置元素的边框,边框分成三部分,边框的(粗细)边框的样式,边框的颜色 <style>div {width: 100px;height: 100px;border-width: 200;border-style: 边框…...
Go复合类型之数组类型
Go复合类型之数组 文章目录 Go复合类型之数组一、数组(Array)介绍1.1 基本介绍1.2 数组的特点 二、数组的声明与初始化2.1 数组声明2.2 常见的数据类型声明方法2.3 数组的初始化方式一:使用初始值列表初始化数组方法二:根据初始值个数自动推断数组长度方…...
rust闭包
一、闭包是什么 (一)闭包是什么 我们先来看看javascript中的闭包。 在函数外部无法读取函数内的局部变量。但是我们有时候需要得到函数内的局部变量,那么如何从外部读取局部变量?那就是在函数的内部,再定义一个函数。…...
通过位运算,实现单字段标识多个状态位
可能经常有如下这种需求: 需要一张表,来记录学员课程的通过与否. 课程数量不确定,往往很多,且会有变动,随时可能新增一门课. 这种情况下,在设计表结构时,一门课对应一个字段,就有些不合适, 因为不知道课程的具体数量,也无法应对后期课程的增加. 考虑只用一个状态标志位,利用位运…...
ALSA pcm接口的概念解释
PCM(数字音频)接口 PCM缩写: Pulse Code Modulation脉冲调制编码,我们理解为通过一定连续时间周期产生数字音频并带有音量样本的处理过程. 模拟信号被记录通过模拟到数字转换器,数字值(也就是某个特定时刻的音量值)获得来自ADC可以进一步处理,接下的图片展示的是个sine wavefor…...
logging的基本使用教程
logging的基本使用教程 一、简介: logging模块是Python的标准库,用于记录应用程序运行时的日志信息。使用logging模块可以帮助您在开发过程中调试代码、追踪问题和监控应用程序的运行状况。 二、使用教程 1、logging模块的基本使用方法: …...
ds套dp——考虑位置转移or值域转移:CF1762F
https://www.luogu.com.cn/problem/CF1762F 分析性质,就是我们选的数要么递增,要么递减(非严格)然后很明细是ds套dp, f i f_i fi 表示以 i i i 开头的答案然后考虑如何转移(ds套dp难点反而在转移而不是…...
stm32的GPIO寄存器操作以及GPIO外部中断,串口中断
一、学习参考资料 (1)正点原子的寄存器源码。 (2)STM32F103最小系统板开发指南-寄存器版本_V1.1(正点) (3)STM32F103最小系统板开发指南-库函数版本_V1.1(正点&a…...
生成对抗网络入门案例
前言 生成对抗网络(Generative Adversarial Networks,简称GANs)是一种用于生成新样本的机器学习模型。它由两个主要组件组成:生成器(Generator)和判别器(Discriminator)。生成器尝试…...
多头注意力机制
1、什么是多头注意力机制 从多头注意力的结构图中,貌似这个所谓的多个头就是指多组线性变换,但是并不是,只使用了一组线性变换层,即三个变换张量对 Q、K、V 分别进行线性变换,这些变化不会改变原有张量的尺寸…...
Qt + FFmpeg 搭建 Windows 开发环境
Qt FFmpeg 搭建 Windows 开发环境 Qt FFmpeg 搭建 Windows 开发环境安装 Qt Creator下载 FFmpeg 编译包测试 Qt FFmpeg踩坑解决方法1:换一个 FFmpeg 库解决方法2:把项目改成 64 位 后记 官方博客:https://www.yafeilinux.com/ Qt开源社区…...
[网鼎杯 2020 白虎组]PicDown python反弹shell proc/self目录的信息
[网鼎杯 2020 白虎组]PicDown - 知乎 这里确实完全不会 第一次遇到一个只有文件读取思路的题目 这里也确实说明还是要学学一些其他的东西了 首先打开环境 只存在一个框框 我们通过 目录扫描 抓包 注入 发现没有用 我们测试能不能任意文件读取 ?url../../../../etc/passwd …...
SDL2绘制ffmpeg解析的mp4文件
文章目录 1.FFMPEG利用命令行将mp4转yuv4202.ffmpeg将mp4解析为yuv数据2.1 核心api: 3.SDL2进行yuv绘制到屏幕3.1 核心api 4.完整代码5.效果展示6.SDL2事件响应补充6.1 处理方式-016.2 处理方式-02 本项目采用生产者消费者模型,生产者线程:使用ffmpeg将m…...
决策树C4.5算法的技术深度剖析、实战解读
目录 一、简介决策树(Decision Tree)例子: 信息熵(Information Entropy)与信息增益(Information Gain)例子: 信息增益比(Gain Ratio)例子: 二、算…...
LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)
正如您在本课程早期看到的,LLM执行算术和其他数学运算的能力是有限的。虽然您可以尝试使用链式思维提示来克服这一问题,但它只能帮助您走得更远。即使模型正确地通过了问题的推理,对于较大的数字或复杂的运算,它仍可能在个别数学操…...
Midjourney葡萄酒视觉叙事术(从葡萄藤到酒标的一站式AI印相工作流)
更多请点击: https://intelliparadigm.com 第一章:Midjourney葡萄酒视觉叙事术(从葡萄藤到酒标的一站式AI印相工作流) 在数字酒庄时代,视觉叙事已成为品牌差异化的核心引擎。Midjourney 不再仅是图像生成工具…...
数据结构--------单链表下
书接上回,本章主要讲的是单链表的头删,尾删,指定位置插入删除,链表的查找和链表的销毁;一.链表的操作1.头删文字描述如下:正所谓头删,删除的肯定是链表的头元素,但是我们要怎么样进行…...
Kubernetes应用管理新范式:kapp-controller控制器模式详解与实践
1. 项目概述:Kubernetes应用管理的“控制器”模式新范式如果你在Kubernetes世界里摸爬滚打了一段时间,尤其是在尝试将应用打包、部署和生命周期管理进行标准化时,大概率会感到一丝疲惫。Helm Chart的模板、Kustomize的重叠、以及如何让这些配…...
多项目并行开发时借助 Taotoken 统一管理各模型 API 密钥的实践
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 多项目并行开发时借助 Taotoken 统一管理各模型 API 密钥的实践 当你同时推进多个 AI 应用项目时,可能会遇到一个典型的…...
MCP协议与Personas角色:为AI助手打造专属工具箱的实践指南
1. 项目概述:当AI助手拥有“专属工具箱”如果你和我一样,每天都在和各类AI助手打交道,从ChatGPT到Claude,再到国内外的各种大模型应用,你可能会发现一个共同的痛点:这些助手虽然知识渊博,但“动…...
程序员的职业规划:到底是走技术路线还是管理路线
程序员职业规划:技术与管理的岔路口在软件测试行业深耕多年,你或许早已习惯在代码的迷宫中寻找漏洞,在数据的海洋里甄别异常。但当职业生涯的列车行至中途,一个现实的问题总会悄然浮现:是继续在技术的山峰上攀登&#…...
别再双击打不开了!手把手教你用CMD命令行启动BurpSuite破解版(附环境变量排查)
当BurpSuite双击无响应时的终极解决方案:从环境变量到命令行启动全解析 很多安全测试人员在初次接触BurpSuite时都会遇到一个令人沮丧的问题——双击jar文件后毫无反应。这种情况往往让初学者感到困惑,甚至怀疑自己下载的软件是否完整。本文将深入剖析这…...
AI代理氛围感设计:从功能实现到人性化交互的技术实践
1. 项目概述:当AI代理遇上“氛围感”最近在AI应用开发圈里,一个名为“Agent Vibes”的项目引起了我的注意。这名字起得挺有意思,直译过来是“代理氛围”,听起来不像个严肃的技术项目,反倒像在描述一种状态或感觉。但恰…...
高性能计算能效优化:从异构架构到混合精度实践
1. 高性能计算能效优化的核心挑战在过去的十年里,高性能计算(HPC)系统的能耗问题已经从单纯的运营成本问题演变为制约科学发现速度的关键瓶颈。以欧洲核子研究中心(CERN)的大型强子对撞机(LHC)为…...
用Python和Gurobi搞定物流配送难题:手把手教你求解带时间窗的VRP(附完整代码)
用Python和Gurobi破解物流配送难题:从理论到实战的VRPTW完整指南 当外卖骑手在午高峰穿梭于城市的大街小巷时,他们的手机导航上那些看似随机的路线,背后其实隐藏着一套精密的数学算法。这就是我们今天要探讨的带时间窗车辆路径问题࿰…...
