《Linux从小白到高手》理论篇:Linux的系统环境管理

  1. List item

值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。本篇详细深入介绍Linux的系统环境管理。

环境变量

linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。环境变量可以让子程序继续引用的原因,是因为:

  1. 当启动一个 shell ,操作系统分配一记忆区块给 shell 使用,此区域之变量可以让子程序存取;

  2. 利用 export 功能,可以让变量的内容写到上述的记忆区块当中(环境变量);
    当加载另一个 shell 时(亦即启动子程序,而离开原本的父程序了子 shell ),可以将父shell 的环境变量所在的记忆区块导入自己的环境变量区块当中。所以环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell(使用chsh命 令 )。根据发行版本的情况,bash有两个基本的系统级配置文件:/etc/bashrc和/etc/profile。这些配置文件包含两组不同的变量:shell变量和环境变量。前者只是在特定的shell中固定(如bash), 后者在不同shell中固定。很明显,shell变量是局部的,而环境变量是全局的。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。
    环境变量在 Linux 系统中起着重要的作用,它们可以影响命令的执行、程序的行为以及用户的工作环境。了解不同类型的环境变量有助于更好地管理和配置 Linux 系统。

    注:Linux的环境变量名称一般使用大写字母。
    在这里插入图片描述

Linux环境变量的分类

在 Linux 中,环境变量主要有以下几种类型:
1、系统级环境变量
定义:由操作系统或系统启动脚本设置的环境变量,对整个系统的所有用户和进程都有效。
常见的系统级环境变量:
PATH:指定命令搜索路径,当你在终端输入一个命令时,系统会在PATH变量指定的目录中查找该命令的可执行文件。
HOME:表示用户的主目录路径。
LANG:设置系统的语言环境。
TERM:定义终端类型。
PWD:当前工作目录的路径。
2、用户级环境变量
定义:由用户在其个人的启动脚本(如.bashrc、.profile等)中设置的环境变量,只对该用户有效。
设置方式:用户可以通过编辑自己的 shell 启动脚本文件,添加或修改环境变量的定义。例如,在 Bash shell 中,可以在.bashrc文件中添加export VARIABLE_NAME=value来设置一个用户级环境变量。
作用范围:仅在该用户的登录会话和其所启动的进程中可见。
3、临时环境变量
定义:在当前 shell 会话中临时设置的环境变量,只在当前 shell 及其子进程中有效,当 shell 会话结束时,这些变量就会消失。
设置方式:可以使用export命令在命令行中直接设置临时环境变量。例如,export TEMP_VAR=some_value将设置一个名为TEMP_VAR的临时环境变量。
用途:通常用于在特定的任务或脚本执行期间临时修改环境变量的值,而不影响系统的整体配置或其他用户。

设置环境变量的方法

Linux中一般有3种方法设置环境变量,根据不同的需求设置环境变量,使其在不同的范围和时间内有效。在设置环境变量时,要注意变量名的唯一性和合法性,避免与系统已有的环境变量冲突:
1、在 shell 中临时设置
使用export命令:
在当前 shell 会话中,可以直接使用export命令来设置环境变量。例如,export MY_VARIABLE=value将设置一个名为MY_VARIABLE的环境变量,其值为value。
这种设置方式是临时的,仅在当前 shell 会话及其子进程中有效。当 shell 会话结束时,这个环境变量就会消失。
2、在用户的 shell 启动脚本中设置
Bash shell:
对于 Bash shell,用户可以编辑/.bashrc或/.profile文件来设置环境变量。这些文件在用户登录时被读取,从而使设置的环境变量在每次用户登录后的所有 shell 会话中都有效。
在文件中添加类似export MY_VARIABLE=value的行来设置环境变量。设置完成后,保存文件并重新打开一个终端或使用source ~/.bashrc(或source ~/.profile)命令使设置生效。
其他 shell:
不同的 shell 有不同的启动脚本。例如,对于 Zsh shell,用户可以编辑~/.zshrc文件来设置环境变量。
3、在系统级配置文件中设置
/etc/profile和/etc/environment:
在 Linux 系统中,/etc/profile是系统级的 shell 启动脚本,它在系统启动时被执行,用于设置一些系统级的环境变量和执行一些系统级的初始化任务。
/etc/environment文件也可以用于设置系统级的环境变量,但它的格式与/etc/profile略有不同。这个文件中的环境变量以 “变量名 = 值” 的形式列出,没有 shell 脚本的语法。
只有具有管理员权限的用户才能编辑这些文件。修改后,新的设置将在系统重启或用户重新登录后生效。

