이 기사에서는 Linux에서 환경 변수를 구성하는 6가지 방법을 소개합니다.
Linux 환경 변수 구성
소프트웨어 설치를 사용자 정의할 때 환경 변수를 구성해야 하는 경우가 종종 있습니다. 다음은 환경 변수를 구성하는 다양한 방법입니다.
아래 모든 예제에 대한 환경 설명은 다음과 같습니다.
시스템: Ubuntu 14.0
사용자 이름: uusama
MySQL 환경 변수 구성 필요 경로: /home/uusama/mysql/bin
Linux는 환경 변수를 읽습니다.
환경 변수 읽는 방법:
export 명령은 현재 시스템에서 정의한 모든 환경 변수를 표시합니다.
echo $PATH 명령은 현재 PATH 환경 변수의 값을 출력합니다.
실행 효과 이 두 명령은 다음과 같습니다
uusama@ubuntu:~export declare -x HOME="/home/uusama" declare -x LANG="en_US.UTF-8" declare -x LANGUAGE="en_US:" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="uusama" declare -x MAIL="/var/mail/uusama" declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" declare -x SSH_TTY="/dev/pts/0" declare -x TERM="xterm" declare -x USER="uusama" uusama@ubuntu:~ echo $PATH /home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH 변수는 명령을 실행하기 위한 검색 경로를 정의합니다. 다른 경로는 콜론으로 구분됩니다. 내보내기 정의를 사용할 때 큰따옴표를 추가할지 여부를 지정할 수 있습니다.
Linux 환경 변수 구성 방법 1: PATH 내보내기
export 명령을 사용하여 PATH 값을 직접 수정하고 환경 변수를 입력하도록 MySQL을 구성합니다:
export PATH=/home/uusama/mysql/bin:PATH # 或者把PATH放在前面 export PATH=PATH:/home/uusama/mysql/bin
참고:
유효 시간: 즉시 적용
유효 기간: 현재 터미널에만 유효, 창을 닫은 후에는 무효
유효 범위: 현재 사용자에게만 유효
구성된 항목에 원래 구성, 즉 $PATH 부분을 추가하는 것을 잊지 마세요. 원래 구성을 덮어쓰지 않도록 환경 변수
Linux 환경 변수 구성 방법 2: vim ~/.bashrc
사용자 디렉터리에서 ~/.bashrc 파일을 수정하여 구성:
vim ~/.bashrc # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
참고:
효과 시간: 동일한 사용자로 새 터미널을 열 때 유효하거나 ~/.bashrc를 수동으로 소스하여 적용합니다
유효 기간: 영구적으로 유효
유효 범위: 현재 사용자에게만 유효
이후 환경 변수 로딩이 있는 경우 PATH 정의를 덮어쓰는 파일은 적용되지 않을 수 있습니다
Linux 환경 변수 구성 방법 3: vim ~/.bash_profile
은 ~/.bashrc 파일을 수정하는 것과 유사합니다. 파일 끝의 경로:
vim ~/.bash_profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
참고:
유효 시간: 동일 사용 사용자가 새 터미널을 열거나 /.bash_profile을 수동으로 소싱하여 적용할 때 적용됩니다
유효 기간: 영구적으로 유효
효과 범위: 현재 사용자에게만 유효합니다.
/.bash_profile 파일이 없으면 ~/.profile 파일을 편집하거나 새
Linux 환경 변수 구성 방법 4: vim /etc/bashrc를 생성할 수 있습니다.
이 방법은 시스템 구성을 수정하는 것이며 관리자 권한(예: 루트) 또는 파일에 대한 쓰기 권한이 필요합니다.
# 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/bashrc vim /etc/bashrc # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
참고:
효과 시간: 새 터미널을 열어 적용하거나 수동으로 소스 / etc/bashrc가 적용됩니다
유효 기간: 영구적으로 유효
유효 범위: 모든 사용자에게 유효
Linux 환경 변수 구성 방법 5: vim / etc/profile
이 방법은 시스템 구성을 수정하며 다음이 필요합니다. 관리자 권한 또는 파일에 대한 쓰기 권한은 vim /etc/bashrc와 유사합니다:
# 如果/etc/profile文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/profile vim /etc/profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
참고:
유효 시간: 새 터미널이 열릴 때 적용되거나 수동으로 /etc/profile을 소싱하여 적용합니다.
유효 기간: 영구적으로 유효유효 범위: 모든 사용자에게 유효Linux 환경 변수 구성 방법 6: vim /etc/environment
이 방법은 시스템 환경을 수정하는 것입니다. 구성 파일에는 관리자 권한이 필요하거나 쓰기가 필요합니다 파일에 대한 권한:# 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/environment vim /etc/profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin注意事项:
Linux 환경 분석 변수 로딩 원리
위에 환경 변수의 다양한 구성 방법이 나열되어 있는데 Linux에서는 이러한 구성을 어떻게 로드합니까? 어떤 순서로 로드되나요? 특정 로딩 순서로 인해 동일한 이름을 가진 환경 변수 정의가 덮어쓰여지거나 적용되지 않게 됩니다.환경 변수의 분류
환경 변수는 간단히 사용자 정의 환경 변수와 시스템 수준 환경 변수로 나눌 수 있습니다. 사용자 수준 환경 변수 정의 파일: /.bashrc, /.profile(일부 시스템: /.bash_profile) 시스템 수준 환경 변수 정의 파일: /etc/bashrc, /etc/profile(일부 시스템: /etc /bash_profile), /etc/environment또한 사용자 환경 변수에서 시스템은 먼저 /.bash_profile(또는 ~/.profile) 파일을 읽습니다. 해당 파일이 없으면 ~/.profile을 읽습니다. bash_login.이 파일에 따라 ~/.bashrc 내용을 읽으십시오.Linux 환경 변수의 로딩 순서를 테스트하는 방법
为了测试各个不同文件的环境变量加载顺序,我们在每个环境变量定义文件中的第一行都定义相同的环境变量UU_ORDER,该变量的值为本身的值连接上当前文件名称。
需要修改的文件如下:
/etc/environment
/etc/profile
/etc/profile.d/test.sh,新建文件,没有文件夹可略过
/etc/bashrc,或者/etc/bash.bashrc
/.bash_profile,或者/.profile
~/.bashrc
在每个文件中的第一行都加上下面这句代码,并相应的把冒号后的内容修改为当前文件的绝对文件名。
export UU_ORDER="$UU_ORDER:~/.bash_profile"
修改完之后保存,新开一个窗口,然后echo $UU_ORDER观察变量的值:
uusama@ubuntu:~echoUU_ORDER $UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc
可以推测出Linux加载环境变量的顺序如下:
/etc/environment
/etc/profile
/etc/bash.bashrc
/etc/profile.d/test.sh
~/.profile
~/.bashrc
Linux环境变量文件加载详解
由上面的测试可容易得出Linux加载环境变量的顺序如下,:
系统环境变量 -> 用户自定义环境变量 /etc/environment -> /etc/profile -> ~/.profile
打开/etc/profile文件你会发现,该文件的代码中会加载/etc/bash.bashrc文件,然后检查/etc/profile.d/目录下的.sh文件并加载。
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "PS1" ]; then if [ "BASH" ] && [ "BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1=' ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r i ]; then .i fi done unset i fi
其次再打开~/.profile文件,会发现该文件中加载了~/.bashrc文件。
# if running bash if [ -n "BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "HOME/.bashrc" ]; then . "HOME/.bashrc" fi fi # set PATH so it includes user's private bin directories PATH="HOME/bin:HOME/.local/bin:PATH"
从~/.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。
一些小技巧
可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,在这个文件中使用export定义一系列变量,然后在~/.profile文件后面加上:sourc uusama.profile,这样你每次登陆都可以在Shell脚本中使用自己定义的一系列变量。
也可以使用alias命令定义一些命令的别名,比如alias rm="rm -i"(双引号必须),并把这个代码加入到~/.profile中,这样你每次使用rm命令的时候,都相当于使用rm -i命令,非常方便。
相关推荐:《Linux视频教程》
위 내용은 리눅스 환경 변수를 구성하는 6가지 방법, 수집 추천!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!