Linux环境变量总结

news2024/10/5 18:29:04

 

640?wx_fmt=jpeg&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic

 

Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

设置环境变量的方法

  • 对所有用户生效的永久性变量

这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。

此文件只在root下才能修改。

# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile ,否则只能在下次重进此用户时才能生效。

  • 对单一用户生效的永久性变量

在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1&tp=wxpic

$ whoami 
rethink

$ vi /home/rethink/.bash_profile
export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib 

$ source /home/rethink/.bash_profile

在上图中用红框框住了两个文件:.bashrc 和.bash_profile ,原则上讲设置此类环境变量时在这两个文件任意一个里面添加都是可以的,这两个文件的区别为:.bash_profile是交互式login方式进入bash shell运行,.bashrc是交互式non-login方式进入bash shell运行。

可以理解为.bash_profile文件只会在用户登录的时候读取一次,而.bashrc在每次打开终端进行一次新的会话时都会读取。

临时有效的环境变量(只针对当前shell有效)

此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。

设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。

$ export NAME="rethink"
$ echo $NAME
rethink

设置环境变量常用命令

  • echo 用于打印显示环境变量,如:echo $NAME;

  • export 用于设置新的环境变量,如:export NAME='rethink';

更新环境变量 更新环境变量直接重新赋值即可:NAME='test'   (注意:变量名前不需要加$);

  • env 显示当前用户的变量;

  • set 显示当前shell变量,shell变量包含用户变量;

  • unset 删除一个环境变量,如:unset NAME;

  • readonly 设置环境变量只读,如:readonly NAME  ,只读变量unset无效。

常用环境变量

PATH
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

路径之间用冒号分隔,这些路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。

如果shell在这些路径目录里没有找到可执行文件,就会报错;若找到,系统将调用执行应用程序。通过设置PATH ,可以让我们运行程序或指令更加方便。

将某个目录路径加入到PATH中,可以这样写:

$ pwd
/root/docker/httpd
$ export PATH=$PATH:$PWD
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd
`可以看到在PATH后面已经加上了我们当前所处目录的路径`
  • HOME

用户的主工作目录,即为用户登录到Linux系统中时的默认目录。

$ whoami
rethink
$ echo $HOME
/home/rethink
  • HISTSIZE

保存历史命令的条数。我们输入的指令都会被系统保存下来,这个环境变量记录的就是保持指令的条数。一般为1000。

$ echo $HISTSIZE
1000
$ HISTSIZE=1001
$ echo $HISTSIZE
1001

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取我们可以通过history命令来查看。可以使用符号 ! 执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

$ history 5
   59  ls
   60  who
   61  history | head -n 5
   62  who am i
   63  history 5
$ !62
who am i
root     pts/0        2018-04-04 11:00 (101.81.92.18)
  • LOGNAME

当前用户登录名。

$ echo $LOGNAME
rethink
  • HOSTNAME 主机名称。

$ echo $HOSTNAME
JDu4e00u53f7
  • SHELL

当前用户使用的shell种类。

$ echo $SHELL
/bin/bash

 

如果文章对你有所帮助,麻烦留下您的点赞转发收藏✌
 

                                 -End-

 

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

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

相关文章

K8s进阶6——pod安全上下文、Linux Capabilities、OPA Gatekeeper、gvisor

文章目录 一、Pod安全上下文1.1 配置参数1.2 案例11.2.1 dockerfile方式1.2.2 pod安全上下文方式 1.3 案例21.4 Linux Capabilities方案案例1案例2 二、pod安全策略2.1 PSP(已废弃)2.1.1 安全策略限制维度 2.2 OPA Gatekeeper方案2.2.1 安装Gatekeeper2.…

百度搜索迎来奇点 大模型掀起代际变革

每一轮技术革命掀起的浪潮,大部多数人还没来得及思考或者布局,已经消失于海浪中。机会是给有准备的人的,要发现新兴技术的亮点,并立足自身去积极拥抱它,最后转化为自身前进的动力,跨越周期,迎来…

网站出现403 Forbidden错误的原因以及怎么解决的方法

这几天刚接手一批新做的网站,在访问网站的时候,会时不时的出现403 Forbidden错误,浏览器会给出403 Forbidden错误提示,在打开Access Error中列出的URL之后, 出现以下错误: 403 Forbidden Access to this resource on…

SAP工具箱 批量下载指定表数据到EXCEL

点击蓝字 关注我们 一 前言 下载指定表内容到指定的EXCEL是一个比较简单的程序.但仔细考虑这个程序,还是可以在细节上找出一些关注点 多表内容同时下载,每个表生成一个文件多表选择时,先查看表的记录数大表下载时,拆分下载拆分到不同的文件中拆分到同一个文件中的不同的工作表下…

windows server 2016 ftp搭建详细教程

