一.使用environ指針輸出環境變數 代碼如下: ~~~~ include include define MAX_INPUT 20 / 引用指針 / extern char environ; int main(int argc, char argv) { char temp = NULL; cha ...
一.使用environ指針輸出環境變數
代碼如下:
#include<stdio.h>
#include<string.h>
#define MAX_INPUT 20
/* 引用指針 */
extern char** environ;
int main(int argc, char** argv)
{
char *temp = NULL;
char** env = environ;
char buf[MAX_INPUT] = {0};
/* 輸出全部環境變數 */
while(*env)
printf(" %s \n", *env++);
printf("\nEnter the variable you want to find : \n");
scanf("%s", buf);
printf("The output contains the contents of %s :\n", buf);
/* 重新賦值 */
env = environ;
/* 輸出你要查找的內容 */
while(*env)
if(temp = strstr(*env++, buf))
printf("%s \n", temp);
return 0;
}
二.使用函數
首先要說明的是,通過此函數並不能添加或修改 shell 進程的環境變數,或者說通過 setenv() 函數設置的環境變數只在本進程,而且是本次執行中有效。
/* 通過變數名返迴環境變數的內容 */
char *getenv(const char *name);
/* 改變或增加環境變數 */
int setenv(const char *name, const char *value, int overwrite);
/* 改變或增加環境變數,其中參數必須以 "name=value" 的形式給出 */
int putenv(char *string);
/* 刪除name的定義,即使不存在也不算出錯 */
int unsetenv(const char *name);
/* 刪除全部的環境變數,並將environ設置為NULL */
int clearenv(void);
三.命令行操作
用命令行修改PATH,只針對當前shell有用,關了終端就失效了,命令如下:
echo $PATH #輸出PATH環境變數
export PATH = xxx #設置環境變數
unset PATH #刪除環境變數
env #顯示所有環境變數
四.修改系統文件
登陸root,在家目錄(root)的 .bashrc 添加如下語句就可以設置PATH變數
export PATH = xxx
要使修改生效的話需要重啟或執行
source .bashrc
.bashrc 中的修改對於當前賬戶的每次登陸都有效,
也可以修改 /etc/profile 文件,使其對所有用戶生效。
幾個文件的介紹:
/etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bashshell被打開時,該文件被讀取.
~/.bash_profile:每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!預設情況下,它設置一些環境變數,執行用戶的.bashrc文件.
~/.bashrc:該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件.
/root/.bash_profile root用戶的配置