環境變數
1.概念
指在作業系統中用來指定作業系統執行環境的一些引數。環境變數通常具有特殊用途,在系統中具有全域性特性。
環境變數通常具有全域性屬性,可以被子程序繼承下去。
2.常見的環境變數
(1)path:指定命令的搜尋路徑
(2)home:指定使用者的主工作目錄(即使用者登入到linux系統中時,預設的目錄)
(3)histsize:指儲存歷史命令記錄的條數
(4)shell:當前shell,它的值通常是/bin/bash
3.檢視環境變數的方法
echo $name //name:環境變數名稱
舉乙個測試home的例子:
在普通使用者的時候:
當切換到root許可權的時候:
4.和環境變數相關的命令
(1)echo:顯示某個環境變數值
(2)export:設定乙個新的環境變數
(3)env:顯示所有環境變數
(4)unset:清楚環境變數
(5)set:顯示本地定義的shell變數和環境變數
5.setenv函式
作用:改變或增加環境變數的內容
相關函式getenv、putenv、unsetenv,首先要說明的是:通過此函式並不能新增或修改shell程序的環境變數。或者說通過setenv函式設定的環境變數只在本程序,而且是本次執行中有效。如果在某一次執行程式時執行了setenv函式,程序終止再次執行該程式,上次的設定是無效的,上次設定的環境變數是不能讀到的。
表頭檔案#include
注:stdlib.h在linux和windows中略不同,比如setenv函式是用在linux中的,在windows中沒有setenv函式而用putenv來代替
定義函式int setenv(const char* name ,const char* value , int overwrite);
引數name為環境變數名稱字串,引數value則為變數內容,引數overwrite用來決定是否要改變已存在的環境變數。如果沒有此環境變數,則無論overwrite為何值均新增此環境變數。若此環境變數存在,overwrite不為0時,原內容會被改為引數value所指的變數內容,當overwrite為0時,則引數被忽略。返回值執行成功則返回0,有錯誤發生時,返回-1.
setenv用於在c shell設定環境變數的值
用法:setenv envvar value
envvar 為所要設定的環境變數的名。value為所要設定的環境變數的值
例:setenv path "/bin:/usr/bin:usr/sbin:"設定環境path的搜尋路徑為/bin,/usr/bin以及/usr/sbin
6.export函式
export設定環境變數是暫時的,只在本次登入中有效,若想要使得開機時自動載入這個環境變數免除以後每次設定,可將其寫入/etc/re.local
作用:設定或顯示環境變數(比如我們要用乙個命令,但這個命令的執行檔案不在當前目錄,這樣我們每次用的時候必須制定執行檔案的目錄,麻煩,在**中限執行export,這個相當於告訴程式,執行某某東西時,需要的檔案或什麼東西在這些目錄裡),在shell中執行程式時shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。
用法:export [-fnp] [變數名稱] = [變數設定值]
-f 代表[變數名稱]中函式名稱
-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的shell賦予程式的環境變數。
乙個變數建立時,它不會自動的為在它之後建立的shell程序所知。而命令export可以向後面的shell傳遞變數的值。當乙個shell指令碼呼叫並執行時,它不會自動得到原來指令碼(呼叫者)裡定義的變數的訪問權,除非這些變數已經被顯示地設定為可用。export命令可以用於傳遞乙個或多個變數的值到任何後續指令碼。
關於環境變數的函式及相關命令
基本概念 環境變數一般指在作業系統中用來指定作業系統執行環境的一些引數。通常具有某些特殊用途,在系統中通常具有全域性特性。常見的環境變數 可由父程序傳遞給子程序 path 指定目錄的搜尋路徑 home 指定使用者的主工作目錄 histsize 指儲存歷史命令記錄的條數 shell 當前shell 1...
環境變數相關
blog.csdn.net minpro 1 getenv 取得環境變數內容 相關函式 putenv setenv,unsetenv 表頭檔案 include 定義函式 char getenv const char name 函式說明 getenv 用來取得引數name環境變數的內容。引數name為...
linux環境變數相關命令及函式介面
printenv命令 列印所有的環境變數。env命令 在修改某些環境變數後執行指定的命令。格式 env option name value command arg 表示可選的選項。所以可以忽略。env path usr bin perl version export命令 修改 新增環境變數。eg e...