linux中PATH變量-詳細介紹

轉自:https://blog.csdn.net/haozhepeng/article/details/100584451

轉載者勘誤

  • 原文最后提到的 echo 命令對于環境變量的修改無影響。這是肯定的,echo 命令相當于只是一個打印的函數(比如 Python 中的 print)。這里要修改環境變量應該是 export 命令。

文章目錄

  • 說明
  • 查看、添加、修改PATH環境變量
    • 一. 添加環境變量
    • 二. 環境變量改名
    • 三.環境變量刪除

說明

在講環境變量之前,先介紹一下命令which,它用于查找某個命令的絕對路徑,示例如下:
在這里插入圖片描述
在上面的示例中,用which查到rm命令的絕對路徑為/usr/bin/rm。

那么問題來了:為什么我們使用命令時,只是直接打出了命令,而沒有使用這些命令的絕對路徑呢?
答:環境變量PATH在起作用。

PATH環境變量存儲的是路徑,當我們在命令行下輸入一個命令如ls時,linux就會PATH表示的路徑中查找
變量寫入到 .bash_profile 中,相當于每次我們打開一個終端都會執行一次環境變量。

可以輸入echo $PATH查看當前環境變量,其中以分號隔開。
在這里插入圖片描述

查看、添加、修改PATH環境變量

一. 添加環境變量

(Bash shell中用export,C shell中用setenv)

  • 1.直接在終端修改當前生效

export PATH=$PATH:.(其中export可不要,.是當前目錄的意思,也可以自定義絕對路徑)
配置完后可以通過echo $PATH查看配置結果。
生效方法:立即生效
有效期限:臨時改變,只能在當前的終端窗口中有效,當前窗口關閉后就會恢復原有的path配置
用戶局限:僅對當前用戶
在這里插入圖片描述

  • 2.對用戶生效
    因為寫入到 .bash_profile 中的,而.bash_profile中是調用/.profile,所以可以直接在/.profile中定義變量
    在這里插入圖片描述
    在home/用戶/.profile中修改調用文件:vi ~/.bashrc
    #在最后一行添上
    export PATH=路徑:$PATH
    生效方法:(有以下兩種)
    1、關閉當前終端窗口,重新打開一個新終端窗口就能生效
    2、輸入“source ~/.bashrc”命令,立即生效
    使用 echo $PATH 看不到定義變量
    有效期限:永久有效
    用戶局限:僅對當前用戶
    在這里插入圖片描述

  • 3.修改系統級

vi /etc/profile/profile

export PATH=$PATH:路徑

保存文件,重啟即可(有的系統執行./profile即可,不需重啟;有的系統必須重啟)
重啟后可查看PATH環境變量看是否更改:
echo $PATH
我在root用戶下系統不允許我寫入,沒有深究,所以該條pass
在這里插入圖片描述

  • 4.永久生效
    • 第一種方法
      通過修改profile文件:
      vi /etc/profile
      在最后一行添加
      export PATH=系統路徑(echo $PATH 查看復制在這):新路徑:$PATH
      echo $PATH 看得到定義環境
      生效方法:系統重啟
      有效期限:永久有效
      用戶局限:對所有用戶
      注:下圖中我忘記在路徑后面加上:$PATH了,不過好像沒報錯,但還是建議加上!!!!
      在這里插入圖片描述

    • 第二種方法
      通過修改environment文件:
      vi /etc/environment
      echo $PATH 看不到定義環境
      生效方法:系統重啟
      有效期限:永久有效
      用戶局限:對所有用戶

      • 里面可能有:PATH="系統路徑"
        如果有則PATH="系統路徑:新路徑"

      • 如果沒有,則需要先echo $PATH查看自己當前的變量,然后復制進去,系統路徑:新路徑
        在這里插入圖片描述

        • 如果不加系統路徑,重啟后就會只剩下 你定義的變量 其他的全部不在了,然鵝你的系統也沒法正常使用了!!!(下翻有解決方法)
          在這里插入圖片描述
        • 真發生了這種事后,解決方法,找一臺正常的機器,echo $PATH ,然后復制,在問題服務器上臨時定義一下:
          PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 然后vi /etc/environment ,把剛才那段環境加進去, 如果vim /etc/profile(第一種方法) 里面也不是全路徑,也需要修改為全路徑(參考第一種方法) 然后 重啟!!!搞定
          在這里插入圖片描述

