出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态.所以PATH这个变量不包括用户自定义设置的内容 在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc alias sudo="sudo env PATH=$PATH" 有这样一个shell脚本,其内容如下,没有给其x权限 vim test.sh #!/bin/bash echo "${PATH}" # 执行该脚本,可以看到echo输…
出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态. 所以PATH这个变量不包括用户自定义设置的内容,如找不到/usr/local/bin/下面的命令在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc #在最下面添加如下一行 alias sudo="sudo env PATH=$PATH" source ~/.bashrc 之后sudo就有可以找到/usr/local/bin下面的命令了…
sudo执行脚本找不到变量 问题 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat tesh.sh echo $var $ var=aaa $ export var # export 变量 $ sudo echo $var # sudo执行echo命令,返回变量值 aaa $ sudo bash test.sh # sudo执行脚本,不能获取变…
简介 变量 普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat tesh.sh echo $var $ var=aaa $ export var # export 变量 $ sudo echo $var # sudo执行echo命令,返回变量值 aaa $ sudo bash test.sh # sudo执行脚本,不能获取变量值 $ bash te…
参考这里:https://www.cnblogs.com/zhongshiqiang/p/10839666.html 使用sudo -E 保留当前用户环境,这时就不会存在找不到环境变量的问题了.…
这是因为在Linux上,bash会有四种模式,根据不同的case,Linux会加载不同模式的bash.一般如果你自己直接登录主机,能看到环境变量,但是使用ssh 远程登录执行脚本就找不到环境变量,那么在你的脚本中修改脚本解释器为如下形式,就能解决你的问题: #!/bin/bash --login 如果想了解详细的bash的四种模式以及各种模式的特点,请参考下面这篇文章,分析的非常详细: SSH连接远程主机执行脚本的环境变量问题…
问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本, 然后再sudo执行脚本,就找不到变量,未能获取到值. 原因 sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来. sudo的配置文件是 /etc/sudoers 需要root权限才能读取: 在/etc/sudoers中修改:Defaults    env_reset为:Defaults   …
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同! 1. 通过SSH登录后再执行命令和脚本 这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login. login故名思义,即登陆,login shel…
问题背景 在容器中,在 /etc/profile . /etc/environment 设置了环境变量 退出容器,重新进入容器 刚刚设置的环境变量失效了 解决办法 将环境变量设置在 /root/.bashrc 优点 重启容器之后,文件内的环境变量仍然生效 缺点 只针对 root 用户生效 扩展 更多 Linux 配置环境变量的知识可看:https://www.cnblogs.com/poloyy/p/12187148.html…
这个问题出现服务器有多个 PHP 版本,php -v和phpinfo()显示两个不同的版本 最近真的,都给朋友解决问题了... phpinfo查看的 php 版本是 7.2.6,到 bash 去使用php -v查看的确是 5.4.2 直接上手先改环境变量,全局永久生效的那种~ vi /etc/profile 在最后加入对应的 PHP 路径 export PATH=$PATH:/usr/local/php/bin 保存,然后让配置生效 source /etc/profile 使用php -v查看还…
打开 gedit /root/.bashrc   ,在文件的末尾添加: source /etc/profile 然后执行更新:source /root/.bashrc…
#在系统中输入命令,报如下错误: [root@a1 work]# ll-bash: ls: command not found #昨时解决办法:export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin #永久解决办法:echo "export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/roobo/s…
参考:http://blog.51cto.com/4925054/2127840 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> 1.前往官网下载:https://projectlombok.org/download  lombok.jar 2.将lombok.jar放在eclipse的安装目…
现象,我在/etc/profile里设置全局代理,然后使用命令 1.curl http://www.baidu.com  走代理 2.sudo curl http://www.baidu.com 并没有走代理 使用env和sudo env查看环境变量,发现代理设置只存在于env里,sudo env里并没有代理的信息 那么如何使用sudo的时候,把环境变量也带进去呢? 方法一. 在/etc/sudoers中添加以下内容作用相同: Defaults !env_reset 方法二. 可以把需要传递环境…
这是第一次在博客园中写自己的随笔,也是第一次使用Markdown的编辑环境,值得纪念一下!希望在以后学习linux的道路上能多多记录自己的学习心得和遇到问题的解决方法,朝着运维的方向迈出坚实的脚步. 问题描述 最近在编译一个开源软件时,在好不容易配置好各种编译环境之后,由于各种权限问题还是无法正常进行编译,所以索性切换到root用户下进行编译,这时自然不存在所谓的无权限问题了.但是有时候并不想在root用户和普通用户来回切换,说白了就是懒得输入root用户的密码,太长了.于是就想到了sudo命令…
sudo中默认配置会重置环境变量,所以使用sudo的时候需要小心这点.如何让sudo继承我们需要的环境变量?有如下两种方法: #sudo visudo 或者 #vi  /etc/sudoers     在Defaults env_keep添加JAVA_HOME和PATH就可以继承下来已有的环境变量了. 或者 1.编辑/etc/sudoers文件把Defaults env_reset改成Defaults !env_reset 2.编辑.bashrc,最后添加alias sudo='sudo env…
背景:在linux下,root用户安装完jdk后,非root用户不能使用java环境变量. 问题排查: 通过在root和非root用户下分别执行echo $PATH 可以观察环境变量的异同.然后将需要的环境变量加入到非root用户中 1 介绍 在 linux 里设置环境变量的方法 ( export PATH )如果使用源码包安装的软件,在安装完成后一般情况下要设置该软件命令执行的路径,那就是 PATH 变量.如何来设置 PAHT变量呢?我们又三种方法实现例如:压力测试工具sysbench的命令目…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt226 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车.之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到 任何一个目录下. 二. 需要配置的环境变量 1. PATH…
useradd 用户名 passwd 用户名,给指定用户设密码 passwd给当前用户设密码 添加一个用户系统会自动在以下文件或目录创建对应用户信息: [root@localhost ~]# grep shipotian /etc/passwdshipotian:x:1002:1002::/home/shipotian:/bin/bash[root@localhost ~]# grep shipotian /etc/shadowshipotian:$6$mDzNFfmC$c/PmvY4M2WIo…
编译Linux内核的最后是make modules_install install,这两个一般都需要root权限,即sudo,而一般我交叉编译内核时都是在.bashrc中export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 等等,而sudo默认会复位掉环境变量,导致设置的变量无效. sudo visudo 执行以上命令,在打在的文件中 Defaults env_reset行下面加一行 Defaults env_keep="ARCH CROSSED_…
目录 一.注入 IConfiguration 二.从配置文件 appsettings.json 中获取环境变量 三.从项目中获取环境变量 四.用户秘钥设置环境变量 前言:有很多人将秘钥,数据库连接字符串写到项目配置文件中,并提交到源代码控制或者共享源代码控制,并在那里使用,这使得项目出现了很大的风险. 首先新建一个 ASP.NET Core 的 MVC 项目,就可以直接进行测试. 一.注入 IConfiguration 首先将注入 IConfiguration 并命名为 Configuratio…
环境为Ubuntu. 设定系统变量意思就是所有用户都可以使用设定的环境变量,而设定用户的单个环境变量意思就是只有设定环境的该用户才可以使用这个环境变量. 这里以java的jdk环境变量JAVA_HOME举例: 首先查看环境变量命令有: env  查看当前用户可使用的所有环境变量 echo $XXX  查看单个名称为XXX的环境变量.例如: echo $JAVA_HOME 1.如何设定系统环境变量: 系统全局环境变量的设定需要在文件/etc/profile文件中编辑设定.这里用vi命令编辑prof…
在Ubuntu.centos中有如下几个文件可以设置环境变量1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 立即生效source /etc/profile  或者 . /etc/profile  (有空格) 2./etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量. 3.~/.bash_profile:在登录时用到的第三…
Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件. 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径 在Linux系统下,如果你下载并安装应用程序,很有可…
Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件. 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径 在Linux系统下,如果你下载并安装应用程序,很有可…
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手.究其原因,就是对这些概念没有理解,知其然但不知其所以然.下面的内容,就是帮助大家知其所以然. 一.基本原理 首先看PATH环境变量. JAVA的初学者,必须要学会配置PATH环境变量,否则无法编译.运行JAVA程序.那么,为什么要配置PAT…
-----------------------------------------------------ANDROID_SDK_HOME:/home/cmm/avds PATH:/home/cmm/android-sdk-linux/tools;/home/cmm/android-sdk-linux/platform-tools CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib ---------------------------------------…
在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中, 由于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行. 接下来sudo 运行shell脚本,提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了. 查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - root命令,这时又可以找到JAVA_HOME这个…
在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas…
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手.究其原因,就是对这些概念没有理解,知其然但不知其所以然.下面的内容,就是帮助大家知其所以然. 一.基本原理 首先看PATH环境变量. JAVA的初学者,必须要学会配置PATH环境变量,否则无法编译.运行JAVA程序.那么,为什么要配置PAT…