当前位置: 首页 > 科技观察

Linux环境变量配置指南_0

时间:2023-03-12 20:02:00 科技观察

Linux环境变量配置在定制安装软件的时候,往往需要配置环境变量。下面列出了环境变量的各种配置方法。以下所有示例环境说明如下:系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/binLinux读取环境变量读取环境变量方法:export命令显示所有当前系统定义的环境变量echo$PATH命令输出当前PATH环境变量的值。这两条命令的作用如下uusama@ubuntu:~$exportdeclare-xHOME="/home/uusama"declare-xLANG="en_US.UTF-8"declare-xLANGUAGE="en_US:"declare-xLESSCLOSE="/usr/bin/lesspipe%s%s"declare-xLESSOPEN="|/usr/bin/lesspipe%s"declare-xLOGNAME="uusama"declare-xMAIL="/var/mail/uusama"declare-xPATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"declare-xSSH_TTY="/dev/pts/0"declare-xTERM="xterm"declare-xUSER="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环境变量配置方法一:exportPATH使用export命令直接修改PATH的值,配置MySQL进入环境变量方法:exportPATH=/home/uusama/mysql/bin:$PATH#或者把PATH放在前面exportPATH=$PATH:/home/uusama/mysql/bin注意事项:生效时间:立即生效生效时间:对当前终端有效,关闭窗口后无效有效范围:只对当前用户有效不要忘记加上原配置到配置的环境变量,即$PATH部分,避免Linux环境变量原配置被覆盖配置方法二:vim~/.bashrc通过修改用户目录下的~/.bashrc文件进行配置:vim~/.bashrc#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bin注意:生效时间:在同一用户打开新终端时生效,或者手动source~/.bashrc生效有效期:永久有效有效范围:只对当前用户有效如果环境变量加载文件覆盖了PATH定义,可能不生效。Linux环境变量配置方法三:vim~/./.bash_profile#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bin注意:生效时间:当同一用户打开新终端,或者手动source~/.bash_profile生效有效期:永久有效范围:只对当前用户有效如果没有~/.bash_profile文件,可以编辑~/.profile文件或者新建Linux环境变量配置方法四:vim/etc/bashrc这个方法是修改系统配置和需要管理的成员权限(如root)或对文件的写权限:#如果/etc/bashrc文件不能编辑,需要修改为可编辑chmod-vu+w/etc/bashrcvim/etc/bashrc#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bin注意:生效时间:新打开的终端生效,或者手动source/etc/bashrc有效期:永久有效有效期范围:对所有用户有效Linux环境变量配置方法五:vim/etc/profile该方法修改系统配置,需要管理员权限或文件写入权限。类似于vim/etc/bashrc:#如果/etc/profile文件不可编辑,需要修改为可编辑chmod-vu+w/etc/profilevim/etc/profile#AddexportPATH=$PATH:/home/到最后一行uusama/mysql/bin的注意事项:生效时间:新打开的终端生效,或者手动source/etc/profile生效有效期:永久有效生效范围:对所有用户有效Linux环境变量配置方法六:vim/etc/environment方法是修改系统环境配置文件,需要管理员权限或者对文件写权限:#如果/etc/bashrc文件不能编辑,需要编辑chmod-vu+w/etc/environmentvim/etc/profile#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bin注意:生效时间:新开终端生效,或者手动源/etc/environment生效有效期:永久effective有效范围:对所有用户有效linux环境原理分析ipleofvariableloading以上列出了环境变量的各种配置方式,那么Linux是如何加载这些配置的呢?它们以什么顺序加载?特定的加载顺序会导致同名环境变量的定义被覆盖或不生效。环境变量的分类可以简单分为用户自定义环境变量和系统级环境变量。用户级环境变量定义文件:~/.bashrc、~/.profile(部分系统:~/.bash_profile)系统级环境变量定义文件:/etc/bashrc、/etc/profile(部分系统:/etc/bash_profile),/etc/environment另外,在用户环境变量中,系统会先读取~/.bash_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在每个文件的第一行添加如下代码,对应的把冒号后面的内容改成当前文件的绝对文件名。exportUU_ORDER="$UU_ORDER:~/.bash_profile"修改后保存,新开一个窗口,然后echo$UU_ORDER观察变量值:uusama@ubuntu:~$echo$UU_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~/.bashrcLinux环境变量文件加载详解从上面的测试可以很容易得出结论:Linux加载环境变量的顺序如下:系统环境变量->用户自定义环境变量/etc/environment->/etc/profile->~/.profile打开/etc/profile文件,会发现/etc/bash.bashrc文件会在文件的代码中加载,然后查看/etc/profile.d/目录下的.sh文件并加载。#/etc/profile:system-wide.profilefilefortheBourneshell(sh(1))#andBournecompatibleshells(bash(1),ksh(1),ash(1),...).if["$PS1"];thenif["$BASH"]&&["$BASH"!="/bin/sh"];then#Thefilebash.bashrcalreadysetsthedefaultPS1.#PS1='\h:\w\$'if[-f/etc/bash.bashrc];then./etc/bash.bashrcfielseif["`id-u`"-eq0];thenPS1='#'elsePS1='$'fififiif[-d/etc/profile.d];thenforiin/etc/profile.d/*.sh;doif[-r$i];then.$ifidoneunsetifi接下来打开~/.profile文件,你会发现文件中加载了~/.bashrc文件。#ifrunningbashif[-n"$BASH_VERSION"];then#include.bashrcifitexistsif[-f"$HOME/.bashrc"];then."$HOME/.bashrc"fifi#setPATHsoitincludesuser'sprivatebindirectoriesPATH="$HOME/bin:$HOME/.local/bin:$PATH”从~/.profile文件中的代码不难发现,/.profile文件只在用户登录时读取一次,而/.bashrc每次都会读取运行shell脚本一次。有些技巧可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,使用export在这个文件中定义一系列的变量,然后在~/.profile文件后面加上:sourcuusama.profile,这样你每次登录都可以使用自己在Shell脚本中定义的一系列变量。也可以使用alias命令为一些命令定义别名,比如aliasrm="rm-i"(需要双引号),将这段代码添加到~/.profile中,这样每次使用rm命令时,使用rm-i命令非常方便。