2011-12-13 50 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 

如果不重新啓動