Linux環境變量總結

現在每天測試到時候會與Linux打交道,自然也會用到環境變量了。看了網上幾篇文章,結合自己到實踐和看法,總結以下Linux的環境變量吧。
一、什么是環境變量?
環境變量相當于給系統或用戶應用程序設置的一些參數, 具體起什么作用這當然和具體的環境變量相關.
Linux是一個多用戶的操作系統。多用戶意味著每個用戶登錄系統后,都有自己專用的運行環境。而這個環境是由一組變量所定義,這組變量被稱為環境變量。用戶可以對自己的環境變量進行修改以達到對環境的要求。

二、定制環境變量
環境變量是和Shell緊密相關的,它是通過Shell命令來設置的。環境變量又可以被所有當前用戶所運行的程序所使用。對于bash來說,可以通過變量名來訪問相應的環境變量。
下面通過幾個實例來說明
1.顯示環境變量HOME
$ echo $HOME
/home/admin
2.設置一個新的環境變量NAME
$ export NAME="Jay"
$ echo $NAME
Jay
3.使用env命令(或export)顯示所有的環境變量
$ env
HOSTNAME=test
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=202.xxx.xxx.xxx 53694 22
CATALINA_BASE=/usr/local/jakarta-tomcat
SSH_TTY=/dev/pts/0
ANT_HOME=/usr/local/ant
JAVA_OPTS=-server
USER=admin
...
4.使用set(或declare)命令顯示所有本地定義的Shell變量
$ set
BASH=/bin/bash
BASH_VERSION='2.05b.0(1)-release'
CATALINA_BASE=/usr/local/jakarta-tomcat
CATALINA_HOME=/usr/local/jakarta-tomcat
...
5.使用unset命令來清除環境變量
$ export NAME="Jay"
$ echo $NAME
Jay
$ unset NAME
$ echo $NAME
6.使用readonly命令設置只讀變量
$ export NAME="Jay"
$ readonly NAME
$ unset NAME
-bash: unset: NAME: cannot unset: readonly variable
$ NAME="New" #會發現此也變量不能被修改
-bash:?TEST: readonly variable

三、常見的環境變量
PATH      決定了shell將到哪些目錄中尋找命令或程序
HOME      當前用戶主目錄
HISTSIZE    歷史記錄數
LOGNAME     當前用戶的登錄名
HOSTNAME    指主機的名稱
SHELL      前用戶Shell類型
LANGUGE     語言相關的環境變量,多語言可以修改此環境變量
MAIL      當前用戶的郵件存放目錄
PS1       基本提示符,對于root用戶是#,對于普通用戶是$
PS2       附屬提示符,默認是“>”

四、通過C程序來訪問和設置環境變量
對于C程序的用戶來說,可以使用下列三個函數來設置或訪問一個環境變量。
getenv()訪問一個環境變量。輸入參數是需要訪問的變量名字,返回值是一個字符串。如果所訪問的環境變量不存在,則會返回NULL;
setenv()在程序里面設置某個環境變量的函數;
unsetenv()清除某個特定的環境變量的函數。
另外,還有一個指針變量environ,它指向的是包含所有的環境變量的一個列表。下面的程序可以打印出當前運行環境里面的所有環境變量:
#include <stdio.h>
extern char** environ;
int main ()
{
char** var;
for (var = environ; *var !=NULL;++var)
printf ("%s \n ",*var);
return 0;
}

五、環境變量文件
通過修改一些相關的環境定義文件來修改環境變量,比如對于多數Linux系統,與環境相關的文件有/etc/profile和~/.bash_profile等。修改完畢后重新登錄一次或運行命令source xxx就生效了。
/etc/profile或/etc/bash.bashrc
文件中修改環境變量,在這里修改的內容是對所有用戶起作用的;
~/.profile或~/.bashrc文件進行環境變量的編輯,只對當前用戶有用。

轉載于:https://www.cnblogs.com/lmg-jie/p/8033965.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390551.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

目錄指南中的Python列表文件-listdir VS system(“ ls”)通過示例進行解釋

&#x1f539;歡迎 (&#x1f539; Welcome) If you want to learn how these functions work behind the scenes and how you can use their full power, then this article is for you.如果您想了解這些功能在后臺如何工作以及如何充分利用它們的功能&#xff0c;那么本文適合…

Java多線程并發學習-進階大綱

1、synchronized 的實現原理以及鎖優化&#xff1f;2、volatile 的實現原理&#xff1f;3、Java 的信號燈&#xff1f;4、synchronized 在靜態方法和普通方法的區別&#xff1f;5、怎么實現所有線程在等待某個事件的發生才會去執行&#xff1f;6、CAS&#xff1f;CAS 有什么缺陷…

大數據定律與中心極限定理_為什么中心極限定理對數據科學家很重要?

大數據定律與中心極限定理數據科學 (Data Science) The Central Limit Theorem is at the center of statistical inference what each data scientist/data analyst does every day.中心極限定理是每個數據科學家/數據分析師每天所做的統計推斷的中心。 Central Limit Theore…

useEffect語法講解

useEffect語法講解 用法 useEffect(effectFn, deps)能力 useEffect Hook 相當于 componentDidMount&#xff0c;componentDidUpdate 和 componentWillUnmount 這三個函數的組合。 可以模擬渲染后、更新后、銷毀三個動作。 案例演示 渲染后更新標題 useEffect(()>{doc…

leetcode 726. 原子的數量

