《讓Linux/Mac系統環境更乾淨》之PATH變量詳解

2021-03-02 0加1

玩Linux一定會和命令行打交道, 比如在Ubuntu中安裝git, 輸入

sudo apt install git -y

回車,運行完成後,就可以在命令行中使用git命令了

git如何在命令行中生效?

我們先查看git的安裝位置

which git

git被安裝到了/usr/bin 目錄下

安裝到/usr/bin目錄下的命令, 都可以被Linux自然而然地識別到, 比如我們常用的拷貝命令cp和 移動命令mv 都存儲在/usr/bin 中

猜測: 在/usr/bin 文件夾的命令,都可以被命令行識別並生效

驗證猜測,在 /usr/bin 目錄下新建文件hello, 給hello添加執行權限chmod 777 hello ,並在其中加入代碼 echo "hello",  ,然後在命令行輸入hello, 查看結果

hello被當做命令順利執行, 猜測成立!

但是...

/usr/bin 是很重要的目錄, 內含大量系統級命令(如mv, cp), 如果把第三方命令也安裝到/usr/bin 目錄, 系統級命令和第三方命令 就很難區分開, 當你想把第三方命令批量分享出來時, 就需要先人工進行篩選,再進行分享,很不方便, 而且Linux以管理多用戶著稱,如果所有用戶都把軟體安裝到/usr/bin, 早晚會亂成一鍋粥.

PATH變量

事實上, 安裝到/usr/bin目錄下的命令, 是通過PATH變量,被Linux自然而然地識別到。

PATH變量可以讓文件夾內的命令,不需要輸入完整路徑,僅輸入命令名,就可以執行, 我們輸入git 與/usr/bin/git 是等效的。

PATH變量可以配置多個文件夾,使用: 分隔

上圖中 $PATH中的$是取出PATH變量的語法,PATH變量不包含$

**實際操作:如何配置PATH變量?**

我們使用給PATH變量追加文件夾路徑的方式,配置PATH變量(追加 的方式不會破壞已有的PATH變量)

如果你使用base作為終端,需要在配置文件~/.bashrc 尾部追加
# 以 /home/zhaoolee/share 文件夾為例
export PATH=/home/zhaoolee/share:$PATH

如果你使用zsh作為終端,需要在配置文件~/.zshrc 尾部追加
# 以 /home/zhaoolee/share 文件夾為例
export PATH=/home/zhaoolee/share:$PATH

這裡有一個小技巧:我們把$PATH放到尾部,新文件夾路徑放到前面,如果新文件夾路徑內的命令與原有命令存在重名(在新文件夾路徑新增文件hello,內含echo "hello002") ,由於新文件夾路徑比較靠前,則系統優先使用新文件夾路徑下的命令。

image-20201214110937213小結

PATH是非常重要的環境變量,學習PATH的使用原理,可以讓我們思路清晰的解決軟體的安裝配置問題,也能讓作業系統環境更乾淨。

閱讀原文(支持讀寫評論)

https://www.v2fy.com/p/2020-12-14-path/

