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.pswp.cn/web/71837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71837.shtml
英文地址,請注明出處:http://en.pswp.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 手術風險預測…