Linux系统中环境变量的设置

2023-11-15

目录

业务描述

设置环境变量的方法

系统环境变量

指定用户环境变量

临时有效的环境变量

系统常用环境变量应用分析

PATH 环境变量

HOME 环境变量

HISTSIZE 环境变量

LOGNAME环境变量

SHELL环境变量


业务描述

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

设置环境变量的方法



系统环境变量

这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。此文件只在root下才能修改。

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

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

指定用户环境变量

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

$ whoami 
rethink

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

$ source /home/rethink/.bash_profile

其中,.bash_profile文件只会在用户登录的时候读取。

临时有效的环境变量

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

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

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

设置环境变量常用命令

echo 用于打印显示环境变量,如:echo N A M E ; e x p o r t 用 于 设 置 新 的 环 境 变 量 , 如 : e x p o r t N A M E = ′ r e t h i n k ′ ; 更 新 环 境 变 量 更 新 环 境 变 量 直 接 重 新 赋 值 即 可 : N A M E = ′ t e s t ′ ( 注 意 : 变 量 名 前 不 需 要 加 );

 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统中环境变量的设置 的相关文章

随机推荐

  • 【华为OD机试真题 JAVA】连续出牌数量

    JS版 华为OD机试真题 JS 连续出牌数量 标题 连续出牌数量 时间限制 1秒 内存限制 262144K 语言限制 不限 有这么一款单人卡牌游戏 牌面由颜色和数字组成 颜色为红 黄 蓝 绿中的一种 数字为0 9中的一个 游戏开始时玩家从手
  • 【H5】 canvas图像各种合成详解

    本素材来源 https www cnblogs com hzj680539 p 5068487 html 尊重第一作者 把知识奉献给大家 简易直观图 黄色圆为原图 蓝色正方形为新图 红色圆为新图 蓝色为原图 globalCompositeO
  • 《SQLi-Labs》03. Less 11~15

    sqli 索引 Less 11 题解 原理 Less 12 题解 Less 13 题解 Less 14 题解 Less 15 题解 原理 sqli 开启新坑 索引 Less 11 POST 回显注入 字符型 Less 12 POST 回显注
  • 面试总结(六):搜索索引

    问题导读 1 如何理解用户输入查询语句 2 如何根据得到的文档和查询语句的相关性 对结果进行排序 3 如何计算权重 Term weight 过程 4 如何判断Term之间的关系从而得到文档相关性 搜索索引到这里似乎我们可以宣布 我们找到想要
  • 为什需要采用增广拉格朗日函数

    为什需要采用增广拉格朗日函数 目标函数的可以转化为Lagrangian函数的最小 称之为对偶函数 dual function d
  • moveit是如何控制机械臂运动的

    确定机械臂的状态 MoveIt会读取机械臂的当前状态 包括关节角度 位置和速度等信息 获取规划请求 MoveIt会接收到一个规划请求 其中包含了机械臂需要执行的任务和目标 进行运动规划 MoveIt会对机械臂的当前状态和任务目标进行运动规划
  • Jsvc

    Jsvc How to detach the Java daemon from the shell script Toolbox for IT Groups How to detach the Java daemon from the sh
  • 学习多线程,创建多线程的三种方式

    多线程 并发与并行 并发 两个或多个事件在同一个时间段内发生 交替执行 并行 两个或多个事件在同一个时刻发生 同时执行 进程与线程 进程 进入到内存中的程序 线程 进程中的一个执行单元 负责当前进程中程序的执行 一个进程中至少有一个线程 一
  • 教你如何在VSCode中使用markdown标记语言并转为word

    目录 准备工作 正文开始 准备工作 插件 1 安装 pandoc https pandoc org installing html Windows用户进入官网后 直接点最大的那个按钮就行了 其他操作系统找到相应的下载点 这里我就不多讲了 实
  • 【解决】IDEA默认的代码格式化快捷键是失效

    Ctrl Alt L 网易云的快捷键 关掉网易云后 IDEA格式化快捷键就可以使用了
  • markdown表格合并单元格,嵌入HTML语法

    markdown的语法并不支持表格单元格合并 但可以通过嵌入HTML来解决 例如想实现这样的单元格合并效果 网络状态指示引脚的工作状态 引脚名 引脚工作状态 所指示的网络状态 NET STATUS 慢闪 200 ms 高 1800 ms 低
  • Java Scheduled定时任务

    开启定时任务步骤流程 1 在启动类添加注解 注意 千万不要忘记 EnableScheduling 2 在具体的方法上添加定时任务注解 Scheduled cron 0 0 3 每3个小时触发一次 3 定时任务开启时间 常用的 Schedul
  • SpringBoot集成Redis来实现缓存技术方案

    为什么80 的码农都做不了架构师 gt gt gt 概述 在我们的日常项目开发过程中缓存是无处不在的 因为它可以极大的提高系统的访问速度 关于缓存的框架也种类繁多 今天主要介绍的是使用现在非常流行的NoSQL数据库 Redis 来实现我们的
  • 【VS2010学习笔记】【异常处理】general error c1010070: Failed to load and parse the manifest.

    在VS2010编程中 有时编译会遇到这样的错误 general error c1010070 Failed to load and parse the manifest 解决方法就是在解决方案中将后缀名为manifest的文件删除 再编译即
  • css 第二行的元素设置margin-top间隔

    css 第二行的元素设置margin top间隔
  • Extjs的Form表单提交方式

    Extjs的Form表单提交方式 一 直接提交 url写在表单中 var addForm new Ext FormPanel frame true url insertProject eva doType insertProject lab
  • PCIe5.0的Add-in-Card(AIC)金手指layout建议(三)

    PCIe5 0的Add in Card AIC 金手指layout建议 一 PCIe5 0的Add in Card AIC 金手指layout建议 二 前面两篇文章介绍了第一种金手指的layout建议 适用速率在32 0 GT s 以下介绍
  • 关于爬虫技术

    1 什么是爬虫 爬虫是一种自动化程序 它能够模拟人类用户访问网站的行为 从网站上抓取数据并保存到本地或者进行进一步处理 爬虫是一种非常常用的网络数据采集工具 可以用于搜索引擎 电商数据采集 舆情监测等多个领域 通过使用爬虫 可以自动化地获取
  • springboot获取nacos的服务列表、实例列表及修改实例、发布配置等

    1 通过java sdk的方式发布配置 官方文档说明 https nacos io zh cn docs sdk html https nacos io zh cn docs open api html 1 1构造ConfigService
  • Linux系统中环境变量的设置

    目录 业务描述 设置环境变量的方法 系统环境变量 指定用户环境变量 临时有效的环境变量 系统常用环境变量应用分析 PATH 环境变量 HOME 环境变量 HISTSIZE 环境变量 LOGNAME环境变量 SHELL环境变量 业务描述 Li