遇到的坑 環境變數

2022-03-06 19:42:33 字數 3250 閱讀 5938

在使用cmd時,雖然我確實安裝了響應的軟體或外掛程式或命令,但是卻提示「不是內部或外部命令,也不是可執行的程式」。網上的答案也是千奇百怪,於是這裡做乙個詳細說明。

首先,因明確這是環境變數的問題,什麼時環境變數呢? 

環境變數  環境是在作業系統中乙個具有特定名字的物件,它包含了乙個或者多個應用程式所將使用到的資訊。例如windows和dos作業系統中的path環境變數,當要求系統執行乙個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還應到path中指定的路徑去找。使用者通過設定環境變數來更好的執行程序。更簡單的一種理解是:我是老大,我讓你去找張三過來給我做事,但是沒告訴你他在哪,於是你就在我們這一帶去找,可是不一定找的到啊,找到了好說,你把他帶來給我交差;找不到呢?你就回來告訴我說找不到。那麼更好的辦法是什麼呢?當然是我告訴你乙個他所在的地方,你再去找,這樣一下就能找到了。 

通過cmd檢視環境變數,直接輸入 path即可,如下所示:

另外,環境變數一般分為使用者環境變數和系統環境變數,使用者環境變數只對當前使用者起作用,而系統環境變數是對這台電腦上的所有使用者都起作用,一般我們直接設定系統環境變數就好。

而dos操作往往與環境變數有莫大的關係。我們經常用的用於檢測網路狀況的ping命令就是如此。下面舉例我們進行實戰!(大家看看就好,如果不熟悉就不要跟著我的步子走了,以免出現錯誤。

第一步:windows+r,輸入cmd,在輸入ping www.baidu.com,(實際上ping就是這樣依賴於環境變數的命令)結果如下所示:

第二步:windows+r,輸入control,進入控制面板,進入系統,進入高階系統設定,這時彈出了系統屬性框,在點選tab選項卡中的高階,點選其中的環境變數,這時顯示了使用者的環境變數和系統的環境變數,一般我們只在意系統的環境變數,找到系統環境變數中的path,選中後,點選刪除,然後點選確定。這時在按照第一步的方法,我們看到輸出如下所示:

為什麼第一次沒有ping通並提示「'ping'不是內部或外部命令,也不是可執行的程式批處理檔案」呢? 這正是因為ping命令並不處於c:\users\administrator中,並且剛剛我把環境變數中的path刪除,所以它就找不到ping命令了(這時拐過頭看我在文章開始提到的例子)。然後我又進入了c:\windows\system32中,這時又ping了以下,ping通了,這是因為雖然我沒給path,但是他會在當前資料夾下尋找,並且在本地還找到了,所以也就ping成功了。 那麼也就是說,ping命令是處於c:\windows\system32中的。我們去找一下,發現的確如此,如下所示:

第三步:這時知道了path路徑,那我們只要把這個路徑新增到系統變數中即可,如第二步中的步驟所示,我們先進入系統變數,發現剛剛被我刪掉的path已經沒有了,這時就需要手動去建立了,建立的過程如下:

這時我們再去ping,發現已經可以ping通了。

講道理,在我們正確安裝了命令、包或應用程式之後如果無法正確執行,並提示「不是內部或外部命令,也不是可執行的程式或批處理檔案。」的錯誤我們都可以使用這種方法來解決,即首先找到該命令(或包、或應用程式)之後,將該路徑追加到path下,注意一定是追加,而不要重新建立,否則他會覆蓋掉之前的path。

下面我們再舉乙個nodejs環境的例子。

第一步:首先我已經把nodejs自動建立的path刪除(注意:一般情況下,在安裝了nodejs後其path會自動建立,不需要人工新增,但是避免不了有時候出的各種bug啊!),但是該應用程式還是存在的,然後測試node的版本,結果如下所示:

我們發現果然出現了這樣的問題。

第二步:我們可以通過右鍵nodejs應用程式選擇開啟檔案所處的位置,確定node的安裝路徑,然後再cmd中測試,如下所示:

然後,我們在cmd中測試以下,結果如下:

第乙個命令得到了node的版本,第二個命令進入了node的執行環境,我在其中輸入了一條語句,且得到了執行。注意:一旦node安裝完成,npm也就自動安裝完成了。

下面再舉乙個我在安裝grunt時遇到的坑,就是安裝好grunt-cli後,卻無法使用grunt的命令。如下所示:

第一步:在管理員許可權下執行cmd,輸入 npm install -g grunt-cli

第二步:檢測是否安裝成功,即輸入grunt,這時提示如下:

可以看到,在上面的檔案下,就已經可以使用了。

第四步:追加path;然後檢測grunt的版本如下:

小技巧:

1.在cmd中快速檢視path,只需輸入set,即可,如下所示:

我們可以看到最長的那一行就是path了。

然而更簡便的方法是 set path,這樣就只會顯示一條path資訊了,如下所示:

當然也可以是set其他的,如set os可以得到作業系統的名稱。

更為重要的是,我們還可以直接在cmd中新增path,方法是「set 變數名=%變數名%;變數內容」。如,為path新增乙個新的路徑,輸入「 set path=%path%;d:」即可將d:新增到path中。如下所示

這時我們已經可以看到d:被新增進入了。這方面的更多知識可以看這篇文章。

Mac配置環境變數填坑

mac系統預設的是python2.7,通過如下指令將python切換為python3.6 alias python usr local bin python3.6通過pip指令安裝virtualenv pip3 install virtualenv如果提示 command not found vir...

環境變數 Vue 環境變數的使用

文章背景 開發過程中經常遇到這樣的問題 相同的 部署到不同環境時需要使用不同的變數 比如介面網域名稱變數 serve 在測試環境和生產環境使用的是不同的網域名稱。這種情況下如果在 裡定義變數,打包部署前再修改 切換成不同的值再打包不利於 的維護,也很繁瑣。這時候利用環境變數來實現,在不用每次打包前改...

linux環境程式設計 環境變數 列印環境變數

在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...