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

Linux环境变量总结

时间:2023-03-12 17:47:04 科技观察

Linux是一个多用户操作系统。多用户是指每个用户登录系统后都有自己专用的操作环境。而这个环境是由一组变量定义的,这些变量称为环境变量。用户可以修改自己的环境变量来满足环境的要求。环境变量设置方法对所有用户有效的永久变量这些变量对系统中的所有用户都有效,所有用户都可以使用这些变量。作用范围是整个系统。这个文件只能在root下修改。#vi/etc/profileexportCLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib新环境变量添加后,不会立即生效。要立即生效,需要运行source/etc/profile,否则只有生效后才能下次重新进入该用户。对单个用户有效的永久变量在用户目录下的.bash_profile文件中添加变量。这个文件是隐藏文件,可以用ll-a查看:$whoamirethink$vi/home/rethink/.bash_profileexportCLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib$source/home/rethink/.bash_profile中上图,红框框出的两个文件:.bashrc和.bash_profile。原则上,在设置这样的环境变量时,任意添加其中一个都是可以的。这两个文件的区别在于:.bash_profile是供交互式登录进入bashshell运行,.bashrc是供交互式非登录进入bashshell运行。可以这样理解,.bash_profile文件只会在用户登录时被读取一次,每次打开终端进行新的会话时都会读取.bashrc。Temporaryvalidenvironmentvariables(onlyvalidforthecurrentshell)此类环境变量只对当前shell有效。当我们注销或者关闭终端再重新打开时,这个环境变量就会消失。是暂时的。设置方法:在命令行下直接使用[导出变量名=变量值]定义变量。$exportNAME="rethink"$echo$NAMErethink设置环境变量常用命令echo用于打印显示环境变量,如:echo$NAME;export用于设置新的环境变量,如:exportNAME='rethink';updateenvironmentvariables更新环境变量,直接重新赋值:NAME='test'(注意:变量名前不需要加$);env显示当前用户的变量;set显示当前shell变量,其中包含用户变量;unset删除一个环境变量,如:unsetNAME;readonly设置环境变量为只读,如:readonlyNAME,只读变量unset无效。常用的环境变量PATH#echo$PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin路径之间用冒号隔开,这些路径有的可以找到可执行程序的目录列表。当我们输入一条命令时,shell首先会检查该命令是否为系统内部命令,如果不是,则会检查该命令是否为应用程序,shell会尝试从PATH中寻找这些应用程序。如果shell在这些路径目录下没有找到可执行文件,就会报错;如果找到,系统将调用并执行该应用程序。通过设置PATH,可以更方便我们运行程序或命令。要将目录路径添加到PATH,可以这样写:$pwd/root/docker/httpd$exportPATH=$PATH:$PWD$echo$PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd`可以看到在PATH后面增加了我们当前目录的路径`HOME用户的主要工作目录,也就是用户登录toLinux系统中的默认目录。$whoamirethink$echo$HOME/home/rethinkHISTSIZE保存历史命令的数量。我们输入的命令都会被系统保存下来,这个环境变量记录了要保存的命令条数。一般1000。$echo$HISTSIZE1000$HISTSIZE=1001$echo$HISTSIZE1001历史命令保存在内存中,退出或登录shell时,会自动保存或读取。我们可以通过history命令查看它们。你可以使用符号!执行指定序列号的历史命令。例如,要执行第二条历史命令,请输入!2。$history559ls60who61history|head-n562whoami63history5$!62whoamirootpts/02018-04-0411:00(101.81.92.18)LOGNAME当前用户登录名。$echo$LOGNAME重新考虑HOSTNAME主机名。$echo$HOSTNAMEJDu4e00u53f7SHELL当前用户使用的shell类型。$回声$SHELL/bin/bash