Shell環境變數以及set,env,export的區別

來源:互聯網
上載者:User

標籤:http   java   使用   os   io   檔案   for   ar   art   

shell環境變數的分類以及set env export的區別:

set:顯示(設定)shell變數 包括的私人變數以及使用者變數,不同類的shell有不同的私人變數 bash,ksh,csh每中shell私人變數都不一樣

env:顯示(設定)使用者變數變數

export:顯示(設定)當前置出成使用者變數的shell變數。

舉個例子來講:

[www.linuxidc.com@linuxidc ~]$ aaa=bbb –shell變數設定
[www.linuxidc.com@linuxidc ~]$ echo $aaa
bbb
[www.linuxidc.com@linuxidc ~]$ env| grep aaa –設定完目前使用者變數並沒有
[www.linuxidc.com@linuxidc ~]$ set| grep aaa –shell變數有
aaa=bbb
[www.linuxidc.com@linuxidc ~]$ export| grep aaa –這個指的export也沒匯出,匯出變數也沒有
[www.linuxidc.com@linuxidc ~]$ export aaa –那麼用export 匯出一下
[www.linuxidc.com@linuxidc ~]$ env| grep aaa –發現使用者變數記憶體在了
aaa=bbb
總結:linux 分 shell變數(set),使用者變數(env), shell變數包含使用者變數,export是一種命令工具,是顯示那些通過export命令把shell變數中包含的使用者變數匯入給使用者變數的那些變數.

環境變數的設定檔

最根本的設定、更改變數的設定檔 ~/.bash_profile ~/.bashrc ~/.bash_logout

~/.bash_profile 使用者登入時被讀取,其中包含的命令被執行

~/.bashrc 啟動新的shell時被讀取,並執行

~/.bash_logout shell 登入退出時被讀取

.bashrc和.bash_profile的區別

引自

.bash_profile會用在login shell
.bashrc 使用在interactive non-login shell

Bash下每個使用者都可以配置兩個初始檔案:.bash_profile和.bashrc,檔案儲存體在~根目錄中。man bash中的相關解釋如下:

,—————————————————————————-
| ~/.bash_profile
| The personal initialization file, executed for login shells
| ~/.bashrc
| The individual per-interactive-shell startup file
`—————————————————————————-

  • 每次bash作為login shell啟動時會執行.bash_profile。

  • 每次bash作為普通的互動shell(interactive shell)啟動時會執行.bashrc

  • 注意
    1)在shell指令碼中“#!/usr/bin/bash”啟動的bash並不執行.bashrc。因為這裡的bash不是interactive shell。

2)bash作為login shell(login bash)啟動時並不執行.bashrc。雖然該shell也是interactive shell,但它不是普通的shell。

  • 一般.bash_profile裡都會調用.bashrc

儘管login bash啟動時不會自動執行.bashrc,慣例上會在.bash_profile中顯式調用.bashrc。所以在你的.bash_profile檔案中,很可能會看到如下的程式碼片段:
[plain] view plaincopy在CODE上查看代碼片派生到My Code片
if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

.bashrc 使用在interactive non-login shell。意思是你每次運行一個bash指令碼的話,.bashrc就會被執行一次。有個簡單的方法,你在.bash_profile和.bashrc裡 都用echo列印點東西。,就可以看到著兩個檔案都是什麼時候被執行的了。

編輯/etc/profile修改全域環境變數
編輯.bash_profile修改目前使用者的環境變數
修改完成之後source一下即可生效,例如source ~/.bash_profile

Shell環境變數以及set,env,export的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.