标签: bashrc

为什么 ~/.bash_profile 在打开终端时没有得到来源?

问题

我有一个 Ubuntu 11.04 虚拟机,我想设置我的 Java 开发环境。我做了如下

  1. sudo apt-get install openjdk-6-jdk
  2. 将以下条目添加到~/.bash_profile

    export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
    
    export PATH=$PATH:$JAVA_HOME/bin
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存更改并退出

  4. 再次打开终端并输入以下内容

    echo $JAVA_HOME   (blank)
    echo $PATH        (displayed, but not the JAVA_HOME value)
    
    Run Code Online (Sandbox Code Playgroud)
  5. 什么也没发生,就像 JAVA_HOME 的导出和它添加到 PATH 从未完成一样。

解决方案

我不得不去~/.bashrc并在文件末尾添加以下条目

#Source bash_profile to set JAVA_HOME and add it to the PATH because for some reason is not being picked up
. ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

问题

  1. 为什么我必须这样做?我认为 bash_profile、bash_login 或 profile 在没有这两个的情况下会在 bashrc 之前首先执行。
  2. 在这种情况下,我的终端是非登录shell 吗?
  3. 如果是这样,为什么在终端之后执行 su 并输入密码时,它没有执行我还设置了上述导出的配置文件?

bash .profile environment-variables bashrc source

209
推荐指数
5
解决办法
36万
查看次数

如何缩短命令行 (bash) 提示符?

目前是:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
Run Code Online (Sandbox Code Playgroud)

除了重命名我的机器和目录结构......

我怎样才能让它更像:

michael:controllers$
Run Code Online (Sandbox Code Playgroud)

command-line bash prompt bashrc ps1

205
推荐指数
4
解决办法
23万
查看次数

为什么“(base)”出现在我的终端提示前?

我想知道为什么我(base)在终端提示的左侧。

我的提示图片

如果我source ~/.profile在终端中运行,它就会消失。

如果我关闭该终端并重新打开一个新终端,(base)是否又出现了。

我想知道它是什么。

这是我的内容.profile(不包括标准的 $path 东西和其他个性化的东西):

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
Run Code Online (Sandbox Code Playgroud)

这是我的 .bashrc 的内容

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options …
Run Code Online (Sandbox Code Playgroud)

command-line bash prompt bashrc anaconda

199
推荐指数
4
解决办法
30万
查看次数

Bash 历史搜索,部分 + 向上箭头

我已经搜索过,但没有找到任何关于此的内容。我正在使用终端在 bash 中寻找功能。

回到过去,我有一个用户在 debian 系统上,一个朋友为我设置了一个方便的历史搜索功能(我相信我当时使用了 tcsh),我将在其中输入上一个命令的开头,点击向上箭头,它会根据部分字符串进行搜索。

例如,如果我的历史是:

./script.pl
./script.pl arg1
cat output
cat output | grep yada
Run Code Online (Sandbox Code Playgroud)

然后我输入.,然后按向上箭头,它会显示我:./script.pl arg1。再按一次,它会显示./script.pl,等等。

非常像它会grep在 .bash_history 上执行。有没有办法获得这个功能?

command-line bash history bashrc

192
推荐指数
5
解决办法
11万
查看次数

.bashrc 在哪里?

我觉得问得很愚蠢,但我似乎无法在任何地方找到答案。我正在尝试按照这些说明来编辑我的 bash 提示,但.bashrc在我的用户目录 ( ~/.bashrc)、我的主目录或主文件系统目录中都没有。

没有.bashrcin /etc/(但是有一个bash.bashrc)。

我是否.bashrc在我的用户或主目录中创建文件?是否有更好的、更新的指令集来修改 bash 提示?

configuration command-line hidden-files bashrc

148
推荐指数
6
解决办法
116万
查看次数

打开新终端时未执行 .bashrc

当我在 Ubuntu 12.04 中打开一个新的终端窗口时,.bashrc 中的代码不会执行。我在创建 .bash_aliases 文件时注意到了这一点。当我打开一个新终端时,别名没有出现。但是,当我输入source .bashrc别名时,它确实出现了。

每次打开新的终端窗口时都应该运行 .bashrc 对吗?

我该如何做到这一点?

bashrc

124
推荐指数
5
解决办法
18万
查看次数

在终端命令提示符中更改用户、主机、目录信息的颜色

是否可以更改命令提示符中的颜色user@computer,以及提示符显示的当前目录和命令部分?

我已经看到 OSX 用户做过类似的事情,但我不知道如何在 gnome 终端中做同样的事情(我只能更改前景色和背景色)。

例如,当尝试编译有错误的程序时,它会非常有用,因为长且未格式化的消息使得难以区分哪些行是命令,哪些是输出。

osx 终端中的颜色

colors command-line bash prompt bashrc

123
推荐指数
3
解决办法
16万
查看次数

“${debian_chroot:+($debian_chroot)}”在我的终端提示中有什么作用?

在我的.bashrc文件中的终端提示定义中,除其他外,我有以下代码片段:

${debian_chroot:+($debian_chroot)}
Run Code Online (Sandbox Code Playgroud)

这有什么作用,我需要它吗?

bash debian prompt chroot bashrc

119
推荐指数
3
解决办法
4万
查看次数

112
推荐指数
2
解决办法
22万
查看次数

如何将 .bashrc 恢复为默认值?

我一直在尝试在 Eclipse 上安装 Android 开发人员工具,并按照此视频中的信息进行操作。

正如视频所说,我在.bashrc文件中添加了以下两行代码:

export PATH=$(PATH):-/android-sdk/tools/
export PATH=$(PATH):-/android-sdk/platform-tools/
Run Code Online (Sandbox Code Playgroud)

然而,这似乎并没有帮助我在 Eclipse 上安装 Android 文件,因为我仍然遇到问题。更何况,现在好像我不能在终端中发出任何命令而不出现重大错误!每次我尝试在终端中执行命令时,都会收到以下消息:

无法定位该命令,因为 PATH 环境变量中未包含“/usr/bin”。

有没有办法恢复.bashrc到默认值?

bashrc

82
推荐指数
4
解决办法
18万
查看次数