- 基本概念
環境變量一般是指在操作系統中來指定操作系統運行環境的一些參數,如我們編寫c/c++代碼的時候,在鏈接的時候,從來不知道我們的所鏈接的動態靜態庫在哪裏,但是照樣可以鏈接成功,生成可執行程序,原因就是有相關環境變量幫助編譯器進行查找。
環境變量通常具有某些特殊用途,還有在系統當中通常有全局特性。 - 常見環境變量
PATH:指定命令的搜索路徑
HOME:指定用戶的主工作目錄(即用戶登錄到Linux系統時,默認的目錄)
SHELL:當前Shell,它的值通常是/bin/bash - 和環境變量相關的命令
-
echo:顯示某個環境變量值
echo $(環境變量名) 查看某個環境變量 -
export:設置一個新的環境變量
export PATH=$PATH:(某個路徑) //修改路徑(在基礎上添加新的路徑)
export 修改環境變量,對與PATH修改一般只是進行追加,不會把原來的內容去掉
如果PATH改壞了,可以通過重啓終端來恢復PATH
~/.bashrc (bash進程啓動時,運行時控制) rc run control
修改這個文件,能讓環境變量持久生效 -
env:顯示所以環境變量
-
unset:清除環境變量
-
set:顯示本地組定義的shell變量和環境變量
- 環境變量的組織方式
每個程序都會收到一張環境表,環境表是一個字符指針數組,每個指針指向一個以‘\0’結尾的環境字符串。 - 通過代碼如何獲取環境變量
- 命令行第三個參數
/*env也是一個字符串數組
env數組也有一個結束標記NULL
當前環境變量都有啥
main函數三種形式
1.沒參數
2.int argc,char* argv[]
3.int argc,cahr* argv[],char* env[]*/
#include<iostream>
#include<cstdio>
using namespace std;
int main(int argc,char *argv[],char* env[])
{
(void)argc;
(void)argv;
(void)env;
cout<<"argc:"<<argc<<endl;
for(int i=0;i<argc;i++)
{
cout<<argv[i]<<endl;
}
for(int j=0;env[j]!=NULL;++j)
{
cout<<env[j]<<endl;
}
}
- 函數輸出環境變量
#include<iostream>
#include<cstdio>
#include<cstdlib>
int main()
{
char* result=getenv("PATH");
cout<<reslut<<endl;
return 0;
}