Linux 环境变量快速上手指南

Linux 环境变量快速上手

1. 什么是环境变量

  • 环境变量(Environment Variables)是操作系统中用于存储配置信息的一种机制,可以在运行时被进程读取和使用。
  • 常见环境变量示例:
    • PATH: 存放可执行文件搜索路径。
    • HOME: 当前用户的家目录路径。
    • USERLANGSHELL 等。

2. 查看环境变量

  1. 查看所有环境变量

    printenv
    

    或者

    env
    
  2. 查看单个环境变量

    echo $PATH
    echo $HOME
    

3. 设置环境变量

3.1 临时设置(仅在当前终端会话中有效)

export VAR_NAME="value"
  • 示例
    export PATH="$HOME/.local/bin:$PATH"
    
  • 解释
    • 作用:将用户家目录下的 .local/bin 添加到 PATH 环境变量中。
    • 路径说明
      • $HOME/.local/bin:用户私有的二进制文件目录,常用于存放用户安装的工具或脚本(如通过 pip install --user 安装的 Python 包)。
      • $PATH:系统当前的 PATH 变量,包含默认的可执行文件搜索路径。
    • 语法解析
      • export:设置环境变量并使其在当前 Shell 会话及其子进程中生效。
      • "$HOME/.local/bin:$PATH":将 $HOME/.local/bin 添加到 $PATH 最前面,优先查找此目录中的可执行文件。
    • 使用场景:确保用户安装的工具(如 jupyter-notebook)无需完整路径即可运行。
  • 注意:关闭终端后,此设置会失效。

3.2 永久设置(在 Shell 配置文件中)

不同 Shell 的配置文件不同,以下以 Zsh 为例:

  1. 编辑 ~/.zshrc
    nano ~/.zshrc
    
  2. 在文件末尾添加:
    export PATH="$HOME/.local/bin:$PATH"
    
  3. 保存并退出,然后让配置立即生效:
    source ~/.zshrc
    
  • 效果:每次打开新的 Zsh 终端时,~/.zshrc 会自动加载,设置环境变量。

Bash 用户:配置文件通常是 ~/.bashrc~/.bash_profile,步骤类似。


4. 常见环境变量说明

  • PATH

    • 作用:存放可执行文件的搜索路径。输入命令时,系统按 PATH 中列出的目录顺序查找。
    • 示例:添加 ~/.local/bin 后,可直接运行该目录下的脚本或工具。
    • 建议:将用户自定义路径放在 $PATH 前面,确保优先调用用户安装的工具。
  • HOME
    当前用户的家目录,通常是 /home/用户名

  • SHELL
    当前使用的 Shell 类型,如 /bin/zsh/bin/bash

  • LANG
    语言及字符编码设置,如 en_US.UTF-8zh_CN.UTF-8


5. 验证与排查

  1. 查看是否生效

    • 检查变量:
      echo $VAR_NAME
      
    • 查找命令路径:
      which <command>  # 如 which jupyter-notebook
      
    • 或使用更全面的工具:
      type <command>  # 显示命令类型和位置
      
  2. 多 Shell 环境

    • 如果命令找不到,可能是 Shell 未加载配置文件。
    • 检查当前 Shell:
      echo $SHELL
      
    • 切换默认 Shell:
      chsh -s /bin/zsh  # 或 /bin/bash
      
  3. 系统级环境变量

    • 可编辑 /etc/profile(所有用户生效)或 /etc/environment(全局变量),但用户级配置(如 ~/.zshrc)更常见。

6. 现代开发环境中的环境变量

  • 虚拟环境和容器
    • 在 Python venv、Conda 或 Docker 中,环境变量会根据激活环境自动调整。
    • 示例:激活 Conda 环境后,PATH 自动包含该环境的 bin 目录。
    • 注意:运行命令前需确保环境已激活。

7. 小结

  1. 核心:区分“临时 vs. 永久”,明确配置文件(~/.zshrc~/.bashrc)。
  2. 永久设置
    • 在配置文件中添加 export 命令,使用 source 或重启终端生效。
  3. 排查工具
    • whichtypeecho $PATH 可快速定位问题。
  4. 保持简洁
    • 避免重复添加路径,确保配置文件清晰。