相關焦點

  • Mac系統Python、PyCharm安裝及使用方法詳解
    1、查看 mac 自帶系統版本#查看系統自帶的pythonopen /System/Library/Frameworks/Python.framework/Versions#系統當前的python版本。
  • Linux/UNIX 定時任務 cron 詳解
    示例:每小時運行一次 ntpdate 命令@hourly /path/to/ntpdate關於 /etc/crontab 文件和 /etc/cron.d/* 目錄的更多內容/etc/crontab 是系統的 crontab 文件。通常只被 root 用戶或守護進程用於配置系統級別的任務。
  • Linux curl命令詳解
    一、curl命令語法: 二、curl命令參數詳解:由於linux curl功能十分強大,所以命令參數十分多,下表只是愛E族(aiezu.com)帥選出來的部分參數,更多參數請運行「man curl」命令查看。
  • Linux之chmod命令
    chmod命令用於改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。
  • Docker 網絡模型之 macvlan 詳解,圖解,實驗完整
    上一篇文章我們詳細介紹了 macvlan 這種技術,macvlan 詳解,由於它高效易配置的特性,被用在了 Docker 的網絡方案設計中,這篇文章就來說說這個
  • [golang] 環境變量操縱與踩過的坑
    golang 中的環境變量操作都在 os 包下面, 只有很少的幾個, 而且字面意思也很明確。
  • mac 上學習k8s系列(16)進入docker for mac 的宿主機linux kit
    我們知道docker 是基於linux 系統的namespace + cgroup實現的進程隔離技術,在mac下並不能很好的支持
  • 5分鐘在虛擬機中搭建Linux開發環境
    背景在使用Windows 10開發的過程之中避免不了使用Linux環境,比如裝個資料庫、裝個docker跑開發環境、比如做一些實驗、裝一些雜七雜八的軟體不影響宿主機環境
  • Linux 的 history 命令使用詳解
    在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量 HISTSIZE進行控制。默認是不顯示命令的執行時間,命令的執行時間,history 已經記錄,只是沒有顯示。註:如想查詢某個用戶在系統上執行了什麼命令,可以使用root用戶身份登錄系統,檢查Home目錄下的用戶主目錄下的「.bash_history」文件,該文件記錄了用戶所使用的命令和歷史信息。
  • 程式設計師如何優雅使用mac
    在折騰windows和linux一段時間內,飽經各種摧殘的我,雖然掌握了一些不為人知的黑科技,終於對此感到厭倦,轉投mac陣營。入手了2017款的Apple MacBook Pro 13.3寸筆記本。以前的相關折騰經歷參見:在沒入手mac之前,也曾幻想mac應該是一個兼具了linux和windows優點的作業系統,實際上,macbook也有不少坑,如:散熱差,終端執行npm run dev時,風扇呼呼作響,cpu溫度直飆外接27寸顯示器時,即使不作任何操作,也一直發熱,感覺比小米還更加」為發燒而生「邊緣割手,youtube
  • 編譯環境初始化-Android10.0編譯系統(二)
    《編譯系統系列》1 概述  上一節針對Android編譯系統做了一個籠統的說明,這一節針對編譯環境初始化做一下詳細的展示。cgrep對系統本地所有的C/C++ 文件執行grep命令ggrep對系統本地所有的Gradle文件執行grep命令jgrep對系統本地所有的Java文件執行grep命令resgrep對系統本地所有的res目錄下的xml文件執行grep命令mangrep對系統本地所有的
  • mac執行git報錯:git xcrun: error: invalid active developer path
    mac升級到10.12(macOS Sierra),執行git命令,出現如下錯誤12$ gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun
  • Linux 系統安全強化指南(建議收藏的教程)
    由於主機內核的整個攻擊面已完全暴露,因此沙盒中的內核利用程序可以繞過任何限制。已經進行了一些努力來限制使用seccomp的攻擊面,但不足以完全解決此問題。GVisor是解決此問題的方法。它為每個應用程式提供了自己的內核,該內核以內存安全的語言重新實現了Linux內核的大部分系統調用,從而提供了明顯更強的隔離性。
  • Linux系統安全強化指南
    沙箱可讓您在隔離的環境中運行程序,該環境對系統的其餘部分具有有限的訪問權限或完全沒有訪問權限。您可以使用它們來保護應用程式安全或運行不受信任的程序。建議與AppArmor或SELinux一起在單獨的用戶帳戶中使用Bubblewrap到沙箱程序。您也可以考慮改用gVisor,它的優點是為每個來賓提供了自己的內核。
  • Docker命令大全及Dockerfile詳解(附示例)
    Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。菜鳥教程上總結了Docker在各個平臺和系統上的安裝,大家可以參考。這裡總結了下Docker在阿里雲Ubuntu系統上的安裝過程。步驟看似很多且複雜,但大家只需要一步一步copy和paste命令就行了,整個安裝過程很流暢。
  • Linux系統——KVM虛擬機安裝與管理
    kvm是linux內核的一種技術,有著很高的兼容性,性能也非常好,相對物理機而言它就是一個進程,日常管理維護與擴展非常方便,因此,今天來介紹下KVM虛擬機的安裝與一些日常管理操作1、安裝環境與準備系統環境 [root@Centos ~]#
  • 三步教你在MAC上面設置python虛擬環境——virtualenv & virtualenvwrappe
    公司因為測試需求搞了一臺MBP,要在上面跑一些python腳本,平常用慣了Windows系統requests #安裝你想要的包$deactivate #退出虛擬環境$rmvirtualenv py3_test #刪除虛擬環境作用:virtualenv的擴展,方便我們更有效的管理虛擬環境的新增,刪除,與切換配置環境$vim ~/.bashrc_profile
  • Linux系統運維之,history使用技巧,你知多少?
    我們在日常使用Linux系統時,如果要使用之前執行過的命令,那該怎麼辦呢?