简介 变量 普通用户下,设置并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…
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执行脚本,就找不到变量,未能获取到值. 原因 sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来. sudo的配置文件是 /etc/sudoers 需要root权限才能读取: 在/etc/sudoers中修改:Defaults    env_reset为:Defaults   …
这是因为在Linux上,bash会有四种模式,根据不同的case,Linux会加载不同模式的bash.一般如果你自己直接登录主机,能看到环境变量,但是使用ssh 远程登录执行脚本就找不到环境变量,那么在你的脚本中修改脚本解释器为如下形式,就能解决你的问题: #!/bin/bash --login 如果想了解详细的bash的四种模式以及各种模式的特点,请参考下面这篇文章,分析的非常详细: SSH连接远程主机执行脚本的环境变量问题…
参考这里:https://www.cnblogs.com/zhongshiqiang/p/10839666.html 使用sudo -E 保留当前用户环境,这时就不会存在找不到环境变量的问题了.…
现象,我在/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 方法二. 可以把需要传递环境…
由host $ export DVSDK="${HOME}/ti-dvsdk_dm368-evm_xx_xx_xx_xx"引发的问题 1.${HOME}:首先, HOME 是个变量,它代表你的 home 目录,变量前必须加上 $ 符号,否则会报错 usr/local/dvsdk为dvsdk的destination folder 由#echo $DVSDK测试环境变量添加成功否     2.想要使得开机时自动加载这个环境变量免除以后每次设置,可将其写入/etc/re.local    L…
1echo $ <变量名> //显示某个环境变量 2env     // environment (环境) 的简写,列出来所有的环境变量 3set     //显示所有本地定义的Shell变量,这个命令除了会将环境变量列出来之外,其它我们的自定义的变量,都会被列出来.因此,想要观察目前 shell 环境下的所有变量,就用 set 即可! 4export 命令 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,sh…
出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态. 所以PATH这个变量不包括用户自定义设置的内容,如找不到/usr/local/bin/下面的命令在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc #在最下面添加如下一行 alias sudo="sudo env PATH=$PATH" source ~/.bashrc 之后sudo就有可以找到/usr/local/bin下面的命令了…
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同! 1. 通过SSH登录后再执行命令和脚本 这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login. login故名思义,即登陆,login shel…
出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态.所以PATH这个变量不包括用户自定义设置的内容 在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc alias sudo="sudo env PATH=$PATH" 有这样一个shell脚本,其内容如下,没有给其x权限 vim test.sh #!/bin/bash echo "${PATH}" # 执行该脚本,可以看到echo输…
在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas…
在网上遍历了很久,终于找到了一个简单且令人满意的答案: 定位到PyQt5发布文件所需的plugins的位置: 新建一个名为“设置环境变量”的cmd脚本,在里面写上: wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_PATH",username="<system>",VariableValue="%cd%\plugins" 保存关闭后执行.…
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参数.环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置源,我们可以选择不同的格式(比如XML.JSON和INI等) .如果这些默认支持的配置源形式还不能满足你的需求,我们还可以通过注册自定义ConfigurationSource的方式将其他形式数据作为我们的配置来源. [ 本文已经同…
1. tomcat——>bin——>setclasspath.bat,使用记事本打开. 2. 添加如下代码即可: 为自己实际的环境变量配置为准!!! set JAVA_HOME=D:\IDEA\IDEA\jdk 具体如图: 3.详情解释 startup.bat里边实际调用了另一个批处理,就是setclasspath.bat这个文件,把这个文件以文本形式打开,里边其实写的就是寻找你配置的JAVA_HOME的路径 其中该部分为编辑位置(如图) 然后进行编辑,因为电脑本身找不到,为了让他找到就直接给…
Linux export命令用于设置或显示环境变量. 在shell中执行程序时,shell会提供一组环境变量.export可新增,修改或删除环境变量,供后续执行的程序使用.export的效力仅及于该次登陆操作. 语法 export [-fnp][变量名称]=[变量设置值] 参数说明: -f 代表[变量名称]中为函数名称. -n 删除指定的变量.变量实际上并未删除,只是不会输出到后续指令的执行环境中. -p 列出所有的shell赋予程序的环境变量. 实例: 列出当前所有的环境变量 export -…
在linux中环境变量HISTCONTROL可以控制历史的记录方式. HISTCONTROL有以下的选项: ignoredups          默认,忽略重复命令 ignorespace        忽略所有一空格开头的命令 ignoreboth          ignoredups 和 ignorespace 的组合 erasedups          删除历史记录中重复命令,相同的指令仅保留最近的一个 如果同时设定多个选项,中间使用冒号 如: HISTCONTROL=ignores…
[oracle@sta ~]$ vi .bash_profile # .bash_profile # Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATHexport PATHORACLE_BASE=/u01/app/oracleORACLE_HOME=…
具体方法就是在ssh上执行 yum update bash 完成后重启VPS.…
打开 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…
1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #!/usr/bin/python3 import os import sys print(sys.path) print(sys.path[]) 执行结果: [root@localhost tmp]# ./py_test1/pytest24.py ['/tmp/py_test1', '/usr/local/lib/python36.zi…
import cx_Oracle Traceback (most recent call last): File "", line 1, in ? ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory 看以下帖子解决的,唯一比他幸运的是看了他的贴子,不用花半天~:) ~~~~~~~~~~~~ crontab 中 python 脚本执行失败的解决方法 写服务器程序…
这是第一次在博客园中写自己的随笔,也是第一次使用Markdown的编辑环境,值得纪念一下!希望在以后学习linux的道路上能多多记录自己的学习心得和遇到问题的解决方法,朝着运维的方向迈出坚实的脚步. 问题描述 最近在编译一个开源软件时,在好不容易配置好各种编译环境之后,由于各种权限问题还是无法正常进行编译,所以索性切换到root用户下进行编译,这时自然不存在所谓的无权限问题了.但是有时候并不想在root用户和普通用户来回切换,说白了就是懒得输入root用户的密码,太长了.于是就想到了sudo命令…
    Linux 的变量可分为两类:环境变量和本地变量   环境变量:或者称为全局变量,存在于所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量. 本地变量:当前shell 中的变量,很显然本地变量中肯定包含环境变量.Linux 的本地变量的非环境变量不具备继承性.   Linux 中环境变量的文件     当你进入系统的时候,Linux 就会为你读入系统的环境变量,Linux 中有很多…
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…
在shell脚本设置了环境变量,如export LIBRARY_PATH=./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误 error while loading shared libraries: libww.so: cannot open shared object file: No such file or directory 但是如果把export那句话单独在命令行运行,在gcc编译代码后不会出现问题 怎么也想不通,为什么脚本执行了,设置了环境变量,但是运行可执行文件总是…
本文地址:http://www.cnblogs.com/archimedes/p/linux-envionment-variables.html,转载请注明源地址. 1.什么是环境变量 bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问 在bash shell中,环境变量分为两类:全局变量和局部变量 (1)全局环境变量 全局环境变量不仅对shell会话可见,对所有shell创建的子进程中需要获得父…
5.1 什么时环境变量 bash shell用一个成为环境变量的特性来存储有关的shell回话和工作环境的信息,这是它们成为环境变量的原因.它允许你在内存中存储数据,以便运行在账户.系统.shell的特性以及任何其他你需要存储的数据 环境变量的分类 全局变量 局部变量 5.1.1 全局环境变量 全局环境变量不仅对shell会话可见,而且对所有shell创建的子进程也可见,局部变量只是对创建的他们的shell可见 这对全局环境变量对那些子进程中需要获得父进程信息的程序来说非常有用 系统环境变量一律…
1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH=/home/.....(动态库的目录) 不过这种设置方法只是在当前的session中有效 你可以修改配置文件实现任何session都有效 2.环境变量的设置 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在"/opt /…