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

Linux环境变量配置总结

时间:2023-03-13 01:18:08 科技观察

01、Linux环境变量配置02、Linux读取环境变量03、Linux环境变量配置方法一:exportPATH04、Linux环境变量配置方法二:vim~/.bashrc05、Linux环境变量配置方法三:vim~/.bash_profile06,Linux环境变量配置方法四:vim/etc/bashrc07,Linux环境变量配置方法五:vim/etc/profile08,Linux环境变量配置方法六:vim/etc/environment09,Linux环境变量加载原理解析10.环境变量的分类11.Linux环境变量加载顺序的测试方法12.Linux环境变量文件加载详解13.一些小技巧01.Linux环境变量配置定制时经常需要配置安装软件环境变量,env的各种配置方式下面列出了熨烫变量。下面所有例子的环境说明如下:系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/bin推荐自己做的SpringBoot实际工程:https://github。com/YunaiV/ruoyi-vue-pro02,Linux读取环境变量读取环境变量的方法: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变量定义了运行命令的搜索路径,不同路径之间用c分隔olon:,和double在使用exportdefinition的时候可以加引号也是可选的。推荐自己的SpringCloud实战项目:https://github.com/YunaiV/onemall03、Linux环境变量配置方法一:exportPATH使用export命令直接修改PATH的值,配置MySQL进入环境变量方法:exportPATH=/home/uusama/mysql/bin:$PATH#或者把PATH放在前面关闭窗口后无效有效范围:只对当前用户有效不要忘记添加原来的配置,即$PATH部分,避免覆盖原来的配置04.Linux环境变量配置方法二:vim~/.bashrc通过修改用户目录下的~/.bashrc文件来配置:vim~/.bashrc#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bin注意:生效时间:同一个用户打开启动新终端时生效,或者手动source~/.bashrc生效时间:永久生效生效范围:只对当前用户有效如果后续有环境变量加载文件覆盖了PATH定义,可能不会05.Linux环境变量配置方法三:vim~/.bash_profile与修改~/.bashrc文件类似,但还需要在文件末尾添加新的路径:vim~/.bash_profile#AddexportPATH=$PATH:/home/uusama到最后一行/mysql/bin的注意事项:生效时间:同一用户打开新终端时生效,或者手动source~/.bash_profile有效有效期:永久有效有效范围:仅有效对于当前用户如果没有~/.bash_profile文件,那么就可以编辑~/.profile文件或创建一个新文件。06.Linux环境变量配置方法四:vim/etc/bashrc这种方法是修改系统配置,需要管理员权限(比如root)或者对文件有写权限:#如果/etc/bashrc文件不可编辑,需要编辑chmod-vu+w/etc/bashrcvim/etc/bashrc#在最后一行添加exportPATH=$PATH:/home/uusama/mysql/bi注意事项:生效时间:新建终端生效,或手动源/etc/bashrc生效生效时间:永久生效有效范围:对所有用户有效07、Linux环境变量配置方法五:vim/etc/profile此方法修改系统配置需要管理员权限或者文件的写权限,类似vim/etc/bashrc:#如果/etc/profile文件不能编辑,需要编辑chmod-vu+w/etc/profilevim/etc/profile#AddexportPATH=$PATH:/home/uusama/mysql/bin到最后一行注意:生效时间:新开终端生效,或者手动源/etc/profile生效生效时间:永久有效生效范围:对所有用户生效08.linux环境变量配置方法六:vim/etc/environment这种方法是修改系统环境配置文件,需要管理员权限或者对该文件有写权限:#如果不能编辑/etc/bashrc文件,则需要eds修改为Editablechmod-vu+w/etc/environmentvim/etc/profile#addexportPATH=$PATH:/home/uusama/mysql/bin到最后一行注意:生效时间:新终端生效,或者手动source/etc/environmenteffective有效期:永久有效有效范围:对所有用户有效09、Linux环境变量加载原理分析以上列举了环境变量的各种配置方式,那么Linux是如何加载这些配置的呢?它们以什么顺序加载?特定的加载顺序会导致同名环境变量的定义被覆盖或不生效。10、环境变量的分类环境变量可以简单分为用户自定义环境变量和系统级环境变量。用户级环境变量定义文件:~/.bashrc、~/.profile(部分系统:~/.bash_profile)系统级环境变量定义文件:/etc/bashrc、/etc/profile(部分系统:/etc/bash_profile),/etc/environment另外,在用户环境变量中,系统会先读取~/.bash_profile(或~/.profile)文件,如果没有这个文件,则会读取~/.bash_login,然后去阅读~/.bashrc。11、测试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~/.bashrc12、linux环境变量文件加载详解从上面的测试可以很容易得出结论: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脚本一次。13.有些tricks可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,在这个文件中使用export定义一系列变量,然后在~/.profile文件后添加:sourcuusama.profile,这样可以在每次登录时使用自己在Shell脚本中定义的一系列变量。也可以使用alias命令为一些命令定义别名,比如aliasrm="rm-i"(需要双引号),将这段代码添加到~/.profile中,这样每次使用rm命令时,使用rm-i命令非常方便。