读取和设置 Ubuntu 环境变量(很全面)

news/2024/11/18 11:50:28/文章来源:https://www.cnblogs.com/q10624/p/18552250

读取和设置 Ubuntu 环境变量(很全面)

环境变量

在 Ubuntu 中,环境变量是一些动态命名值,用于影响程序的运行方式。它们包含了系统或用户的配置信息,帮助程序在运行时获取必要的环境信息。 环境变量通常存储在内存中,程序可以通过这些变量访问到相关的数据。

常用的环境变量👇

  1. PATH: 包含可执行文件的搜索路径,当你在终端输入命令时,系统会在这些路径中查找相应的可执行文件。

  2. HOME: 指向当前用户的主目录,通常用于存放用户的个人文件和配置。

  3. USER: 当前登录用户的用户名。

  4. SHELL: 当前用户的默认命令行解释器(如 Bash)。

  5. LANG: 系统语言设置,影响程序的语言输出。

查看环境变量

set

打印出所有的 shell 变量和环境变量,包括函数。内容全面但较为简单,不建议使用这个。

$ set
BASH=/usr/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=([0]="0")
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_VERSINFO=([0]="2" [1]="11")
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="5" [1]="1" [2]="16" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='5.1.16(1)-release'
COLORTERM=truecolor
COLUMNS=80
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=ubuntu
DIRSTACK=()
DISPLAY=:0
EUID=1000
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GNOME_SETUP_DISPLAY=:1
GNOME_SHELL_SESSION_MODE=ubuntu
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/db18d791_d25c_4b3c_ae6a_0f93e5453044
GNOME_TERMINAL_SERVICE=:1.127
GROUPS=()
GTK_MODULES=gail:atk-bridge
HISTCONTROL=ignoreboth
# 后面还有很多

echo

打印出特定的环境变量

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

declare

列出当前 shell 中的所有变量(包括环境变量、局部变量和函数),以一种更结构化的方式显示他们的类型和内容。

