关于环境变量:关于环境变量配置的思考总结

其实写这一篇时还是十分不好意思的,毕竟无论是学习还是开发这么久,第一步就是配置SDK,编辑环境变量。然而这一步我为了防止一些未知的谬误,防止踩坑,通常采纳的形式是网上找对应的无效图文教程,跟着一步步实现。整个过程中还是少了一点思考,因而印象不深。明天,借着搭建go的开发环境,对整个配置过程进行了梳理,有了一些思考与总结。 名词了解首先,在开始之前,咱们先要了解以下概念: SDKSDK:全称(Software Development Kit 软件开发工具包),个别都是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建设应用软件时的开发工具的汇合。 因而针对不同的操作系统往往有不同的SDK,以go官网给出的SDK为例: darwin:mac下的SDK。其中pkg是图形化安装包,而tar.gz是解压就能够应用。linux:linux下的SDK。386是32位零碎,amd64是64位零碎。windows:win下的SDK,其中msi是图形化安装包,而zip是解压就能够应用。freebsd:unix下的SDK。能够把SDK了解为由第三方服务商提供的实现软件产品某项性能的工具包,外面个别以汇合api和文档、范例、工具的模式呈现,也就是由很多类型文件的汇合。这里以间接从官网下载的go的SDK(zip解压后)为例: 能够发现,外面有很多文件,例如api,可执行的二进制bin文件(例如go.exe 用来编译和运行go源码,gofmt.exe),doc文档,lib相干的库文件,test测试用的文件,以及src源码等等。 环境变量 用户环境变量用户环境变量,是独属于某个用户的,只有配置这个环境变量的用户能力应用它。一旦切换用户就无奈应用该环境变量。 零碎环境变量零碎环境变量是整个零碎的。配置了零碎环境变量后,应用该操作系统的任何用户都能通过这个环境变量间接在命令窗口间接找到相应程序。 能够通过零碎变量中的内容可知,该零碎变量有很多,并且每一项都有其对应的值,每个变量名都有其独特的含意与作用。 PATH:指定可执行文件的搜寻门路。个别配置环境常在PATH变量放入配置程序门路。个别可执行文件都在二进制bin目录中。因而咱们通常会把软件目录下的bin门路增加到PATH中。 定义PATH环境变量的益处是:即便不在该可执行文件的目录下,依然能够通过命令行调用该可执行文件。 这里须要额定留神的一点是,通常零碎在环境变量中寻找程序门路时,是由返回后(或者说是从上往下)寻找,找到第一个后会间接应用,并且不再往下寻找。因而存在多个门路时,要把想要应用的门路挪动到PATH中靠前的地位。例如同时装了mysql8.0和5.7两个版本,这两个版本查版本号的命令都是mysql -V,对于mysql这个命令零碎会在PATH中寻找它的门路,如果8.0的path在5.7的下面,则会执行8.0的程序,而不会执行5.7的程序。因而5.7的path就相当于生效的,所以没有必要增加同一程序的两个path。 此外,零碎环境变量中,还能够采纳% %来调用零碎中的其余环境变量。例如在配置go的环境时,先定义了go的SDK的根目录 D:\go 其变量名为GOROOT,作为go的执行目录,那么在配置它的PATH时,能够将它的值设置为 %GOROOT%\bin,起到变量替换的作用。将来如果SDK根目录扭转的话,也只须要批改GOROOT变量值即可,而不须要动PATH中的变量值。类比java,java中也把JAVA_HOME作为java的执行目录。 最初,一点点感触,通常咱们可能都习惯于.msi主动装置配置好所有,而疏忽了对于一些根底设置的思考,因而经常会有“最简单的一步是配置环境”这种说法,其实用心去思考总结,这种说法也就不攻自破了。 欢送关注集体公众号【AIShareLab】,一起交换更多前沿算法,Paper解读,我的项目源码,面经总结。

January 23, 2023 · 1 min · jiezi

关于环境变量:JAVA-环境变量怎么配置