环境变量设置命令

1、export 命令
功能:用于在当前 shell 中设置或导出环境变量,使其对当前 shell 及其子进程可见。
用法:
export VARIABLE_NAME=value:
设置一个新的环境变量并赋值。例如,export MYVAR=123将设置环境变量MYVAR的值为 123。
export VARIABLE_NAME:如果只指定变量名而不赋值,它将把已有的同名变量导出到当前 shell 的环境中,使其对子进程可见。例如,如果在一个脚本中设置了一个变量,然后在该脚本中使用export VAR,那么在该脚本启动的其他程序中将可以访问VAR这个环境变量。
2、set 命令
功能:显示当前 shell 中的所有变量,包括环境变量、局部变量和 shell 变量等。
用法:
set:执行该命令将列出当前 shell 中的所有变量及其值。可以通过查看输出找到特定的环境变量。
3、env 命令
功能:显示当前系统中的所有环境变量。
用法:
env:执行该命令将列出系统中的所有环境变量及其值。这对于查看当前系统的环境设置非常有用。
4、declare 命令
功能:用于声明变量,包括环境变量。可以设置变量的属性,如类型、只读等。
用法:
declare -x VARIABLE_NAME=value:
声明一个新的环境变量并赋值。例如,declare -x MYENV=456将设置环境变量MYENV的值为 456。
declare -r VARIABLE_NAME:
将一个已有的变量声明为只读,防止其值被修改。例如,declare -r PATH将使PATH环境变量变为只读。

本篇完結。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。

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

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

相关文章

【Redis】Redis线程模型

目录 1. Redis 是单线程的,还是多线程的?2. Redis单线程模式是怎么样的?Redis 单线程模式的优势Redis 单线程的局限性Redis 单线程的优化策略 3. Redis采用单线程为什么还这么快4. Redis 6.0 之前为什么使用单线程?5. Redis 6.0 之…

10.1 10.3 图DFS 中等 207 Course Schedule 210 Course Schedule Ⅱ

