linux中关于环境变量的常用的设置方法

一. linux中设置环境变量的方式

1.使用/etc/environment, 是一个全局的环境变量设置文件,它会影响到所有用户和所有进程。当你需要设置一个全局的环境变量时,应该使用这个文件。这个文件的格式是 KEY=value,每行一个环境变量。

2. 使用/etc/profile,这是一个 shell 的配置文件,它只会影响到交互式登录 shell。当你需要设置一个只对交互式 shell 有效的环境变量时,应该使用这个文件。这个文件可以包含 shell 命令,例如设置环境变量、定义别名等。

3. 使用~/.bashrc,与/etc/profile类似,它只影响交互式登录shell。与/etc/profile的区别是~/.bashrc只对当前用户的交互shell 生效。

二. 环境变量设置的测试

1. 使用/etc/profile设置环境变量

# 设置环境变量
root@ubuntu16.04:~# vim /etc/profileexport testkey=testvalue# 登录服务器
ssh ubuntu16.04# 显示环境变量
root@ubuntu16.04::~# env |grep test
testkey=testvalue# 在当前shell中,启动一个进程也能读取/etc/profile设置的环境变量,因为子进程共享父进程的环境信息
# 写一个读取环境变量的脚本
root@ubuntu16.04:~# vim getenv.sh
#!/bin/bash
envroot@ubuntu16.04:~#bash -x getenv.sh
#!/bin/bash
envroot@ubuntu16.04:~# bash -x getenv.sh  |grep test
+ env
testkey=testvalue# 用go语言启动一个进程,同样能读取/etc/profile设置的环境变量
root@ubuntu16.04:~# vim getEnvBygo.go
package main
import("fmt""os"
)func main(){path,ok := os.LookupEnv("testkey")if !ok {fmt.Println("read env error.")return}fmt.Println("testkey="+path)
}root@ubuntu16.04:~# go run getEnvBygo.go
testkey=testvalue

注意: ssh xxx '<命令>'  ,远程执行命令方式,由于是非shell交互方式,所以无法读取/etc/profile中设置的环境变量

2. 使用/etc/environment

由于/etc/environment设置的环境变量是全局的环境变量,即使使用ssh xxx '<命令>'非交互方式启动进程也能读取到/etc/environment设置的环境变量

vim /etc/environment# 添加内容
testkey2='testvalue2'

能可以读取环境变量:

修改下读取环境的go脚本

root@ubuntu16.04:~# cat getEnvBygo.go

package main
import("fmt""os"
)func main(){path,ok := os.LookupEnv("testkey")if !ok {fmt.Println("testkey read env error.")}fmt.Println("testkey="+path)path,ok = os.LookupEnv("testkey2")if !ok {fmt.Println("testkey2 read env error.")}fmt.Println("testkey2="+path)
}

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

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

相关文章

C# Winform的三态CheckBox,以及批量修改Panel中的控件

在C# WinForms中&#xff0c;如果你想批量修改一个Panel容器内的所有CheckBox控件的状态&#xff0c;你可以使用foreach循环来遍历Panel的Controls集合。下面是一个示例&#xff0c;展示了如何将一个Panel内所有的CheckBox控件设为选中状态&#xff08;Checked true&#xff0…

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测&#xff0c;下一个字应该是什么&#xff1f; 如果这个模型下载很慢&#xff0c;你就可以通过这种方式从摩大社区进行下载。 这种方式&#xff0c; 每一次候…

C语言经典程序100案例

C语言经典程序100题(完整版) 【程序1】题目&#xff1a;有1、2、3、4个数字&#xff0c;能组成多少个互不相同且无重复数字的三位数都是多少 程序分析&#xff1a;可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 #include "stdio…

如何让LabVIEW程序框图的图标简化,从而节省空间?

再点击选项 取消掉箭头所示的√即可。 这样就可以将生成的图标从下面所示&#xff1a; 变成简化的图标&#xff0c;如下所示&#xff1a;

【Pytorch】数据集的加载和处理(一)

Pytorch torchvision 包提供了很多常用数据集 数据按照用途一般分为三组&#xff1a;训练&#xff08;train&#xff09;、验证&#xff08;validation&#xff09;和测试&#xff08;test&#xff09;。使用训练数据集来训练模型&#xff0c;使用验证数据集跟踪模型在训练期间…

LeetCode:经典题之102、103题解及延伸|双端队列Deque|树的简介|二叉树中BFS与层序遍历的关系

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 …

安全防御拓扑1

目录 实验的拓扑&#xff1a; 要求&#xff1a; 我搭建的实验拓扑 步骤&#xff1a; 创建vlan&#xff1a; 接口配置&#xff1a; 防火墙&#xff1a; 防火墙配置&#xff1a; 建立安全策略&#xff1a; 防火墙的用户&#xff1a; 办公区的市场部和研发部用户 市场部…