java中怎么配置环境变量学习咱们的java须要一个编译执行的环境,所以须要配置一个环境变量 配置环境变量首先哈 须要下载一个 JDK ,下载 装置结束后。上面来看我操作 步骤 1 (关上)1.关上计算机 2.看到计算机右键点击属性 3.点击零碎高级设置后 你来到了零碎属性 4.点击高级 5.这里有个环境变量(点击它)。(祝贺实现你步骤1) 步骤 2 (配置)欢送来到 配置 这里难倒了9999人 你能承受挑战吗? 配置有三兄弟: 1.Path 2. Classpath 3. JAVA_HOME(零碎没有的话手动增加) 三号变量名:JAVA_HOME 三号变量值:C:\Program Files\Java\jdk-9.0.4_windows-x64_bin (你的JKD绝对路径) 二号变量名:Path 二号变量值:C:\Program Files\Java\jdk-9.0.4\bin; (解压后jkd包bin门路) 来上图: 一号变量名:Classpath 一号变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar(不重要) 环境变量 哈哈哈 配置结束了吗? 我环境变量 还有一手 步骤 3 (测试后果)windows健 + R 关上后 输出 cmd 输出 java javac 呈现这两个后 你就能够结束 变量大魔王的 魔抓了 java正确后果为 : javac正确后果为 : 完

July 14, 2021 · 1 min · jiezi

关于环境变量:此环境变量太大此对话框允许将值设置为最长-2047-个字符

可能的起因1.环境变量反复了 2.环境变量太多了,或者太长了。 解决1.删掉反复的环境变量     2.将门路的公共前缀提取为一个变量例如下图红圈局部,门路前缀很长,且统一,则能够提取进去,作为一个变量的值   新建一个变量,名称轻易取,值是方才的公共门路前缀   用%变量名%替换方才的公共门路前缀。最初保留即可。      3.新建一个扩大变量,作用相似path,再在path中引入该扩大变量新建一个变量,名称轻易取,比方myEnvExtension。 值就是一些门路,这些门路是你原本要放到path中的门路,然而因为path太长了,放不下了,就放到myEnvExtension中 (意思是变量myEnvExtension中放一部分门路,而后再将变量myEnvExtension放到path中,那path其实包含了你放在myEnvExtension中的门路。当前你增加环境变量时间接放到变量myEnvExtension就行了,不必再放到path中了,免得又说此环境变量太大。)   在path中用%myEnvExtension%引入你方才创立的变量myEnvExtension      参考解决windows下环境变量太大的问题(终极!!可用)

April 12, 2021 · 1 min · jiezi

为什么linux中sudo执行会找不到命令

sudo:command not found在本地装了个Ubuntu虚拟机,golang环境搭好了并加入PATH环境变量,make编译源码时显示Permission denied,然后sudo执行编译源码时显示go : command not found。 然后尝试执行go version命令 非root用户执行 :go version go1.12.6 linux/amd64root用户执行 :go version go1.12.6 linux/amd64非root用户sudo执行 : sudo: go: command not found这???是不是很奇怪???到底是因为什么呢??原来root用户和非root用户正常执行命令时,使用的PATH配置文件是 /etc/environment非root用户sudo执行命令时,使用的PATH配置文件是 /etc/sudoers

July 10, 2019 · 1 min · jiezi

Linux系统配置环境变量

Linux系统环境变量包括PATH、LD_LIBRARY_PATH等,可以通过echo $PATH、echo $LD_LIBRARY_PATH等命令查看系统当前的环境变量 其中PATH是系统可执行程序的查找路径,LD_LIBRARY_PATH是系统动态库的查找路径 修改PATH环境变量(以配置golang环境变量为例),四种方法1.终端窗口输入export PATH=$PATH:/usr/local/go/bin 生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户2.通过修改用户目录下的.bashrc文件 vi ~/.bashrc #在最后一行添上: export PATH=$PATH:/usr/local/go/bin生效方法:(有以下两种) 1.关闭当前终端窗口,重新打开一个新终端窗口就能生效2.输入“source ~/.bashrc”命令,立即生效有效期限:永久有效用户局限:仅对当前用户 3.通过修改系统级别的profile文件: vi /etc/profile /export PATH #找到设置PATH的行,添加 export PATH=$PATH:/usr/local/go/bin生效方法:系统重启有效期限:永久有效用户局限:对所有用户4.通过修改environment文件:vi /etc/environment在PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"后边添加“:/usr/local/go/bin” 生效方法:系统重启有效期限:永久有效用户局限:对所有用户修改LD_LIBRARY_PATH环境变量(以配置/usr/local/gcc/lib64为例),三种方法1.终端窗口输入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc/lib64 生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户2. 修改用户目录下的.bashrc或.bash_profile文件,以.bashrc为例 vi ~/.bashrc #在最后一行添上: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc/lib64生效方法:(有以下两种) 1.关闭当前终端窗口,重新打开一个新终端窗口就能生效2.输入“source ~/.bashrc”命令,立即生效有效期限:永久有效用户局限:仅对当前用户 3.通过修改系统级别的profile文件: vi /etc/profile /export PATH #找到设置PATH的行,添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc/lib64生效方法:系统重启有效期限:永久有效用户局限:对所有用户4.通过修改/etc/ld.so.conf文件:vi /etc/ld.so.conf下面加一行/usr/local/gcc/lib64 生效方法:执行ldconfig命令 ldconfig的主要用途:默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。搜索出可共享的动态链接库,库文件的格式为:lib*.so.,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,该文件保存已排好序的动态链接库名字列表。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。有效期限:永久有效用户局限:对所有用户

