A. linux-配置環境變數
1、系統位置,/etc目錄下的bashrc、profile、environment三個文件
2、用戶目錄(root或普通用戶)下的.bashrc、.bash_profile兩個文件,注意這兩個文件前面都有點,是隱藏文件。
按變數的周期劃為永久變數和臨時性變數2種:
永久變數:通過修改配置文件,配置之後變數永久生效。
臨時性變數:使用命令如export等命令設置,設置之後馬上生效。當關閉shell的時候失效(這種主要用於測試比較多)。
按照影響范圍分為用戶變數和系統變數2種:
用戶變數(局部變數):修改的設置只對某個用戶的路徑或執行起作用;
系統變數(全局變數):影響范圍是整個系統。
export命令顯示當前系統定義的所有環境變數,運行返回結果如下:
echo $PATH命令輸出當前的PATH環境變數的值,運行返回結果如下:
直接用export命令修改PATH值 (重啟終端後配置失效)
export PATH=$PATH:/home/sphc/software/bin
該文件為當前用戶配置文件,修改後,作用於當前用戶的環境變數。
該文件為當前用戶配置文件,修改後,作用於當前用戶的環境變數。
/etc/bashrc為系統環境配置文件,需要管理員許可權(如root)或者對該文件的寫入許可權,修改後,作用於所有用戶。
/etc/profile為系統全局配置文件,需要管理員許可權或者對該文件的寫入許可權,修改後,作用於系統下所有用戶的環境變數。
/etc/environment為系統環境配置文件,需要管理員許可權或者對該文件的寫入許可權,修改後,作用於系統下所有用戶的環境變數。
B. linux環境變數怎麼設置
通過你的描述,環境變數的設置可以通過如下4種方式來進行更改設置:
查看PATH:echo $PATH
這里以添加mongodb server為例
修改方法一:
修改 export PATH=/usr/local/mongodb/bin:$PATH
//配置完後可以通過echo $PATH查看配置結果。
生效方法:立即生效
有效期限:臨時改變,只能在當前的終端窗口中有效,當前窗口關閉後就會恢復原有的path配置
用戶局限:僅對當前用戶
修改方法二:
通過修改.bashrc文件:vim ~/.bashrc
//在最後一行添上:export PATH=/usr/local/mongodb/bin:$PATH
生效方法:(有以下兩種)
1、關閉當前終端窗口,重新打開一個新終端窗口就能生效
2、輸入「source ~/.bashrc」命令,立即生效
有效期限:永久有效
用戶局限:僅對當前用戶
修改方法三:
通過修改profile文件:vim /etc/profile/export PATH
//找到設置PATH的行,添加export PATH=/usr/local/mongodb/bin:$PATH
生效方法:系統重啟
有效期限:永久有效
用戶局限:對所有用戶
以上就是linux環境變數設置的三種方式,希望能幫到你。。。。。。
C. linux中對所有用戶的變數設置,應當放在哪個文件下
1、首先在linux中查看系統環境變數,可以使用 env列出所有系統環境變數。
D. linux下配置自己的環境變數文件my_env.sh
配置環境變數分為系統級和用戶級,系統級所有用戶生效,用戶級針對特定用戶,現場環境根據職能不同,會通過用戶限制操作范圍,環境變數修改以實際需要為准,遵循許可權最小原則。
一般添加系統環境變數,修改/etc/profile文件,如果操作失誤,刪除重要配置,影響系統運行。
centos7版本中 /etc/profile 默認掃描路徑 /etc/profile.d/ 下sh文件,並添加內容到環境變數中,可以通過這種方式不操作/etc/profile增加環境變數。
在/etc/profile.d/下創建文件 my_env.sh,並設置環境變數,如jdk等,內容如下:
vi /etc/profile.d/my_env.sh
編輯用戶文件:~/.bash_profile,增加新path配置信息。如jdk:
自定義命令可以實現很多功能,如項目結構化目錄文件生成、系統命令集合、帶參命令自動填充等,腳本功能決定自定義命令的豐富程度。
創建自定義命令文件目錄,方便集中管理,這里在當前用戶目錄下創建bin目錄:mkdir ~/bin
創建自定義命令文件,文件名為命令名,如vi ~/bin/print,內容列印:echo test,添加文件執行許可權:chmod 700 ~/bin/print
系統級
編輯/etc/profile.d/my_env.sh文件,增加環境變數export PATH= PATH:/home/用戶名/bin
測試
控制台輸入print ,回車即可
E. Linux下環境變數配置文件
環境變數配置的兩個方法:
在/etc/profile里設置系統環境變數時,路徑末尾不能以"/"結尾,否則將導致整個PATH變數出錯
各個配置文件作用
家目錄中配置文件裡面默認有shell來判斷如果父配置文件不存在才讀取此文件
/etc/profile: 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc: 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變數,執行用戶的.bashrc文件.
~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.
~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該文件.
另外,/etc/profile中設定的變數(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關系.
F. linux環境變數配置
Shell變數有局部變數、環境變數之分。局部變數就是指在某個Shell中生效的變數,只在此次登錄中有效。環境變數通常又稱「全局變數」,雖然在Shell中變數默認就是全局的,但是為了讓子Shall繼承當前Shell的變數,需要使用export內建命令將其導出為環境變數。
按變數的生存周期劃分:
永久的:需要修改配置文件,變數永久生效。
臨時的:使用export命令聲明即可,變數在關閉shell時失效。
在配置永久的環境變數時,又可以按照作用范圍分為:
用戶環境變數
系統環境變數。
系統環境變數對所有系統用戶都有效,用戶環境變數僅僅對當前的用戶有效。
全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件。
它也是全局(公有)的 bash執行時,不管是何種方式,都會讀取此文件。
不要輕易修改此文件
用戶環境變數通常被存儲在下面的文件中:
若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存在,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。
若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。
只有bash是以login形式執行時,才會讀取.bash_profile,Unbutu默認沒有此文件,可新建。 通常該配置文件還會配置成去讀取 ~/.bashrc 。
當bash是以non-login形式執行時,讀取此文件。若是以login形式執行,則不會讀取此文件。
~/.bash_profile 是互動式、login 方式進入 bash 運行的
~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用後者。
如想將一個路徑加入到環境變數(例如$PATH)中,可以像下面這樣做(修改/etc/profile):
你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在用戶下次登陸時生效,如果想立刻生效,則可執行下面的語句:
bash會在用戶登錄時,讀取下列四個環境配置文件:
全局環境變數設置文件: /etc/profile 、 /etc/bashrc 。 用戶環境變數設置文件: ~/.bash_profile 、 ~/.bashrc 。
讀取順序:① /etc/profile 、② ~/.bash_profile 、③ ~/.bashrc 、④ /etc/bashrc 。
2 .bashrc 和 .bash_profile 的區別
.bash_profile 會用在登陸shell, .bashrc 使用在互動式非登陸 shell 。簡單說來,它們的區別主要是 .bash_profile 是在你每次登錄的時候執行的; .bashrc 是在你新開了一個命令行窗口時執行的。
當通過控制台進行登錄(輸入用戶名和密碼):在初始化命令行提示符的時候會執行.bash_profile 來配置你的shell環境。但是如果已經登錄到機器,在Gnome或者是KDE也開了一個新的終端窗口(xterm),這時,.bashrc會在窗口命令行提示符出現前被執行。當你在終端敲入/bin/bash時.bashrc也會在這個新的bash實例啟動的時候執行。
所以對於我自己,我寫了一個 .pathrc 文件
然後在 .bashrc , .zshrc , .bash_profile , /etc/profile 中都加了
下面是 .pathrc 文件
現在,當你從控制台登錄機器的時候,.bashrc就會被執行。
四、常用的環境變數
BASH Bash Shell的全路徑
CDPATH 用於快速進入某個目錄。
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME 指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL 當前用戶的郵件存放目錄
PS1 基本提示符,對於root用戶是#,對於普通用戶是$
Reference
[1] /etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc
http://blog.chinaunix.net/uid-26435987-id-3400127.html
[2] Linux如何修改env看到的環境變數? .bashrc和.bash_profile區別
http://blog.csdn.net/xifeijian/article/details/13355031
[3] linux環境變數,bashrc與bashprofile
http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html
G. 在Linux里設置環境變數的方法(export PATH)
比如要把/etc/apache/bin目錄添加到PATH中,方法有三:
1.#PATH=$PATH:/etc/apache/bin
使用這種方法,只對當前會話有效,也就是說每當登出或注銷系統以後,PATH 設置就會失效
2.#vi /etc/profile
在適當位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等號兩邊不能有任何空格)
這種方法最好,除非你手動強制修改PATH的值,否則將不會被改變
3.#vi ~/.bash_profile
修改PATH行,把/etc/apache/bin添加進去
這種方法是針對用戶起作用的
注意:想改變PATH,必須重新登陸才能生效,以下方法可以簡化工作:
如果修改了/etc/profile,那麼編輯結束後執行source profile(source /etc/profile) 或 執行點命令 ./profile,PATH的值就會立即生效了。
這個方法的原理就是再執行一次/etc/profile shell腳本,注意如果用sh /etc/profile是不行的,因為sh是在子shell進程中執行的,即使PATH改變了也不會反應到當前環境中,但是source是在當前 shell進程中執行的,所以我們能看到PATH的改變。
這樣你就學會Linux系統下修改環境變數PATH路徑的方法。
補充說明
工作環境設置文件
環境設置文件有兩種:系統環境設置文件 和 個人環境設置文件
1.系統中的用戶工作環境設置文件:
登錄環境設置文件:/etc/profile
非登錄環境設置文件:/etc/bashrc
2.用戶個人設置的環境設置文件:
登錄環境設置文件: $HOME/.bash_profile //這個是環境變數設置的地方
非登錄環境設置文件:$HOME/.bashrc //這個是定義別名的地方
登錄環境:指用戶登錄系統後的工作環境
非登錄環境:指用戶再調用子shell時所使用的用戶環境
H. linux非root許可權配置環境變數
Linux的變數種類
按變數的生存周期來劃分,Linux變數可分為兩類:
1 永久的:需要修改配置文件,變數永久生效。
2 臨時的:使用export命令聲明即可,變數在關閉shell時失效。
設置變數的三種方法
1 在/etc/profile文件中添加變數【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變數,該變數將會對Linux下所有用戶有效,並且是「永久的」。
例如:編輯/etc/profile文件,添加CLASSPATH變數
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2 在用戶目錄下的.bash_profile文件中增加變數【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變數,改變數僅會對當前用戶有效,並且是「永久的」。
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
命令用法如下
$ cd (進入用戶登陸目錄)
$ls –al .bash_profile(.bash_profile為隱藏文件,因此要用ls –a命令查找)
$vi .bash_profile(用vi編輯.bash_profile)
vi/home/guok/.bash.profile添加如下內容:exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
3 直接運行export命令定義變數【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export 變數名=變數值] 定義變數,
該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,
shell關閉了,變數也就失效了,再打開新shell時就沒有這個變數,需要使用的話還需要重新定義。
環境變數的查看
1 使用echo命令查看單個環境變數。例如:
echo $PATH
2 使用env查看所有環境變數。例如:
env
3 使用set查看所有本地定義的環境變數。
使用unset刪除指定的環境變數
set可以設置某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為NULL。示例如下:
export TEST="Test..." #增加一個環境變數TEST env|grep TEST #此命令有輸入,證明環境變數TEST已經存在了
TEST=Test...
unset TEST #刪除環境變數TEST
$ env|grep TEST #此命令沒有輸出,證明環境變數TEST已經刪除
常用的環境變數
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL當前用戶的郵件存放目錄
PS1基本提示符,對於root用戶是#,對於普通用戶是$
Linux下設置和查看環境變數
https://www.cnblogs.com/qiuhong10/p/7815943.html
Linux下修改.bash_profile 文件改變PATH變數的值
https://blog.csdn.net/u011323949/article/details/79045788
I. Linux環境變數PATH設置
/etc/profile和/etc/bashrc都是系統級別的,修改後可以在所有用戶中起作用; /.bash_profile、 /.bashrc和~/.bash_logout都是用戶級別的,修改後只會作用於當前用戶。
帶profile的文件都是需要重新進入用戶時才會生效,帶bashrc的則是打開新的shell時生效;
執行順序:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
$ echo $HOME
$ export HELLO="Hello"
$ env
¥ set
readonly TEST
之前介紹的使用 export 命令設置環境變數是在命令行中直接執行,這樣設置的環境變數在退出shell時就會失效。要想設置永久有效的環境變數就需要修改之前提到的文件。
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
你可以自己加上指定的路徑,中間用冒號隔開
需要注意的是,最好不要把當前路徑」./」放到PATH里,這樣可能會受到意想不到的攻擊。
特點:所有用戶;永久有效;生效需要重新進入用戶
root許可權:
要想修改完文件後就立即生效,可以在命令行中執行:
# source /etc/profile
Source命令也稱為「點命令」,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登錄