杰发科技AC7801 —— __attribute__指定地址存储常量

const uint8_t usFlashInitVal[] __attribute__((at(0x08002800))) {0x55,0x55,0x55,0x55,0x55};//定位在flash中&#xff0c;0x00030000开始的6个字节信息固定 注意7801的地址在8000000之后 如地址选0x00000800烧录时候报错 不知道是不是atclinktool的bug&#xff0c;使用_…

PCIe总线的序

PCIe序的要求是为了满足满足生产者/消费者模型&#xff0c;和避免死锁。可以通过配置RO和IDO使得报文通过中间路径变为宽松排序&#xff0c;但可能会带来一些违反生产者/消费者模型的问题&#xff0c;需要开发者自行保证. 生产/消费者工作流程 生产者&#xff08;FPGA板卡&am…

勒索防御第一关 亚信安全AE防毒墙全面升级 勒索检出率提升150%

亚信安全信舷AE高性能防毒墙完成能力升级&#xff0c;全面完善勒索边界“全生命周期”防御体系&#xff0c;筑造边界勒索防御第一关&#xff01; 勒索之殇&#xff0c;银狐当先 当前勒索病毒卷携着AI技术&#xff0c;融合“数字化”的运营模式&#xff0c;形成了肆虐全球的网…

【C/C++】内存相关

内存相关 1 ptmalloc ptmalloc是GNU C Library&#xff08;glibc&#xff09;中的默认内存分配器&#xff0c;广泛用于Linux系统。以下是对ptmalloc的详细解析&#xff1a; 一、概述 起源&#xff1a;ptmalloc起源于Doug Lea的malloc实现&#xff0c;并由Wolfram Gloger进行…

TG机器人搭建与部署全攻略:源码搭建技巧与实战教学

TG机器人因其高度的可定制性和广泛的应用场景&#xff0c;成为了开发者和创业者的热门选择。本文将提供一份全面的TG机器人搭建与部署攻略&#xff0c;涵盖源码搭建技巧与实战教学&#xff0c;帮助读者快速掌握TG机器人的开发与上线。 关键词 TG机器人&#xff0c;搭建&#…

数据结构(4.4)——求next数组

next数组的作用:当模式串的第j个字符失配时&#xff0c;从模式串的第next[j]的继续往后匹配 求模式串的next数组(手算) next[1] 任何模式串都一样&#xff0c;第一个字符不匹配时&#xff0c;只能匹配下一个子串&#xff0c;因此&#xff0c;往后&#xff0c;next[1]都无脑写…

Classifier-Free Guidance (CFG) Scale in Stable Diffusion

1.Classifier-Free Guidance Scale in Stable Diffusion 笔记来源&#xff1a; 1.How does Stable Diffusion work? 2.Classifier-Free Diffusion Guidance 3.Guide to Stable Diffusion CFG scale (guidance scale) parameter 1.1 Classifier Guidance Scale 分类器引导是…

达梦数据库的系统视图v$dict_cache_item

达梦数据库的系统视图v$dict_cache_item 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$DICT_CACHE_ITEM 是一个系统视图&#xff0c;用于显示字典缓存&#xff08;Dictionary Cache&#xff09;中的项信息。字典缓存是数据库中的一个重要组件&#xff0c;…

RepLKNet(CVPR 2022, MEGVII)

paper&#xff1a;Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs official implementation&#xff1a;https://github.com/DingXiaoH/RepLKNet-pytorch 背景 卷积神经网络&#xff08;CNN&#xff09;曾经是现代计算机视觉系统中的常见选择。…

Golang | Leetcode Golang题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; func isPowerOfTwo(n int) bool {const big 1 << 30return n > 0 && big%n 0 }

CentOS 7 中出现 cannot open Packages database in /var/lib/rpm 错误

转载自:https://www.jianshu.com/p/423306f43e72 # 进入 rpmdb 所在目录 [roothostbase ~]# cd /var/lib/rpm [roothostbase rpm]# ls Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5 Conflictname __db.002 Dirnames Ins…

在 vite+vue3+electron 中使用 express

文章目录 一、Vite Vue3 Electron 项目的搭建二、搭建 express 环境1、安装 express 框架所需依赖2、创建 express 项目3、配置路由4、启动 express 服务5、启动 electron 并获取数据 三、项目打包 一、Vite Vue3 Electron 项目的搭建 详细的项目构建和打包可参考另一篇文…

hung 之 softlockup hardlockup 检测

1. softlockup & hardlockup 的含义 softlockup 指的是这样一种场景&#xff1a;由于内核程序设计问题&#xff0c;导致CPU长时间关闭抢占。 hardlockup 指的是这样一种场景&#xff1a;由于内核程序设计问题&#xff0c;导致CPU时钟中断长时间禁用。 softlockup 或 har…