Linux 環(huán)境變量詳解及實(shí)例
Linux環(huán)境變量
~/.bash_profile && ~/.bashrc
用戶登陸Linux操作系統(tǒng)的時(shí)候,"/etc/profile", "~/.bash_profile"等配置文件會(huì)被自動(dòng)執(zhí)行。
執(zhí)行過程是這樣的:
- 登陸Linux系統(tǒng)時(shí),首先啟動(dòng)"/etc/profile",
- 然后啟動(dòng)用戶目錄下的"~/.bash_profile",
- 如果"~/.bash_login"和"~/.profile"文件存在的時(shí)候也會(huì)在執(zhí)行。
下面看看"~/.bash_profile"文件里面有什么東西
$cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/home/work/local/python/lib/python2.6/site-packages/django/bin/:$HOME/bin:/home/work/local/mysql5/bin/; LD_LIBRARY_PATH=/home/work/local/mysql5/lib/mysql alias py='/home/work/local/python/bin/python' export PATH LD_LIBRARY_PATH unset USERNAME
可以看到~/.bash_profile文件先調(diào)用~/.bashrc,然后再把PATH和LD_LIBRARY_PATH加載。
環(huán)境變量相關(guān)配置文件
- /etc/profile:此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息,當(dāng)用戶第一次登錄時(shí),該文件被執(zhí)行,并從/etc/profile.d目錄的設(shè)置文件中搜集shell的設(shè)置。
- /etc/bashrc:為每一個(gè)運(yùn)行bash shell的用戶執(zhí)行此文件,當(dāng)bash shell被打開時(shí),該文件被讀取.
- ~/.bash_profile:每個(gè)用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次。默認(rèn)情況下,他設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件。
- ~/.bashrc:該文件包含專用于你的bash shell的bash信息,當(dāng)?shù)卿洉r(shí)及每次打開新的shell時(shí),該該文件被讀。
- ~/.bash_logout:當(dāng)每次退出系統(tǒng)(退出bash shell)時(shí),執(zhí)行該文件。
/etc/profile是全局性的功能,其中設(shè)置的變量作用于所有用戶,~/.bash_profile中設(shè)置的變量能繼承/etc/profile中的變量并作用于用戶。
- ~/.bash_profile 是交互式、login 方式進(jìn)入 bash 運(yùn)行的
- ~/.bashrc 是交互式 non-login 方式進(jìn)入 bash 運(yùn)行的
通常二者設(shè)置大致相同,所以通常前者會(huì)調(diào)用后者。
crontab執(zhí)行環(huán)境
大家都知道crontab是個(gè)好東東,可以定時(shí)執(zhí)行一些任務(wù),幫助你監(jiān)控系統(tǒng)狀況,幫助你每天重復(fù)的做一些機(jī)械的事情。但是crontab有一個(gè)壞毛病,就是它總是不會(huì)缺省的從用戶profile文件中讀取環(huán)境變量參數(shù),經(jīng)常導(dǎo)致在手工執(zhí)行某個(gè)腳本時(shí)是成功的,但是到crontab中試圖讓它定期執(zhí)行時(shí)就是會(huì)出錯(cuò)
一般crontab無法運(yùn)行的問題都是由環(huán)境變量在crontab中不一定可識(shí)別引起的。
在運(yùn)行crontab的時(shí)候,是non_login方式調(diào)用程序的,此時(shí)~/.bash_profile并不會(huì)被提前調(diào)用。所以,crontab的運(yùn)行環(huán)境相對(duì)于login方式進(jìn)入bash運(yùn)行的環(huán)境來說小得多。如果程序涉及~/.bash_profile使用的環(huán)境變量,那么,部分在login方式可以正常運(yùn)行的程序在crontab下就無法運(yùn)行。
終極推薦解決方案:
30 12 * * * source ~/.bashrc && cd /home/work/mydir && ./myproj
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- linux下配置jdk環(huán)境變量的三種方法總結(jié)
- Linux Shell腳本系列教程(三):變量和環(huán)境變量
- Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量
- 淺析linux環(huán)境變量export命令詳解
- 配置java環(huán)境變量(linux mac windows7)
- Linux下安裝jdk1.8并配置環(huán)境變量的教程
- 在Linux操作系統(tǒng)中修改環(huán)境變量的方法
- Linux中修改環(huán)境變量及生效方法
- Linux中環(huán)境變量配置的步驟詳解
- Linux環(huán)境變量配置的完整攻略
相關(guān)文章
詳解Ubuntu 從零開始搭建Python開發(fā)環(huán)境
本篇文章主要介紹了詳解Ubuntu 從零開始搭建Python開發(fā)環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06Linux下如何實(shí)現(xiàn)創(chuàng)建/刪除軟連接
這篇文章主要介紹了Linux下如何實(shí)現(xiàn)創(chuàng)建/刪除軟連接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07ubuntu 16.04系統(tǒng)完美解決pip不能升級(jí)的問題
這篇文章主要介紹了ubuntu 16.04系統(tǒng)完美解決pip不能升級(jí)的問題 ,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-04-04網(wǎng)站加速VPS篇 memcache和memcached安裝方法
Memcache是一個(gè)自由和開放源代碼、高性能、分配的內(nèi)存對(duì)象緩存系統(tǒng)。用于加速動(dòng)態(tài)web應(yīng)用程序,減輕數(shù)據(jù)庫負(fù)載。2010-12-12easyswoole一鍵安裝腳本及寶塔安裝錯(cuò)誤問題
這篇文章主要介紹了easyswoole一鍵安裝腳本及寶塔安裝錯(cuò)誤問題,文中給大家提到了Linux寶塔安裝EsaySwoole的方法,需要的朋友可以參考下2019-10-10bug分支和feature分支_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了bug分支和feature分支,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08