207 Course Schedule class Solution { public:bool hasCycle(int course ,unordered_map<int,vector<int>>& graph,vector<int>& visitStatus){//正在访问的结点再次被访问&#xff0c;存在环if(visitStatus[course] 1)return true;//该结点已经被…

仪器校准机构提供了资质证明,就能够代表目前的检测能力吗?

最近的一次公司审核打破了我对仪器校准机构能力认证这一独特理论的认识。换句话说&#xff0c;最近参加了公司的质量整合审核&#xff0c;其中之一就是仪器校准机构检测能力审核。根据我平时的经验&#xff0c;我给审核老师提供了CNAS和客户等一系列资质证书&#xff0c;以证明…

PMP--冲刺题--解题--91-100

文章目录 11.风险管理--4.实施定量风险分析--题干场景中提到了“专家”&#xff0c;同时即将开始“量化风险”&#xff0c;因此对应的就是“定量风险分析”中的“专家判断”技术。项目经理应先征求各位专家们的意见&#xff0c;以获取最佳的量化风险实施方案。谋定而后动91、 […

芯片复位电路-RC复位

芯片复位电路-RC复位 MAX809专门的上电复位芯片使用注意芯片间级联复位 看门狗复位注意事项 MAX809专门的上电复位芯片 可以看到这里VTH这个电压值一般是你你电复位芯片供电的90%左右&#xff0c;比如说5V&#xff0c;那这里可能是4.5V。 使用注意 A.复位输出引脚要加上拉电阻…

解决跨域问题

第一种 让后端解决 第二种 通过代理来解决 首先可以先搭建后端接口 解决则参照vue-cli官网 首先新建一个vue.config.js文件 然后在项目的根目录新建两个文件夹 开发环境和生产环境 然后可以使用环境变量 系统会自动识别你是生产环境还是开发环境 然后在封装的axios中配…

【Qt】控件概述 (1)—— Widget属性

控件概述 1. QWidget核心属性1.1核心属性概述1.2 enable1.3 geometry——窗口坐标1.4 window frame的影响1.4 windowTitle——窗口标题1.5 windowIcon——窗口图标1.6 windowOpacity——透明度设置1.7 cursor——光标设置1.8 font——字体设置1.9 toolTip——鼠标悬停提示设置1…

Puppeteer自动化:使用JavaScript定制PDF下载

引言 在现代的Web开发中&#xff0c;自动化已经成为提高效率和减少重复劳动的重要手段。Puppeteer 是一个强大的Node.js库&#xff0c;提供了对无头Chrome或Chromium的控制&#xff0c;可以用于生成网页快照、抓取数据、自动化测试等任务。其中&#xff0c;生成PDF文件是一个常…

cnn突破八(两层卷积核bpnet网络扩展)

cnn突破七中x【&#xff1f;】怎么求&#xff1f;我们举个例子&#xff1a; 接着cnn突破七&#xff1a; hicnn【】来自temphicnn【】2*2最大池化&#xff1a; temphicnn[0]x[i0,j0,5*5方阵]*w1cnn[0-24]&#xff0c; hicnn是5*5的&#xff0c;temphicnn是10*10的&#xff0…

git clone 私有仓库时出现错误 Authentication failed for :xxxxxx

错误信息 remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended…

音频剪辑在线工具 —— 让声音更精彩

你是否曾梦想过拥有自己的声音创作空间&#xff0c;却苦于复杂的音频编辑软件&#xff1f;接下来&#xff0c;让我们一同揭开这些音频剪辑在线工具的神秘面纱&#xff0c;看看它们如何帮助你实现从录音到发布的无缝衔接。 1.福昕音频剪辑 链接直达>>https://www.foxits…

Windows系统编程(三)线程并发

进程与线程 进程&#xff1a;直观的说就是任务管理器中各种正在运行的程序。对于操作系统来说&#xff0c;进程仅仅是一个数据结构&#xff0c;并不会真实的执行代码 线程&#xff1a;通常被称作但并不真的是轻量级进程或实际工作中的进程&#xff0c;它会真实的执行代码。每…

Qwen变体新成员加一,英伟达训练 NVLM-D-72B 视觉大模型

今天&#xff08;2024 年 9 月 17 日&#xff09;&#xff0c;我们推出了前沿级多模态大语言模型&#xff08;LLM&#xff09;系列 NVLM 1.0&#xff0c;它在视觉语言任务上取得了最先进的结果&#xff0c;可与领先的专有模型&#xff08;如 GPT-4o&#xff09;和开放存取模型&…

易图讯军用VR三维电子沙盘系统

深圳易图讯军用VR三维电子沙盘系统是一种集成了虚拟现实&#xff08;VR&#xff09;技术、三维建模技术、大数据分析、实时动态更新以及高度安全可靠的综合性军事指挥平台。该系统通过高精度三维模型真实再现战场环境&#xff0c;为指挥员提供沉浸式体验和交互操作的可能性&…

【黑马点评】0.环境配置--Redis6.2.6和可视化工具在Windows上的安装

黑马点评--0.Redis6.2.6在windows上的环境配置与可视化 0 前言1 下载安装2 解压后运行msi文件3 修改配置文件并打开Redis3.1 修改密码&#xff08;可选&#xff09;3.2 测试 4 Redis可视化&#xff08;可选&#xff09;4.1 Another Redis Desktop Manager下载安装4.2 连接Redis…

N1从安卓盒子刷成armbian

Release Armbian_noble_save_2024.10 ophub/amlogic-s9xxx-armbian (github.com) armbian下载&#xff0c;这里要选择905d adb 下载地址 https://dl.google.com/android/repository/platform-tools-latest-windows.zip 提示信息 恩山无线论坛 使用usb image tool restet a…

深入理解NumPy库:常用函数详解与数组操作指南

在数据科学和数值计算领域&#xff0c;NumPy无疑是一个强大的工具&#xff0c;它为Python提供了高效的多维数 组处理能力。无论是进行数据分析、构建机器学习模型&#xff0c;还是进行复杂的科学计算&#xff0c;NumPy都是 不可或缺的核心库之一。 numpy.array 是 NumPy 库中…

C# 获取可执行文件目录

---------------------------------------------------------------------------

SpringMVC框架:入门讲解和基础案例解析

Spring Web MVC是什么&#xff1f; Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。使用了MVC架构模式的思想&#xff0c;将web层进行职责解耦&#xff0c;基于请求驱动指的就是使用请求-响应模型 。框架的目的就是帮助我们简化开发&…

PCB板材基本知识

术语 名称定义插图 copper foil 铜箔 Copper Clad Laminates&#xff0c;CCL 覆铜箔层压板 CCL是PCB制造的上游核心材料&#xff0c;是将电子玻纤布或其它增强材料浸以树脂&#xff0c;一面或双面覆以铜箔并经热压而制成的一种板状材料&#xff0c;担负着&#xff08;PCB&am…