本文时间 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命令)

  1. 你问法杖会不会(查看临时环境变量

    会(存在临时环境变量),咒语生效

    换跟不会的法杖(新的bash窗口),咒语失效

  2. 魔杖不会,你思索自己会不会(查看用户环境变量/home/user/.bash_profile

    会(存在环境),咒语生效

    其他人不会(切换用户),咒语无法发动

  3. 你不会,你问老大会不会(查看root环境变量/etc/profile

    会(存在环境),咒语生效

    老大也不会(未配置文件),咒语无法发动

  4. 老大不会,问老天爷(查看系统环境变量/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为例)的更多相关文章

  1. 磁盘分区对齐详解与配置 – Linux篇

    在之前一篇<磁盘分区对齐详解与配置 – Windows篇>中,我介绍了磁盘分区对齐的作用和适用于MBR和GPT的两种磁盘类型的配置,以及Windows平台设置磁盘分区对齐的方法. 本文作为 ...

  2. Linux详解(基础、环境配置、项目部署入门)

    Linux(CentOS 7)操作系统 消息队列(Kafka.RabbitMQ.RocketMQ),缓存(Redis),搜索引擎(ES),集群分布式(需要购买多台服务器,如果没有服务器我们就只能使用虚 ...

  3. Linux配置全局环境变量的方法

    总结3种方法: 1.修改/etc/profile    1.1 :首先在此文件中设置环境变量;    1.2:export  设置好的环境变量.  #view /etc/profile export ...

  4. linux下将指定目录加入环境变量的方法

    每个用户目录下都有一个对应的.bash_profile比如root用户对应/root/.bash_profile,普通用户cqh对应/home/cqh/.bash_profile,以root用户为例v ...

  5. 详解centos7配置本地yum源的方法

    近在使用虚拟机时遇到一些麻烦,因为公司内部有网络管理,所以vm连接不上外网,yum无法安装软件,怎么解决呢?–使用iso做本地yum源,可以解决大部份的包安装. vm安装的是centos7. 1.挂载 ...

  6. Linux配置java环境变量 【随手记】

    JAVA环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序. 2. CLASSPATH环境变量.作用是 ...

  7. Windows 7下配置JDK环境变量和Java环境变量配置

    下面来介绍一下Java环境变量配置,是在Windows 7下配置JDK环境变量. 方法/步骤  1 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为:C:\Program Fil ...

  8. Linux下配置Node环境变量及问题详解

    这是之前在Linux下配置Node环境变量时踩过的坑,今天又有小伙伴询问这个问题,因此记录下来,不仅是给新童鞋们一些参考,也方便日后查阅 在这之前,相信都已经安装好了,没安装的可以查看博主另一篇文章 ...

  9. linux配置java环境变量jdk jre(详细)【转】

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  10. linux配置java环境变量(详细)

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

随机推荐

  1. 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2018年发布产品)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2018). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...

  2. P4555 [国家集训队]最长双回文串 回文树(回文自动机)简单题

    贴个题目链接:https://www.luogu.org/problem/P4555 题目:输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(∣X∣,∣Y∣≥1)且X和Y都是回文 ...

  3. Stream 未释放系统资源问题处理

    Unreleased Resource: Streams Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资源泄露至少有两种常见的 ...

  4. 利用selenium爬取前程无忧招聘数据

    1.背景介绍 selenium通过驱动浏览器,模拟浏览器的操作,进而爬取数据.此外,还需要安装浏览器驱动,相关步骤自行解决. 2.导入库 import csv import random import ...

  5. Java面试——开源框架知识

    一.简单讲讲 Tomcat结构,以及其类加载器流程,线程模型等 [1]模块组成结构:Tomcat 的核心组件就 Connector 和 Container,一个Connector+一个Containe ...

  6. Redis 缓存雪崩 |击穿 |穿透 概念及解决方案

    一.雪崩 1.概念  指某一时间段,缓存集中过期失效,无数的请求绕开缓存,直接访问数据库. 2.解决方案 让redis数据永不过期,这种方式最可靠的.最安全的,但占用空间,内存消耗大,并且不能保持数据 ...

  7. 1.HVV介绍

    HVV介绍 1.护网职责划分 红队:打点人员.攻击人员.社工人员 蓝队:监控人员.研判人员.溯源人员 2.护网需要具备的技能 红队: 外围打点能力.漏洞挖掘能力.漏洞分析能力.权限提升能力.权限维持能 ...

  8. R数据分析:生存分析的列线图的理解与绘制详细教程

    列线图作为一个非常简单明了的临床辅助决策工具,在临床中用的(发文章的)还是比较多的,尤其是肿瘤预后: Nomograms are widely used for cancer prognosis, p ...

  9. day3 函数的定义和调用,练习编写简单的程序(记录3)

    0331.h #ifndef _0331_H #define _0331_H /************************************************************ ...

  10. Idea快捷键——查找源码

    双击shift 输入要查找源码类 相当于查 java_jdk_chm Ctrl+F12 :浏览类