嵌入式開發中,小伙伴經常為配置開發環境頭疼,比如我們最常見的交叉編譯環境arm-linux-gcc工具鏈的搭建。我們經常會碰到命令無法找到,無法識別的錯誤提示。究其原因,其實大多數都是因為我們環境變量沒有配置好而已。為了讓大家更輕松更明了我們軟件運行的環境,在此向大家講一講linux中環境變量的一些小知識,幫助大家學習。
環境變量是什么呢?環境變量一般是指在操作系統中用來指定操作系統運行環境的一些參數,如:臨時文件夾位置和系統文件夾位置等。典型的像linux中的path環境變量,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到path中指定的路徑去找。用戶通過設置環境變量,可實現在任何路徑下更好的運行進程。像我們在linux中運行的命令,還有交叉編譯工具arm-linux-gcc等。我們以交叉編譯工具arm-linux-gcc跟大家舉例講解,環境變量的配置方法。
交叉編譯工具arm-linux-gcc配置方法大家熟知的有兩種
第一種:編輯/etc/environment文件,加入相應的路徑。
$ sudo vim /etc/environment 我們在environment文件內容的末尾添上工具的所在的路徑。
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/farsight/gcc-4.6.4/bin"
注銷后重新登錄后生效。
第二種:使用命令:vim /home/ farsight /.bashrc 編輯.bashrc文件,添加環境變量。
在該文件中最后一行添加:
export PATH=$PATH: /home/farsight/gcc-4.6.4/bin
使用命令:source /home/ farsight /.bashrc 使環境變量生效
以上兩種方法本質上都是去修改PATH這個環境變量,在PATH這個變量中添加交叉編譯工具的路徑,這樣我們在任意路徑下去執行arm-linux-gcc時,系統都能通過PATH找到工具的路徑,從而順暢執行工具。可是小伙伴多半會疑惑,這兩種配置方式究竟有什么區別?為什么第一種需要注銷后重新登陸生效,而第二種不需要呢?我們接下來帶大家深入了解下環境變量相關的知識。
linux中環境變量包括系統級和用戶級,系統級的環境變量是每個登錄到系統的用戶都要讀取的系統變量,而用戶級的環境變量則是該用戶使用系統時加載的環境變量。所謂的環境變量配置文件,就是在shell登陸的時候自動加載的那些文件。而登陸分為兩種登陸卻分為兩種:
login shell登陸和interactive shell登陸。
所謂的login shell登陸,實際上就是指需要輸入密碼的登陸。具體的說,包括開機登陸、ssh登陸,或者是輸入bash --login這種“假裝自己輸入密碼登陸”的方式。 在這種登陸方式下,系統會先讀取/etc/profile文件,然后,系統會依次搜索~/.bash_profile、~/.bash_login、~/.profile 這三個文件,并運行只其中第一個存在的文件。Linux系統中/etc/environment是設置整個系統的環境,而/etc/profile是設置所有用戶的環境,前者與登錄用戶無關,后者與登錄用戶有關。login shell登陸時系統會先執行profile文件再讀取environment獲取用戶及系統的環境變量信息以為運行準備好環境。因此這些文件都是在登陸的時候就讀取生效了,如果改變以后需要重新登陸重新讀取生效。
所謂的interactive shell登陸,其實就是相對于login shell登陸而言的。我們平時在登陸后右鍵打開終端、或者CTRL+ALT+T打開終端都是interactive shell登陸。 在這種登陸方式下,系統會依次讀取/etc/bash.bashrc和~/.bashrc,并加以執行。 通常情況下,~/.bashrc文件里會默認記錄一些常量和一些別名,比如&PATH變量,該變量記錄著一些命令可執行文件的路徑等,當我們修改了文件,只需要source一下文件即可生效。
以上分析給我們的啟示是,當我們為服務器配置變量時,盡量配置到/etc/profile里或者~/.bash_profile里,因為用ssh登錄服務器是基本上用不到.bashrc文件的;當我們給自己的電腦配置環境變量時,盡量配置到.bashrc里,因為這樣我們只要打開終端就會讀入這個文件,這樣就可以不用注銷就能應用配置了(只有注銷重新登錄才會應用/etc/profile一類的配置文件)。
好了,讀到這小伙伴應該對環境變量的相關知識有一定了解了吧,應該知道環境變量有什么作用,怎么配置了吧。希望大家以后配置工具的環境變量不再迷惑了。
嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和內容,導致工資要不上去!
無償分享大家一個資料包,差不多150多G。里面學習內容、面經、項目都比較新也比較全!某魚上買估計至少要好幾十。
掃碼進群領資料
天一刀流要給大家分享的是ug軟件在使用前如何設置環境變量。有自學的小伙伴好不容易把UG軟件安裝到電腦上,結果用的時候問題一大推,到處找教程資料看,耽誤學習的時間,那么我們在平時上網游覽的時候看到關于UG學習的資料最好了就是收藏起來,要用的時候呢就不用去找了。
廢話也不多說了,下面直接上干貨。
NX12.0 調出方法“引導曲線”驅動方法;
變量名(N):UGII_CAM_ENABLE_AREAMILL_SPIRAL
變量值(N):1
變量名(N):UGII_CAM_ENABLE_GUIDED_CURVE
變量值(N):1
Ps:引導曲線是NX12.0在加工部分增加的為數不多的新命令;
許可證服務器環境變量(NX9.0以上版本);
變量名(N):SPLM_LICENSE_SERVER
變量值(V):27800@server Name
許可證服務器環境變量(NX9.0以下版本);
變量名(N):UGS_LICENSE_SERVER
變量值(V):27800@server Name
Ps:如果電腦中安裝了NX12.0之后想繼續使用NX9.0以下版本,需要新建或更改許可證服務器環境變量值。
如過未安裝12.0,變量值為:28000@serverName
(serverName為計算機名稱);
NX新版開啟“經典工具條”命令;
變量名(N):UGII_DISPLAY_DEBUG
變量值(V):1
Ps:添加環境變量后繼續設置:首選項-用戶界面-布局-經典工具條-應用
NX啟用多核運算;
變量名(N):UGII_SMP_ENABLE
變量值(V):1
Ps:加環境變量僅僅是第一步;
第二步:進去UG安裝路徑UGII文件夾內,用記事本打開ugii_env_ug.bat 文件,將UGII_SMP_ENABLE=1這行前面的#號刪除并保存。
第三步:打開系統任務管理器,并且將進程里的ugraf.exe和ugraf.exe*32的優先級設置為實時)(選中后點擊鼠標右鍵設置)
后處理程序默認輸出路徑;
變量名(N):UGII_CAM_POST_OUTPUT_DIR
變量值(V):E:\NC
Ps:“E:\NC”為值的格式,具體根據實際情況填寫;
工程圖文字放置路徑;
變量名(N):UGII_CHARACTER_FONT_DIR
變量值(V):E:\ugfonts
Ps:“E:\ugfonts”為值的格式,具體根據實際情況填寫;
更改啟動界面背景圖片;
變量名(N):UGII_BACKGROUND_PICTURE
變量值(V):D:\NX.JPG
Ps:“D:\NX.JPG”為值的格式,具體根據實際情況填寫;
NX界面語言;
變量名(N):UGII_LANG
變量值(V):english (英語)
變量值(V):chinese (中文)
變量值(V):french (法語)
變量值(V):german (德語)
變量值(V):japanese (日文)
變量值(V):italian (意大利語)
變量值(V):russian (俄語)
變量值(V):korean (韓文)
Ps:括號內為備注,不寫入變量值中;
外掛調用安裝接口;
變量名(N):UGII_USER_DIR
變量名(N):UGII_SITE_DIR
變量名(N):UGII_VENDOR_DIR
變量名(N):UGII_GROUP_DIR
變量值(V):D:\Siemens\NX 12.0\ITOOLS
Ps:“D:\Siemens\NX 12.0\ITOOLS”為值的格式,具體根據實際情況填寫
當我們進行系統清理時,清理軟件總能自動找到Windows的臨時文件夾之所在,然后加以清理,即便是我們重定向了TEMP目錄也是如此。究其原因,是因為清理軟件會根據TEMP環境變量來判斷現有臨時文件夾的實際位置,這就體現了環境變量的優勢所在。其實,TEMP環境變量只是Windows中眾多環境變量中的一個。既然環境變量如此有用,因此我們有必要對Windows環境變量進行更深入全面的了解和掌握。
1. 環境變量的認識及其基本創建方法
“環境變量”是微軟從DOS到Windows 10操作系統一脈相承的一種基本變量,它可以被系統功能組件、軟件或用戶調用。除了如上所述的控制系統臨時文件夾的環境變量TEMP外,環境變量還有許多,我們可以通過命令提示符窗口,輸入SET命令查看所有可用的系統環境變量(圖1)。注意:各行等號前為環境變量,等號后是該環境變量代表的具體路徑或值。
在Windows圖形界面環境下,我們可以從如下位置查看環境變量:在Windows 10的“開始”按鈕上單擊鼠標右鍵,選擇“系統”進入“關于”信息窗口,選擇其底部的“系統信息”,開啟控制面板的“系統”窗口,點擊“高級系統設置”之后,在“高級”選項卡下,我們會看到“環境變量”的入口(圖2)。
Windows的環境變量有兩種類型,一種是系統變量,另一種是用戶變量。系統變量是針對系統本身的一類環境變量,而用戶變量是只針對當前用戶發生作用的一類環境變量。常用的系統變量或用戶變量可以從點擊上述“環境變量”按鈕之后彈出的環境變量窗口中看到。例如:環境變量ComSpec指定命令提示符文件所在的路徑與執行程序;MUMBER_OF_PROCESSORS指定本機所配CPU的個數;OS指定本操作系統的類別名稱;Path指定系統可以自動識別的軟件路徑(圖3)。
我們可以在Windows環境下創建新的環境變量。例如,要創建名為“WangDong_A”的用戶環境變量,指定其代表程序“D:\NT6 快捷安裝器 1.1.exe”,點擊用戶變量分組下的“新建”按鈕,輸入如圖所示的參數即可(圖4)。之后就可以在程序代碼或命令窗口中,以WangDong_A來引用這個程序路徑。
2. 創建與編輯環境變量的更多方法
最初在DOS時期,由于沒有圖形用戶界面,環境變量的操作只能由命令來完成,這樣的命令延續到當今的Windows 10系統依然有效。例如要顯示當前系統可以識別的程序路徑,只需在命令提示符窗口中輸入Path命令即可(圖5)。
如果要在原有程序路徑的基礎上添加一個新路徑,只需使用“PATH <新路徑> ; %PATH%”格式命令(圖6)。其中“<新路徑>”為包含完整的驅動器和文件夾的路徑名,而“ ; %PATH%”表示將新建路徑附著在原有路徑上。
創建環境變量還可以在Windows 10的PowerShell窗口中進行,比如,執行“[Environment]::SetEnvironmentVariable("某環境變量名", "某環境變量值" ,"User")”命令,可創建某用戶的某個環境變量值。
環境變量的創建或修改還可以通過注冊表編輯器來完成。按下Win+R組合鍵并運行REGEDIT命令,啟動注冊表編輯器。如果要編輯用戶環境變量,依次定位到“\HKEY_CURRENT_USER\Environment”,在右側窗口中雙擊要編輯的環境變量,修改其數值數據即可(圖7)。若需要新建環境變量,只需右擊Environment并新建一個字符類型鍵值,并設置其值即可。
如果要編輯系統環境變量,需依次定位到“\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”,然后在Environment所在的右側窗格中雙擊修改已有環境變量的值(圖8)。