温馨提示
在虚拟环境、Conda 或 Docker 等多环境中,注意初始化脚本和激活流程。基本原理不变:通过环境变量(如 PATH)让系统找到可执行文件。
遇到“找不到命令”时,检查 PATH 和 Shell 配置,问题多半迎刃而解!

祝学习愉快,掌握环境变量后,Linux 操作将更加得心应手!

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

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

相关文章

万字技术指南STM32F103C8T6 + ESP8266-01 连接 OneNet 平台 MQTT/HTTP

此博客为一份详细的指南&#xff0c;涵盖 STM32F103C8T6 通过 ESP8266-01 连接 OneNet 平台&#xff0c;并使用 MQTT/HTTP 进行数据通信的完整流程。这份文档包括&#xff1a; OneNet 平台的介绍与功能概览在 OneNet 上创建和配置设备的方法STM32CubeIDE 的开发环境搭建ESP826…

Go本地缓存设计与实现

本地缓存是一个项目中很常见的组件。在很多人的眼中就是一个简单的key-value的map存储即可实现&#xff0c;但实际上&#xff0c;设计一个本地缓存需要考虑的问题远比你想象的多&#xff0c;比如说&#xff0c;本地缓存是将数据存储在内存&#xff0c;若数据量激增突破了内存限…

深入解析 JavaScript 原型与原型链:从原理到应用

原型和原型链是 JavaScript 中实现对象继承和属性查找的核心机制。为了更深入地理解它们&#xff0c;我们需要从底层原理、实现机制以及实际应用等多个角度进行分析。 1. 原型&#xff08;Prototype&#xff09; 1.1 什么是原型&#xff1f; 每个 JavaScript 对象&#xff08…

FPGA时序约束的几种方法

一,时钟约束 时钟约束是最基本的一个约束,因为FPGA工具是不知道你要跑多高的频率的,你必要要告诉工具你要跑的时钟频率。时钟约束也就是经常看到的Fmax,因为Fmax是针对“最差劲路径”,也就是说,如果该“最差劲路径”得到好成绩,那些不是最差劲的路径的成绩当然比…

Visual Studio Code打开远程服务器项目,打开服务器Android上百G源码,SSH免密连接方式

Visual Studio Code打开远程服务器项目 1&#xff0c;Visual Studio Code拓展中&#xff0c;安装远程插件 Remote Development 2&#xff0c;SSH免密连接&#xff0c;A电脑免密连接B&#xff0c;配置B电脑.ssh/authorized_keys A电脑的.ssh/id_rsa.pub中的公钥内容&#xff0c;…

AWS云编排详解-Cloud Formation

作者:私语茶馆 1.关键概念 名词 说明 软件: CloudFormation 描述AWS 资源、配置值和互连关系。借助集成设施即代码加快云部署 CloudFormation Designer 拖拽式图形化模板编辑界面。 Amazon Simple Notification Service (SNS) SNS可通过电子邮件跟踪堆栈的创建和删除进度,…

《PyQt5》——设计Python GUI(图形用户界面)实例

PyQt5 PyQt5的配置和基础使用可以参考这篇文章&#xff1a;《 PyQt5》—— 创建 Python GUI&#xff08;图形用户界面&#xff09; Python GUI&#xff08;图形用户界面&#xff09;实例 本实例是设计一个通过玉米和豆粕的价格来预测生猪的价格&#xff0c;并显示预测价格与实…

kali linux 打开 word

Kali Linux是一款专为网络安全领域而设计的操作系统&#xff0c;它集成了大量的安全工具&#xff0c;帮助用户进行网络渗透测试和安全评估。作为一款功能强大的操作系统&#xff0c;Kali Linux可以满足用户在网络安全领域的各种需求&#xff0c;包括渗透测试、漏洞分析、数字取…

hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索

场景业务&#xff1a; 多次运用AgGridReact的table 列表 思路&#xff1a; 运用自定义hooks进行二次封装&#xff1a; 通用配置例如&#xff1a;传参的参数&#xff0c;传参的url&#xff0c;需要缓存的key这些键值类 定制化配置例如&#xff1a;需要对table 的一些定制化传…

SpringBoot最简单方式实现自定义异常页面(404)