July 9, 2019 · 1 min · jiezi

乐字节java学习03path环境变量

1、path环境变量的作用保证javac命令可以在任意目录下运行。 2、path配置的两种方案:方法一 如下: ①点击计算机->右键->属性 ②高级系统设置 ③高级—>环境变量 ④系统变量 àPath—>编辑à光标移到最前面/后面à加上英文状态下的分号”;” ⑤进入到安装 jdk目录 下的bin,然后单击地址栏将此路径复制到变量值的最前面。 ⑥一路确定并退出 方法二 如下(推荐): 找到环境变量的位置,在系统变量里面 新建: 变量名:JAVA_HOME 变量值:C:Program FilesJavajdk1.7.0_71 修改: 变量名:Path 变量值:%JAVA_HOME%bin;以前的内容 测试jdk是否安装正确以及环境变量是否配置正确 开始-运行-cmd- javac –version 回车 注意:配置环境变量之后,切记要重新打开DOS窗口,否则配置不生效。 关注乐字节,获取更多Java技术干货视频和文章,乐字节原创!

June 18, 2019 · 1 min · jiezi

实现简单的监控脚本Bash的执行和异常捕获

当我们需要监控服务运行状态时,一般的策略是写定时脚本,定时执行探测服务状态,如果出现预期外情况,就报警。那么第一步我们就需要学会写一个监控脚本,这里我们会讲到bash的执行环境和异常捕获,以及一些简单的全局参数。 示例先看一段shell代码,这个监控脚本会时刻监控我们的mysql进程是否正常服务,每2分钟执行一次: #!/bin/bash#设置异常的捕获和退出set -eset -o pipefailset -u#获取当前脚本执行的命令和路径#self_name=`readlink -f $0`#self_path=`dirname $self_name`set +e# 脚本主体mysql_process_num=`ps aux | grep mysql | grep -v grep | grep -v bash | wc -l`set -e# 判断脚本输出,此处0为异常if [ "$mysql_process_num" -ge 1 ];then echo "$mysql_process_num|proc_name=mysql"else echo "0|proc_name=mysql"fi脚本命令解析执行器#!/bin/bash首行表示此脚本使用/bin/sh来解释执行,#!是特殊的标识符,后跟此脚本解释器的路径。类似的还有/bin/sh, /bin/perl, /bin/awk等。 我们在使用bash执行脚本的时候,会创建一个新的Shell,这个Shell就是脚本的执行环境,并默认提供这个环境的各个参数。 异常捕获set -eset -o pipefailset -uset +e我们的Shell会给脚本提供默认的环境参数,但是我们也可以用set命令来修改运行参数。在官方手册里一共有十几个参数,我们介绍常用的四个参数。 如果我们直接在终端运行set,不带任何参数,会显示所有的环境变量和Shell函数。 开启和关闭参数我们常见的类似传参形式的set -e代表打开e代表的环境参数,相反的set +e代表关闭e代表的环境参数。 捕获单行异常当我们遇到一个异常,如操作不存在的变量或者一行指令执行出错(行指令返回值不为0),Bash会默认输出错误信息,然后忽略这行错误,继续执行。这在大部分场景下并不是开发者想要的行为,也不利于脚本的安全和Debug。我们应该在错误出现的时候输出错误信息并中断执行。这样能够防止错误被累计和放大。 # 可执行文件run#!/bin/bash# 调用未定义的命令fooecho bar# 执行该文件$ ./run./run: line 3: foo: command not foundbar可以看到输出了错误信息,并继续执行。 如果我们想保证单行如果出现错误,就中断执行脚本,可以有三种写法: # 方法一command || exit 1# 方法二if ! command; then exit 1; fi# 方法三commandif [ "$?" -ne 0 ]; then exit 1; fi上面的方法统一为判断一行指令返回值是否为0来判断异常。类似的,如果我们的多个命令有依赖关系,即后者的执行需要前者成功,则需要写: ...

June 11, 2019 · 2 min · jiezi