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

  1. vim ~/.bashrc

  2. # 在最后一行加上

  3. 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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker的数据管理、端口映射和容器互联

目录 一、如何管理docker容器中的数据 1、数据卷 2、数据卷容器 二、端口映射 三、容器互联(使用centos镜像) 一、如何管理docker容器中的数据 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据…

四、互联网技术——局域网拓扑结构

文章目录 一、局域网拓扑结构二、虚拟局域网VLAN三、交换机VLAN划分四、VLAN的作用五、交换机的端口类型六、经典三层网络架构七、例题:局域网带宽利用分析八、网络安全基础九、恶意软件十、防火墙与入侵检测技术一、局域网拓扑结构 局域网的主要特征由网络的拓扑结构、所采用的…

【Docker】简易版harbor部署

文章目录 依赖于docker-compose下载添加执行权限测试 安装harbor下载解压修改配置文件部署配置开机自启动登录验证 使用harbor登录打标签上传下载 常见问题 依赖于docker-compose 下载 curl -L “https://github.com/docker/compose/releases/download/2.22.0/docker-compose-…

基于javaweb的智慧社区设计与实现

目录 前言 一、技术栈 二、系统功能介绍 客户信息管理 客户信息管理 社区信息管理 车位租买支付 前台车位信息 车位预定提交 问卷调查管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理…

【物联网】Arduino+ESP8266物联网开发(二):控制发光二极管 按钮开关控制开关灯

【物联网】ArduinoESP8266物联网开发(一):开发环境搭建 安装Arduino和驱动 2.ESP8266基础应用 学习过程中会用到的基础引脚如下。开发板提供3V电源,一般传感器工作电压都是3V,可通过开发板供电。如果设备需要的电压超过3V,如水泵…

c++视觉图像线性混合

图像线性混合 使用 cv::addWeighted() 函数对两幅图像进行线性混合。alpha 和 beta 是两幅图像的权重,它们之和应该等于1。gamma 是一个可选的增益,这里设置为0。 你可以通过调整 alpha 的值来改变混合比例。如果 alpha0.5,则两幅图像等权重…

吃鸡玩家必备!提升战斗力,分享干货,保护账号安全!

你好!吃鸡玩家们的福利来了!在这里,我将为大家分享一些关于提高游戏战斗力、分享顶级游戏作战干货以及保护账号安全的实用技巧。 首先,让我们来谈提高游戏战斗力的技巧。绝地求生是一款战略性的游戏,而好的作图工具可以…

【1.1】神经网络:关于神经网络的介绍

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 神经网络(随缘更新) ✨特色…

Docker 镜像的缓存特性

Author:rab 目录 前言一、构建缓存二、Pull 缓存总结 前言 首先我们要清楚,Docker 的镜像结构是分层的,镜像本身是只读的(不管任何一层),当我们基于某镜像运行一个容器时,会有一个新的可写层被…

CCF中国开源大会专访|毛晓光:“联合”是开源走向“共赢”的必由之路

受访嘉宾 | 毛晓光 记者 | 朱珂欣 2023 CCF 中国开源大会( CCF ChinaOSC )拟于 2023 年 10 月 21 日至 22 日在湖南省长沙市北辰国际会议中心召开。 作为第二届 CCF 中国开源大会,本届大会将组织特邀报告、高峰论坛和领域分论坛等不同类…

echarts

1 type值汇总 不同的type的值对应的图表类型如下: type: ‘bar’:柱状/条形图 type: ‘line’:折线/面积图 type: ‘pie’:饼图 type: ‘scatter’:散点(气泡)图 type: ‘effectScatter’&…

聪明应对工程项目管理难题的方法和技巧

对于国内的工程项目管理中,经常需要面对以下几个问题: 1.项目问题相互牵扯,积累成堆:通常一个问题不能及时的解决,就会导致更多的任务无法完成,问题越堆积越严重。 2.项目延期,增加成本&#xf…

NSA 和 CISA 联合揭露当下十大网络安全错误配置

10月5日,美国国家安全局 (NSA) 和网络安全与基础设施安全局 (CISA) 公布了十大目前最常见的网络安全错误配置,这些错误由红蓝团队在大型组织网络中发现。 根据发布的联合报告,团队评估了国防部 (DoD)、联邦民事行政部门 (FCEB)、州和地方政府…

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

框架依赖 一、发布 框架依赖(FDD):即Framework-dependent deployments的缩写。这种发布方式依赖于Framework框架,即要部署的服务器上面必须按照ASP.NET Core 运行时环境(ASP.NET Core Runtime)。这种部署方式是微软默认推荐的。下…

C#中的数组探究与学习

目录 C#中的数组一般分为:一.数组定义:为什么要使用数组?什么是数组?C#一维数组for和foreach的区别C#多维数组C#锯齿数组初始化的意义:适用场景: C#中的数组一般分为: ​①.一维数组。 ②.多维…

分布式文件系统HDFS(林子雨慕课课程)

文章目录 3. 分布式文件系统HDFS3.1 分布式文件系统HDFS简介3.2 HDFS相关概念3.3 HDFS的体系结构3.4 HDFS的存储原理3.5 HDFS数据读写3.5.1 HDFS的读数据过程3.5.2 HDFS的写数据过程 3.6 HDFS编程实战 3. 分布式文件系统HDFS 3.1 分布式文件系统HDFS简介 HDFS就是解决海量数据…

读书笔记——C++高性能编程(一至三)

《C高性能编程》作者:费多尔.G.皮克斯 版本:2022年11月第1版 第一章.性能基础 描述了吞吐量,功耗,实时应用性能的含义。 阐述了“虽然几乎不可能提前预测最佳优化,但是可以确定某些设计决策将使后续优化变得非常困难…

C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)

目录 前言 一、system V IPC对象图解 1.流程图解: ​编辑 2.查看linux内核中的ipc对象: 二、消息队列 1.消息队列的原理 2.消息队列相关的API 2.1 获取或创建消息队列(msgget) 实例代码如下: 2.2 发送消息到消…

单元测试该怎么写

单元测试对于开发人员来说很熟悉,各种语言都提供了单元测试的框架,用于自动化执行单元测试并生成测试报告。它通常提供了一组API和工具,使开发人员能够编写和运行测试用例,比较预期行为和实际行为之间的差异,并准确地识…

多线程锁-synchronized字节码分析

从字节码角度分析synchronized实现 javap -c(v附加信息) ***.class 文件反编译 synchronized同步代码块 >>>实现使用的是monitorenter和monitorexit指令 synchronized普通同步方法 >>>调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置&#xf…