一.什么是FTP? FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件。 接下来我给大家分享快速搭建FTP服务器的方法。 二.安装FTP服务器 1.进入服务器系统打开“服务器管理器”,点击“添加角色和功…

【JavaSE】Java基础语法(二十三):递归与数组的高级操作

文章目录 1. 递归1.1 递归1.2 递归求阶乘 2. 数组的高级操作2.1 二分查找2.2 冒泡排序2.3 快速排序2.4 Arrays (应用) 1. 递归 1.1 递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象把一个复杂的问题层层转化为一个与原问题相似的规模较…

C语言2:说心里话

描述 分两次从控制台接收用户的两个输入:第一个内容为“人名”,第一个内容为“心里 话”。 然后将这两个输入内容组成如下句型并输出出来: 1.(人名),I want to say,(心里话 2. 输入输出示例: 输入&#xff…

MybatisPlus SpringCloud Docker RabbitMQ ElasticSearch、Redis高级技术,分布式事务的综合应用

一、配置SpringCloud中的网关 1. nginx搭建 搭建好了启动nginx.exe即可出静态页面图 1.网关搭建 server:port: 10010 spring:application:name: api-gatewaycloud:nacos:server-addr: localhost:8848gateway:routes: #用户服务的路由:什么样的请求,让网…

Emacs之定制化mode line(第一百零二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

第二期:链表经典例题(两数相加,删除链表倒数第N个节点,合并两个有序列表)

每道题后都有解析帮助你分析做题,答案在最下面,关注博主每天持续更新。 PS:每道题解题方法不唯一,欢迎讨论! 1.两数相加 题目描述 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式…

【Vue】二:Vue核心处理---模板语法

文章目录 1.模板语法---插值2.模板语法---指令语法2.1v-once2.2 v-bind2.3 v-model2.4 v-on 3.MVVM4.事件回调函数中的this 1.模板语法—插值 {{可以写什么}} (1)在data中声明的变量,函数 (2)常量 (3&…

【蓝桥杯省赛真题22】python剩余空间问题 青少年组蓝桥杯比赛python编程省赛真题解析

目录 python剩余空间问题 一、题目要求 1、编程实现 二、解题思路

【JavaEE】锁策略、CAS和synchronized的优化

目录 1、常见的锁策略 1.1、乐观锁 vs 悲观锁 1.2、轻量级锁 vs 重量级锁 1.3、自旋锁 vs 挂起等待锁 1.4、互斥锁 vs 读写锁 1.4.1、读写锁的使用场景(适用于"频繁 读,不频繁写"的场景) 1.5、可重入锁 vs 不可重入锁 1.…

计算机专业学习的核心是什么?

既然是学习CS,那么在这里,我粗浅的把计算机编程领域的知识分为三个部分: 基础知识 特定领域知识 框架和开发技能 基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。 特定领域知识就是你…

Python花瓣雨

目录 前言 小海龟 花朵类 移动函数 画花朵 尾声 前言 来啦来啦来啦,小伙伴们快快来领取七彩花瓣雨吧!! 小海龟 老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧! 小海龟(Turtle)是P…

Java学习路线(13)——Collection集合类:List集合与Set集合

一、集合类体系结构 二、部分Collection类型对象 Collection集合特点 List系列集合是有序、可重复、有索引。 ArrayList:有序、可重复、有索引LinkedList:有序、可重复、有索引 Set系列集合是无序、不重复、无索引。 HashSet:无序、不重复…

0202条件过滤-自动装配原理-springboot2.7.x系列

1前言 在springboot的自动装配过程中,执行完候选配置类导入后,会进行条件过滤。那么在讲解条件过滤前,我们先来了解springboot常用的条件注解,以及它们底层执行原理。 在Spring Boot中,条件(Condition&am…

使用qemu模拟CXL.mem设备

CXL可以说是自PCIe技术诞生几十年以来最具变革性的新技术了。可以想象有了CXL以后机箱的边界将被彻底打破,服务器互相使用对方的内存,网卡,GPU 。整个机架甚至跨机架的超级资源池化成为可能,云计算也将进入一个新的时代。 当前In…

C++寄存器优化

在C里面有个有趣的现象&#xff0c;先看代码 #include<iostream> using namespace std; int main() {int const tmp 100; //定义常量tmp tmp不能修改int const* p &tmp; //不能通过指针修改指向的值 int* const q const_cast<int*>(p); //去常属性 可以通过…

【C++11】C++11新增语法特性 右值引用/移动语义/完美转发

C11 右值引用 1 右值引用1.1 左值 、 右值1.2 左值引用 VS 右值引用1.3 谈谈C11引入右值引用的意义1.4 左值引用和右值引用的一些细节问题 2 移动语义3 完美转发4 总结 1 右值引用 1.1 左值 、 右值 在C中所有的值不是左值就是右值。左值是指表达式结束后依然存在的持久化对象…