給定一個化學式formula&#xff08;作為字符串&#xff09;&#xff0c;返回每種原子的數量。 原子總是以一個大寫字母開始&#xff0c;接著跟隨0個或任意個小寫字母&#xff0c;表示原子的名字。 如果數量大于 1&#xff0c;原子后會跟著數字表示原子的數量。如果數量等于 1…

web相關基礎知識1

2017-12-13 09:47:11 關于HTML 1.絕對路徑和相對路徑 相對路徑&#xff1a;相對于文件自身為參考。 &#xff08;工作中一般是使用相對路徑&#xff09; 這里我們用html文件為參考。如果說html和圖片平級&#xff0c;那直接使用src 如果說圖片在和html平級的文件夾里面&#xf…

JavaScript循環:標簽語句,繼續語句和中斷語句說明

標簽聲明 (Label Statement) The Label Statement is used with the break and continue statements and serves to identify the statement to which the break and continue statements apply. Label語句與break和continue語句一起使用&#xff0c;用于標識break和continue語…

馬約拉納費米子:推動量子計算的“天使粒子”

據《人民日報》報道&#xff0c;以華人科學家為主體的科研團隊找到了正反同體的“天使粒子”——馬約拉納費米子&#xff0c;從而結束了國際物理學界對這一神秘粒子長達80年的漫長追尋。該成果由加利福尼亞大學洛杉磯分校何慶林、王康隆課題組&#xff0c;美國斯坦福大學教授張…

leetcode 1711. 大餐計數

大餐 是指 恰好包含兩道不同餐品 的一餐&#xff0c;其美味程度之和等于 2 的冪。 你可以搭配 任意 兩道餐品做一頓大餐。 給你一個整數數組 deliciousness &#xff0c;其中 deliciousness[i] 是第 i?????????????? 道餐品的美味程度&#xff0c;返回你可以用…

您的第一個簡單的機器學習項目

This article is for those dummies like me, who’ve never tried to know what machine learning was or have left it halfway for the sole reason of being overwhelmed. Follow through every line and stay along. I promise you’d be quite acquainted with giving yo…

eclipse報Access restriction: The type 'BASE64Decoder' is not API處理方法

今天從svn更新代碼之后&#xff0c;由于代碼中使用了BASE64Encoder 更新之后報如下錯誤&#xff1a; Access restriction: The type ‘BASE64Decoder’ is not API (restriction on required library ‘D:\java\jdk1.7.0_45\jre\lib\rt.jar’) 解決其實很簡單&#xff0c;把JR…

【躍遷之路】【451天】程序員高效學習方法論探索系列(實驗階段208-2018.05.02)...

(躍遷之路)專欄 實驗說明 從2017.10.6起&#xff0c;開啟這個系列&#xff0c;目標只有一個&#xff1a;探索新的學習方法&#xff0c;實現躍遷式成長實驗期2年&#xff08;2017.10.06 - 2019.10.06&#xff09;我將以自己為實驗對象。我將開源我的學習方法&#xff0c;方法不斷…

react jest測試_如何使用React測試庫和Jest開始測試React應用

react jest測試Testing is often seen as a tedious process. Its extra code you have to write, and in some cases, to be honest, its not needed. But every developer should know at least the basics of testing. It increases confidence in the products they build,…

面試題 17.10. 主要元素

題目 數組中占比超過一半的元素稱之為主要元素。給你一個 整數 數組&#xff0c;找出其中的主要元素。若沒有&#xff0c;返回 -1 。請設計時間復雜度為 O(N) 、空間復雜度為 O(1) 的解決方案。 示例 1&#xff1a; 輸入&#xff1a;[1,2,5,9,5,9,5,5,5] 輸出&#xff1a;5 …

簡單團隊-爬取豆瓣電影T250-項目進度

本次主要講解一下我們的頁面設計及展示最終效果&#xff1a; 頁面設計主要用到的軟件是&#xff1a;html&#xff0c;css&#xff0c;js&#xff0c; 主要用的編譯器是&#xff1a;sublime&#xff0c;dreamweaver&#xff0c;eclipse&#xff0c;由于每個人使用習慣不一樣&…

鴿子為什么喜歡盤旋_如何為鴿子回避系統設置數據收集

鴿子為什么喜歡盤旋鴿子回避系統 (Pigeon Avoidance System) Disclaimer: You are reading Part 2 that describes the technical setup. Part 1 gave an overview of the Pigeon Avoidance System and Part 3 provides details about the Pigeon Recognition Model.免責聲明&a…

scrum認證費用_如何獲得專業Scrum大師的認證-快速和慢速方式

scrum認證費用A few months ago, I got the Professional Scrum Master Certification (PSM I). 幾個月前&#xff0c;我獲得了專業Scrum Master認證(PSM I)。 This is a trending certification nowadays, because most companies operate with some sort of agile methodolo…

981. 基于時間的鍵值存儲

創建一個基于時間的鍵值存儲類 TimeMap&#xff0c;它支持下面兩個操作&#xff1a; set(string key, string value, int timestamp) 存儲鍵 key、值 value&#xff0c;以及給定的時間戳 timestamp。 get(string key, int timestamp) 返回先前調用 set(key, value, timesta…

前端開發-DOM

文檔對象模型&#xff08;Document Object Model&#xff0c;DOM&#xff09;是一種用于HTML和XML文檔的編程接口。它給文檔提供了一種結構化的表示方法&#xff0c;可以改變文檔的內容和呈現方式。我們最為關心的是&#xff0c;DOM把網頁和腳本以及其他的編程語言聯系了起來。…