二. 環境變量改名

echo ${path/old_name/new_name} #變更一個目錄名old_name
echo ${path//old_name/new_name} #變更所有目錄名old_name
親測無用,可能是我方法不對
在這里插入圖片描述
如果要修改,建議用下面方法
單獨用戶:vi ~/.bashrc 在里面修改
全部用戶:vi /etc/profile or vi /etc/environment 在哪配置了在哪修改

三.環境變量刪除

echo ${path#/deletion_name:}
親測 無用,可能是我方法不對
在這里插入圖片描述
臨時定義不用刪除 重新打開窗口即消失
如果要刪除永久的,建議用下面方法
單獨用戶:vi ~/.bashrc 在里面刪除
全部用戶:vi /etc/profile or vi /etc/environment 在哪配置了在哪刪除

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

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

相關文章

php assert eval,代碼執行函數之一句話木馬

前言大家好,我是阿里斯,一名IT行業小白。非常抱歉,昨天的內容出現瑕疵比較多,今天重新整理后再次發出,修改并添加了細節,另增加了常見的命令執行函數如果哪里不足,還請各位表哥指出。eval和asse…

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理 轉自:https://www.cnblogs.com/marsggbo/p/11838823.html#nvccnvidia-smi GPU型號含義 顯卡: 簡單理解這個就是我們前面說的GPU,尤其指NVIDIA公司生產的GPU系列,因為后面介紹的…

php中msubstr,PHP學習:thinkphp中字符截取函數msubstr()用法分析

《PHP學習:thinkphp中字符截取函數msubstr()用法分析》要點:本文介紹了PHP學習:thinkphp中字符截取函數msubstr()用法分析,希望對您有用。如果有疑問,可以聯系我們。本文實例講述了thinkphp中字符截取函數msubstr()用法…

VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解決

VS Code的Error: Running the contributed command: _workbench.downloadResource failed解決 轉自:https://blog.csdn.net/ibless/article/details/118610776 1 問題描述 此前,本人參考網上教程在VS Code中配置了“Remote SSH”插件(比如這…

Oracle閃回報錯,oracle 閃回區滿了,ORA-19815

oracle 閃回區滿了,查看日志報錯:ORA-19815,命令行輸入:sqlplus / as sysdbastartup mount //如果你的數據庫出現了無法連接的情況時,可以加上這句select file_type, percent_space_used as used,percent_space_rec…

[2021-ICCV] MUSIQ Multi-scale Image Quality Transformer 論文簡析

[2021-ICCV] MUSIQ: Multi-scale Image Quality Transformer 論文簡析 論文:https://arxiv.org/abs/2108.05997 代碼:https://github.com/google-research/google-research/tree/master/musiq 概述 當前SOTA的IQA(圖像質量評估&#xff0…

安裝oracle不動了,windows2008安裝ORACLE到2%不動的問題 | 信春哥,系統穩,閉眼上線不回滾!...

最近又有網友遇到在windows2008服務器上安裝ORACLE軟件時到2%就卡住不動的問題,下面是該網友的描述:oralce 11g r2 windows server 2008 R2安裝到最后一步復制數據文件時卡到2% 不走了內存一直飆升求解決這個問題前段時間也有人遇到過,但是他…

手把手教你入門Git --- Git使用指南(Linux)

手把手教你入門Git — Git使用指南(Linux) 系統:ubuntu 18.04 LTS 本文所有git命令操作實驗具有連續性,git小白完全可以從頭到尾跟著本文所有給出的命令走一遍,就會對git有一個初步的了解,應當能做到會用并…

linux修改主機名后oracle em控制臺起不來,更改計算機名后導致Oracle dbconsole無法啟動問題解決方法...

今天不知道哪根筋搭歪了,看著Oracle EM控制臺的主機名WIN-LOSGI0TCOG0亂七八糟的很不爽,就把它給改了。然后Oracle EM就上不去了,Oracledbconsole服務起不來,我嘗試把所有“WIN-LOSGI0TCOG0”替換成“ggsjy”,找了好多…

Shell腳本多行換行報錯:- unrecognized arguments- \

shell error: unrecognized arguments: \ 在使用linux長命令時,我們通常會用一個shell腳本加\分行的形式來更清晰展示參數。 這時有一個注意事項:在\后必須緊跟回車, 否則會導致后面的參數無法傳入。因為這時程序會將后面的參數算作一條新命…

shell腳本長命令帶換行 注釋方法

shell腳本長命令帶換行 注釋方法 命令行傳參 在訓練深度學習網絡時,我們每次實驗通常會有許多超參數需要設置,如batch size, epoch, gpu id, arch甚至還有一些具體的模型結構等。這事我們通常使用python模塊argparse,在命令行進行傳參。 比…

php對中英文字符串進行截取,利用php怎么對中英文混合的字符串進行截取

利用php怎么對中英文混合的字符串進行截取發布時間:2021-01-04 15:31:24來源:億速云閱讀:103作者:Leah利用php怎么對中英文混合的字符串進行截取?很多新手對此不是很清楚,為了幫助大家解決這個難題&#xf…

Linux查找命令find、loacte、whereis、which、type梳理

Linux查找命令find、loacte、whereis、which、type梳理 Linux操作系統中有5種常用的查找命令:find,locate,whereis,which,type,他們分別用于查找不同的東西,本文將就他們各自的功能進行一下梳理…

php數據關系圖,如何利用navicat查看數據表的ER關系圖

文章背景:(相關推薦:navicat)由于工作需要,現在要分析一個數據庫,然后查看各個表之間的關系,所以需要查看表與表之間的關系圖,專業術語叫做ER關系圖。默認情況下,Navicat顯示的界面是這樣的&…

Linux軟鏈接的使用

Linux軟鏈接的使用 轉自:https://www.cnblogs.com/sueyyyy/p/10985443.html,本博文僅對原博排版稍微優化。 更為細致的硬鏈接、軟鏈接的介紹可參考:Linux中的硬鏈接和軟鏈接 另外,提供筆者對軟連接的一個最簡單的理解&#xff…

oracle死鎖優化,Oracle性能優化之LockContention(轉)

1、概念DML事務使用row-level locks,查詢不會鎖定數據。鎖有兩種模式:exlusive、share。鎖的類型:? DML or data locks:– Table-level locks(TM)– Row-level locks(TX)? DDL or dictionary locks一個transaction至少獲得兩個鎖:一個共享的…

Linux中g++與gcc的區別

轉自:https://blog.csdn.net/bit_clearoff/article/details/53965514 Windows中我們常用vs來編譯編寫好的C和C代碼;vs把編輯器,編譯器和調試器等工具都集成在這一款工具中,在Linux下我們能用什么工具來編譯所編寫好的代碼呢&#…

linux系統可以用迅雷嗎,在Linux系統下使用wine運行迅雷5的方法

在Linux系統下使用wine運行迅雷5的方法一、下載ies4linux去 http://www.tatanka.com.br/ies4linux/page/Installation 下載ies4linux的文件包(目前版本為2.99),然后解壓縮。注意:這個網站被大陸和諧了,需要跳墻。至于怎么跳,諸位就…

從C源代碼到可執行文件的四個過程:預處理、編譯、匯編、鏈接

從C源代碼到可執行文件的四個過程:預處理、編譯、匯編、鏈接 總覽 我們將在Linux操作系統中,以C語言的Hello World程序為例,用gcc編譯器分步執行這四個步驟。 我們有再熟悉不過的HelloWorld程序,hello.c: #include …

uboot引導linux內核,u-boot啟動內核的幾種方式

1.uboot啟動內核的代碼縮減如下:s getenv ("bootcmd");debug ("### main_loop: bootcmd\"%s\"\n", s ? s : "");if (bootdelay > 0 && s && !abortboot (bootdelay)){run_command (s, 0);}2.假設boot…