【Linux】详解六种配置Linux环境变量的方法(以centos为例)
本文时间 2023-05-19
作者:sugerqube漆瓷
本文重理解,!!忽略环境变量加载原理!!
本文目标:理解六大环境变量配置,选择合适的配置文件进行配置
配置环境的理由
以shell编程为例

现在我们想要运行名为"sugerqube.sh"的脚本需要运行的命令是
./sugerqube.sh 即在命令行输入脚本的地址
注:./是当前目录的意思

同理当我们再其他目录想要运行它的时候需要打的命令就会变化。
操作系统为我们提供管理名为环境变量的东西,环境变量中配置了放置这些命令的文件夹。
这样我们就能在任意地方直接使用命令完成。
类似vi,mv等常见命令其实就是
/usr/local/sbin:
/usr/local/bin:
/sbin:/bin:
/usr/sbin:
/usr/bin
等下的命令文件,所以当这些常见命令用不了的时候,大概率说明环境便量配置出问题了。
可以创建临时变量:来进行抢救,后文还会再提及。
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

引入一种解释方法
接下来我会用魔法咒语的概念来简述Linux如何寻找环境变量。
现在想要发动名为“watherboom”的魔法。(自定linux命令)

你问法杖会不会(查看临时环境变量)
会(存在临时环境变量),咒语生效
换跟不会的法杖(新的bash窗口),咒语失效魔杖不会,你思索自己会不会(查看用户环境变量/home/user/.bash_profile)
会(存在环境),咒语生效
其他人不会(切换用户),咒语无法发动你不会,你问老大会不会(查看root环境变量/etc/profile)
会(存在环境),咒语生效
老大也不会(未配置文件),咒语无法发动老大不会,问老天爷(查看系统环境变量/etc/environment)
会(存在环境),咒语生效
老天爷也不会(未配置文件),咒语无法发动
因为是先问法杖,再层层向上,所以如果法杖直接回答了,无论他是否正确,都会采取法杖的方案。
以上是四个环境变量会存在的地址,那还有两个在哪?
作为魔法师,有些事不能总亲力亲为,你需要小精灵(bash脚本)帮你做事。
所以还存在你的小精灵指南(~/.bashrc)
你还可以问老大的小精灵所以有(/etc/bashrc)
这些书都是“你” 写的,所上面的魔法(命令),你也会;当你转职(非bash)你就只能拜托小精灵帮你。
注:这一段简单说明了profile和bashrc的区别,前者是全范围涵盖的,后者是针对bash的。
平时我们用的都是bash命令,所以看起来好像是bashrc>profile,实际上是他们有不同的关注点。
平时我们用的都是non-login进入的bash运行现成脚本,所以看起来bashrc更有用,而profile仅登录能操作
配置环境变量的方法
方法1:配置临时环境变量
直接在命令行输入以下命令
export PATH=/home/sugerqube/bin:$PATH
/home/bin为要添加到环境变量的文件夹。
:$PATH不可省略,他的存在是将你新的环境变量地址存到原先PATH的前面。
有shell基础的会知道这里的$是对PATH地址的一种引用。
同理也可以放到前面:export PATH=$PATH:/home/sugerqube/bin
注意事项:
- 生效时间:立即生效
- 生效期限:当前终端有效,窗口关闭后无效
- 生效范围:仅对当前用户有效
- 配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置
包括后文的注意事项都引用自下文,ps:原文<方法一>存在错误。
https://blog.csdn.net/xishining/article/details/119283522
方法2:配置用户bash环境变量(单用户最常用)
直接在命令行输入以下命令
cd
vi .bash
最后一行输入
export PATH=$PATH:/home/sugerqube/bin
注意事项:
- 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
- 生效期限:永久有效
- 生效范围:仅对当前用户有效
- 如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效
方法3:配置用户环境变量
直接在命令行输入以下命令
cd
vi .bash_profile
最后一行输入
export PATH=$PATH:/home/sugerqube/bin
注意事项:同方法2,但是用户不登录也能生效(non-login 方式进入 bash 运行的命令)
方法4:配置“系统bash”环境变量(多用户最常用)
直接在命令行输入以下命令,需要权限 vi退出时wq!强制写入
sudo vi /etc/bashrc
最后一行输入
export PATH=$PATH:/home/sugerqube/bin
注意事项:
- 生效时间:新开终端生效,或者手动source /etc/bashrc生效
- 生效期限:永久有效
- 生效范围:对所有用户有效
方法5:配置“系统”环境变量
直接在命令行输入以下命令,需要权限 vi退出时wq!强制写入
sudo vi /etc/profile
最后一行输入
export PATH=$PATH:/home/sugerqube/bin
注意事项:同方法4,但是用户不登录也能生效(non-login 方式进入 bash 运行的命令)
方法6:配置环境变量
直接在命令行输入以下命令,需要权限 vi退出时wq!强制写入
sudo vi /etc/environment
最后一行输入
export PATH=$PATH:/home/sugerqube/bin
注意事项:通方法5。
以上就是个人对六中环境变量配置的理解
【Linux】详解六种配置Linux环境变量的方法(以centos为例)的更多相关文章
- 磁盘分区对齐详解与配置 – Linux篇
在之前一篇<磁盘分区对齐详解与配置 – Windows篇>中,我介绍了磁盘分区对齐的作用和适用于MBR和GPT的两种磁盘类型的配置,以及Windows平台设置磁盘分区对齐的方法. 本文作为 ...
- Linux详解(基础、环境配置、项目部署入门)
Linux(CentOS 7)操作系统 消息队列(Kafka.RabbitMQ.RocketMQ),缓存(Redis),搜索引擎(ES),集群分布式(需要购买多台服务器,如果没有服务器我们就只能使用虚 ...
- Linux配置全局环境变量的方法
总结3种方法: 1.修改/etc/profile 1.1 :首先在此文件中设置环境变量; 1.2:export 设置好的环境变量. #view /etc/profile export ...
- linux下将指定目录加入环境变量的方法
每个用户目录下都有一个对应的.bash_profile比如root用户对应/root/.bash_profile,普通用户cqh对应/home/cqh/.bash_profile,以root用户为例v ...
- 详解centos7配置本地yum源的方法
近在使用虚拟机时遇到一些麻烦,因为公司内部有网络管理,所以vm连接不上外网,yum无法安装软件,怎么解决呢?–使用iso做本地yum源,可以解决大部份的包安装. vm安装的是centos7. 1.挂载 ...
- Linux配置java环境变量 【随手记】
JAVA环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序. 2. CLASSPATH环境变量.作用是 ...
- Windows 7下配置JDK环境变量和Java环境变量配置
下面来介绍一下Java环境变量配置,是在Windows 7下配置JDK环境变量. 方法/步骤 1 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为:C:\Program Fil ...
- Linux下配置Node环境变量及问题详解
这是之前在Linux下配置Node环境变量时踩过的坑,今天又有小伙伴询问这个问题,因此记录下来,不仅是给新童鞋们一些参考,也方便日后查阅 在这之前,相信都已经安装好了,没安装的可以查看博主另一篇文章 ...
- linux配置java环境变量jdk jre(详细)【转】
linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...
- linux配置java环境变量(详细)
linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...
随机推荐
- 网络安全(中职组)-B模块:Web隐藏信息获取
Web隐藏信息获取任务环境说明:服务器场景名:web20200604服务器场景用户名:未知(关闭链接) 1. 通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机HTTP服务子目录,将扫描 ...
- Android笔记--如何在Android studio里面打开数据库
具体操作 可参考这篇(更为详细): https://www.cnblogs.com/liuzijin/p/17029231.html 1.找到界面内的Device File Explorer 这里找可 ...
- RBAC学习(一)
0.前提 :用户只有一个直属部门,但角色可以关联多个部门 有一种情况就不太适用:比如说地区经理是一个角色,张三是北京市地区经理,他在组织架构中的直属部门是华北大区,然后一个黑龙江的销售李四提一个折扣申 ...
- python爬虫基础教程
爬虫介绍 爬虫就是程序,是从互联网中,各个网站上爬取数据(能浏览到的网页才可以爬),做数据清洗,入库 爬虫本质: 模拟http请求,获取数据,入库 网站/app > 抓包 我们日常使用的baid ...
- MySQL 数据库死锁问题
在分析案例之前,我们先了解一下MySQL INNODB.在MySQL INNODB引擎中主键是采用聚簇索引的形式,即在B树的叶子节点中既存储了索引值也存储了数据记录,即数据记录和主键索引是存在一起的. ...
- MySQL 8.0:无锁可扩展的 WAL 设计
这篇文章整理自MySQL官方文档,介绍了8.0在预写式日志上实现上的修改,观点总结如下: 在8.0以前,为了保证flush list的顺序,redo log buffer写入过程需要加锁,无法实现并行 ...
- MySQL约束条件介绍
无符号.零填充 unsigned # 因为正负值符号会占用一个比特位,使用此约束条件可以去掉数字类型里面的正负值符号,之后相同数字类型会支持的正数范围会更大 id int unsigned zerof ...
- 二进制安装 Kubernetes(k8s)
二进制安装 Kubernetes(k8s) Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes(k8s) 二进制安装 后续尽可能第一时间更新新版本文档 1.23.3 ...
- day39:MySQL:查询操作之单表查询&多表查询&子查询
目录 part1:单表查询 1.where条件的使用 2.group 子句 分组分类 3.having 数据在分类分组之后,进行二次数据过滤 4.order by 排序, 按照什么字段进行排序 5.l ...
- STM32启动分析之main函数是怎样跑起来的
1.MDK目标文件 1)MDK中C程序编译后的结果,即可执行文件数据分类: RAM ZI bss 存储未初始化的或初始化为0的全局变量和静态变量 heap 堆,系统malloc和free操作的内存 s ...