$ declare -p
declare -- BASH="/usr/bin/bash"
declare -r BASHOPTS="checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:progcomp:promptvars:sourcepath"
declare -i BASHPID
declare -A BASH_ALIASES=()
declare -a BASH_ARGC=([0]="0")
declare -a BASH_ARGV=()
declare -- BASH_ARGV0
declare -A BASH_CMDS=()
declare -- BASH_COMMAND
declare -a BASH_COMPLETION_VERSINFO=([0]="2" [1]="11")
declare -a BASH_LINENO=()
declare -a BASH_SOURCE=()
declare -- BASH_SUBSHELL
declare -ar BASH_VERSINFO=([0]="5" [1]="1" [2]="16" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
declare -- BASH_VERSION="5.1.16(1)-release"
declare -x COLORTERM="truecolor"
declare -- COLUMNS="417"
declare -- COMP_WORDBREAKS
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x DESKTOP_SESSION="ubuntu"
declare -a DIRSTACK=()
declare -x DISPLAY=":0"
declare -- EPOCHREALTIME
# 后面还有很多

显示的格式 declare -x VAR= "value"(环境变量),declare VAR= "value"(局部变量)。并且带有符号:

  1. -i 将变量声明为整数类型
  2. -A 将变量声明为 hash table
declare -A my_array
my_array["key"]="value"
echo "${my_array["key"]}"  # 输出 "value"
  1. -a 将变量声明为普通数组
declare -a my_array=(1 2 3)
echo "${my_array[1]}"  # 输出 "2"
  1. -x 将变量导出为环境变量,使其在子进程中可用
declare -x MY_VAR="Hello"

printenv

查看指定的环境变量

printenv HOME

在文件系统查看进程的环境变量 /proc

cat /proc/<PID>/environ

设置环境变量

终端使用 export 设置环境变量

这种方式仅在当前会话中有效:

$ export MY_VAR= "some_value"

配置文件添加环境变量

  1. ~/.bashrc:打开一个终端窗口时加载的环境变量文件
  2. ~/.profile:在用户登陆时加载
  3. ~/.bash_profile:登录 shell 的配置文件

向文件中添加环境变量的方式:

$ echo 'export MY_VAR= "some_value"' >> ~/.bashrc

使用命令使得更改生效:

$ source ~/.bashrc

通过脚本设置环境变量

通过脚本设置的环境变量将在脚本执行期间有效

#!/bin/bash
export MY_VAR="some_value"

在运行某个指令时设置临时环境变量

$ MY_VAR="some_value" command_to_run

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

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

相关文章

又稳又快!基于ByteHouse ELT构建高性能离/在线一体化数仓

近期,ByteHouse与某数字娱乐公司达成合作,双方聚焦高性能离/在线一体化数仓展开合作。近期,ByteHouse与某数字娱乐公司达成合作,双方聚焦高性能离/在线一体化数仓展开合作。随着自身领域迅速发展的同时,该数字娱乐公司需要更稳定、易用的数据基础服务,但该方面遇到多种挑…

js设置浏览器cookie

https://blog.csdn.net/x550392236/article/details/77651579

猫映射(Arnold变换),猫脸变换介绍与基于例题脚本的爆破

前置信息 http://www.jiamisoft.com/blog/index.php/7249-erzhituxiangjiamisuanfaarnold.html https://mp.weixin.qq.com/s/IbkAlyAPvbgMeNgqfwisTg Arnold变换 Arnold变换是V.J.Arnold在遍历理论的研究中提出的一种变换,原意为catmapping,俗称猫脸变换。Arnold变换直观、简…

伯索云学堂视频课件课程下载工具,如何在电脑端下载伯索云学堂视频课程课件资料PDF,PPT到本地?

一. 安装伯索云课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/plaso_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止下载…

一个自托管免费开源的人脸识别系统

大家好,今天给大家分享一个自托管免费开源的人脸识别系统CompreFace。CompreFace 是一个开源的人脸识别系统,由 Exadel 公司开发并维护。它提供了一个基于深度学习的解决方案,用于人脸检测、识别和验证。 CompreFace 的设计旨在简化人脸识别技术的使用,使得开发者无需深入理…

洛谷题单指南-二叉堆与树状数组-P3374 【模板】树状数组 1

原题链接:https://www.luogu.com.cn/problem/P3374 题意解读:树状数组模版:单点修改,区间求值。 解题思路: 树状数组-Binary Index Tree可以动态维护一组数,可以O(logn)的修改一个数,也可以O(logn)的计算一段区间的和。 思考一下朴素做法:如何修改一个数,计算区间和?…

11月16日,工信部人才交流中心 CUUG - PGCP / PGCM认证考试完成!

2024年11月16日,由工业和信息化部人才交流中心 与 北京神脑资讯技术有限公司共同举办的PostgreSQL管理员岗位能力认证考试(PGCP中级/PGCM高级)完成。 中级PG认证专家-PGCP(PostgreSQL Certified Professional):是对PostgreSQL数据库技术能力的一种认可,达到了专家级别,…

manim边做边学--球体

Sphere类用于创建三维球体对象,它提供了丰富的参数和方法来定制球体的外观和行为。 球体在制作三维动画时,具有广泛的应用场景。 比如:展示几何概念:通过创建不同大小、颜色和透明度的球体,可以直观地展示几何中的体积、表面积等概念 物理模拟:在模拟物理现象(如重力、碰…

闵可夫斯基和

闵可夫斯基和 前言 部分图片来自 https://www.luogu.com.cn/article/mhp0aeub。 定义 对于两个向量集合 \(A,B\),它们的闵可夫斯基和为 \(\{ a+b | a \in A, b \in B\}\)。 求解 在 OI 中,我们一般研究凸包的闵可夫斯基和。 如图是两个凸包的闵可夫斯基和。本文来自博客园,作…

UNIAPP设置消息推送(v1.0),自定义铃声功能

目前项目需要开发一个物联网APP进行设备绑定、警情查看、统计分析、设备操作、自定义报警铃声等相关功能 采用的uniapp进行开发,功能其实都很简单就是调用SDK进行设备关联、数据的增删改查,逻辑清晰明了,没想到问题出在了消息推送这块, 消息推送-因为是uniapp进行开发所以采…

仓储和运输如何协同?项目管理在物流行业的应用

物流运输是现代经济的核心,覆盖了供应链的多个环节,从订单接收到仓储管理,再到运输配送,每一步都关系到效率和成本。然而,物流行业的复杂性也带来了管理难题,例如多部门协作不畅、运输计划不可控、资源分配不合理等。面对这些挑战,项目管理工具正逐步成为提升物流运输效…

6、oracle网络(监听)

oracle包含 1、软件 2、数据库 3、实例 4、监听(listener) 监听的特点 可以独立启动,就是说,数据库没有启动,监听可以启动;数据库启动,监听也可以不启动;数据库启动,监听也启动 监听和数据库是独立分开的数据库的整个网络结构图解: 1、数据库有数据库的名字:dbname;…