2011-12-13 90 views
0

在“Bash初学者指南”中,它表示:ubuntu bash scripting:配置文件丢失?

Bash是GNU shell,与Bourne shell兼容并且包含许多其他shell的有用功能。当shell启动时,它读取它的配置文件。最重要的是:

/etc/profile 

~/.bash_profile 

~/.bashrc 

然而,在我的Ubuntu 11.10,
- 有没有 “〜/ .bash_profile中”:文件浏览器不显示它和 “ls -l命令〜/ .bash_profile中” 说“没有这样的文件或目录“
- 有”/ etc/profile“和”〜/ .bashrc“,但它们不显示在文件资源管理器中,只有”ls -l/etc/profile“和”ls- l /.bashrc“显示结果。

有没有在我的安装过程中缺少的东西?

+0

原因'工作后,尝试ls'不显示'.bashrc',默认是不显示点文件。试试'ls -a'。 – tripleee

回答

3

不,这很好,如果这些文件不存在,他们就会被忽略。为了得到一个什么样的加载和以什么顺序的完整列表,请运行man bash并检查调用的部分(用“/”,然后键入按照调用搜索)

编辑:节省@athos男人bash的呼叫;)

当bash作为交互式登录shell或具有--login选项的非交互式shell调用时,如果该文件存在,它将首先从文件 /etc/profile中读取并执行命令。在读取该文件后,它会按照该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从第一个存在且可读的目录读取并执行com-。当shell开始禁止这种行为时,可以使用--noprofile选项。

当登录shell退出时,bash会从〜/ .bash_logout文件中读取并执行命令(如果存在)。

当一个不是登录shell的交互式shell启动时,如果这些文件存在,bash会从/etc/bash.bashrc和〜/ .bashrc中读取和执行命令。这个 可以通过使用--norc选项来禁止。 --rcfile文件选项将强制bash从文件中读取和执行命令,而不是/etc/bash.bashrc和 〜/ .bashrc。

+0

谢谢,我会先阅读本书,目前我还不知道“INVOCATION”的含义:p – athos

+0

呵呵,Invocation指的是当你开始bash时会发生什么。这只是手册中的一部分。此外,这是很好,你看看* raw *文档以供参考;) – Miquel

+1

我会这样做..只有昨天安装的Ubuntu ..所以请耐心与我的小学问题:) – athos

0

它也读取/etc/bashrc,它可能在您的系统上。 我很确定你也有~/.profile(也可以是其中的一个)或~/.bashrc

如果这些文件丢失,随时创建它们并填写任何你需要的。

+0

不...“ls -l/etc/bashrc”也说“没有这样的文件或目录”。 – athos

+0

如果您创建'.bash_profile',它将优先于您的常规'.profile' - 这可能会让人困惑。只是说“感觉自由”有一个警告。常见的模式是使用'.profile',它将被其他Bourne兼容的shell读取;或者,如果你需要''。 bash_profile',让它从它内部发送常规的'.profile'(并且源代码为'.bashrc' IIRC)。 – tripleee

+0

这不是真正的优先。它们将全部被读取,首先是.bash_profile,然后是.bash_login,然后是.profile。所以,如果你把矛盾的陈述放在那里 - 嗯......;)我通常只是创建一个,并将其他人链接到兼容性。 – favoretti

1

这里我将讨论如何设置JAVA_HOME变量和PATH变量到您的Java安装中。

首先使用终端打开您家中的.bashrc。

gedit ~/.bashrc 

现在将以下内容添加到文件末尾。

JAVA_HOME=/usr/lib/jvm/java 
export JAVA_HOME 
PATH=$PATH:$JAVA_HOME/bin 
export PATH 

注意:如果/ usr/lib中/ JVM/Java不匹配您的环境中的实际JAVA_HOME路径,然后设置JAVA_HOME实际,在那里你已经在你的机器安装了Java。

现在运行,

source ~/.bashrc 

然后,尝试运行以下命令并检查您是否得到适当的回应:

echo $JAVA_HOME 
/usr/lib/jvm/java 
echo $PATH 
:/usr/lib/jvm/java/bin 

如果不重新启动