我正在使用 Ubuntu 14.04(在 VirtualBox VM 上)并通过aptitude以下方式安装 Apache Ant :
$ aptitude install ant
Run Code Online (Sandbox Code Playgroud)
二进制文件存储在/usr/bin/:
$ which ant
/usr/bin/ant
Run Code Online (Sandbox Code Playgroud)
现在我想设置ANT_HOME并将其添加到我的PATH环境变量中。在 Windows 上,很容易找到正确的文件夹 --ANT_HOME是存储安装和外观C:\Program Files\Apache Ant的文件夹(或者只是包含 Ant 二进制文件的文件夹的父目录)。
如何ANT_HOME在 Linux 系统(例如 Ubuntu Server)中找到正确的路径?
更新
该文档Oracle网站上说:
将以下行添加到文件中,替换安装 Ant 的目录:
ANT_HOME=/apache-install-dir/apache-ant-version
如何找出通向 的路径apache-install-dir?
我正在通过 WMI 类Win32_Environment探索环境变量。根据文档,不属于特定用户的变量可以是“系统”变量或“默认用户”变量。我的问题是,有什么区别,我将如何使用其中一个?
探索用作工作站的 Windows 2008 机器,我发现系统变量,但没有默认用户变量。
我对 Linux 非常陌生,并且在 CentOS 中应该是一个非常简单的 Bash 脚本时遇到了问题。
#! /bin/bash
# script to restore the cognos rds from snapshot
export AWS_RDS_HOME=/opt/aws/apitools/rds
export PATH=$PATH:$AWS_RDS_HOME/bin
export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.template
echo $AWS_RDS_HOME
echo $PATH
echo $AWS_CREDENTIAL_FILE
rds-delete-db-instance mydb --final-db-snapshot-identifier mydb-daily-$(date +%Y)-$(date +%m)-$(date +%d) --force -region eu-west-1
Run Code Online (Sandbox Code Playgroud)
我添加了 echo 语句,以便我可以看到发生了什么。我运行时的输出
sh myscript.sh
Run Code Online (Sandbox Code Playgroud)
是:
/opt/aws/apitools/rds
/bin/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/opt/aws/apitools/rds
/credential-file-path.template
rds-delete-db-instance: command not found
Run Code Online (Sandbox Code Playgroud)
因此,当我引用在同一脚本中设置的其他环境变量时,导出命令似乎不起作用。
我哪里错了?
更新:我已经尝试了下面的建议,但仍然不高兴。运行 bash -x 很有趣。每当我尝试连接时,下面的 "\r" 是否会在后面?例如
#! /bin/bash
# test script
export AWS_RDS_HOME=/opt/aws/apitools/rds
export PATH=$PATH:$AWS_RDS_HOME/bin
export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.template
echo $AWS_RDS_HOME
echo $PATH
echo $AWS_CREDENTIAL_FILE
Run Code Online (Sandbox Code Playgroud)
结果是: …
bash centos environment-variables export amazon-web-services
我需要从 Tomcat 应用程序读取环境变量。我试图做:
/opt/tomcat/conf/catalina.properties
Run Code Online (Sandbox Code Playgroud)
最后添加:
my.special.variable=some_value
Run Code Online (Sandbox Code Playgroud)
并阅读它
System.getenv("my.special.variable")
Run Code Online (Sandbox Code Playgroud)
我得到空
笔记
我在操作系统级别(linux ubuntu)定义了几个,但获得它们的结果是 tomcat root - /opt/tomcat。
例如 :
用printenv我可以看到变量 HOME(也用 echo $HOME)。从 tomcat 之外的程序运行代码 - 结果是正确的 - /home/user。
部署在 tomcat 中的应用程序中完全相同的代码返回 - /opt/tomcat。
我什么时候需要重新启动服务器以使用变量新值,或者不需要重新启动?与操作系统版本相关吗?
我已经编辑了我/etc/bashrc的设置,LD_LIBRARY_PATH就像我之前问的问题一样。不过好像没有生效。即使echo $LD_LIBRARY_PATH确实显示了我的修改。并运行我的程序:LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi显式确实有效。我需要重新启动系统吗?这是怎么回事?
如果我在zsh里面bash(在 macOS Sierra 上)运行,为什么$SHELL仍然指向/bin/bash,而不是/bin/zsh?
$ echo $SHELL
/bin/bash
$ zsh
% echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud) 我有一个运行 CentOS 的小型项目服务器沙箱。
设置一个新的服务器包时,我意识到我需要将新目录添加到路径中,并且发现$HOME主用户有一个尾部斜杠。
我找不到这个设置在哪里。它不在,
~/.bashrc
~/.bash_profile
/etc/bashrc
/etc/profile.d
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?