最简单的方式实现所有自定义异常页面&#xff08;如 404、500 等&#xff09;是通过 静态资源文件 或 模板引擎 来实现。 方法 1&#xff1a;使用静态资源文件&#xff08;最简单&#xff09; Spring Boot 默认会在 src/main/resources/static 或 src/main/resources/public …

django下防御race condition漏洞(竞争型漏洞)

目录 竞争型漏洞 概念 常见类型及示例 环境搭建 ​编辑漏洞复现 ucenter/1/ ucenter/2/ ucenter/3/ ucenter/4/ 总结 悲观锁 乐观锁 竞争型漏洞 概念 竞争型漏洞&#xff0c;也称为竞态条件漏洞&#xff08;Race Condition Vulnerability&#xff09;&#xff0c;…

用Python写一个算24点的小程序

一、运行界面 二、显示答案——递归介绍 工作流程&#xff1a; 1. 基本情况&#xff1a;函数首先检查输入的数字列表 nums 的长度。如果列表中只剩下一个数字&#xff0c;它会判断这个数字是否接近 24&#xff08;使用 abs(nums[0] - 24) < 1e-10 来处理浮点数精度问题&…

PostgreSQL 18新特性之虚拟生成列

PostgreSQL 12 提供了生成列&#xff08;GENERATED ALWAYS AS STORED&#xff09;功能&#xff0c;但是只能支持存储型的生成列&#xff0c;需要占用存储空间&#xff0c;更新成本高。 为此&#xff0c;PostgreSQL 18 即将引入一个新的增强&#xff1a;虚拟生成列。这种类型的…

GitHub上传项目

总结&#xff08;有基础的话直接执行这几步&#xff0c;就不需要再往下看了&#xff09;&#xff1a; git init 修改git的config文件&#xff1a;添加:[user]:name你的github用户名 email你注册github的用户名 git branch -m master main git remote add origin 你的URL gi…

常见排序算法深度评测:从原理到10万级数据实战

常见排序算法深度评测&#xff1a;从原理到10万级数据实战 摘要 本文系统解析冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和基数排序8种经典算法&#xff0c;通过C语言实现10万随机数排序并统计耗时。测试显示&#xff1a;快速排序综合性能最优&…

动态规划填表技巧:固定最后一个数 vs 固定倒数第二个数

在动态规划中&#xff0c;填表时固定最后一个数还是倒数第二个数&#xff0c;取决于问题的定义和状态转移方程的设计。 目录 1. 固定最后一个数 适用场景 特点 示例 2. 固定倒数第二个数 适用场景 特点 示例 3. 固定最后一个数与倒数第二个数的对比 4. 总结 1. 固定最…

【C】链式二叉树算法题2

目录 1 另一棵树的子树 1&#xff09; 题目描述 示例1&#xff1a; 示例2&#xff1a; 2&#xff09; 算法解析 3&#xff09; 代码 2 二叉树的遍历 1&#xff09; 问题描述 2&#xff09; 算法解析 3&#xff09; 代码 3 总结 1 另一棵树的子树 leetcode链接…

配置Hadoop集群

Hadoop的运行模式 本地运行&#xff1a;在一台单机上运行&#xff0c;没有分布式文件系统&#xff0c;直接读写本地操作系统的文件系统。特点&#xff1a;不对配置文件进行修改&#xff0c;Hadoop 不会启动 伪分布式&#xff1a;也是在一台单机上运行&#xff0c;但用不同的 …

python办公自动化--数据可视化(pandas+matplotlib)--生成条形图和饼状图

前言 前几天我们学习了pandas读取数据&#xff0c;还学习了如何用patplotlib绘制柱状图和折线图。 今天我们继续学习&#xff0c;如何绘制条形图和饼状图。 一、课程回顾-pandas读取数据 1.示例数据文件 这里我们用到的依旧是d盘底下的这个excel工作簿&#xff0c;这个工作簿…

基于大模型的结节性甲状腺肿诊疗全流程预测与方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 国内外研究现状 二、大模型预测原理与方法 2.1 相关大模型概述 2.2 数据收集与预处理 2.3 模型训练与验证 三、术前预测与评估 3.1 结节性质预测 3.1.1 良恶性判断 3.1.2 与传统诊断方法对比 3.2 手术风险预测…