【问题标题】:changes in bash_profile not getting reflected linux [closed]bash_profile 的变化没有得到反映 linux [关闭]
【发布时间】:2014-04-02 20:10:02
【问题描述】:

下面是我编辑的.bash_profile 文件。当我使用echo $JAVA_HOMEecho $PATH 时,我在此处所做的更改没有得到体现。

当我使用$PATH 时,我得到/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin,它在.bash_profiles 或.bash_rcs 中的任何一个中都找不到。

我怎样才能让我的.bash_profile 工作?

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

export PATH=/sbin/:$PATH

export PATH=$PATH:$HOME/bin

export JAVA_HOME=/export/home/lg199447/dev/jdk1.7.0_51/bin/java

export PATH=$PATH:/export/home/lg199447/dev/jdk1.7.0_51/bin

注意: 我正在尝试使用 ssh 从 OS X 终端登录服务器,登录后,我的终端显示 $ 后跟光标。我无法使用箭头键和制表符。所以我通过在/bin 目录中执行 bash 来手动盯着 bash。这将我的终端更改为lg199447@VDCALD564 /]$,并且我能够以在 mac 中使用的正常方式使用终端。

【问题讨论】:

  • JAVA_HOME变量不应该是/export/home/lg199447/dev/jdk1.7.0_51,而不是java可执行文件的路径吗?
  • 你是对的。但是我还没有获得root访问权限。直到那时我都在尝试。但这应该不是 java 的问题吧?

标签: linux macos bash shell


【解决方案1】:

这听起来你在 linux 机器上登录的 shell 不是bash,而是其他一些 shell 变体。 ~/.bash_profile 仅用于 bash 登录 shell,因此如果您只执行 bash,则不是。

要么将/bin/bash 设为你的登录shell(使用命令chsh -s /bin/bash),要么使用bash -l 启动bash,那么它应该可以工作。

另一种选择是将您的启动代码放在 ~/.bashrc 中,该代码用于所有交互式 bash 会话(除非使用 --norc 选项明确禁用)。

【讨论】:

  • $ echo $0 给了我 -ksh。看起来我的基础 shell 是 ksh。
  • 换壳不会对服务器造成任何问题?因为我是第一次配置服务器,不确定更改为 bash 是否安全。有没有办法为我正在使用的 ksh shell 设置路径?
  • 不,它不应该有太大的不同,它只会更改为您的用户的交互式登录会话启动的 shell,它不会影响服务器上的任何其他内容。 --- 并在个人笔记上 - ksh - ughhh - 尽快更改它:)
  • 记下了。当我获得管理员访问权限时会立即执行此操作:D
  • chsh,如果可用,应该作为没有管理员权限的非特权用户工作。它允许您将登录 shell 更改为/etc/shells 中列出的任何 shell。另一个注意事项:大多数 shell 在作为登录 shell 启动时读取 ~/.profile(包括 ksh 和 bash,如果没有找到 .bash_profile),所以这将是您可以放置​​导出的另一种选择...
猜你喜欢
  • 2015-03-29
  • 2012-08-31
  • 1970-01-01
  • 2021-09-07
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
相关资源
最近更新 更多