Linux添加PATH,即命令自動補全功能

來源:互聯網
上載者:User
原創作品,允許轉載,轉載時請務必以超連結形式標明文章
原始出處 、作者資訊和本聲明。否則將追究法律責任。http://no001.blog.51cto.com/1142339/554927

 試了好多遍,多無效。。

最後在/etc/enviroment下設定才有效。

不過讓有一些未解問題

我使用sudo su

進入到root使用者權限,設定完成的。

重新使用sudo -s進入root使用者權限,就看不到設定的path,

很奇怪,要研究下root的問題。。

 

相關資料:

、、、、、、、、、、、、、、、、、、、、、、、、、、

1、Ubuntu專有方式
編輯 /etc/ld.so.conf 檔案,如果以下語句不存在,則加入:
include /etc/ld.so.conf.d/*.conf
然後在/etc/ld.so.conf.d下邊建立一個以 .conf 結尾的檔案。
在建立的 .conf 檔案中寫入需要設定的 path,例如:
~/mypath/bin

2、使用者目錄下的 .bashrc 檔案
在使用者主目錄下,有一個 .bashrc 檔案,編輯該檔案:
$gedit ~/.bashrc 
在最後邊加入需要設定變數的shell語句,例如:
export PATH=~/mypath/bin:$PATH
該檔案編輯儲存後,可立即在新開啟的終端視窗內生效。
該方式添加的變數只能目前使用者使用。

3、系統目錄下的 profile 檔案
在系統的 etc 目錄下,有一個 profile 檔案,編輯該檔案:
$gedit /etc/profile
在最後邊加入需要設定變數的shell語句,例如:
export PATH=~/mypath/bin:$PATH
該檔案編輯儲存後,重啟系統,變數生效。
該方式添加的變數對所有的使用者都有效。

4、系統目錄下的 environment 檔案
在系統的 etc 目錄下,有一個 environment 檔案,編輯該檔案:
$gedit /etc/environment
找到以下的 PATH 變數:
PATH="<......>"
修改該 PATH 變數,在其中加入自己的path即可,例如:
PATH="~/mypath/bin:<......>"
各個path之間用冒號分割。該檔案也是重啟生效,影響所有使用者。

=========================================================

在 Ubuntu 系統中有兩種設定環境變數 PATH 的方法。第一種適用於為單一使用者佈建 PATH,第二種是為全域設定 PATH。

第一種方法:

在使用者主目錄下有一個 .bashrc 檔案,可以在此檔案中加入 PATH 的設定如下:

export PATH=”$PATH:/your path1/:/your path2/…..”

注意:每一個 path 之間要用 “:“ 分隔。

登出重啟 X 就可以了。

第二種方法:

在 /etc/profile中增加。

PATH="$PATH:/home/zhengb66/bin"

export PATH


環 境變數是 和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的
Shell。對於UNIX,可能是CShelll。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有目前使用者所啟動並執行程式所使用。對 於bash這個Shell程式來說,可以通過變數名來訪問相應的環境變數,通過export來設定環境變數。下面通過幾個執行個體來說明。


1)etc/profile:
此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.

並從/etc/profile.d目錄的設定檔中搜集shell的設定.
註:在這裡我們設定是為所有使用者可使用的全域變數。

2)/etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.

3)~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.

註:~在LINUX下面是代表HOME這個變數的。

另外在不同的LINUX作業系統下,這個檔案可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是Ubuntu,我的使用者檔案夾下預設的就只有~/.profile檔案。


4)~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取.
(註:這個檔案是 .開頭的,所以在檔案夾中被隱藏了)

那麼我們如何添加自己定義的環境變數呢?

用記事本開啟這個檔案,然後在裡面最後寫上:

xiaokang=kangkang

然後儲存,這樣每次開啟一個新的terminal的時候,我們這個變數就生效了。記住,如果你已經開啟一個terminal,然後你修改了這個檔案,那麼在這個terminal下是不會生效的。
一般情況使用者最好在這裡進行修改,但是有時候會覆蓋父級的變數,比如PATH是ROOT設定的,但是如果你在這個檔案裡面寫了PATH=xx,那麼將來所有的PATH都成了xx了,所以我們應該在這個檔案中寫為:  

PATH=$PATH:xx

這樣就把原來的和你自己的一起加上了。而且注意在LINUX系統下用:分割,而不是windo的;
3和4都是在使用者目錄下的,他們唯一的不同是: .bash_profile只能在登入的時候啟動一次。在我的Ubuntu裡面這個3檔案似乎沒有。

5)~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案.

另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是\"父子\"關係.


~/.bash_profile 是互動式、login 方式進入 bash 啟動並執行

~/.bashrc 是互動式 non-login 方式進入 bash 啟動並執行

通常二者設定大致相同,所以通常前者會調用後者。

好的,總結一下他們的執行方式:

當你登入並且登入shell是bash時,bash首先執行/etc/profile檔案中的命令(如果該檔案存在),然後它順序尋找~ /.bash_profile,~/.bash_login或~/.profile檔案,並執行找到的第一個可讀檔案中的命令.當登入bash退出時,它 將執行~/.bash_logout檔案中的命令.
當啟動一個互動的bash時,它將執行~/.bashrc檔案中的命令(如果該檔案存在並且可讀).當非互動地啟動以運行一個shell指令碼時,bash將尋找bash_env環境變數,確定執行檔案的名稱.

本文出自 “人生得意須盡歡” 部落格,請務必保留此出處http://no001.blog.51cto.com/1142339/554927

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.