Linux 環(huán)境變量詳解及實(shí)例
Linux環(huán)境變量
~/.bash_profile && ~/.bashrc
用戶登陸Linux操作系統(tǒng)的時(shí)候,"/etc/profile", "~/.bash_profile"等配置文件會(huì)被自動(dòng)執(zhí)行。
執(zhí)行過(guò)程是這樣的:
- 登陸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無(wú)法運(yùn)行的問(wè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)境來(lái)說(shuō)小得多。如果程序涉及~/.bash_profile使用的環(huán)境變量,那么,部分在login方式可以正常運(yùn)行的程序在crontab下就無(wú)法運(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)文章
cloudera manager 設(shè)置開機(jī)自啟的方法
下面小編就為大家?guī)?lái)一篇cloudera manager 設(shè)置開機(jī)自啟的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Ubuntu部署python3.5的開發(fā)和運(yùn)行環(huán)境
這篇文章主要介紹了Ubuntu部署python3.5的開發(fā)和運(yùn)行環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01
linux exa命令(比ls更好的展示文件體驗(yàn))
這篇文章主要介紹了linux exa命令(比ls更好的展示文件體驗(yàn)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安裝教程詳解
這篇文章主要介紹了CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
linux中串口調(diào)試工具minicom的使用詳解
minicom?是?Linux?下的一個(gè)串口終端工具,主要用于與串口設(shè)備交互,本文主要來(lái)和大家聊聊minicom?的詳細(xì)使用教程,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12

