Mac (三)如何設置環境變量

目錄

    • 一、查看環境變量 🔍
      • 1. 查看所有環境變量
      • 2. 查看特定變量
    • 二、臨時設置(當前終端有效) ?
      • 1. 基本語法
      • 2. 實戰示例
    • 三、永久設置(全局生效) 🔒
      • 配置步驟:
    • 四、實戰案例 🛠?
      • 案例1:設置Java開發環境
      • 案例2:配置Python虛擬環境
      • 案例3:設置代理
    • 五、常見錯誤排查 ?
      • 1. 變量未生效
      • 2. 路徑沖突
      • 3. 特殊字符處理
    • 六、高級技巧 💎
      • 1. 快速編輯配置
      • 2. 環境變量加密
      • 3. 跨設備同步

在這里插入圖片描述

環境變量是操作系統中存儲配置信息的關鍵參數,它們決定了:

  • 命令行工具的行為(如 pythonnode 版本)
  • 應用程序的運行路徑(如 Java 開發需配置 JAVA_HOME
  • 系統級默認設置(如語言、時區)

掌握環境變量設置是成為 Mac 高手的必備技能


一、查看環境變量 🔍

1. 查看所有環境變量

printenv   # 顯示所有已定義變量
env        # 等效命令

2. 查看特定變量

echo $PATH         # 查看執行路徑
echo $HOME         # 查看用戶目錄
echo $JAVA_HOME    # 查看Java路徑

💡 PATH 是最重要的變量,系統通過它查找可執行文件的位置


二、臨時設置(當前終端有效) ?

1. 基本語法

export 變量名=

2. 實戰示例

# 設置臨時API密鑰
export API_KEY="abc123"# 添加臨時執行路徑
export PATH=$PATH:/usr/local/custom-bin# 驗證
echo $API_KEY

?? 關閉終端后設置將失效


三、永久設置(全局生效) 🔒

根據使用的 Shell 類型修改配置文件:

Shell類型配置文件適用場景
Bash~/.bash_profilemacOS 10.14及之前默認
Zsh~/.zshrcmacOS 10.15(Catalina)及之后默認

配置步驟:

  1. 查看當前終端是 Zsh 還是 Bash

    echo $SHELL
    
    • 輸出示例
      • /bin/zsh → 當前是 Zsh
      • /bin/bash → 當前是 Bash
  2. 打開配置文件

    # Zsh用戶(推薦)
    nano ~/.zshrc# Bash用戶
    nano ~/.bash_profile
    

    nano ~/.zshrc

    • 用途:編輯 Zsh shell 的配置文件;
    • 適用場景:macOS Catalina (10.15) 及以后版本(默認使用 Zsh);
    • 關鍵點
      • nano 是一個簡單易用的命令行文本編輯器。
      • ~/.zshrc 是 Zsh 的用戶配置文件,每次打開新終端時都會自動加載此文件。

    nano ~/.bash_profile

    • 用途:編輯 Bash shell 的配置文件
    • 適用場景:macOS Mojave (10.14) 及更早版本(默認使用 Bash)、手動切換回 Bash 的用戶;
    • 關鍵點
      • ~/.bash_profile 是 Bash 的用戶配置文件
      • 只在登錄時加載一次(與 .bashrc 不同)
  3. 在文件末尾添加設置

    # 設置Java路徑
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home# 添加自定義執行路徑
    export PATH=$PATH:$HOME/bin:/usr/local/games# 設置別名快捷方式
    alias ll="ls -alh"
    
  4. 保存并生效

    # 保存文件:Ctrl+O → 回車 → Ctrl+X 
    source ~/.zshrc  # 立即生效
    

四、實戰案例 🛠?

案例1:設置Java開發環境

# 在.zshrc中添加
export JAVA_HOME=$(/usr/libexec/java_home -v 17)  # 自動檢測Java17路徑
export PATH=$JAVA_HOME/bin:$PATH

案例2:配置Python虛擬環境

# 設置Pyenv路徑(Python版本管理)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

案例3:設置代理

# 臨時設置
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"# 永久設置(添加到.zshrc)
echo 'export http_proxy="http://127.0.0.1:7890"' >> ~/.zshrc

五、常見錯誤排查 ?

1. 變量未生效

# 檢查配置文件是否加載
source ~/.zshrc   # 重新加載# 檢查路徑優先級
echo $PATH        # 查看路徑順序

2. 路徑沖突

# 查看命令實際路徑
which python# 檢查路徑順序(先出現的優先級高)
echo $PATH | tr ':' '\n'

3. 特殊字符處理

# 包含空格的值需用引號
export NAME="My Project"# 包含$符號需轉義
export PASSWORD="pa\$\$w0rd"

六、高級技巧 💎

1. 快速編輯配置

# 用VSCode打開配置
code ~/.zshrc# 用Sublime打開
subl ~/.zshrc

2. 環境變量加密

# 安裝加密工具
brew install gpg# 創建加密文件
gpg -c .env_secret  # 生成.gpg加密文件# 在腳本中解密使用
export DB_PASS=$(gpg -d -q .env_secret.gpg)

3. 跨設備同步

# 將配置文件放入iCloud
ln -s ~/Library/Mobile\ Documents/com~apple~CloudDocs/.env ~/.env_cloud
source ~/.env_cloud

掌握環境變量管理,讓你的開發效率提升200%!🚀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

零改造遷移實錄:2000+存儲過程從SQL Server滑入KingbaseES V9R4C12的72小時

摘要:在信創窗口期,我們把擁有2000存儲過程、300鏈接服務器的核心業務,從 SQL Server 2016/2019 平移到 KingbaseES V9R4C12(SQL Server 兼容版)。本文以 30 分鐘部署、TPCH 100G 性能 PK、真實踩坑修復、灰度割接 4 小…

K8S HPA 彈性水平擴縮容 Pod 詳解

文章目錄1、前置準備2、需求場景3、Scale 靜態擴縮容3.1、創建 Deployment 腳本3.2、Scale 擴縮容3、HPA 自動擴縮容3.1、安裝 Metrics3.2、創建 Deployment 演示案例3.3、創建 HPA3.4、觸發 HPA 自動擴縮容1、前置準備 本次案例演示,我選擇了阿里云ECS&#xff08…

對話訪談|盤古信息×智晟威:深度挖掘數字化轉型的奧秘

在數字化轉型的浪潮中,傳統設備企業如何突破“純硬件”的邊界,實現從“賣產品”到“賣生態”的跨越?數字化轉型究竟是“高不可攀的奢侈品”,還是“觸手可及的生存技能”?近日,廣東盤古信息科技股份有限公司…

什么是模型預測控制?

一、概念模型預測控制(Model Predictive Control, MPC)是一種先進的控制方法,廣泛應用于工業過程控制、機器人控制、自動駕駛等領域。MPC的核心思想是利用系統的動態模型預測未來的行為,并通過優化算法計算出當前時刻的最優控制輸…

類與類加載器

在Java中,類和類加載器是密切相關的兩個概念,理解它們有助于我們更好地掌握Java的運行機制。什么是Java類?Java類就像是一個模板或藍圖,它定義了對象的屬性和行為。比如"汽車"可以看作一個類,它有顏色、品牌…

一文速通Python并行計算:14 Python異步編程-協程的管理和調度

一文速通 Python 并行計算:14 Python 異步編程-協程的管理和調度 摘要: Python 異步編程基于 async/await 構建協程,運行在事件循環中。協程生成 Task,遇到?await?時掛起,I/O 完成觸發回調恢復運行,通過…

Node.js面試題及詳細答案120題(16-30) -- 核心模塊篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

RabbitMQ:Windows版本安裝部署

目錄一、概述二、OPT三、安裝RabbitMQ四、登錄測試一、概述 什么是MQ,有什么做作用? MQ即MessageQueue,消息隊列。可以分為兩部分理解:消息Message用于在不同的應用程序中傳遞數據。隊列Queue,一種FIFO先進先出的數據…

酒店行業安全體系構建與優化策略

酒店行業安全體系構建與優化策略為確保酒店行業領導及賓客的安全,構建全面的治安聯防體系及事故處理預案至關重要。某招待所通過設立保衛部,細化內保、治安、防火及交通管理職能,并下設警衛班、監控中心和電瓶車班,以全方位保障安…

python30-正則表達式

在Python中需要通過正則表達式對字符串進?匹配的時候,可以使??個python自帶的模塊,名字為re。 re模塊的使用:import re 一、匹配函數 1-1、re.match函數:返回匹配對象 match函數實現的是精準匹配,嘗試從字符串的…

EP1C12F324I7N Altera Cyclone FPGA

EP1C12F324I7N 是 阿爾特拉 Altera Cyclone 系列中的一款 SRAM-based FPGA,定位為低成本、低功耗、面向嵌入式與消費/工業類量產應用的器件。該器件提供約 12,060 個邏輯單元(Logic Elements),片上嵌入式存儲約 234 kbit&#xff…

html5語義元素

1、參考&#xff1a;HTML5 語義元素 | 菜鳥教程 2、實戰 HTML5 <section> 元素 <section> 標簽定義文檔中的節&#xff08;section、區段&#xff09;。比如章節、頁眉、頁腳或文檔中的其他部分。 根據W3C HTML5文檔: section 包含了一組內容及其標題。 <!D…

java調用PyTorch 訓練模型實現神經網絡全流程

以下是完整的操作流程:用 PyTorch 訓練模型 → 導出為 ONNX 格式 → 用 Java 加載并推理,兼顧開發效率(PyTorch 快速訓練)和生產部署(Java 穩定運行)。 一、PyTorch 訓練模型并導出為 ONNX 1. 安裝依賴 bash pip install torch onnx # PyTorch 和 ONNX 庫2. 訓練一個…

Maven - Spring Boot 項目打包本地 jar 的 3 種方法

文章目錄Pre概述方案思路構建流程圖工作機制說明目錄結構示例POM 配置模板構建與驗證注意事項方案優缺點Pre Maven - Manual Maven JAR Installation&#xff1a;用 mvn install:install-file 安裝本地 JAR 的實用指南 概述 在 Spring Boot 項目中&#xff0c;通常依賴包會從…

平替 Claude Code,API接入 GPT-5,Codex CLI 國內直接使用教程

最新升級接入GPT-5的 Codex 擁有可以媲美 Claude Code 的AI編碼能力&#xff0c;本文將指導你在 Windows系統上部署原生的 Codex CLI程序&#xff0c;并且接入超低價中轉API&#xff0c;讓你在國內直接用上超高性價比的 OpenAI Codex CLI 應用。關于 CodexCodex 是 OpenAI 開發…

kubernertes (K8S)部署

參考&#xff1a; https://blog.csdn.net/yu33575/article/details/135387548 二進制安裝k8s&#xff1a; https://blog.csdn.net/qq_73990369/article/details/143217084 K8S二進制安裝與部署 &#xff1a;https://blog.csdn.net/fantuan_sss/article/details/139073366 k8s…

LeetCode 簡單JS刷題

目錄 返回數組最后一個元素 2787.將一個數字表示成冪的和的方案數 326.3的冪 1780.判斷一個數字是否可以表示成三的冪的和 342.4的冪 返回數組最后一個元素 1.請你編寫一段代碼實現一個數組方法&#xff0c;使任何數組都可以調用 array.last() 方法&#xff0c;這個方法將…

七大排序算法全解析:從入門到精通

目錄 一.排序的概念 二.常見排序算法的實現 2.1 插入排序 &#xff08;1&#xff09;直接插入排序&#xff1a; 當插入第i(i>1)個元素時&#xff0c;前面的array[0],array[1],…,array[i-1]已經排好序&#xff0c;此時用array[i]的排序碼與array[i-1],array[i-2],…的排序…

20250814在榮品RD-RK3588開發板的Android13下解決卡迪的LCD屏在開機的時候brightness最暗【背光的pwm信號的極性反了】

20250814在榮品RD-RK3588開發板的Android13下解決卡迪的LCD屏在開機的時候brightness最暗【背光的pwm信號的極性反了】 2025/8/14 11:33緣起&#xff1a;在榮品RD-RK3588開發板的Android13下&#xff0c;卡迪的LCD屏在開機的時候很暗&#xff0c;幾乎看不見。 在命令行查看亮度…

Flink的狀態管理

一、狀態的概念Flink的狀態其實你就可以將其想象為中間結果就可以了。在Flink中&#xff0c;算子的任務可以分為無狀態和有狀態兩種情況。無狀態算子任務在計算過程中是不依賴于其他數據的&#xff0c;只根據當前的輸入數據就可以得到結果輸出。比如之前講到的Map、FlatMap、Fi…